Sid Gifari File Manager
🏠 Root
/
home
/
genremedia08
/
musicjukebox.overlookedtracks.com
/
public
/
build
/
assets
/
Editing: ace-editor-74b87ff0.js
import{cJ as we,r as nt,bt as Cn,j as Sn}from"./main-1406e08c.js";import{p as Ot}from"./index-4d501b15.js";var Ge={},xn={get exports(){return Ge},set exports(O){Ge=O}};(function(O,R){(function(){var w="ace",y=function(){return this}();!y&&typeof window<"u"&&(y=window);var M=function(t,e,i){if(typeof t!="string"){M.original?M.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(i=e),M.modules[t]||(M.payloads[t]=i,M.modules[t]=null)};M.modules={},M.payloads={};var f=function(t,e,i){if(typeof e=="string"){var n=s(t,e);if(n!=null)return i&&i(),n}else if(Object.prototype.toString.call(e)==="[object Array]"){for(var r=[],l=0,h=e.length;l<h;++l){var m=s(t,e[l]);if(m==null&&p.original)return;r.push(m)}return i&&i.apply(null,r)||!0}},p=function(t,e){var i=f("",t,e);return i==null&&p.original?p.original.apply(this,arguments):i},c=function(t,e){if(e.indexOf("!")!==-1){var i=e.split("!");return c(t,i[0])+"!"+c(t,i[1])}if(e.charAt(0)=="."){var n=t.split("/").slice(0,-1).join("/");for(e=n+"/"+e;e.indexOf(".")!==-1&&r!=e;){var r=e;e=e.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return e},s=function(t,e){e=c(t,e);var i=M.modules[e];if(!i){if(i=M.payloads[e],typeof i=="function"){var n={},r={id:e,uri:"",exports:n,packaged:!0},l=function(m,v){return f(e,m,v)},h=i(l,n,r);n=h||r.exports,M.modules[e]=n,delete M.payloads[e]}i=M.modules[e]=n||i}return i};function a(t){var e=y;t&&(y[t]||(y[t]={}),e=y[t]),(!e.define||!e.define.packaged)&&(M.original=e.define,e.define=M,e.define.packaged=!0),(!e.require||!e.require.packaged)&&(p.original=e.require,e.require=p,e.require.packaged=!0)}a(w)})(),ace.define("ace/lib/es6-shim",["require","exports","module"],function(w,y,M){function f(p,c,s){Object.defineProperty(p,c,{value:s,enumerable:!1,writable:!0,configurable:!0})}String.prototype.startsWith||f(String.prototype,"startsWith",function(p,c){return c=c||0,this.lastIndexOf(p,c)===c}),String.prototype.endsWith||f(String.prototype,"endsWith",function(p,c){var s=this;(c===void 0||c>s.length)&&(c=s.length),c-=p.length;var a=s.indexOf(p,c);return a!==-1&&a===c}),String.prototype.repeat||f(String.prototype,"repeat",function(p){for(var c="",s=this;p>0;)p&1&&(c+=s),(p>>=1)&&(s+=s);return c}),String.prototype.includes||f(String.prototype,"includes",function(p,c){return this.indexOf(p,c)!=-1}),Object.assign||(Object.assign=function(p){if(p==null)throw new TypeError("Cannot convert undefined or null to object");for(var c=Object(p),s=1;s<arguments.length;s++){var a=arguments[s];a!=null&&Object.keys(a).forEach(function(t){c[t]=a[t]})}return c}),Object.values||(Object.values=function(p){return Object.keys(p).map(function(c){return p[c]})}),Array.prototype.find||f(Array.prototype,"find",function(p){for(var c=this.length,s=arguments[1],a=0;a<c;a++){var t=this[a];if(p.call(s,t,a,this))return t}}),Array.prototype.findIndex||f(Array.prototype,"findIndex",function(p){for(var c=this.length,s=arguments[1],a=0;a<c;a++){var t=this[a];if(p.call(s,t,a,this))return a}}),Array.prototype.includes||f(Array.prototype,"includes",function(p,c){return this.indexOf(p,c)!=-1}),Array.prototype.fill||f(Array.prototype,"fill",function(p){for(var c=this,s=c.length>>>0,a=arguments[1],t=a>>0,e=t<0?Math.max(s+t,0):Math.min(t,s),i=arguments[2],n=i===void 0?s:i>>0,r=n<0?Math.max(s+n,0):Math.min(n,s);e<r;)c[e]=p,e++;return c}),Array.of||f(Array,"of",function(){return Array.prototype.slice.call(arguments)})}),ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/es6-shim"],function(w,y,M){w("./es6-shim")}),ace.define("ace/lib/lang",["require","exports","module"],function(w,y,M){y.last=function(c){return c[c.length-1]},y.stringReverse=function(c){return c.split("").reverse().join("")},y.stringRepeat=function(c,s){for(var a="";s>0;)s&1&&(a+=c),(s>>=1)&&(c+=c);return a};var f=/^\s\s*/,p=/\s\s*$/;y.stringTrimLeft=function(c){return c.replace(f,"")},y.stringTrimRight=function(c){return c.replace(p,"")},y.copyObject=function(c){var s={};for(var a in c)s[a]=c[a];return s},y.copyArray=function(c){for(var s=[],a=0,t=c.length;a<t;a++)c[a]&&typeof c[a]=="object"?s[a]=this.copyObject(c[a]):s[a]=c[a];return s},y.deepCopy=function c(s){if(typeof s!="object"||!s)return s;var a;if(Array.isArray(s)){a=[];for(var t=0;t<s.length;t++)a[t]=c(s[t]);return a}if(Object.prototype.toString.call(s)!=="[object Object]")return s;a={};for(var t in s)a[t]=c(s[t]);return a},y.arrayToMap=function(c){for(var s={},a=0;a<c.length;a++)s[c[a]]=1;return s},y.createMap=function(c){var s=Object.create(null);for(var a in c)s[a]=c[a];return s},y.arrayRemove=function(c,s){for(var a=0;a<=c.length;a++)s===c[a]&&c.splice(a,1)},y.escapeRegExp=function(c){return c.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},y.escapeHTML=function(c){return(""+c).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(/</g,"<")},y.getMatchOffsets=function(c,s){var a=[];return c.replace(s,function(t){a.push({offset:arguments[arguments.length-2],length:t.length})}),a},y.deferredCall=function(c){var s=null,a=function(){s=null,c()},t=function(e){return t.cancel(),s=setTimeout(a,e||0),t};return t.schedule=t,t.call=function(){return this.cancel(),c(),t},t.cancel=function(){return clearTimeout(s),s=null,t},t.isPending=function(){return s},t},y.delayedCall=function(c,s){var a=null,t=function(){a=null,c()},e=function(i){a==null&&(a=setTimeout(t,i||s))};return e.delay=function(i){a&&clearTimeout(a),a=setTimeout(t,i||s)},e.schedule=e,e.call=function(){this.cancel(),c()},e.cancel=function(){a&&clearTimeout(a),a=null},e.isPending=function(){return a},e}}),ace.define("ace/lib/oop",["require","exports","module"],function(w,y,M){y.inherits=function(f,p){f.super_=p,f.prototype=Object.create(p.prototype,{constructor:{value:f,enumerable:!1,writable:!0,configurable:!0}})},y.mixin=function(f,p){for(var c in p)f[c]=p[c];return f},y.implement=function(f,p){y.mixin(f,p)}}),ace.define("ace/lib/useragent",["require","exports","module"],function(w,y,M){y.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},y.getOS=function(){return y.isMac?y.OS.MAC:y.isLinux?y.OS.LINUX:y.OS.WINDOWS};var f=typeof navigator=="object"?navigator:{},p=(/mac|win|linux/i.exec(f.platform)||["other"])[0].toLowerCase(),c=f.userAgent||"",s=f.appName||"";y.isWin=p=="win",y.isMac=p=="mac",y.isLinux=p=="linux",y.isIE=s=="Microsoft Internet Explorer"||s.indexOf("MSAppHost")>=0?parseFloat((c.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((c.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),y.isOldIE=y.isIE&&y.isIE<9,y.isGecko=y.isMozilla=c.match(/ Gecko\/\d+/),y.isOpera=typeof opera=="object"&&Object.prototype.toString.call(window.opera)=="[object Opera]",y.isWebKit=parseFloat(c.split("WebKit/")[1])||void 0,y.isChrome=parseFloat(c.split(" Chrome/")[1])||void 0,y.isEdge=parseFloat(c.split(" Edge/")[1])||void 0,y.isAIR=c.indexOf("AdobeAIR")>=0,y.isAndroid=c.indexOf("Android")>=0,y.isChromeOS=c.indexOf(" CrOS ")>=0,y.isIOS=/iPad|iPhone|iPod/.test(c)&&!window.MSStream,y.isIOS&&(y.isMac=!0),y.isMobile=y.isIOS||y.isAndroid}),ace.define("ace/lib/dom",["require","exports","module","ace/lib/useragent"],function(w,y,M){var f=w("./useragent"),p="http://www.w3.org/1999/xhtml";y.buildDom=function i(n,r,l){if(typeof n=="string"&&n){var h=document.createTextNode(n);return r&&r.appendChild(h),h}if(!Array.isArray(n))return n&&n.appendChild&&r&&r.appendChild(n),n;if(typeof n[0]!="string"||!n[0]){for(var m=[],v=0;v<n.length;v++){var S=i(n[v],r,l);S&&m.push(S)}return m}var C=document.createElement(n[0]),u=n[1],g=1;u&&typeof u=="object"&&!Array.isArray(u)&&(g=2);for(var v=g;v<n.length;v++)i(n[v],C,l);return g==2&&Object.keys(u).forEach(function(A){var b=u[A];A==="class"?C.className=Array.isArray(b)?b.join(" "):b:typeof b=="function"||A=="value"||A[0]=="$"?C[A]=b:A==="ref"?l&&(l[b]=C):A==="style"?typeof b=="string"&&(C.style.cssText=b):b!=null&&C.setAttribute(A,b)}),r&&r.appendChild(C),C},y.getDocumentHead=function(i){return i||(i=document),i.head||i.getElementsByTagName("head")[0]||i.documentElement},y.createElement=function(i,n){return document.createElementNS?document.createElementNS(n||p,i):document.createElement(i)},y.removeChildren=function(i){i.innerHTML=""},y.createTextNode=function(i,n){var r=n?n.ownerDocument:document;return r.createTextNode(i)},y.createFragment=function(i){var n=i?i.ownerDocument:document;return n.createDocumentFragment()},y.hasCssClass=function(i,n){var r=(i.className+"").split(/\s+/g);return r.indexOf(n)!==-1},y.addCssClass=function(i,n){y.hasCssClass(i,n)||(i.className+=" "+n)},y.removeCssClass=function(i,n){for(var r=i.className.split(/\s+/g);;){var l=r.indexOf(n);if(l==-1)break;r.splice(l,1)}i.className=r.join(" ")},y.toggleCssClass=function(i,n){for(var r=i.className.split(/\s+/g),l=!0;;){var h=r.indexOf(n);if(h==-1)break;l=!1,r.splice(h,1)}return l&&r.push(n),i.className=r.join(" "),l},y.setCssClass=function(i,n,r){r?y.addCssClass(i,n):y.removeCssClass(i,n)},y.hasCssString=function(i,n){var r=0,l;if(n=n||document,l=n.querySelectorAll("style")){for(;r<l.length;)if(l[r++].id===i)return!0}},y.removeElementById=function(i,n){n=n||document,n.getElementById(i)&&n.getElementById(i).remove()};var c,s=[];y.useStrictCSP=function(i){c=i,i==!1?a():s||(s=[])};function a(){var i=s;s=null,i&&i.forEach(function(n){t(n[0],n[1])})}function t(i,n,r){if(!(typeof document>"u")){if(s){if(r)a();else if(r===!1)return s.push([i,n])}if(!c){var l=r;!r||!r.getRootNode?l=document:(l=r.getRootNode(),(!l||l==r)&&(l=document));var h=l.ownerDocument||l;if(n&&y.hasCssString(n,l))return null;n&&(i+=` /*# sourceURL=ace/css/`+n+" */");var m=y.createElement("style");m.appendChild(h.createTextNode(i)),n&&(m.id=n),l==h&&(l=y.getDocumentHead(h)),l.insertBefore(m,l.firstChild)}}}if(y.importCssString=t,y.importCssStylsheet=function(i,n){y.buildDom(["link",{rel:"stylesheet",href:i}],y.getDocumentHead(n))},y.scrollbarWidth=function(i){var n=y.createElement("ace_inner");n.style.width="100%",n.style.minWidth="0px",n.style.height="200px",n.style.display="block";var r=y.createElement("ace_outer"),l=r.style;l.position="absolute",l.left="-10000px",l.overflow="hidden",l.width="200px",l.minWidth="0px",l.height="150px",l.display="block",r.appendChild(n);var h=i&&i.documentElement||document&&document.documentElement;if(!h)return 0;h.appendChild(r);var m=n.offsetWidth;l.overflow="scroll";var v=n.offsetWidth;return m===v&&(v=r.clientWidth),h.removeChild(r),m-v},y.computedStyle=function(i,n){return window.getComputedStyle(i,"")||{}},y.setStyle=function(i,n,r){i[n]!==r&&(i[n]=r)},y.HAS_CSS_ANIMATION=!1,y.HAS_CSS_TRANSFORMS=!1,y.HI_DPI=f.isWin?typeof window<"u"&&window.devicePixelRatio>=1.5:!0,f.isChromeOS&&(y.HI_DPI=!1),typeof document<"u"){var e=document.createElement("div");y.HI_DPI&&e.style.transform!==void 0&&(y.HAS_CSS_TRANSFORMS=!0),!f.isEdge&&typeof e.style.animationName<"u"&&(y.HAS_CSS_ANIMATION=!0),e=null}y.HAS_CSS_TRANSFORMS?y.translate=function(i,n,r){i.style.transform="translate("+Math.round(n)+"px, "+Math.round(r)+"px)"}:y.translate=function(i,n,r){i.style.top=Math.round(r)+"px",i.style.left=Math.round(n)+"px"}}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(w,y,M){/* * based on code from: * * @license RequireJS text 0.25.0 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved. * Available via the MIT or new BSD license. * see: http://github.com/jrburke/requirejs for details */var f=w("./dom");y.get=function(p,c){var s=new XMLHttpRequest;s.open("GET",p,!0),s.onreadystatechange=function(){s.readyState===4&&c(s.responseText)},s.send(null)},y.loadScript=function(p,c){var s=f.getDocumentHead(),a=document.createElement("script");a.src=p,s.appendChild(a),a.onload=a.onreadystatechange=function(t,e){(e||!a.readyState||a.readyState=="loaded"||a.readyState=="complete")&&(a=a.onload=a.onreadystatechange=null,e||c())}},y.qualifyURL=function(p){var c=document.createElement("a");return c.href=p,c.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(w,y,M){var f={},p=function(){this.propagationStopped=!0},c=function(){this.defaultPrevented=!0};f._emit=f._dispatchEvent=function(s,a){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var t=this._eventRegistry[s]||[],e=this._defaultHandlers[s];if(!(!t.length&&!e)){(typeof a!="object"||!a)&&(a={}),a.type||(a.type=s),a.stopPropagation||(a.stopPropagation=p),a.preventDefault||(a.preventDefault=c),t=t.slice();for(var i=0;i<t.length&&(t[i](a,this),!a.propagationStopped);i++);if(e&&!a.defaultPrevented)return e(a,this)}},f._signal=function(s,a){var t=(this._eventRegistry||{})[s];if(t){t=t.slice();for(var e=0;e<t.length;e++)t[e](a,this)}},f.once=function(s,a){var t=this;if(this.on(s,function e(){t.off(s,e),a.apply(null,arguments)}),!a)return new Promise(function(e){a=e})},f.setDefaultHandler=function(s,a){var t=this._defaultHandlers;if(t||(t=this._defaultHandlers={_disabled_:{}}),t[s]){var e=t[s],i=t._disabled_[s];i||(t._disabled_[s]=i=[]),i.push(e);var n=i.indexOf(a);n!=-1&&i.splice(n,1)}t[s]=a},f.removeDefaultHandler=function(s,a){var t=this._defaultHandlers;if(t){var e=t._disabled_[s];if(t[s]==a)e&&this.setDefaultHandler(s,e.pop());else if(e){var i=e.indexOf(a);i!=-1&&e.splice(i,1)}}},f.on=f.addEventListener=function(s,a,t){this._eventRegistry=this._eventRegistry||{};var e=this._eventRegistry[s];return e||(e=this._eventRegistry[s]=[]),e.indexOf(a)==-1&&e[t?"unshift":"push"](a),a},f.off=f.removeListener=f.removeEventListener=function(s,a){this._eventRegistry=this._eventRegistry||{};var t=this._eventRegistry[s];if(t){var e=t.indexOf(a);e!==-1&&t.splice(e,1)}},f.removeAllListeners=function(s){s||(this._eventRegistry=this._defaultHandlers=void 0),this._eventRegistry&&(this._eventRegistry[s]=void 0),this._defaultHandlers&&(this._defaultHandlers[s]=void 0)},y.EventEmitter=f}),ace.define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(w,y,M){var f=w("./oop"),p=w("./event_emitter").EventEmitter,c={setOptions:function(e){Object.keys(e).forEach(function(i){this.setOption(i,e[i])},this)},getOptions:function(e){var i={};if(e)Array.isArray(e)||(i=e,e=Object.keys(i));else{var n=this.$options;e=Object.keys(n).filter(function(r){return!n[r].hidden})}return e.forEach(function(r){i[r]=this.getOption(r)},this),i},setOption:function(e,i){if(this["$"+e]!==i){var n=this.$options[e];if(!n)return s('misspelled option "'+e+'"');if(n.forwardTo)return this[n.forwardTo]&&this[n.forwardTo].setOption(e,i);n.handlesSet||(this["$"+e]=i),n&&n.set&&n.set.call(this,i)}},getOption:function(e){var i=this.$options[e];return i?i.forwardTo?this[i.forwardTo]&&this[i.forwardTo].getOption(e):i&&i.get?i.get.call(this):this["$"+e]:s('misspelled option "'+e+'"')}};function s(e){typeof console<"u"&&console.warn&&console.warn.apply(console,arguments)}function a(e,i){var n=new Error(e);n.data=i,typeof console=="object"&&console.error&&console.error(n),setTimeout(function(){throw n})}var t=function(){this.$defaultOptions={}};(function(){f.implement(this,p),this.defineOptions=function(e,i,n){return e.$options||(this.$defaultOptions[i]=e.$options={}),Object.keys(n).forEach(function(r){var l=n[r];typeof l=="string"&&(l={forwardTo:l}),l.name||(l.name=r),e.$options[l.name]=l,"initialValue"in l&&(e["$"+l.name]=l.initialValue)}),f.implement(e,c),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(i){var n=e.$options[i];"value"in n&&e.setOption(i,n.value)})},this.setDefaultValue=function(e,i,n){if(!e){for(e in this.$defaultOptions)if(this.$defaultOptions[e][i])break;if(!this.$defaultOptions[e][i])return!1}var r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[i]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,i,n):r[i].value=n)},this.setDefaultValues=function(e,i){Object.keys(i).forEach(function(n){this.setDefaultValue(e,n,i[n])},this)},this.warn=s,this.reportError=a}).call(t.prototype),y.AppConfig=t}),ace.define("ace/theme/textmate.css",["require","exports","module"],function(w,y,M){M.exports=`.ace-tm .ace_gutter { background: #f0f0f0; color: #333; } .ace-tm .ace_print-margin { width: 1px; background: #e8e8e8; } .ace-tm .ace_fold { background-color: #6B72E6; } .ace-tm { background-color: #FFFFFF; color: black; } .ace-tm .ace_cursor { color: black; } .ace-tm .ace_invisible { color: rgb(191, 191, 191); } .ace-tm .ace_storage, .ace-tm .ace_keyword { color: blue; } .ace-tm .ace_constant { color: rgb(197, 6, 11); } .ace-tm .ace_constant.ace_buildin { color: rgb(88, 72, 246); } .ace-tm .ace_constant.ace_language { color: rgb(88, 92, 246); } .ace-tm .ace_constant.ace_library { color: rgb(6, 150, 14); } .ace-tm .ace_invalid { background-color: rgba(255, 0, 0, 0.1); color: red; } .ace-tm .ace_support.ace_function { color: rgb(60, 76, 114); } .ace-tm .ace_support.ace_constant { color: rgb(6, 150, 14); } .ace-tm .ace_support.ace_type, .ace-tm .ace_support.ace_class { color: rgb(109, 121, 222); } .ace-tm .ace_keyword.ace_operator { color: rgb(104, 118, 135); } .ace-tm .ace_string { color: rgb(3, 106, 7); } .ace-tm .ace_comment { color: rgb(76, 136, 107); } .ace-tm .ace_comment.ace_doc { color: rgb(0, 102, 255); } .ace-tm .ace_comment.ace_doc.ace_tag { color: rgb(128, 159, 191); } .ace-tm .ace_constant.ace_numeric { color: rgb(0, 0, 205); } .ace-tm .ace_variable { color: rgb(49, 132, 149); } .ace-tm .ace_xml-pe { color: rgb(104, 104, 91); } .ace-tm .ace_entity.ace_name.ace_function { color: #0000A2; } .ace-tm .ace_heading { color: rgb(12, 7, 255); } .ace-tm .ace_list { color:rgb(185, 6, 144); } .ace-tm .ace_meta.ace_tag { color:rgb(0, 22, 142); } .ace-tm .ace_string.ace_regex { color: rgb(255, 0, 0) } .ace-tm .ace_marker-layer .ace_selection { background: rgb(181, 213, 255); } .ace-tm.ace_multiselect .ace_selection.ace_start { box-shadow: 0 0 3px 0px white; } .ace-tm .ace_marker-layer .ace_step { background: rgb(252, 255, 0); } .ace-tm .ace_marker-layer .ace_stack { background: rgb(164, 229, 101); } .ace-tm .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgb(192, 192, 192); } .ace-tm .ace_marker-layer .ace_active-line { background: rgba(0, 0, 0, 0.07); } .ace-tm .ace_gutter-active-line { background-color : #dcdcdc; } .ace-tm .ace_marker-layer .ace_selected-word { background: rgb(250, 250, 255); border: 1px solid rgb(200, 200, 250); } .ace-tm .ace_indent-guide { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y; } .ace-tm .ace_indent-guide-active { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y; } `}),ace.define("ace/theme/textmate",["require","exports","module","ace/theme/textmate.css","ace/lib/dom"],function(w,y,M){y.isDark=!1,y.cssClass="ace-tm",y.cssText=w("./textmate.css"),y.$id="ace/theme/textmate";var f=w("../lib/dom");f.importCssString(y.cssText,y.cssClass,!1)}),ace.define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/dom","ace/lib/app_config","ace/theme/textmate"],function(w,y,M){var f=w("./lib/lang");w("./lib/oop");var p=w("./lib/net"),c=w("./lib/dom"),s=w("./lib/app_config").AppConfig;M.exports=y=new s;var a={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{},loadWorkerFromBlob:!0,sharedPopups:!1,useStrictCSP:null};y.get=function(i){if(!a.hasOwnProperty(i))throw new Error("Unknown config key: "+i);return a[i]},y.set=function(i,n){if(a.hasOwnProperty(i))a[i]=n;else if(this.setDefaultValue("",i,n)==!1)throw new Error("Unknown config key: "+i);i=="useStrictCSP"&&c.useStrictCSP(n)},y.all=function(){return f.copyObject(a)},y.$modes={},y.moduleUrl=function(i,n){if(a.$moduleUrls[i])return a.$moduleUrls[i];var r=i.split("/");n=n||r[r.length-2]||"";var l=n=="snippets"?"/":"-",h=r[r.length-1];if(n=="worker"&&l=="-"){var m=new RegExp("^"+n+"[\\-_]|[\\-_]"+n+"$","g");h=h.replace(m,"")}(!h||h==n)&&r.length>1&&(h=r[r.length-2]);var v=a[n+"Path"];return v==null?v=a.basePath:l=="/"&&(n=l=""),v&&v.slice(-1)!="/"&&(v+="/"),v+n+l+h+this.get("suffix")},y.setModuleUrl=function(i,n){return a.$moduleUrls[i]=n};var t=function(i,n){return i==="ace/theme/textmate"||i==="./theme/textmate"?n(null,w("./theme/textmate")):console.error("loader is not configured")};y.setLoader=function(i){t=i},y.dynamicModules=Object.create(null),y.$loading={},y.loadModule=function(i,n){var r,l;Array.isArray(i)&&(l=i[0],i=i[1]);var h=function(m){if(m&&!y.$loading[i])return n&&n(m);if(y.$loading[i]||(y.$loading[i]=[]),y.$loading[i].push(n),!(y.$loading[i].length>1)){var v=function(){t(i,function(S,C){y._emit("load.module",{name:i,module:C});var u=y.$loading[i];y.$loading[i]=null,u.forEach(function(g){g&&g(C)})})};if(!y.get("packaged"))return v();p.loadScript(y.moduleUrl(i,l),v),e()}};if(y.dynamicModules[i])y.dynamicModules[i]().then(function(m){m.default?h(m.default):h(m)});else{try{r=w(i)}catch{}h(r)}},y.setModuleLoader=function(i,n){y.dynamicModules[i]=n};var e=function(){!a.basePath&&!a.workerPath&&!a.modePath&&!a.themePath&&!Object.keys(a.$moduleUrls).length&&(console.error("Unable to infer path to ace from script src,","use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes","or with webpack use ace/webpack-resolver"),e=function(){})};y.version="1.15.3"}),ace.define("ace/loader_build",["require","exports","module","ace/lib/fixoldbrowsers","ace/config"],function(w,y,M){w("./lib/fixoldbrowsers");var f=w("./config");f.setLoader(function(a,t){w([a],function(e){t(null,e)})});var p=function(){return this||typeof window<"u"&&window}();M.exports=function(a){f.init=c,a.require=w},c(!0);function c(a){if(!(!p||!p.document)){f.set("packaged",a||w.packaged||M.packaged||p.define&&(void 0).packaged);var t={},e="",i=document.currentScript||document._currentScript,n=i&&i.ownerDocument||document;i&&i.src&&(e=i.src.split(/[?#]/)[0].split("/").slice(0,-1).join("/")||"");for(var r=n.getElementsByTagName("script"),l=0;l<r.length;l++){var h=r[l],m=h.src||h.getAttribute("src");if(m){for(var v=h.attributes,S=0,C=v.length;S<C;S++){var u=v[S];u.name.indexOf("data-ace-")===0&&(t[s(u.name.replace(/^data-ace-/,""))]=u.value)}var g=m.match(/^(.*)\/ace([\-.]\w+)?\.js(\?|$)/);g&&(e=g[1])}}e&&(t.base=t.base||e,t.packaged=!0),t.basePath=t.base,t.workerPath=t.workerPath||t.base,t.modePath=t.modePath||t.base,t.themePath=t.themePath||t.base,delete t.base;for(var A in t)typeof t[A]<"u"&&f.set(A,t[A])}}function s(a){return a.replace(/-(.)/g,function(t,e){return e.toUpperCase()})}}),ace.define("ace/lib/keys",["require","exports","module","ace/lib/oop"],function(w,y,M){/*! @license ========================================================================== SproutCore -- JavaScript Application Framework copyright 2006-2009, Sprout Systems Inc., Apple Inc. and contributors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. SproutCore and the SproutCore logo are trademarks of Sprout Systems, Inc. For more information about SproutCore, visit http://www.sproutcore.com ========================================================================== @license */var f=w("./oop"),p=function(){var c={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta",91:"MetaLeft",92:"MetaRight",93:"ContextMenu"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,super:8,meta:8,command:8,cmd:8,control:1},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:"*"}};c.PRINTABLE_KEYS[173]="-";var s,a;for(a in c.FUNCTION_KEYS)s=c.FUNCTION_KEYS[a].toLowerCase(),c[s]=parseInt(a,10);for(a in c.PRINTABLE_KEYS)s=c.PRINTABLE_KEYS[a].toLowerCase(),c[s]=parseInt(a,10);return f.mixin(c,c.MODIFIER_KEYS),f.mixin(c,c.PRINTABLE_KEYS),f.mixin(c,c.FUNCTION_KEYS),c.enter=c.return,c.escape=c.esc,c.del=c.delete,function(){for(var t=["cmd","ctrl","alt","shift"],e=Math.pow(2,t.length);e--;)c.KEY_MODS[e]=t.filter(function(i){return e&c.KEY_MODS[i]}).join("-")+"-"}(),c.KEY_MODS[0]="",c.KEY_MODS[-1]="input-",c}();f.mixin(y,p),y.keyCodeToString=function(c){var s=p[c];return typeof s!="string"&&(s=String.fromCharCode(c)),s.toLowerCase()}}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(w,y,M){var f=w("./keys"),p=w("./useragent"),c=null,s=0,a;function t(){a=!1;try{document.createComment("").addEventListener("test",function(){},{get passive(){a={passive:!1}}})}catch{}}function e(){return a==null&&t(),a}function i(S,C,u){this.elem=S,this.type=C,this.callback=u}i.prototype.destroy=function(){r(this.elem,this.type,this.callback),this.elem=this.type=this.callback=void 0};var n=y.addListener=function(S,C,u,g){S.addEventListener(C,u,e()),g&&g.$toDestroy.push(new i(S,C,u))},r=y.removeListener=function(S,C,u){S.removeEventListener(C,u,e())};y.stopEvent=function(S){return y.stopPropagation(S),y.preventDefault(S),!1},y.stopPropagation=function(S){S.stopPropagation&&S.stopPropagation()},y.preventDefault=function(S){S.preventDefault&&S.preventDefault()},y.getButton=function(S){return S.type=="dblclick"?0:S.type=="contextmenu"||p.isMac&&S.ctrlKey&&!S.altKey&&!S.shiftKey?2:S.button},y.capture=function(S,C,u){var g=S&&S.ownerDocument||document;function A(b){C&&C(b),u&&u(b),r(g,"mousemove",C),r(g,"mouseup",A),r(g,"dragstart",A)}return n(g,"mousemove",C),n(g,"mouseup",A),n(g,"dragstart",A),A},y.addMouseWheelListener=function(S,C,u){n(S,"wheel",function(g){var A=.15,b=g.deltaX||0,x=g.deltaY||0;switch(g.deltaMode){case g.DOM_DELTA_PIXEL:g.wheelX=b*A,g.wheelY=x*A;break;case g.DOM_DELTA_LINE:var o=15;g.wheelX=b*o,g.wheelY=x*o;break;case g.DOM_DELTA_PAGE:var d=150;g.wheelX=b*d,g.wheelY=x*d;break}C(g)},u)},y.addMultiMouseDownListener=function(S,C,u,g,A){var b=0,x,o,d,$={2:"dblclick",3:"tripleclick",4:"quadclick"};function k(_){if(y.getButton(_)!==0?b=0:_.detail>1?(b++,b>4&&(b=1)):b=1,p.isIE){var L=Math.abs(_.clientX-x)>5||Math.abs(_.clientY-o)>5;(!d||L)&&(b=1),d&&clearTimeout(d),d=setTimeout(function(){d=null},C[b-1]||600),b==1&&(x=_.clientX,o=_.clientY)}if(_._clicks=b,u[g]("mousedown",_),b>4)b=0;else if(b>1)return u[g]($[b],_)}Array.isArray(S)||(S=[S]),S.forEach(function(_){n(_,"mousedown",k,A)})};var l=function(S){return 0|(S.ctrlKey?1:0)|(S.altKey?2:0)|(S.shiftKey?4:0)|(S.metaKey?8:0)};y.getModifierString=function(S){return f.KEY_MODS[l(S)]};function h(S,C,u){var g=l(C);if(!p.isMac&&c){if(C.getModifierState&&(C.getModifierState("OS")||C.getModifierState("Win"))&&(g|=8),c.altGr)if((3&g)!=3)c.altGr=0;else return;if(u===18||u===17){var A="location"in C?C.location:C.keyLocation;if(u===17&&A===1)c[u]==1&&(s=C.timeStamp);else if(u===18&&g===3&&A===2){var b=C.timeStamp-s;b<50&&(c.altGr=!0)}}}if(u in f.MODIFIER_KEYS&&(u=-1),!g&&u===13){var A="location"in C?C.location:C.keyLocation;if(A===3&&(S(C,g,-u),C.defaultPrevented))return}if(p.isChromeOS&&g&8){if(S(C,g,u),C.defaultPrevented)return;g&=-9}return!g&&!(u in f.FUNCTION_KEYS)&&!(u in f.PRINTABLE_KEYS)?!1:S(C,g,u)}y.addCommandKeyListener=function(S,C,u){if(p.isOldGecko||p.isOpera&&!("KeyboardEvent"in window)){var g=null;n(S,"keydown",function(b){g=b.keyCode},u),n(S,"keypress",function(b){return h(C,b,g)},u)}else{var A=null;n(S,"keydown",function(b){c[b.keyCode]=(c[b.keyCode]||0)+1;var x=h(C,b,b.keyCode);return A=b.defaultPrevented,x},u),n(S,"keypress",function(b){A&&(b.ctrlKey||b.altKey||b.shiftKey||b.metaKey)&&(y.stopEvent(b),A=null)},u),n(S,"keyup",function(b){c[b.keyCode]=null},u),c||(m(),n(window,"focus",m))}};function m(){c=Object.create(null)}if(typeof window=="object"&&window.postMessage&&!p.isOldIE){var v=1;y.nextTick=function(S,C){C=C||window;var u="zero-timeout-message-"+v++,g=function(A){A.data==u&&(y.stopPropagation(A),r(C,"message",g),S())};n(C,"message",g),C.postMessage(u,"*")}}y.$idleBlocked=!1,y.onIdle=function(S,C){return setTimeout(function u(){y.$idleBlocked?setTimeout(u,100):S()},C)},y.$idleBlockId=null,y.blockIdle=function(S){y.$idleBlockId&&clearTimeout(y.$idleBlockId),y.$idleBlocked=!0,y.$idleBlockId=setTimeout(function(){y.$idleBlocked=!1},S||100)},y.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),y.nextFrame?y.nextFrame=y.nextFrame.bind(window):y.nextFrame=function(S){setTimeout(S,17)}}),ace.define("ace/range",["require","exports","module"],function(w,y,M){var f=function(c,s){return c.row-s.row||c.column-s.column},p=function(c,s,a,t){this.start={row:c,column:s},this.end={row:a,column:t}};(function(){this.isEqual=function(c){return this.start.row===c.start.row&&this.end.row===c.end.row&&this.start.column===c.start.column&&this.end.column===c.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(c,s){return this.compare(c,s)==0},this.compareRange=function(c){var s,a=c.end,t=c.start;return s=this.compare(a.row,a.column),s==1?(s=this.compare(t.row,t.column),s==1?2:s==0?1:0):s==-1?-2:(s=this.compare(t.row,t.column),s==-1?-1:s==1?42:0)},this.comparePoint=function(c){return this.compare(c.row,c.column)},this.containsRange=function(c){return this.comparePoint(c.start)==0&&this.comparePoint(c.end)==0},this.intersects=function(c){var s=this.compareRange(c);return s==-1||s==0||s==1},this.isEnd=function(c,s){return this.end.row==c&&this.end.column==s},this.isStart=function(c,s){return this.start.row==c&&this.start.column==s},this.setStart=function(c,s){typeof c=="object"?(this.start.column=c.column,this.start.row=c.row):(this.start.row=c,this.start.column=s)},this.setEnd=function(c,s){typeof c=="object"?(this.end.column=c.column,this.end.row=c.row):(this.end.row=c,this.end.column=s)},this.inside=function(c,s){return this.compare(c,s)==0?!(this.isEnd(c,s)||this.isStart(c,s)):!1},this.insideStart=function(c,s){return this.compare(c,s)==0?!this.isEnd(c,s):!1},this.insideEnd=function(c,s){return this.compare(c,s)==0?!this.isStart(c,s):!1},this.compare=function(c,s){return!this.isMultiLine()&&c===this.start.row?s<this.start.column?-1:s>this.end.column?1:0:c<this.start.row?-1:c>this.end.row?1:this.start.row===c?s>=this.start.column?0:-1:this.end.row===c?s<=this.end.column?0:1:0},this.compareStart=function(c,s){return this.start.row==c&&this.start.column==s?-1:this.compare(c,s)},this.compareEnd=function(c,s){return this.end.row==c&&this.end.column==s?1:this.compare(c,s)},this.compareInside=function(c,s){return this.end.row==c&&this.end.column==s?1:this.start.row==c&&this.start.column==s?-1:this.compare(c,s)},this.clipRows=function(c,s){if(this.end.row>s)var a={row:s+1,column:0};else if(this.end.row<c)var a={row:c,column:0};if(this.start.row>s)var t={row:s+1,column:0};else if(this.start.row<c)var t={row:c,column:0};return p.fromPoints(t||this.start,a||this.end)},this.extend=function(c,s){var a=this.compare(c,s);if(a==0)return this;if(a==-1)var t={row:c,column:s};else var e={row:c,column:s};return p.fromPoints(t||this.start,e||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return p.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new p(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new p(this.start.row,0,this.end.row,0)},this.toScreenRange=function(c){var s=c.documentToScreenPosition(this.start),a=c.documentToScreenPosition(this.end);return new p(s.row,s.column,a.row,a.column)},this.moveBy=function(c,s){this.start.row+=c,this.start.column+=s,this.end.row+=c,this.end.column+=s}}).call(p.prototype),p.fromPoints=function(c,s){return new p(c.row,c.column,s.row,s.column)},p.comparePoints=f,p.comparePoints=function(c,s){return c.row-s.row||c.column-s.column},y.Range=p}),ace.define("ace/clipboard",["require","exports","module"],function(w,y,M){var f;M.exports={lineMode:!1,pasteCancelled:function(){return f&&f>Date.now()-50?!0:f=!1},cancel:function(){f=Date.now()}}}),ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/clipboard","ace/lib/keys"],function(w,y,M){var f=w("../lib/event"),p=w("../lib/useragent"),c=w("../lib/dom"),s=w("../lib/lang"),a=w("../clipboard"),t=p.isChrome<18,e=p.isIE,i=p.isChrome>63,n=400,r=w("../lib/keys"),l=r.KEY_MODS,h=p.isIOS,m=h?/\s/:/\n/,v=p.isMobile,S=function(C,u){var g=c.createElement("textarea");g.className="ace_text-input",g.setAttribute("wrap","off"),g.setAttribute("autocorrect","off"),g.setAttribute("autocapitalize","off"),g.setAttribute("spellcheck",!1),g.style.opacity="0",C.insertBefore(g,C.firstChild);var A=!1,b=!1,x=!1,o=!1,d="";v||(g.style.fontSize="1px");var $=!1,k=!1,_="",L=0,T=0,F=0;try{var I=document.activeElement===g}catch{}this.setAriaOptions=function(K){K.activeDescendant?(g.setAttribute("aria-haspopup","true"),g.setAttribute("aria-autocomplete","list"),g.setAttribute("aria-activedescendant",K.activeDescendant)):(g.setAttribute("aria-haspopup","false"),g.setAttribute("aria-autocomplete","both"),g.removeAttribute("aria-activedescendant")),K.role&&g.setAttribute("role",K.role)},this.setAriaOptions({role:"textbox"}),f.addListener(g,"blur",function(K){k||(u.onBlur(K),I=!1)},u),f.addListener(g,"focus",function(K){if(!k){if(I=!0,p.isEdge)try{if(!document.hasFocus())return}catch{}u.onFocus(K),p.isEdge?setTimeout(B):B()}},u),this.$focusScroll=!1,this.focus=function(){if(d||i||this.$focusScroll=="browser")return g.focus({preventScroll:!0});var K=g.style.top;g.style.position="fixed",g.style.top="0px";try{var Z=g.getBoundingClientRect().top!=0}catch{return}var ie=[];if(Z)for(var se=g.parentElement;se&&se.nodeType==1;)ie.push(se),se.setAttribute("ace_nocontext",!0),!se.parentElement&&se.getRootNode?se=se.getRootNode().host:se=se.parentElement;g.focus({preventScroll:!0}),Z&&ie.forEach(function(he){he.removeAttribute("ace_nocontext")}),setTimeout(function(){g.style.position="",g.style.top=="0px"&&(g.style.top=K)},0)},this.blur=function(){g.blur()},this.isFocused=function(){return I},u.on("beforeEndOperation",function(){var K=u.curOp,Z=K&&K.command&&K.command.name;if(Z!="insertstring"){var ie=Z&&(K.docChanged||K.selectionChanged);x&&ie&&(_=g.value="",ve()),B()}});var B=h?function(K){if(!(!I||A&&!K||o)){K||(K="");var Z=` ab`+K+`cde fg `;Z!=g.value&&(g.value=_=Z);var ie=4,se=4+(K.length||(u.selection.isEmpty()?0:1));(L!=ie||T!=se)&&g.setSelectionRange(ie,se),L=ie,T=se}}:function(){if(!(x||o)&&!(!I&&!D)){x=!0;var K=0,Z=0,ie="";if(u.session){var se=u.selection,he=se.getRange(),pe=se.cursor.row;if(K=he.start.column,Z=he.end.column,ie=u.session.getLine(pe),he.start.row!=pe){var ue=u.session.getLine(pe-1);K=he.start.row<pe-1?0:K,Z+=ue.length+1,ie=ue+` `+ie}else if(he.end.row!=pe){var de=u.session.getLine(pe+1);Z=he.end.row>pe+1?de.length:Z,Z+=ie.length+1,ie=ie+` `+de}else v&&pe>0&&(ie=` `+ie,Z+=1,K+=1);ie.length>n&&(K<n&&Z<n?ie=ie.slice(0,n):(ie=` `,K==Z?K=Z=0:(K=0,Z=1)))}var ce=ie+` `;if(ce!=_&&(g.value=_=ce,L=T=ce.length),D&&(L=g.selectionStart,T=g.selectionEnd),T!=Z||L!=K||g.selectionEnd!=T)try{g.setSelectionRange(K,Z),L=K,T=Z}catch{}x=!1}};this.resetSelection=B,I&&u.onFocus();var H=function(K){return K.selectionStart===0&&K.selectionEnd>=_.length&&K.value===_&&_&&K.selectionEnd!==T},z=function(K){x||(A?A=!1:H(g)?(u.selectAll(),B()):v&&g.selectionStart!=L&&B())},U=null;this.setInputHandler=function(K){U=K},this.getInputHandler=function(){return U};var D=!1,P=function(K,Z){if(D&&(D=!1),b)return B(),K&&u.onPaste(K),b=!1,"";for(var ie=g.selectionStart,se=g.selectionEnd,he=L,pe=_.length-T,ue=K,de=K.length-ie,ce=K.length-se,re=0;he>0&&_[re]==K[re];)re++,he--;for(ue=ue.slice(re),re=1;pe>0&&_.length-re>L-1&&_[_.length-re]==K[K.length-re];)re++,pe--;de-=re-1,ce-=re-1;var xe=ue.length-re+1;if(xe<0&&(he=-xe,xe=0),ue=ue.slice(0,xe),!Z&&!ue&&!de&&!he&&!pe&&!ce)return"";o=!0;var He=!1;return p.isAndroid&&ue==". "&&(ue=" ",He=!0),ue&&!he&&!pe&&!de&&!ce||$?u.onTextInput(ue):u.onTextInput(ue,{extendLeft:he,extendRight:pe,restoreStart:de,restoreEnd:ce}),o=!1,_=K,L=ie,T=se,F=ce,He?` `:ue},N=function(K){if(x)return oe();if(K&&K.inputType){if(K.inputType=="historyUndo")return u.execCommand("undo");if(K.inputType=="historyRedo")return u.execCommand("redo")}var Z=g.value,ie=P(Z,!0);(Z.length>n+100||m.test(ie)||v&&L<1&&L==T)&&B()},j=function(K,Z,ie){var se=K.clipboardData||window.clipboardData;if(!(!se||t)){var he=e||ie?"Text":"text/plain";try{return Z?se.setData(he,Z)!==!1:se.getData(he)}catch(pe){if(!ie)return j(pe,Z,!0)}}},Y=function(K,Z){var ie=u.getCopyText();if(!ie)return f.preventDefault(K);j(K,ie)?(h&&(B(ie),A=ie,setTimeout(function(){A=!1},10)),Z?u.onCut():u.onCopy(),f.preventDefault(K)):(A=!0,g.value=ie,g.select(),setTimeout(function(){A=!1,B(),Z?u.onCut():u.onCopy()}))},V=function(K){Y(K,!0)},J=function(K){Y(K,!1)},X=function(K){var Z=j(K);a.pasteCancelled()||(typeof Z=="string"?(Z&&u.onPaste(Z,K),p.isIE&&setTimeout(B),f.preventDefault(K)):(g.value="",b=!0))};f.addCommandKeyListener(g,u.onCommandKey.bind(u),u),f.addListener(g,"select",z,u),f.addListener(g,"input",N,u),f.addListener(g,"cut",V,u),f.addListener(g,"copy",J,u),f.addListener(g,"paste",X,u),(!("oncut"in g)||!("oncopy"in g)||!("onpaste"in g))&&f.addListener(C,"keydown",function(K){if(!(p.isMac&&!K.metaKey||!K.ctrlKey))switch(K.keyCode){case 67:J(K);break;case 86:X(K);break;case 88:V(K);break}},u);var q=function(K){if(!(x||!u.onCompositionStart||u.$readOnly)&&(x={},!$)){K.data&&(x.useTextareaForIME=!1),setTimeout(oe,0),u._signal("compositionStart"),u.on("mousedown",ge);var Z=u.getSelectionRange();Z.end.row=Z.start.row,Z.end.column=Z.start.column,x.markerRange=Z,x.selectionStart=L,u.onCompositionStart(x),x.useTextareaForIME?(_=g.value="",L=0,T=0):(g.msGetInputContext&&(x.context=g.msGetInputContext()),g.getInputContext&&(x.context=g.getInputContext()))}},oe=function(){if(!(!x||!u.onCompositionUpdate||u.$readOnly)){if($)return ge();if(x.useTextareaForIME)u.onCompositionUpdate(g.value);else{var K=g.value;P(K),x.markerRange&&(x.context&&(x.markerRange.start.column=x.selectionStart=x.context.compositionStartOffset),x.markerRange.end.column=x.markerRange.start.column+T-x.selectionStart+F)}}},ve=function(K){!u.onCompositionEnd||u.$readOnly||(x=!1,u.onCompositionEnd(),u.off("mousedown",ge),K&&N())};function ge(){k=!0,g.blur(),g.focus(),k=!1}var le=s.delayedCall(oe,50).schedule.bind(null,null);function Se(K){K.keyCode==27&&g.value.length<g.selectionStart&&(x||(_=g.value),L=T=-1,B()),le()}f.addListener(g,"compositionstart",q,u),f.addListener(g,"compositionupdate",oe,u),f.addListener(g,"keyup",Se,u),f.addListener(g,"keydown",le,u),f.addListener(g,"compositionend",ve,u),this.getElement=function(){return g},this.setCommandMode=function(K){$=K,g.readOnly=!1},this.setReadOnly=function(K){$||(g.readOnly=K)},this.setCopyWithEmptySelection=function(K){},this.onContextMenu=function(K){D=!0,B(),u._emit("nativecontextmenu",{target:u,domEvent:K}),this.moveToMouse(K,!0)},this.moveToMouse=function(K,Z){d||(d=g.style.cssText),g.style.cssText=(Z?"z-index:100000;":"")+(p.isIE?"opacity:0.1;":"")+"text-indent: -"+(L+T)*u.renderer.characterWidth*.5+"px;";var ie=u.container.getBoundingClientRect(),se=c.computedStyle(u.container),he=ie.top+(parseInt(se.borderTopWidth)||0),pe=ie.left+(parseInt(ie.borderLeftWidth)||0),ue=ie.bottom-he-g.clientHeight-2,de=function(ce){c.translate(g,ce.clientX-pe-2,Math.min(ce.clientY-he-2,ue))};de(K),K.type=="mousedown"&&(u.renderer.$isMousePressed=!0,clearTimeout(Fe),p.isWin&&f.capture(u.container,de,Le))},this.onContextMenuClose=Le;var Fe;function Le(){clearTimeout(Fe),Fe=setTimeout(function(){d&&(g.style.cssText=d,d=""),u.renderer.$isMousePressed=!1,u.renderer.$keepTextAreaAtCursor&&u.renderer.$moveTextAreaToCursor()},0)}var Ze=function(K){u.textInput.onContextMenu(K),Le()};f.addListener(g,"mouseup",Ze,u),f.addListener(g,"mousedown",function(K){K.preventDefault(),Le()},u),f.addListener(u.renderer.scroller,"contextmenu",Ze,u),f.addListener(g,"contextmenu",Ze,u),h&&bt(C,u,g);function bt(K,Z,ie){var se=null,he=!1;ie.addEventListener("keydown",function(ue){se&&clearTimeout(se),he=!0},!0),ie.addEventListener("keyup",function(ue){se=setTimeout(function(){he=!1},100)},!0);var pe=function(ue){if(document.activeElement===ie&&!(he||x||Z.$mouseHandler.isMousePressed)&&!A){var de=ie.selectionStart,ce=ie.selectionEnd,re=null,xe=0;if(de==0?re=r.up:de==1?re=r.home:ce>T&&_[ce]==` `?re=r.end:de<L&&_[de-1]==" "?(re=r.left,xe=l.option):de<L||de==L&&T!=L&&de==ce?re=r.left:ce>T&&_.slice(0,ce).split(` `).length>2?re=r.down:ce>T&&_[ce-1]==" "?(re=r.right,xe=l.option):(ce>T||ce==T&&T!=L&&de==ce)&&(re=r.right),de!==ce&&(xe|=l.shift),re){var He=Z.onCommandKey({},xe,re);if(!He&&Z.commands){re=r.keyCodeToString(re);var ot=Z.commands.findKeyCommand(xe,re);ot&&Z.execCommand(ot)}L=de,T=ce,B("")}}};document.addEventListener("selectionchange",pe),Z.on("destroy",function(){document.removeEventListener("selectionchange",pe)})}this.destroy=function(){g.parentElement&&g.parentElement.removeChild(g)}};y.TextInput=S,y.$setUserAgentForTests=function(C,u){v=C,h=u}}),ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"],function(w,y,M){var f=w("../lib/useragent"),p=0,c=550;function s(e){e.$clickSelection=null;var i=e.editor;i.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),i.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),i.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),i.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),i.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(r){e[r]=this[r]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}(function(){this.onMouseDown=function(e){var i=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,l=e.getButton();if(l!==0){var h=r.getSelectionRange(),m=h.isEmpty();(m||l==1)&&r.selection.moveToPosition(n),l==2&&(r.textInput.onContextMenu(e.domEvent),f.isMozilla||e.preventDefault());return}if(this.mousedownEvent.time=Date.now(),i&&!r.isFocused()&&(r.focus(),this.$focusTimeout&&!this.$clickSelection&&!r.inMultiSelectMode)){this.setState("focusWait"),this.captureMouse(e);return}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,i){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;this.mousedownEvent&&(this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):i||n.selection.moveToPosition(e),i||this.select(),n.setStyle("ace_selecting"),this.setState("select"))},this.select=function(){var e,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y);if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var l=t(this.$clickSelection,n);n=l.cursor,e=l.anchor}i.selection.setSelectionAnchor(e.row,e.column)}i.selection.selectToPosition(n),i.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var i,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),l=n.selection[e](r.row,r.column);if(this.$clickSelection){var h=this.$clickSelection.comparePoint(l.start),m=this.$clickSelection.comparePoint(l.end);if(h==-1&&m<=0)i=this.$clickSelection.end,(l.end.row!=r.row||l.end.column!=r.column)&&(r=l.start);else if(m==1&&h>=0)i=this.$clickSelection.start,(l.start.row!=r.row||l.start.column!=r.column)&&(r=l.end);else if(h==-1&&m==1)r=l.end,i=l.start;else{var v=t(this.$clickSelection,r);r=v.cursor,i=v.anchor}n.selection.setSelectionAnchor(i.row,i.column)}n.selection.selectToPosition(r),n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting")},this.focusWait=function(){var e=a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),i=Date.now();(e>p||i-this.mousedownEvent.time>this.$focusTimeout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var i=e.getDocumentPosition(),n=this.editor,r=n.session,l=r.getBracketRange(i);l?(l.isEmpty()&&(l.start.column--,l.end.column++),this.setState("select")):(l=n.selection.getWordRange(i.row,i.column),this.setState("selectByWords")),this.$clickSelection=l,this.select()},this.onTripleClick=function(e){var i=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(i.row,i.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(i.row),this.select()},this.onQuadClick=function(e){var i=this.editor;i.selectAll(),this.$clickSelection=i.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(!e.getAccelKey()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var i=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var n=this.$lastScroll,r=e.domEvent.timeStamp,l=r-n.t,h=l?e.wheelX/l:n.vx,m=l?e.wheelY/l:n.vy;l<c&&(h=(h+n.vx)/2,m=(m+n.vy)/2);var v=Math.abs(h/m),S=!1;if(v>=1&&i.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(S=!0),v<=1&&i.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(S=!0),S)n.allowed=r;else if(r-n.allowed<c){var C=Math.abs(h)<=1.5*Math.abs(n.vx)&&Math.abs(m)<=1.5*Math.abs(n.vy);C?(S=!0,n.allowed=r):n.allowed=0}if(n.t=r,n.vx=h,n.vy=m,S)return i.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}}).call(s.prototype),y.DefaultHandlers=s;function a(e,i,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-i,2))}function t(e,i){if(e.start.row==e.end.row)var n=2*i.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=i.column-4;else var n=2*i.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(w,y,M){w("./lib/oop");var f=w("./lib/dom"),p="ace_tooltip";function c(s){this.isOpen=!1,this.$element=null,this.$parentNode=s}(function(){this.$init=function(){return this.$element=f.createElement("div"),this.$element.className=p,this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(s){this.getElement().textContent=s},this.setHtml=function(s){this.getElement().innerHTML=s},this.setPosition=function(s,a){this.getElement().style.left=s+"px",this.getElement().style.top=a+"px"},this.setClassName=function(s){f.addCssClass(this.getElement(),s)},this.show=function(s,a,t){s!=null&&this.setText(s),a!=null&&t!=null&&this.setPosition(a,t),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.getElement().className=p,this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth},this.destroy=function(){this.isOpen=!1,this.$element&&this.$element.parentNode&&this.$element.parentNode.removeChild(this.$element)}}).call(c.prototype),y.Tooltip=c}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(w,y,M){var f=w("../lib/dom"),p=w("../lib/oop"),c=w("../lib/event"),s=w("../tooltip").Tooltip;function a(e){var i=e.editor,n=i.renderer.$gutterLayer,r=new t(i.container);e.editor.setDefaultHandler("guttermousedown",function(u){if(!(!i.isFocused()||u.getButton()!=0)){var g=n.getRegion(u);if(g!="foldWidgets"){var A=u.getDocumentPosition().row,b=i.session.selection;if(u.getShiftKey())b.selectTo(A,0);else{if(u.domEvent.detail==2)return i.selectAll(),u.preventDefault();e.$clickSelection=i.selection.getLineRange(A)}return e.setState("selectByLines"),e.captureMouse(u),u.preventDefault()}}});var l,h,m;function v(){var u=h.getDocumentPosition().row,g=n.$annotations[u];if(!g)return S();var A=i.session.getLength();if(u==A){var b=i.renderer.pixelToScreenCoordinates(0,h.y).row,x=h.$pos;if(b>i.session.documentToScreenRow(x.row,x.column))return S()}if(m!=g){m=g.text.join("<br/>"),r.setHtml(m);var o=g.className;if(o&&r.setClassName(o.trim()),r.show(),i._signal("showGutterTooltip",r),i.on("mousewheel",S),e.$tooltipFollowsMouse)C(h);else{var d=h.domEvent.target,$=d.getBoundingClientRect(),k=r.getElement().style;k.left=$.right+"px",k.top=$.bottom+"px"}}}function S(){l&&(l=clearTimeout(l)),m&&(r.hide(),m=null,i._signal("hideGutterTooltip",r),i.off("mousewheel",S))}function C(u){r.setPosition(u.x,u.y)}e.editor.setDefaultHandler("guttermousemove",function(u){var g=u.domEvent.target||u.domEvent.srcElement;if(f.hasCssClass(g,"ace_fold-widget"))return S();m&&e.$tooltipFollowsMouse&&C(u),h=u,!l&&(l=setTimeout(function(){l=null,h&&!e.isMousePressed?v():S()},50))}),c.addListener(i.renderer.$gutter,"mouseout",function(u){h=null,!(!m||l)&&(l=setTimeout(function(){l=null,S()},50))},i),i.on("changeSession",S)}function t(e){s.call(this,e)}p.inherits(t,s),function(){this.setPosition=function(e,i){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,l=this.getWidth(),h=this.getHeight();e+=15,i+=15,e+l>n&&(e-=e+l-n),i+h>r&&(i-=20+h),s.prototype.setPosition.call(this,e,i)}}.call(t.prototype),y.GutterHandler=a}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(w,y,M){var f=w("../lib/event"),p=w("../lib/useragent"),c=y.MouseEvent=function(s,a){this.domEvent=s,this.editor=a,this.x=this.clientX=s.clientX,this.y=this.clientY=s.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){f.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){f.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var s=this.editor,a=s.getSelectionRange();if(a.isEmpty())this.$inSelection=!1;else{var t=this.getDocumentPosition();this.$inSelection=a.contains(t.row,t.column)}return this.$inSelection},this.getButton=function(){return f.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=p.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(c.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(w,y,M){var f=w("../lib/dom"),p=w("../lib/event"),c=w("../lib/useragent"),s=200,a=200,t=5;function e(n){var r=n.editor,l=f.createElement("div");l.style.cssText="top:-100px;position:absolute;z-index:2147483647;opacity:0.5",l.textContent=" ";var h=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];h.forEach(function(D){n[D]=this[D]},this),r.on("mousedown",this.onMouseDown.bind(n));var m=r.container,v,S,C,u,g,A,b=0,x,o,d,$,k;this.onDragStart=function(D){if(this.cancelDrag||!m.draggable){var P=this;return setTimeout(function(){P.startSelect(),P.captureMouse(D)},0),D.preventDefault()}g=r.getSelectionRange();var N=D.dataTransfer;N.effectAllowed=r.getReadOnly()?"copy":"copyMove",r.container.appendChild(l),N.setDragImage&&N.setDragImage(l,0,0),setTimeout(function(){r.container.removeChild(l)}),N.clearData(),N.setData("Text",r.session.getTextRange()),o=!0,this.setState("drag")},this.onDragEnd=function(D){if(m.draggable=!1,o=!1,this.setState(null),!r.getReadOnly()){var P=D.dataTransfer.dropEffect;!x&&P=="move"&&r.session.remove(r.getSelectionRange()),r.$resetCursorStyle()}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(D){if(!(r.getReadOnly()||!z(D.dataTransfer)))return S=D.clientX,C=D.clientY,v||F(),b++,D.dataTransfer.dropEffect=x=U(D),p.preventDefault(D)},this.onDragOver=function(D){if(!(r.getReadOnly()||!z(D.dataTransfer)))return S=D.clientX,C=D.clientY,v||(F(),b++),B!==null&&(B=null),D.dataTransfer.dropEffect=x=U(D),p.preventDefault(D)},this.onDragLeave=function(D){if(b--,b<=0&&v)return I(),x=null,p.preventDefault(D)},this.onDrop=function(D){if(A){var P=D.dataTransfer;if(o)switch(x){case"move":g.contains(A.row,A.column)?g={start:A,end:A}:g=r.moveText(g,A);break;case"copy":g=r.moveText(g,A,!0);break}else{var N=P.getData("Text");g={start:A,end:r.session.insert(A,N)},r.focus(),x=null}return I(),p.preventDefault(D)}},p.addListener(m,"dragstart",this.onDragStart.bind(n),r),p.addListener(m,"dragend",this.onDragEnd.bind(n),r),p.addListener(m,"dragenter",this.onDragEnter.bind(n),r),p.addListener(m,"dragover",this.onDragOver.bind(n),r),p.addListener(m,"dragleave",this.onDragLeave.bind(n),r),p.addListener(m,"drop",this.onDrop.bind(n),r);function _(D,P){var N=Date.now(),j=!P||D.row!=P.row,Y=!P||D.column!=P.column;if(!$||j||Y)r.moveCursorToPosition(D),$=N,k={x:S,y:C};else{var V=i(k.x,k.y,S,C);V>t?$=null:N-$>=a&&(r.renderer.scrollCursorIntoView(),$=null)}}function L(D,P){var N=Date.now(),j=r.renderer.layerConfig.lineHeight,Y=r.renderer.layerConfig.characterWidth,V=r.renderer.scroller.getBoundingClientRect(),J={x:{left:S-V.left,right:V.right-S},y:{top:C-V.top,bottom:V.bottom-C}},X=Math.min(J.x.left,J.x.right),q=Math.min(J.y.top,J.y.bottom),oe={row:D.row,column:D.column};X/Y<=2&&(oe.column+=J.x.left<J.x.right?-3:2),q/j<=1&&(oe.row+=J.y.top<J.y.bottom?-1:1);var ve=D.row!=oe.row,ge=D.column!=oe.column,le=!P||D.row!=P.row;ve||ge&&!le?d?N-d>=s&&r.renderer.scrollCursorIntoView(oe):d=N:d=null}function T(){var D=A;A=r.renderer.screenToTextCoordinates(S,C),_(A,D),L(A,D)}function F(){g=r.selection.toOrientedRange(),v=r.session.addMarker(g,"ace_selection",r.getSelectionStyle()),r.clearSelection(),r.isFocused()&&r.renderer.$cursorLayer.setBlinking(!1),clearInterval(u),T(),u=setInterval(T,20),b=0,p.addListener(document,"mousemove",H)}function I(){clearInterval(u),r.session.removeMarker(v),v=null,r.selection.fromOrientedRange(g),r.isFocused()&&!o&&r.$resetCursorStyle(),g=null,A=null,b=0,d=null,$=null,p.removeListener(document,"mousemove",H)}var B=null;function H(){B==null&&(B=setTimeout(function(){B!=null&&v&&I()},20))}function z(D){var P=D.types;return!P||Array.prototype.some.call(P,function(N){return N=="text/plain"||N=="Text"})}function U(D){var P=["copy","copymove","all","uninitialized"],N=["move","copymove","linkmove","all","uninitialized"],j=c.isMac?D.altKey:D.ctrlKey,Y="uninitialized";try{Y=D.dataTransfer.effectAllowed.toLowerCase()}catch{}var V="none";return j&&P.indexOf(Y)>=0?V="copy":N.indexOf(Y)>=0?V="move":P.indexOf(Y)>=0&&(V="copy"),V}}(function(){this.dragWait=function(){var n=Date.now()-this.mousedownEvent.time;n>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var n=this.editor.container;n.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(n){this.editor.$resetCursorStyle(),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var n=this.editor,r=n.container;r.draggable=!0,n.renderer.$cursorLayer.setBlinking(!1),n.setStyle("ace_dragging");var l=c.isWin?"default":"move";n.renderer.setCursorStyle(l),this.setState("dragReady")},this.onMouseDrag=function(n){var r=this.editor.container;if(c.isIE&&this.state=="dragReady"){var l=i(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);l>3&&r.dragDrop()}if(this.state==="dragWait"){var l=i(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);l>0&&(r.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(n){if(this.$dragEnabled){this.mousedownEvent=n;var r=this.editor,l=n.inSelection(),h=n.getButton(),m=n.domEvent.detail||1;if(m===1&&h===0&&l){if(n.editor.inMultiSelectMode&&(n.getAccelKey()||n.getShiftKey()))return;this.mousedownEvent.time=Date.now();var v=n.domEvent.target||n.domEvent.srcElement;if("unselectable"in v&&(v.unselectable="on"),r.getDragDelay()){if(c.isWebKit){this.cancelDrag=!0;var S=r.container;S.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(n,this.onMouseDrag.bind(this)),n.defaultPrevented=!0}}}}).call(e.prototype);function i(n,r,l,h){return Math.sqrt(Math.pow(l-n,2)+Math.pow(h-r,2))}y.DragdropHandler=e}),ace.define("ace/mouse/touch_handler",["require","exports","module","ace/mouse/mouse_event","ace/lib/event","ace/lib/dom"],function(w,y,M){var f=w("./mouse_event").MouseEvent,p=w("../lib/event"),c=w("../lib/dom");y.addTouchListeners=function(s,a){var t="scroll",e,i,n,r,l,h,m=0,v,S=0,C=0,u=0,g,A;function b(){var _=window.navigator&&window.navigator.clipboard,L=!1,T=function(){var I=a.getCopyText(),B=a.session.getUndoManager().hasUndo();A.replaceChild(c.buildDom(L?["span",!I&&["span",{class:"ace_mobile-button",action:"selectall"},"Select All"],I&&["span",{class:"ace_mobile-button",action:"copy"},"Copy"],I&&["span",{class:"ace_mobile-button",action:"cut"},"Cut"],_&&["span",{class:"ace_mobile-button",action:"paste"},"Paste"],B&&["span",{class:"ace_mobile-button",action:"undo"},"Undo"],["span",{class:"ace_mobile-button",action:"find"},"Find"],["span",{class:"ace_mobile-button",action:"openCommandPallete"},"Palette"]]:["span"]),A.firstChild)},F=function(I){var B=I.target.getAttribute("action");if(B=="more"||!L)return L=!L,T();B=="paste"?_.readText().then(function(H){a.execCommand(B,H)}):B&&((B=="cut"||B=="copy")&&(_?_.writeText(a.getCopyText()):document.execCommand("copy")),a.execCommand(B)),A.firstChild.style.display="none",L=!1,B!="openCommandPallete"&&a.focus()};A=c.buildDom(["div",{class:"ace_mobile-menu",ontouchstart:function(I){t="menu",I.stopPropagation(),I.preventDefault(),a.textInput.focus()},ontouchend:function(I){I.stopPropagation(),I.preventDefault(),F(I)},onclick:F},["span"],["span",{class:"ace_mobile-button",action:"more"},"..."]],a.container)}function x(){A||b();var _=a.selection.cursor,L=a.renderer.textToScreenCoordinates(_.row,_.column),T=a.renderer.textToScreenCoordinates(0,0).pageX,F=a.renderer.scrollLeft,I=a.container.getBoundingClientRect();A.style.top=L.pageY-I.top-3+"px",L.pageX-I.left<I.width-70?(A.style.left="",A.style.right="10px"):(A.style.right="",A.style.left=T+F-I.left+"px"),A.style.display="",A.firstChild.style.display="none",a.on("input",o)}function o(_){A&&(A.style.display="none"),a.off("input",o)}function d(){l=null,clearTimeout(l);var _=a.selection.getRange(),L=_.contains(v.row,v.column);(_.isEmpty()||!L)&&(a.selection.moveToPosition(v),a.selection.selectWord()),t="wait",x()}function $(){l=null,clearTimeout(l),a.selection.moveToPosition(v);var _=S>=2?a.selection.getLineRange(v.row):a.session.getBracketRange(v);_&&!_.isEmpty()?a.selection.setRange(_):a.selection.selectWord(),t="wait"}p.addListener(s,"contextmenu",function(_){if(g){var L=a.textInput.getElement();L.focus()}},a),p.addListener(s,"touchstart",function(_){var L=_.touches;if(l||L.length>1){clearTimeout(l),l=null,n=-1,t="zoom";return}g=a.$mouseHandler.isMousePressed=!0;var T=a.renderer.layerConfig.lineHeight,F=a.renderer.layerConfig.lineHeight,I=_.timeStamp;r=I;var B=L[0],H=B.clientX,z=B.clientY;Math.abs(e-H)+Math.abs(i-z)>T&&(n=-1),e=_.clientX=H,i=_.clientY=z,C=u=0;var U=new f(_,a);if(v=U.getDocumentPosition(),I-n<500&&L.length==1&&!m)S++,_.preventDefault(),_.button=0,$();else{S=0;var D=a.selection.cursor,P=a.selection.isEmpty()?D:a.selection.anchor,N=a.renderer.$cursorLayer.getPixelPosition(D,!0),j=a.renderer.$cursorLayer.getPixelPosition(P,!0),Y=a.renderer.scroller.getBoundingClientRect(),V=a.renderer.layerConfig.offset,J=a.renderer.scrollLeft,X=function(ve,ge){return ve=ve/F,ge=ge/T-.75,ve*ve+ge*ge};if(_.clientX<Y.left){t="zoom";return}var q=X(_.clientX-Y.left-N.left+J,_.clientY-Y.top-N.top+V),oe=X(_.clientX-Y.left-j.left+J,_.clientY-Y.top-j.top+V);q<3.5&&oe<3.5&&(t=q>oe?"cursor":"anchor"),oe<3.5?t="anchor":q<3.5?t="cursor":t="scroll",l=setTimeout(d,450)}n=I},a),p.addListener(s,"touchend",function(_){g=a.$mouseHandler.isMousePressed=!1,h&&clearInterval(h),t=="zoom"?(t="",m=0):l?(a.selection.moveToPosition(v),m=0,x()):t=="scroll"?(k(),o()):x(),clearTimeout(l),l=null},a),p.addListener(s,"touchmove",function(_){l&&(clearTimeout(l),l=null);var L=_.touches;if(!(L.length>1||t=="zoom")){var T=L[0],F=e-T.clientX,I=i-T.clientY;if(t=="wait")if(F*F+I*I>4)t="cursor";else return _.preventDefault();e=T.clientX,i=T.clientY,_.clientX=T.clientX,_.clientY=T.clientY;var B=_.timeStamp,H=B-r;if(r=B,t=="scroll"){var z=new f(_,a);z.speed=1,z.wheelX=F,z.wheelY=I,10*Math.abs(F)<Math.abs(I)&&(F=0),10*Math.abs(I)<Math.abs(F)&&(I=0),H!=0&&(C=F/H,u=I/H),a._emit("mousewheel",z),z.propagationStopped||(C=u=0)}else{var U=new f(_,a),D=U.getDocumentPosition();t=="cursor"?a.selection.moveCursorToPosition(D):t=="anchor"&&a.selection.setSelectionAnchor(D.row,D.column),a.renderer.scrollCursorIntoView(D),_.preventDefault()}}},a);function k(){m+=60,h=setInterval(function(){m--<=0&&(clearInterval(h),h=null),Math.abs(C)<.01&&(C=0),Math.abs(u)<.01&&(u=0),m<20&&(C=.9*C),m<20&&(u=.9*u);var _=a.session.getScrollTop();a.renderer.scrollBy(10*C,10*u),_==a.session.getScrollTop()&&(m=0)},10)}}}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/mouse/touch_handler","ace/config"],function(w,y,M){var f=w("../lib/event"),p=w("../lib/useragent"),c=w("./default_handlers").DefaultHandlers,s=w("./default_gutter_handler").GutterHandler,a=w("./mouse_event").MouseEvent,t=w("./dragdrop_handler").DragdropHandler,e=w("./touch_handler").addTouchListeners,i=w("../config"),n=function(r){var l=this;this.editor=r,new c(this),new s(this),new t(this);var h=function(S){var C=!document.hasFocus||!document.hasFocus()||!r.isFocused()&&document.activeElement==(r.textInput&&r.textInput.getElement());C&&window.focus(),r.focus(),setTimeout(function(){r.isFocused()||r.focus()})},m=r.renderer.getMouseEventTarget();f.addListener(m,"click",this.onMouseEvent.bind(this,"click"),r),f.addListener(m,"mousemove",this.onMouseMove.bind(this,"mousemove"),r),f.addMultiMouseDownListener([m,r.renderer.scrollBarV&&r.renderer.scrollBarV.inner,r.renderer.scrollBarH&&r.renderer.scrollBarH.inner,r.textInput&&r.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent",r),f.addMouseWheelListener(r.container,this.onMouseWheel.bind(this,"mousewheel"),r),e(r.container,r);var v=r.renderer.$gutter;f.addListener(v,"mousedown",this.onMouseEvent.bind(this,"guttermousedown"),r),f.addListener(v,"click",this.onMouseEvent.bind(this,"gutterclick"),r),f.addListener(v,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick"),r),f.addListener(v,"mousemove",this.onMouseEvent.bind(this,"guttermousemove"),r),f.addListener(m,"mousedown",h,r),f.addListener(v,"mousedown",h,r),p.isIE&&r.renderer.scrollBarV&&(f.addListener(r.renderer.scrollBarV.element,"mousedown",h,r),f.addListener(r.renderer.scrollBarH.element,"mousedown",h,r)),r.on("mousemove",function(S){if(!(l.state||l.$dragDelay||!l.$dragEnabled)){var C=r.renderer.screenToTextCoordinates(S.x,S.y),u=r.session.selection.getRange(),g=r.renderer;!u.isEmpty()&&u.insideStart(C.row,C.column)?g.setCursorStyle("default"):g.setCursorStyle("")}},r)};(function(){this.onMouseEvent=function(r,l){this.editor.session&&this.editor._emit(r,new a(l,this.editor))},this.onMouseMove=function(r,l){var h=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;!h||!h.length||this.editor._emit(r,new a(l,this.editor))},this.onMouseWheel=function(r,l){var h=new a(l,this.editor);h.speed=this.$scrollSpeed*2,h.wheelX=l.wheelX,h.wheelY=l.wheelY,this.editor._emit(r,h)},this.setState=function(r){this.state=r},this.captureMouse=function(r,l){this.x=r.x,this.y=r.y,this.isMousePressed=!0;var h=this.editor,m=this.editor.renderer;m.$isMousePressed=!0;var v=this,S=function(b){if(b){if(p.isWebKit&&!b.which&&v.releaseMouse)return v.releaseMouse();v.x=b.clientX,v.y=b.clientY,l&&l(b),v.mouseEvent=new a(b,v.editor),v.$mouseMoved=!0}},C=function(b){h.off("beforeEndOperation",g),clearInterval(A),h.session&&u(),v[v.state+"End"]&&v[v.state+"End"](b),v.state="",v.isMousePressed=m.$isMousePressed=!1,m.$keepTextAreaAtCursor&&m.$moveTextAreaToCursor(),v.$onCaptureMouseMove=v.releaseMouse=null,b&&v.onMouseEvent("mouseup",b),h.endOperation()},u=function(){v[v.state]&&v[v.state](),v.$mouseMoved=!1};if(p.isOldIE&&r.domEvent.type=="dblclick")return setTimeout(function(){C(r)});var g=function(b){v.releaseMouse&&h.curOp.command.name&&h.curOp.selectionChanged&&(v[v.state+"End"]&&v[v.state+"End"](),v.state="",v.releaseMouse())};h.on("beforeEndOperation",g),h.startOperation({command:{name:"mouse"}}),v.$onCaptureMouseMove=S,v.releaseMouse=f.capture(this.editor.container,S,C);var A=setInterval(u,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var r=function(l){l&&l.domEvent&&l.domEvent.type!="contextmenu"||(this.editor.off("nativecontextmenu",r),l&&l.domEvent&&f.stopEvent(l.domEvent))}.bind(this);setTimeout(r,10),this.editor.on("nativecontextmenu",r)},this.destroy=function(){this.releaseMouse&&this.releaseMouse()}}).call(n.prototype),i.defineOptions(n.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:p.isMac?150:0},dragEnabled:{initialValue:!0},focusTimeout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),y.MouseHandler=n}),ace.define("ace/mouse/fold_handler",["require","exports","module","ace/lib/dom"],function(w,y,M){var f=w("../lib/dom");function p(c){c.on("click",function(s){var a=s.getDocumentPosition(),t=c.session,e=t.getFoldAt(a.row,a.column,1);e&&(s.getAccelKey()?t.removeFold(e):t.expandFold(e),s.stop());var i=s.domEvent&&s.domEvent.target;i&&f.hasCssClass(i,"ace_inline_button")&&f.hasCssClass(i,"ace_toggle_wrap")&&(t.setOption("wrap",!t.getUseWrapMode()),c.renderer.scrollCursorIntoView())}),c.on("gutterclick",function(s){var a=c.renderer.$gutterLayer.getRegion(s);if(a=="foldWidgets"){var t=s.getDocumentPosition().row,e=c.session;e.foldWidgets&&e.foldWidgets[t]&&c.session.onFoldWidgetClick(t,s),c.isFocused()||c.focus(),s.stop()}}),c.on("gutterdblclick",function(s){var a=c.renderer.$gutterLayer.getRegion(s);if(a=="foldWidgets"){var t=s.getDocumentPosition().row,e=c.session,i=e.getParentFoldRangeData(t,!0),n=i.range||i.firstRange;if(n){t=n.start.row;var r=e.getFoldAt(t,e.getLine(t).length,1);r?e.removeFold(r):(e.addFold("...",n),c.renderer.scrollCursorIntoView({row:n.start.row,column:0}))}s.stop()}})}y.FoldHandler=p}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(w,y,M){var f=w("../lib/keys"),p=w("../lib/event"),c=function(s){this.$editor=s,this.$data={editor:s},this.$handlers=[],this.setDefaultHandler(s.commands)};(function(){this.setDefaultHandler=function(s){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=s,this.addKeyboardHandler(s,0)},this.setKeyboardHandler=function(s){var a=this.$handlers;if(a[a.length-1]!=s){for(;a[a.length-1]&&a[a.length-1]!=this.$defaultHandler;)this.removeKeyboardHandler(a[a.length-1]);this.addKeyboardHandler(s,1)}},this.addKeyboardHandler=function(s,a){if(s){typeof s=="function"&&!s.handleKeyboard&&(s.handleKeyboard=s);var t=this.$handlers.indexOf(s);t!=-1&&this.$handlers.splice(t,1),a==null?this.$handlers.push(s):this.$handlers.splice(a,0,s),t==-1&&s.attach&&s.attach(this.$editor)}},this.removeKeyboardHandler=function(s){var a=this.$handlers.indexOf(s);return a==-1?!1:(this.$handlers.splice(a,1),s.detach&&s.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var s=this.$data,a=s.editor;return this.$handlers.map(function(t){return t.getStatusText&&t.getStatusText(a,s)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(s,a,t,e){for(var i,n=!1,r=this.$editor.commands,l=this.$handlers.length;l--&&(i=this.$handlers[l].handleKeyboard(this.$data,s,a,t,e),!(!(!i||!i.command)&&(i.command=="null"?n=!0:n=r.exec(i.command,this.$editor,i.args,e),n&&e&&s!=-1&&i.passEvent!=!0&&i.command.passEvent!=!0&&p.stopEvent(e),n))););return!n&&s==-1&&(i={command:"insertstring"},n=r.exec("insertstring",this.$editor,a)),n&&this.$editor._signal&&this.$editor._signal("keyboardActivity",i),n},this.onCommandKey=function(s,a,t){var e=f.keyCodeToString(t);return this.$callKeyboardHandlers(a,e,t,s)},this.onTextInput=function(s){return this.$callKeyboardHandlers(-1,s)}}).call(c.prototype),y.KeyBinding=c}),ace.define("ace/lib/bidiutil",["require","exports","module"],function(w,y,M){var f=0,p=0,c=!1,s=!1,a=!1,t=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],e=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],i=0,n=1,r=0,l=1,h=2,m=3,v=4,S=5,C=6,u=7,g=8,A=9,b=10,x=11,o=12,d=13,$=14,k=15,_=16,L=17,T=18,F=[T,T,T,T,T,T,T,T,T,C,S,C,g,S,T,T,T,T,T,T,T,T,T,T,T,T,T,T,S,S,S,C,g,v,v,x,x,x,v,v,v,v,v,b,A,b,A,A,h,h,h,h,h,h,h,h,h,h,A,v,v,v,v,v,v,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,v,v,v,v,v,v,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,r,v,v,v,v,T,T,T,T,T,T,S,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,T,A,v,x,x,x,x,v,v,v,v,r,v,v,T,v,v,x,x,h,h,v,r,v,v,v,h,r,v,v,v,v,v],I=[g,g,g,g,g,g,g,g,g,g,g,T,T,T,r,l,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,g,S,d,$,k,_,L,A,x,x,x,x,x,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,A,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,v,g];function B(D,P,N,j){var Y=f?e:t,V=null,J=null,X=null,q=0,oe=null,ve=null,ge=-1,le=null,Se=null,Fe=[];if(!j)for(le=0,j=[];le<N;le++)j[le]=U(D[le]);for(p=f,c=!1,s=!1,a=!1,Se=0;Se<N;Se++){if(V=q,Fe[Se]=J=z(D,j,Fe,Se),q=Y[V][J],oe=q&240,q&=15,P[Se]=X=Y[q][5],oe>0)if(oe==16){for(le=ge;le<Se;le++)P[le]=1;ge=-1}else ge=-1;if(ve=Y[q][6],ve)ge==-1&&(ge=Se);else if(ge>-1){for(le=ge;le<Se;le++)P[le]=X;ge=-1}j[Se]==S&&(P[Se]=0),p|=X}if(a){for(le=0;le<N;le++)if(j[le]==C){P[le]=f;for(var Le=le-1;Le>=0&&j[Le]==g;Le--)P[Le]=f}}}function H(D,P,N){if(!(p<D)){if(D==1&&f==n&&!s){N.reverse();return}for(var j=N.length,Y=0,V,J,X,q;Y<j;){if(P[Y]>=D){for(V=Y+1;V<j&&P[V]>=D;)V++;for(J=Y,X=V-1;J<X;J++,X--)q=N[J],N[J]=N[X],N[X]=q;Y=V}Y++}}}function z(D,P,N,j){var Y=P[j],V,J,X,q;switch(Y){case r:case l:c=!1;case v:case m:return Y;case h:return c?m:h;case u:return c=!0,l;case g:return v;case A:return j<1||j+1>=P.length||(V=N[j-1])!=h&&V!=m||(J=P[j+1])!=h&&J!=m?v:(c&&(J=m),J==V?J:v);case b:return V=j>0?N[j-1]:S,V==h&&j+1<P.length&&P[j+1]==h?h:v;case x:if(j>0&&N[j-1]==h)return h;if(c)return v;for(q=j+1,X=P.length;q<X&&P[q]==x;)q++;return q<X&&P[q]==h?h:v;case o:for(X=P.length,q=j+1;q<X&&P[q]==o;)q++;if(q<X){var oe=D[j],ve=oe>=1425&&oe<=2303||oe==64286;if(V=P[q],ve&&(V==l||V==u))return l}return j<1||(V=P[j-1])==S?v:N[j-1];case S:return c=!1,s=!0,f;case C:return a=!0,v;case d:case $:case _:case L:case k:c=!1;case T:return v}}function U(D){var P=D.charCodeAt(0),N=P>>8;return N==0?P>191?r:F[P]:N==5?/[\u0591-\u05f4]/.test(D)?l:r:N==6?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(D)?o:/[\u0660-\u0669\u066b-\u066c]/.test(D)?m:P==1642?x:/[\u06f0-\u06f9]/.test(D)?h:u:N==32&&P<=8287?I[P&255]:N==254&&P>=65136?u:v}y.L=r,y.R=l,y.EN=h,y.ON_R=3,y.AN=4,y.R_H=5,y.B=6,y.RLE=7,y.DOT="·",y.doBidiReorder=function(D,P,N){if(D.length<2)return{};var j=D.split(""),Y=new Array(j.length),V=new Array(j.length),J=[];f=N?n:i,B(j,J,j.length,P);for(var X=0;X<Y.length;Y[X]=X,X++);H(2,J,Y),H(1,J,Y);for(var X=0;X<Y.length-1;X++)P[X]===m?J[X]=y.AN:J[X]===l&&(P[X]>u&&P[X]<d||P[X]===v||P[X]===T)?J[X]=y.ON_R:X>0&&j[X-1]==="ل"&&/\u0622|\u0623|\u0625|\u0627/.test(j[X])&&(J[X-1]=J[X]=y.R_H,X++);j[j.length-1]===y.DOT&&(J[j.length-1]=y.B),j[0]===""&&(J[0]=y.RLE);for(var X=0;X<Y.length;X++)V[X]=J[Y[X]];return{logicalFromVisual:Y,bidiLevels:V}},y.hasBidiCharacters=function(D,P){for(var N=!1,j=0;j<D.length;j++)P[j]=U(D.charAt(j)),!N&&(P[j]==l||P[j]==u||P[j]==m)&&(N=!0);return N},y.getVisualFromLogicalIdx=function(D,P){for(var N=0;N<P.logicalFromVisual.length;N++)if(P.logicalFromVisual[N]==D)return N;return 0}}),ace.define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang"],function(w,y,M){var f=w("./lib/bidiutil"),p=w("./lib/lang"),c=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\u202B]/,s=function(a){this.session=a,this.bidiMap={},this.currentRow=null,this.bidiUtil=f,this.charWidths=[],this.EOL="¬",this.showInvisibles=!0,this.isRtlDir=!1,this.$isRtl=!1,this.line="",this.wrapIndent=0,this.EOF="¶",this.RLE="",this.contentWidth=0,this.fontMetrics=null,this.rtlLineOffset=0,this.wrapOffset=0,this.isMoveLeftOperation=!1,this.seenBidi=c.test(a.getValue())};(function(){this.isBidiRow=function(a,t,e){return this.seenBidi?(a!==this.currentRow&&(this.currentRow=a,this.updateRowLine(t,e),this.updateBidiMap()),this.bidiMap.bidiLevels):!1},this.onChange=function(a){this.seenBidi?this.currentRow=null:a.action=="insert"&&c.test(a.lines.join(` `))&&(this.seenBidi=!0,this.currentRow=null)},this.getDocumentRow=function(){var a=0,t=this.session.$screenRowCache;if(t.length){var e=this.session.$getRowCacheIndex(t,this.currentRow);e>=0&&(a=this.session.$docRowCache[e])}return a},this.getSplitIndex=function(){var a=0,t=this.session.$screenRowCache;if(t.length)for(var e,i=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-a>0&&(e=this.session.$getRowCacheIndex(t,this.currentRow-a-1),e===i);)i=e,a++;else a=this.currentRow;return a},this.updateRowLine=function(a,t){a===void 0&&(a=this.getDocumentRow());var e=a===this.session.getLength()-1,i=e?this.EOF:this.EOL;if(this.wrapIndent=0,this.line=this.session.getLine(a),this.isRtlDir=this.$isRtl||this.line.charAt(0)===this.RLE,this.session.$useWrapMode){var n=this.session.$wrapData[a];n&&(t===void 0&&(t=this.getSplitIndex()),t>0&&n.length?(this.wrapIndent=n.indent,this.wrapOffset=this.wrapIndent*this.charWidths[f.L],this.line=t<n.length?this.line.substring(n[t-1],n[t]):this.line.substring(n[n.length-1])):this.line=this.line.substring(0,n[t]),t==n.length&&(this.line+=this.showInvisibles?i:f.DOT))}else this.line+=this.showInvisibles?i:f.DOT;var r=this.session,l=0,h;this.line=this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g,function(m,v){return m===" "||r.isFullWidth(m.charCodeAt(0))?(h=m===" "?r.getScreenTabSize(v+l):2,l+=h-1,p.stringRepeat(f.DOT,h)):m}),this.isRtlDir&&(this.fontMetrics.$main.textContent=this.line.charAt(this.line.length-1)==f.DOT?this.line.substr(0,this.line.length-1):this.line,this.rtlLineOffset=this.contentWidth-this.fontMetrics.$main.getBoundingClientRect().width)},this.updateBidiMap=function(){var a=[];f.hasBidiCharacters(this.line,a)||this.isRtlDir?this.bidiMap=f.doBidiReorder(this.line,a,this.isRtlDir):this.bidiMap={}},this.markAsDirty=function(){this.currentRow=null},this.updateCharacterWidths=function(a){if(this.characterWidth!==a.$characterSize.width){this.fontMetrics=a;var t=this.characterWidth=a.$characterSize.width,e=a.$measureCharWidth("ה");this.charWidths[f.L]=this.charWidths[f.EN]=this.charWidths[f.ON_R]=t,this.charWidths[f.R]=this.charWidths[f.AN]=e,this.charWidths[f.R_H]=e*.45,this.charWidths[f.B]=this.charWidths[f.RLE]=0,this.currentRow=null}},this.setShowInvisibles=function(a){this.showInvisibles=a,this.currentRow=null},this.setEolChar=function(a){this.EOL=a},this.setContentWidth=function(a){this.contentWidth=a},this.isRtlLine=function(a){return this.$isRtl?!0:a!=null?this.session.getLine(a).charAt(0)==this.RLE:this.isRtlDir},this.setRtlDirection=function(a,t){for(var e=a.getCursorPosition(),i=a.selection.getSelectionAnchor().row;i<=e.row;i++)!t&&a.session.getLine(i).charAt(0)===a.session.$bidiHandler.RLE?a.session.doc.removeInLine(i,0,1):t&&a.session.getLine(i).charAt(0)!==a.session.$bidiHandler.RLE&&a.session.doc.insert({column:0,row:i},a.session.$bidiHandler.RLE)},this.getPosLeft=function(a){a-=this.wrapIndent;var t=this.line.charAt(0)===this.RLE?1:0,e=a>t?this.session.getOverwrite()?a:a-1:t,i=f.getVisualFromLogicalIdx(e,this.bidiMap),n=this.bidiMap.bidiLevels,r=0;!this.session.getOverwrite()&&a<=t&&n[i]%2!==0&&i++;for(var l=0;l<i;l++)r+=this.charWidths[n[l]];return!this.session.getOverwrite()&&a>t&&n[i]%2===0&&(r+=this.charWidths[n[i]]),this.wrapIndent&&(r+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset),this.isRtlDir&&(r+=this.rtlLineOffset),r},this.getSelections=function(a,t){var e=this.bidiMap,i=e.bidiLevels,n,r=[],l=0,h=Math.min(a,t)-this.wrapIndent,m=Math.max(a,t)-this.wrapIndent,v=!1,S=!1,C=0;this.wrapIndent&&(l+=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);for(var u,g=0;g<i.length;g++)u=e.logicalFromVisual[g],n=i[g],v=u>=h&&u<m,v&&!S?C=l:!v&&S&&r.push({left:C,width:l-C}),l+=this.charWidths[n],S=v;if(v&&g===i.length&&r.push({left:C,width:l-C}),this.isRtlDir)for(var A=0;A<r.length;A++)r[A].left+=this.rtlLineOffset;return r},this.offsetToCol=function(e){this.isRtlDir&&(e-=this.rtlLineOffset);var t=0,e=Math.max(e,0),i=0,n=0,r=this.bidiMap.bidiLevels,l=this.charWidths[r[n]];for(this.wrapIndent&&(e-=this.isRtlDir?-1*this.wrapOffset:this.wrapOffset);e>i+l/2;){if(i+=l,n===r.length-1){l=0;break}l=this.charWidths[r[++n]]}return n>0&&r[n-1]%2!==0&&r[n]%2===0?(e<i&&n--,t=this.bidiMap.logicalFromVisual[n]):n>0&&r[n-1]%2===0&&r[n]%2!==0?t=1+(e>i?this.bidiMap.logicalFromVisual[n]:this.bidiMap.logicalFromVisual[n-1]):this.isRtlDir&&n===r.length-1&&l===0&&r[n-1]%2===0||!this.isRtlDir&&n===0&&r[n]%2!==0?t=1+this.bidiMap.logicalFromVisual[n]:(n>0&&r[n-1]%2!==0&&l!==0&&n--,t=this.bidiMap.logicalFromVisual[n]),t===0&&this.isRtlDir&&t++,t+this.wrapIndent}}).call(s.prototype),y.BidiHandler=s}),ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(w,y,M){var f=w("./lib/oop"),p=w("./lib/lang"),c=w("./lib/event_emitter").EventEmitter,s=w("./range").Range,a=function(t){this.session=t,this.doc=t.getDocument(),this.clearSelection(),this.cursor=this.lead=this.doc.createAnchor(0,0),this.anchor=this.doc.createAnchor(0,0),this.$silent=!1;var e=this;this.cursor.on("change",function(i){e.$cursorChanged=!0,e.$silent||e._emit("changeCursor"),!e.$isEmpty&&!e.$silent&&e._emit("changeSelection"),!e.$keepDesiredColumnOnChange&&i.old.column!=i.value.column&&(e.$desiredColumn=null)}),this.anchor.on("change",function(){e.$anchorChanged=!0,!e.$isEmpty&&!e.$silent&&e._emit("changeSelection")})};(function(){f.implement(this,c),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return!this.$isEmpty&&this.anchor.row!=this.cursor.row},this.getCursor=function(){return this.lead.getPosition()},this.setAnchor=function(t,e){this.$isEmpty=!1,this.anchor.setPosition(t,e)},this.setSelectionAnchor=this.setAnchor,this.getAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionAnchor=this.getAnchor,this.getSelectionLead=function(){return this.lead.getPosition()},this.isBackwards=function(){var t=this.anchor,e=this.lead;return t.row>e.row||t.row==e.row&&t.column>e.column},this.getRange=function(){var t=this.anchor,e=this.lead;return this.$isEmpty?s.fromPoints(e,e):this.isBackwards()?s.fromPoints(e,t):s.fromPoints(t,e)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){this.$setSelection(0,0,Number.MAX_VALUE,Number.MAX_VALUE)},this.setRange=this.setSelectionRange=function(t,e){var i=e?t.end:t.start,n=e?t.start:t.end;this.$setSelection(i.row,i.column,n.row,n.column)},this.$setSelection=function(t,e,i,n){if(!this.$silent){var r=this.$isEmpty,l=this.inMultiSelectMode;this.$silent=!0,this.$cursorChanged=this.$anchorChanged=!1,this.anchor.setPosition(t,e),this.cursor.setPosition(i,n),this.$isEmpty=!s.comparePoints(this.anchor,this.cursor),this.$silent=!1,this.$cursorChanged&&this._emit("changeCursor"),(this.$cursorChanged||this.$anchorChanged||r!=this.$isEmpty||l)&&this._emit("changeSelection")}},this.$moveSelection=function(t){var e=this.lead;this.$isEmpty&&this.setSelectionAnchor(e.row,e.column),t.call(this)},this.selectTo=function(t,e){this.$moveSelection(function(){this.moveCursorTo(t,e)})},this.selectToPosition=function(t){this.$moveSelection(function(){this.moveCursorToPosition(t)})},this.moveTo=function(t,e){this.clearSelection(),this.moveCursorTo(t,e)},this.moveToPosition=function(t){this.clearSelection(),this.moveCursorToPosition(t)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(t,e){if(typeof e>"u"){var i=t||this.lead;t=i.row,e=i.column}return this.session.getWordRange(t,e)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var t=this.getCursor(),e=this.session.getAWordRange(t.row,t.column);this.setSelectionRange(e)},this.getLineRange=function(t,e){var i=typeof t=="number"?t:this.lead.row,n,r=this.session.getFoldLine(i);return r?(i=r.start.row,n=r.end.row):n=i,e===!0?new s(i,0,n,this.session.getLine(n).length):new s(i,0,n+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(t,e,i){var n=t.column,r=t.column+e;return i<0&&(n=t.column-e,r=t.column),this.session.isTabStop(t)&&this.doc.getLine(t.row).slice(n,r).split(" ").length-1==e},this.moveCursorLeft=function(){var t=this.lead.getPosition(),e;if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(t.column===0)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,i,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var t=this.lead.getPosition(),e;if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var i=this.session.getTabSize(),t=this.lead;this.wouldMoveIntoSoftTab(t,i,1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,i):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var t=this.lead.row,e=this.lead.column,i=this.session.documentToScreenRow(t,e),n=this.session.screenToDocumentPosition(i,0),r=this.session.getDisplayLine(t,null,n.row,n.column),l=r.match(/^\s*/);l[0].length!=e&&!this.session.$useEmacsStyleLineStart&&(n.column+=l[0].length),this.moveCursorToPosition(n)},this.moveCursorLineEnd=function(){var t=this.lead,e=this.session.getDocumentLastRowColumnPosition(t.row,t.column);if(this.lead.column==e.column){var i=this.session.getLine(e.row);if(e.column==i.length){var n=i.search(/\s+$/);n>0&&(e.column=n)}}this.moveCursorTo(e.row,e.column)},this.moveCursorFileEnd=function(){var t=this.doc.getLength()-1,e=this.doc.getLine(t).length;this.moveCursorTo(t,e)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var t=this.lead.row,e=this.lead.column,i=this.doc.getLine(t),n=i.substring(e);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var r=this.session.getFoldAt(t,e,1);if(r){this.moveCursorTo(r.end.row,r.end.column);return}if(this.session.nonTokenRe.exec(n)&&(e+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,n=i.substring(e)),e>=i.length){this.moveCursorTo(t,i.length),this.moveCursorRight(),t<this.doc.getLength()-1&&this.moveCursorWordRight();return}this.session.tokenRe.exec(n)&&(e+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,e)},this.moveCursorLongWordLeft=function(){var t=this.lead.row,e=this.lead.column,i;if(i=this.session.getFoldAt(t,e,-1)){this.moveCursorTo(i.start.row,i.start.column);return}var n=this.session.getFoldStringAt(t,e,-1);n==null&&(n=this.doc.getLine(t).substring(0,e));var r=p.stringReverse(n);if(this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0,this.session.nonTokenRe.exec(r)&&(e-=this.session.nonTokenRe.lastIndex,r=r.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0),e<=0){this.moveCursorTo(t,0),this.moveCursorLeft(),t>0&&this.moveCursorWordLeft();return}this.session.tokenRe.exec(r)&&(e-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),this.moveCursorTo(t,e)},this.$shortWordEndIndex=function(t){var e=0,i,n=/\s/,r=this.session.tokenRe;if(r.lastIndex=0,this.session.tokenRe.exec(t))e=this.session.tokenRe.lastIndex;else{for(;(i=t[e])&&n.test(i);)e++;if(e<1){for(r.lastIndex=0;(i=t[e])&&!r.test(i);)if(r.lastIndex=0,e++,n.test(i))if(e>2){e--;break}else{for(;(i=t[e])&&n.test(i);)e++;if(e>2)break}}}return r.lastIndex=0,e},this.moveCursorShortWordRight=function(){var t=this.lead.row,e=this.lead.column,i=this.doc.getLine(t),n=i.substring(e),r=this.session.getFoldAt(t,e,1);if(r)return this.moveCursorTo(r.end.row,r.end.column);if(e==i.length){var l=this.doc.getLength();do t++,n=this.doc.getLine(t);while(t<l&&/^\s*$/.test(n));/^\s+/.test(n)||(n=""),e=0}var h=this.$shortWordEndIndex(n);this.moveCursorTo(t,e+h)},this.moveCursorShortWordLeft=function(){var t=this.lead.row,e=this.lead.column,i;if(i=this.session.getFoldAt(t,e,-1))return this.moveCursorTo(i.start.row,i.start.column);var n=this.session.getLine(t).substring(0,e);if(e===0){do t--,n=this.doc.getLine(t);while(t>0&&/^\s*$/.test(n));e=n.length,/\s+$/.test(n)||(n="")}var r=p.stringReverse(n),l=this.$shortWordEndIndex(r);return this.moveCursorTo(t,e-l)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(t,e){var i=this.session.documentToScreenPosition(this.lead.row,this.lead.column),n;if(e===0&&(t!==0&&(this.session.$bidiHandler.isBidiRow(i.row,this.lead.row)?(n=this.session.$bidiHandler.getPosLeft(i.column),i.column=Math.round(n/this.session.$bidiHandler.charWidths[0])):n=i.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?i.column=this.$desiredColumn:this.$desiredColumn=i.column),t!=0&&this.session.lineWidgets&&this.session.lineWidgets[this.lead.row]){var r=this.session.lineWidgets[this.lead.row];t<0?t-=r.rowsAbove||0:t>0&&(t+=r.rowCount-(r.rowsAbove||0))}var l=this.session.screenToDocumentPosition(i.row+t,i.column,n);t!==0&&e===0&&l.row===this.lead.row&&(l.column,this.lead.column),this.moveCursorTo(l.row,l.column+e,e===0)},this.moveCursorToPosition=function(t){this.moveCursorTo(t.row,t.column)},this.moveCursorTo=function(t,e,i){var n=this.session.getFoldAt(t,e,1);n&&(t=n.start.row,e=n.start.column),this.$keepDesiredColumnOnChange=!0;var r=this.session.getLine(t);/[\uDC00-\uDFFF]/.test(r.charAt(e))&&r.charAt(e-1)&&(this.lead.row==t&&this.lead.column==e+1?e=e-1:e=e+1),this.lead.setPosition(t,e),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(t,e,i){var n=this.session.screenToDocumentPosition(t,e);this.moveCursorTo(n.row,n.column,i)},this.detach=function(){this.lead.detach(),this.anchor.detach()},this.fromOrientedRange=function(t){this.setSelectionRange(t,t.cursor==t.start),this.$desiredColumn=t.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(t){var e=this.getRange();return t?(t.start.column=e.start.column,t.start.row=e.start.row,t.end.column=e.end.column,t.end.row=e.end.row):t=e,t.cursor=this.isBackwards()?t.start:t.end,t.desiredColumn=this.$desiredColumn,t},this.getRangeOfMovements=function(t){var e=this.getCursor();try{t(this);var i=this.getCursor();return s.fromPoints(e,i)}catch{return s.fromPoints(e,e)}finally{this.moveCursorToPosition(e)}},this.toJSON=function(){if(this.rangeCount)var t=this.ranges.map(function(e){var i=e.clone();return i.isBackwards=e.cursor==e.start,i});else{var t=this.getRange();t.isBackwards=this.isBackwards()}return t},this.fromJSON=function(t){if(t.start==null)if(this.rangeList&&t.length>1){this.toSingleRange(t[0]);for(var e=t.length;e--;){var i=s.fromPoints(t[e].start,t[e].end);t[e].isBackwards&&(i.cursor=i.start),this.addRange(i,!0)}return}else t=t[0];this.rangeList&&this.toSingleRange(t),this.setSelectionRange(t,t.isBackwards)},this.isEqual=function(t){if((t.length||this.rangeCount)&&t.length!=this.rangeCount)return!1;if(!t.length||!this.ranges)return this.getRange().isEqual(t);for(var e=this.ranges.length;e--;)if(!this.ranges[e].isEqual(t[e]))return!1;return!0}}).call(a.prototype),y.Selection=a}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(w,y,M){var f=w("./config"),p=2e3,c=function(s){this.states=s,this.regExps={},this.matchMappings={};for(var a in this.states){for(var t=this.states[a],e=[],i=0,n=this.matchMappings[a]={defaultToken:"text"},r="g",l=[],h=0;h<t.length;h++){var m=t[h];if(m.defaultToken&&(n.defaultToken=m.defaultToken),m.caseInsensitive&&r.indexOf("i")===-1&&(r+="i"),m.unicode&&r.indexOf("u")===-1&&(r+="u"),m.regex!=null){m.regex instanceof RegExp&&(m.regex=m.regex.toString().slice(1,-1));var v=m.regex,S=new RegExp("(?:("+v+")|(.))").exec("a").length-2;Array.isArray(m.token)?m.token.length==1||S==1?m.token=m.token[0]:S-1!=m.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:m,groupCount:S-1}),m.token=m.token[0]):(m.tokenArray=m.token,m.token=null,m.onMatch=this.$arrayTokens):typeof m.token=="function"&&!m.onMatch&&(S>1?m.onMatch=this.$applyToken:m.onMatch=m.token),S>1&&(/\\\d/.test(m.regex)?v=m.regex.replace(/\\([0-9]+)/g,function(C,u){return"\\"+(parseInt(u,10)+i+1)}):(S=1,v=this.removeCapturingGroups(m.regex)),!m.splitRegex&&typeof m.token!="string"&&l.push(m)),n[i]=h,i+=S,e.push(v),m.onMatch||(m.onMatch=null)}}e.length||(n[0]=0,e.push("$")),l.forEach(function(C){C.splitRegex=this.createSplitterRegexp(C.regex,r)},this),this.regExps[a]=new RegExp("("+e.join(")|(")+")|($)",r)}};(function(){this.$setMaxTokenCount=function(s){p=s|0},this.$applyToken=function(s){var a=this.splitRegex.exec(s).slice(1),t=this.token.apply(this,a);if(typeof t=="string")return[{type:t,value:s}];for(var e=[],i=0,n=t.length;i<n;i++)a[i]&&(e[e.length]={type:t[i],value:a[i]});return e},this.$arrayTokens=function(s){if(!s)return[];var a=this.splitRegex.exec(s);if(!a)return"text";for(var t=[],e=this.tokenArray,i=0,n=e.length;i<n;i++)a[i+1]&&(t[t.length]={type:e[i],value:a[i+1]});return t},this.removeCapturingGroups=function(s){var a=s.replace(/\\.|\[(?:\\.|[^\\\]])*|\(\?[:=!<]|(\()/g,function(t,e){return e?"(?:":t});return a},this.createSplitterRegexp=function(s,a){if(s.indexOf("(?=")!=-1){var t=0,e=!1,i={};s.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(n,r,l,h,m,v){return e?e=m!="]":m?e=!0:h?(t==i.stack&&(i.end=v+1,i.stack=-1),t--):l&&(t++,l.length!=1&&(i.stack=t,i.start=v)),n}),i.end!=null&&/^\)*$/.test(s.substr(i.end))&&(s=s.substring(0,i.start)+s.substr(i.end))}return s.charAt(0)!="^"&&(s="^"+s),s.charAt(s.length-1)!="$"&&(s+="$"),new RegExp(s,(a||"").replace("g",""))},this.getLineTokens=function(s,a){if(a&&typeof a!="string"){var t=a.slice(0);a=t[0],a==="#tmp"&&(t.shift(),a=t.shift())}else var t=[];var e=a||"start",i=this.states[e];i||(e="start",i=this.states[e]);var n=this.matchMappings[e],r=this.regExps[e];r.lastIndex=0;for(var l,h=[],m=0,v=0,S={type:null,value:""};l=r.exec(s);){var C=n.defaultToken,u=null,g=l[0],A=r.lastIndex;if(A-g.length>m){var b=s.substring(m,A-g.length);S.type==C?S.value+=b:(S.type&&h.push(S),S={type:C,value:b})}for(var x=0;x<l.length-2;x++)if(l[x+1]!==void 0){u=i[n[x]],u.onMatch?C=u.onMatch(g,e,t,s):C=u.token,u.next&&(typeof u.next=="string"?e=u.next:e=u.next(e,t),i=this.states[e],i||(this.reportError("state doesn't exist",e),e="start",i=this.states[e]),n=this.matchMappings[e],m=A,r=this.regExps[e],r.lastIndex=A),u.consumeLineEnd&&(m=A);break}if(g){if(typeof C=="string")(!u||u.merge!==!1)&&S.type===C?S.value+=g:(S.type&&h.push(S),S={type:C,value:g});else if(C){S.type&&h.push(S),S={type:null,value:""};for(var x=0;x<C.length;x++)h.push(C[x])}}if(m==s.length)break;if(m=A,v++>p){for(v>2*s.length&&this.reportError("infinite loop with in ace tokenizer",{startState:a,line:s});m<s.length;)S.type&&h.push(S),S={value:s.substring(m,m+=500),type:"overflow"};e="start",t=[];break}}return S.type&&h.push(S),t.length>1&&t[0]!==e&&t.unshift("#tmp",e),{tokens:h,state:t.length?t:e}},this.reportError=f.reportError}).call(c.prototype),y.Tokenizer=c}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(w,y,M){var f=w("../lib/lang"),p=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(a,t){if(!t){for(var e in a)this.$rules[e]=a[e];return}for(var e in a){for(var i=a[e],n=0;n<i.length;n++){var r=i[n];(r.next||r.onMatch)&&(typeof r.next=="string"&&r.next.indexOf(t)!==0&&(r.next=t+r.next),r.nextState&&r.nextState.indexOf(t)!==0&&(r.nextState=t+r.nextState))}this.$rules[t+e]=i}},this.getRules=function(){return this.$rules},this.embedRules=function(a,t,e,i,n){var r=typeof a=="function"?new a().getRules():a;if(i)for(var l=0;l<i.length;l++)i[l]=t+i[l];else{i=[];for(var h in r)i.push(t+h)}if(this.addRules(r,t),e)for(var m=Array.prototype[n?"push":"unshift"],l=0;l<i.length;l++)m.apply(this.$rules[i[l]],f.deepCopy(e));this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var c=function(a,t){return(a!="start"||t.length)&&t.unshift(this.nextState,a),this.nextState},s=function(a,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){var a=0,t=this.$rules;function e(i){var n=t[i];n.processed=!0;for(var r=0;r<n.length;r++){var l=n[r],h=null;Array.isArray(l)&&(h=l,l={}),!l.regex&&l.start&&(l.regex=l.start,l.next||(l.next=[]),l.next.push({defaultToken:l.token},{token:l.token+".end",regex:l.end||l.start,next:"pop"}),l.token=l.token+".start",l.push=!0);var m=l.next||l.push;if(m&&Array.isArray(m)){var v=l.stateName;v||(v=l.token,typeof v!="string"&&(v=v[0]||""),t[v]&&(v+=a++)),t[v]=m,l.next=v,e(v)}else m=="pop"&&(l.next=s);if(l.push&&(l.nextState=l.next||l.push,l.next=c,delete l.push),l.rules)for(var S in l.rules)t[S]?t[S].push&&t[S].push.apply(t[S],l.rules[S]):t[S]=l.rules[S];var C=typeof l=="string"?l:l.include;if(C&&(Array.isArray(C)?h=C.map(function(g){return t[g]}):h=t[C]),h){var u=[r,1].concat(h);l.noEscape&&(u=u.filter(function(g){return!g.next})),n.splice.apply(n,u),r--}l.keywordMap&&(l.token=this.createKeywordMapper(l.keywordMap,l.defaultToken||"text",l.caseInsensitive),delete l.defaultToken)}}Object.keys(t).forEach(e,this)},this.createKeywordMapper=function(a,t,e,i){var n=Object.create(null);return this.$keywordList=[],Object.keys(a).forEach(function(r){for(var l=a[r],h=l.split(i||"|"),m=h.length;m--;){var v=h[m];this.$keywordList.push(v),e&&(v=v.toLowerCase()),n[v]=r}},this),a=null,e?function(r){return n[r.toLowerCase()]||t}:function(r){return n[r]||t}},this.getKeywords=function(){return this.$keywords}}).call(p.prototype),y.TextHighlightRules=p}),ace.define("ace/mode/behaviour",["require","exports","module"],function(w,y,M){var f=function(){this.$behaviours={}};(function(){this.add=function(p,c,s){switch(void 0){case this.$behaviours:this.$behaviours={};case this.$behaviours[p]:this.$behaviours[p]={}}this.$behaviours[p][c]=s},this.addBehaviours=function(p){for(var c in p)for(var s in p[c])this.add(c,s,p[c][s])},this.remove=function(p){this.$behaviours&&this.$behaviours[p]&&delete this.$behaviours[p]},this.inherit=function(p,c){if(typeof p=="function")var s=new p().getBehaviours(c);else var s=p.getBehaviours(c);this.addBehaviours(s)},this.getBehaviours=function(p){if(p){for(var c={},s=0;s<p.length;s++)this.$behaviours[p[s]]&&(c[p[s]]=this.$behaviours[p[s]]);return c}else return this.$behaviours}}).call(f.prototype),y.Behaviour=f}),ace.define("ace/token_iterator",["require","exports","module","ace/range"],function(w,y,M){var f=w("./range").Range,p=function(c,s,a){this.$session=c,this.$row=s,this.$rowTokens=c.getTokens(s);var t=c.getTokenAt(s,a);this.$tokenIndex=t?t.index:-1};(function(){this.stepBackward=function(){for(this.$tokenIndex-=1;this.$tokenIndex<0;){if(this.$row-=1,this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;for(var c;this.$tokenIndex>=this.$rowTokens.length;){if(this.$row+=1,c||(c=this.$session.getLength()),this.$row>=c)return this.$row=c-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var c=this.$rowTokens,s=this.$tokenIndex,a=c[s].start;if(a!==void 0)return a;for(a=0;s>0;)s-=1,a+=c[s].value.length;return a},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var c=this.$rowTokens[this.$tokenIndex],s=this.getCurrentTokenColumn();return new f(this.$row,s,this.$row,s+c.value.length)}}).call(p.prototype),y.TokenIterator=p}),ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(w,y,M){var f=w("../../lib/oop"),p=w("../behaviour").Behaviour,c=w("../../token_iterator").TokenIterator,s=w("../../lib/lang"),a=["text","paren.rparen","rparen","paren","punctuation.operator"],t=["text","paren.rparen","rparen","paren","punctuation.operator","comment"],e,i={},n={'"':'"',"'":"'"},r=function(m){var v=-1;if(m.multiSelect&&(v=m.selection.index,i.rangeCount!=m.multiSelect.rangeCount&&(i={rangeCount:m.multiSelect.rangeCount})),i[v])return e=i[v];e=i[v]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},l=function(m,v,S,C){var u=m.end.row-m.start.row;return{text:S+v+C,selection:[0,m.start.column+1,u,m.end.column+(u?0:1)]}},h=function(m){this.add("braces","insertion",function(v,S,C,u,g){var A=C.getCursorPosition(),b=u.doc.getLine(A.row);if(g=="{"){r(C);var x=C.getSelectionRange(),o=u.doc.getTextRange(x);if(o!==""&&o!=="{"&&C.getWrapBehavioursEnabled())return l(x,o,"{","}");if(h.isSaneInsertion(C,u))return/[\]\}\)]/.test(b[A.column])||C.inMultiSelectMode||m&&m.braces?(h.recordAutoInsert(C,u,"}"),{text:"{}",selection:[1,1]}):(h.recordMaybeInsert(C,u,"{"),{text:"{",selection:[1,1]})}else if(g=="}"){r(C);var d=b.substring(A.column,A.column+1);if(d=="}"){var $=u.$findOpeningBracket("}",{column:A.column+1,row:A.row});if($!==null&&h.isAutoInsertedClosing(A,b,g))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else if(g==` `||g==`\r `){r(C);var k="";h.isMaybeInsertedClosing(A,b)&&(k=s.stringRepeat("}",e.maybeInsertedBrackets),h.clearMaybeInsertedClosing());var d=b.substring(A.column,A.column+1);if(d==="}"){var _=u.findMatchingBracket({row:A.row,column:A.column+1},"}");if(!_)return null;var L=this.$getIndent(u.getLine(_.row))}else if(k)var L=this.$getIndent(b);else{h.clearMaybeInsertedClosing();return}var T=L+u.getTabString();return{text:` `+T+` `+L+k,selection:[1,T.length,1,T.length]}}else h.clearMaybeInsertedClosing()}),this.add("braces","deletion",function(v,S,C,u,g){var A=u.doc.getTextRange(g);if(!g.isMultiLine()&&A=="{"){r(C);var b=u.doc.getLine(g.start.row),x=b.substring(g.end.column,g.end.column+1);if(x=="}")return g.end.column++,g;e.maybeInsertedBrackets--}}),this.add("parens","insertion",function(v,S,C,u,g){if(g=="("){r(C);var A=C.getSelectionRange(),b=u.doc.getTextRange(A);if(b!==""&&C.getWrapBehavioursEnabled())return l(A,b,"(",")");if(h.isSaneInsertion(C,u))return h.recordAutoInsert(C,u,")"),{text:"()",selection:[1,1]}}else if(g==")"){r(C);var x=C.getCursorPosition(),o=u.doc.getLine(x.row),d=o.substring(x.column,x.column+1);if(d==")"){var $=u.$findOpeningBracket(")",{column:x.column+1,row:x.row});if($!==null&&h.isAutoInsertedClosing(x,o,g))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(v,S,C,u,g){var A=u.doc.getTextRange(g);if(!g.isMultiLine()&&A=="("){r(C);var b=u.doc.getLine(g.start.row),x=b.substring(g.start.column+1,g.start.column+2);if(x==")")return g.end.column++,g}}),this.add("brackets","insertion",function(v,S,C,u,g){if(g=="["){r(C);var A=C.getSelectionRange(),b=u.doc.getTextRange(A);if(b!==""&&C.getWrapBehavioursEnabled())return l(A,b,"[","]");if(h.isSaneInsertion(C,u))return h.recordAutoInsert(C,u,"]"),{text:"[]",selection:[1,1]}}else if(g=="]"){r(C);var x=C.getCursorPosition(),o=u.doc.getLine(x.row),d=o.substring(x.column,x.column+1);if(d=="]"){var $=u.$findOpeningBracket("]",{column:x.column+1,row:x.row});if($!==null&&h.isAutoInsertedClosing(x,o,g))return h.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(v,S,C,u,g){var A=u.doc.getTextRange(g);if(!g.isMultiLine()&&A=="["){r(C);var b=u.doc.getLine(g.start.row),x=b.substring(g.start.column+1,g.start.column+2);if(x=="]")return g.end.column++,g}}),this.add("string_dquotes","insertion",function(v,S,C,u,g){var A=u.$mode.$quotes||n;if(g.length==1&&A[g]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(g)!=-1)return;r(C);var b=g,x=C.getSelectionRange(),o=u.doc.getTextRange(x);if(o!==""&&(o.length!=1||!A[o])&&C.getWrapBehavioursEnabled())return l(x,o,b,b);if(!o){var d=C.getCursorPosition(),$=u.doc.getLine(d.row),k=$.substring(d.column-1,d.column),_=$.substring(d.column,d.column+1),L=u.getTokenAt(d.row,d.column),T=u.getTokenAt(d.row,d.column+1);if(k=="\\"&&L&&/escape/.test(L.type))return null;var F=L&&/string|escape/.test(L.type),I=!T||/string|escape/.test(T.type),B;if(_==b)B=F!==I,B&&/string\.end/.test(T.type)&&(B=!1);else{if(F&&!I||F&&I)return null;var H=u.$mode.tokenRe;H.lastIndex=0;var z=H.test(k);H.lastIndex=0;var U=H.test(k);if(z||U||_&&!/[\s;,.})\]\\]/.test(_))return null;var D=$[d.column-2];if(k==b&&(D==b||H.test(D)))return null;B=!0}return{text:B?b+b:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(v,S,C,u,g){var A=u.$mode.$quotes||n,b=u.doc.getTextRange(g);if(!g.isMultiLine()&&A.hasOwnProperty(b)){r(C);var x=u.doc.getLine(g.start.row),o=x.substring(g.start.column+1,g.start.column+2);if(o==b)return g.end.column++,g}})};h.isSaneInsertion=function(m,v){var S=m.getCursorPosition(),C=new c(v,S.row,S.column);if(!this.$matchTokenType(C.getCurrentToken()||"text",a)){if(/[)}\]]/.test(m.session.getLine(S.row)[S.column]))return!0;var u=new c(v,S.row,S.column+1);if(!this.$matchTokenType(u.getCurrentToken()||"text",a))return!1}return C.stepForward(),C.getCurrentTokenRow()!==S.row||this.$matchTokenType(C.getCurrentToken()||"text",t)},h.$matchTokenType=function(m,v){return v.indexOf(m.type||m)>-1},h.recordAutoInsert=function(m,v,S){var C=m.getCursorPosition(),u=v.doc.getLine(C.row);this.isAutoInsertedClosing(C,u,e.autoInsertedLineEnd[0])||(e.autoInsertedBrackets=0),e.autoInsertedRow=C.row,e.autoInsertedLineEnd=S+u.substr(C.column),e.autoInsertedBrackets++},h.recordMaybeInsert=function(m,v,S){var C=m.getCursorPosition(),u=v.doc.getLine(C.row);this.isMaybeInsertedClosing(C,u)||(e.maybeInsertedBrackets=0),e.maybeInsertedRow=C.row,e.maybeInsertedLineStart=u.substr(0,C.column)+S,e.maybeInsertedLineEnd=u.substr(C.column),e.maybeInsertedBrackets++},h.isAutoInsertedClosing=function(m,v,S){return e.autoInsertedBrackets>0&&m.row===e.autoInsertedRow&&S===e.autoInsertedLineEnd[0]&&v.substr(m.column)===e.autoInsertedLineEnd},h.isMaybeInsertedClosing=function(m,v){return e.maybeInsertedBrackets>0&&m.row===e.maybeInsertedRow&&v.substr(m.column)===e.maybeInsertedLineEnd&&v.substr(0,m.column)==e.maybeInsertedLineStart},h.popAutoInsertedClosing=function(){e.autoInsertedLineEnd=e.autoInsertedLineEnd.substr(1),e.autoInsertedBrackets--},h.clearMaybeInsertedClosing=function(){e&&(e.maybeInsertedBrackets=0,e.maybeInsertedRow=-1)},f.inherits(h,p),y.CstyleBehaviour=h}),ace.define("ace/unicode",["require","exports","module"],function(w,y,M){for(var f=[48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2],p=0,c=[],s=0;s<f.length;s+=2)c.push(p+=f[s]),f[s+1]&&c.push(45,p+=f[s+1]);y.wordChars=String.fromCharCode.apply(null,c)}),ace.define("ace/mode/text",["require","exports","module","ace/config","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(w,y,M){var f=w("../config"),p=w("../tokenizer").Tokenizer,c=w("./text_highlight_rules").TextHighlightRules,s=w("./behaviour/cstyle").CstyleBehaviour,a=w("../unicode"),t=w("../lib/lang"),e=w("../token_iterator").TokenIterator,i=w("../range").Range,n=function(){this.HighlightRules=c};(function(){this.$defaultBehaviour=new s,this.tokenRe=new RegExp("^["+a.wordChars+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+a.wordChars+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new p(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(r,l,h,m){var v=l.doc,S=!0,C=!0,u=1/0,g=l.getTabSize(),A=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var o=this.lineCommentStart.map(t.escapeRegExp).join("|"),b=this.lineCommentStart[0];else var o=t.escapeRegExp(this.lineCommentStart),b=this.lineCommentStart;o=new RegExp("^(\\s*)(?:"+o+") ?"),A=l.getUseSoftTabs();var k=function(U,D){var P=U.match(o);if(P){var N=P[1].length,j=P[0].length;!T(U,N,j)&&P[0][j-1]==" "&&j--,v.removeInLine(D,N,j)}},L=b+" ",$=function(U,D){(!S||/\S/.test(U))&&(T(U,u,u)?v.insertInLine({row:D,column:u},L):v.insertInLine({row:D,column:u},b))},_=function(U,D){return o.test(U)},T=function(U,D,P){for(var N=0;D--&&U.charAt(D)==" ";)N++;if(N%g!=0)return!1;for(var N=0;U.charAt(P++)==" ";)N++;return g>2?N%g!=g-1:N%g==0}}else{if(!this.blockComment)return!1;var b=this.blockComment.start,x=this.blockComment.end,o=new RegExp("^(\\s*)(?:"+t.escapeRegExp(b)+")"),d=new RegExp("(?:"+t.escapeRegExp(x)+")\\s*$"),$=function(B,H){_(B,H)||(!S||/\S/.test(B))&&(v.insertInLine({row:H,column:B.length},x),v.insertInLine({row:H,column:u},b))},k=function(B,H){var z;(z=B.match(d))&&v.removeInLine(H,B.length-z[0].length,B.length),(z=B.match(o))&&v.removeInLine(H,z[1].length,z[0].length)},_=function(B,H){if(o.test(B))return!0;for(var z=l.getTokens(H),U=0;U<z.length;U++)if(z[U].type==="comment")return!0}}function F(B){for(var H=h;H<=m;H++)B(v.getLine(H),H)}var I=1/0;F(function(B,H){var z=B.search(/\S/);z!==-1?(z<u&&(u=z),C&&!_(B,H)&&(C=!1)):I>B.length&&(I=B.length)}),u==1/0&&(u=I,S=!1,C=!1),A&&u%g!=0&&(u=Math.floor(u/g)*g),F(C?k:$)},this.toggleBlockComment=function(r,l,h,m){var v=this.blockComment;if(v){!v.start&&v[0]&&(v=v[0]);var S=new e(l,m.row,m.column),C=S.getCurrentToken();l.selection;var u=l.selection.toOrientedRange(),g,A;if(C&&/comment/.test(C.type)){for(var b,x;C&&/comment/.test(C.type);){var o=C.value.indexOf(v.start);if(o!=-1){var d=S.getCurrentTokenRow(),$=S.getCurrentTokenColumn()+o;b=new i(d,$,d,$+v.start.length);break}C=S.stepBackward()}for(var S=new e(l,m.row,m.column),C=S.getCurrentToken();C&&/comment/.test(C.type);){var o=C.value.indexOf(v.end);if(o!=-1){var d=S.getCurrentTokenRow(),$=S.getCurrentTokenColumn()+o;x=new i(d,$,d,$+v.end.length);break}C=S.stepForward()}x&&l.remove(x),b&&(l.remove(b),g=b.start.row,A=-v.start.length)}else A=v.start.length,g=h.start.row,l.insert(h.end,v.end),l.insert(h.start,v.start);u.start.row==g&&(u.start.column+=A),u.end.row==g&&(u.end.column+=A),l.selection.fromOrientedRange(u)}},this.getNextLineIndent=function(r,l,h){return this.$getIndent(l)},this.checkOutdent=function(r,l,h){return!1},this.autoOutdent=function(r,l,h){},this.$getIndent=function(r){return r.match(/^\s*/)[0]},this.createWorker=function(r){return null},this.createModeDelegates=function(r){this.$embeds=[],this.$modes={};for(var l in r)if(r[l]){var h=r[l],m=h.prototype.$id,v=f.$modes[m];v||(f.$modes[m]=v=new h),f.$modes[l]||(f.$modes[l]=v),this.$embeds.push(l),this.$modes[l]=v}for(var S=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],l=0;l<S.length;l++)(function(u){var g=S[l],A=u[g];u[S[l]]=function(){return this.$delegator(g,arguments,A)}})(this)},this.$delegator=function(r,l,h){var m=l[0]||"start";if(typeof m!="string"){if(Array.isArray(m[2])){var v=m[2][m[2].length-1],S=this.$modes[v];if(S)return S[r].apply(S,[m[1]].concat([].slice.call(l,1)))}m=m[0]||"start"}for(var C=0;C<this.$embeds.length;C++)if(this.$modes[this.$embeds[C]]){var u=m.split(this.$embeds[C]);if(!u[0]&&u[1]){l[0]=u[1];var S=this.$modes[this.$embeds[C]];return S[r].apply(S,l)}}var g=h.apply(this,l);return h?g:void 0},this.transformAction=function(r,l,h,m,v){if(this.$behaviour){var S=this.$behaviour.getBehaviours();for(var C in S)if(S[C][l]){var u=S[C][l].apply(this,arguments);if(u)return u}}},this.getKeywords=function(r){if(!this.completionKeywords){var l=this.$tokenizer.rules,h=[];for(var m in l)for(var v=l[m],S=0,C=v.length;S<C;S++)if(typeof v[S].token=="string")/keyword|support|storage/.test(v[S].token)&&h.push(v[S].regex);else if(typeof v[S].token=="object"){for(var u=0,g=v[S].token.length;u<g;u++)if(/keyword|support|storage/.test(v[S].token[u])){var m=v[S].regex.match(/\(.+?\)/g)[u];h.push(m.substr(1,m.length-2))}}this.completionKeywords=h}return r?h.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(r,l,h,m){var v=this.$keywordList||this.$createKeywordList();return v.map(function(S){return{name:S,value:S,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(n.prototype),y.Mode=n}),ace.define("ace/apply_delta",["require","exports","module"],function(w,y,M){y.applyDelta=function(f,p,c){var s=p.start.row,a=p.start.column,t=f[s]||"";switch(p.action){case"insert":var e=p.lines;if(e.length===1)f[s]=t.substring(0,a)+p.lines[0]+t.substring(a);else{var i=[s,1].concat(p.lines);f.splice.apply(f,i),f[s]=t.substring(0,a)+f[s],f[s+p.lines.length-1]+=t.substring(a)}break;case"remove":var n=p.end.column,r=p.end.row;s===r?f[s]=t.substring(0,a)+t.substring(n):f.splice(s,r-s+1,t.substring(0,a)+f[r].substring(n));break}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(w,y,M){var f=w("./lib/oop"),p=w("./lib/event_emitter").EventEmitter,c=y.Anchor=function(s,a,t){this.$onChange=this.onChange.bind(this),this.attach(s),typeof t>"u"?this.setPosition(a.row,a.column):this.setPosition(a,t)};(function(){f.implement(this,p),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(t){if(!(t.start.row==t.end.row&&t.start.row!=this.row)&&!(t.start.row>this.row)){var e=a(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(e.row,e.column,!0)}};function s(t,e,i){var n=i?t.column<=e.column:t.column<e.column;return t.row<e.row||t.row==e.row&&n}function a(t,e,i){var n=t.action=="insert",r=(n?1:-1)*(t.end.row-t.start.row),l=(n?1:-1)*(t.end.column-t.start.column),h=t.start,m=n?h:t.end;return s(e,h,i)?{row:e.row,column:e.column}:s(m,e,!i)?{row:e.row+r,column:e.column+(e.row==m.row?l:0)}:{row:h.row,column:h.column}}this.setPosition=function(t,e,i){var n;if(i?n={row:t,column:e}:n=this.$clipPositionToDocument(t,e),!(this.row==n.row&&this.column==n.column)){var r={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:r,value:n})}},this.detach=function(){this.document.off("change",this.$onChange)},this.attach=function(t){this.document=t||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(t,e){var i={};return t>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):t<0?(i.row=0,i.column=0):(i.row=t,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,e))),e<0&&(i.column=0),i}}).call(c.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(w,y,M){var f=w("./lib/oop"),p=w("./apply_delta").applyDelta,c=w("./lib/event_emitter").EventEmitter,s=w("./range").Range,a=w("./anchor").Anchor,t=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){f.implement(this,c),this.setValue=function(e){var i=this.getLength()-1;this.remove(new s(0,0,i,this.getLine(i).length)),this.insert({row:0,column:0},e||"")},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,i){return new a(this,e,i)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,` `).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 n=i.length-1;e.end.row-e.start.row==n&&(i[n]=i[n].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 n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+i.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[i]},!0),this.clonePos(r)},this.clippedPos=function(e,i){var n=this.getLength();e===void 0?e=n:e<0?e=0:e>=n&&(e=n-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 n=0;e<this.getLength()?(i=i.concat([""]),n=0):(i=[""].concat(i),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},i)},this.insertMergedLines=function(e,i){var n=this.clippedPos(e.row,e.column),r={row:n.row+i.length-1,column:(i.length==1?n.column:0)+i[i.length-1].length};return this.applyDelta({start:n,end:r,action:"insert",lines:i}),this.clonePos(r)},this.remove=function(e){var i=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:i,end:n,action:"remove",lines:this.getLinesForRange({start:i,end:n})}),this.clonePos(i)},this.removeInLine=function(e,i,n){var r=this.clippedPos(e,i),l=this.clippedPos(e,n);return this.applyDelta({start:r,end:l,action:"remove",lines:this.getLinesForRange({start:r,end:l})},!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 n=i==this.getLength()-1&&e>0,r=i<this.getLength()-1,l=n?e-1:e,h=n?this.getLine(l).length:0,m=r?i+1:i,v=r?0:this.getLine(m).length,S=new s(l,h,m,v),C=this.$lines.slice(e,i+1);return this.applyDelta({start:S.start,end:S.end,action:"remove",lines:this.getLinesForRange(S)}),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 n;return i?n=this.insert(e.start,i):n=e.start,n},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 n=e.action=="insert";(n?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(p(this.$lines,e,i),this._signal("change",e)))},this.$safeApplyDelta=function(e){var i=this.$lines.length;(e.action=="remove"&&e.start.row<i&&e.end.row<i||e.action=="insert"&&e.start.row<=i)&&this.applyDelta(e)},this.$splitAndapplyLargeDelta=function(e,i){for(var n=e.lines,r=n.length-i+1,l=e.start.row,h=e.start.column,m=0,v=0;m<r;m=v){v+=i-1;var S=n.slice(m,v);S.push(""),this.applyDelta({start:this.pos(l+m,h),end:this.pos(l+v,h=0),action:e.action,lines:S},!0)}e.lines=n.slice(m),e.start.row=l+m,e.start.column=h,this.applyDelta(e,!0)},this.revertDelta=function(e){this.$safeApplyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,i){for(var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,l=i||0,h=n.length;l<h;l++)if(e-=n[l].length+r,e<0)return{row:l,column:e+n[l].length+r};return{row:h-1,column:e+n[h-1].length+r}},this.positionToIndex=function(e,i){for(var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,l=0,h=Math.min(e.row,n.length),m=i||0;m<h;++m)l+=n[m].length+r;return l+e.column}}).call(t.prototype),y.Document=t}),ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(w,y,M){var f=w("./lib/oop"),p=w("./lib/event_emitter").EventEmitter,c=function(s,a){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=s;var t=this;this.$worker=function(){if(t.running){for(var e=new Date,i=t.currentLine,n=-1,r=t.doc,l=i;t.lines[i];)i++;var h=r.getLength(),m=0;for(t.running=!1;i<h;){t.$tokenizeRow(i),n=i;do i++;while(t.lines[i]);if(m++,m%5===0&&new Date-e>20){t.running=setTimeout(t.$worker,20);break}}t.currentLine=i,n==-1&&(n=i),l<=n&&t.fireUpdateEvent(l,n)}}};(function(){f.implement(this,p),this.setTokenizer=function(s){this.tokenizer=s,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(s){this.doc=s,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(s,a){var t={first:s,last:a};this._signal("update",{data:t})},this.start=function(s){this.currentLine=Math.min(s||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(s){var a=s.start.row,t=s.end.row-a;if(t===0)this.lines[a]=null;else if(s.action=="remove")this.lines.splice(a,t+1,null),this.states.splice(a,t+1,null);else{var e=Array(t+1);e.unshift(a,1),this.lines.splice.apply(this.lines,e),this.states.splice.apply(this.states,e)}this.currentLine=Math.min(a,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(s){return this.lines[s]||this.$tokenizeRow(s)},this.getState=function(s){return this.currentLine==s&&this.$tokenizeRow(s),this.states[s]||"start"},this.$tokenizeRow=function(s){var a=this.doc.getLine(s),t=this.states[s-1],e=this.tokenizer.getLineTokens(a,t,s);return this.states[s]+""!=e.state+""?(this.states[s]=e.state,this.lines[s+1]=null,this.currentLine>s+1&&(this.currentLine=s+1)):this.currentLine==s&&(this.currentLine=s+1),this.lines[s]=e.tokens},this.cleanup=function(){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.removeAllListeners()}}).call(c.prototype),y.BackgroundTokenizer=c}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(w,y,M){var f=w("./lib/lang");w("./lib/oop");var p=w("./range").Range,c=function(s,a,t){this.setRegexp(s),this.clazz=a,this.type=t||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(s){this.regExp+""!=s+""&&(this.regExp=s,this.cache=[])},this.update=function(s,a,t,e){if(this.regExp)for(var i=e.firstRow,n=e.lastRow,r={},l=i;l<=n;l++){var h=this.cache[l];h==null&&(h=f.getMatchOffsets(t.getLine(l),this.regExp),h.length>this.MAX_RANGES&&(h=h.slice(0,this.MAX_RANGES)),h=h.map(function(C){return new p(l,C.offset,l,C.offset+C.length)}),this.cache[l]=h.length?h:"");for(var m=h.length;m--;){var v=h[m].toScreenRange(t),S=v.toString();r[S]||(r[S]=!0,a.drawSingleLineMarker(s,v,this.clazz,e))}}}}).call(c.prototype),y.SearchHighlight=c}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(w,y,M){var f=w("../range").Range;function p(c,s){this.foldData=c,Array.isArray(s)?this.folds=s:s=this.folds=[s];var a=s[s.length-1];this.range=new f(s[0].start.row,s[0].start.column,a.end.row,a.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(t){t.setFoldLine(this)},this)}(function(){this.shiftRow=function(c){this.start.row+=c,this.end.row+=c,this.folds.forEach(function(s){s.start.row+=c,s.end.row+=c})},this.addFold=function(c){if(c.sameRow){if(c.start.row<this.startRow||c.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(c),this.folds.sort(function(s,a){return-s.range.compareEnd(a.start.row,a.start.column)}),this.range.compareEnd(c.start.row,c.start.column)>0?(this.end.row=c.end.row,this.end.column=c.end.column):this.range.compareStart(c.end.row,c.end.column)<0&&(this.start.row=c.start.row,this.start.column=c.start.column)}else if(c.start.row==this.end.row)this.folds.push(c),this.end.row=c.end.row,this.end.column=c.end.column;else if(c.end.row==this.start.row)this.folds.unshift(c),this.start.row=c.start.row,this.start.column=c.start.column;else throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");c.foldLine=this},this.containsRow=function(c){return c>=this.start.row&&c<=this.end.row},this.walk=function(c,s,a){var t=0,e=this.folds,i,n,r,l=!0;s==null&&(s=this.end.row,a=this.end.column);for(var h=0;h<e.length;h++){if(i=e[h],n=i.range.compareStart(s,a),n==-1){c(null,s,a,t,l);return}if(r=c(null,i.start.row,i.start.column,t,l),r=!r&&c(i.placeholder,i.start.row,i.start.column,t),r||n===0)return;l=!i.sameRow,t=i.end.column}c(null,s,a,t,l)},this.getNextFoldTo=function(c,s){for(var a,t,e=0;e<this.folds.length;e++){if(a=this.folds[e],t=a.range.compareEnd(c,s),t==-1)return{fold:a,kind:"after"};if(t===0)return{fold:a,kind:"inside"}}return null},this.addRemoveChars=function(c,s,a){var t=this.getNextFoldTo(c,s),e,i;if(t){if(e=t.fold,t.kind=="inside"&&e.start.column!=s&&e.start.row!=c)window.console&&window.console.log(c,s,e);else if(e.start.row==c){i=this.folds;var n=i.indexOf(e);for(n===0&&(this.start.column+=a),n;n<i.length;n++){if(e=i[n],e.start.column+=a,!e.sameRow)return;e.end.column+=a}this.end.column+=a}}},this.split=function(c,s){var a=this.getNextFoldTo(c,s);if(!a||a.kind=="inside")return null;var t=a.fold,e=this.folds,i=this.foldData,n=e.indexOf(t),r=e[n-1];this.end.row=r.end.row,this.end.column=r.end.column,e=e.splice(n,e.length-n);var l=new p(i,e);return i.splice(i.indexOf(this)+1,0,l),l},this.merge=function(c){for(var s=c.folds,a=0;a<s.length;a++)this.addFold(s[a]);var t=this.foldData;t.splice(t.indexOf(c),1)},this.toString=function(){var c=[this.range.toString()+": ["];return this.folds.forEach(function(s){c.push(" "+s.toString())}),c.push("]"),c.join(` `)},this.idxToPosition=function(c){for(var s=0,a=0;a<this.folds.length;a++){var t=this.folds[a];if(c-=t.start.column-s,c<0)return{row:t.start.row,column:t.start.column+c};if(c-=t.placeholder.length,c<0)return t.start;s=t.end.column}return{row:this.end.row,column:this.end.column+c}}}).call(p.prototype),y.FoldLine=p}),ace.define("ace/range_list",["require","exports","module","ace/range"],function(w,y,M){var f=w("./range").Range,p=f.comparePoints,c=function(){this.ranges=[],this.$bias=1};(function(){this.comparePoints=p,this.pointIndex=function(s,a,t){for(var e=this.ranges,i=t||0;i<e.length;i++){var n=e[i],r=p(s,n.end);if(!(r>0)){var l=p(s,n.start);return r===0?a&&l!==0?-i-2:i:l>0||l===0&&!a?i:-i-1}}return-i-1},this.add=function(s){var a=!s.isEmpty(),t=this.pointIndex(s.start,a);t<0&&(t=-t-1);var e=this.pointIndex(s.end,a,t);return e<0?e=-e-1:e++,this.ranges.splice(t,e-t,s)},this.addList=function(s){for(var a=[],t=s.length;t--;)a.push.apply(a,this.add(s[t]));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,l){return p(r.start,l.start)});for(var t=a[0],e,i=1;i<a.length;i++){e=t,t=a[i];var n=p(e.end,t.start);n<0||n==0&&!e.isEmpty()&&!t.isEmpty()||(p(e.end,t.end)<0&&(e.end.row=t.end.row,e.end.column=t.end.column),a.splice(i,1),s.push(t),t=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 t=this.ranges;if(t[0].start.row>a||t[t.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 n=[],r=e;r<i;r++)n.push(t[r]);return n},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){for(var a=s.start,t=s.end,e=a.row,i=t.row,n=this.ranges,r=0,l=n.length;r<l;r++){var h=n[r];if(h.end.row>=e)break}if(s.action=="insert")for(var m=i-e,v=-a.column+t.column;r<l;r++){var h=n[r];if(h.start.row>e)break;if(h.start.row==e&&h.start.column>=a.column&&(h.start.column==a.column&&this.$bias<=0||(h.start.column+=v,h.start.row+=m)),h.end.row==e&&h.end.column>=a.column){if(h.end.column==a.column&&this.$bias<0)continue;h.end.column==a.column&&v>0&&r<l-1&&h.end.column>h.start.column&&h.end.column==n[r+1].start.column&&(h.end.column-=v),h.end.column+=v,h.end.row+=m}}else for(var m=e-i,v=a.column-t.column;r<l;r++){var h=n[r];if(h.start.row>i)break;h.end.row<i&&(e<h.end.row||e==h.end.row&&a.column<h.end.column)?(h.end.row=e,h.end.column=a.column):h.end.row==i?h.end.column<=t.column?(m||h.end.column>a.column)&&(h.end.column=a.column,h.end.row=a.row):(h.end.column+=v,h.end.row+=m):h.end.row>i&&(h.end.row+=m),h.start.row<i&&(e<h.start.row||e==h.start.row&&a.column<h.start.column)?(h.start.row=e,h.start.column=a.column):h.start.row==i?h.start.column<=t.column?(m||h.start.column>a.column)&&(h.start.column=a.column,h.start.row=a.row):(h.start.column+=v,h.start.row+=m):h.start.row>i&&(h.start.row+=m)}if(m!=0&&r<l)for(;r<l;r++){var h=n[r];h.start.row+=m,h.end.row+=m}}}).call(c.prototype),y.RangeList=c}),ace.define("ace/edit_session/fold",["require","exports","module","ace/range_list","ace/lib/oop"],function(w,y,M){var f=w("../range_list").RangeList,p=w("../lib/oop"),c=y.Fold=function(i,n){this.foldLine=null,this.placeholder=n,this.range=i,this.start=i.start,this.end=i.end,this.sameRow=i.start.row==i.end.row,this.subFolds=this.ranges=[]};p.inherits(c,f),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(i){this.foldLine=i,this.subFolds.forEach(function(n){n.setFoldLine(i)})},this.clone=function(){var i=this.range.clone(),n=new c(i,this.placeholder);return this.subFolds.forEach(function(r){n.subFolds.push(r.clone())}),n.collapseChildren=this.collapseChildren,n},this.addSubFold=function(i){if(!this.range.isEqual(i)){a(i,this.start);for(var m=i.start.row,v=i.start.column,n=0,r=-1;n<this.subFolds.length&&(r=this.subFolds[n].range.compare(m,v),r==1);n++);var l=this.subFolds[n],h=0;if(r==0){if(l.range.containsRange(i))return l.addSubFold(i);h=1}for(var m=i.range.end.row,v=i.range.end.column,S=n,r=-1;S<this.subFolds.length&&(r=this.subFolds[S].range.compare(m,v),r==1);S++);r==0&&S++;for(var C=this.subFolds.splice(n,S-n,i),u=r==0?C.length-1:C.length,g=h;g<u;g++)i.addSubFold(C[g]);return i.setFoldLine(this.foldLine),i}},this.restoreRange=function(i){return e(i,this.start)}}.call(c.prototype);function s(i,n){i.row-=n.row,i.row==0&&(i.column-=n.column)}function a(i,n){s(i.start,n),s(i.end,n)}function t(i,n){i.row==0&&(i.column+=n.column),i.row+=n.row}function e(i,n){t(i.start,n),t(i.end,n)}}),ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(w,y,M){var f=w("../range").Range,p=w("./fold_line").FoldLine,c=w("./fold").Fold,s=w("../token_iterator").TokenIterator;function a(){this.getFoldAt=function(t,e,i){var n=this.getFoldLine(t);if(!n)return null;for(var r=n.folds,l=0;l<r.length;l++){var h=r[l].range;if(h.contains(t,e)){if(i==1&&h.isEnd(t,e)&&!h.isEmpty())continue;if(i==-1&&h.isStart(t,e)&&!h.isEmpty())continue;return r[l]}}},this.getFoldsInRange=function(t){var e=t.start,i=t.end,n=this.$foldData,r=[];e.column+=1,i.column-=1;for(var l=0;l<n.length;l++){var h=n[l].range.compareRange(t);if(h!=2){if(h==-2)break;for(var m=n[l].folds,v=0;v<m.length;v++){var S=m[v];if(h=S.range.compareRange(t),h==-2)break;if(h==2)continue;if(h==42)break;r.push(S)}}}return e.column-=1,i.column+=1,r},this.getFoldsInRangeList=function(t){if(Array.isArray(t)){var e=[];t.forEach(function(i){e=e.concat(this.getFoldsInRange(i))},this)}else var e=this.getFoldsInRange(t);return e},this.getAllFolds=function(){for(var t=[],e=this.$foldData,i=0;i<e.length;i++)for(var n=0;n<e[i].folds.length;n++)t.push(e[i].folds[n]);return t},this.getFoldStringAt=function(t,e,i,n){if(n=n||this.getFoldLine(t),!n)return null;for(var r={end:{column:0}},l,h,m=0;m<n.folds.length;m++){h=n.folds[m];var v=h.range.compareEnd(t,e);if(v==-1){l=this.getLine(h.start.row).substring(r.end.column,h.start.column);break}else if(v===0)return null;r=h}return l||(l=this.getLine(h.start.row).substring(r.end.column)),i==-1?l.substring(0,e-r.end.column):i==1?l.substring(e-r.end.column):l},this.getFoldLine=function(t,e){var i=this.$foldData,n=0;for(e&&(n=i.indexOf(e)),n==-1&&(n=0),n;n<i.length;n++){var r=i[n];if(r.start.row<=t&&r.end.row>=t)return r;if(r.end.row>t)return null}return null},this.getNextFoldLine=function(t,e){var i=this.$foldData,n=0;for(e&&(n=i.indexOf(e)),n==-1&&(n=0),n;n<i.length;n++){var r=i[n];if(r.end.row>=t)return r}return null},this.getFoldedRowCount=function(t,e){for(var i=this.$foldData,n=e-t+1,r=0;r<i.length;r++){var l=i[r],h=l.end.row,m=l.start.row;if(h>=e){m<e&&(m>=t?n-=e-m:n=0);break}else h>=t&&(m>=t?n-=h-m:n-=h-t+1)}return n},this.$addFoldLine=function(t){return this.$foldData.push(t),this.$foldData.sort(function(e,i){return e.start.row-i.start.row}),t},this.addFold=function(t,e){var i=this.$foldData,n=!1,r;t instanceof c?r=t:(r=new c(e,t),r.collapseChildren=e.collapseChildren),this.$clipRangeToDocument(r.range);var l=r.start.row,h=r.start.column,m=r.end.row,v=r.end.column,S=this.getFoldAt(l,h,1),C=this.getFoldAt(m,v,-1);if(S&&C==S)return S.addSubFold(r);S&&!S.range.isStart(l,h)&&this.removeFold(S),C&&!C.range.isEnd(m,v)&&this.removeFold(C);var u=this.getFoldsInRange(r.range);u.length>0&&(this.removeFolds(u),r.collapseChildren||u.forEach(function(x){r.addSubFold(x)}));for(var g=0;g<i.length;g++){var A=i[g];if(m==A.start.row){A.addFold(r),n=!0;break}else if(l==A.end.row){if(A.addFold(r),n=!0,!r.sameRow){var b=i[g+1];if(b&&b.start.row==m){A.merge(b);break}}break}else if(m<=A.start.row)break}return n||(A=this.$addFoldLine(new p(this.$foldData,r))),this.$useWrapMode?this.$updateWrapData(A.start.row,A.start.row):this.$updateRowLengthCache(A.start.row,A.start.row),this.$modified=!0,this._signal("changeFold",{data:r,action:"add"}),r},this.addFolds=function(t){t.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(t){var e=t.foldLine,i=e.start.row,n=e.end.row,r=this.$foldData,l=e.folds;if(l.length==1)r.splice(r.indexOf(e),1);else if(e.range.isEnd(t.end.row,t.end.column))l.pop(),e.end.row=l[l.length-1].end.row,e.end.column=l[l.length-1].end.column;else if(e.range.isStart(t.start.row,t.start.column))l.shift(),e.start.row=l[0].start.row,e.start.column=l[0].start.column;else if(t.sameRow)l.splice(l.indexOf(t),1);else{var h=e.split(t.start.row,t.start.column);l=h.folds,l.shift(),h.start.row=l[0].start.row,h.start.column=l[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(i,n):this.$updateRowLengthCache(i,n)),this.$modified=!0,this._signal("changeFold",{data:t,action:"remove"})},this.removeFolds=function(t){for(var e=[],i=0;i<t.length;i++)e.push(t[i]);e.forEach(function(n){this.removeFold(n)},this),this.$modified=!0},this.expandFold=function(t){this.removeFold(t),t.subFolds.forEach(function(e){t.restoreRange(e),this.addFold(e)},this),t.collapseChildren>0&&this.foldAll(t.start.row+1,t.end.row,t.collapseChildren-1),t.subFolds=[]},this.expandFolds=function(t){t.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(t,e){var i,n;if(t==null)i=new f(0,0,this.getLength(),0),e==null&&(e=!0);else if(typeof t=="number")i=new f(t,0,t,this.getLine(t).length);else if("row"in t)i=f.fromPoints(t,t);else{if(Array.isArray(t))return n=[],t.forEach(function(l){n=n.concat(this.unfold(l))},this),n;i=t}n=this.getFoldsInRangeList(i);for(var r=n;n.length==1&&f.comparePoints(n[0].start,i.start)<0&&f.comparePoints(n[0].end,i.end)>0;)this.expandFolds(n),n=this.getFoldsInRangeList(i);if(e!=!1?this.removeFolds(n):this.expandFolds(n),r.length)return r},this.isRowFolded=function(t,e){return!!this.getFoldLine(t,e)},this.getRowFoldEnd=function(t,e){var i=this.getFoldLine(t,e);return i?i.end.row:t},this.getRowFoldStart=function(t,e){var i=this.getFoldLine(t,e);return i?i.start.row:t},this.getFoldDisplayLine=function(t,e,i,n,r){n==null&&(n=t.start.row),r==null&&(r=0),e==null&&(e=t.end.row),i==null&&(i=this.getLine(e).length);var l=this.doc,h="";return t.walk(function(m,v,S,C){if(!(v<n)){if(v==n){if(S<r)return;C=Math.max(r,C)}m!=null?h+=m:h+=l.getLine(v).substring(C,S)}},e,i),h},this.getDisplayLine=function(t,e,i,n){var r=this.getFoldLine(t);if(r)return this.getFoldDisplayLine(r,t,e,i,n);var l;return l=this.doc.getLine(t),l.substring(n||0,e||l.length)},this.$cloneFoldData=function(){var t=[];return t=this.$foldData.map(function(e){var i=e.folds.map(function(n){return n.clone()});return new p(t,i)}),t},this.toggleFold=function(t){var e=this.selection,i=e.getRange(),n,r;if(i.isEmpty()){var l=i.start;if(n=this.getFoldAt(l.row,l.column),n){this.expandFold(n);return}else(r=this.findMatchingBracket(l))?i.comparePoint(r)==1?i.end=r:(i.start=r,i.start.column++,i.end.column--):(r=this.findMatchingBracket({row:l.row,column:l.column+1}))?(i.comparePoint(r)==1?i.end=r:i.start=r,i.start.column++):i=this.getCommentFoldRange(l.row,l.column)||i}else{var h=this.getFoldsInRange(i);if(t&&h.length){this.expandFolds(h);return}else h.length==1&&(n=h[0])}if(n||(n=this.getFoldAt(i.start.row,i.start.column)),n&&n.range.toString()==i.toString()){this.expandFold(n);return}var m="...";if(!i.isMultiLine()){if(m=this.getTextRange(i),m.length<4)return;m=m.trim().substring(0,2)+".."}this.addFold(m,i)},this.getCommentFoldRange=function(t,e,i){var n=new s(this,t,e),r=n.getCurrentToken(),l=r&&r.type;if(r&&/^comment|string/.test(l)){l=l.match(/comment|string/)[0],l=="comment"&&(l+="|doc-start");var h=new RegExp(l),m=new f;if(i!=1){do r=n.stepBackward();while(r&&h.test(r.type)&&!/^comment.end/.test(r.type));r=n.stepForward()}if(m.start.row=n.getCurrentTokenRow(),m.start.column=n.getCurrentTokenColumn()+(/^comment.start/.test(r.type)?r.value.length:2),n=new s(this,t,e),i!=-1){var v=-1;do if(r=n.stepForward(),v==-1){var S=this.getState(n.$row);h.test(S)||(v=n.$row)}else if(n.$row>v)break;while(r&&h.test(r.type)&&!/^comment.start/.test(r.type));r=n.stepBackward()}else r=n.getCurrentToken();return m.end.row=n.getCurrentTokenRow(),m.end.column=n.getCurrentTokenColumn(),/^comment.end/.test(r.type)||(m.end.column+=r.value.length-2),m}},this.foldAll=function(t,e,i,n){i==null&&(i=1e5);var r=this.foldWidgets;if(r){e=e||this.getLength(),t=t||0;for(var l=t;l<e;l++)if(r[l]==null&&(r[l]=this.getFoldWidget(l)),r[l]=="start"&&!(n&&!n(l))){var h=this.getFoldWidgetRange(l);h&&h.isMultiLine()&&h.end.row<=e&&h.start.row>=t&&(l=h.end.row,h.collapseChildren=i,this.addFold("...",h))}}},this.foldToLevel=function(t){for(this.foldAll();t-- >0;)this.unfold(null,!1)},this.foldAllComments=function(){var t=this;this.foldAll(null,null,null,function(e){for(var i=t.getTokens(e),n=0;n<i.length;n++){var r=i[n];if(!(r.type=="text"&&/^\s+$/.test(r.value)))return!!/comment/.test(r.type)}})},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(t){if(!this.$foldStyles[t])throw new Error("invalid fold style: "+t+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle!=t){this.$foldStyle=t,t=="manual"&&this.unfold();var e=this.$foldMode;this.$setFolding(null),this.$setFolding(e)}},this.$setFolding=function(t){if(this.$foldMode!=t){if(this.$foldMode=t,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!t||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=t.getFoldWidget.bind(t,this,this.$foldStyle),this.getFoldWidgetRange=t.getFoldWidgetRange.bind(t,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)}},this.getParentFoldRangeData=function(t,e){var i=this.foldWidgets;if(!i||e&&i[t])return{};for(var n=t-1,r;n>=0;){var l=i[n];if(l==null&&(l=i[n]=this.getFoldWidget(n)),l=="start"){var h=this.getFoldWidgetRange(n);if(r||(r=h),h&&h.end.row>=t)break}n--}return{range:n!==-1&&h,firstRange:r}},this.onFoldWidgetClick=function(t,e){e=e.domEvent;var i={children:e.shiftKey,all:e.ctrlKey||e.metaKey,siblings:e.altKey},n=this.$toggleFoldWidget(t,i);if(!n){var r=e.target||e.srcElement;r&&/ace_fold-widget/.test(r.className)&&(r.className+=" ace_invalid")}},this.$toggleFoldWidget=function(t,e){if(this.getFoldWidget){var i=this.getFoldWidget(t),n=this.getLine(t),r=i==="end"?-1:1,l=this.getFoldAt(t,r===-1?0:n.length,r);if(l)return e.children||e.all?this.removeFold(l):this.expandFold(l),l;var h=this.getFoldWidgetRange(t,!0);if(h&&!h.isMultiLine()&&(l=this.getFoldAt(h.start.row,h.start.column,1),l&&h.isEqual(l.range)))return this.removeFold(l),l;if(e.siblings){var m=this.getParentFoldRangeData(t);if(m.range)var v=m.range.start.row+1,S=m.range.end.row;this.foldAll(v,S,e.all?1e4:0)}else e.children?(S=h?h.end.row:this.getLength(),this.foldAll(t+1,S,e.all?1e4:0)):h&&(e.all&&(h.collapseChildren=1e4),this.addFold("...",h));return h}},this.toggleFoldWidget=function(t){var e=this.selection.getCursor().row;e=this.getRowFoldStart(e);var i=this.$toggleFoldWidget(e,{});if(!i){var n=this.getParentFoldRangeData(e,!0);if(i=n.range||n.firstRange,i){e=i.start.row;var r=this.getFoldAt(e,this.getLine(e).length,1);r?this.removeFold(r):this.addFold("...",i)}}},this.updateFoldWidgets=function(t){var e=t.start.row,i=t.end.row-e;if(i===0)this.foldWidgets[e]=null;else if(t.action=="remove")this.foldWidgets.splice(e,i+1,null);else{var n=Array(i+1);n.unshift(e,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},this.tokenizerUpdateFoldWidgets=function(t){var e=t.data;e.first!=e.last&&this.foldWidgets.length>e.first&&this.foldWidgets.splice(e.first,this.foldWidgets.length)}}y.Folding=a}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(w,y,M){var f=w("../token_iterator").TokenIterator,p=w("../range").Range;function c(){this.findMatchingBracket=function(s,a){if(s.column==0)return null;var t=a||this.getLine(s.row).charAt(s.column-1);if(t=="")return null;var e=t.match(/([\(\[\{])|([\)\]\}])/);return e?e[1]?this.$findClosingBracket(e[1],s):this.$findOpeningBracket(e[2],s):null},this.getBracketRange=function(s){var a=this.getLine(s.row),t=!0,e,i=a.charAt(s.column-1),n=i&&i.match(/([\(\[\{])|([\)\]\}])/);if(n||(i=a.charAt(s.column),s={row:s.row,column:s.column+1},n=i&&i.match(/([\(\[\{])|([\)\]\}])/),t=!1),!n)return null;if(n[1]){var r=this.$findClosingBracket(n[1],s);if(!r)return null;e=p.fromPoints(s,r),t||(e.end.column++,e.start.column--),e.cursor=e.end}else{var r=this.$findOpeningBracket(n[2],s);if(!r)return null;e=p.fromPoints(r,s),t||(e.start.column++,e.end.column--),e.cursor=e.start}return e},this.getMatchingBracketRanges=function(s,a){var t=this.getLine(s.row),e=/([\(\[\{])|([\)\]\}])/,i=!a&&t.charAt(s.column-1),n=i&&i.match(e);if(n||(i=(a===void 0||a)&&t.charAt(s.column),s={row:s.row,column:s.column+1},n=i&&i.match(e)),!n)return null;var r=new p(s.row,s.column-1,s.row,s.column),l=n[1]?this.$findClosingBracket(n[1],s):this.$findOpeningBracket(n[2],s);if(!l)return[r];var h=new p(l.row,l.column,l.row,l.column+1);return[r,h]},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{","<":">",">":"<"},this.$findOpeningBracket=function(s,a,t){var e=this.$brackets[s],i=1,n=new f(this,a.row,a.column),r=n.getCurrentToken();if(r||(r=n.stepForward()),!!r){t||(t=new RegExp("(\\.?"+r.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=a.column-n.getCurrentTokenColumn()-2,h=r.value;;){for(;l>=0;){var m=h.charAt(l);if(m==e){if(i-=1,i==0)return{row:n.getCurrentTokenRow(),column:l+n.getCurrentTokenColumn()}}else m==s&&(i+=1);l-=1}do r=n.stepBackward();while(r&&!t.test(r.type));if(r==null)break;h=r.value,l=h.length-1}return null}},this.$findClosingBracket=function(s,a,t){var e=this.$brackets[s],i=1,n=new f(this,a.row,a.column),r=n.getCurrentToken();if(r||(r=n.stepForward()),!!r){t||(t=new RegExp("(\\.?"+r.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var l=a.column-n.getCurrentTokenColumn();;){for(var h=r.value,m=h.length;l<m;){var v=h.charAt(l);if(v==e){if(i-=1,i==0)return{row:n.getCurrentTokenRow(),column:l+n.getCurrentTokenColumn()}}else v==s&&(i+=1);l+=1}do r=n.stepForward();while(r&&!t.test(r.type));if(r==null)break;l=0}return null}},this.getMatchingTags=function(s){var a=new f(this,s.row,s.column),t=this.$findTagName(a);if(t){var e=a.stepBackward();return e.value==="<"?this.$findClosingTag(a,t):this.$findOpeningTag(a,t)}},this.$findTagName=function(s){var a=s.getCurrentToken(),t=!1,e=!1;if(a&&a.type.indexOf("tag-name")===-1)do e?a=s.stepBackward():a=s.stepForward(),a&&(a.value==="/>"?e=!0:a.type.indexOf("tag-name")!==-1&&(t=!0));while(a&&!t);return a},this.$findClosingTag=function(s,a){var t,e=a.value,i=a.value,n=0,r=new p(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+1);a=s.stepForward();var l=new p(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+a.value.length),h=!1;do if(t=a,a=s.stepForward(),a){if(a.value===">"&&!h){var m=new p(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+1);h=!0}if(a.type.indexOf("tag-name")!==-1){if(e=a.value,i===e){if(t.value==="<")n++;else if(t.value==="</"&&(n--,n<0)){s.stepBackward();var v=new p(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+2);a=s.stepForward();var S=new p(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+a.value.length);if(a=s.stepForward(),a&&a.value===">")var C=new p(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+1);else return}}}else if(i===e&&a.value==="/>"&&(n--,n<0))var v=new p(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+2),S=v,C=S,m=new p(l.end.row,l.end.column,l.end.row,l.end.column+1)}while(a&&n>=0);if(r&&m&&v&&C&&l&&S)return{openTag:new p(r.start.row,r.start.column,m.end.row,m.end.column),closeTag:new p(v.start.row,v.start.column,C.end.row,C.end.column),openTagName:l,closeTagName:S}},this.$findOpeningTag=function(s,a){var t=s.getCurrentToken(),e=a.value,i=0,n=s.getCurrentTokenRow(),r=s.getCurrentTokenColumn(),l=r+2,h=new p(n,r,n,l);s.stepForward();var m=new p(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+a.value.length);if(a=s.stepForward(),!(!a||a.value!==">")){var v=new p(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+1);s.stepBackward(),s.stepBackward();do if(a=t,n=s.getCurrentTokenRow(),r=s.getCurrentTokenColumn(),l=r+a.value.length,t=s.stepBackward(),a){if(a.type.indexOf("tag-name")!==-1){if(e===a.value)if(t.value==="<"){if(i++,i>0){var S=new p(n,r,n,l),C=new p(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+1);do a=s.stepForward();while(a&&a.value!==">");var u=new p(s.getCurrentTokenRow(),s.getCurrentTokenColumn(),s.getCurrentTokenRow(),s.getCurrentTokenColumn()+1)}}else t.value==="</"&&i--}else if(a.value==="/>"){for(var g=0,A=t;A;){if(A.type.indexOf("tag-name")!==-1&&A.value===e){i--;break}else if(A.value==="<")break;A=s.stepBackward(),g++}for(var b=0;b<g;b++)s.stepForward()}}while(t&&i<=0);if(C&&u&&h&&v&&S&&m)return{openTag:new p(C.start.row,C.start.column,u.end.row,u.end.column),closeTag:new p(h.start.row,h.start.column,v.end.row,v.end.column),openTagName:S,closeTagName:m}}}}y.BracketMatch=c}),ace.define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/bidihandler","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(w,y,M){var f=w("./lib/oop"),p=w("./lib/lang"),c=w("./bidihandler").BidiHandler,s=w("./config"),a=w("./lib/event_emitter").EventEmitter,t=w("./selection").Selection,e=w("./mode/text").Mode,i=w("./range").Range,n=w("./document").Document,r=w("./background_tokenizer").BackgroundTokenizer,l=w("./search_highlight").SearchHighlight,h=function(m,v){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++h.$uid,this.$foldData.toString=function(){return this.join(` `)},this.bgTokenizer=new r(new e().getTokenizer(),this);var S=this;this.bgTokenizer.on("update",function(C){S._signal("tokenizerUpdate",C)}),this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this),(typeof m!="object"||!m.getLine)&&(m=new n(m)),this.setDocument(m),this.selection=new t(this),this.$bidiHandler=new c(this),s.resetOptions(this),this.setMode(v),s._signal("session",this),this.destroyed=!1};h.$uid=0,function(){f.implement(this,a),this.setDocument=function(o){this.doc&&this.doc.off("change",this.$onChange),this.doc=o,o.on("change",this.$onChange,!0),this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(o){if(!o){this.$docRowCache=[],this.$screenRowCache=[];return}var d=this.$docRowCache.length,$=this.$getRowCacheIndex(this.$docRowCache,o)+1;d>$&&(this.$docRowCache.splice($,d),this.$screenRowCache.splice($,d))},this.$getRowCacheIndex=function(o,d){for(var $=0,k=o.length-1;$<=k;){var _=$+k>>1,L=o[_];if(d>L)$=_+1;else if(d<L)k=_-1;else return _}return $-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.destroyed||this.bgTokenizer.start(0)},this.onChangeFold=function(o){var d=o.data;this.$resetRowCache(d.start.row)},this.onChange=function(o){this.$modified=!0,this.$bidiHandler.onChange(o),this.$resetRowCache(o.start.row);var d=this.$updateInternalDataOnChange(o);!this.$fromUndo&&this.$undoManager&&(d&&d.length&&(this.$undoManager.add({action:"removeFolds",folds:d},this.mergeUndoDeltas),this.mergeUndoDeltas=!0),this.$undoManager.add(o,this.mergeUndoDeltas),this.mergeUndoDeltas=!0,this.$informUndoManager.schedule()),this.bgTokenizer.$updateOnChange(o),this._signal("change",o)},this.setValue=function(o){this.doc.setValue(o),this.selection.moveTo(0,0),this.$resetRowCache(0),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(o){return this.bgTokenizer.getState(o)},this.getTokens=function(o){return this.bgTokenizer.getTokens(o)},this.getTokenAt=function(o,d){var $=this.bgTokenizer.getTokens(o),k,_=0;if(d==null){var L=$.length-1;_=this.getLine(o).length}else for(var L=0;L<$.length&&(_+=$[L].value.length,!(_>=d));L++);return k=$[L],k?(k.index=L,k.start=_-k.value.length,k):null},this.setUndoManager=function(o){if(this.$undoManager=o,this.$informUndoManager&&this.$informUndoManager.cancel(),o){var d=this;o.addSession(this),this.$syncInformUndoManager=function(){d.$informUndoManager.cancel(),d.mergeUndoDeltas=!1},this.$informUndoManager=p.delayedCall(this.$syncInformUndoManager)}else this.$syncInformUndoManager=function(){}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},hasUndo:function(){},hasRedo:function(){},reset:function(){},add:function(){},addSelection:function(){},startNewGroup:function(){},addSession:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?p.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(o){this.setOption("useSoftTabs",o)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(o){this.setOption("tabSize",o)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(o){return this.$useSoftTabs&&o.column%this.$tabSize===0},this.setNavigateWithinSoftTabs=function(o){this.setOption("navigateWithinSoftTabs",o)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},this.$overwrite=!1,this.setOverwrite=function(o){this.setOption("overwrite",o)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(o,d){this.$decorations[o]||(this.$decorations[o]=""),this.$decorations[o]+=" "+d,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(o,d){this.$decorations[o]=(this.$decorations[o]||"").replace(" "+d,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(o){this.$breakpoints=[];for(var d=0;d<o.length;d++)this.$breakpoints[o[d]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(o,d){d===void 0&&(d="ace_breakpoint"),d?this.$breakpoints[o]=d:delete this.$breakpoints[o],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(o){delete this.$breakpoints[o],this._signal("changeBreakpoint",{})},this.addMarker=function(o,d,$,k){var _=this.$markerId++,L={range:o,type:$||"line",renderer:typeof $=="function"?$:null,clazz:d,inFront:!!k,id:_};return k?(this.$frontMarkers[_]=L,this._signal("changeFrontMarker")):(this.$backMarkers[_]=L,this._signal("changeBackMarker")),_},this.addDynamicMarker=function(o,d){if(o.update){var $=this.$markerId++;return o.id=$,o.inFront=!!d,d?(this.$frontMarkers[$]=o,this._signal("changeFrontMarker")):(this.$backMarkers[$]=o,this._signal("changeBackMarker")),o}},this.removeMarker=function(o){var d=this.$frontMarkers[o]||this.$backMarkers[o];if(d){var $=d.inFront?this.$frontMarkers:this.$backMarkers;delete $[o],this._signal(d.inFront?"changeFrontMarker":"changeBackMarker")}},this.getMarkers=function(o){return o?this.$frontMarkers:this.$backMarkers},this.highlight=function(o){if(!this.$searchHighlight){var d=new l(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(d)}this.$searchHighlight.setRegexp(o)},this.highlightLines=function(o,d,$,k){typeof d!="number"&&($=d,d=o),$||($="ace_step");var _=new i(o,0,d,1/0);return _.id=this.addMarker(_,$,"fullLine",k),_},this.setAnnotations=function(o){this.$annotations=o,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(o){var d=o.match(/^.*?(\r?\n)/m);d?this.$autoNewLine=d[1]:this.$autoNewLine=` `},this.getWordRange=function(o,d){var $=this.getLine(o),k=!1;if(d>0&&(k=!!$.charAt(d-1).match(this.tokenRe)),k||(k=!!$.charAt(d).match(this.tokenRe)),k)var _=this.tokenRe;else if(/^\s+$/.test($.slice(d-1,d+1)))var _=/\s/;else var _=this.nonTokenRe;var L=d;if(L>0){do L--;while(L>=0&&$.charAt(L).match(_));L++}for(var T=d;T<$.length&&$.charAt(T).match(_);)T++;return new i(o,L,o,T)},this.getAWordRange=function(o,d){for(var $=this.getWordRange(o,d),k=this.getLine($.end.row);k.charAt($.end.column).match(/[ \t]/);)$.end.column+=1;return $},this.setNewLineMode=function(o){this.doc.setNewLineMode(o)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(o){this.setOption("useWorker",o)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(o){var d=o.data;this.bgTokenizer.start(d.first),this._signal("tokenizerUpdate",o)},this.$modes=s.$modes,this.$mode=null,this.$modeId=null,this.setMode=function(o,d){if(o&&typeof o=="object"){if(o.getTokenizer)return this.$onChangeMode(o);var $=o,k=$.path}else k=o||"ace/mode/text";if(this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new e),this.$modes[k]&&!$){this.$onChangeMode(this.$modes[k]),d&&d();return}this.$modeId=k,s.loadModule(["mode",k],function(_){if(this.$modeId!==k)return d&&d();this.$modes[k]&&!$?this.$onChangeMode(this.$modes[k]):_&&_.Mode&&(_=new _.Mode($),$||(this.$modes[k]=_,_.$id=k),this.$onChangeMode(_)),d&&d()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(o,d){if(d||(this.$modeId=o.$id),this.$mode!==o){var $=this.$mode;this.$mode=o,this.$stopWorker(),this.$useWorker&&this.$startWorker();var k=o.getTokenizer();if(k.on!==void 0){var _=this.onReloadTokenizer.bind(this);k.on("update",_)}this.bgTokenizer.setTokenizer(k),this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=o.tokenRe,this.nonTokenRe=o.nonTokenRe,d||(o.attachToSession&&o.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(o.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode",{oldMode:$,mode:o}))}},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(o){s.warn("Could not load worker",o),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(o){this.$scrollTop===o||isNaN(o)||(this.$scrollTop=o,this._signal("changeScrollTop",o))},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(o){this.$scrollLeft===o||isNaN(o)||(this.$scrollLeft=o,this._signal("changeScrollLeft",o))},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 o=0;return this.lineWidgets.forEach(function(d){d&&d.screenWidth>o&&(o=d.screenWidth)}),this.lineWidgetWidth=o},this.$computeWidth=function(o){if(this.$modified||o){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var d=this.doc.getAllLines(),$=this.$rowLengthCache,k=0,_=0,L=this.$foldData[_],T=L?L.start.row:1/0,F=d.length,I=0;I<F;I++){if(I>T){if(I=L.end.row+1,I>=F)break;L=this.$foldData[_++],T=L?L.start.row:1/0}$[I]==null&&($[I]=this.$getStringScreenWidth(d[I])[0]),$[I]>k&&(k=$[I])}this.screenWidth=k}},this.getLine=function(o){return this.doc.getLine(o)},this.getLines=function(o,d){return this.doc.getLines(o,d)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(o){return this.doc.getTextRange(o||this.selection.getRange())},this.insert=function(o,d){return this.doc.insert(o,d)},this.remove=function(o){return this.doc.remove(o)},this.removeFullLines=function(o,d){return this.doc.removeFullLines(o,d)},this.undoChanges=function(o,d){if(o.length){this.$fromUndo=!0;for(var $=o.length-1;$!=-1;$--){var k=o[$];k.action=="insert"||k.action=="remove"?this.doc.revertDelta(k):k.folds&&this.addFolds(k.folds)}!d&&this.$undoSelect&&(o.selectionBefore?this.selection.fromJSON(o.selectionBefore):this.selection.setRange(this.$getUndoSelection(o,!0))),this.$fromUndo=!1}},this.redoChanges=function(o,d){if(o.length){this.$fromUndo=!0;for(var $=0;$<o.length;$++){var k=o[$];(k.action=="insert"||k.action=="remove")&&this.doc.$safeApplyDelta(k)}!d&&this.$undoSelect&&(o.selectionAfter?this.selection.fromJSON(o.selectionAfter):this.selection.setRange(this.$getUndoSelection(o,!1))),this.$fromUndo=!1}},this.setUndoSelect=function(o){this.$undoSelect=o},this.$getUndoSelection=function(o,d){function $(F){return d?F.action!=="insert":F.action==="insert"}for(var k,_,L=0;L<o.length;L++){var T=o[L];if(T.start){if(!k){$(T)?k=i.fromPoints(T.start,T.end):k=i.fromPoints(T.start,T.start);continue}$(T)?(_=T.start,k.compare(_.row,_.column)==-1&&k.setStart(_),_=T.end,k.compare(_.row,_.column)==1&&k.setEnd(_)):(_=T.start,k.compare(_.row,_.column)==-1&&(k=i.fromPoints(T.start,T.start)))}}return k},this.replace=function(o,d){return this.doc.replace(o,d)},this.moveText=function(o,d,$){var k=this.getTextRange(o),_=this.getFoldsInRange(o),L=i.fromPoints(d,d);if(!$){this.remove(o);var T=o.start.row-o.end.row,F=T?-o.end.column:o.start.column-o.end.column;F&&(L.start.row==o.end.row&&L.start.column>o.end.column&&(L.start.column+=F),L.end.row==o.end.row&&L.end.column>o.end.column&&(L.end.column+=F)),T&&L.start.row>=o.end.row&&(L.start.row+=T,L.end.row+=T)}if(L.end=this.insert(L.start,k),_.length){var I=o.start,B=L.start,T=B.row-I.row,F=B.column-I.column;this.addFolds(_.map(function(U){return U=U.clone(),U.start.row==I.row&&(U.start.column+=F),U.end.row==I.row&&(U.end.column+=F),U.start.row+=T,U.end.row+=T,U}))}return L},this.indentRows=function(o,d,$){$=$.replace(/\t/g,this.getTabString());for(var k=o;k<=d;k++)this.doc.insertInLine({row:k,column:0},$)},this.outdentRows=function(o){for(var d=o.collapseRows(),$=new i(0,0,0,0),k=this.getTabSize(),_=d.start.row;_<=d.end.row;++_){var L=this.getLine(_);$.start.row=_,$.end.row=_;for(var T=0;T<k&&L.charAt(T)==" ";++T);T<k&&L.charAt(T)==" "?($.start.column=T,$.end.column=T+1):($.start.column=0,$.end.column=T),this.remove($)}},this.$moveLines=function(o,d,$){if(o=this.getRowFoldStart(o),d=this.getRowFoldEnd(d),$<0){var k=this.getRowFoldStart(o+$);if(k<0)return 0;var _=k-o}else if($>0){var k=this.getRowFoldEnd(d+$);if(k>this.doc.getLength()-1)return 0;var _=k-d}else{o=this.$clipRowToDocument(o),d=this.$clipRowToDocument(d);var _=d-o+1}var L=new i(o,0,d,Number.MAX_VALUE),T=this.getFoldsInRange(L).map(function(I){return I=I.clone(),I.start.row+=_,I.end.row+=_,I}),F=$==0?this.doc.getLines(o,d):this.doc.removeFullLines(o,d);return this.doc.insertFullLines(o+_,F),T.length&&this.addFolds(T),_},this.moveLinesUp=function(o,d){return this.$moveLines(o,d,-1)},this.moveLinesDown=function(o,d){return this.$moveLines(o,d,1)},this.duplicateLines=function(o,d){return this.$moveLines(o,d,0)},this.$clipRowToDocument=function(o){return Math.max(0,Math.min(o,this.doc.getLength()-1))},this.$clipColumnToRow=function(o,d){return d<0?0:Math.min(this.doc.getLine(o).length,d)},this.$clipPositionToDocument=function(o,d){if(d=Math.max(0,d),o<0)o=0,d=0;else{var $=this.doc.getLength();o>=$?(o=$-1,d=this.doc.getLine($-1).length):d=Math.min(this.doc.getLine(o).length,d)}return{row:o,column:d}},this.$clipRangeToDocument=function(o){o.start.row<0?(o.start.row=0,o.start.column=0):o.start.column=this.$clipColumnToRow(o.start.row,o.start.column);var d=this.doc.getLength()-1;return o.end.row>d?(o.end.row=d,o.end.column=this.doc.getLine(d).length):o.end.column=this.$clipColumnToRow(o.end.row,o.end.column),o},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(o){if(o!=this.$useWrapMode){if(this.$useWrapMode=o,this.$modified=!0,this.$resetRowCache(0),o){var d=this.getLength();this.$wrapData=Array(d),this.$updateWrapData(0,d-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(o,d){(this.$wrapLimitRange.min!==o||this.$wrapLimitRange.max!==d)&&(this.$wrapLimitRange={min:o,max:d},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(o,d){var $=this.$wrapLimitRange;$.max<0&&($={min:d,max:d});var k=this.$constrainWrapLimit(o,$.min,$.max);return k!=this.$wrapLimit&&k>1?(this.$wrapLimit=k,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(o,d,$){return d&&(o=Math.max(d,o)),$&&(o=Math.min($,o)),o},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(o){this.setWrapLimitRange(o,o)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(o){var d=this.$useWrapMode,$=o.action,k=o.start,_=o.end,L=k.row,T=_.row,F=T-L,I=null;if(this.$updating=!0,F!=0)if($==="remove"){this[d?"$wrapData":"$rowLengthCache"].splice(L,F);var B=this.$foldData;I=this.getFoldsInRange(o),this.removeFolds(I);var H=this.getFoldLine(_.row),z=0;if(H){H.addRemoveChars(_.row,_.column,k.column-_.column),H.shiftRow(-F);var U=this.getFoldLine(L);U&&U!==H&&(U.merge(H),H=U),z=B.indexOf(H)+1}for(z;z<B.length;z++){var H=B[z];H.start.row>=_.row&&H.shiftRow(-F)}T=L}else{var D=Array(F);D.unshift(L,0);var P=d?this.$wrapData:this.$rowLengthCache;P.splice.apply(P,D);var B=this.$foldData,H=this.getFoldLine(L),z=0;if(H){var N=H.range.compareInside(k.row,k.column);N==0?(H=H.split(k.row,k.column),H&&(H.shiftRow(F),H.addRemoveChars(T,0,_.column-k.column))):N==-1&&(H.addRemoveChars(L,0,_.column-k.column),H.shiftRow(F)),z=B.indexOf(H)+1}for(z;z<B.length;z++){var H=B[z];H.start.row>=L&&H.shiftRow(F)}}else{F=Math.abs(o.start.column-o.end.column),$==="remove"&&(I=this.getFoldsInRange(o),this.removeFolds(I),F=-F);var H=this.getFoldLine(L);H&&H.addRemoveChars(L,k.column,F)}return d&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,d?this.$updateWrapData(L,T):this.$updateRowLengthCache(L,T),I},this.$updateRowLengthCache=function(o,d,$){this.$rowLengthCache[o]=null,this.$rowLengthCache[d]=null},this.$updateWrapData=function(o,d){var $=this.doc.getAllLines(),k=this.getTabSize(),_=this.$wrapData,L=this.$wrapLimit,T,F,I=o;for(d=Math.min(d,$.length-1);I<=d;)F=this.getFoldLine(I,F),F?(T=[],F.walk(function(B,H,z,U){var D;if(B!=null){D=this.$getDisplayTokens(B,T.length),D[0]=S;for(var P=1;P<D.length;P++)D[P]=C}else D=this.$getDisplayTokens($[H].substring(U,z),T.length);T=T.concat(D)}.bind(this),F.end.row,$[F.end.row].length+1),_[F.start.row]=this.$computeWrapSplits(T,L,k),I=F.end.row+1):(T=this.$getDisplayTokens($[I]),_[I]=this.$computeWrapSplits(T,L,k),I++)};var m=1,v=2,S=3,C=4,u=9,g=10,A=11,b=12;this.$computeWrapSplits=function(o,d,$){if(o.length==0)return[];var k=[],_=o.length,L=0,T=0,F=this.$wrapAsCode,I=this.$indentedSoftWrap,B=d<=Math.max(2*$,8)||I===!1?0:Math.floor(d/2);function H(){var N=0;if(B===0)return N;if(I)for(var j=0;j<o.length;j++){var Y=o[j];if(Y==g)N+=1;else if(Y==A)N+=$;else{if(Y==b)continue;break}}return F&&I!==!1&&(N+=$),Math.min(N,B)}function z(N){for(var j=N-L,Y=L;Y<N;Y++){var V=o[Y];(V===12||V===2)&&(j-=1)}k.length||(U=H(),k.indent=U),T+=j,k.push(T),L=N}for(var U=0;_-L>d-U;){var D=L+d-U;if(o[D-1]>=g&&o[D]>=g){z(D);continue}if(o[D]==S||o[D]==C){for(D;D!=L-1&&o[D]!=S;D--);if(D>L){z(D);continue}for(D=L+d,D;D<o.length&&o[D]==C;D++);if(D==o.length)break;z(D);continue}for(var P=Math.max(D-(d-(d>>2)),L-1);D>P&&o[D]<S;)D--;if(F){for(;D>P&&o[D]<S;)D--;for(;D>P&&o[D]==u;)D--}else for(;D>P&&o[D]<g;)D--;if(D>P){z(++D);continue}D=L+d,o[D]==v&&D--,z(D-U)}return k},this.$getDisplayTokens=function(o,d){var $=[],k;d=d||0;for(var _=0;_<o.length;_++){var L=o.charCodeAt(_);if(L==9){k=this.getScreenTabSize($.length+d),$.push(A);for(var T=1;T<k;T++)$.push(b)}else L==32?$.push(g):L>39&&L<48||L>57&&L<64?$.push(u):L>=4352&&x(L)?$.push(m,v):$.push(m)}return $},this.$getStringScreenWidth=function(o,d,$){if(d==0)return[0,0];d==null&&(d=1/0),$=$||0;var k,_;for(_=0;_<o.length&&(k=o.charCodeAt(_),k==9?$+=this.getScreenTabSize($):k>=4352&&x(k)?$+=2:$+=1,!($>d));_++);return[$,_]},this.lineWidgets=null,this.getRowLength=function(o){var d=1;return this.lineWidgets&&(d+=this.lineWidgets[o]&&this.lineWidgets[o].rowCount||0),!this.$useWrapMode||!this.$wrapData[o]?d:this.$wrapData[o].length+d},this.getRowLineCount=function(o){return!this.$useWrapMode||!this.$wrapData[o]?1:this.$wrapData[o].length+1},this.getRowWrapIndent=function(o){if(this.$useWrapMode){var d=this.screenToDocumentPosition(o,Number.MAX_VALUE),$=this.$wrapData[d.row];return $.length&&$[0]<d.column?$.indent:0}else return 0},this.getScreenLastRowColumn=function(o){var d=this.screenToDocumentPosition(o,Number.MAX_VALUE);return this.documentToScreenColumn(d.row,d.column)},this.getDocumentLastRowColumn=function(o,d){var $=this.documentToScreenRow(o,d);return this.getScreenLastRowColumn($)},this.getDocumentLastRowColumnPosition=function(o,d){var $=this.documentToScreenRow(o,d);return this.screenToDocumentPosition($,Number.MAX_VALUE/10)},this.getRowSplitData=function(o){if(this.$useWrapMode)return this.$wrapData[o]},this.getScreenTabSize=function(o){return this.$tabSize-(o%this.$tabSize|0)},this.screenToDocumentRow=function(o,d){return this.screenToDocumentPosition(o,d).row},this.screenToDocumentColumn=function(o,d){return this.screenToDocumentPosition(o,d).column},this.screenToDocumentPosition=function(o,d,$){if(o<0)return{row:0,column:0};var k,_=0,L=0,T,F=0,I=0,B=this.$screenRowCache,H=this.$getRowCacheIndex(B,o),z=B.length;if(z&&H>=0)var F=B[H],_=this.$docRowCache[H],U=o>B[z-1];else var U=!z;for(var D=this.getLength()-1,P=this.getNextFoldLine(_),N=P?P.start.row:1/0;F<=o&&(I=this.getRowLength(_),!(F+I>o||_>=D));)F+=I,_++,_>N&&(_=P.end.row+1,P=this.getNextFoldLine(_,P),N=P?P.start.row:1/0),U&&(this.$docRowCache.push(_),this.$screenRowCache.push(F));if(P&&P.start.row<=_)k=this.getFoldDisplayLine(P),_=P.start.row;else{if(F+I<=o||_>D)return{row:D,column:this.getLine(D).length};k=this.getLine(_),P=null}var j=0,Y=Math.floor(o-F);if(this.$useWrapMode){var V=this.$wrapData[_];V&&(T=V[Y],Y>0&&V.length&&(j=V.indent,L=V[Y-1]||V[V.length-1],k=k.substring(L)))}return $!==void 0&&this.$bidiHandler.isBidiRow(F+Y,_,Y)&&(d=this.$bidiHandler.offsetToCol($)),L+=this.$getStringScreenWidth(k,d-j)[1],this.$useWrapMode&&L>=T&&(L=T-1),P?P.idxToPosition(L):{row:_,column:L}},this.documentToScreenPosition=function(o,d){if(typeof d>"u")var $=this.$clipPositionToDocument(o.row,o.column);else $=this.$clipPositionToDocument(o,d);o=$.row,d=$.column;var k=0,_=null,L=null;L=this.getFoldAt(o,d,1),L&&(o=L.start.row,d=L.start.column);var T,F=0,I=this.$docRowCache,B=this.$getRowCacheIndex(I,o),H=I.length;if(H&&B>=0)var F=I[B],k=this.$screenRowCache[B],z=o>I[H-1];else var z=!H;for(var U=this.getNextFoldLine(F),D=U?U.start.row:1/0;F<o;){if(F>=D){if(T=U.end.row+1,T>o)break;U=this.getNextFoldLine(T,U),D=U?U.start.row:1/0}else T=F+1;k+=this.getRowLength(F),F=T,z&&(this.$docRowCache.push(F),this.$screenRowCache.push(k))}var P="";U&&F>=D?(P=this.getFoldDisplayLine(U,o,d),_=U.start.row):(P=this.getLine(o).substring(0,d),_=o);var N=0;if(this.$useWrapMode){var j=this.$wrapData[_];if(j){for(var Y=0;P.length>=j[Y];)k++,Y++;P=P.substring(j[Y-1]||0,P.length),N=Y>0?j.indent:0}}return this.lineWidgets&&this.lineWidgets[F]&&this.lineWidgets[F].rowsAbove&&(k+=this.lineWidgets[F].rowsAbove),{row:k,column:N+this.$getStringScreenWidth(P)[0]}},this.documentToScreenColumn=function(o,d){return this.documentToScreenPosition(o,d).column},this.documentToScreenRow=function(o,d){return this.documentToScreenPosition(o,d).row},this.getScreenLength=function(){var o=0,d=null;if(this.$useWrapMode)for(var _=this.$wrapData.length,L=0,k=0,d=this.$foldData[k++],T=d?d.start.row:1/0;L<_;){var F=this.$wrapData[L];o+=F?F.length+1:1,L++,L>T&&(L=d.end.row+1,d=this.$foldData[k++],T=d?d.start.row:1/0)}else{o=this.getLength();for(var $=this.$foldData,k=0;k<$.length;k++)d=$[k],o-=d.end.row-d.start.row}return this.lineWidgets&&(o+=this.$getWidgetScreenLength()),o},this.$setFontMetrics=function(o){this.$enableVarChar&&(this.$getStringScreenWidth=function(d,$,k){if($===0)return[0,0];$||($=1/0),k=k||0;var _,L;for(L=0;L<d.length&&(_=d.charAt(L),_===" "?k+=this.getScreenTabSize(k):k+=o.getCharacterWidth(_),!(k>$));L++);return[k,L]})},this.destroy=function(){this.destroyed||(this.bgTokenizer.setDocument(null),this.bgTokenizer.cleanup(),this.destroyed=!0),this.$stopWorker(),this.removeAllListeners(),this.doc&&this.doc.off("change",this.$onChange),this.selection.detach()},this.isFullWidth=x;function x(o){return o<4352?!1:o>=4352&&o<=4447||o>=4515&&o<=4519||o>=4602&&o<=4607||o>=9001&&o<=9002||o>=11904&&o<=11929||o>=11931&&o<=12019||o>=12032&&o<=12245||o>=12272&&o<=12283||o>=12288&&o<=12350||o>=12353&&o<=12438||o>=12441&&o<=12543||o>=12549&&o<=12589||o>=12593&&o<=12686||o>=12688&&o<=12730||o>=12736&&o<=12771||o>=12784&&o<=12830||o>=12832&&o<=12871||o>=12880&&o<=13054||o>=13056&&o<=19903||o>=19968&&o<=42124||o>=42128&&o<=42182||o>=43360&&o<=43388||o>=44032&&o<=55203||o>=55216&&o<=55238||o>=55243&&o<=55291||o>=63744&&o<=64255||o>=65040&&o<=65049||o>=65072&&o<=65106||o>=65108&&o<=65126||o>=65128&&o<=65131||o>=65281&&o<=65376||o>=65504&&o<=65510}}.call(h.prototype),w("./edit_session/folding").Folding.call(h.prototype),w("./edit_session/bracket_match").BracketMatch.call(h.prototype),s.defineOptions(h.prototype,"session",{wrap:{set:function(m){if(!m||m=="off"?m=!1:m=="free"?m=!0:m=="printMargin"?m=-1:typeof m=="string"&&(m=parseInt(m,10)||!1),this.$wrap!=m)if(this.$wrap=m,!m)this.setUseWrapMode(!1);else{var v=typeof m=="number"?m:null;this.setWrapLimitRange(v,v),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(m){m=m=="auto"?this.$mode.type!="text":m!="text",m!=this.$wrapAsCode&&(this.$wrapAsCode=m,this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0)))},initialValue:"auto"},indentedSoftWrap:{set:function(){this.$useWrapMode&&(this.$useWrapMode=!1,this.setUseWrapMode(!0))},initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(m){this.$useWorker=m,this.$stopWorker(),m&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(m){m=parseInt(m),m>0&&this.$tabSize!==m&&(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=m,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},foldStyle:{set:function(m){this.setFoldStyle(m)},handlesSet:!0},overwrite:{set:function(m){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(m){this.doc.setNewLineMode(m)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(m){this.setMode(m)},get:function(){return this.$modeId},handlesSet:!0}}),y.EditSession=h}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(w,y,M){var f=w("./lib/lang"),p=w("./lib/oop"),c=w("./range").Range,s=function(){this.$options={}};(function(){this.set=function(t){return p.mixin(this.$options,t),this},this.getOptions=function(){return f.copyObject(this.$options)},this.setOptions=function(t){this.$options=t},this.find=function(t){var e=this.$options,i=this.$matchIterator(t,e);if(!i)return!1;var n=null;return i.forEach(function(r,l,h,m){return n=new c(r,l,h,m),l==m&&e.start&&e.start.start&&e.skipCurrent!=!1&&n.isEqual(e.start)?(n=null,!1):!0}),n},this.findAll=function(t){var e=this.$options;if(!e.needle)return[];this.$assembleRegExp(e);var i=e.range,n=i?t.getLines(i.start.row,i.end.row):t.doc.getAllLines(),r=[],l=e.re;if(e.$isMultiLine){var h=l.length,m=n.length-h,v;e:for(var S=l.offset||0;S<=m;S++){for(var C=0;C<h;C++)if(n[S+C].search(l[C])==-1)continue e;var u=n[S],g=n[S+h-1],A=u.length-u.match(l[0])[0].length,b=g.match(l[h-1])[0].length;v&&v.end.row===S&&v.end.column>A||(r.push(v=new c(S,A,S+h-1,b)),h>2&&(S=S+h-2))}}else for(var x=0;x<n.length;x++)for(var o=f.getMatchOffsets(n[x],l),C=0;C<o.length;C++){var d=o[C];r.push(new c(x,d.offset,x,d.offset+d.length))}if(i){for(var $=i.start.column,k=i.end.column,x=0,C=r.length-1;x<C&&r[x].start.column<$&&r[x].start.row==0;)x++;for(var _=i.end.row-i.start.row;x<C&&r[C].end.column>k&&r[C].end.row==_;)C--;for(r=r.slice(x,C+1),x=0,C=r.length;x<C;x++)r[x].start.row+=i.start.row,r[x].end.row+=i.start.row}return r},this.replace=function(t,e){var i=this.$options,n=this.$assembleRegExp(i);if(i.$isMultiLine)return e;if(n){var r=n.exec(t);if(!r||r[0].length!=t.length)return null;if(e=t.replace(n,e),i.preserveCase){e=e.split("");for(var l=Math.min(t.length,t.length);l--;){var h=t[l];h&&h.toLowerCase()!=h?e[l]=e[l].toUpperCase():e[l]=e[l].toLowerCase()}e=e.join("")}return e}},this.$assembleRegExp=function(t,e){if(t.needle instanceof RegExp)return t.re=t.needle;var i=t.needle;if(!t.needle)return t.re=!1;t.regExp||(i=f.escapeRegExp(i)),t.wholeWord&&(i=a(i,t));var n=t.caseSensitive?"gm":"gmi";if(t.$isMultiLine=!e&&/[\n\r]/.test(i),t.$isMultiLine)return t.re=this.$assembleMultilineRegExp(i,n);try{var r=new RegExp(i,n)}catch{r=!1}return t.re=r},this.$assembleMultilineRegExp=function(t,e){for(var i=t.replace(/\r\n|\r|\n/g,`$ ^`).split(` `),n=[],r=0;r<i.length;r++)try{n.push(new RegExp(i[r],e))}catch{return!1}return n},this.$matchIterator=function(t,e){var i=this.$assembleRegExp(e);if(!i)return!1;var n=e.backwards==!0,r=e.skipCurrent!=!1,l=e.range,h=e.start;h||(h=l?l[n?"end":"start"]:t.selection.getRange()),h.start&&(h=h[r!=n?"end":"start"]);var m=l?l.start.row:0,v=l?l.end.row:t.getLength()-1;if(n)var S=function(g){var A=h.row;if(!u(A,h.column,g)){for(A--;A>=m;A--)if(u(A,Number.MAX_VALUE,g))return;if(e.wrap!=!1){for(A=v,m=h.row;A>=m;A--)if(u(A,Number.MAX_VALUE,g))return}}};else var S=function(A){var b=h.row;if(!u(b,h.column,A)){for(b=b+1;b<=v;b++)if(u(b,0,A))return;if(e.wrap!=!1){for(b=m,v=h.row;b<=v;b++)if(u(b,0,A))return}}};if(e.$isMultiLine)var C=i.length,u=function(g,A,b){var x=n?g-C+1:g;if(!(x<0||x+C>t.getLength())){var o=t.getLine(x),d=o.search(i[0]);if(!(!n&&d<A||d===-1)){for(var $=1;$<C;$++)if(o=t.getLine(x+$),o.search(i[$])==-1)return;var k=o.match(i[C-1])[0].length;if(!(n&&k>A)&&b(x,d,x+C-1,k))return!0}}};else if(n)var u=function(A,b,x){var o=t.getLine(A),d=[],$,k=0;for(i.lastIndex=0;$=i.exec(o);){var _=$[0].length;if(k=$.index,!_){if(k>=o.length)break;i.lastIndex=k+=1}if($.index+_>b)break;d.push($.index,_)}for(var L=d.length-1;L>=0;L-=2){var T=d[L-1],_=d[L];if(x(A,T,A,T+_))return!0}};else var u=function(A,b,x){var o=t.getLine(A),d,$;for(i.lastIndex=b;$=i.exec(o);){var k=$[0].length;if(d=$.index,x(A,d,A,d+k))return!0;if(!k&&(i.lastIndex=d+=1,d>=o.length))return!1}};return{forEach:S}}}).call(s.prototype);function a(t,e){function i(n){return/\w/.test(n)||e.regExp?"\\b":""}return i(t[0])+t+i(t[t.length-1])}y.Search=s}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(w,y,M){var f=w("../lib/keys"),p=w("../lib/useragent"),c=f.KEY_MODS;function s(t,e){this.platform=e||(p.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(t),this.$singleCommand=!0}function a(t,e){s.call(this,t,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 n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],i||delete this.commands[n];var r=this.commandKeyBinding;for(var l in r){var h=r[l];if(h==e)delete r[l];else if(Array.isArray(h)){var m=h.indexOf(e);m!=-1&&(h.splice(m,1),h.length==1&&(r[l]=h[0]))}}},this.bindKey=function(e,i,n){if(typeof e=="object"&&e&&(n==null&&(n=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 l="";if(r.indexOf(" ")!=-1){var h=r.split(/\s+/);r=h.pop(),h.forEach(function(S){var C=this.parseKeys(S),u=c[C.hashId]+C.key;l+=(l?" ":"")+u,this._addCommandToBinding(l,"chainKeys")},this),l+=" "}var m=this.parseKeys(r),v=c[m.hashId]+m.key;this._addCommandToBinding(l+v,i,n)},this)}};function t(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||(e.isDefault?-100:0)}this._addCommandToBinding=function(e,i,n){var r=this.commandKeyBinding,l;if(!i)delete r[e];else if(!r[e]||this.$singleCommand)r[e]=i;else{Array.isArray(r[e])?(l=r[e].indexOf(i))!=-1&&r[e].splice(l,1):r[e]=[r[e]],typeof n!="number"&&(n=t(i));var h=r[e];for(l=0;l<h.length;l++){var m=h[l],v=t(m);if(v>n)break}h.splice(l,0,i)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(i){var n=e[i];if(n){if(typeof n=="string")return this.bindKey(n,i);typeof n=="function"&&(n={exec:n}),typeof n=="object"&&(n.name||(n.name=i),this.addCommand(n))}},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(v){return v}),n=i.pop(),r=f[n];if(f.FUNCTION_KEYS[r])n=f.FUNCTION_KEYS[r].toLowerCase();else if(i.length){if(i.length==1&&i[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}else return{key:n,hashId:-1};for(var l=0,h=i.length;h--;){var m=f.KEY_MODS[i[h]];if(m==null)return typeof console<"u"&&console.error("invalid modifier "+i[h]+" in "+e),!1;l|=m}return{key:n,hashId:l}},this.findKeyCommand=function(i,n){var r=c[i]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,i,n,r){if(!(r<0)){var l=c[i]+n,h=this.commandKeyBinding[l];return e.$keyChain&&(e.$keyChain+=" "+l,h=this.commandKeyBinding[e.$keyChain]||h),h&&(h=="chainKeys"||h[h.length-1]=="chainKeys")?(e.$keyChain=e.$keyChain||l,{command:"null"}):(e.$keyChain&&((!i||i==4)&&n.length==1?e.$keyChain=e.$keyChain.slice(0,-l.length-1):(i==-1||r>0)&&(e.$keyChain="")),{command:h})}},this.getStatusText=function(e,i){return i.$keyChain||""}}.call(s.prototype),y.HashHandler=s,y.MultiHashHandler=a}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(w,y,M){var f=w("../lib/oop"),p=w("../keyboard/hash_handler").MultiHashHandler,c=w("../lib/event_emitter").EventEmitter,s=function(a,t){p.call(this,t,a),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.args?e.command.exec(e.editor,e.args,e.event,!1):e.command.exec(e.editor,{},e.event,!0)})};f.inherits(s,p),function(){f.implement(this,c),this.exec=function(a,t,e){if(Array.isArray(a)){for(var i=a.length;i--;)if(this.exec(a[i],t,e))return!0;return!1}if(typeof a=="string"&&(a=this.commands[a]),!a||t&&t.$readOnly&&!a.readOnly||this.$checkCommandState!=!1&&a.isAvailable&&!a.isAvailable(t))return!1;var n={editor:t,command:a,args:e};return n.returnValue=this._emit("exec",n),this._signal("afterExec",n),n.returnValue!==!1},this.toggleRecording=function(a){if(!this.$inReplay)return a&&a._emit("changeStatus"),this.recording?(this.macro.pop(),this.off("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(t){this.macro.push([t.command,t.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(a){if(!(this.$inReplay||!this.macro)){if(this.recording)return this.toggleRecording(a);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,a):this.exec(t[0],a,t[1])},this)}finally{this.$inReplay=!1}}},this.trimMacro=function(a){return a.map(function(t){return typeof t[0]!="string"&&(t[0]=t[0].name),t[1]||(t=t[0]),t})}}.call(s.prototype),y.CommandManager=s}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(w,y,M){var f=w("../lib/lang"),p=w("../config"),c=w("../range").Range;function s(t,e){return{win:t,mac:e}}y.commands=[{name:"showSettingsMenu",description:"Show settings menu",bindKey:s("Ctrl-,","Command-,"),exec:function(t){p.loadModule("ace/ext/settings_menu",function(e){e.init(t),t.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",description:"Go to next error",bindKey:s("Alt-E","F4"),exec:function(t){p.loadModule("ace/ext/error_marker",function(e){e.showErrorMarker(t,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",description:"Go to previous error",bindKey:s("Alt-Shift-E","Shift-F4"),exec:function(t){p.loadModule("ace/ext/error_marker",function(e){e.showErrorMarker(t,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",description:"Select all",bindKey:s("Ctrl-A","Command-A"),exec:function(t){t.selectAll()},readOnly:!0},{name:"centerselection",description:"Center selection",bindKey:s(null,"Ctrl-L"),exec:function(t){t.centerSelection()},readOnly:!0},{name:"gotoline",description:"Go to line...",bindKey:s("Ctrl-L","Command-L"),exec:function(t,e){typeof e=="number"&&!isNaN(e)&&t.gotoLine(e),t.prompt({$type:"gotoLine"})},readOnly:!0},{name:"fold",bindKey:s("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(t){t.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:s("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(t){t.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",description:"Toggle fold widget",bindKey:s("F2","F2"),exec:function(t){t.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",description:"Toggle parent fold widget",bindKey:s("Alt-F2","Alt-F2"),exec:function(t){t.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",description:"Fold all",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(t){t.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldAllComments",description:"Fold all comments",bindKey:s(null,"Ctrl-Command-Option-0"),exec:function(t){t.session.foldAllComments()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",description:"Fold other",bindKey:s("Alt-0","Command-Option-0"),exec:function(t){t.session.foldAll(),t.session.unfold(t.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",description:"Unfold all",bindKey:s("Alt-Shift-0","Command-Option-Shift-0"),exec:function(t){t.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",description:"Find next",bindKey:s("Ctrl-K","Command-G"),exec:function(t){t.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",description:"Find previous",bindKey:s("Ctrl-Shift-K","Command-Shift-G"),exec:function(t){t.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",description:"Select or find next",bindKey:s("Alt-K","Ctrl-G"),exec:function(t){t.selection.isEmpty()?t.selection.selectWord():t.findNext()},readOnly:!0},{name:"selectOrFindPrevious",description:"Select or find previous",bindKey:s("Alt-Shift-K","Ctrl-Shift-G"),exec:function(t){t.selection.isEmpty()?t.selection.selectWord():t.findPrevious()},readOnly:!0},{name:"find",description:"Find",bindKey:s("Ctrl-F","Command-F"),exec:function(t){p.loadModule("ace/ext/searchbox",function(e){e.Search(t)})},readOnly:!0},{name:"overwrite",description:"Overwrite",bindKey:"Insert",exec:function(t){t.toggleOverwrite()},readOnly:!0},{name:"selecttostart",description:"Select to start",bindKey:s("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(t){t.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",description:"Go to start",bindKey:s("Ctrl-Home","Command-Home|Command-Up"),exec:function(t){t.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",description:"Select up",bindKey:s("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(t){t.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",description:"Go line up",bindKey:s("Up","Up|Ctrl-P"),exec:function(t,e){t.navigateUp(e.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",description:"Select to end",bindKey:s("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(t){t.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",description:"Go to end",bindKey:s("Ctrl-End","Command-End|Command-Down"),exec:function(t){t.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",description:"Select down",bindKey:s("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(t){t.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",description:"Go line down",bindKey:s("Down","Down|Ctrl-N"),exec:function(t,e){t.navigateDown(e.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",description:"Select word left",bindKey:s("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(t){t.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",description:"Go to word left",bindKey:s("Ctrl-Left","Option-Left"),exec:function(t){t.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",description:"Select to line start",bindKey:s("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(t){t.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",description:"Go to line start",bindKey:s("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(t){t.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",description:"Select left",bindKey:s("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(t){t.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",description:"Go to left",bindKey:s("Left","Left|Ctrl-B"),exec:function(t,e){t.navigateLeft(e.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",description:"Select word right",bindKey:s("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(t){t.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",description:"Go to word right",bindKey:s("Ctrl-Right","Option-Right"),exec:function(t){t.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",description:"Select to line end",bindKey:s("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(t){t.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",description:"Go to line end",bindKey:s("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(t){t.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",description:"Select right",bindKey:s("Shift-Right","Shift-Right"),exec:function(t){t.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",description:"Go to right",bindKey:s("Right","Right|Ctrl-F"),exec:function(t,e){t.navigateRight(e.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",description:"Select page down",bindKey:"Shift-PageDown",exec:function(t){t.selectPageDown()},readOnly:!0},{name:"pagedown",description:"Page down",bindKey:s(null,"Option-PageDown"),exec:function(t){t.scrollPageDown()},readOnly:!0},{name:"gotopagedown",description:"Go to page down",bindKey:s("PageDown","PageDown|Ctrl-V"),exec:function(t){t.gotoPageDown()},readOnly:!0},{name:"selectpageup",description:"Select page up",bindKey:"Shift-PageUp",exec:function(t){t.selectPageUp()},readOnly:!0},{name:"pageup",description:"Page up",bindKey:s(null,"Option-PageUp"),exec:function(t){t.scrollPageUp()},readOnly:!0},{name:"gotopageup",description:"Go to page up",bindKey:"PageUp",exec:function(t){t.gotoPageUp()},readOnly:!0},{name:"scrollup",description:"Scroll up",bindKey:s("Ctrl-Up",null),exec:function(t){t.renderer.scrollBy(0,-2*t.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",description:"Scroll down",bindKey:s("Ctrl-Down",null),exec:function(t){t.renderer.scrollBy(0,2*t.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",description:"Select line start",bindKey:"Shift-Home",exec:function(t){t.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",description:"Select line end",bindKey:"Shift-End",exec:function(t){t.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",description:"Toggle recording",bindKey:s("Ctrl-Alt-E","Command-Option-E"),exec:function(t){t.commands.toggleRecording(t)},readOnly:!0},{name:"replaymacro",description:"Replay macro",bindKey:s("Ctrl-Shift-E","Command-Shift-E"),exec:function(t){t.commands.replay(t)},readOnly:!0},{name:"jumptomatching",description:"Jump to matching",bindKey:s("Ctrl-\\|Ctrl-P","Command-\\"),exec:function(t){t.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",description:"Select to matching",bindKey:s("Ctrl-Shift-\\|Ctrl-Shift-P","Command-Shift-\\"),exec:function(t){t.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",description:"Expand to matching",bindKey:s("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(t){t.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",description:"Pass keys to browser",bindKey:s(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",description:"Copy",exec:function(t){},readOnly:!0},{name:"cut",description:"Cut",exec:function(t){var e=t.$copyWithEmptySelection&&t.selection.isEmpty(),i=e?t.selection.getLineRange():t.selection.getRange();t._emit("cut",i),i.isEmpty()||t.session.remove(i),t.clearSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",description:"Paste",exec:function(t,e){t.$handlePaste(e)},scrollIntoView:"cursor"},{name:"removeline",description:"Remove line",bindKey:s("Ctrl-D","Command-D"),exec:function(t){t.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",description:"Duplicate selection",bindKey:s("Ctrl-Shift-D","Command-Shift-D"),exec:function(t){t.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",description:"Sort lines",bindKey:s("Ctrl-Alt-S","Command-Alt-S"),exec:function(t){t.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",description:"Toggle comment",bindKey:s("Ctrl-/","Command-/"),exec:function(t){t.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",description:"Toggle block comment",bindKey:s("Ctrl-Shift-/","Command-Shift-/"),exec:function(t){t.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",description:"Modify number up",bindKey:s("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(t){t.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",description:"Modify number down",bindKey:s("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(t){t.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",description:"Replace",bindKey:s("Ctrl-H","Command-Option-F"),exec:function(t){p.loadModule("ace/ext/searchbox",function(e){e.Search(t,!0)})}},{name:"undo",description:"Undo",bindKey:s("Ctrl-Z","Command-Z"),exec:function(t){t.undo()}},{name:"redo",description:"Redo",bindKey:s("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(t){t.redo()}},{name:"copylinesup",description:"Copy lines up",bindKey:s("Alt-Shift-Up","Command-Option-Up"),exec:function(t){t.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",description:"Move lines up",bindKey:s("Alt-Up","Option-Up"),exec:function(t){t.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",description:"Copy lines down",bindKey:s("Alt-Shift-Down","Command-Option-Down"),exec:function(t){t.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",description:"Move lines down",bindKey:s("Alt-Down","Option-Down"),exec:function(t){t.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",description:"Delete",bindKey:s("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(t){t.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",description:"Backspace",bindKey:s("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(t){t.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",description:"Cut or delete",bindKey:s("Shift-Delete",null),exec:function(t){if(t.selection.isEmpty())t.remove("left");else return!1},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",description:"Remove to line start",bindKey:s("Alt-Backspace","Command-Backspace"),exec:function(t){t.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",description:"Remove to line end",bindKey:s("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(t){t.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",description:"Remove to line start hard",bindKey:s("Ctrl-Shift-Backspace",null),exec:function(t){var e=t.selection.getRange();e.start.column=0,t.session.remove(e)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",description:"Remove to line end hard",bindKey:s("Ctrl-Shift-Delete",null),exec:function(t){var e=t.selection.getRange();e.end.column=Number.MAX_VALUE,t.session.remove(e)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",description:"Remove word left",bindKey:s("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(t){t.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",description:"Remove word right",bindKey:s("Ctrl-Delete","Alt-Delete"),exec:function(t){t.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",description:"Outdent",bindKey:s("Shift-Tab","Shift-Tab"),exec:function(t){t.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",description:"Indent",bindKey:s("Tab","Tab"),exec:function(t){t.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",description:"Block outdent",bindKey:s("Ctrl-[","Ctrl-["),exec:function(t){t.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",description:"Block indent",bindKey:s("Ctrl-]","Ctrl-]"),exec:function(t){t.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",description:"Insert string",exec:function(t,e){t.insert(e)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",description:"Insert text",exec:function(t,e){t.insert(f.stringRepeat(e.text||"",e.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",description:"Split line",bindKey:s(null,"Ctrl-O"),exec:function(t){t.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",description:"Transpose letters",bindKey:s("Alt-Shift-X","Ctrl-T"),exec:function(t){t.transposeLetters()},multiSelectAction:function(t){t.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",description:"To uppercase",bindKey:s("Ctrl-U","Ctrl-U"),exec:function(t){t.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",description:"To lowercase",bindKey:s("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(t){t.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"autoindent",description:"Auto Indent",bindKey:s(null,null),exec:function(t){t.autoIndent()},multiSelectAction:"forEachLine",scrollIntoView:"animate"},{name:"expandtoline",description:"Expand to line",bindKey:s("Ctrl-Shift-L","Command-Shift-L"),exec:function(t){var e=t.selection.getRange();e.start.column=e.end.column=0,e.end.row++,t.selection.setRange(e,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"openlink",bindKey:s("Ctrl+F3","F3"),exec:function(t){t.openLink()}},{name:"joinlines",description:"Join lines",bindKey:s(null,null),exec:function(t){for(var e=t.selection.isBackwards(),i=e?t.selection.getSelectionLead():t.selection.getSelectionAnchor(),n=e?t.selection.getSelectionAnchor():t.selection.getSelectionLead(),r=t.session.doc.getLine(i.row).length,l=t.session.doc.getTextRange(t.selection.getRange()),h=l.replace(/\n\s*/," ").length,m=t.session.doc.getLine(i.row),v=i.row+1;v<=n.row+1;v++){var S=f.stringTrimLeft(f.stringTrimRight(t.session.doc.getLine(v)));S.length!==0&&(S=" "+S),m+=S}n.row+1<t.session.doc.getLength()-1&&(m+=t.session.doc.getNewLineCharacter()),t.clearSelection(),t.session.doc.replace(new c(i.row,0,n.row+2,0),m),h>0?(t.selection.moveCursorTo(i.row,i.column),t.selection.selectTo(i.row,i.column+h)):(r=t.session.doc.getLine(i.row).length>r?r+1:r,t.selection.moveCursorTo(i.row,r))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",description:"Invert selection",bindKey:s(null,null),exec:function(t){var e=t.session.doc.getLength()-1,i=t.session.doc.getLine(e).length,n=t.selection.rangeList.ranges,r=[];n.length<1&&(n=[t.selection.getRange()]);for(var l=0;l<n.length;l++)l==n.length-1&&(n[l].end.row===e&&n[l].end.column===i||r.push(new c(n[l].end.row,n[l].end.column,e,i))),l===0?n[l].start.row===0&&n[l].start.column===0||r.push(new c(0,0,n[l].start.row,n[l].start.column)):r.push(new c(n[l-1].end.row,n[l-1].end.column,n[l].start.row,n[l].start.column));t.exitMultiSelectMode(),t.clearSelection();for(var l=0;l<r.length;l++)t.selection.addRange(r[l],!1)},readOnly:!0,scrollIntoView:"none"},{name:"addLineAfter",description:"Add new line after the current line",exec:function(t){t.selection.clearSelection(),t.navigateLineEnd(),t.insert(` `)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"addLineBefore",description:"Add new line before the current line",exec:function(t){t.selection.clearSelection();var e=t.getCursorPosition();t.selection.moveTo(e.row-1,Number.MAX_VALUE),t.insert(` `),e.row===0&&t.navigateUp()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"openCommandPallete",description:"Open command palette",bindKey:s("F1","F1"),exec:function(t){t.prompt({$type:"commands"})},readOnly:!0},{name:"modeSelect",description:"Change language mode...",bindKey:s(null,null),exec:function(t){t.prompt({$type:"modes"})},readOnly:!0}];for(var a=1;a<9;a++)y.commands.push({name:"foldToLevel"+a,description:"Fold To Level "+a,level:a,exec:function(t){t.session.foldToLevel(this.level)},scrollIntoView:"center",readOnly:!0})}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/dom"],function(w,y,M){var f=w("./lib/dom");function p(c){this.session=c,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}(function(){this.getRowLength=function(c){var s;return this.lineWidgets?s=this.lineWidgets[c]&&this.lineWidgets[c].rowCount||0:s=0,!this.$useWrapMode||!this.$wrapData[c]?1+s:this.$wrapData[c].length+1+s},this.$getWidgetScreenLength=function(){var c=0;return this.lineWidgets.forEach(function(s){s&&s.rowCount&&!s.hidden&&(c+=s.rowCount)}),c},this.$onChangeEditor=function(c){this.attach(c.editor)},this.attach=function(c){c&&c.widgetManager&&c.widgetManager!=this&&c.widgetManager.detach(),this.editor!=c&&(this.detach(),this.editor=c,c&&(c.widgetManager=this,c.renderer.on("beforeRender",this.measureWidgets),c.renderer.on("afterRender",this.renderWidgets)))},this.detach=function(c){var s=this.editor;if(s){this.editor=null,s.widgetManager=null,s.renderer.off("beforeRender",this.measureWidgets),s.renderer.off("afterRender",this.renderWidgets);var a=this.session.lineWidgets;a&&a.forEach(function(t){t&&t.el&&t.el.parentNode&&(t._inDocument=!1,t.el.parentNode.removeChild(t.el))})}},this.updateOnFold=function(c,s){var a=s.lineWidgets;if(!(!a||!c.action)){for(var t=c.data,e=t.start.row,i=t.end.row,n=c.action=="add",r=e+1;r<i;r++)a[r]&&(a[r].hidden=n);a[i]&&(n?a[e]?a[i].hidden=n:a[e]=a[i]:(a[e]==a[i]&&(a[e]=void 0),a[i].hidden=n))}},this.updateOnChange=function(c){var s=this.session.lineWidgets;if(s){var a=c.start.row,t=c.end.row-a;if(t!==0)if(c.action=="remove"){var e=s.splice(a+1,t);!s[a]&&e[e.length-1]&&(s[a]=e.pop()),e.forEach(function(n){n&&this.removeLineWidget(n)},this),this.$updateRows()}else{var i=new Array(t);s[a]&&s[a].column!=null&&c.start.column>s[a].column&&a++,i.unshift(a,0),s.splice.apply(s,i),this.$updateRows()}}},this.$updateRows=function(){var c=this.session.lineWidgets;if(c){var s=!0;c.forEach(function(a,t){if(a)for(s=!1,a.row=t;a.$oldWidget;)a.$oldWidget.row=t,a=a.$oldWidget}),s&&(this.session.lineWidgets=null)}},this.$registerLineWidget=function(c){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var s=this.session.lineWidgets[c.row];return s&&(c.$oldWidget=s,s.el&&s.el.parentNode&&(s.el.parentNode.removeChild(s.el),s._inDocument=!1)),this.session.lineWidgets[c.row]=c,c},this.addLineWidget=function(c){if(this.$registerLineWidget(c),c.session=this.session,!this.editor)return c;var s=this.editor.renderer;c.html&&!c.el&&(c.el=f.createElement("div"),c.el.innerHTML=c.html),c.text&&!c.el&&(c.el=f.createElement("div"),c.el.textContent=c.text),c.el&&(f.addCssClass(c.el,"ace_lineWidgetContainer"),c.className&&f.addCssClass(c.el,c.className),c.el.style.position="absolute",c.el.style.zIndex=5,s.container.appendChild(c.el),c._inDocument=!0,c.coverGutter||(c.el.style.zIndex=3),c.pixelHeight==null&&(c.pixelHeight=c.el.offsetHeight)),c.rowCount==null&&(c.rowCount=c.pixelHeight/s.layerConfig.lineHeight);var a=this.session.getFoldAt(c.row,0);if(c.$fold=a,a){var t=this.session.lineWidgets;c.row==a.end.row&&!t[a.start.row]?t[a.start.row]=c:c.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:c.row}}}),this.$updateRows(),this.renderWidgets(null,s),this.onWidgetChanged(c),c},this.removeLineWidget=function(c){if(c._inDocument=!1,c.session=null,c.el&&c.el.parentNode&&c.el.parentNode.removeChild(c.el),c.editor&&c.editor.destroy)try{c.editor.destroy()}catch{}if(this.session.lineWidgets){var s=this.session.lineWidgets[c.row];if(s==c)this.session.lineWidgets[c.row]=c.$oldWidget,c.$oldWidget&&this.onWidgetChanged(c.$oldWidget);else for(;s;){if(s.$oldWidget==c){s.$oldWidget=c.$oldWidget;break}s=s.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:c.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(c){for(var s=this.session.lineWidgets,a=s&&s[c],t=[];a;)t.push(a),a=a.$oldWidget;return t},this.onWidgetChanged=function(c){this.session._changedWidgets.push(c),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(c,s){var a=this.session._changedWidgets,t=s.layerConfig;if(!(!a||!a.length)){for(var e=1/0,i=0;i<a.length;i++){var n=a[i];if(!(!n||!n.el)&&n.session==this.session){if(!n._inDocument){if(this.session.lineWidgets[n.row]!=n)continue;n._inDocument=!0,s.container.appendChild(n.el)}n.h=n.el.offsetHeight,n.fixedWidth||(n.w=n.el.offsetWidth,n.screenWidth=Math.ceil(n.w/t.characterWidth));var r=n.h/t.lineHeight;n.coverLine&&(r-=this.session.getRowLineCount(n.row),r<0&&(r=0)),n.rowCount!=r&&(n.rowCount=r,n.row<e&&(e=n.row))}}e!=1/0&&(this.session._emit("changeFold",{data:{start:{row:e}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]}},this.renderWidgets=function(c,s){var a=s.layerConfig,t=this.session.lineWidgets;if(t){for(var e=Math.min(this.firstRow,a.firstRow),i=Math.max(this.lastRow,a.lastRow,t.length);e>0&&!t[e];)e--;this.firstRow=a.firstRow,this.lastRow=a.lastRow,s.$cursorLayer.config=a;for(var n=e;n<=i;n++){var r=t[n];if(!(!r||!r.el)){if(r.hidden){r.el.style.top=-100-(r.pixelHeight||0)+"px";continue}r._inDocument||(r._inDocument=!0,s.container.appendChild(r.el));var l=s.$cursorLayer.getPixelPosition({row:n,column:0},!0).top;r.coverLine||(l+=a.lineHeight*this.session.getRowLineCount(r.row)),r.el.style.top=l-a.offset+"px";var h=r.coverGutter?0:s.gutterWidth;r.fixedWidth||(h-=s.scrollLeft),r.el.style.left=h+"px",r.fullWidth&&r.screenWidth&&(r.el.style.minWidth=a.width+2*a.padding+"px"),r.fixedWidth?r.el.style.right=s.scrollBar.getWidth()+"px":r.el.style.right=""}}}}}).call(p.prototype),y.LineWidgets=p}),ace.define("ace/editor",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator","ace/line_widgets","ace/clipboard"],function(w,y,M){var f=this&&this.__values||function(o){var d=typeof Symbol=="function"&&Symbol.iterator,$=d&&o[d],k=0;if($)return $.call(o);if(o&&typeof o.length=="number")return{next:function(){return o&&k>=o.length&&(o=void 0),{value:o&&o[k++],done:!o}}};throw new TypeError(d?"Object is not iterable.":"Symbol.iterator is not defined.")},p=w("./lib/oop"),c=w("./lib/dom"),s=w("./lib/lang"),a=w("./lib/useragent"),t=w("./keyboard/textinput").TextInput,e=w("./mouse/mouse_handler").MouseHandler,i=w("./mouse/fold_handler").FoldHandler,n=w("./keyboard/keybinding").KeyBinding,r=w("./edit_session").EditSession,l=w("./search").Search,h=w("./range").Range,m=w("./lib/event_emitter").EventEmitter,v=w("./commands/command_manager").CommandManager,S=w("./commands/default_commands").commands,C=w("./config"),u=w("./token_iterator").TokenIterator,g=w("./line_widgets").LineWidgets,A=w("./clipboard"),b=function(o,d,$){this.$toDestroy=[];var k=o.getContainerElement();this.container=k,this.renderer=o,this.id="editor"+ ++b.$uid,this.commands=new v(a.isMac?"mac":"win",S),typeof document=="object"&&(this.textInput=new t(o.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.$mouseHandler=new e(this),new i(this)),this.keyBinding=new n(this),this.$search=new l().set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&!this.session.destroyed&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(_,L){L._$emitInputEvent.schedule(31)}),this.setSession(d||$&&$.session||new r("")),C.resetOptions(this),$&&this.setOptions($),C._signal("editor",this)};b.$uid=0,function(){p.implement(this,m),this.$initOperationListeners=function(){this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this,!0)),this.on("change",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||(this.startOperation(),this.curOp.selectionBefore=this.$lastSel),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(o){if(this.curOp){if(!o||this.curOp.command)return;this.prevOp=this.curOp}o||(this.previousCommand=null,o={}),this.$opResetTimer.schedule(),this.curOp=this.session.curOp={command:o.command||{},args:o.args,scrollTop:this.renderer.scrollTop},this.curOp.selectionBefore=this.selection.toJSON()},this.endOperation=function(o){if(this.curOp&&this.session){if(o&&o.returnValue===!1||!this.session)return this.curOp=null;if(o==!0&&this.curOp.command&&this.curOp.command.name=="mouse"||(this._signal("beforeEndOperation"),!this.curOp))return;var d=this.curOp.command,$=d&&d.scrollIntoView;if($){switch($){case"center-animate":$="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var k=this.selection.getRange(),_=this.renderer.layerConfig;(k.start.row>=_.lastRow||k.end.row<=_.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break}$=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}var L=this.selection.toJSON();this.curOp.selectionAfter=L,this.$lastSel=this.selection.toJSON(),this.session.getUndoManager().addSelection(L),this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(o){if(this.$mergeUndoDeltas){var d=this.prevOp,$=this.$mergeableCommands,k=d.command&&o.command.name==d.command.name;if(o.command.name=="insertstring"){var _=o.args;this.mergeNextCommand===void 0&&(this.mergeNextCommand=!0),k=k&&this.mergeNextCommand&&(!/\s/.test(_)||/\s/.test(d.args)),this.mergeNextCommand=!0}else k=k&&$.indexOf(o.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(k=!1),k?this.session.mergeUndoDeltas=!0:$.indexOf(o.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(o,d){if(o&&typeof o=="string"&&o!="ace"){this.$keybindingId=o;var $=this;C.loadModule(["keybinding",o],function(k){$.$keybindingId==o&&$.keyBinding.setKeyboardHandler(k&&k.handler),d&&d()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(o),d&&d()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(o){if(this.session!=o){this.curOp&&this.endOperation(),this.curOp={};var d=this.session;if(d){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var $=this.session.getSelection();$.off("changeCursor",this.$onCursorChange),$.off("changeSelection",this.$onSelectionChange)}this.session=o,o?(this.$onDocumentChange=this.onDocumentChange.bind(this),o.on("change",this.$onDocumentChange),this.renderer.setSession(o),this.$onChangeMode=this.onChangeMode.bind(this),o.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),o.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),o.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),o.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),o.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),o.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=o.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.onCursorChange(),this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(o)),this._signal("changeSession",{session:o,oldSession:d}),this.curOp=null,d&&d._signal("changeEditor",{oldEditor:this}),o&&o._signal("changeEditor",{editor:this}),o&&!o.destroyed&&o.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(o,d){return this.session.doc.setValue(o),d?d==1?this.navigateFileEnd():d==-1&&this.navigateFileStart():this.selectAll(),o},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(o){this.renderer.onResize(o)},this.setTheme=function(o,d){this.renderer.setTheme(o,d)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(o){this.renderer.setStyle(o)},this.unsetStyle=function(o){this.renderer.unsetStyle(o)},this.getFontSize=function(){return this.getOption("fontSize")||c.computedStyle(this.container).fontSize},this.setFontSize=function(o){this.setOption("fontSize",o)},this.$highlightBrackets=function(){if(!this.$highlightPending){var o=this;this.$highlightPending=!0,setTimeout(function(){o.$highlightPending=!1;var d=o.session;if(!(!d||d.destroyed)){d.$bracketHighlight&&(d.$bracketHighlight.markerIds.forEach(function(H){d.removeMarker(H)}),d.$bracketHighlight=null);var $=o.getCursorPosition(),k=o.getKeyboardHandler(),_=k&&k.$getDirectionForHighlight&&k.$getDirectionForHighlight(o),L=d.getMatchingBracketRanges($,_);if(!L){var T=new u(d,$.row,$.column),F=T.getCurrentToken();if(F&&/\b(?:tag-open|tag-name)/.test(F.type)){var I=d.getMatchingTags($);I&&(L=[I.openTagName,I.closeTagName])}}if(!L&&d.$mode.getMatching&&(L=d.$mode.getMatching(o.session)),!L){o.getHighlightIndentGuides()&&o.renderer.$textLayer.$highlightIndentGuide();return}var B="ace_bracket";Array.isArray(L)?L.length==1&&(B="ace_error_bracket"):L=[L],L.length==2&&(h.comparePoints(L[0].end,L[1].start)==0?L=[h.fromPoints(L[0].start,L[1].end)]:h.comparePoints(L[0].start,L[1].end)==0&&(L=[h.fromPoints(L[1].start,L[0].end)])),d.$bracketHighlight={ranges:L,markerIds:L.map(function(H){return d.addMarker(H,B,"text")})},o.getHighlightIndentGuides()&&o.renderer.$textLayer.$highlightIndentGuide()}},50)}},this.focus=function(){this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(o){this.$isFocused||(this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",o))},this.onBlur=function(o){this.$isFocused&&(this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",o))},this.$cursorChange=function(){this.renderer.updateCursor(),this.$highlightBrackets(),this.$updateHighlightActiveLine()},this.onDocumentChange=function(o){var d=this.session.$useWrapMode,$=o.start.row==o.end.row?o.end.row:1/0;this.renderer.updateLines(o.start.row,$,d),this._signal("change",o),this.$cursorChange()},this.onTokenizerUpdate=function(o){var d=o.data;this.renderer.updateLines(d.first,d.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var o=this.getSession(),d;if(this.$highlightActiveLine&&((this.$selectionStyle!="line"||!this.selection.isMultiLine())&&(d=this.getCursorPosition()),this.renderer.theme&&this.renderer.theme.$selectionColorConflict&&!this.selection.isEmpty()&&(d=!1),this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(d=!1)),o.$highlightLineMarker&&!d)o.removeMarker(o.$highlightLineMarker.id),o.$highlightLineMarker=null;else if(!o.$highlightLineMarker&&d){var $=new h(d.row,d.column,d.row,1/0);$.id=o.addMarker($,"ace_active-line","screenLine"),o.$highlightLineMarker=$}else d&&(o.$highlightLineMarker.start.row=d.row,o.$highlightLineMarker.end.row=d.row,o.$highlightLineMarker.start.column=d.column,o._signal("changeBackMarker"))},this.onSelectionChange=function(o){var d=this.session;if(d.$selectionMarker&&d.removeMarker(d.$selectionMarker),d.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var $=this.selection.getRange(),k=this.getSelectionStyle();d.$selectionMarker=d.addMarker($,"ace_selection",k)}var _=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(_),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var o=this.session,d=this.getSelectionRange();if(!(d.isEmpty()||d.isMultiLine())){var $=d.start.column,k=d.end.column,_=o.getLine(d.start.row),L=_.substring($,k);if(!(L.length>5e3||!/[\w\d]/.test(L))){var T=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:L}),F=_.substring($-1,k+1);if(T.test(F))return T}}},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(o){this.renderer.updateText(),this._emit("changeMode",o)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var o=this.getSelectedText(),d=this.session.doc.getNewLineCharacter(),$=!1;if(!o&&this.$copyWithEmptySelection){$=!0;for(var k=this.selection.getAllRanges(),_=0;_<k.length;_++){var L=k[_];_&&k[_-1].start.row==L.start.row||(o+=this.session.getLine(L.start.row)+d)}}var T={text:o};return this._signal("copy",T),A.lineMode=$?T.text:!1,T.text},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(o,d){var $={text:o,event:d};this.commands.exec("paste",this,$)},this.$handlePaste=function(o){typeof o=="string"&&(o={text:o}),this._signal("paste",o);var d=o.text,$=d===A.lineMode,k=this.session;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)$?k.insert({row:this.selection.lead.row,column:0},d):this.insert(d);else if($)this.selection.rangeList.ranges.forEach(function(B){k.insert({row:B.start.row,column:0},d)});else{var _=d.split(/\r\n|\r|\n/),L=this.selection.rangeList.ranges,T=_.length==2&&(!_[0]||!_[1]);if(_.length!=L.length||T)return this.commands.exec("insertstring",this,d);for(var F=L.length;F--;){var I=L[F];I.isEmpty()||k.remove(I),k.insert(I.start,_[F])}}},this.execCommand=function(o,d){return this.commands.exec(o,this,d)},this.insert=function(o,d){var $=this.session,k=$.getMode(),_=this.getCursorPosition();if(this.getBehavioursEnabled()&&!d){var L=k.transformAction($.getState(_.row),"insertion",this,$,o);L&&(o!==L.text&&(this.inVirtualSelectionMode||(this.session.mergeUndoDeltas=!1,this.mergeNextCommand=!1)),o=L.text)}if(o==" "&&(o=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&o.indexOf(` `)==-1){var T=new h.fromPoints(_,_);T.end.column+=o.length,this.session.remove(T)}}else{var T=this.getSelectionRange();_=this.session.remove(T),this.clearSelection()}if(o==` `||o==`\r `){var H=$.getLine(_.row);if(_.column>H.search(/\S|$/)){var F=H.substr(_.column).search(/\S|$/);$.doc.removeInLine(_.row,_.column,_.column+F)}}this.clearSelection();var I=_.column,B=$.getState(_.row),H=$.getLine(_.row),z=k.checkOutdent(B,H,o);if($.insert(_,o),L&&L.selection&&(L.selection.length==2?this.selection.setSelectionRange(new h(_.row,I+L.selection[0],_.row,I+L.selection[1])):this.selection.setSelectionRange(new h(_.row+L.selection[0],L.selection[1],_.row+L.selection[2],L.selection[3]))),this.$enableAutoIndent){if($.getDocument().isNewLine(o)){var U=k.getNextLineIndent(B,H.slice(0,_.column),$.getTabString());$.insert({row:_.row+1,column:0},U)}z&&k.autoOutdent(B,$,_.row)}},this.autoIndent=function(){var o=this.session,d=o.getMode(),$,k;if(this.selection.isEmpty())$=0,k=o.doc.getLength()-1;else{var _=this.getSelectionRange();$=_.start.row,k=_.end.row}for(var L="",T="",F="",I,B,H,z=o.getTabString(),U=$;U<=k;U++)U>0&&(L=o.getState(U-1),T=o.getLine(U-1),F=d.getNextLineIndent(L,T,z)),I=o.getLine(U),B=d.$getIndent(I),F!==B&&(B.length>0&&(H=new h(U,0,U,B.length),o.remove(H)),F.length>0&&o.insert({row:U,column:0},F)),d.autoOutdent(L,o,U)},this.onTextInput=function(o,d){if(!d)return this.keyBinding.onTextInput(o);this.startOperation({command:{name:"insertstring"}});var $=this.applyComposition.bind(this,o,d);this.selection.rangeCount?this.forEachSelection($):$(),this.endOperation()},this.applyComposition=function(o,d){if(d.extendLeft||d.extendRight){var $=this.selection.getRange();$.start.column-=d.extendLeft,$.end.column+=d.extendRight,$.start.column<0&&($.start.row--,$.start.column+=this.session.getLine($.start.row).length+1),this.selection.setRange($),!o&&!$.isEmpty()&&this.remove()}if((o||!this.selection.isEmpty())&&this.insert(o,!0),d.restoreStart||d.restoreEnd){var $=this.selection.getRange();$.start.column-=d.restoreStart,$.end.column-=d.restoreEnd,this.selection.setRange($)}},this.onCommandKey=function(o,d,$){return this.keyBinding.onCommandKey(o,d,$)},this.setOverwrite=function(o){this.session.setOverwrite(o)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(o){this.setOption("scrollSpeed",o)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(o){this.setOption("dragDelay",o)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(o){this.setOption("selectionStyle",o)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(o){this.setOption("highlightActiveLine",o)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(o){this.setOption("highlightGutterLine",o)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(o){this.setOption("highlightSelectedWord",o)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(o){this.renderer.setAnimatedScroll(o)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(o){this.renderer.setShowInvisibles(o)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(o){this.renderer.setDisplayIndentGuides(o)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setHighlightIndentGuides=function(o){this.renderer.setHighlightIndentGuides(o)},this.getHighlightIndentGuides=function(){return this.renderer.getHighlightIndentGuides()},this.setShowPrintMargin=function(o){this.renderer.setShowPrintMargin(o)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(o){this.renderer.setPrintMarginColumn(o)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(o){this.setOption("readOnly",o)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(o){this.setOption("behavioursEnabled",o)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(o){this.setOption("wrapBehavioursEnabled",o)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(o){this.setOption("showFoldWidgets",o)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(o){this.setOption("fadeFoldWidgets",o)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(o){this.selection.isEmpty()&&(o=="left"?this.selection.selectLeft():this.selection.selectRight());var d=this.getSelectionRange();if(this.getBehavioursEnabled()){var $=this.session,k=$.getState(d.start.row),_=$.getMode().transformAction(k,"deletion",this,$,d);if(d.end.column===0){var L=$.getTextRange(d);if(L[L.length-1]==` `){var T=$.getLine(d.end.row);/^\s+$/.test(T)&&(d.end.column=T.length)}}_&&(d=_)}this.session.remove(d),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.selection.isEmpty()&&this.selection.selectLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var o=this.getSelectionRange();o.start.column==o.end.column&&o.start.row==o.end.row&&(o.end.column=0,o.end.row++),this.session.remove(o),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var o=this.getCursorPosition();this.insert(` `),this.moveCursorToPosition(o)},this.setGhostText=function(o,d){this.session.widgetManager||(this.session.widgetManager=new g(this.session),this.session.widgetManager.attach(this)),this.renderer.setGhostText(o,d)},this.removeGhostText=function(){this.session.widgetManager&&this.renderer.removeGhostText()},this.transposeLetters=function(){if(this.selection.isEmpty()){var o=this.getCursorPosition(),d=o.column;if(d!==0){var $=this.session.getLine(o.row),k,_;d<$.length?(k=$.charAt(d)+$.charAt(d-1),_=new h(o.row,d-1,o.row,d+1)):(k=$.charAt(d-1)+$.charAt(d-2),_=new h(o.row,d-2,o.row,d)),this.session.replace(_,k),this.session.selection.moveToPosition(_.end)}}},this.toLowerCase=function(){var o=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var d=this.getSelectionRange(),$=this.session.getTextRange(d);this.session.replace(d,$.toLowerCase()),this.selection.setSelectionRange(o)},this.toUpperCase=function(){var o=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var d=this.getSelectionRange(),$=this.session.getTextRange(d);this.session.replace(d,$.toUpperCase()),this.selection.setSelectionRange(o)},this.indent=function(){var o=this.session,d=this.getSelectionRange();if(d.start.row<d.end.row){var $=this.$getSelectedRows();o.indentRows($.first,$.last," ");return}else if(d.start.column<d.end.column){var k=o.getTextRange(d);if(!/^\s+$/.test(k)){var $=this.$getSelectedRows();o.indentRows($.first,$.last," ");return}}var _=o.getLine(d.start.row),L=d.start,T=o.getTabSize(),F=o.documentToScreenColumn(L.row,L.column);if(this.session.getUseSoftTabs())var I=T-F%T,B=s.stringRepeat(" ",I);else{for(var I=F%T;_[d.start.column-1]==" "&&I;)d.start.column--,I--;this.selection.setSelectionRange(d),B=" "}return this.insert(B)},this.blockIndent=function(){var o=this.$getSelectedRows();this.session.indentRows(o.first,o.last," ")},this.blockOutdent=function(){var o=this.session.getSelection();this.session.outdentRows(o.getRange())},this.sortLines=function(){for(var o=this.$getSelectedRows(),d=this.session,$=[],k=o.first;k<=o.last;k++)$.push(d.getLine(k));$.sort(function(T,F){return T.toLowerCase()<F.toLowerCase()?-1:T.toLowerCase()>F.toLowerCase()?1:0});for(var _=new h(0,0,0,0),k=o.first;k<=o.last;k++){var L=d.getLine(k);_.start.row=k,_.end.row=k,_.end.column=L.length,d.replace(_,$[k-o.first])}},this.toggleCommentLines=function(){var o=this.session.getState(this.getCursorPosition().row),d=this.$getSelectedRows();this.session.getMode().toggleCommentLines(o,this.session,d.first,d.last)},this.toggleBlockComment=function(){var o=this.getCursorPosition(),d=this.session.getState(o.row),$=this.getSelectionRange();this.session.getMode().toggleBlockComment(d,this.session,$,o)},this.getNumberAt=function(o,d){var $=/[\-]?[0-9]+(?:\.[0-9]+)?/g;$.lastIndex=0;for(var k=this.session.getLine(o);$.lastIndex<d;){var _=$.exec(k);if(_.index<=d&&_.index+_[0].length>=d){var L={value:_[0],start:_.index,end:_.index+_[0].length};return L}}return null},this.modifyNumber=function(o){var d=this.selection.getCursor().row,$=this.selection.getCursor().column,k=new h(d,$-1,d,$),_=this.session.getTextRange(k);if(!isNaN(parseFloat(_))&&isFinite(_)){var L=this.getNumberAt(d,$);if(L){var T=L.value.indexOf(".")>=0?L.start+L.value.indexOf(".")+1:L.end,F=L.start+L.value.length-T,I=parseFloat(L.value);I*=Math.pow(10,F),T!==L.end&&$<T?o*=Math.pow(10,L.end-$-1):o*=Math.pow(10,L.end-$),I+=o,I/=Math.pow(10,F);var B=I.toFixed(F),H=new h(d,L.start,d,L.end);this.session.replace(H,B),this.moveCursorTo(d,Math.max(L.start+1,$+B.length-L.value.length))}}else this.toggleWord()},this.$toggleWordPairs=[["first","last"],["true","false"],["yes","no"],["width","height"],["top","bottom"],["right","left"],["on","off"],["x","y"],["get","set"],["max","min"],["horizontal","vertical"],["show","hide"],["add","remove"],["up","down"],["before","after"],["even","odd"],["in","out"],["inside","outside"],["next","previous"],["increase","decrease"],["attach","detach"],["&&","||"],["==","!="]],this.toggleWord=function(){var o=this.selection.getCursor().row,d=this.selection.getCursor().column;this.selection.selectWord();var $=this.getSelectedText(),k=this.selection.getWordRange().start.column,_=$.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g,"$1 ").split(/\s/),L=d-k-1;L<0&&(L=0);var T=0,F=0,I=this;$.match(/[A-Za-z0-9_]+/)&&_.forEach(function(Y,V){F=T+Y.length,L>=T&&L<=F&&($=Y,I.selection.clearSelection(),I.moveCursorTo(o,T+k),I.selection.selectTo(o,F+k)),T=F});for(var B=this.$toggleWordPairs,H,z=0;z<B.length;z++)for(var U=B[z],D=0;D<=1;D++){var P=+!D,N=$.match(new RegExp("^\\s?_?("+s.escapeRegExp(U[D])+")\\s?$","i"));if(N){var j=$.match(new RegExp("([_]|^|\\s)("+s.escapeRegExp(N[1])+")($|\\s)","g"));j&&(H=$.replace(new RegExp(s.escapeRegExp(U[D]),"i"),function(Y){var V=U[P];return Y.toUpperCase()==Y?V=V.toUpperCase():Y.charAt(0).toUpperCase()==Y.charAt(0)&&(V=V.substr(0,0)+U[P].charAt(0).toUpperCase()+V.substr(1)),V}),this.insert(H),H="")}}},this.findLinkAt=function(o,d){var $,k,_=this.session.getLine(o),L=_.split(/((?:https?|ftp):\/\/[\S]+)/),T=d;T<0&&(T=0);var F=0,I=0,B;try{for(var H=f(L),z=H.next();!z.done;z=H.next()){var U=z.value;if(I=F+U.length,T>=F&&T<=I&&U.match(/((?:https?|ftp):\/\/[\S]+)/)){B=U.replace(/[\s:.,'";}\]]+$/,"");break}F=I}}catch(D){$={error:D}}finally{try{z&&!z.done&&(k=H.return)&&k.call(H)}finally{if($)throw $.error}}return B},this.openLink=function(){var o=this.selection.getCursor(),d=this.findLinkAt(o.row,o.column);return d&&window.open(d,"_blank"),d!=null},this.removeLines=function(){var o=this.$getSelectedRows();this.session.removeFullLines(o.first,o.last),this.clearSelection()},this.duplicateSelection=function(){var o=this.selection,d=this.session,$=o.getRange(),k=o.isBackwards();if($.isEmpty()){var _=$.start.row;d.duplicateLines(_,_)}else{var L=k?$.start:$.end,T=d.insert(L,d.getTextRange($),!1);$.start=L,$.end=T,o.setSelectionRange($,k)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(o,d,$){return this.session.moveText(o,d,$)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(o,d){var $,k,_=this.selection;if(!_.inMultiSelectMode||this.inVirtualSelectionMode){var L=_.toOrientedRange();$=this.$getSelectedRows(L),k=this.session.$moveLines($.first,$.last,d?0:o),d&&o==-1&&(k=0),L.moveBy(k,0),_.fromOrientedRange(L)}else{var T=_.rangeList.ranges;_.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;for(var F=0,I=0,B=T.length,H=0;H<B;H++){var z=H;T[H].moveBy(F,0),$=this.$getSelectedRows(T[H]);for(var U=$.first,D=$.last;++H<B;){I&&T[H].moveBy(I,0);var P=this.$getSelectedRows(T[H]);if(d&&P.first!=D)break;if(!d&&P.first>D+1)break;D=P.last}for(H--,F=this.session.$moveLines(U,D,d?0:o),d&&o==-1&&(z=H+1);z<=H;)T[z].moveBy(F,0),z++;d||(F=0),I+=F}_.fromOrientedRange(_.ranges[0]),_.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(o){return o=(o||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(o.start.row),last:this.session.getRowFoldEnd(o.end.row)}},this.onCompositionStart=function(o){this.renderer.showComposition(o)},this.onCompositionUpdate=function(o){this.renderer.setCompositionText(o)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(o){return o>=this.getFirstVisibleRow()&&o<=this.getLastVisibleRow()},this.isRowFullyVisible=function(o){return o>=this.renderer.getFirstFullyVisibleRow()&&o<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(o,d){var $=this.renderer,k=this.renderer.layerConfig,_=o*Math.floor(k.height/k.lineHeight);d===!0?this.selection.$moveSelection(function(){this.moveCursorBy(_,0)}):d===!1&&(this.selection.moveCursorBy(_,0),this.selection.clearSelection());var L=$.scrollTop;$.scrollBy(0,_*k.lineHeight),d!=null&&$.scrollCursorIntoView(null,.5),$.animateScrolling(L)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(o){this.renderer.scrollToRow(o)},this.scrollToLine=function(o,d,$,k){this.renderer.scrollToLine(o,d,$,k)},this.centerSelection=function(){var o=this.getSelectionRange(),d={row:Math.floor(o.start.row+(o.end.row-o.start.row)/2),column:Math.floor(o.start.column+(o.end.column-o.start.column)/2)};this.renderer.alignCursor(d,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.selection.selectAll()},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(o,d){this.selection.moveCursorTo(o,d)},this.moveCursorToPosition=function(o){this.selection.moveCursorToPosition(o)},this.jumpToMatching=function(o,d){var $=this.getCursorPosition(),k=new u(this.session,$.row,$.column),_=k.getCurrentToken(),L=0;_&&_.type.indexOf("tag-name")!==-1&&(_=k.stepBackward());var T=_||k.stepForward();if(T){var F,I=!1,B={},H=$.column-T.start,z,U={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(T.value.match(/[{}()\[\]]/g)){for(;H<T.value.length&&!I;H++)if(U[T.value[H]])switch(z=U[T.value[H]]+"."+T.type.replace("rparen","lparen"),isNaN(B[z])&&(B[z]=0),T.value[H]){case"(":case"[":case"{":B[z]++;break;case")":case"]":case"}":B[z]--,B[z]===-1&&(F="bracket",I=!0);break}}else T.type.indexOf("tag-name")!==-1&&(isNaN(B[T.value])&&(B[T.value]=0),_.value==="<"&&L>1?B[T.value]++:_.value==="</"&&B[T.value]--,B[T.value]===-1&&(F="tag",I=!0));I||(_=T,L++,T=k.stepForward(),H=0)}while(T&&!I);if(F){var D,P;if(F==="bracket")D=this.session.getBracketRange($),D||(D=new h(k.getCurrentTokenRow(),k.getCurrentTokenColumn()+H-1,k.getCurrentTokenRow(),k.getCurrentTokenColumn()+H-1),P=D.start,(d||P.row===$.row&&Math.abs(P.column-$.column)<2)&&(D=this.session.getBracketRange(P)));else if(F==="tag"){if(!T||T.type.indexOf("tag-name")===-1)return;if(D=new h(k.getCurrentTokenRow(),k.getCurrentTokenColumn()-2,k.getCurrentTokenRow(),k.getCurrentTokenColumn()-2),D.compare($.row,$.column)===0){var N=this.session.getMatchingTags($);N&&(N.openTag.contains($.row,$.column)?(D=N.closeTag,P=D.start):(D=N.openTag,N.closeTag.start.row===$.row&&N.closeTag.start.column===$.column?P=D.end:P=D.start))}P=P||D.start}P=D&&D.cursor||P,P&&(o?D&&d?this.selection.setRange(D):D&&D.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(P.row,P.column):this.selection.moveTo(P.row,P.column))}}},this.gotoLine=function(o,d,$){this.selection.clearSelection(),this.session.unfold({row:o-1,column:d||0}),this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(o-1,d||0),this.isRowFullyVisible(o-1)||this.scrollToLine(o-1,!0,$)},this.navigateTo=function(o,d){this.selection.moveTo(o,d)},this.navigateUp=function(o){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var d=this.selection.anchor.getPosition();return this.moveCursorToPosition(d)}this.selection.clearSelection(),this.selection.moveCursorBy(-o||-1,0)},this.navigateDown=function(o){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var d=this.selection.anchor.getPosition();return this.moveCursorToPosition(d)}this.selection.clearSelection(),this.selection.moveCursorBy(o||1,0)},this.navigateLeft=function(o){if(this.selection.isEmpty())for(o=o||1;o--;)this.selection.moveCursorLeft();else{var d=this.getSelectionRange().start;this.moveCursorToPosition(d)}this.clearSelection()},this.navigateRight=function(o){if(this.selection.isEmpty())for(o=o||1;o--;)this.selection.moveCursorRight();else{var d=this.getSelectionRange().end;this.moveCursorToPosition(d)}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(o,d){d&&this.$search.set(d);var $=this.$search.find(this.session),k=0;return $&&(this.$tryReplace($,o)&&(k=1),this.selection.setSelectionRange($),this.renderer.scrollSelectionIntoView($.start,$.end)),k},this.replaceAll=function(o,d){d&&this.$search.set(d);var $=this.$search.findAll(this.session),k=0;if(!$.length)return k;var _=this.getSelectionRange();this.selection.moveTo(0,0);for(var L=$.length-1;L>=0;--L)this.$tryReplace($[L],o)&&k++;return this.selection.setSelectionRange(_),k},this.$tryReplace=function(o,d){var $=this.session.getTextRange(o);return d=this.$search.replace($,d),d!==null?(o.end=this.session.replace(o,d),o):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(o,d,$){d||(d={}),typeof o=="string"||o instanceof RegExp?d.needle=o:typeof o=="object"&&p.mixin(d,o);var k=this.selection.getRange();d.needle==null&&(o=this.session.getTextRange(k)||this.$search.$options.needle,o||(k=this.session.getWordRange(k.start.row,k.start.column),o=this.session.getTextRange(k)),this.$search.set({needle:o})),this.$search.set(d),d.start||this.$search.set({start:k});var _=this.$search.find(this.session);if(d.preventScroll)return _;if(_)return this.revealRange(_,$),_;d.backwards?k.start=k.end:k.end=k.start,this.selection.setRange(k)},this.findNext=function(o,d){this.find({skipCurrent:!0,backwards:!1},o,d)},this.findPrevious=function(o,d){this.find(o,{skipCurrent:!0,backwards:!0},d)},this.revealRange=function(o,d){this.session.unfold(o),this.selection.setSelectionRange(o);var $=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(o.start,o.end,.5),d!==!1&&this.renderer.animateScrolling($)},this.undo=function(){this.session.getUndoManager().undo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.session.getUndoManager().redo(this.session),this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.$toDestroy&&(this.$toDestroy.forEach(function(o){o.destroy()}),this.$toDestroy=null),this.$mouseHandler&&this.$mouseHandler.destroy(),this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy(),this._$emitInputEvent&&this._$emitInputEvent.cancel(),this.removeAllListeners()},this.setAutoScrollEditorIntoView=function(o){if(o){var d,$=this,k=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var _=this.$scrollAnchor;_.style.cssText="position:absolute",this.container.insertBefore(_,this.container.firstChild);var L=this.on("changeSelection",function(){k=!0}),T=this.renderer.on("beforeRender",function(){k&&(d=$.renderer.container.getBoundingClientRect())}),F=this.renderer.on("afterRender",function(){if(k&&d&&($.isFocused()||$.searchBox&&$.searchBox.isFocused())){var I=$.renderer,B=I.$cursorLayer.$pixelPos,H=I.layerConfig,z=B.top-H.offset;B.top>=0&&z+d.top<0?k=!0:B.top<H.height&&B.top+d.top+H.lineHeight>window.innerHeight?k=!1:k=null,k!=null&&(_.style.top=z+"px",_.style.left=B.left+"px",_.style.height=H.lineHeight+"px",_.scrollIntoView(k)),k=d=null}});this.setAutoScrollEditorIntoView=function(I){I||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",L),this.renderer.off("afterRender",F),this.renderer.off("beforeRender",T))}}},this.$resetCursorStyle=function(){var o=this.$cursorStyle||"ace",d=this.renderer.$cursorLayer;d&&(d.setSmoothBlinking(/smooth/.test(o)),d.isBlinking=!this.$readOnly&&o!="wide",c.setCssClass(d.element,"ace_slim-cursors",/slim/.test(o)))},this.prompt=function(o,d,$){var k=this;C.loadModule("ace/ext/prompt",function(_){_.prompt(k,o,d,$)})}}.call(b.prototype),C.defineOptions(b.prototype,"editor",{selectionStyle:{set:function(o){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:o})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(o){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(o){this.textInput.setReadOnly(o),this.$resetCursorStyle()},initialValue:!1},copyWithEmptySelection:{set:function(o){this.textInput.setCopyWithEmptySelection(o)},initialValue:!1},cursorStyle:{set:function(o){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},enableAutoIndent:{initialValue:!0},autoScrollEditorIntoView:{set:function(o){this.setAutoScrollEditorIntoView(o)}},keyboardHandler:{set:function(o){this.setKeyboardHandler(o)},get:function(){return this.$keybindingId},handlesSet:!0},value:{set:function(o){this.session.setValue(o)},get:function(){return this.getValue()},handlesSet:!0,hidden:!0},session:{set:function(o){this.setSession(o)},get:function(){return this.session},handlesSet:!0,hidden:!0},showLineNumbers:{set:function(o){this.renderer.$gutterLayer.setShowLineNumbers(o),this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER),o&&this.$relativeLineNumbers?x.attach(this):x.detach(this)},initialValue:!0},relativeLineNumbers:{set:function(o){this.$showLineNumbers&&o?x.attach(this):x.detach(this)}},placeholder:{set:function(o){this.$updatePlaceholder||(this.$updatePlaceholder=function(){var d=this.session&&(this.renderer.$composition||this.getValue());if(d&&this.renderer.placeholderNode)this.renderer.off("afterRender",this.$updatePlaceholder),c.removeCssClass(this.container,"ace_hasPlaceholder"),this.renderer.placeholderNode.remove(),this.renderer.placeholderNode=null;else if(!d&&!this.renderer.placeholderNode){this.renderer.on("afterRender",this.$updatePlaceholder),c.addCssClass(this.container,"ace_hasPlaceholder");var $=c.createElement("div");$.className="ace_placeholder",$.textContent=this.$placeholder||"",this.renderer.placeholderNode=$,this.renderer.content.appendChild(this.renderer.placeholderNode)}else!d&&this.renderer.placeholderNode&&(this.renderer.placeholderNode.textContent=this.$placeholder||"")}.bind(this),this.on("input",this.$updatePlaceholder)),this.$updatePlaceholder()}},customScrollbar:"renderer",hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",displayIndentGuides:"renderer",highlightIndentGuides:"renderer",showGutter:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",hasCssTransforms:"renderer",maxPixelHeight:"renderer",useTextareaForIME:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimeout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",navigateWithinSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"});var x={getText:function(o,d){return(Math.abs(o.selection.lead.row-d)||d+1+(d<9?"·":""))+""},getWidth:function(o,d,$){return Math.max(d.toString().length,($.lastRow+1).toString().length,2)*$.characterWidth},update:function(o,d){d.renderer.$loop.schedule(d.renderer.CHANGE_GUTTER)},attach:function(o){o.renderer.$gutterLayer.$renderer=this,o.on("changeSelection",this.update),this.update(null,o)},detach:function(o){o.renderer.$gutterLayer.$renderer==this&&(o.renderer.$gutterLayer.$renderer=null),o.off("changeSelection",this.update),this.update(null,o)}};y.Editor=b}),ace.define("ace/undomanager",["require","exports","module","ace/range"],function(w,y,M){var f=function(){this.$maxRev=0,this.$fromUndo=!1,this.$undoDepth=1/0,this.reset()};(function(){this.addSession=function(u){this.$session=u},this.add=function(u,g,A){if(!this.$fromUndo&&u!=this.$lastDelta){if(this.$keepRedoStack||(this.$redoStack.length=0),g===!1||!this.lastDeltas){this.lastDeltas=[];var b=this.$undoStack.length;b>this.$undoDepth-1&&this.$undoStack.splice(0,b-this.$undoDepth+1),this.$undoStack.push(this.lastDeltas),u.id=this.$rev=++this.$maxRev}(u.action=="remove"||u.action=="insert")&&(this.$lastDelta=u),this.lastDeltas.push(u)}},this.addSelection=function(u,g){this.selections.push({value:u,rev:g||this.$rev})},this.startNewGroup=function(){return this.lastDeltas=null,this.$rev},this.markIgnored=function(u,g){g==null&&(g=this.$rev+1);for(var A=this.$undoStack,b=A.length;b--;){var x=A[b][0];if(x.id<=u)break;x.id<g&&(x.ignore=!0)}this.lastDeltas=null},this.getSelection=function(u,g){for(var A=this.selections,b=A.length;b--;){var x=A[b];if(x.rev<u)return g&&(x=A[b+1]),x}},this.getRevision=function(){return this.$rev},this.getDeltas=function(u,g){g==null&&(g=this.$rev+1);for(var A=this.$undoStack,b=null,x=0,o=A.length;o--;){var d=A[o][0];if(d.id<g&&!b&&(b=o+1),d.id<=u){x=o+1;break}}return A.slice(x,b)},this.getChangedRanges=function(u,g){g==null&&(g=this.$rev+1)},this.getChangedLines=function(u,g){g==null&&(g=this.$rev+1)},this.undo=function(u,g){this.lastDeltas=null;var A=this.$undoStack;if(p(A,A.length)){u||(u=this.$session),this.$redoStackBaseRev!==this.$rev&&this.$redoStack.length&&(this.$redoStack=[]),this.$fromUndo=!0;var b=A.pop(),x=null;return b&&(x=u.undoChanges(b,g),this.$redoStack.push(b),this.$syncRev()),this.$fromUndo=!1,x}},this.redo=function(u,g){if(this.lastDeltas=null,u||(u=this.$session),this.$fromUndo=!0,this.$redoStackBaseRev!=this.$rev){var A=this.getDeltas(this.$redoStackBaseRev,this.$rev+1);C(this.$redoStack,A),this.$redoStackBaseRev=this.$rev,this.$redoStack.forEach(function(o){o[0].id=++this.$maxRev},this)}var b=this.$redoStack.pop(),x=null;return b&&(x=u.redoChanges(b,g),this.$undoStack.push(b),this.$syncRev()),this.$fromUndo=!1,x},this.$syncRev=function(){var u=this.$undoStack,g=u[u.length-1],A=g&&g[0].id||0;this.$redoStackBaseRev=A,this.$rev=A},this.reset=function(){this.lastDeltas=null,this.$lastDelta=null,this.$undoStack=[],this.$redoStack=[],this.$rev=0,this.mark=0,this.$redoStackBaseRev=this.$rev,this.selections=[]},this.canUndo=function(){return this.$undoStack.length>0},this.canRedo=function(){return this.$redoStack.length>0},this.bookmark=function(u){u==null&&(u=this.$rev),this.mark=u},this.isAtBookmark=function(){return this.$rev===this.mark},this.toJSON=function(){},this.fromJSON=function(){},this.hasUndo=this.canUndo,this.hasRedo=this.canRedo,this.isClean=this.isAtBookmark,this.markClean=this.bookmark,this.$prettyPrint=function(u){return u?e(u):e(this.$undoStack)+` --- `+e(this.$redoStack)}}).call(f.prototype);function p(u,g){for(var A=g;A--;){var b=u[A];if(b&&!b[0].ignore){for(;A<g-1;){var x=r(u[A],u[A+1]);u[A]=x[0],u[A+1]=x[1],A++}return!0}}}var c=w("./range").Range,s=c.comparePoints;c.comparePoints;function a(u){return{row:u.row,column:u.column}}function t(u){return{start:a(u.start),end:a(u.end),action:u.action,lines:u.lines.slice()}}function e(u){if(u=u||this,Array.isArray(u))return u.map(e).join(` `);var g="";return u.action?(g=u.action=="insert"?"+":"-",g+="["+u.lines+"]"):u.value&&(Array.isArray(u.value)?g=u.value.map(i).join(` `):g=i(u.value)),u.start&&(g+=i(u)),(u.id||u.rev)&&(g+=" ("+(u.id||u.rev)+")"),g}function i(u){return u.start.row+":"+u.start.column+"=>"+u.end.row+":"+u.end.column}function n(u,g){var A=u.action=="insert",b=g.action=="insert";if(A&&b)if(s(g.start,u.end)>=0)h(g,u,-1);else if(s(g.start,u.start)<=0)h(u,g,1);else return null;else if(A&&!b)if(s(g.start,u.end)>=0)h(g,u,-1);else if(s(g.end,u.start)<=0)h(u,g,-1);else return null;else if(!A&&b)if(s(g.start,u.start)>=0)h(g,u,1);else if(s(g.start,u.start)<=0)h(u,g,1);else return null;else if(!A&&!b)if(s(g.start,u.start)>=0)h(g,u,1);else if(s(g.end,u.start)<=0)h(u,g,-1);else return null;return[g,u]}function r(u,g){for(var A=u.length;A--;)for(var b=0;b<g.length;b++)if(!n(u[A],g[b])){for(;A<u.length;){for(;b--;)n(g[b],u[A]);b=g.length,A++}return[u,g]}return u.selectionBefore=g.selectionBefore=u.selectionAfter=g.selectionAfter=null,[g,u]}function l(u,g){var A=u.action=="insert",b=g.action=="insert";if(A&&b)s(u.start,g.start)<0?h(g,u,1):h(u,g,1);else if(A&&!b)s(u.start,g.end)>=0?h(u,g,-1):(s(u.start,g.start)<=0||h(u,c.fromPoints(g.start,u.start),-1),h(g,u,1));else if(!A&&b)s(g.start,u.end)>=0?h(g,u,-1):(s(g.start,u.start)<=0||h(g,c.fromPoints(u.start,g.start),-1),h(u,g,1));else if(!A&&!b)if(s(g.start,u.end)>=0)h(g,u,-1);else if(s(g.end,u.start)<=0)h(u,g,-1);else{var x,o;return s(u.start,g.start)<0&&(x=u,u=v(u,g.start)),s(u.end,g.end)>0&&(o=v(u,g.end)),m(g.end,u.start,u.end,-1),o&&!x&&(u.lines=o.lines,u.start=o.start,u.end=o.end,o=u),[g,x,o].filter(Boolean)}return[g,u]}function h(u,g,A){m(u.start,g.start,g.end,A),m(u.end,g.start,g.end,A)}function m(u,g,A,b){u.row==(b==1?g:A).row&&(u.column+=b*(A.column-g.column)),u.row+=b*(A.row-g.row)}function v(u,g){var A=u.lines,b=u.end;u.end=a(g);var x=u.end.row-u.start.row,o=A.splice(x,A.length),d=x?g.column:g.column-u.start.column;A.push(o[0].substring(0,d)),o[0]=o[0].substr(d);var $={start:a(g),end:b,lines:o,action:u.action};return $}function S(u,g){g=t(g);for(var A=u.length;A--;){for(var b=u[A],x=0;x<b.length;x++){var o=b[x],d=l(o,g);g=d[0],d.length!=2&&(d[2]?(b.splice(x+1,1,d[1],d[2]),x++):d[1]||(b.splice(x,1),x--))}b.length||u.splice(A,1)}return u}function C(u,g){for(var A=0;A<g.length;A++)for(var b=g[A],x=0;x<b.length;x++)S(u,b[x])}y.UndoManager=f}),ace.define("ace/layer/lines",["require","exports","module","ace/lib/dom"],function(w,y,M){var f=w("../lib/dom"),p=function(c,s){this.element=c,this.canvasHeight=s||5e5,this.element.style.height=this.canvasHeight*2+"px",this.cells=[],this.cellCache=[],this.$offsetCoefficient=0};(function(){this.moveContainer=function(c){f.translate(this.element,0,-(c.firstRowScreen*c.lineHeight%this.canvasHeight)-c.offset*this.$offsetCoefficient)},this.pageChanged=function(c,s){return Math.floor(c.firstRowScreen*c.lineHeight/this.canvasHeight)!==Math.floor(s.firstRowScreen*s.lineHeight/this.canvasHeight)},this.computeLineTop=function(c,s,a){var t=s.firstRowScreen*s.lineHeight,e=Math.floor(t/this.canvasHeight),i=a.documentToScreenRow(c,0)*s.lineHeight;return i-e*this.canvasHeight},this.computeLineHeight=function(c,s,a){return s.lineHeight*a.getRowLineCount(c)},this.getLength=function(){return this.cells.length},this.get=function(c){return this.cells[c]},this.shift=function(){this.$cacheCell(this.cells.shift())},this.pop=function(){this.$cacheCell(this.cells.pop())},this.push=function(c){if(Array.isArray(c)){this.cells.push.apply(this.cells,c);for(var s=f.createFragment(this.element),a=0;a<c.length;a++)s.appendChild(c[a].element);this.element.appendChild(s)}else this.cells.push(c),this.element.appendChild(c.element)},this.unshift=function(c){if(Array.isArray(c)){this.cells.unshift.apply(this.cells,c);for(var s=f.createFragment(this.element),a=0;a<c.length;a++)s.appendChild(c[a].element);this.element.firstChild?this.element.insertBefore(s,this.element.firstChild):this.element.appendChild(s)}else this.cells.unshift(c),this.element.insertAdjacentElement("afterbegin",c.element)},this.last=function(){return this.cells.length?this.cells[this.cells.length-1]:null},this.$cacheCell=function(c){c&&(c.element.remove(),this.cellCache.push(c))},this.createCell=function(c,s,a,t){var e=this.cellCache.pop();if(!e){var i=f.createElement("div");t&&t(i),this.element.appendChild(i),e={element:i,text:"",row:c}}return e.row=c,e}}).call(p.prototype),y.Lines=p}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/layer/lines"],function(w,y,M){var f=w("../lib/dom"),p=w("../lib/oop"),c=w("../lib/lang"),s=w("../lib/event_emitter").EventEmitter,a=w("./lines").Lines,t=function(i){this.element=f.createElement("div"),this.element.className="ace_layer ace_gutter-layer",i.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$lines=new a(this.element),this.$lines.$offsetCoefficient=1};(function(){p.implement(this,s),this.setSession=function(i){this.session&&this.session.off("change",this.$updateAnnotations),this.session=i,i&&i.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(i,n){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(i,n)},this.removeGutterDecoration=function(i,n){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(i,n)},this.setAnnotations=function(i){this.$annotations=[];for(var n=0;n<i.length;n++){var r=i[n],l=r.row,h=this.$annotations[l];h||(h=this.$annotations[l]={text:[]});var m=r.text;m=m?c.escapeHTML(m):r.html||"",h.text.indexOf(m)===-1&&h.text.push(m);var v=r.type,S=r.className;S?h.className=S:v=="error"?h.className=" ace_error":v=="warning"&&h.className!=" ace_error"?h.className=" ace_warning":v=="info"&&!h.className&&(h.className=" ace_info")}},this.$updateAnnotations=function(i){if(this.$annotations.length){var n=i.start.row,r=i.end.row-n;if(r!==0)if(i.action=="remove")this.$annotations.splice(n,r+1,null);else{var l=new Array(r+1);l.unshift(n,1),this.$annotations.splice.apply(this.$annotations,l)}}},this.update=function(i){this.config=i;var n=this.session,r=i.firstRow,l=Math.min(i.lastRow+i.gutterOffset,n.getLength()-1);this.oldLastRow=l,this.config=i,this.$lines.moveContainer(i),this.$updateCursorRow();for(var h=n.getNextFoldLine(r),m=h?h.start.row:1/0,v=null,S=-1,C=r;;){if(C>m&&(C=h.end.row+1,h=n.getNextFoldLine(C,h),m=h?h.start.row:1/0),C>l){for(;this.$lines.getLength()>S+1;)this.$lines.pop();break}v=this.$lines.get(++S),v?v.row=C:(v=this.$lines.createCell(C,i,this.session,e),this.$lines.push(v)),this.$renderCell(v,i,h,C),C++}this._signal("afterRender"),this.$updateGutterWidth(i)},this.$updateGutterWidth=function(i){var n=this.session,r=n.gutterRenderer||this.$renderer,l=n.$firstLineNumber,h=this.$lines.last()?this.$lines.last().text:"";(this.$fixedWidth||n.$useWrapMode)&&(h=n.getLength()+l-1);var m=r?r.getWidth(n,h,i):h.toString().length*i.characterWidth,v=this.$padding||this.$computePadding();m+=v.left+v.right,m!==this.gutterWidth&&!isNaN(m)&&(this.gutterWidth=m,this.element.parentNode.style.width=this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._signal("changeGutterWidth",m))},this.$updateCursorRow=function(){if(this.$highlightGutterLine){var i=this.session.selection.getCursor();this.$cursorRow!==i.row&&(this.$cursorRow=i.row)}},this.updateLineHighlight=function(){if(this.$highlightGutterLine){var i=this.session.selection.cursor.row;if(this.$cursorRow=i,!(this.$cursorCell&&this.$cursorCell.row==i)){this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ",""));var n=this.$lines.cells;this.$cursorCell=null;for(var r=0;r<n.length;r++){var l=n[r];if(l.row>=this.$cursorRow){if(l.row>this.$cursorRow){var h=this.session.getFoldLine(this.$cursorRow);if(r>0&&h&&h.start.row==n[r-1].row)l=n[r-1];else break}l.element.className="ace_gutter-active-line "+l.element.className,this.$cursorCell=l;break}}}}},this.scrollLines=function(i){var n=this.config;if(this.config=i,this.$updateCursorRow(),this.$lines.pageChanged(n,i))return this.update(i);this.$lines.moveContainer(i);var r=Math.min(i.lastRow+i.gutterOffset,this.session.getLength()-1),l=this.oldLastRow;if(this.oldLastRow=r,!n||l<i.firstRow)return this.update(i);if(r<n.firstRow)return this.update(i);if(n.firstRow<i.firstRow)for(var h=this.session.getFoldedRowCount(n.firstRow,i.firstRow-1);h>0;h--)this.$lines.shift();if(l>r)for(var h=this.session.getFoldedRowCount(r+1,l);h>0;h--)this.$lines.pop();i.firstRow<n.firstRow&&this.$lines.unshift(this.$renderLines(i,i.firstRow,n.firstRow-1)),r>l&&this.$lines.push(this.$renderLines(i,l+1,r)),this.updateLineHighlight(),this._signal("afterRender"),this.$updateGutterWidth(i)},this.$renderLines=function(i,n,r){for(var l=[],h=n,m=this.session.getNextFoldLine(h),v=m?m.start.row:1/0;h>v&&(h=m.end.row+1,m=this.session.getNextFoldLine(h,m),v=m?m.start.row:1/0),!(h>r);){var S=this.$lines.createCell(h,i,this.session,e);this.$renderCell(S,i,m,h),l.push(S),h++}return l},this.$renderCell=function(i,n,r,l){var h=i.element,m=this.session,v=h.childNodes[0],S=h.childNodes[1],C=m.$firstLineNumber,u=m.$breakpoints,g=m.$decorations,A=m.gutterRenderer||this.$renderer,b=this.$showFoldWidgets&&m.foldWidgets,x=r?r.start.row:Number.MAX_VALUE,o="ace_gutter-cell ";if(this.$highlightGutterLine&&(l==this.$cursorRow||r&&l<this.$cursorRow&&l>=x&&this.$cursorRow<=r.end.row)&&(o+="ace_gutter-active-line ",this.$cursorCell!=i&&(this.$cursorCell&&(this.$cursorCell.element.className=this.$cursorCell.element.className.replace("ace_gutter-active-line ","")),this.$cursorCell=i)),u[l]&&(o+=u[l]),g[l]&&(o+=g[l]),this.$annotations[l]&&(o+=this.$annotations[l].className),h.className!=o&&(h.className=o),b){var d=b[l];d==null&&(d=b[l]=m.getFoldWidget(l))}if(d){var o="ace_fold-widget ace_"+d;d=="start"&&l==x&&l<r.end.row?o+=" ace_closed":o+=" ace_open",S.className!=o&&(S.className=o);var $=n.lineHeight+"px";f.setStyle(S.style,"height",$),f.setStyle(S.style,"display","inline-block")}else S&&f.setStyle(S.style,"display","none");var k=(A?A.getText(m,l):l+C).toString();return k!==v.data&&(v.data=k),f.setStyle(i.element.style,"height",this.$lines.computeLineHeight(l,n,m)+"px"),f.setStyle(i.element.style,"top",this.$lines.computeLineTop(l,n,m)+"px"),i.text=k,i},this.$fixedWidth=!1,this.$highlightGutterLine=!0,this.$renderer="",this.setHighlightGutterLine=function(i){this.$highlightGutterLine=i},this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(i){this.$renderer=!i&&{getWidth:function(){return 0},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(i){i?f.addCssClass(this.element,"ace_folding-enabled"):f.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=i,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var i=f.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=(parseInt(i.borderLeftWidth)||0)+(parseInt(i.paddingLeft)||0)+1,this.$padding.right=(parseInt(i.borderRightWidth)||0)+(parseInt(i.paddingRight)||0),this.$padding},this.getRegion=function(i){var n=this.$padding||this.$computePadding(),r=this.element.getBoundingClientRect();if(i.x<n.left+r.left)return"markers";if(this.$showFoldWidgets&&i.x>r.right-n.right)return"foldWidgets"}}).call(t.prototype);function e(i){var n=document.createTextNode("");i.appendChild(n);var r=f.createElement("span");return i.appendChild(r),i}y.Gutter=t}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(w,y,M){var f=w("../range").Range,p=w("../lib/dom"),c=function(s){this.element=p.createElement("div"),this.element.className="ace_layer ace_marker-layer",s.appendChild(this.element)};(function(){this.$padding=0,this.setPadding=function(a){this.$padding=a},this.setSession=function(a){this.session=a},this.setMarkers=function(a){this.markers=a},this.elt=function(a,t){var e=this.i!=-1&&this.element.childNodes[this.i];e?this.i++:(e=document.createElement("div"),this.element.appendChild(e),this.i=-1),e.style.cssText=t,e.className=a},this.update=function(a){if(a){this.config=a,this.i=0;var t;for(var e in this.markers){var i=this.markers[e];if(!i.range){i.update(t,this,this.session,a);continue}var n=i.range.clipRows(a.firstRow,a.lastRow);if(!n.isEmpty())if(n=n.toScreenRange(this.session),i.renderer){var r=this.$getTop(n.start.row,a),l=this.$padding+n.start.column*a.characterWidth;i.renderer(t,n,l,r,a)}else i.type=="fullLine"?this.drawFullLineMarker(t,n,i.clazz,a):i.type=="screenLine"?this.drawScreenLineMarker(t,n,i.clazz,a):n.isMultiLine()?i.type=="text"?this.drawTextMarker(t,n,i.clazz,a):this.drawMultiLineMarker(t,n,i.clazz,a):this.drawSingleLineMarker(t,n,i.clazz+" ace_start ace_br15",a)}if(this.i!=-1)for(;this.i<this.element.childElementCount;)this.element.removeChild(this.element.lastChild)}},this.$getTop=function(a,t){return(a-t.firstRowScreen)*t.lineHeight};function s(a,t,e,i){return(a?1:0)|(t?2:0)|(e?4:0)|(i?8:0)}this.drawTextMarker=function(a,t,e,i,n){for(var r=this.session,l=t.start.row,h=t.end.row,m=l,v=0,S=0,C=r.getScreenLastRowColumn(m),u=new f(m,t.start.column,m,S);m<=h;m++)u.start.row=u.end.row=m,u.start.column=m==l?t.start.column:r.getRowWrapIndent(m),u.end.column=C,v=S,S=C,C=m+1<h?r.getScreenLastRowColumn(m+1):m==h?0:t.end.column,this.drawSingleLineMarker(a,u,e+(m==l?" ace_start":"")+" ace_br"+s(m==l||m==l+1&&t.start.column,v<S,S>C,m==h),i,m==h?0:1,n)},this.drawMultiLineMarker=function(a,t,e,i,n){var r=this.$padding,l=i.lineHeight,h=this.$getTop(t.start.row,i),m=r+t.start.column*i.characterWidth;if(n=n||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var v=t.clone();v.end.row=v.start.row,v.end.column=this.session.getLine(v.start.row).length,this.drawBidiSingleLineMarker(a,v,e+" ace_br1 ace_start",i,null,n)}else this.elt(e+" ace_br1 ace_start","height:"+l+"px;right:0;top:"+h+"px;left:"+m+"px;"+(n||""));if(this.session.$bidiHandler.isBidiRow(t.end.row)){var v=t.clone();v.start.row=v.end.row,v.start.column=0,this.drawBidiSingleLineMarker(a,v,e+" ace_br12",i,null,n)}else{h=this.$getTop(t.end.row,i);var S=t.end.column*i.characterWidth;this.elt(e+" ace_br12","height:"+l+"px;width:"+S+"px;top:"+h+"px;left:"+r+"px;"+(n||""))}if(l=(t.end.row-t.start.row-1)*i.lineHeight,!(l<=0)){h=this.$getTop(t.start.row+1,i);var C=(t.start.column?1:0)|(t.end.column?0:8);this.elt(e+(C?" ace_br"+C:""),"height:"+l+"px;right:0;top:"+h+"px;left:"+r+"px;"+(n||""))}},this.drawSingleLineMarker=function(a,t,e,i,n,r){if(this.session.$bidiHandler.isBidiRow(t.start.row))return this.drawBidiSingleLineMarker(a,t,e,i,n,r);var l=i.lineHeight,h=(t.end.column+(n||0)-t.start.column)*i.characterWidth,m=this.$getTop(t.start.row,i),v=this.$padding+t.start.column*i.characterWidth;this.elt(e,"height:"+l+"px;width:"+h+"px;top:"+m+"px;left:"+v+"px;"+(r||""))},this.drawBidiSingleLineMarker=function(a,t,e,i,n,r){var l=i.lineHeight,h=this.$getTop(t.start.row,i),m=this.$padding,v=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);v.forEach(function(S){this.elt(e,"height:"+l+"px;width:"+(S.width+(n||0))+"px;top:"+h+"px;left:"+(m+S.left)+"px;"+(r||""))},this)},this.drawFullLineMarker=function(a,t,e,i,n){var r=this.$getTop(t.start.row,i),l=i.lineHeight;t.start.row!=t.end.row&&(l+=this.$getTop(t.end.row,i)-r),this.elt(e,"height:"+l+"px;top:"+r+"px;left:0;right:0;"+(n||""))},this.drawScreenLineMarker=function(a,t,e,i,n){var r=this.$getTop(t.start.row,i),l=i.lineHeight;this.elt(e,"height:"+l+"px;top:"+r+"px;left:0;right:0;"+(n||""))}}).call(c.prototype),y.Marker=c}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter"],function(w,y,M){var f=w("../lib/oop"),p=w("../lib/dom"),c=w("../lib/lang"),s=w("./lines").Lines,a=w("../lib/event_emitter").EventEmitter,t=function(e){this.dom=p,this.element=this.dom.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this),this.$lines=new s(this.element)};(function(){f.implement(this,a),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.MAX_LINE_LENGTH=1e4,this.$updateEolChar=function(){var e=this.session.doc,i=e.getNewLineCharacter()==` `&&e.getNewLineMode()!="windows",n=i?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=n)return this.EOL_CHAR=n,!0},this.setPadding=function(e){this.$padding=e,this.element.style.margin="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(i){this._signal("changeCharacterSize",i)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.showSpaces=!1,this.showTabs=!1,this.showEOL=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,typeof e=="string"?(this.showSpaces=/tab/i.test(e),this.showTabs=/space/i.test(e),this.showEOL=/eol/i.test(e)):this.showSpaces=this.showTabs=this.showEOL=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$highlightIndentGuides=!0,this.setHighlightIndentGuides=function(e){return this.$highlightIndentGuides===e?!1:(this.$highlightIndentGuides=e,e)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var i=this.$tabStrings=[0],n=1;n<e+1;n++)if(this.showTabs){var r=this.dom.createElement("span");r.className="ace_invisible ace_invisible_tab",r.textContent=c.stringRepeat(this.TAB_CHAR,n),i.push(r)}else i.push(this.dom.createTextNode(c.stringRepeat(" ",n),this.element));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var l="ace_indent-guide",h=this.showSpaces?" ace_invisible ace_invisible_space":"",m=this.showSpaces?c.stringRepeat(this.SPACE_CHAR,this.tabSize):c.stringRepeat(" ",this.tabSize),v=this.showTabs?" ace_invisible ace_invisible_tab":"",S=this.showTabs?c.stringRepeat(this.TAB_CHAR,this.tabSize):m,r=this.dom.createElement("span");r.className=l+h,r.textContent=m,this.$tabStrings[" "]=r;var r=this.dom.createElement("span");r.className=l+v,r.textContent=S,this.$tabStrings[" "]=r}},this.updateLines=function(e,i,n){if(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)return this.update(e);this.config=e;for(var r=Math.max(i,e.firstRow),l=Math.min(n,e.lastRow),h=this.element.childNodes,m=0,S=e.firstRow;S<r;S++){var C=this.session.getFoldLine(S);if(C)if(C.containsRow(r)){r=C.start.row;break}else S=C.end.row;m++}for(var v=!1,S=r,C=this.session.getNextFoldLine(S),u=C?C.start.row:1/0;S>u&&(S=C.end.row+1,C=this.session.getNextFoldLine(S,C),u=C?C.start.row:1/0),!(S>l);){var g=h[m++];if(g){this.dom.removeChildren(g),this.$renderLine(g,S,S==u?C:!1),v&&(g.style.top=this.$lines.computeLineTop(S,e,this.session)+"px");var A=e.lineHeight*this.session.getRowLength(S)+"px";g.style.height!=A&&(v=!0,g.style.height=A)}S++}if(v)for(;m<this.$lines.cells.length;){var b=this.$lines.cells[m++];b.element.style.top=this.$lines.computeLineTop(b.row,e,this.session)+"px"}},this.scrollLines=function(e){var i=this.config;if(this.config=e,this.$lines.pageChanged(i,e))return this.update(e);this.$lines.moveContainer(e);var n=e.lastRow,r=i?i.lastRow:-1;if(!i||r<e.firstRow)return this.update(e);if(n<i.firstRow)return this.update(e);if(!i||i.lastRow<e.firstRow)return this.update(e);if(e.lastRow<i.firstRow)return this.update(e);if(i.firstRow<e.firstRow)for(var l=this.session.getFoldedRowCount(i.firstRow,e.firstRow-1);l>0;l--)this.$lines.shift();if(i.lastRow>e.lastRow)for(var l=this.session.getFoldedRowCount(e.lastRow+1,i.lastRow);l>0;l--)this.$lines.pop();e.firstRow<i.firstRow&&this.$lines.unshift(this.$renderLinesFragment(e,e.firstRow,i.firstRow-1)),e.lastRow>i.lastRow&&this.$lines.push(this.$renderLinesFragment(e,i.lastRow+1,e.lastRow)),this.$highlightIndentGuide()},this.$renderLinesFragment=function(e,i,n){for(var r=[],l=i,h=this.session.getNextFoldLine(l),m=h?h.start.row:1/0;l>m&&(l=h.end.row+1,h=this.session.getNextFoldLine(l,h),m=h?h.start.row:1/0),!(l>n);){var v=this.$lines.createCell(l,e,this.session),S=v.element;this.dom.removeChildren(S),p.setStyle(S.style,"height",this.$lines.computeLineHeight(l,e,this.session)+"px"),p.setStyle(S.style,"top",this.$lines.computeLineTop(l,e,this.session)+"px"),this.$renderLine(S,l,l==m?h:!1),this.$useLineGroups()?S.className="ace_line_group":S.className="ace_line",r.push(v),l++}return r},this.update=function(e){this.$lines.moveContainer(e),this.config=e;for(var i=e.firstRow,n=e.lastRow,r=this.$lines;r.getLength();)r.pop();r.push(this.$renderLinesFragment(e,i,n))},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,i,n,r){for(var l=this,h=/(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC\u2066\u2067\u2068\u202A\u202B\u202D\u202E\u202C\u2069]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g,m=this.dom.createFragment(this.element),v,S=0;v=h.exec(r);){var C=v[1],u=v[2],g=v[3],A=v[4],b=v[5];if(!(!l.showSpaces&&u)){var x=S!=v.index?r.slice(S,v.index):"";if(S=v.index+v[0].length,x&&m.appendChild(this.dom.createTextNode(x,this.element)),C){var o=l.session.getScreenTabSize(i+v.index);m.appendChild(l.$tabStrings[o].cloneNode(!0)),i+=o-1}else if(u)if(l.showSpaces){var d=this.dom.createElement("span");d.className="ace_invisible ace_invisible_space",d.textContent=c.stringRepeat(l.SPACE_CHAR,u.length),m.appendChild(d)}else m.appendChild(this.com.createTextNode(u,this.element));else if(g){var d=this.dom.createElement("span");d.className="ace_invisible ace_invisible_space ace_invalid",d.textContent=c.stringRepeat(l.SPACE_CHAR,g.length),m.appendChild(d)}else if(A){i+=1;var d=this.dom.createElement("span");d.style.width=l.config.characterWidth*2+"px",d.className=l.showSpaces?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",d.textContent=l.showSpaces?l.SPACE_CHAR:A,m.appendChild(d)}else if(b){i+=1;var d=this.dom.createElement("span");d.style.width=l.config.characterWidth*2+"px",d.className="ace_cjk",d.textContent=b,m.appendChild(d)}}}if(m.appendChild(this.dom.createTextNode(S?r.slice(S):r,this.element)),this.$textToken[n.type])e.appendChild(m);else{var $="ace_"+n.type.replace(/\./g," ace_"),d=this.dom.createElement("span");n.type=="fold"&&(d.style.width=n.value.length*this.config.characterWidth+"px"),d.className=$,d.appendChild(m),e.appendChild(d)}return i+r.length},this.renderIndentGuide=function(e,i,n){var r=i.search(this.$indentGuideRe);if(r<=0||r>=n)return i;if(i[0]==" "){r-=r%this.tabSize;for(var l=r/this.tabSize,h=0;h<l;h++)e.appendChild(this.$tabStrings[" "].cloneNode(!0));return this.$highlightIndentGuide(),i.substr(r)}else if(i[0]==" "){for(var h=0;h<r;h++)e.appendChild(this.$tabStrings[" "].cloneNode(!0));return this.$highlightIndentGuide(),i.substr(r)}return this.$highlightIndentGuide(),i},this.$highlightIndentGuide=function(){if(!(!this.$highlightIndentGuides||!this.displayIndentGuides)){this.$highlightIndentGuideMarker={indentLevel:void 0,start:void 0,end:void 0,dir:void 0};var e=this.session.doc.$lines;if(e){var i=this.session.selection.getCursor(),n=/^\s*/.exec(this.session.doc.getLine(i.row))[0].length,r=Math.floor(n/this.tabSize);this.$highlightIndentGuideMarker={indentLevel:r,start:i.row};var l=this.session.$bracketHighlight;if(l){for(var h=this.session.$bracketHighlight.ranges,m=0;m<h.length;m++)if(i.row!==h[m].start.row){this.$highlightIndentGuideMarker.end=h[m].start.row,i.row>h[m].start.row?this.$highlightIndentGuideMarker.dir=-1:this.$highlightIndentGuideMarker.dir=1;break}}if(!this.$highlightIndentGuideMarker.end&&e[i.row]!==""&&i.column===e[i.row].length){this.$highlightIndentGuideMarker.dir=1;for(var m=i.row+1;m<e.length;m++){var v=e[m],S=/^\s*/.exec(v)[0].length;if(v!==""&&(this.$highlightIndentGuideMarker.end=m,S<=n))break}}this.$renderHighlightIndentGuide()}}},this.$clearActiveIndentGuide=function(){for(var e=this.$lines.cells,i=0;i<e.length;i++){var n=e[i],r=n.element.childNodes;if(r.length>0){for(var l=0;l<r.length;l++)if(r[l].classList&&r[l].classList.contains("ace_indent-guide-active")){r[l].classList.remove("ace_indent-guide-active");break}}}},this.$setIndentGuideActive=function(e,i){var n=this.session.doc.getLine(e.row);if(n!==""){var r=e.element.childNodes;if(r){var l=r[i-1];l&&l.classList&&l.classList.contains("ace_indent-guide")&&l.classList.add("ace_indent-guide-active")}}},this.$renderHighlightIndentGuide=function(){if(this.$lines){var e=this.$lines.cells;this.$clearActiveIndentGuide();var i=this.$highlightIndentGuideMarker.indentLevel;if(i!==0)if(this.$highlightIndentGuideMarker.dir===1)for(var n=0;n<e.length;n++){var r=e[n];if(this.$highlightIndentGuideMarker.end&&r.row>=this.$highlightIndentGuideMarker.start+1){if(r.row>=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(r,i)}}else for(var n=e.length-1;n>=0;n--){var r=e[n];if(this.$highlightIndentGuideMarker.end&&r.row<this.$highlightIndentGuideMarker.start){if(r.row<=this.$highlightIndentGuideMarker.end)break;this.$setIndentGuideActive(r,i)}}}},this.$createLineElement=function(e){var i=this.dom.createElement("div");return i.className="ace_line",i.style.height=this.config.lineHeight+"px",i},this.$renderWrappedLine=function(e,i,n){var r=0,l=0,h=n[0],m=0,v=this.$createLineElement();e.appendChild(v);for(var S=0;S<i.length;S++){var C=i[S],u=C.value;if(S==0&&this.displayIndentGuides){if(r=u.length,u=this.renderIndentGuide(v,u,h),!u)continue;r-=u.length}if(r+u.length<h)m=this.$renderToken(v,m,C,u),r+=u.length;else{for(;r+u.length>=h;)m=this.$renderToken(v,m,C,u.substring(0,h-r)),u=u.substring(h-r),r=h,v=this.$createLineElement(),e.appendChild(v),v.appendChild(this.dom.createTextNode(c.stringRepeat(" ",n.indent),this.element)),l++,m=0,h=n[l]||Number.MAX_VALUE;u.length!=0&&(r+=u.length,m=this.$renderToken(v,m,C,u))}}n[n.length-1]>this.MAX_LINE_LENGTH&&this.$renderOverflowMessage(v,m,null,"",!0)},this.$renderSimpleLine=function(e,i){for(var n=0,r=0;r<i.length;r++){var l=i[r],h=l.value;if(!(r==0&&this.displayIndentGuides&&(h=this.renderIndentGuide(e,h),!h))){if(n+h.length>this.MAX_LINE_LENGTH)return this.$renderOverflowMessage(e,n,l,h);n=this.$renderToken(e,n,l,h)}}},this.$renderOverflowMessage=function(e,i,n,r,l){n&&this.$renderToken(e,i,n,r.slice(0,this.MAX_LINE_LENGTH-i));var h=this.dom.createElement("span");h.className="ace_inline_button ace_keyword ace_toggle_wrap",h.textContent=l?"<hide>":"<click to see more...>",e.appendChild(h)},this.$renderLine=function(e,i,n){if(!n&&n!=!1&&(n=this.session.getFoldLine(i)),n)var r=this.$getFoldLineTokens(i,n);else var r=this.session.getTokens(i);var l=e;if(r.length){var h=this.session.getRowSplitData(i);if(h&&h.length){this.$renderWrappedLine(e,r,h);var l=e.lastChild}else{var l=e;this.$useLineGroups()&&(l=this.$createLineElement(),e.appendChild(l)),this.$renderSimpleLine(l,r)}}else this.$useLineGroups()&&(l=this.$createLineElement(),e.appendChild(l));if(this.showEOL&&l){n&&(i=n.end.row);var m=this.dom.createElement("span");m.className="ace_invisible ace_invisible_eol",m.textContent=i==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,l.appendChild(m)}},this.$getFoldLineTokens=function(e,i){var n=this.session,r=[];function l(m,v,S){for(var C=0,u=0;u+m[C].value.length<v;)if(u+=m[C].value.length,C++,C==m.length)return;if(u!=v){var g=m[C].value.substring(v-u);g.length>S-v&&(g=g.substring(0,S-v)),r.push({type:m[C].type,value:g}),u=v+g.length,C+=1}for(;u<S&&C<m.length;){var g=m[C].value;g.length+u>S?r.push({type:m[C].type,value:g.substring(0,S-u)}):r.push(m[C]),u+=g.length,C+=1}}var h=n.getTokens(e);return i.walk(function(m,v,S,C,u){m!=null?r.push({type:"fold",value:m}):(u&&(h=n.getTokens(v)),h.length&&l(h,C,S))},i.end.row,this.session.getLine(i.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){}}).call(t.prototype),y.Text=t}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(w,y,M){var f=w("../lib/dom"),p=function(c){this.element=f.createElement("div"),this.element.className="ace_layer ace_cursor-layer",c.appendChild(this.element),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),f.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=this.$updateOpacity.bind(this)};(function(){this.$updateOpacity=function(c){for(var s=this.cursors,a=s.length;a--;)f.setStyle(s[a].style,"opacity",c?"":"0")},this.$startCssAnimation=function(){for(var c=this.cursors,s=c.length;s--;)c[s].style.animationDuration=this.blinkInterval+"ms";this.$isAnimating=!0,setTimeout(function(){this.$isAnimating&&f.addCssClass(this.element,"ace_animate-blinking")}.bind(this))},this.$stopCssAnimation=function(){this.$isAnimating=!1,f.removeCssClass(this.element,"ace_animate-blinking")},this.$padding=0,this.setPadding=function(c){this.$padding=c},this.setSession=function(c){this.session=c},this.setBlinking=function(c){c!=this.isBlinking&&(this.isBlinking=c,this.restartTimer())},this.setBlinkInterval=function(c){c!=this.blinkInterval&&(this.blinkInterval=c,this.restartTimer())},this.setSmoothBlinking=function(c){c!=this.smoothBlinking&&(this.smoothBlinking=c,f.setCssClass(this.element,"ace_smooth-blinking",c),this.$updateCursors(!0),this.restartTimer())},this.addCursor=function(){var c=f.createElement("div");return c.className="ace_cursor",this.element.appendChild(c),this.cursors.push(c),c},this.removeCursor=function(){if(this.cursors.length>1){var c=this.cursors.pop();return c.parentNode.removeChild(c),c}},this.hideCursor=function(){this.isVisible=!1,f.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,f.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var c=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.$stopCssAnimation(),this.smoothBlinking&&(this.$isSmoothBlinking=!1,f.removeCssClass(this.element,"ace_smooth-blinking")),c(!0),!this.isBlinking||!this.blinkInterval||!this.isVisible){this.$stopCssAnimation();return}if(this.smoothBlinking&&(this.$isSmoothBlinking=!0,setTimeout(function(){this.$isSmoothBlinking&&f.addCssClass(this.element,"ace_smooth-blinking")}.bind(this))),f.HAS_CSS_ANIMATION)this.$startCssAnimation();else{var s=function(){this.timeoutId=setTimeout(function(){c(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){c(!0),s()},this.blinkInterval),s()}},this.getPixelPosition=function(c,s){if(!this.config||!this.session)return{left:0,top:0};c||(c=this.session.selection.getCursor());var a=this.session.documentToScreenPosition(c),t=this.$padding+(this.session.$bidiHandler.isBidiRow(a.row,c.row)?this.session.$bidiHandler.getPosLeft(a.column):a.column*this.config.characterWidth),e=(a.row-(s?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:t,top:e}},this.isCursorInView=function(c,s){return c.top>=0&&c.top<s.maxHeight},this.update=function(c){this.config=c;var s=this.session.$selectionMarkers,a=0,t=0;(s===void 0||s.length===0)&&(s=[{cursor:null}]);for(var a=0,e=s.length;a<e;a++){var i=this.getPixelPosition(s[a].cursor,!0);if(!((i.top>c.height+c.offset||i.top<0)&&a>1)){var n=this.cursors[t++]||this.addCursor(),r=n.style;this.drawCursor?this.drawCursor(n,i,c,s[a],this.session):this.isCursorInView(i,c)?(f.setStyle(r,"display","block"),f.translate(n,i.left,i.top),f.setStyle(r,"width",Math.round(c.characterWidth)+"px"),f.setStyle(r,"height",c.lineHeight+"px")):f.setStyle(r,"display","none")}}for(;this.cursors.length>t;)this.removeCursor();var l=this.session.getOverwrite();this.$setOverwrite(l),this.$pixelPos=i,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(c){c!=this.overwrite&&(this.overwrite=c,c?f.addCssClass(this.element,"ace_overwrite-cursors"):f.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(p.prototype),y.Cursor=p}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(w,y,M){var f=w("./lib/oop"),p=w("./lib/dom"),c=w("./lib/event"),s=w("./lib/event_emitter").EventEmitter,a=32768,t=function(n){this.element=p.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=p.createElement("div"),this.inner.className="ace_scrollbar-inner",this.inner.textContent=" ",this.element.appendChild(this.inner),n.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,c.addListener(this.element,"scroll",this.onScroll.bind(this)),c.addListener(this.element,"mousedown",c.preventDefault)};(function(){f.implement(this,s),this.setVisible=function(n){this.element.style.display=n?"":"none",this.isVisible=n,this.coeff=1}}).call(t.prototype);var e=function(n,r){t.call(this,n),this.scrollTop=0,this.scrollHeight=0,r.$scrollbarWidth=this.width=p.scrollbarWidth(n.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};f.inherits(e,t),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,this.coeff!=1){var n=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-n)/(this.coeff-n)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(n){this.element.style.height=n+"px"},this.setInnerHeight=this.setScrollHeight=function(n){this.scrollHeight=n,n>a?(this.coeff=a/n,n=a):this.coeff!=1&&(this.coeff=1),this.inner.style.height=n+"px"},this.setScrollTop=function(n){this.scrollTop!=n&&(this.skipEvent=!0,this.scrollTop=n,this.element.scrollTop=n*this.coeff)}}.call(e.prototype);var i=function(n,r){t.call(this,n),this.scrollLeft=0,this.height=r.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};f.inherits(i,t),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(n){this.element.style.width=n+"px"},this.setInnerWidth=function(n){this.inner.style.width=n+"px"},this.setScrollWidth=function(n){this.inner.style.width=n+"px"},this.setScrollLeft=function(n){this.scrollLeft!=n&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=n)}}.call(i.prototype),y.ScrollBar=e,y.ScrollBarV=e,y.ScrollBarH=i,y.VScrollBar=e,y.HScrollBar=i}),ace.define("ace/scrollbar_custom",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(w,y,M){var f=w("./lib/oop"),p=w("./lib/dom"),c=w("./lib/event"),s=w("./lib/event_emitter").EventEmitter;p.importCssString(`.ace_editor>.ace_sb-v div, .ace_editor>.ace_sb-h div{ position: absolute; background: rgba(128, 128, 128, 0.6); -moz-box-sizing: border-box; box-sizing: border-box; border: 1px solid #bbb; border-radius: 2px; z-index: 8; } .ace_editor>.ace_sb-v, .ace_editor>.ace_sb-h { position: absolute; z-index: 6; background: none; overflow: hidden!important; } .ace_editor>.ace_sb-v { z-index: 6; right: 0; top: 0; width: 12px; } .ace_editor>.ace_sb-v div { z-index: 8; right: 0; width: 100%; } .ace_editor>.ace_sb-h { bottom: 0; left: 0; height: 12px; } .ace_editor>.ace_sb-h div { bottom: 0; height: 100%; } .ace_editor>.ace_sb_grabbed { z-index: 8; background: #000; }`,"ace_scrollbar.css",!1);var a=function(i){this.element=p.createElement("div"),this.element.className="ace_sb"+this.classSuffix,this.inner=p.createElement("div"),this.inner.className="",this.element.appendChild(this.inner),this.VScrollWidth=12,this.HScrollHeight=12,i.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,c.addMultiMouseDownListener(this.element,[500,300,300],this,"onMouseDown")};(function(){f.implement(this,s),this.setVisible=function(i){this.element.style.display=i?"":"none",this.isVisible=i,this.coeff=1}}).call(a.prototype);var t=function(i,n){a.call(this,i),this.scrollTop=0,this.scrollHeight=0,this.parent=i,this.width=this.VScrollWidth,this.renderer=n,this.inner.style.width=this.element.style.width=(this.width||15)+"px",this.$minWidth=0};f.inherits(t,a),function(){this.classSuffix="-v",f.implement(this,s),this.onMouseDown=function(i,n){if(i==="mousedown"&&!(c.getButton(n)!==0||n.detail===2)){if(n.target===this.inner){var r=this,l=n.clientY,h=function(A){l=A.clientY},m=function(){clearInterval(u)},v=n.clientY,S=this.thumbTop,C=function(){if(l!==void 0){var A=r.scrollTopFromThumbTop(S+l-v);A!==r.scrollTop&&r._emit("scroll",{data:A})}};c.capture(this.inner,h,m);var u=setInterval(C,20);return c.preventDefault(n)}var g=n.clientY-this.element.getBoundingClientRect().top-this.thumbHeight/2;return this._emit("scroll",{data:this.scrollTopFromThumbTop(g)}),c.preventDefault(n)}},this.getHeight=function(){return this.height},this.scrollTopFromThumbTop=function(i){var n=i*(this.pageHeight-this.viewHeight)/(this.slideHeight-this.thumbHeight);return n=n>>0,n<0?n=0:n>this.pageHeight-this.viewHeight&&(n=this.pageHeight-this.viewHeight),n},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(i){this.height=Math.max(0,i),this.slideHeight=this.height,this.viewHeight=this.height,this.setScrollHeight(this.pageHeight,!0)},this.setInnerHeight=this.setScrollHeight=function(i,n){this.pageHeight===i&&!n||(this.pageHeight=i,this.thumbHeight=this.slideHeight*this.viewHeight/this.pageHeight,this.thumbHeight>this.slideHeight&&(this.thumbHeight=this.slideHeight),this.thumbHeight<15&&(this.thumbHeight=15),this.inner.style.height=this.thumbHeight+"px",this.scrollTop>this.pageHeight-this.viewHeight&&(this.scrollTop=this.pageHeight-this.viewHeight,this.scrollTop<0&&(this.scrollTop=0),this._emit("scroll",{data:this.scrollTop})))},this.setScrollTop=function(i){this.scrollTop=i,i<0&&(i=0),this.thumbTop=i*(this.slideHeight-this.thumbHeight)/(this.pageHeight-this.viewHeight),this.inner.style.top=this.thumbTop+"px"}}.call(t.prototype);var e=function(i,n){a.call(this,i),this.scrollLeft=0,this.scrollWidth=0,this.height=this.HScrollHeight,this.inner.style.height=this.element.style.height=(this.height||12)+"px",this.renderer=n};f.inherits(e,a),function(){this.classSuffix="-h",f.implement(this,s),this.onMouseDown=function(i,n){if(i==="mousedown"&&!(c.getButton(n)!==0||n.detail===2)){if(n.target===this.inner){var r=this,l=n.clientX,h=function(A){l=A.clientX},m=function(){clearInterval(u)},v=n.clientX,S=this.thumbLeft,C=function(){if(l!==void 0){var A=r.scrollLeftFromThumbLeft(S+l-v);A!==r.scrollLeft&&r._emit("scroll",{data:A})}};c.capture(this.inner,h,m);var u=setInterval(C,20);return c.preventDefault(n)}var g=n.clientX-this.element.getBoundingClientRect().left-this.thumbWidth/2;return this._emit("scroll",{data:this.scrollLeftFromThumbLeft(g)}),c.preventDefault(n)}},this.getHeight=function(){return this.isVisible?this.height:0},this.scrollLeftFromThumbLeft=function(i){var n=i*(this.pageWidth-this.viewWidth)/(this.slideWidth-this.thumbWidth);return n=n>>0,n<0?n=0:n>this.pageWidth-this.viewWidth&&(n=this.pageWidth-this.viewWidth),n},this.setWidth=function(i){this.width=Math.max(0,i),this.element.style.width=this.width+"px",this.slideWidth=this.width,this.viewWidth=this.width,this.setScrollWidth(this.pageWidth,!0)},this.setInnerWidth=this.setScrollWidth=function(i,n){this.pageWidth===i&&!n||(this.pageWidth=i,this.thumbWidth=this.slideWidth*this.viewWidth/this.pageWidth,this.thumbWidth>this.slideWidth&&(this.thumbWidth=this.slideWidth),this.thumbWidth<15&&(this.thumbWidth=15),this.inner.style.width=this.thumbWidth+"px",this.scrollLeft>this.pageWidth-this.viewWidth&&(this.scrollLeft=this.pageWidth-this.viewWidth,this.scrollLeft<0&&(this.scrollLeft=0),this._emit("scroll",{data:this.scrollLeft})))},this.setScrollLeft=function(i){this.scrollLeft=i,i<0&&(i=0),this.thumbLeft=i*(this.slideWidth-this.thumbWidth)/(this.pageWidth-this.viewWidth),this.inner.style.left=this.thumbLeft+"px"}}.call(e.prototype),y.ScrollBar=t,y.ScrollBarV=t,y.ScrollBarH=e,y.VScrollBar=t,y.HScrollBar=e}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(w,y,M){var f=w("./lib/event"),p=function(c,s){this.onRender=c,this.pending=!1,this.changes=0,this.$recursionLimit=2,this.window=s||window;var a=this;this._flush=function(t){a.pending=!1;var e=a.changes;if(e&&(f.blockIdle(100),a.changes=0,a.onRender(e)),a.changes){if(a.$recursionLimit--<0)return;a.schedule()}else a.$recursionLimit=2}};(function(){this.schedule=function(c){this.changes=this.changes|c,this.changes&&!this.pending&&(f.nextFrame(this._flush),this.pending=!0)},this.clear=function(c){var s=this.changes;return this.changes=0,s}}).call(p.prototype),y.RenderLoop=p}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"],function(w,y,M){var f=w("../lib/oop"),p=w("../lib/dom"),c=w("../lib/lang"),s=w("../lib/event"),a=w("../lib/useragent"),t=w("../lib/event_emitter").EventEmitter,e=512,i=typeof ResizeObserver=="function",n=200,r=y.FontMetrics=function(l){this.el=p.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=p.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=p.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),l.appendChild(this.el),this.$measureNode.textContent=c.stringRepeat("X",e),this.$characterSize={width:0,height:0},i?this.$addObserver():this.checkForSizeChanges()};(function(){f.implement(this,t),this.$characterSize={width:0,height:0},this.$setMeasureNodeStyles=function(l,h){l.width=l.height="auto",l.left=l.top="0px",l.visibility="hidden",l.position="absolute",l.whiteSpace="pre",a.isIE<8?l["font-family"]="inherit":l.font="inherit",l.overflow=h?"hidden":"visible"},this.checkForSizeChanges=function(l){if(l===void 0&&(l=this.$measureSizes()),l&&(this.$characterSize.width!==l.width||this.$characterSize.height!==l.height)){this.$measureNode.style.fontWeight="bold";var h=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=l,this.charSizes=Object.create(null),this.allowBoldFonts=h&&h.width===l.width&&h.height===l.height,this._emit("changeCharacterSize",{data:l})}},this.$addObserver=function(){var l=this;this.$observer=new window.ResizeObserver(function(h){l.checkForSizeChanges()}),this.$observer.observe(this.$measureNode)},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer||this.$observer)return this.$pollSizeChangesTimer;var l=this;return this.$pollSizeChangesTimer=s.onIdle(function h(){l.checkForSizeChanges(),s.onIdle(h,500)},500)},this.setPolling=function(l){l?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(l){var h={height:(l||this.$measureNode).clientHeight,width:(l||this.$measureNode).clientWidth/e};return h.width===0||h.height===0?null:h},this.$measureCharWidth=function(l){this.$main.textContent=c.stringRepeat(l,e);var h=this.$main.getBoundingClientRect();return h.width/e},this.getCharacterWidth=function(l){var h=this.charSizes[l];return h===void 0&&(h=this.charSizes[l]=this.$measureCharWidth(l)/this.$characterSize.width),h},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$observer&&this.$observer.disconnect(),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)},this.$getZoom=function l(h){return!h||!h.parentElement?1:(window.getComputedStyle(h).zoom||1)*l(h.parentElement)},this.$initTransformMeasureNodes=function(){var l=function(h,m){return["div",{style:"position: absolute;top:"+h+"px;left:"+m+"px;"}]};this.els=p.buildDom([l(0,0),l(n,0),l(0,n),l(n,n)],this.el)},this.transformCoordinates=function(l,h){if(l){var m=this.$getZoom(this.el);l=u(1/m,l)}function v(B,H,z){var U=B[1]*H[0]-B[0]*H[1];return[(-H[1]*z[0]+H[0]*z[1])/U,(+B[1]*z[0]-B[0]*z[1])/U]}function S(B,H){return[B[0]-H[0],B[1]-H[1]]}function C(B,H){return[B[0]+H[0],B[1]+H[1]]}function u(B,H){return[B*H[0],B*H[1]]}this.els||this.$initTransformMeasureNodes();function g(B){var H=B.getBoundingClientRect();return[H.left,H.top]}var A=g(this.els[0]),b=g(this.els[1]),x=g(this.els[2]),o=g(this.els[3]),d=v(S(o,b),S(o,x),S(C(b,x),C(o,A))),$=u(1+d[0],S(b,A)),k=u(1+d[1],S(x,A));if(h){var _=h,L=d[0]*_[0]/n+d[1]*_[1]/n+1,T=C(u(_[0],$),u(_[1],k));return C(u(1/L/n,T),A)}var F=S(l,A),I=v(S($,u(d[0],F)),S(k,u(d[1],F)),F);return u(n,I)}}).call(r.prototype)}),ace.define("ace/css/editor.css",["require","exports","module"],function(w,y,M){M.exports=` .ace_br1 {border-top-left-radius : 3px;} .ace_br2 {border-top-right-radius : 3px;} .ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;} .ace_br4 {border-bottom-right-radius: 3px;} .ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;} .ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;} .ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;} .ace_br8 {border-bottom-left-radius : 3px;} .ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;} .ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;} .ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;} .ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} .ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} .ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} .ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;} .ace_editor { position: relative; overflow: hidden; padding: 0; font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace; direction: ltr; text-align: left; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } .ace_scroller { position: absolute; overflow: hidden; top: 0; bottom: 0; background-color: inherit; -ms-user-select: none; -moz-user-select: none; -webkit-user-select: none; user-select: none; cursor: text; } .ace_content { position: absolute; box-sizing: border-box; min-width: 100%; contain: style size layout; font-variant-ligatures: no-common-ligatures; } .ace_dragging .ace_scroller:before{ position: absolute; top: 0; left: 0; right: 0; bottom: 0; content: ''; background: rgba(250, 250, 250, 0.01); z-index: 1000; } .ace_dragging.ace_dark .ace_scroller:before{ background: rgba(0, 0, 0, 0.01); } .ace_gutter { position: absolute; overflow : hidden; width: auto; top: 0; bottom: 0; left: 0; cursor: default; z-index: 4; -ms-user-select: none; -moz-user-select: none; -webkit-user-select: none; user-select: none; contain: style size layout; } .ace_gutter-active-line { position: absolute; left: 0; right: 0; } .ace_scroller.ace_scroll-left:after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; left: 0; box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset; pointer-events: none; } .ace_gutter-cell { position: absolute; top: 0; left: 0; right: 0; padding-left: 19px; padding-right: 6px; background-repeat: no-repeat; } .ace_gutter-cell.ace_error { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg=="); background-repeat: no-repeat; background-position: 2px center; } .ace_gutter-cell.ace_warning { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg=="); background-position: 2px center; } .ace_gutter-cell.ace_info { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII="); background-position: 2px center; } .ace_dark .ace_gutter-cell.ace_info { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC"); } .ace_scrollbar { contain: strict; position: absolute; right: 0; bottom: 0; z-index: 6; } .ace_scrollbar-inner { position: absolute; cursor: text; left: 0; top: 0; } .ace_scrollbar-v{ overflow-x: hidden; overflow-y: scroll; top: 0; } .ace_scrollbar-h { overflow-x: scroll; overflow-y: hidden; left: 0; } .ace_print-margin { position: absolute; height: 100%; } .ace_text-input { position: absolute; z-index: 0; width: 0.5em; height: 1em; opacity: 0; background: transparent; -moz-appearance: none; appearance: none; border: none; resize: none; outline: none; overflow: hidden; font: inherit; padding: 0 1px; margin: 0 -1px; contain: strict; -ms-user-select: text; -moz-user-select: text; -webkit-user-select: text; user-select: text; /*with \`pre-line\` chrome inserts instead of space*/ white-space: pre!important; } .ace_text-input.ace_composition { background: transparent; color: inherit; z-index: 1000; opacity: 1; } .ace_composition_placeholder { color: transparent } .ace_composition_marker { border-bottom: 1px solid; position: absolute; border-radius: 0; margin-top: 1px; } [ace_nocontext=true] { transform: none!important; filter: none!important; clip-path: none!important; mask : none!important; contain: none!important; perspective: none!important; mix-blend-mode: initial!important; z-index: auto; } .ace_layer { z-index: 1; position: absolute; overflow: hidden; /* workaround for chrome bug https://github.com/ajaxorg/ace/issues/2312*/ word-wrap: normal; white-space: pre; height: 100%; width: 100%; box-sizing: border-box; /* setting pointer-events: auto; on node under the mouse, which changes during scroll, will break mouse wheel scrolling in Safari */ pointer-events: none; } .ace_gutter-layer { position: relative; width: auto; text-align: right; pointer-events: auto; height: 1000000px; contain: style size layout; } .ace_text-layer { font: inherit !important; position: absolute; height: 1000000px; width: 1000000px; contain: style size layout; } .ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group { contain: style size layout; position: absolute; top: 0; left: 0; right: 0; } .ace_hidpi .ace_text-layer, .ace_hidpi .ace_gutter-layer, .ace_hidpi .ace_content, .ace_hidpi .ace_gutter { contain: strict; will-change: transform; } .ace_hidpi .ace_text-layer > .ace_line, .ace_hidpi .ace_text-layer > .ace_line_group { contain: strict; } .ace_cjk { display: inline-block; text-align: center; } .ace_cursor-layer { z-index: 4; } .ace_cursor { z-index: 4; position: absolute; box-sizing: border-box; border-left: 2px solid; /* workaround for smooth cursor repaintng whole screen in chrome */ transform: translatez(0); } .ace_multiselect .ace_cursor { border-left-width: 1px; } .ace_slim-cursors .ace_cursor { border-left-width: 1px; } .ace_overwrite-cursors .ace_cursor { border-left-width: 0; border-bottom: 1px solid; } .ace_hidden-cursors .ace_cursor { opacity: 0.2; } .ace_hasPlaceholder .ace_hidden-cursors .ace_cursor { opacity: 0; } .ace_smooth-blinking .ace_cursor { transition: opacity 0.18s; } .ace_animate-blinking .ace_cursor { animation-duration: 1000ms; animation-timing-function: step-end; animation-name: blink-ace-animate; animation-iteration-count: infinite; } .ace_animate-blinking.ace_smooth-blinking .ace_cursor { animation-duration: 1000ms; animation-timing-function: ease-in-out; animation-name: blink-ace-animate-smooth; } @keyframes blink-ace-animate { from, to { opacity: 1; } 60% { opacity: 0; } } @keyframes blink-ace-animate-smooth { from, to { opacity: 1; } 45% { opacity: 1; } 60% { opacity: 0; } 85% { opacity: 0; } } .ace_marker-layer .ace_step, .ace_marker-layer .ace_stack { position: absolute; z-index: 3; } .ace_marker-layer .ace_selection { position: absolute; z-index: 5; } .ace_marker-layer .ace_bracket { position: absolute; z-index: 6; } .ace_marker-layer .ace_error_bracket { position: absolute; border-bottom: 1px solid #DE5555; border-radius: 0; } .ace_marker-layer .ace_active-line { position: absolute; z-index: 2; } .ace_marker-layer .ace_selected-word { position: absolute; z-index: 4; box-sizing: border-box; } .ace_line .ace_fold { box-sizing: border-box; display: inline-block; height: 11px; margin-top: -2px; vertical-align: middle; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII="); background-repeat: no-repeat, repeat-x; background-position: center center, top left; color: transparent; border: 1px solid black; border-radius: 2px; cursor: pointer; pointer-events: auto; } .ace_dark .ace_fold { } .ace_fold:hover{ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="), url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC"); } .ace_tooltip { background-color: #FFF; background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1)); border: 1px solid gray; border-radius: 1px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); color: black; max-width: 100%; padding: 3px 4px; position: fixed; z-index: 999999; box-sizing: border-box; cursor: default; white-space: pre; word-wrap: break-word; line-height: normal; font-style: normal; font-weight: normal; letter-spacing: normal; pointer-events: none; } .ace_folding-enabled > .ace_gutter-cell { padding-right: 13px; } .ace_fold-widget { box-sizing: border-box; margin: 0 -12px 0 1px; display: none; width: 11px; vertical-align: top; background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg=="); background-repeat: no-repeat; background-position: center; border-radius: 3px; border: 1px solid transparent; cursor: pointer; } .ace_folding-enabled .ace_fold-widget { display: inline-block; } .ace_fold-widget.ace_end { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg=="); } .ace_fold-widget.ace_closed { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA=="); } .ace_fold-widget:hover { border: 1px solid rgba(0, 0, 0, 0.3); background-color: rgba(255, 255, 255, 0.2); box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7); } .ace_fold-widget:active { border: 1px solid rgba(0, 0, 0, 0.4); background-color: rgba(0, 0, 0, 0.05); box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8); } /** * Dark version for fold widgets */ .ace_dark .ace_fold-widget { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC"); } .ace_dark .ace_fold-widget.ace_end { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg=="); } .ace_dark .ace_fold-widget.ace_closed { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg=="); } .ace_dark .ace_fold-widget:hover { box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); background-color: rgba(255, 255, 255, 0.1); } .ace_dark .ace_fold-widget:active { box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2); } .ace_inline_button { border: 1px solid lightgray; display: inline-block; margin: -1px 8px; padding: 0 5px; pointer-events: auto; cursor: pointer; } .ace_inline_button:hover { border-color: gray; background: rgba(200,200,200,0.2); display: inline-block; pointer-events: auto; } .ace_fold-widget.ace_invalid { background-color: #FFB4B4; border-color: #DE5555; } .ace_fade-fold-widgets .ace_fold-widget { transition: opacity 0.4s ease 0.05s; opacity: 0; } .ace_fade-fold-widgets:hover .ace_fold-widget { transition: opacity 0.05s ease 0.05s; opacity:1; } .ace_underline { text-decoration: underline; } .ace_bold { font-weight: bold; } .ace_nobold .ace_bold { font-weight: normal; } .ace_italic { font-style: italic; } .ace_error-marker { background-color: rgba(255, 0, 0,0.2); position: absolute; z-index: 9; } .ace_highlight-marker { background-color: rgba(255, 255, 0,0.2); position: absolute; z-index: 8; } .ace_mobile-menu { position: absolute; line-height: 1.5; border-radius: 4px; -ms-user-select: none; -moz-user-select: none; -webkit-user-select: none; user-select: none; background: white; box-shadow: 1px 3px 2px grey; border: 1px solid #dcdcdc; color: black; } .ace_dark > .ace_mobile-menu { background: #333; color: #ccc; box-shadow: 1px 3px 2px grey; border: 1px solid #444; } .ace_mobile-button { padding: 2px; cursor: pointer; overflow: hidden; } .ace_mobile-button:hover { background-color: #eee; opacity:1; } .ace_mobile-button:active { background-color: #ddd; } .ace_placeholder { font-family: arial; transform: scale(0.9); transform-origin: left; white-space: pre; opacity: 0.7; margin: 0 10px; } .ace_ghost_text { opacity: 0.5; font-style: italic; }`}),ace.define("ace/layer/decorators",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter"],function(w,y,M){var f=w("../lib/dom"),p=w("../lib/oop"),c=w("../lib/event_emitter").EventEmitter,s=function(a,t){this.canvas=f.createElement("canvas"),this.renderer=t,this.pixelRatio=1,this.maxHeight=t.layerConfig.maxHeight,this.lineHeight=t.layerConfig.lineHeight,this.canvasHeight=a.parent.scrollHeight,this.heightRatio=this.canvasHeight/this.maxHeight,this.canvasWidth=a.width,this.minDecorationHeight=2*this.pixelRatio|0,this.halfMinDecorationHeight=this.minDecorationHeight/2|0,this.canvas.width=this.canvasWidth,this.canvas.height=this.canvasHeight,this.canvas.style.top="0px",this.canvas.style.right="0px",this.canvas.style.zIndex="7px",this.canvas.style.position="absolute",this.colors={},this.colors.dark={error:"rgba(255, 18, 18, 1)",warning:"rgba(18, 136, 18, 1)",info:"rgba(18, 18, 136, 1)"},this.colors.light={error:"rgb(255,51,51)",warning:"rgb(32,133,72)",info:"rgb(35,68,138)"},a.element.appendChild(this.canvas)};(function(){p.implement(this,c),this.$updateDecorators=function(a){var t=this.renderer.theme.isDark===!0?this.colors.dark:this.colors.light;if(a){this.maxHeight=a.maxHeight,this.lineHeight=a.lineHeight,this.canvasHeight=a.height;var e=(a.lastRow+1)*this.lineHeight;e<this.canvasHeight?this.heightRatio=1:this.heightRatio=this.canvasHeight/this.maxHeight}var i=this.canvas.getContext("2d");function n(o,d){return o.priority<d.priority?-1:o.priority>d.priority?1:0}var r=this.renderer.session.$annotations;if(i.clearRect(0,0,this.canvas.width,this.canvas.height),r){var l={info:1,warning:2,error:3};r.forEach(function(o){o.priority=l[o.type]||null}),r=r.sort(n);for(var h=this.renderer.session.$foldData,m=0;m<r.length;m++){var v=r[m].row,S=this.compensateFoldRows(v,h),C=Math.round((v-S)*this.lineHeight*this.heightRatio),u=Math.round((v-S)*this.lineHeight*this.heightRatio),g=Math.round(((v-S)*this.lineHeight+this.lineHeight)*this.heightRatio),A=g-u;if(A<this.minDecorationHeight){var b=(u+g)/2|0;b<this.halfMinDecorationHeight?b=this.halfMinDecorationHeight:b+this.halfMinDecorationHeight>this.canvasHeight&&(b=this.canvasHeight-this.halfMinDecorationHeight),u=Math.round(b-this.halfMinDecorationHeight),g=Math.round(b+this.halfMinDecorationHeight)}i.fillStyle=t[r[m].type]||null,i.fillRect(0,C,this.canvasWidth,g-u)}}var x=this.renderer.session.selection.getCursor();if(x){var S=this.compensateFoldRows(x.row,h),C=Math.round((x.row-S)*this.lineHeight*this.heightRatio);i.fillStyle="rgba(0, 0, 0, 0.5)",i.fillRect(0,C,this.canvasWidth,2)}},this.compensateFoldRows=function(a,t){var e=0;if(t&&t.length>0)for(var i=0;i<t.length;i++)a>t[i].start.row&&a<t[i].end.row?e+=a-t[i].start.row:a>=t[i].end.row&&(e+=t[i].end.row-t[i].start.row);return e}}).call(s.prototype),y.Decorator=s}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/scrollbar_custom","ace/scrollbar_custom","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/css/editor.css","ace/layer/decorators","ace/lib/useragent"],function(w,y,M){var f=w("./lib/oop"),p=w("./lib/dom"),c=w("./config"),s=w("./layer/gutter").Gutter,a=w("./layer/marker").Marker,t=w("./layer/text").Text,e=w("./layer/cursor").Cursor,i=w("./scrollbar").HScrollBar,n=w("./scrollbar").VScrollBar,r=w("./scrollbar_custom").HScrollBar,l=w("./scrollbar_custom").VScrollBar,h=w("./renderloop").RenderLoop,m=w("./layer/font_metrics").FontMetrics,v=w("./lib/event_emitter").EventEmitter,S=w("./css/editor.css"),C=w("./layer/decorators").Decorator,u=w("./lib/useragent"),g=u.isIE;p.importCssString(S,"ace_editor.css",!1);var A=function(b,x){var o=this;this.container=b||p.createElement("div"),p.addCssClass(this.container,"ace_editor"),p.HI_DPI&&p.addCssClass(this.container,"ace_hidpi"),this.setTheme(x),c.get("useStrictCSP")==null&&c.set("useStrictCSP",!1),this.$gutter=p.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=p.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=p.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new s(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var d=this.$textLayer=new t(this.content);this.canvas=d.element,this.$markerFront=new a(this.content),this.$cursorLayer=new e(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new n(this.container,this),this.scrollBarH=new i(this.container,this),this.scrollBarV.on("scroll",function($){o.$scrollAnimation||o.session.setScrollTop($.data-o.scrollMargin.top)}),this.scrollBarH.on("scroll",function($){o.$scrollAnimation||o.session.setScrollLeft($.data-o.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new m(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.on("changeCharacterSize",function($){o.updateCharacterSize(),o.onResize(!0,o.gutterWidth,o.$size.width,o.$size.height),o._signal("changeCharacterSize",$)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.margin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$keepTextAreaAtCursor=!u.isIOS,this.$loop=new h(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),c.resetOptions(this),c._signal("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,f.implement(this,v),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin(),p.setStyle(this.scroller.style,"line-height",this.lineHeight+"px")},this.setSession=function(b){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=b,b&&this.scrollMargin.top&&b.getScrollTop()<=0&&b.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(b),this.$markerBack.setSession(b),this.$markerFront.setSession(b),this.$gutterLayer.setSession(b),this.$textLayer.setSession(b),b&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(b,x,o){if(x===void 0&&(x=1/0),this.$changedLines?(this.$changedLines.firstRow>b&&(this.$changedLines.firstRow=b),this.$changedLines.lastRow<x&&(this.$changedLines.lastRow=x)):this.$changedLines={firstRow:b,lastRow:x},this.$changedLines.lastRow<this.layerConfig.firstRow)if(o)this.$changedLines.lastRow=this.layerConfig.lastRow;else return;this.$changedLines.firstRow>this.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(b){b?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(b,x,o,d){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=b?1:0;var $=this.container;d||(d=$.clientHeight||$.scrollHeight),o||(o=$.clientWidth||$.scrollWidth);var k=this.$updateCachedSize(b,x,o,d);if(!this.$size.scrollerHeight||!o&&!d)return this.resizing=0;b&&(this.$gutterLayer.$padding=null),b?this.$renderChanges(k|this.$changes,!0):this.$loop.schedule(k|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.$customScrollbar&&this.$updateCustomScrollbar(!0)}},this.$updateCachedSize=function(b,x,o,d){d-=this.$extraHeight||0;var $=0,k=this.$size,_={width:k.width,height:k.height,scrollerHeight:k.scrollerHeight,scrollerWidth:k.scrollerWidth};if(d&&(b||k.height!=d)&&(k.height=d,$|=this.CHANGE_SIZE,k.scrollerHeight=k.height,this.$horizScroll&&(k.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.setHeight(k.scrollerHeight),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",$=$|this.CHANGE_SCROLL),o&&(b||k.width!=o)){$|=this.CHANGE_SIZE,k.width=o,x==null&&(x=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=x,p.setStyle(this.scrollBarH.element.style,"left",x+"px"),p.setStyle(this.scroller.style,"left",x+this.margin.left+"px"),k.scrollerWidth=Math.max(0,o-x-this.scrollBarV.getWidth()-this.margin.h),p.setStyle(this.$gutter.style,"left",this.margin.left+"px");var L=this.scrollBarV.getWidth()+"px";p.setStyle(this.scrollBarH.element.style,"right",L),p.setStyle(this.scroller.style,"right",L),p.setStyle(this.scroller.style,"bottom",this.scrollBarH.getHeight()),this.scrollBarH.setWidth(k.scrollerWidth),(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||b)&&($|=this.CHANGE_FULL)}return k.$dirty=!o||!d,$&&this._signal("resize",_),$},this.onGutterResize=function(b){var x=this.$showGutter?b:0;x!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,x,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):this.$computeLayerConfig()},this.adjustWrapLimit=function(){var b=this.$size.scrollerWidth-this.$padding*2,x=Math.floor(b/this.characterWidth);return this.session.adjustWrapLimit(x,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(b){this.setOption("animatedScroll",b)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(b){this.setOption("showInvisibles",b),this.session.$bidiHandler.setShowInvisibles(b)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(b){this.setOption("displayIndentGuides",b)},this.getHighlightIndentGuides=function(){return this.getOption("highlightIndentGuides")},this.setHighlightIndentGuides=function(b){this.setOption("highlightIndentGuides",b)},this.setShowPrintMargin=function(b){this.setOption("showPrintMargin",b)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(b){this.setOption("printMarginColumn",b)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(b){return this.setOption("showGutter",b)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(b){this.setOption("fadeFoldWidgets",b)},this.setHighlightGutterLine=function(b){this.setOption("highlightGutterLine",b)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updatePrintMargin=function(){if(!(!this.$showPrintMargin&&!this.$printMarginEl)){if(!this.$printMarginEl){var b=p.createElement("div");b.className="ace_layer ace_print-margin-layer",this.$printMarginEl=p.createElement("div"),this.$printMarginEl.className="ace_print-margin",b.appendChild(this.$printMarginEl),this.content.insertBefore(b,this.content.firstChild)}var x=this.$printMarginEl.style;x.left=Math.round(this.characterWidth*this.$printMarginColumn+this.$padding)+"px",x.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()}},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!this.$isMousePressed){var b=this.textarea.style,x=this.$composition;if(!this.$keepTextAreaAtCursor&&!x){p.translate(this.textarea,-100,0);return}var o=this.$cursorLayer.$pixelPos;if(o){x&&x.markerRange&&(o=this.$cursorLayer.getPixelPosition(x.markerRange.start,!0));var d=this.layerConfig,$=o.top,k=o.left;$-=d.offset;var _=x&&x.useTextareaForIME?this.lineHeight:g?0:1;if($<0||$>d.height-_){p.translate(this.textarea,0,0);return}var L=1,T=this.$size.height-_;if(!x)$+=this.lineHeight;else if(x.useTextareaForIME){var F=this.textarea.value;L=this.characterWidth*this.session.$getStringScreenWidth(F)[0]}else $+=this.lineHeight+2;k-=this.scrollLeft,k>this.$size.scrollerWidth-L&&(k=this.$size.scrollerWidth-L),k+=this.gutterWidth+this.margin.left,p.setStyle(b,"height",_+"px"),p.setStyle(b,"width",L+"px"),p.translate(this.textarea,Math.min(k,this.$size.scrollerWidth-L),Math.min($,T))}}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var b=this.layerConfig,x=b.lastRow,o=this.session.documentToScreenRow(x,0)*b.lineHeight;return o-this.session.getScrollTop()>b.height-b.lineHeight?x-1:x},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(b){this.$padding=b,this.$textLayer.setPadding(b),this.$cursorLayer.setPadding(b),this.$markerFront.setPadding(b),this.$markerBack.setPadding(b),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(b,x,o,d){var $=this.scrollMargin;$.top=b|0,$.bottom=x|0,$.right=d|0,$.left=o|0,$.v=$.top+$.bottom,$.h=$.left+$.right,$.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-$.top),this.updateFull()},this.setMargin=function(b,x,o,d){var $=this.margin;$.top=b|0,$.bottom=x|0,$.right=d|0,$.left=o|0,$.v=$.top+$.bottom,$.h=$.left+$.right,this.$updateCachedSize(!0,this.gutterWidth,this.$size.width,this.$size.height),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(b){this.setOption("hScrollBarAlwaysVisible",b)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(b){this.setOption("vScrollBarAlwaysVisible",b)},this.$updateScrollBarV=function(){var b=this.layerConfig.maxHeight,x=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(b-=(x-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>b-x&&(b=this.scrollTop+x,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(b+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(b,x){if(this.$changes&&(b|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!b&&!x){this.$changes|=b;return}if(this.$size.$dirty)return this.$changes|=b,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender",b),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var o=this.layerConfig;if(b&this.CHANGE_FULL||b&this.CHANGE_SIZE||b&this.CHANGE_TEXT||b&this.CHANGE_LINES||b&this.CHANGE_SCROLL||b&this.CHANGE_H_SCROLL){if(b|=this.$computeLayerConfig()|this.$loop.clear(),o.firstRow!=this.layerConfig.firstRow&&o.firstRowScreen==this.layerConfig.firstRowScreen){var d=this.scrollTop+(o.firstRow-this.layerConfig.firstRow)*this.lineHeight;d>0&&(this.scrollTop=d,b=b|this.CHANGE_SCROLL,b|=this.$computeLayerConfig()|this.$loop.clear())}o=this.layerConfig,this.$updateScrollBarV(),b&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),p.translate(this.content,-this.scrollLeft,-o.offset);var $=o.width+2*this.$padding+"px",k=o.minHeight+"px";p.setStyle(this.content.style,"width",$),p.setStyle(this.content.style,"height",k)}if(b&this.CHANGE_H_SCROLL&&(p.translate(this.content,-this.scrollLeft,-o.offset),this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left"),b&this.CHANGE_FULL){this.$changedLines=null,this.$textLayer.update(o),this.$showGutter&&this.$gutterLayer.update(o),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(o),this.$markerBack.update(o),this.$markerFront.update(o),this.$cursorLayer.update(o),this.$moveTextAreaToCursor(),this._signal("afterRender",b);return}if(b&this.CHANGE_SCROLL){this.$changedLines=null,b&this.CHANGE_TEXT||b&this.CHANGE_LINES?this.$textLayer.update(o):this.$textLayer.scrollLines(o),this.$showGutter&&(b&this.CHANGE_GUTTER||b&this.CHANGE_LINES?this.$gutterLayer.update(o):this.$gutterLayer.scrollLines(o)),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(o),this.$markerBack.update(o),this.$markerFront.update(o),this.$cursorLayer.update(o),this.$moveTextAreaToCursor(),this._signal("afterRender",b);return}b&this.CHANGE_TEXT?(this.$changedLines=null,this.$textLayer.update(o),this.$showGutter&&this.$gutterLayer.update(o),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(o)):b&this.CHANGE_LINES?((this.$updateLines()||b&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(o),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(o)):b&this.CHANGE_TEXT||b&this.CHANGE_GUTTER?(this.$showGutter&&this.$gutterLayer.update(o),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(o)):b&this.CHANGE_CURSOR&&(this.$highlightGutterLine&&this.$gutterLayer.updateLineHighlight(o),this.$customScrollbar&&this.$scrollDecorator.$updateDecorators(o)),b&this.CHANGE_CURSOR&&(this.$cursorLayer.update(o),this.$moveTextAreaToCursor()),b&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(o),b&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(o),this._signal("afterRender",b)},this.$autosize=function(){var b=this.session.getScreenLength()*this.lineHeight,x=this.$maxLines*this.lineHeight,o=Math.min(x,Math.max((this.$minLines||1)*this.lineHeight,b))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(o+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&o>this.$maxPixelHeight&&(o=this.$maxPixelHeight);var d=o<=2*this.lineHeight,$=!d&&b>x;if(o!=this.desiredHeight||this.$size.height!=this.desiredHeight||$!=this.$vScroll){$!=this.$vScroll&&(this.$vScroll=$,this.scrollBarV.setVisible($));var k=this.container.clientWidth;this.container.style.height=o+"px",this.$updateCachedSize(!0,this.$gutterWidth,k,o),this.desiredHeight=o,this._signal("autosize")}},this.$computeLayerConfig=function(){var b=this.session,x=this.$size,o=x.height<=2*this.lineHeight,d=this.session.getScreenLength(),$=d*this.lineHeight,k=this.$getLongestLine(),_=!o&&(this.$hScrollBarAlwaysVisible||x.scrollerWidth-k-2*this.$padding<0),L=this.$horizScroll!==_;L&&(this.$horizScroll=_,this.scrollBarH.setVisible(_));var T=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var F=x.scrollerHeight+this.lineHeight,I=!this.$maxLines&&this.$scrollPastEnd?(x.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;$+=I;var B=this.scrollMargin;this.session.setScrollTop(Math.max(-B.top,Math.min(this.scrollTop,$-x.scrollerHeight+B.bottom))),this.session.setScrollLeft(Math.max(-B.left,Math.min(this.scrollLeft,k+2*this.$padding-x.scrollerWidth+B.right)));var H=!o&&(this.$vScrollBarAlwaysVisible||x.scrollerHeight-$+I<0||this.scrollTop>B.top),z=T!==H;z&&(this.$vScroll=H,this.scrollBarV.setVisible(H));var U=this.scrollTop%this.lineHeight,D=Math.ceil(F/this.lineHeight)-1,P=Math.max(0,Math.round((this.scrollTop-U)/this.lineHeight)),N=P+D,j,Y,V=this.lineHeight;P=b.screenToDocumentRow(P,0);var J=b.getFoldLine(P);J&&(P=J.start.row),j=b.documentToScreenRow(P,0),Y=b.getRowLength(P)*V,N=Math.min(b.screenToDocumentRow(N,0),b.getLength()-1),F=x.scrollerHeight+b.getRowLength(N)*V+Y,U=this.scrollTop-j*V;var X=0;return(this.layerConfig.width!=k||L)&&(X=this.CHANGE_H_SCROLL),(L||z)&&(X|=this.$updateCachedSize(!0,this.gutterWidth,x.width,x.height),this._signal("scrollbarVisibilityChanged"),z&&(k=this.$getLongestLine())),this.layerConfig={width:k,padding:this.$padding,firstRow:P,firstRowScreen:j,lastRow:N,lineHeight:V,characterWidth:this.characterWidth,minHeight:F,maxHeight:$,offset:U,gutterOffset:V?Math.max(0,Math.ceil((U+x.height-x.scrollerHeight)/V)):0,height:this.$size.scrollerHeight},this.session.$bidiHandler&&this.session.$bidiHandler.setContentWidth(k-this.$padding),X},this.$updateLines=function(){if(this.$changedLines){var b=this.$changedLines.firstRow,x=this.$changedLines.lastRow;this.$changedLines=null;var o=this.layerConfig;if(!(b>o.lastRow+1)&&!(x<o.firstRow)){if(x===1/0){this.$showGutter&&this.$gutterLayer.update(o),this.$textLayer.update(o);return}return this.$textLayer.updateLines(o,b,x),!0}}},this.$getLongestLine=function(){var b=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(b+=1),this.$textLayer&&b>this.$textLayer.MAX_LINE_LENGTH&&(b=this.$textLayer.MAX_LINE_LENGTH+30),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(b*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(b,x){this.$gutterLayer.addGutterDecoration(b,x)},this.removeGutterDecoration=function(b,x){this.$gutterLayer.removeGutterDecoration(b,x)},this.updateBreakpoints=function(b){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(b){this.$gutterLayer.setAnnotations(b),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(b,x,o){this.scrollCursorIntoView(b,o),this.scrollCursorIntoView(x,o)},this.scrollCursorIntoView=function(b,x,o){if(this.$size.scrollerHeight!==0){var d=this.$cursorLayer.getPixelPosition(b),$=d.left,k=d.top,_=o&&o.top||0,L=o&&o.bottom||0;this.$scrollAnimation&&(this.$stopAnimation=!0);var T=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;T+_>k?(x&&T+_>k+this.lineHeight&&(k-=x*this.$size.scrollerHeight),k===0&&(k=-this.scrollMargin.top),this.session.setScrollTop(k)):T+this.$size.scrollerHeight-L<k+this.lineHeight&&(x&&T+this.$size.scrollerHeight-L<k-this.lineHeight&&(k+=x*this.$size.scrollerHeight),this.session.setScrollTop(k+this.lineHeight+L-this.$size.scrollerHeight));var F=this.scrollLeft,I=2*this.layerConfig.characterWidth;$-I<F?($-=I,$<this.$padding+I&&($=-this.scrollMargin.left),this.session.setScrollLeft($)):($+=I,F+this.$size.scrollerWidth<$+this.characterWidth?this.session.setScrollLeft(Math.round($+this.characterWidth-this.$size.scrollerWidth)):F<=this.$padding&&$-F<this.characterWidth&&this.session.setScrollLeft(0))}},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(b){this.session.setScrollTop(b*this.lineHeight)},this.alignCursor=function(b,x){typeof b=="number"&&(b={row:b,column:0});var o=this.$cursorLayer.getPixelPosition(b),d=this.$size.scrollerHeight-this.lineHeight,$=o.top-d*(x||0);return this.session.setScrollTop($),$},this.STEPS=8,this.$calcSteps=function(b,x){var o=0,d=this.STEPS,$=[],k=function(_,L,T){return T*(Math.pow(_-1,3)+1)+L};for(o=0;o<d;++o)$.push(k(o/this.STEPS,b,x-b));return $},this.scrollToLine=function(b,x,o,d){var $=this.$cursorLayer.getPixelPosition({row:b,column:0}),k=$.top;x&&(k-=this.$size.scrollerHeight/2);var _=this.scrollTop;this.session.setScrollTop(k),o!==!1&&this.animateScrolling(_,d)},this.animateScrolling=function(b,x){var o=this.scrollTop;if(!this.$animatedScroll)return;var d=this;if(b==o)return;if(this.$scrollAnimation){var $=this.$scrollAnimation.steps;if($.length&&(b=$[0],b==o))return}var k=d.$calcSteps(b,o);this.$scrollAnimation={from:b,to:o,steps:k},clearInterval(this.$timer),d.session.setScrollTop(k.shift()),d.session.$scrollTop=o;function _(){d.$timer=clearInterval(d.$timer),d.$scrollAnimation=null,d.$stopAnimation=!1,x&&x()}this.$timer=setInterval(function(){if(d.$stopAnimation){_();return}if(!d.session)return clearInterval(d.$timer);k.length?(d.session.setScrollTop(k.shift()),d.session.$scrollTop=o):o!=null?(d.session.$scrollTop=-1,d.session.setScrollTop(o),o=null):_()},10)},this.scrollToY=function(b){this.scrollTop!==b&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=b)},this.scrollToX=function(b){this.scrollLeft!==b&&(this.scrollLeft=b),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(b,x){this.session.setScrollTop(x),this.session.setScrollLeft(b)},this.scrollBy=function(b,x){x&&this.session.setScrollTop(this.session.getScrollTop()+x),b&&this.session.setScrollLeft(this.session.getScrollLeft()+b)},this.isScrollableBy=function(b,x){if(x<0&&this.session.getScrollTop()>=1-this.scrollMargin.top||x>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||b<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||b>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(b,x){var o;if(this.$hasCssTransforms){o={top:0,left:0};var d=this.$fontMetrics.transformCoordinates([b,x]);b=d[1]-this.gutterWidth-this.margin.left,x=d[0]}else o=this.scroller.getBoundingClientRect();var $=b+this.scrollLeft-o.left-this.$padding,k=$/this.characterWidth,_=Math.floor((x+this.scrollTop-o.top)/this.lineHeight),L=this.$blockCursor?Math.floor(k):Math.round(k);return{row:_,column:L,side:k-L>0?1:-1,offsetX:$}},this.screenToTextCoordinates=function(b,x){var o;if(this.$hasCssTransforms){o={top:0,left:0};var d=this.$fontMetrics.transformCoordinates([b,x]);b=d[1]-this.gutterWidth-this.margin.left,x=d[0]}else o=this.scroller.getBoundingClientRect();var $=b+this.scrollLeft-o.left-this.$padding,k=$/this.characterWidth,_=this.$blockCursor?Math.floor(k):Math.round(k),L=Math.floor((x+this.scrollTop-o.top)/this.lineHeight);return this.session.screenToDocumentPosition(L,Math.max(_,0),$)},this.textToScreenCoordinates=function(b,x){var o=this.scroller.getBoundingClientRect(),d=this.session.documentToScreenPosition(b,x),$=this.$padding+(this.session.$bidiHandler.isBidiRow(d.row,b)?this.session.$bidiHandler.getPosLeft(d.column):Math.round(d.column*this.characterWidth)),k=d.row*this.lineHeight;return{pageX:o.left+$-this.scrollLeft,pageY:o.top+k-this.scrollTop}},this.visualizeFocus=function(){p.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){p.removeCssClass(this.container,"ace_focus")},this.showComposition=function(b){this.$composition=b,b.cssText||(b.cssText=this.textarea.style.cssText),b.useTextareaForIME==null&&(b.useTextareaForIME=this.$useTextareaForIME),this.$useTextareaForIME?(p.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor(),this.$cursorLayer.element.style.display="none"):b.markerId=this.session.addMarker(b.markerRange,"ace_composition_marker","text")},this.setCompositionText=function(b){var x=this.session.selection.cursor;this.addToken(b,"composition_placeholder",x.row,x.column),this.$moveTextAreaToCursor()},this.hideComposition=function(){if(this.$composition){this.$composition.markerId&&this.session.removeMarker(this.$composition.markerId),p.removeCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText=this.$composition.cssText;var b=this.session.selection.cursor;this.removeExtraToken(b.row,b.column),this.$composition=null,this.$cursorLayer.element.style.display=""}},this.setGhostText=function(b,x){var o=this.session.selection.cursor,d=x||{row:o.row,column:o.column};this.removeGhostText();var $=b.split(` `);this.addToken($[0],"ghost_text",d.row,d.column),this.$ghostText={text:b,position:{row:d.row,column:d.column}},$.length>1&&(this.$ghostTextWidget={text:$.slice(1).join(` `),row:d.row,column:d.column,className:"ace_ghost_text"},this.session.widgetManager.addLineWidget(this.$ghostTextWidget))},this.removeGhostText=function(){if(this.$ghostText){var b=this.$ghostText.position;this.removeExtraToken(b.row,b.column),this.$ghostTextWidget&&(this.session.widgetManager.removeLineWidget(this.$ghostTextWidget),this.$ghostTextWidget=null),this.$ghostText=null}},this.addToken=function(b,x,o,d){var $=this.session;$.bgTokenizer.lines[o]=null;var k={type:x,value:b},_=$.getTokens(o);if(d==null)_.push(k);else for(var L=0,T=0;T<_.length;T++){var F=_[T];if(L+=F.value.length,d<=L){var I=F.value.length-(L-d),B=F.value.slice(0,I),H=F.value.slice(I);_.splice(T,1,{type:F.type,value:B},k,{type:F.type,value:H});break}}this.updateLines(o,o)},this.removeExtraToken=function(b,x){this.updateLines(b,b)},this.setTheme=function(b,x){var o=this;if(this.$themeId=b,o._dispatchEvent("themeChange",{theme:b}),!b||typeof b=="string"){var d=b||this.$options.theme.initialValue;c.loadModule(["theme",d],$)}else $(b);function $(k){if(o.$themeId!=b)return x&&x();if(!k||!k.cssClass)throw new Error("couldn't load module "+b+" or it didn't call define");k.$id&&(o.$themeId=k.$id),p.importCssString(k.cssText,k.cssClass,o.container),o.theme&&p.removeCssClass(o.container,o.theme.cssClass);var _="padding"in k?k.padding:"padding"in(o.theme||{})?4:o.$padding;o.$padding&&_!=o.$padding&&o.setPadding(_),o.$theme=k.cssClass,o.theme=k,p.addCssClass(o.container,k.cssClass),p.setCssClass(o.container,"ace_dark",k.isDark),o.$size&&(o.$size.width=0,o.$updateSizeAsync()),o._dispatchEvent("themeLoaded",{theme:k}),x&&x()}},this.getTheme=function(){return this.$themeId},this.setStyle=function(b,x){p.setCssClass(this.container,b,x!==!1)},this.unsetStyle=function(b){p.removeCssClass(this.container,b)},this.setCursorStyle=function(b){p.setStyle(this.scroller.style,"cursor",b)},this.setMouseCursor=function(b){p.setStyle(this.scroller.style,"cursor",b)},this.attachToShadowRoot=function(){p.importCssString(S,"ace_editor.css",this.container)},this.destroy=function(){this.freeze(),this.$fontMetrics.destroy(),this.$cursorLayer.destroy(),this.removeAllListeners(),this.container.textContent=""},this.$updateCustomScrollbar=function(b){var x=this;this.$horizScroll=this.$vScroll=null,this.scrollBarV.element.remove(),this.scrollBarH.element.remove(),this.$scrollDecorator&&delete this.$scrollDecorator,b===!0?(this.scrollBarV=new l(this.container,this),this.scrollBarH=new r(this.container,this),this.scrollBarV.setHeight(this.$size.scrollerHeight),this.scrollBarH.setWidth(this.$size.scrollerWidth),this.scrollBarV.addEventListener("scroll",function(o){x.$scrollAnimation||x.session.setScrollTop(o.data-x.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(o){x.$scrollAnimation||x.session.setScrollLeft(o.data-x.scrollMargin.left)}),this.$scrollDecorator=new C(this.scrollBarV,this),this.$scrollDecorator.$updateDecorators()):(this.scrollBarV=new n(this.container,this),this.scrollBarH=new i(this.container,this),this.scrollBarV.addEventListener("scroll",function(o){x.$scrollAnimation||x.session.setScrollTop(o.data-x.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(o){x.$scrollAnimation||x.session.setScrollLeft(o.data-x.scrollMargin.left)}))}}).call(A.prototype),c.defineOptions(A.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(b){this.$textLayer.setShowInvisibles(b)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(b){typeof b=="number"&&(this.$printMarginColumn=b),this.$showPrintMargin=!!b,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(b){this.$gutter.style.display=b?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(b){p.setCssClass(this.$gutter,"ace_fade-fold-widgets",b)},initialValue:!1},showFoldWidgets:{set:function(b){this.$gutterLayer.setShowFoldWidgets(b),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(b){this.$textLayer.setDisplayIndentGuides(b)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightIndentGuides:{set:function(b){this.$textLayer.setHighlightIndentGuides(b)==!0?this.$textLayer.$highlightIndentGuide():this.$textLayer.$clearActiveIndentGuide(this.$textLayer.$lines.cells)},initialValue:!0},highlightGutterLine:{set:function(b){this.$gutterLayer.setHighlightGutterLine(b),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},hScrollBarAlwaysVisible:{set:function(b){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(b){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(b){typeof b=="number"&&(b=b+"px"),this.container.style.fontSize=b,this.updateFontSize()},initialValue:12},fontFamily:{set:function(b){this.container.style.fontFamily=b,this.updateFontSize()}},maxLines:{set:function(b){this.updateFull()}},minLines:{set:function(b){this.$minLines<562949953421311||(this.$minLines=0),this.updateFull()}},maxPixelHeight:{set:function(b){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(b){b=+b||0,this.$scrollPastEnd!=b&&(this.$scrollPastEnd=b,this.$loop.schedule(this.CHANGE_SCROLL))},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(b){this.$gutterLayer.$fixedWidth=!!b,this.$loop.schedule(this.CHANGE_GUTTER)}},customScrollbar:{set:function(b){this.$updateCustomScrollbar(b)},initialValue:!1},theme:{set:function(b){this.setTheme(b)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0},hasCssTransforms:{},useTextareaForIME:{initialValue:!u.isMobile&&!u.isIE}}),y.VirtualRenderer=A}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(w,y,M){var f=w("../lib/oop"),p=w("../lib/net"),c=w("../lib/event_emitter").EventEmitter,s=w("../config");function a(n){var r="importScripts('"+p.qualifyURL(n)+"');";try{return new Blob([r],{type:"application/javascript"})}catch{var l=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,h=new l;return h.append(r),h.getBlob("application/javascript")}}function t(n){if(typeof Worker>"u")return{postMessage:function(){},terminate:function(){}};if(s.get("loadWorkerFromBlob")){var r=a(n),l=window.URL||window.webkitURL,h=l.createObjectURL(r);return new Worker(h)}return new Worker(n)}var e=function(n){n.postMessage||(n=this.$createWorkerFromOldConfig.apply(this,arguments)),this.$worker=n,this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){f.implement(this,c),this.$createWorkerFromOldConfig=function(n,r,l,h,m){if(w.nameToUrl&&!w.toUrl&&(w.toUrl=w.nameToUrl),s.get("packaged")||!w.toUrl)h=h||s.moduleUrl(r,"worker");else{var v=this.$normalizePath;h=h||v(w.toUrl("ace/worker/worker.js",null,"_"));var S={};n.forEach(function(C){S[C]=v(w.toUrl(C,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}return this.$worker=t(h),m&&this.send("importScripts",m),this.$worker.postMessage({init:!0,tlns:S,module:r,classname:l}),this.$worker},this.onMessage=function(n){var r=n.data;switch(r.type){case"event":this._signal(r.name,{data:r.data});break;case"call":var l=this.callbacks[r.id];l&&(l(r.data),delete this.callbacks[r.id]);break;case"error":this.reportError(r.data);break;case"log":window.console&&console.log&&console.log.apply(console,r.data);break}},this.reportError=function(n){window.console&&console.error&&console.error(n)},this.$normalizePath=function(n){return p.qualifyURL(n)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(n,r){this.$worker.postMessage({command:n,args:r})},this.call=function(n,r,l){if(l){var h=this.callbackId++;this.callbacks[h]=l,r.push(h)}this.send(n,r)},this.emit=function(n,r){try{r.data&&r.data.err&&(r.data.err={message:r.data.err.message,stack:r.data.err.stack,code:r.data.err.code}),this.$worker&&this.$worker.postMessage({event:n,data:{data:r.data}})}catch(l){console.error(l.stack)}},this.attachToDocument=function(n){this.$doc&&this.terminate(),this.$doc=n,this.call("setValue",[n.getValue()]),n.on("change",this.changeListener,!0)},this.changeListener=function(n){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),n.action=="insert"?this.deltaQueue.push(n.start,n.lines):this.deltaQueue.push(n.start,n.end)},this.$sendDeltaQueue=function(){var n=this.deltaQueue;n&&(this.deltaQueue=null,n.length>50&&n.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:n}))}}).call(e.prototype);var i=function(n,r,l){var h=null,m=!1,v=Object.create(c),S=[],C=new e({messageBuffer:S,terminate:function(){},postMessage:function(g){S.push(g),h&&(m?setTimeout(u):u())}});C.setEmitSync=function(g){m=g};var u=function(){var g=S.shift();g.command?h[g.command].apply(h,g.args):g.event&&v._signal(g.event,g.data)};return v.postMessage=function(g){C.onMessage({data:g})},v.callback=function(g,A){this.postMessage({type:"call",id:A,data:g})},v.emit=function(g,A){this.postMessage({type:"event",name:g,data:A})},s.loadModule(["worker",r],function(g){for(h=new g[l](v);S.length;)u()}),C};y.UIWorkerClient=i,y.WorkerClient=e,y.createWorker=t}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(w,y,M){var f=w("./range").Range,p=w("./lib/event_emitter").EventEmitter,c=w("./lib/oop"),s=function(a,t,e,i,n,r){var l=this;this.length=t,this.session=a,this.doc=a.getDocument(),this.mainClass=n,this.othersClass=r,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate,!0),this.$others=i,this.$onCursorChange=function(){setTimeout(function(){l.onCursorChange()})},this.$pos=e;var h=a.getUndoManager().$undoStack||a.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=h.length,this.setup(),a.selection.on("changeCursor",this.$onCursorChange)};(function(){c.implement(this,p),this.setup=function(){var a=this,t=this.doc,e=this.session;this.selectionBefore=e.selection.toJSON(),e.selection.inMultiSelectMode&&e.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=e.addMarker(new f(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),a.others.push(r)}),e.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var a=this.session,t=this;this.othersActive=!0,this.others.forEach(function(e){e.markerId=a.addMarker(new f(e.row,e.column,e.row,e.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var a=0;a<this.others.length;a++)this.session.removeMarker(this.others[a].markerId)}},this.onUpdate=function(a){if(this.$updating)return this.updateAnchors(a);var t=a;if(t.start.row===t.end.row&&t.start.row===this.pos.row){this.$updating=!0;var e=a.action==="insert"?t.end.column-t.start.column:t.start.column-t.end.column,i=t.start.column>=this.pos.column&&t.start.column<=this.pos.column+this.length+1,n=t.start.column-this.pos.column;if(this.updateAnchors(a),i&&(this.length+=e),i&&!this.session.$fromUndo){if(a.action==="insert")for(var r=this.others.length-1;r>=0;r--){var l=this.others[r],h={row:l.row,column:l.column+n};this.doc.insertMergedLines(h,a.lines)}else if(a.action==="remove")for(var r=this.others.length-1;r>=0;r--){var l=this.others[r],h={row:l.row,column:l.column+n};this.doc.remove(new f(h.row,h.column,h.row,h.column-e))}}this.$updating=!1,this.updateMarkers()}},this.updateAnchors=function(a){this.pos.onChange(a);for(var t=this.others.length;t--;)this.others[t].onChange(a);this.updateMarkers()},this.updateMarkers=function(){if(!this.$updating){var a=this,t=this.session,e=function(n,r){t.removeMarker(n.markerId),n.markerId=t.addMarker(new f(n.row,n.column,n.row,n.column+a.length),r,null,!1)};e(this.pos,this.mainClass);for(var i=this.others.length;i--;)e(this.others[i],this.othersClass)}},this.onCursorChange=function(a){if(!(this.$updating||!this.session)){var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",a)):(this.hideOtherMarkers(),this._emit("cursorLeave",a))}},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.off("change",this.$onUpdate),this.session.selection.off("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth!==-1){for(var a=this.session.getUndoManager(),t=(a.$undoStack||a.$undostack).length-this.$undoStackDepth,e=0;e<t;e++)a.undo(this.session,!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}}).call(s.prototype),y.PlaceHolder=s}),ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(w,y,M){var f=w("../lib/event"),p=w("../lib/useragent");function c(a,t){return a.row==t.row&&a.column==t.column}function s(a){var t=a.domEvent,e=t.altKey,i=t.shiftKey,n=t.ctrlKey,r=a.getAccelKey(),l=a.getButton();if(n&&p.isMac&&(l=t.button),a.editor.inMultiSelectMode&&l==2){a.editor.textInput.onContextMenu(a.domEvent);return}if(!n&&!e&&!r){l===0&&a.editor.inMultiSelectMode&&a.editor.exitMultiSelectMode();return}if(l===0){var h=a.editor,m=h.selection,v=h.inMultiSelectMode,S=a.getDocumentPosition(),C=m.getCursor(),u=a.inSelection()||m.isEmpty()&&c(S,C),g=a.x,A=a.y,b=function(z){g=z.clientX,A=z.clientY},x=h.session,o=h.renderer.pixelToScreenCoordinates(g,A),d=o,$;if(h.$mouseHandler.$enableJumpToDef)n&&e||r&&e?$=i?"block":"add":e&&h.$blockSelectEnabled&&($="block");else if(r&&!e){if($="add",!v&&i)return}else e&&h.$blockSelectEnabled&&($="block");if($&&p.isMac&&t.ctrlKey&&h.$mouseHandler.cancelContextMenu(),$=="add"){if(!v&&u)return;if(!v){var k=m.toOrientedRange();h.addSelectionMarker(k)}var _=m.rangeList.rangeAtPoint(S);h.inVirtualSelectionMode=!0,i&&(_=null,k=m.ranges[0]||k,h.removeSelectionMarker(k)),h.once("mouseup",function(){var z=m.toOrientedRange();_&&z.isEmpty()&&c(_.cursor,z.cursor)?m.substractPoint(z.cursor):(i?m.substractPoint(k.cursor):k&&(h.removeSelectionMarker(k),m.addRange(k)),m.addRange(z)),h.inVirtualSelectionMode=!1})}else if($=="block"){a.stop(),h.inVirtualSelectionMode=!0;var L,T=[],F=function(){var z=h.renderer.pixelToScreenCoordinates(g,A),U=x.screenToDocumentPosition(z.row,z.column,z.offsetX);c(d,z)&&c(U,m.lead)||(d=z,h.selection.moveToPosition(U),h.renderer.scrollCursorIntoView(),h.removeSelectionMarkers(T),T=m.rectangularRangeBlock(d,o),h.$mouseHandler.$clickSelection&&T.length==1&&T[0].isEmpty()&&(T[0]=h.$mouseHandler.$clickSelection.clone()),T.forEach(h.addSelectionMarker,h),h.updateSelectionMarkers())};v&&!r?m.toSingleRange():!v&&r&&(L=m.toOrientedRange(),h.addSelectionMarker(L)),i?o=x.documentToScreenPosition(m.lead):m.moveToPosition(S),d={row:-1,column:-1};var I=function(z){F(),clearInterval(H),h.removeSelectionMarkers(T),T.length||(T=[m.toOrientedRange()]),L&&(h.removeSelectionMarker(L),m.toSingleRange(L));for(var U=0;U<T.length;U++)m.addRange(T[U]);h.inVirtualSelectionMode=!1,h.$mouseHandler.$clickSelection=null},B=F;f.capture(h.container,b,I);var H=setInterval(function(){B()},20);return a.preventDefault()}}}y.onMouseDown=s}),ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(w,y,M){y.defaultCommands=[{name:"addCursorAbove",description:"Add cursor above",exec:function(p){p.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",description:"Add cursor below",exec:function(p){p.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",description:"Add cursor above (skip current)",exec:function(p){p.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",description:"Add cursor below (skip current)",exec:function(p){p.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",description:"Select more before",exec:function(p){p.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",description:"Select more after",exec:function(p){p.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",description:"Select next before",exec:function(p){p.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",description:"Select next after",exec:function(p){p.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"toggleSplitSelectionIntoLines",description:"Split selection into lines",exec:function(p){p.multiSelect.rangeCount>1?p.multiSelect.joinSelections():p.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"splitSelectionIntoLines",description:"Split into lines",exec:function(p){p.multiSelect.splitIntoLines()},readOnly:!0},{name:"alignCursors",description:"Align cursors",exec:function(p){p.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",description:"Find all",exec:function(p){p.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],y.multiSelectCommands=[{name:"singleSelection",description:"Single selection",bindKey:"esc",exec:function(p){p.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(p){return p&&p.inMultiSelectMode}}];var f=w("../keyboard/hash_handler").HashHandler;y.keyboardHandler=new f(y.multiSelectCommands)}),ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(w,y,M){var f=w("./range_list").RangeList,p=w("./range").Range,c=w("./selection").Selection,s=w("./mouse/multi_select_handler").onMouseDown,a=w("./lib/event"),t=w("./lib/lang"),e=w("./commands/multi_select_commands");y.commands=e.defaultCommands.concat(e.multiSelectCommands);var i=w("./search").Search,n=new i;function r(C,u,g){return n.$options.wrap=!0,n.$options.needle=u,n.$options.backwards=g==-1,n.find(C)}var l=w("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(l.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(C,u){if(C){if(!this.inMultiSelectMode&&this.rangeCount===0){var g=this.toOrientedRange();if(this.rangeList.add(g),this.rangeList.add(C),this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),u||this.fromOrientedRange(C);this.rangeList.removeAll(),this.rangeList.add(g),this.$onAddRange(g)}C.cursor||(C.cursor=C.end);var A=this.rangeList.add(C);return this.$onAddRange(C),A.length&&this.$onRemoveRange(A),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),u||this.fromOrientedRange(C)}},this.toSingleRange=function(C){C=C||this.ranges[0];var u=this.rangeList.removeAll();u.length&&this.$onRemoveRange(u),C&&this.fromOrientedRange(C)},this.substractPoint=function(C){var u=this.rangeList.substractPoint(C);if(u)return this.$onRemoveRange(u),u[0]},this.mergeOverlappingRanges=function(){var C=this.rangeList.merge();C.length&&this.$onRemoveRange(C)},this.$onAddRange=function(C){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(C),this._signal("addRange",{range:C})},this.$onRemoveRange=function(C){if(this.rangeCount=this.rangeList.ranges.length,this.rangeCount==1&&this.inMultiSelectMode){var u=this.rangeList.ranges.pop();C.push(u),this.rangeCount=0}for(var g=C.length;g--;){var A=this.ranges.indexOf(C[g]);this.ranges.splice(A,1)}this._signal("removeRange",{ranges:C}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),u=u||this.ranges[0],u&&!u.isEqual(this.getRange())&&this.fromOrientedRange(u)},this.$initRangeList=function(){this.rangeList||(this.rangeList=new f,this.ranges=[],this.rangeCount=0)},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){for(var C=this.ranges.length?this.ranges:[this.getRange()],u=[],g=0;g<C.length;g++){var A=C[g],b=A.start.row,x=A.end.row;if(b===x)u.push(A.clone());else{for(u.push(new p(b,A.start.column,b,this.session.getLine(b).length));++b<x;)u.push(this.getLineRange(b,!0));u.push(new p(x,0,x,A.end.column))}g==0&&!this.isBackwards()&&(u=u.reverse())}this.toSingleRange();for(var g=u.length;g--;)this.addRange(u[g])},this.joinSelections=function(){var C=this.rangeList.ranges,u=C[C.length-1],g=p.fromPoints(C[0].start,u.end);this.toSingleRange(),this.setSelectionRange(g,u.cursor==u.start)},this.toggleBlockSelection=function(){if(this.rangeCount>1){var C=this.rangeList.ranges,u=C[C.length-1],g=p.fromPoints(C[0].start,u.end);this.toSingleRange(),this.setSelectionRange(g,u.cursor==u.start)}else{var A=this.session.documentToScreenPosition(this.cursor),b=this.session.documentToScreenPosition(this.anchor),x=this.rectangularRangeBlock(A,b);x.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(C,u,g){var A=[],b=C.column<u.column;if(b)var x=C.column,o=u.column,d=C.offsetX,$=u.offsetX;else var x=u.column,o=C.column,d=u.offsetX,$=C.offsetX;var k=C.row<u.row;if(k)var _=C.row,L=u.row;else var _=u.row,L=C.row;x<0&&(x=0),_<0&&(_=0),_==L&&(g=!0);for(var T,F=_;F<=L;F++){var I=p.fromPoints(this.session.screenToDocumentPosition(F,x,d),this.session.screenToDocumentPosition(F,o,$));if(I.isEmpty()){if(T&&m(I.end,T))break;T=I.end}I.cursor=b?I.start:I.end,A.push(I)}if(k&&A.reverse(),!g){for(var B=A.length-1;A[B].isEmpty()&&B>0;)B--;if(B>0)for(var H=0;A[H].isEmpty();)H++;for(var z=B;z>=H;z--)A[z].isEmpty()&&A.splice(z,1)}return A}}.call(c.prototype);var h=w("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(C){C.cursor||(C.cursor=C.end);var u=this.getSelectionStyle();return C.marker=this.session.addMarker(C,"ace_selection",u),this.session.$selectionMarkers.push(C),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,C},this.removeSelectionMarker=function(C){if(C.marker){this.session.removeMarker(C.marker);var u=this.session.$selectionMarkers.indexOf(C);u!=-1&&this.session.$selectionMarkers.splice(u,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length}},this.removeSelectionMarkers=function(C){for(var u=this.session.$selectionMarkers,g=C.length;g--;){var A=C[g];if(A.marker){this.session.removeMarker(A.marker);var b=u.indexOf(A);b!=-1&&u.splice(b,1)}}this.session.selectionMarkerCount=u.length},this.$onAddRange=function(C){this.addSelectionMarker(C.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(C){this.removeSelectionMarkers(C.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(C){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(e.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(C){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(e.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(C){var u=C.command,g=C.editor;if(g.multiSelect){if(u.multiSelectAction)u.multiSelectAction=="forEach"?A=g.forEachSelection(u,C.args):u.multiSelectAction=="forEachLine"?A=g.forEachSelection(u,C.args,!0):u.multiSelectAction=="single"?(g.exitMultiSelectMode(),A=u.exec(g,C.args||{})):A=u.multiSelectAction(g,C.args||{});else{var A=u.exec(g,C.args||{});g.multiSelect.addRange(g.multiSelect.toOrientedRange()),g.multiSelect.mergeOverlappingRanges()}return A}},this.forEachSelection=function(C,u,g){if(!this.inVirtualSelectionMode){var A=g&&g.keepOrder,b=g==!0||g&&g.$byLines,x=this.session,o=this.selection,d=o.rangeList,$=(A?o:d).ranges,k;if(!$.length)return C.exec?C.exec(this,u||{}):C(this,u||{});var _=o._eventRegistry;o._eventRegistry={};var L=new c(x);this.inVirtualSelectionMode=!0;for(var T=$.length;T--;){if(b)for(;T>0&&$[T].start.row==$[T-1].end.row;)T--;L.fromOrientedRange($[T]),L.index=T,this.selection=x.selection=L;var F=C.exec?C.exec(this,u||{}):C(this,u||{});!k&&F!==void 0&&(k=F),L.toOrientedRange($[T])}L.detach(),this.selection=x.selection=o,this.inVirtualSelectionMode=!1,o._eventRegistry=_,o.mergeOverlappingRanges(),o.ranges[0]&&o.fromOrientedRange(o.ranges[0]);var I=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),I&&I.from==I.to&&this.renderer.animateScrolling(I.from),k}},this.exitMultiSelectMode=function(){!this.inMultiSelectMode||this.inVirtualSelectionMode||this.multiSelect.toSingleRange()},this.getSelectedText=function(){var C="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var u=this.multiSelect.rangeList.ranges,g=[],A=0;A<u.length;A++)g.push(this.session.getTextRange(u[A]));var b=this.session.getDocument().getNewLineCharacter();C=g.join(b),C.length==(g.length-1)*b.length&&(C="")}else this.selection.isEmpty()||(C=this.session.getTextRange(this.getSelectionRange()));return C},this.$checkMultiselectChange=function(C,u){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var g=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&u==this.multiSelect.anchor)return;var A=u==this.multiSelect.anchor?g.cursor==g.start?g.end:g.start:g.cursor;A.row!=u.row||this.session.$clipPositionToDocument(A.row,A.column).column!=u.column?this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange()):this.multiSelect.mergeOverlappingRanges()}},this.findAll=function(C,u,g){if(u=u||{},u.needle=C||u.needle,u.needle==null){var A=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();u.needle=this.session.getTextRange(A)}this.$search.set(u);var b=this.$search.findAll(this.session);if(!b.length)return 0;var x=this.multiSelect;g||x.toSingleRange(b[0]);for(var o=b.length;o--;)x.addRange(b[o],!0);return A&&x.rangeList.rangeAtPoint(A.start)&&x.addRange(A,!0),b.length},this.selectMoreLines=function(C,u){var g=this.selection.toOrientedRange(),A=g.cursor==g.end,b=this.session.documentToScreenPosition(g.cursor);this.selection.$desiredColumn&&(b.column=this.selection.$desiredColumn);var x=this.session.screenToDocumentPosition(b.row+C,b.column);if(g.isEmpty())var d=x;else var o=this.session.documentToScreenPosition(A?g.end:g.start),d=this.session.screenToDocumentPosition(o.row+C,o.column);if(A){var $=p.fromPoints(x,d);$.cursor=$.start}else{var $=p.fromPoints(d,x);$.cursor=$.end}if($.desiredColumn=b.column,!this.selection.inMultiSelectMode)this.selection.addRange(g);else if(u)var k=g.cursor;this.selection.addRange($),k&&this.selection.substractPoint(k)},this.transposeSelections=function(C){for(var u=this.session,g=u.multiSelect,A=g.ranges,b=A.length;b--;){var x=A[b];if(x.isEmpty()){var o=u.getWordRange(x.start.row,x.start.column);x.start.row=o.start.row,x.start.column=o.start.column,x.end.row=o.end.row,x.end.column=o.end.column}}g.mergeOverlappingRanges();for(var d=[],b=A.length;b--;){var x=A[b];d.unshift(u.getTextRange(x))}C<0?d.unshift(d.pop()):d.push(d.shift());for(var b=A.length;b--;){var x=A[b],o=x.clone();u.replace(x,d[b]),x.start.row=o.start.row,x.start.column=o.start.column}g.fromOrientedRange(g.ranges[0])},this.selectMore=function(C,u,g){var A=this.session,b=A.multiSelect,x=b.toOrientedRange();if(!(x.isEmpty()&&(x=A.getWordRange(x.start.row,x.start.column),x.cursor=C==-1?x.start:x.end,this.multiSelect.addRange(x),g))){var o=A.getTextRange(x),d=r(A,o,C);d&&(d.cursor=C==-1?d.start:d.end,this.session.unfold(d),this.multiSelect.addRange(d),this.renderer.scrollCursorIntoView(null,.5)),u&&this.multiSelect.substractPoint(x.cursor)}},this.alignCursors=function(){var C=this.session,u=C.multiSelect,g=u.ranges,A=-1,b=g.filter(function(B){if(B.cursor.row==A)return!0;A=B.cursor.row});if(!g.length||b.length==g.length-1){var x=this.selection.getRange(),o=x.start.row,d=x.end.row,$=o==d;if($){var k=this.session.getLength(),_;do _=this.session.getLine(d);while(/[=:]/.test(_)&&++d<k);do _=this.session.getLine(o);while(/[=:]/.test(_)&&--o>0);o<0&&(o=0),d>=k&&(d=k-1)}var L=this.session.removeFullLines(o,d);L=this.$reAlignText(L,$),this.session.insert({row:o,column:0},L.join(` `)+` `),$||(x.start.column=0,x.end.column=L[L.length-1].length),this.selection.setRange(x)}else{b.forEach(function(B){u.substractPoint(B.cursor)});var T=0,F=1/0,I=g.map(function(B){var H=B.cursor,z=C.getLine(H.row),U=z.substr(H.column).search(/\S/g);return U==-1&&(U=0),H.column>T&&(T=H.column),U<F&&(F=U),U});g.forEach(function(B,H){var z=B.cursor,U=T-z.column,D=I[H]-F;U>D?C.insert(z,t.stringRepeat(" ",U-D)):C.remove(new p(z.row,z.column,z.row,z.column-U+D)),B.start.column=B.end.column=T,B.start.row=B.end.row=z.row,B.cursor=B.end}),u.fromOrientedRange(g[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(C,u){var g=!0,A=!0,b,x,o;return C.map(function(L){var T=L.match(/(\s*)(.*?)(\s*)([=:].*)/);return T?b==null?(b=T[1].length,x=T[2].length,o=T[3].length,T):(b+x+o!=T[1].length+T[2].length+T[3].length&&(A=!1),b!=T[1].length&&(g=!1),b>T[1].length&&(b=T[1].length),x<T[2].length&&(x=T[2].length),o>T[3].length&&(o=T[3].length),T):[L]}).map(u?$:g?A?k:$:_);function d(L){return t.stringRepeat(" ",L)}function $(L){return L[2]?d(b)+L[2]+d(x-L[2].length+o)+L[4].replace(/^([=:])\s+/,"$1 "):L[0]}function k(L){return L[2]?d(b+x-L[2].length)+L[2]+d(o)+L[4].replace(/^([=:])\s+/,"$1 "):L[0]}function _(L){return L[2]?d(b)+L[2]+d(o)+L[4].replace(/^([=:])\s+/,"$1 "):L[0]}}}).call(h.prototype);function m(C,u){return C.row==u.row&&C.column==u.column}y.onSessionChange=function(C){var u=C.session;u&&!u.multiSelect&&(u.$selectionMarkers=[],u.selection.$initRangeList(),u.multiSelect=u.selection),this.multiSelect=u&&u.multiSelect;var g=C.oldSession;g&&(g.multiSelect.off("addRange",this.$onAddRange),g.multiSelect.off("removeRange",this.$onRemoveRange),g.multiSelect.off("multiSelect",this.$onMultiSelect),g.multiSelect.off("singleSelect",this.$onSingleSelect),g.multiSelect.lead.off("change",this.$checkMultiselectChange),g.multiSelect.anchor.off("change",this.$checkMultiselectChange)),u&&(u.multiSelect.on("addRange",this.$onAddRange),u.multiSelect.on("removeRange",this.$onRemoveRange),u.multiSelect.on("multiSelect",this.$onMultiSelect),u.multiSelect.on("singleSelect",this.$onSingleSelect),u.multiSelect.lead.on("change",this.$checkMultiselectChange),u.multiSelect.anchor.on("change",this.$checkMultiselectChange)),u&&this.inMultiSelectMode!=u.selection.inMultiSelectMode&&(u.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())};function v(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=y.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),S(C))}function S(C){if(!C.textInput)return;var u=C.textInput.getElement(),g=!1;a.addListener(u,"keydown",function(b){var x=b.keyCode==18&&!(b.ctrlKey||b.shiftKey||b.metaKey);C.$blockSelectEnabled&&x?g||(C.renderer.setMouseCursor("crosshair"),g=!0):g&&A()},C),a.addListener(u,"keyup",A,C),a.addListener(u,"blur",A,C);function A(b){g&&(C.renderer.setMouseCursor(""),g=!1)}}y.MultiSelect=v,w("./config").defineOptions(h.prototype,"editor",{enableMultiselect:{set:function(C){v(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,y,M){var f=w("../../range").Range,p=y.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(c,s,a){var t=c.getLine(a);return this.foldingStartMarker.test(t)?"start":s=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(t)?"end":""},this.getFoldWidgetRange=function(c,s,a){return null},this.indentationBlock=function(c,s,a){var t=/\S/,e=c.getLine(s),i=e.search(t);if(i!=-1){for(var n=a||e.length,r=c.getLength(),l=s,h=s;++s<r;){var m=c.getLine(s).search(t);if(m!=-1){if(m<=i){var v=c.getTokenAt(s,0);if(!v||v.type!=="string")break}h=s}}if(h>l){var S=c.getLine(h).length;return new f(l,n,h,S)}}},this.openingBracketBlock=function(c,s,a,t,e){var i={row:a,column:t+1},n=c.$findClosingBracket(s,i,e);if(n){var r=c.foldWidgets[n.row];return r==null&&(r=c.getFoldWidget(n.row)),r=="start"&&n.row>i.row&&(n.row--,n.column=c.getLine(n.row).length),f.fromPoints(i,n)}},this.closingBracketBlock=function(c,s,a,t,e){var i={row:a,column:t},n=c.$findOpeningBracket(s,i);if(n)return n.column++,i.column--,f.fromPoints(n,i)}}).call(p.prototype)}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(w,y,M){var f=w("../line_widgets").LineWidgets,p=w("../lib/dom"),c=w("../range").Range;function s(t,e,i){for(var n=0,r=t.length-1;n<=r;){var l=n+r>>1,h=i(e,t[l]);if(h>0)n=l+1;else if(h<0)r=l-1;else return l}return-(n+1)}function a(t,e,i){var n=t.getAnnotations().sort(c.comparePoints);if(n.length){var r=s(n,{row:e,column:-1},c.comparePoints);r<0&&(r=-r-1),r>=n.length?r=i>0?0:n.length-1:r===0&&i<0&&(r=n.length-1);var l=n[r];if(!(!l||!i)){if(l.row===e){do l=n[r+=i];while(l&&l.row===e);if(!l)return n.slice()}var h=[];e=l.row;do h[i<0?"unshift":"push"](l),l=n[r+=i];while(l&&l.row==e);return h.length&&h}}}y.showErrorMarker=function(t,e){var i=t.session;i.widgetManager||(i.widgetManager=new f(i),i.widgetManager.attach(t));var n=t.getCursorPosition(),r=n.row,l=i.widgetManager.getWidgetsAtRow(r).filter(function(b){return b.type=="errorMarker"})[0];l?l.destroy():r-=e;var h=a(i,r,e),m;if(h){var v=h[0];n.column=(v.pos&&typeof v.column!="number"?v.pos.sc:v.column)||0,n.row=v.row,m=t.renderer.$gutterLayer.$annotations[n.row]}else{if(l)return;m={text:["Looks good!"],className:"ace_ok"}}t.session.unfold(n.row),t.selection.moveToPosition(n);var S={row:n.row,fixedWidth:!0,coverGutter:!0,el:p.createElement("div"),type:"errorMarker"},C=S.el.appendChild(p.createElement("div")),u=S.el.appendChild(p.createElement("div"));u.className="error_widget_arrow "+m.className;var g=t.renderer.$cursorLayer.getPixelPosition(n).left;u.style.left=g+t.renderer.gutterWidth-5+"px",S.el.className="error_widget_wrapper",C.className="error_widget "+m.className,C.innerHTML=m.text.join("<br>"),C.appendChild(p.createElement("div"));var A=function(b,x,o){if(x===0&&(o==="esc"||o==="return"))return S.destroy(),{command:"null"}};S.destroy=function(){t.$mouseHandler.isMousePressed||(t.keyBinding.removeKeyboardHandler(A),i.widgetManager.removeLineWidget(S),t.off("changeSelection",S.destroy),t.off("changeSession",S.destroy),t.off("mouseup",S.destroy),t.off("change",S.destroy))},t.keyBinding.addKeyboardHandler(A),t.on("changeSelection",S.destroy),t.on("changeSession",S.destroy),t.on("mouseup",S.destroy),t.on("change",S.destroy),t.session.widgetManager.addLineWidget(S),S.el.onmousedown=t.focus.bind(t),t.renderer.scrollCursorIntoView(null,.5,{bottom:S.el.offsetHeight})},p.importCssString(` .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; } `,"error_marker.css",!1)}),ace.define("ace/ace",["require","exports","module","ace/lib/dom","ace/lib/event","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config","ace/loader_build"],function(w,y,M){w("./loader_build")(y);var f=w("./lib/dom"),p=w("./lib/event"),c=w("./range").Range,s=w("./editor").Editor,a=w("./edit_session").EditSession,t=w("./undomanager").UndoManager,e=w("./virtual_renderer").VirtualRenderer;w("./worker/worker_client"),w("./keyboard/hash_handler"),w("./placeholder"),w("./multi_select"),w("./mode/folding/fold_mode"),w("./theme/textmate"),w("./ext/error_marker"),y.config=w("./config"),y.edit=function(i,n){if(typeof i=="string"){var r=i;if(i=document.getElementById(r),!i)throw new Error("ace.edit can't find div #"+r)}if(i&&i.env&&i.env.editor instanceof s)return i.env.editor;var l="";if(i&&/input|textarea/i.test(i.tagName)){var h=i;l=h.value,i=f.createElement("pre"),h.parentNode.replaceChild(i,h)}else i&&(l=i.textContent,i.innerHTML="");var m=y.createEditSession(l),v=new s(new e(i),m,n),S={document:m,editor:v,onResize:v.resize.bind(v,null)};return h&&(S.textarea=h),p.addListener(window,"resize",S.onResize),v.on("destroy",function(){p.removeListener(window,"resize",S.onResize),S.editor.container.env=null}),v.container.env=v.env=S,v},y.createEditSession=function(i,n){var r=new a(i,n);return r.setUndoManager(new t),r},y.Range=c,y.Editor=s,y.EditSession=a,y.UndoManager=t,y.VirtualRenderer=e,y.version=y.config.version}),function(){ace.require(["ace/ace"],function(w){w&&(w.config.init(!0),w.define=ace.define),window.ace||(window.ace=w);for(var y in w)w.hasOwnProperty(y)&&(window.ace[y]=w[y]);window.ace.default=window.ace,O&&(O.exports=window.ace)})}()})(xn);const Ft=Ge,kn=""+new URL("worker-css-01905699.js",import.meta.url).href,An=""+new URL("worker-html-ca2d0aac.js",import.meta.url).href,_n=""+new URL("worker-javascript-38a4e986.js",import.meta.url).href;var Qe={},It={},rt={},Ln={get exports(){return rt},set exports(O){rt=O}};(function(O,R){var w=200,y="__lodash_hash_undefined__",M=1,f=2,p=9007199254740991,c="[object Arguments]",s="[object Array]",a="[object AsyncFunction]",t="[object Boolean]",e="[object Date]",i="[object Error]",n="[object Function]",r="[object GeneratorFunction]",l="[object Map]",h="[object Number]",m="[object Null]",v="[object Object]",S="[object Promise]",C="[object Proxy]",u="[object RegExp]",g="[object Set]",A="[object String]",b="[object Symbol]",x="[object Undefined]",o="[object WeakMap]",d="[object ArrayBuffer]",$="[object DataView]",k="[object Float32Array]",_="[object Float64Array]",L="[object Int8Array]",T="[object Int16Array]",F="[object Int32Array]",I="[object Uint8Array]",B="[object Uint8ClampedArray]",H="[object Uint16Array]",z="[object Uint32Array]",U=/[\\^$.*+?()[\]{}|]/g,D=/^\[object .+?Constructor\]$/,P=/^(?:0|[1-9]\d*)$/,N={};N[k]=N[_]=N[L]=N[T]=N[F]=N[I]=N[B]=N[H]=N[z]=!0,N[c]=N[s]=N[d]=N[t]=N[$]=N[e]=N[i]=N[n]=N[l]=N[h]=N[v]=N[u]=N[g]=N[A]=N[o]=!1;var j=typeof we=="object"&&we&&we.Object===Object&&we,Y=typeof self=="object"&&self&&self.Object===Object&&self,V=j||Y||Function("return this")(),J=R&&!R.nodeType&&R,X=J&&!0&&O&&!O.nodeType&&O,q=X&&X.exports===J,oe=q&&j.process,ve=function(){try{return oe&&oe.binding&&oe.binding("util")}catch{}}(),ge=ve&&ve.isTypedArray;function le(E,W){for(var G=-1,Q=E==null?0:E.length,fe=0,ne=[];++G<Q;){var be=E[G];W(be,G,E)&&(ne[fe++]=be)}return ne}function Se(E,W){for(var G=-1,Q=W.length,fe=E.length;++G<Q;)E[fe+G]=W[G];return E}function Fe(E,W){for(var G=-1,Q=E==null?0:E.length;++G<Q;)if(W(E[G],G,E))return!0;return!1}function Le(E,W){for(var G=-1,Q=Array(E);++G<E;)Q[G]=W(G);return Q}function Ze(E){return function(W){return E(W)}}function bt(E,W){return E.has(W)}function K(E,W){return E==null?void 0:E[W]}function Z(E){var W=-1,G=Array(E.size);return E.forEach(function(Q,fe){G[++W]=[fe,Q]}),G}function ie(E,W){return function(G){return E(W(G))}}function se(E){var W=-1,G=Array(E.size);return E.forEach(function(Q){G[++W]=Q}),G}var he=Array.prototype,pe=Function.prototype,ue=Object.prototype,de=V["__core-js_shared__"],ce=pe.toString,re=ue.hasOwnProperty,xe=function(){var E=/[^.]+$/.exec(de&&de.keys&&de.keys.IE_PROTO||"");return E?"Symbol(src)_1."+E:""}(),He=ue.toString,ot=RegExp("^"+ce.call(re).replace(U,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),Nt=q?V.Buffer:void 0,at=V.Symbol,zt=V.Uint8Array,Ut=ue.propertyIsEnumerable,xi=he.splice,We=at?at.toStringTag:void 0,Vt=Object.getOwnPropertySymbols,ki=Nt?Nt.isBuffer:void 0,Ai=ie(Object.keys,Object),wt=Ye(V,"DataView"),qe=Ye(V,"Map"),yt=Ye(V,"Promise"),$t=Ye(V,"Set"),Ct=Ye(V,"WeakMap"),et=Ye(Object,"create"),_i=ze(wt),Li=ze(qe),Ti=ze(yt),Mi=ze($t),Ri=ze(Ct),Gt=at?at.prototype:void 0,St=Gt?Gt.valueOf:void 0;function Pe(E){var W=-1,G=E==null?0:E.length;for(this.clear();++W<G;){var Q=E[W];this.set(Q[0],Q[1])}}function Ei(){this.__data__=et?et(null):{},this.size=0}function Oi(E){var W=this.has(E)&&delete this.__data__[E];return this.size-=W?1:0,W}function Fi(E){var W=this.__data__;if(et){var G=W[E];return G===y?void 0:G}return re.call(W,E)?W[E]:void 0}function Ii(E){var W=this.__data__;return et?W[E]!==void 0:re.call(W,E)}function Bi(E,W){var G=this.__data__;return this.size+=this.has(E)?0:1,G[E]=et&&W===void 0?y:W,this}Pe.prototype.clear=Ei,Pe.prototype.delete=Oi,Pe.prototype.get=Fi,Pe.prototype.has=Ii,Pe.prototype.set=Bi;function Re(E){var W=-1,G=E==null?0:E.length;for(this.clear();++W<G;){var Q=E[W];this.set(Q[0],Q[1])}}function Di(){this.__data__=[],this.size=0}function Hi(E){var W=this.__data__,G=ht(W,E);if(G<0)return!1;var Q=W.length-1;return G==Q?W.pop():xi.call(W,G,1),--this.size,!0}function Wi(E){var W=this.__data__,G=ht(W,E);return G<0?void 0:W[G][1]}function Pi(E){return ht(this.__data__,E)>-1}function Ni(E,W){var G=this.__data__,Q=ht(G,E);return Q<0?(++this.size,G.push([E,W])):G[Q][1]=W,this}Re.prototype.clear=Di,Re.prototype.delete=Hi,Re.prototype.get=Wi,Re.prototype.has=Pi,Re.prototype.set=Ni;function Ne(E){var W=-1,G=E==null?0:E.length;for(this.clear();++W<G;){var Q=E[W];this.set(Q[0],Q[1])}}function zi(){this.size=0,this.__data__={hash:new Pe,map:new(qe||Re),string:new Pe}}function Ui(E){var W=ct(this,E).delete(E);return this.size-=W?1:0,W}function Vi(E){return ct(this,E).get(E)}function Gi(E){return ct(this,E).has(E)}function Ki(E,W){var G=ct(this,E),Q=G.size;return G.set(E,W),this.size+=G.size==Q?0:1,this}Ne.prototype.clear=zi,Ne.prototype.delete=Ui,Ne.prototype.get=Vi,Ne.prototype.has=Gi,Ne.prototype.set=Ki;function lt(E){var W=-1,G=E==null?0:E.length;for(this.__data__=new Ne;++W<G;)this.add(E[W])}function ji(E){return this.__data__.set(E,y),this}function Yi(E){return this.__data__.has(E)}lt.prototype.add=lt.prototype.push=ji,lt.prototype.has=Yi;function Ie(E){var W=this.__data__=new Re(E);this.size=W.size}function Xi(){this.__data__=new Re,this.size=0}function Qi(E){var W=this.__data__,G=W.delete(E);return this.size=W.size,G}function Ji(E){return this.__data__.get(E)}function Zi(E){return this.__data__.has(E)}function qi(E,W){var G=this.__data__;if(G instanceof Re){var Q=G.__data__;if(!qe||Q.length<w-1)return Q.push([E,W]),this.size=++G.size,this;G=this.__data__=new Ne(Q)}return G.set(E,W),this.size=G.size,this}Ie.prototype.clear=Xi,Ie.prototype.delete=Qi,Ie.prototype.get=Ji,Ie.prototype.has=Zi,Ie.prototype.set=qi;function en(E,W){var G=ut(E),Q=!G&&mn(E),fe=!G&&!Q&&xt(E),ne=!G&&!Q&&!fe&&ei(E),be=G||Q||fe||ne,ye=be?Le(E.length,String):[],$e=ye.length;for(var me in E)(W||re.call(E,me))&&!(be&&(me=="length"||fe&&(me=="offset"||me=="parent")||ne&&(me=="buffer"||me=="byteLength"||me=="byteOffset")||un(me,$e)))&&ye.push(me);return ye}function ht(E,W){for(var G=E.length;G--;)if(Qt(E[G][0],W))return G;return-1}function tn(E,W,G){var Q=W(E);return ut(E)?Q:Se(Q,G(E))}function tt(E){return E==null?E===void 0?x:m:We&&We in Object(E)?hn(E):pn(E)}function Kt(E){return it(E)&&tt(E)==c}function jt(E,W,G,Q,fe){return E===W?!0:E==null||W==null||!it(E)&&!it(W)?E!==E&&W!==W:nn(E,W,G,Q,jt,fe)}function nn(E,W,G,Q,fe,ne){var be=ut(E),ye=ut(W),$e=be?s:Be(E),me=ye?s:Be(W);$e=$e==c?v:$e,me=me==c?v:me;var ke=$e==v,Te=me==v,Ce=$e==me;if(Ce&&xt(E)){if(!xt(W))return!1;be=!0,ke=!1}if(Ce&&!ke)return ne||(ne=new Ie),be||ei(E)?Yt(E,W,G,Q,fe,ne):an(E,W,$e,G,Q,fe,ne);if(!(G&M)){var Ae=ke&&re.call(E,"__wrapped__"),_e=Te&&re.call(W,"__wrapped__");if(Ae||_e){var De=Ae?E.value():E,Ee=_e?W.value():W;return ne||(ne=new Ie),fe(De,Ee,G,Q,ne)}}return Ce?(ne||(ne=new Ie),ln(E,W,G,Q,fe,ne)):!1}function rn(E){if(!qt(E)||fn(E))return!1;var W=Jt(E)?ot:D;return W.test(ze(E))}function sn(E){return it(E)&&Zt(E.length)&&!!N[tt(E)]}function on(E){if(!gn(E))return Ai(E);var W=[];for(var G in Object(E))re.call(E,G)&&G!="constructor"&&W.push(G);return W}function Yt(E,W,G,Q,fe,ne){var be=G&M,ye=E.length,$e=W.length;if(ye!=$e&&!(be&&$e>ye))return!1;var me=ne.get(E);if(me&&ne.get(W))return me==W;var ke=-1,Te=!0,Ce=G&f?new lt:void 0;for(ne.set(E,W),ne.set(W,E);++ke<ye;){var Ae=E[ke],_e=W[ke];if(Q)var De=be?Q(_e,Ae,ke,W,E,ne):Q(Ae,_e,ke,E,W,ne);if(De!==void 0){if(De)continue;Te=!1;break}if(Ce){if(!Fe(W,function(Ee,Ue){if(!bt(Ce,Ue)&&(Ae===Ee||fe(Ae,Ee,G,Q,ne)))return Ce.push(Ue)})){Te=!1;break}}else if(!(Ae===_e||fe(Ae,_e,G,Q,ne))){Te=!1;break}}return ne.delete(E),ne.delete(W),Te}function an(E,W,G,Q,fe,ne,be){switch(G){case $:if(E.byteLength!=W.byteLength||E.byteOffset!=W.byteOffset)return!1;E=E.buffer,W=W.buffer;case d:return!(E.byteLength!=W.byteLength||!ne(new zt(E),new zt(W)));case t:case e:case h:return Qt(+E,+W);case i:return E.name==W.name&&E.message==W.message;case u:case A:return E==W+"";case l:var ye=Z;case g:var $e=Q&M;if(ye||(ye=se),E.size!=W.size&&!$e)return!1;var me=be.get(E);if(me)return me==W;Q|=f,be.set(E,W);var ke=Yt(ye(E),ye(W),Q,fe,ne,be);return be.delete(E),ke;case b:if(St)return St.call(E)==St.call(W)}return!1}function ln(E,W,G,Q,fe,ne){var be=G&M,ye=Xt(E),$e=ye.length,me=Xt(W),ke=me.length;if($e!=ke&&!be)return!1;for(var Te=$e;Te--;){var Ce=ye[Te];if(!(be?Ce in W:re.call(W,Ce)))return!1}var Ae=ne.get(E);if(Ae&&ne.get(W))return Ae==W;var _e=!0;ne.set(E,W),ne.set(W,E);for(var De=be;++Te<$e;){Ce=ye[Te];var Ee=E[Ce],Ue=W[Ce];if(Q)var ti=be?Q(Ue,Ee,Ce,W,E,ne):Q(Ee,Ue,Ce,E,W,ne);if(!(ti===void 0?Ee===Ue||fe(Ee,Ue,G,Q,ne):ti)){_e=!1;break}De||(De=Ce=="constructor")}if(_e&&!De){var dt=E.constructor,ft=W.constructor;dt!=ft&&"constructor"in E&&"constructor"in W&&!(typeof dt=="function"&&dt instanceof dt&&typeof ft=="function"&&ft instanceof ft)&&(_e=!1)}return ne.delete(E),ne.delete(W),_e}function Xt(E){return tn(E,wn,cn)}function ct(E,W){var G=E.__data__;return dn(W)?G[typeof W=="string"?"string":"hash"]:G.map}function Ye(E,W){var G=K(E,W);return rn(G)?G:void 0}function hn(E){var W=re.call(E,We),G=E[We];try{E[We]=void 0;var Q=!0}catch{}var fe=He.call(E);return Q&&(W?E[We]=G:delete E[We]),fe}var cn=Vt?function(E){return E==null?[]:(E=Object(E),le(Vt(E),function(W){return Ut.call(E,W)}))}:yn,Be=tt;(wt&&Be(new wt(new ArrayBuffer(1)))!=$||qe&&Be(new qe)!=l||yt&&Be(yt.resolve())!=S||$t&&Be(new $t)!=g||Ct&&Be(new Ct)!=o)&&(Be=function(E){var W=tt(E),G=W==v?E.constructor:void 0,Q=G?ze(G):"";if(Q)switch(Q){case _i:return $;case Li:return l;case Ti:return S;case Mi:return g;case Ri:return o}return W});function un(E,W){return W=W??p,!!W&&(typeof E=="number"||P.test(E))&&E>-1&&E%1==0&&E<W}function dn(E){var W=typeof E;return W=="string"||W=="number"||W=="symbol"||W=="boolean"?E!=="__proto__":E===null}function fn(E){return!!xe&&xe in E}function gn(E){var W=E&&E.constructor,G=typeof W=="function"&&W.prototype||ue;return E===G}function pn(E){return He.call(E)}function ze(E){if(E!=null){try{return ce.call(E)}catch{}try{return E+""}catch{}}return""}function Qt(E,W){return E===W||E!==E&&W!==W}var mn=Kt(function(){return arguments}())?Kt:function(E){return it(E)&&re.call(E,"callee")&&!Ut.call(E,"callee")},ut=Array.isArray;function vn(E){return E!=null&&Zt(E.length)&&!Jt(E)}var xt=ki||$n;function bn(E,W){return jt(E,W)}function Jt(E){if(!qt(E))return!1;var W=tt(E);return W==n||W==r||W==a||W==C}function Zt(E){return typeof E=="number"&&E>-1&&E%1==0&&E<=p}function qt(E){var W=typeof E;return E!=null&&(W=="object"||W=="function")}function it(E){return E!=null&&typeof E=="object"}var ei=ge?Ze(ge):sn;function wn(E){return vn(E)?en(E):on(E)}function yn(){return[]}function $n(){return!1}O.exports=bn})(Ln,rt);var Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.getAceInstance=Me.debounce=Me.editorEvents=Me.editorOptions=void 0;var Tn=["minLines","maxLines","readOnly","highlightActiveLine","tabSize","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets"];Me.editorOptions=Tn;var Mn=["onChange","onFocus","onInput","onBlur","onCopy","onPaste","onSelectionChange","onCursorChange","onScroll","handleOptions","updateRef"];Me.editorEvents=Mn;var Rn=function(){var O;return typeof window>"u"?(we.window={},O=Ge,delete we.window):window.ace?(O=window.ace,O.acequire=window.ace.require||window.ace.acequire):O=Ge,O};Me.getAceInstance=Rn;var En=function(O,R){var w=null;return function(){var y=this,M=arguments;clearTimeout(w),w=setTimeout(function(){O.apply(y,M)},R)}};Me.debounce=En;var On=we&&we.__extends||function(){var O=function(R,w){return O=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,M){y.__proto__=M}||function(y,M){for(var f in M)Object.prototype.hasOwnProperty.call(M,f)&&(y[f]=M[f])},O(R,w)};return function(R,w){if(typeof w!="function"&&w!==null)throw new TypeError("Class extends value "+String(w)+" is not a constructor or null");O(R,w);function y(){this.constructor=R}R.prototype=w===null?Object.create(w):(y.prototype=w.prototype,new y)}}(),Lt=we&&we.__assign||function(){return Lt=Object.assign||function(O){for(var R,w=1,y=arguments.length;w<y;w++){R=arguments[w];for(var M in R)Object.prototype.hasOwnProperty.call(R,M)&&(O[M]=R[M])}return O},Lt.apply(this,arguments)};Object.defineProperty(It,"__esModule",{value:!0});var Fn=Ge,ee=Ot,ii=nt,gt=rt,Xe=Me,ni=(0,Xe.getAceInstance)(),In=function(O){On(R,O);function R(w){var y=O.call(this,w)||this;return Xe.editorEvents.forEach(function(M){y[M]=y[M].bind(y)}),y.debounce=Xe.debounce,y}return R.prototype.isInShadow=function(w){for(var y=w&&w.parentNode;y;){if(y.toString()==="[object ShadowRoot]")return!0;y=y.parentNode}return!1},R.prototype.componentDidMount=function(){var w=this,y=this.props,M=y.className,f=y.onBeforeLoad,p=y.onValidate,c=y.mode,s=y.focus,a=y.theme,t=y.fontSize,e=y.value,i=y.defaultValue,n=y.showGutter,r=y.wrapEnabled,l=y.showPrintMargin,h=y.scrollMargin,m=h===void 0?[0,0,0,0]:h,v=y.keyboardHandler,S=y.onLoad,C=y.commands,u=y.annotations,g=y.markers,A=y.placeholder;this.editor=ni.edit(this.refEditor),f&&f(ni);for(var b=Object.keys(this.props.editorProps),x=0;x<b.length;x++)this.editor[b[x]]=this.props.editorProps[b[x]];this.props.debounceChangePeriod&&(this.onChange=this.debounce(this.onChange,this.props.debounceChangePeriod)),this.editor.renderer.setScrollMargin(m[0],m[1],m[2],m[3]),this.isInShadow(this.refEditor)&&this.editor.renderer.attachToShadowRoot(),this.editor.getSession().setMode(typeof c=="string"?"ace/mode/".concat(c):c),a&&a!==""&&this.editor.setTheme("ace/theme/".concat(a)),this.editor.setFontSize(typeof t=="number"?"".concat(t,"px"):t),this.editor.getSession().setValue(i||e||""),this.props.navigateToFileEnd&&this.editor.navigateFileEnd(),this.editor.renderer.setShowGutter(n),this.editor.getSession().setUseWrapMode(r),this.editor.setShowPrintMargin(l),this.editor.on("focus",this.onFocus),this.editor.on("blur",this.onBlur),this.editor.on("copy",this.onCopy),this.editor.on("paste",this.onPaste),this.editor.on("change",this.onChange),this.editor.on("input",this.onInput),A&&this.updatePlaceholder(),this.editor.getSession().selection.on("changeSelection",this.onSelectionChange),this.editor.getSession().selection.on("changeCursor",this.onCursorChange),p&&this.editor.getSession().on("changeAnnotation",function(){var d=w.editor.getSession().getAnnotations();w.props.onValidate(d)}),this.editor.session.on("changeScrollTop",this.onScroll),this.editor.getSession().setAnnotations(u||[]),g&&g.length>0&&this.handleMarkers(g);var o=this.editor.$options;Xe.editorOptions.forEach(function(d){o.hasOwnProperty(d)?w.editor.setOption(d,w.props[d]):w.props[d]&&console.warn("ReactAce: editor option ".concat(d," was activated but not found. Did you need to import a related tool or did you possibly mispell the option?"))}),this.handleOptions(this.props),Array.isArray(C)&&C.forEach(function(d){typeof d.exec=="string"?w.editor.commands.bindKey(d.bindKey,d.exec):w.editor.commands.addCommand(d)}),v&&this.editor.setKeyboardHandler("ace/keyboard/"+v),M&&(this.refEditor.className+=" "+M),S&&S(this.editor),this.editor.resize(),s&&this.editor.focus()},R.prototype.componentDidUpdate=function(w){for(var y=w,M=this.props,f=0;f<Xe.editorOptions.length;f++){var p=Xe.editorOptions[f];M[p]!==y[p]&&this.editor.setOption(p,M[p])}if(M.className!==y.className){var c=this.refEditor.className,s=c.trim().split(" "),a=y.className.trim().split(" ");a.forEach(function(i){var n=s.indexOf(i);s.splice(n,1)}),this.refEditor.className=" "+M.className+" "+s.join(" ")}var t=this.editor&&M.value!=null&&this.editor.getValue()!==M.value;if(t){this.silent=!0;var e=this.editor.session.selection.toJSON();this.editor.setValue(M.value,M.cursorStart),this.editor.session.selection.fromJSON(e),this.silent=!1}M.placeholder!==y.placeholder&&this.updatePlaceholder(),M.mode!==y.mode&&this.editor.getSession().setMode(typeof M.mode=="string"?"ace/mode/".concat(M.mode):M.mode),M.theme!==y.theme&&this.editor.setTheme("ace/theme/"+M.theme),M.keyboardHandler!==y.keyboardHandler&&(M.keyboardHandler?this.editor.setKeyboardHandler("ace/keyboard/"+M.keyboardHandler):this.editor.setKeyboardHandler(null)),M.fontSize!==y.fontSize&&this.editor.setFontSize(typeof M.fontSize=="number"?"".concat(M.fontSize,"px"):M.fontSize),M.wrapEnabled!==y.wrapEnabled&&this.editor.getSession().setUseWrapMode(M.wrapEnabled),M.showPrintMargin!==y.showPrintMargin&&this.editor.setShowPrintMargin(M.showPrintMargin),M.showGutter!==y.showGutter&&this.editor.renderer.setShowGutter(M.showGutter),gt(M.setOptions,y.setOptions)||this.handleOptions(M),(t||!gt(M.annotations,y.annotations))&&this.editor.getSession().setAnnotations(M.annotations||[]),!gt(M.markers,y.markers)&&Array.isArray(M.markers)&&this.handleMarkers(M.markers),gt(M.scrollMargin,y.scrollMargin)||this.handleScrollMargins(M.scrollMargin),(w.height!==this.props.height||w.width!==this.props.width)&&this.editor.resize(),this.props.focus&&!w.focus&&this.editor.focus()},R.prototype.handleScrollMargins=function(w){w===void 0&&(w=[0,0,0,0]),this.editor.renderer.setScrollMargin(w[0],w[1],w[2],w[3])},R.prototype.componentWillUnmount=function(){this.editor&&(this.editor.destroy(),this.editor=null)},R.prototype.onChange=function(w){if(this.props.onChange&&!this.silent){var y=this.editor.getValue();this.props.onChange(y,w)}},R.prototype.onSelectionChange=function(w){if(this.props.onSelectionChange){var y=this.editor.getSelection();this.props.onSelectionChange(y,w)}},R.prototype.onCursorChange=function(w){if(this.props.onCursorChange){var y=this.editor.getSelection();this.props.onCursorChange(y,w)}},R.prototype.onInput=function(w){this.props.onInput&&this.props.onInput(w),this.props.placeholder&&this.updatePlaceholder()},R.prototype.onFocus=function(w){this.props.onFocus&&this.props.onFocus(w,this.editor)},R.prototype.onBlur=function(w){this.props.onBlur&&this.props.onBlur(w,this.editor)},R.prototype.onCopy=function(w){var y=w.text;this.props.onCopy&&this.props.onCopy(y)},R.prototype.onPaste=function(w){var y=w.text;this.props.onPaste&&this.props.onPaste(y)},R.prototype.onScroll=function(){this.props.onScroll&&this.props.onScroll(this.editor)},R.prototype.handleOptions=function(w){for(var y=Object.keys(w.setOptions),M=0;M<y.length;M++)this.editor.setOption(y[M],w.setOptions[y[M]])},R.prototype.handleMarkers=function(w){var y=this,M=this.editor.getSession().getMarkers(!0);for(var f in M)M.hasOwnProperty(f)&&this.editor.getSession().removeMarker(M[f].id);M=this.editor.getSession().getMarkers(!1);for(var f in M)M.hasOwnProperty(f)&&M[f].clazz!=="ace_active-line"&&M[f].clazz!=="ace_selected-word"&&this.editor.getSession().removeMarker(M[f].id);w.forEach(function(p){var c=p.startRow,s=p.startCol,a=p.endRow,t=p.endCol,e=p.className,i=p.type,n=p.inFront,r=n===void 0?!1:n,l=new Fn.Range(c,s,a,t);y.editor.getSession().addMarker(l,e,i,r)})},R.prototype.updatePlaceholder=function(){var w=this.editor,y=this.props.placeholder,M=!w.session.getValue().length,f=w.renderer.placeholderNode;!M&&f?(w.renderer.scroller.removeChild(w.renderer.placeholderNode),w.renderer.placeholderNode=null):M&&!f?(f=w.renderer.placeholderNode=document.createElement("div"),f.textContent=y||"",f.className="ace_comment ace_placeholder",f.style.padding="0 9px",f.style.position="absolute",f.style.zIndex="3",w.renderer.scroller.appendChild(f)):M&&f&&(f.textContent=y)},R.prototype.updateRef=function(w){this.refEditor=w},R.prototype.render=function(){var w=this.props,y=w.name,M=w.width,f=w.height,p=w.style,c=Lt({width:M,height:f},p);return ii.createElement("div",{ref:this.updateRef,id:y,style:c})},R.propTypes={mode:ee.oneOfType([ee.string,ee.object]),focus:ee.bool,theme:ee.string,name:ee.string,className:ee.string,height:ee.string,width:ee.string,fontSize:ee.oneOfType([ee.number,ee.string]),showGutter:ee.bool,onChange:ee.func,onCopy:ee.func,onPaste:ee.func,onFocus:ee.func,onInput:ee.func,onBlur:ee.func,onScroll:ee.func,value:ee.string,defaultValue:ee.string,onLoad:ee.func,onSelectionChange:ee.func,onCursorChange:ee.func,onBeforeLoad:ee.func,onValidate:ee.func,minLines:ee.number,maxLines:ee.number,readOnly:ee.bool,highlightActiveLine:ee.bool,tabSize:ee.number,showPrintMargin:ee.bool,cursorStart:ee.number,debounceChangePeriod:ee.number,editorProps:ee.object,setOptions:ee.object,style:ee.object,scrollMargin:ee.array,annotations:ee.array,markers:ee.array,keyboardHandler:ee.string,wrapEnabled:ee.bool,enableSnippets:ee.bool,enableBasicAutocompletion:ee.oneOfType([ee.bool,ee.array]),enableLiveAutocompletion:ee.oneOfType([ee.bool,ee.array]),navigateToFileEnd:ee.bool,commands:ee.array,placeholder:ee.string},R.defaultProps={name:"ace-editor",focus:!1,mode:"",theme:"",height:"500px",width:"500px",fontSize:12,enableSnippets:!1,showGutter:!0,onChange:null,onPaste:null,onLoad:null,onScroll:null,minLines:null,maxLines:null,readOnly:!1,highlightActiveLine:!0,showPrintMargin:!0,tabSize:4,cursorStart:1,editorProps:{},style:{},scrollMargin:[0,0,0,0],setOptions:{},wrapEnabled:!1,enableBasicAutocompletion:!1,enableLiveAutocompletion:!1,placeholder:null,navigateToFileEnd:!0},R}(ii.Component);It.default=In;var Bt={},pt={},Tt={},Bn={get exports(){return Tt},set exports(O){Tt=O}};(function(O,R){ace.define("ace/split",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/editor","ace/virtual_renderer","ace/edit_session"],function(w,y,M){var f=w("./lib/oop");w("./lib/lang");var p=w("./lib/event_emitter").EventEmitter,c=w("./editor").Editor,s=w("./virtual_renderer").VirtualRenderer,a=w("./edit_session").EditSession,t=function(e,i,n){this.BELOW=1,this.BESIDE=0,this.$container=e,this.$theme=i,this.$splits=0,this.$editorCSS="",this.$editors=[],this.$orientation=this.BESIDE,this.setSplits(n||1),this.$cEditor=this.$editors[0],this.on("focus",function(r){this.$cEditor=r}.bind(this))};(function(){f.implement(this,p),this.$createEditor=function(){var e=document.createElement("div");e.className=this.$editorCSS,e.style.cssText="position: absolute; top:0px; bottom:0px",this.$container.appendChild(e);var i=new c(new s(e,this.$theme));return i.on("focus",function(){this._emit("focus",i)}.bind(this)),this.$editors.push(i),i.setFontSize(this.$fontSize),i},this.setSplits=function(e){var i;if(e<1)throw"The number of splits have to be > 0!";if(e!=this.$splits){if(e>this.$splits){for(;this.$splits<this.$editors.length&&this.$splits<e;)i=this.$editors[this.$splits],this.$container.appendChild(i.container),i.setFontSize(this.$fontSize),this.$splits++;for(;this.$splits<e;)this.$createEditor(),this.$splits++}else for(;this.$splits>e;)i=this.$editors[this.$splits-1],this.$container.removeChild(i.container),this.$splits--;this.resize()}},this.getSplits=function(){return this.$splits},this.getEditor=function(e){return this.$editors[e]},this.getCurrentEditor=function(){return this.$cEditor},this.focus=function(){this.$cEditor.focus()},this.blur=function(){this.$cEditor.blur()},this.setTheme=function(e){this.$editors.forEach(function(i){i.setTheme(e)})},this.setKeyboardHandler=function(e){this.$editors.forEach(function(i){i.setKeyboardHandler(e)})},this.forEach=function(e,i){this.$editors.forEach(e,i)},this.$fontSize="",this.setFontSize=function(e){this.$fontSize=e,this.forEach(function(i){i.setFontSize(e)})},this.$cloneSession=function(e){var i=new a(e.getDocument(),e.getMode()),n=e.getUndoManager();return i.setUndoManager(n),i.setTabSize(e.getTabSize()),i.setUseSoftTabs(e.getUseSoftTabs()),i.setOverwrite(e.getOverwrite()),i.setBreakpoints(e.getBreakpoints()),i.setUseWrapMode(e.getUseWrapMode()),i.setUseWorker(e.getUseWorker()),i.setWrapLimitRange(e.$wrapLimitRange.min,e.$wrapLimitRange.max),i.$foldData=e.$cloneFoldData(),i},this.setSession=function(e,i){var n;i==null?n=this.$cEditor:n=this.$editors[i];var r=this.$editors.some(function(l){return l.session===e});return r&&(e=this.$cloneSession(e)),n.setSession(e),e},this.getOrientation=function(){return this.$orientation},this.setOrientation=function(e){this.$orientation!=e&&(this.$orientation=e,this.resize())},this.resize=function(){var e=this.$container.clientWidth,i=this.$container.clientHeight,n;if(this.$orientation==this.BESIDE)for(var r=e/this.$splits,l=0;l<this.$splits;l++)n=this.$editors[l],n.container.style.width=r+"px",n.container.style.top="0px",n.container.style.left=l*r+"px",n.container.style.height=i+"px",n.resize();else for(var h=i/this.$splits,l=0;l<this.$splits;l++)n=this.$editors[l],n.container.style.width=e+"px",n.container.style.top=l*h+"px",n.container.style.left="0px",n.container.style.height=h+"px",n.resize()}}).call(t.prototype),y.Split=t}),ace.define("ace/ext/split",["require","exports","module","ace/split"],function(w,y,M){M.exports=w("../split")}),function(){ace.require(["ace/ext/split"],function(w){O&&(O.exports=w)})}()})(Bn);var Dn="Expected a function",mi="__lodash_hash_undefined__",vi=1/0,Hn="[object Function]",Wn="[object GeneratorFunction]",Pn="[object Symbol]",Nn=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,zn=/^\w*$/,Un=/^\./,Vn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Gn=/[\\^$.*+?()[\]{}|]/g,Kn=/\\(\\)?/g,jn=/^\[object .+?Constructor\]$/,Yn=typeof we=="object"&&we&&we.Object===Object&&we,Xn=typeof self=="object"&&self&&self.Object===Object&&self,Dt=Yn||Xn||Function("return this")();function Qn(O,R){return O==null?void 0:O[R]}function Jn(O){var R=!1;if(O!=null&&typeof O.toString!="function")try{R=!!(O+"")}catch{}return R}var Zn=Array.prototype,qn=Function.prototype,bi=Object.prototype,kt=Dt["__core-js_shared__"],ri=function(){var O=/[^.]+$/.exec(kt&&kt.keys&&kt.keys.IE_PROTO||"");return O?"Symbol(src)_1."+O:""}(),wi=qn.toString,Ht=bi.hasOwnProperty,yi=bi.toString,er=RegExp("^"+wi.call(Ht).replace(Gn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),si=Dt.Symbol,tr=Zn.splice,ir=$i(Dt,"Map"),st=$i(Object,"create"),oi=si?si.prototype:void 0,ai=oi?oi.toString:void 0;function Ke(O){var R=-1,w=O?O.length:0;for(this.clear();++R<w;){var y=O[R];this.set(y[0],y[1])}}function nr(){this.__data__=st?st(null):{}}function rr(O){return this.has(O)&&delete this.__data__[O]}function sr(O){var R=this.__data__;if(st){var w=R[O];return w===mi?void 0:w}return Ht.call(R,O)?R[O]:void 0}function or(O){var R=this.__data__;return st?R[O]!==void 0:Ht.call(R,O)}function ar(O,R){var w=this.__data__;return w[O]=st&&R===void 0?mi:R,this}Ke.prototype.clear=nr;Ke.prototype.delete=rr;Ke.prototype.get=sr;Ke.prototype.has=or;Ke.prototype.set=ar;function Je(O){var R=-1,w=O?O.length:0;for(this.clear();++R<w;){var y=O[R];this.set(y[0],y[1])}}function lr(){this.__data__=[]}function hr(O){var R=this.__data__,w=mt(R,O);if(w<0)return!1;var y=R.length-1;return w==y?R.pop():tr.call(R,w,1),!0}function cr(O){var R=this.__data__,w=mt(R,O);return w<0?void 0:R[w][1]}function ur(O){return mt(this.__data__,O)>-1}function dr(O,R){var w=this.__data__,y=mt(w,O);return y<0?w.push([O,R]):w[y][1]=R,this}Je.prototype.clear=lr;Je.prototype.delete=hr;Je.prototype.get=cr;Je.prototype.has=ur;Je.prototype.set=dr;function je(O){var R=-1,w=O?O.length:0;for(this.clear();++R<w;){var y=O[R];this.set(y[0],y[1])}}function fr(){this.__data__={hash:new Ke,map:new(ir||Je),string:new Ke}}function gr(O){return vt(this,O).delete(O)}function pr(O){return vt(this,O).get(O)}function mr(O){return vt(this,O).has(O)}function vr(O,R){return vt(this,O).set(O,R),this}je.prototype.clear=fr;je.prototype.delete=gr;je.prototype.get=pr;je.prototype.has=mr;je.prototype.set=vr;function mt(O,R){for(var w=O.length;w--;)if(Lr(O[w][0],R))return w;return-1}function br(O,R){R=Cr(R,O)?[R]:$r(R);for(var w=0,y=R.length;O!=null&&w<y;)O=O[Ar(R[w++])];return w&&w==y?O:void 0}function wr(O){if(!Si(O)||xr(O))return!1;var R=Tr(O)||Jn(O)?er:jn;return R.test(_r(O))}function yr(O){if(typeof O=="string")return O;if(Pt(O))return ai?ai.call(O):"";var R=O+"";return R=="0"&&1/O==-vi?"-0":R}function $r(O){return Ci(O)?O:kr(O)}function vt(O,R){var w=O.__data__;return Sr(R)?w[typeof R=="string"?"string":"hash"]:w.map}function $i(O,R){var w=Qn(O,R);return wr(w)?w:void 0}function Cr(O,R){if(Ci(O))return!1;var w=typeof O;return w=="number"||w=="symbol"||w=="boolean"||O==null||Pt(O)?!0:zn.test(O)||!Nn.test(O)||R!=null&&O in Object(R)}function Sr(O){var R=typeof O;return R=="string"||R=="number"||R=="symbol"||R=="boolean"?O!=="__proto__":O===null}function xr(O){return!!ri&&ri in O}var kr=Wt(function(O){O=Rr(O);var R=[];return Un.test(O)&&R.push(""),O.replace(Vn,function(w,y,M,f){R.push(M?f.replace(Kn,"$1"):y||w)}),R});function Ar(O){if(typeof O=="string"||Pt(O))return O;var R=O+"";return R=="0"&&1/O==-vi?"-0":R}function _r(O){if(O!=null){try{return wi.call(O)}catch{}try{return O+""}catch{}}return""}function Wt(O,R){if(typeof O!="function"||R&&typeof R!="function")throw new TypeError(Dn);var w=function(){var y=arguments,M=R?R.apply(this,y):y[0],f=w.cache;if(f.has(M))return f.get(M);var p=O.apply(this,y);return w.cache=f.set(M,p),p};return w.cache=new(Wt.Cache||je),w}Wt.Cache=je;function Lr(O,R){return O===R||O!==O&&R!==R}var Ci=Array.isArray;function Tr(O){var R=Si(O)?yi.call(O):"";return R==Hn||R==Wn}function Si(O){var R=typeof O;return!!O&&(R=="object"||R=="function")}function Mr(O){return!!O&&typeof O=="object"}function Pt(O){return typeof O=="symbol"||Mr(O)&&yi.call(O)==Pn}function Rr(O){return O==null?"":yr(O)}function Er(O,R,w){var y=O==null?void 0:br(O,R);return y===void 0?w:y}var Or=Er,Fr=we&&we.__extends||function(){var O=function(R,w){return O=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,M){y.__proto__=M}||function(y,M){for(var f in M)Object.prototype.hasOwnProperty.call(M,f)&&(y[f]=M[f])},O(R,w)};return function(R,w){if(typeof w!="function"&&w!==null)throw new TypeError("Class extends value "+String(w)+" is not a constructor or null");O(R,w);function y(){this.constructor=R}R.prototype=w===null?Object.create(w):(y.prototype=w.prototype,new y)}}(),Mt=we&&we.__assign||function(){return Mt=Object.assign||function(O){for(var R,w=1,y=arguments.length;w<y;w++){R=arguments[w];for(var M in R)Object.prototype.hasOwnProperty.call(R,M)&&(O[M]=R[M])}return O},Mt.apply(this,arguments)};Object.defineProperty(pt,"__esModule",{value:!0});var Ve=Me,At=(0,Ve.getAceInstance)(),Ir=Ge,Br=Tt,te=Ot,li=nt,_t=rt,Oe=Or,Dr=function(O){Fr(R,O);function R(w){var y=O.call(this,w)||this;return Ve.editorEvents.forEach(function(M){y[M]=y[M].bind(y)}),y.debounce=Ve.debounce,y}return R.prototype.isInShadow=function(w){for(var y=w&&w.parentNode;y;){if(y.toString()==="[object ShadowRoot]")return!0;y=y.parentNode}return!1},R.prototype.componentDidMount=function(){var w=this,y=this.props,M=y.className,f=y.onBeforeLoad,p=y.mode,c=y.focus,s=y.theme,a=y.fontSize,t=y.value,e=y.defaultValue,i=y.cursorStart,n=y.showGutter,r=y.wrapEnabled,l=y.showPrintMargin,h=y.scrollMargin,m=h===void 0?[0,0,0,0]:h,v=y.keyboardHandler,S=y.onLoad,C=y.commands,u=y.annotations,g=y.markers,A=y.splits;this.editor=At.edit(this.refEditor),this.isInShadow(this.refEditor)&&this.editor.renderer.attachToShadowRoot(),this.editor.setTheme("ace/theme/".concat(s)),f&&f(At);var b=Object.keys(this.props.editorProps),x=new Br.Split(this.editor.container,"ace/theme/".concat(s),A);this.editor.env.split=x,this.splitEditor=x.getEditor(0),this.split=x,this.editor.setShowPrintMargin(!1),this.editor.renderer.setShowGutter(!1);var o=this.splitEditor.$options;this.props.debounceChangePeriod&&(this.onChange=this.debounce(this.onChange,this.props.debounceChangePeriod)),x.forEach(function($,k){for(var _=0;_<b.length;_++)$[b[_]]=w.props.editorProps[b[_]];var L=Oe(e,k),T=Oe(t,k,"");$.session.setUndoManager(new At.UndoManager),$.setTheme("ace/theme/".concat(s)),$.renderer.setScrollMargin(m[0],m[1],m[2],m[3]),$.getSession().setMode("ace/mode/".concat(p)),$.setFontSize(a),$.renderer.setShowGutter(n),$.getSession().setUseWrapMode(r),$.setShowPrintMargin(l),$.on("focus",w.onFocus),$.on("blur",w.onBlur),$.on("input",w.onInput),$.on("copy",w.onCopy),$.on("paste",w.onPaste),$.on("change",w.onChange),$.getSession().selection.on("changeSelection",w.onSelectionChange),$.getSession().selection.on("changeCursor",w.onCursorChange),$.session.on("changeScrollTop",w.onScroll),$.setValue(L===void 0?T:L,i);var F=Oe(u,k,[]),I=Oe(g,k,[]);$.getSession().setAnnotations(F),I&&I.length>0&&w.handleMarkers(I,$);for(var _=0;_<Ve.editorOptions.length;_++){var B=Ve.editorOptions[_];o.hasOwnProperty(B)?$.setOption(B,w.props[B]):w.props[B]&&console.warn("ReaceAce: editor option ".concat(B," was activated but not found. Did you need to import a related tool or did you possibly mispell the option?"))}w.handleOptions(w.props,$),Array.isArray(C)&&C.forEach(function(H){typeof H.exec=="string"?$.commands.bindKey(H.bindKey,H.exec):$.commands.addCommand(H)}),v&&$.setKeyboardHandler("ace/keyboard/"+v)}),M&&(this.refEditor.className+=" "+M),c&&this.splitEditor.focus();var d=this.editor.env.split;d.setOrientation(this.props.orientation==="below"?d.BELOW:d.BESIDE),d.resize(!0),S&&S(d)},R.prototype.componentDidUpdate=function(w){var y=this,M=w,f=this.props,p=this.editor.env.split;if(f.splits!==M.splits&&p.setSplits(f.splits),f.orientation!==M.orientation&&p.setOrientation(f.orientation==="below"?p.BELOW:p.BESIDE),p.forEach(function(t,e){f.mode!==M.mode&&t.getSession().setMode("ace/mode/"+f.mode),f.keyboardHandler!==M.keyboardHandler&&(f.keyboardHandler?t.setKeyboardHandler("ace/keyboard/"+f.keyboardHandler):t.setKeyboardHandler(null)),f.fontSize!==M.fontSize&&t.setFontSize(f.fontSize),f.wrapEnabled!==M.wrapEnabled&&t.getSession().setUseWrapMode(f.wrapEnabled),f.showPrintMargin!==M.showPrintMargin&&t.setShowPrintMargin(f.showPrintMargin),f.showGutter!==M.showGutter&&t.renderer.setShowGutter(f.showGutter);for(var i=0;i<Ve.editorOptions.length;i++){var n=Ve.editorOptions[i];f[n]!==M[n]&&t.setOption(n,f[n])}_t(f.setOptions,M.setOptions)||y.handleOptions(f,t);var r=Oe(f.value,e,"");if(t.getValue()!==r){y.silent=!0;var l=t.session.selection.toJSON();t.setValue(r,f.cursorStart),t.session.selection.fromJSON(l),y.silent=!1}var h=Oe(f.annotations,e,[]),m=Oe(M.annotations,e,[]);_t(h,m)||t.getSession().setAnnotations(h);var v=Oe(f.markers,e,[]),S=Oe(M.markers,e,[]);!_t(v,S)&&Array.isArray(v)&&y.handleMarkers(v,t)}),f.className!==M.className){var c=this.refEditor.className,s=c.trim().split(" "),a=M.className.trim().split(" ");a.forEach(function(t){var e=s.indexOf(t);s.splice(e,1)}),this.refEditor.className=" "+f.className+" "+s.join(" ")}f.theme!==M.theme&&p.setTheme("ace/theme/"+f.theme),f.focus&&!M.focus&&this.splitEditor.focus(),(f.height!==this.props.height||f.width!==this.props.width)&&this.editor.resize()},R.prototype.componentWillUnmount=function(){this.editor.destroy(),this.editor=null},R.prototype.onChange=function(w){if(this.props.onChange&&!this.silent){var y=[];this.editor.env.split.forEach(function(M){y.push(M.getValue())}),this.props.onChange(y,w)}},R.prototype.onSelectionChange=function(w){if(this.props.onSelectionChange){var y=[];this.editor.env.split.forEach(function(M){y.push(M.getSelection())}),this.props.onSelectionChange(y,w)}},R.prototype.onCursorChange=function(w){if(this.props.onCursorChange){var y=[];this.editor.env.split.forEach(function(M){y.push(M.getSelection())}),this.props.onCursorChange(y,w)}},R.prototype.onFocus=function(w){this.props.onFocus&&this.props.onFocus(w)},R.prototype.onInput=function(w){this.props.onInput&&this.props.onInput(w)},R.prototype.onBlur=function(w){this.props.onBlur&&this.props.onBlur(w)},R.prototype.onCopy=function(w){this.props.onCopy&&this.props.onCopy(w)},R.prototype.onPaste=function(w){this.props.onPaste&&this.props.onPaste(w)},R.prototype.onScroll=function(){this.props.onScroll&&this.props.onScroll(this.editor)},R.prototype.handleOptions=function(w,y){for(var M=Object.keys(w.setOptions),f=0;f<M.length;f++)y.setOption(M[f],w.setOptions[M[f]])},R.prototype.handleMarkers=function(w,y){var M=y.getSession().getMarkers(!0);for(var f in M)M.hasOwnProperty(f)&&y.getSession().removeMarker(M[f].id);M=y.getSession().getMarkers(!1);for(var f in M)M.hasOwnProperty(f)&&y.getSession().removeMarker(M[f].id);w.forEach(function(p){var c=p.startRow,s=p.startCol,a=p.endRow,t=p.endCol,e=p.className,i=p.type,n=p.inFront,r=n===void 0?!1:n,l=new Ir.Range(c,s,a,t);y.getSession().addMarker(l,e,i,r)})},R.prototype.updateRef=function(w){this.refEditor=w},R.prototype.render=function(){var w=this.props,y=w.name,M=w.width,f=w.height,p=w.style,c=Mt({width:M,height:f},p);return li.createElement("div",{ref:this.updateRef,id:y,style:c})},R.propTypes={className:te.string,debounceChangePeriod:te.number,defaultValue:te.arrayOf(te.string),focus:te.bool,fontSize:te.oneOfType([te.number,te.string]),height:te.string,mode:te.string,name:te.string,onBlur:te.func,onChange:te.func,onCopy:te.func,onFocus:te.func,onInput:te.func,onLoad:te.func,onPaste:te.func,onScroll:te.func,orientation:te.string,showGutter:te.bool,splits:te.number,theme:te.string,value:te.arrayOf(te.string),width:te.string,onSelectionChange:te.func,onCursorChange:te.func,onBeforeLoad:te.func,minLines:te.number,maxLines:te.number,readOnly:te.bool,highlightActiveLine:te.bool,tabSize:te.number,showPrintMargin:te.bool,cursorStart:te.number,editorProps:te.object,setOptions:te.object,style:te.object,scrollMargin:te.array,annotations:te.array,markers:te.array,keyboardHandler:te.string,wrapEnabled:te.bool,enableBasicAutocompletion:te.oneOfType([te.bool,te.array]),enableLiveAutocompletion:te.oneOfType([te.bool,te.array]),commands:te.array},R.defaultProps={name:"ace-editor",focus:!1,orientation:"beside",splits:2,mode:"",theme:"",height:"500px",width:"500px",value:[],fontSize:12,showGutter:!0,onChange:null,onPaste:null,onLoad:null,onScroll:null,minLines:null,maxLines:null,readOnly:!1,highlightActiveLine:!0,showPrintMargin:!0,tabSize:4,cursorStart:1,editorProps:{},style:{},scrollMargin:[0,0,0,0],setOptions:{},wrapEnabled:!1,enableBasicAutocompletion:!1,enableLiveAutocompletion:!1},R}(li.Component);pt.default=Dr;var Rt={},Hr={get exports(){return Rt},set exports(O){Rt=O}};(function(O){var R=function(){this.Diff_Timeout=1,this.Diff_EditCost=4,this.Match_Threshold=.5,this.Match_Distance=1e3,this.Patch_DeleteThreshold=.5,this.Patch_Margin=4,this.Match_MaxBits=32},w=-1,y=1,M=0;R.Diff=function(f,p){return[f,p]},R.prototype.diff_main=function(f,p,c,s){typeof s>"u"&&(this.Diff_Timeout<=0?s=Number.MAX_VALUE:s=new Date().getTime()+this.Diff_Timeout*1e3);var a=s;if(f==null||p==null)throw new Error("Null input. (diff_main)");if(f==p)return f?[new R.Diff(M,f)]:[];typeof c>"u"&&(c=!0);var t=c,e=this.diff_commonPrefix(f,p),i=f.substring(0,e);f=f.substring(e),p=p.substring(e),e=this.diff_commonSuffix(f,p);var n=f.substring(f.length-e);f=f.substring(0,f.length-e),p=p.substring(0,p.length-e);var r=this.diff_compute_(f,p,t,a);return i&&r.unshift(new R.Diff(M,i)),n&&r.push(new R.Diff(M,n)),this.diff_cleanupMerge(r),r},R.prototype.diff_compute_=function(f,p,c,s){var a;if(!f)return[new R.Diff(y,p)];if(!p)return[new R.Diff(w,f)];var t=f.length>p.length?f:p,e=f.length>p.length?p:f,i=t.indexOf(e);if(i!=-1)return a=[new R.Diff(y,t.substring(0,i)),new R.Diff(M,e),new R.Diff(y,t.substring(i+e.length))],f.length>p.length&&(a[0][0]=a[2][0]=w),a;if(e.length==1)return[new R.Diff(w,f),new R.Diff(y,p)];var n=this.diff_halfMatch_(f,p);if(n){var r=n[0],l=n[1],h=n[2],m=n[3],v=n[4],S=this.diff_main(r,h,c,s),C=this.diff_main(l,m,c,s);return S.concat([new R.Diff(M,v)],C)}return c&&f.length>100&&p.length>100?this.diff_lineMode_(f,p,s):this.diff_bisect_(f,p,s)},R.prototype.diff_lineMode_=function(f,p,c){var s=this.diff_linesToChars_(f,p);f=s.chars1,p=s.chars2;var a=s.lineArray,t=this.diff_main(f,p,!1,c);this.diff_charsToLines_(t,a),this.diff_cleanupSemantic(t),t.push(new R.Diff(M,""));for(var e=0,i=0,n=0,r="",l="";e<t.length;){switch(t[e][0]){case y:n++,l+=t[e][1];break;case w:i++,r+=t[e][1];break;case M:if(i>=1&&n>=1){t.splice(e-i-n,i+n),e=e-i-n;for(var h=this.diff_main(r,l,!1,c),m=h.length-1;m>=0;m--)t.splice(e,0,h[m]);e=e+h.length}n=0,i=0,r="",l="";break}e++}return t.pop(),t},R.prototype.diff_bisect_=function(f,p,c){for(var s=f.length,a=p.length,t=Math.ceil((s+a)/2),e=t,i=2*t,n=new Array(i),r=new Array(i),l=0;l<i;l++)n[l]=-1,r[l]=-1;n[e+1]=0,r[e+1]=0;for(var h=s-a,m=h%2!=0,v=0,S=0,C=0,u=0,g=0;g<t&&!(new Date().getTime()>c);g++){for(var A=-g+v;A<=g-S;A+=2){var b=e+A,x;A==-g||A!=g&&n[b-1]<n[b+1]?x=n[b+1]:x=n[b-1]+1;for(var o=x-A;x<s&&o<a&&f.charAt(x)==p.charAt(o);)x++,o++;if(n[b]=x,x>s)S+=2;else if(o>a)v+=2;else if(m){var d=e+h-A;if(d>=0&&d<i&&r[d]!=-1){var $=s-r[d];if(x>=$)return this.diff_bisectSplit_(f,p,x,o,c)}}}for(var k=-g+C;k<=g-u;k+=2){var d=e+k,$;k==-g||k!=g&&r[d-1]<r[d+1]?$=r[d+1]:$=r[d-1]+1;for(var _=$-k;$<s&&_<a&&f.charAt(s-$-1)==p.charAt(a-_-1);)$++,_++;if(r[d]=$,$>s)u+=2;else if(_>a)C+=2;else if(!m){var b=e+h-k;if(b>=0&&b<i&&n[b]!=-1){var x=n[b],o=e+x-b;if($=s-$,x>=$)return this.diff_bisectSplit_(f,p,x,o,c)}}}}return[new R.Diff(w,f),new R.Diff(y,p)]},R.prototype.diff_bisectSplit_=function(f,p,c,s,a){var t=f.substring(0,c),e=p.substring(0,s),i=f.substring(c),n=p.substring(s),r=this.diff_main(t,e,!1,a),l=this.diff_main(i,n,!1,a);return r.concat(l)},R.prototype.diff_linesToChars_=function(f,p){var c=[],s={};c[0]="";function a(n){for(var r="",l=0,h=-1,m=c.length;h<n.length-1;){h=n.indexOf(` `,l),h==-1&&(h=n.length-1);var v=n.substring(l,h+1);(s.hasOwnProperty?s.hasOwnProperty(v):s[v]!==void 0)?r+=String.fromCharCode(s[v]):(m==t&&(v=n.substring(l),h=n.length),r+=String.fromCharCode(m),s[v]=m,c[m++]=v),l=h+1}return r}var t=4e4,e=a(f);t=65535;var i=a(p);return{chars1:e,chars2:i,lineArray:c}},R.prototype.diff_charsToLines_=function(f,p){for(var c=0;c<f.length;c++){for(var s=f[c][1],a=[],t=0;t<s.length;t++)a[t]=p[s.charCodeAt(t)];f[c][1]=a.join("")}},R.prototype.diff_commonPrefix=function(f,p){if(!f||!p||f.charAt(0)!=p.charAt(0))return 0;for(var c=0,s=Math.min(f.length,p.length),a=s,t=0;c<a;)f.substring(t,a)==p.substring(t,a)?(c=a,t=c):s=a,a=Math.floor((s-c)/2+c);return a},R.prototype.diff_commonSuffix=function(f,p){if(!f||!p||f.charAt(f.length-1)!=p.charAt(p.length-1))return 0;for(var c=0,s=Math.min(f.length,p.length),a=s,t=0;c<a;)f.substring(f.length-a,f.length-t)==p.substring(p.length-a,p.length-t)?(c=a,t=c):s=a,a=Math.floor((s-c)/2+c);return a},R.prototype.diff_commonOverlap_=function(f,p){var c=f.length,s=p.length;if(c==0||s==0)return 0;c>s?f=f.substring(c-s):c<s&&(p=p.substring(0,c));var a=Math.min(c,s);if(f==p)return a;for(var t=0,e=1;;){var i=f.substring(a-e),n=p.indexOf(i);if(n==-1)return t;e+=n,(n==0||f.substring(a-e)==p.substring(0,e))&&(t=e,e++)}},R.prototype.diff_halfMatch_=function(f,p){if(this.Diff_Timeout<=0)return null;var c=f.length>p.length?f:p,s=f.length>p.length?p:f;if(c.length<4||s.length*2<c.length)return null;var a=this;function t(S,C,u){for(var g=S.substring(u,u+Math.floor(S.length/4)),A=-1,b="",x,o,d,$;(A=C.indexOf(g,A+1))!=-1;){var k=a.diff_commonPrefix(S.substring(u),C.substring(A)),_=a.diff_commonSuffix(S.substring(0,u),C.substring(0,A));b.length<_+k&&(b=C.substring(A-_,A)+C.substring(A,A+k),x=S.substring(0,u-_),o=S.substring(u+k),d=C.substring(0,A-_),$=C.substring(A+k))}return b.length*2>=S.length?[x,o,d,$,b]:null}var e=t(c,s,Math.ceil(c.length/4)),i=t(c,s,Math.ceil(c.length/2)),n;if(!e&&!i)return null;i?e?n=e[4].length>i[4].length?e:i:n=i:n=e;var r,l,h,m;f.length>p.length?(r=n[0],l=n[1],h=n[2],m=n[3]):(h=n[0],m=n[1],r=n[2],l=n[3]);var v=n[4];return[r,l,h,m,v]},R.prototype.diff_cleanupSemantic=function(f){for(var p=!1,c=[],s=0,a=null,t=0,e=0,i=0,n=0,r=0;t<f.length;)f[t][0]==M?(c[s++]=t,e=n,i=r,n=0,r=0,a=f[t][1]):(f[t][0]==y?n+=f[t][1].length:r+=f[t][1].length,a&&a.length<=Math.max(e,i)&&a.length<=Math.max(n,r)&&(f.splice(c[s-1],0,new R.Diff(w,a)),f[c[s-1]+1][0]=y,s--,s--,t=s>0?c[s-1]:-1,e=0,i=0,n=0,r=0,a=null,p=!0)),t++;for(p&&this.diff_cleanupMerge(f),this.diff_cleanupSemanticLossless(f),t=1;t<f.length;){if(f[t-1][0]==w&&f[t][0]==y){var l=f[t-1][1],h=f[t][1],m=this.diff_commonOverlap_(l,h),v=this.diff_commonOverlap_(h,l);m>=v?(m>=l.length/2||m>=h.length/2)&&(f.splice(t,0,new R.Diff(M,h.substring(0,m))),f[t-1][1]=l.substring(0,l.length-m),f[t+1][1]=h.substring(m),t++):(v>=l.length/2||v>=h.length/2)&&(f.splice(t,0,new R.Diff(M,l.substring(0,v))),f[t-1][0]=y,f[t-1][1]=h.substring(0,h.length-v),f[t+1][0]=w,f[t+1][1]=l.substring(v),t++),t++}t++}},R.prototype.diff_cleanupSemanticLossless=function(f){function p(v,S){if(!v||!S)return 6;var C=v.charAt(v.length-1),u=S.charAt(0),g=C.match(R.nonAlphaNumericRegex_),A=u.match(R.nonAlphaNumericRegex_),b=g&&C.match(R.whitespaceRegex_),x=A&&u.match(R.whitespaceRegex_),o=b&&C.match(R.linebreakRegex_),d=x&&u.match(R.linebreakRegex_),$=o&&v.match(R.blanklineEndRegex_),k=d&&S.match(R.blanklineStartRegex_);return $||k?5:o||d?4:g&&!b&&x?3:b||x?2:g||A?1:0}for(var c=1;c<f.length-1;){if(f[c-1][0]==M&&f[c+1][0]==M){var s=f[c-1][1],a=f[c][1],t=f[c+1][1],e=this.diff_commonSuffix(s,a);if(e){var i=a.substring(a.length-e);s=s.substring(0,s.length-e),a=i+a.substring(0,a.length-e),t=i+t}for(var n=s,r=a,l=t,h=p(s,a)+p(a,t);a.charAt(0)===t.charAt(0);){s+=a.charAt(0),a=a.substring(1)+t.charAt(0),t=t.substring(1);var m=p(s,a)+p(a,t);m>=h&&(h=m,n=s,r=a,l=t)}f[c-1][1]!=n&&(n?f[c-1][1]=n:(f.splice(c-1,1),c--),f[c][1]=r,l?f[c+1][1]=l:(f.splice(c+1,1),c--))}c++}},R.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/,R.whitespaceRegex_=/\s/,R.linebreakRegex_=/[\r\n]/,R.blanklineEndRegex_=/\n\r?\n$/,R.blanklineStartRegex_=/^\r?\n\r?\n/,R.prototype.diff_cleanupEfficiency=function(f){for(var p=!1,c=[],s=0,a=null,t=0,e=!1,i=!1,n=!1,r=!1;t<f.length;)f[t][0]==M?(f[t][1].length<this.Diff_EditCost&&(n||r)?(c[s++]=t,e=n,i=r,a=f[t][1]):(s=0,a=null),n=r=!1):(f[t][0]==w?r=!0:n=!0,a&&(e&&i&&n&&r||a.length<this.Diff_EditCost/2&&e+i+n+r==3)&&(f.splice(c[s-1],0,new R.Diff(w,a)),f[c[s-1]+1][0]=y,s--,a=null,e&&i?(n=r=!0,s=0):(s--,t=s>0?c[s-1]:-1,n=r=!1),p=!0)),t++;p&&this.diff_cleanupMerge(f)},R.prototype.diff_cleanupMerge=function(f){f.push(new R.Diff(M,""));for(var p=0,c=0,s=0,a="",t="",e;p<f.length;)switch(f[p][0]){case y:s++,t+=f[p][1],p++;break;case w:c++,a+=f[p][1],p++;break;case M:c+s>1?(c!==0&&s!==0&&(e=this.diff_commonPrefix(t,a),e!==0&&(p-c-s>0&&f[p-c-s-1][0]==M?f[p-c-s-1][1]+=t.substring(0,e):(f.splice(0,0,new R.Diff(M,t.substring(0,e))),p++),t=t.substring(e),a=a.substring(e)),e=this.diff_commonSuffix(t,a),e!==0&&(f[p][1]=t.substring(t.length-e)+f[p][1],t=t.substring(0,t.length-e),a=a.substring(0,a.length-e))),p-=c+s,f.splice(p,c+s),a.length&&(f.splice(p,0,new R.Diff(w,a)),p++),t.length&&(f.splice(p,0,new R.Diff(y,t)),p++),p++):p!==0&&f[p-1][0]==M?(f[p-1][1]+=f[p][1],f.splice(p,1)):p++,s=0,c=0,a="",t="";break}f[f.length-1][1]===""&&f.pop();var i=!1;for(p=1;p<f.length-1;)f[p-1][0]==M&&f[p+1][0]==M&&(f[p][1].substring(f[p][1].length-f[p-1][1].length)==f[p-1][1]?(f[p][1]=f[p-1][1]+f[p][1].substring(0,f[p][1].length-f[p-1][1].length),f[p+1][1]=f[p-1][1]+f[p+1][1],f.splice(p-1,1),i=!0):f[p][1].substring(0,f[p+1][1].length)==f[p+1][1]&&(f[p-1][1]+=f[p+1][1],f[p][1]=f[p][1].substring(f[p+1][1].length)+f[p+1][1],f.splice(p+1,1),i=!0)),p++;i&&this.diff_cleanupMerge(f)},R.prototype.diff_xIndex=function(f,p){var c=0,s=0,a=0,t=0,e;for(e=0;e<f.length&&(f[e][0]!==y&&(c+=f[e][1].length),f[e][0]!==w&&(s+=f[e][1].length),!(c>p));e++)a=c,t=s;return f.length!=e&&f[e][0]===w?t:t+(p-a)},R.prototype.diff_prettyHtml=function(f){for(var p=[],c=/&/g,s=/</g,a=/>/g,t=/\n/g,e=0;e<f.length;e++){var i=f[e][0],n=f[e][1],r=n.replace(c,"&").replace(s,"<").replace(a,">").replace(t,"¶<br>");switch(i){case y:p[e]='<ins style="background:#e6ffe6;">'+r+"</ins>";break;case w:p[e]='<del style="background:#ffe6e6;">'+r+"</del>";break;case M:p[e]="<span>"+r+"</span>";break}}return p.join("")},R.prototype.diff_text1=function(f){for(var p=[],c=0;c<f.length;c++)f[c][0]!==y&&(p[c]=f[c][1]);return p.join("")},R.prototype.diff_text2=function(f){for(var p=[],c=0;c<f.length;c++)f[c][0]!==w&&(p[c]=f[c][1]);return p.join("")},R.prototype.diff_levenshtein=function(f){for(var p=0,c=0,s=0,a=0;a<f.length;a++){var t=f[a][0],e=f[a][1];switch(t){case y:c+=e.length;break;case w:s+=e.length;break;case M:p+=Math.max(c,s),c=0,s=0;break}}return p+=Math.max(c,s),p},R.prototype.diff_toDelta=function(f){for(var p=[],c=0;c<f.length;c++)switch(f[c][0]){case y:p[c]="+"+encodeURI(f[c][1]);break;case w:p[c]="-"+f[c][1].length;break;case M:p[c]="="+f[c][1].length;break}return p.join(" ").replace(/%20/g," ")},R.prototype.diff_fromDelta=function(f,p){for(var c=[],s=0,a=0,t=p.split(/\t/g),e=0;e<t.length;e++){var i=t[e].substring(1);switch(t[e].charAt(0)){case"+":try{c[s++]=new R.Diff(y,decodeURI(i))}catch{throw new Error("Illegal escape in diff_fromDelta: "+i)}break;case"-":case"=":var n=parseInt(i,10);if(isNaN(n)||n<0)throw new Error("Invalid number in diff_fromDelta: "+i);var r=f.substring(a,a+=n);t[e].charAt(0)=="="?c[s++]=new R.Diff(M,r):c[s++]=new R.Diff(w,r);break;default:if(t[e])throw new Error("Invalid diff operation in diff_fromDelta: "+t[e])}}if(a!=f.length)throw new Error("Delta length ("+a+") does not equal source text length ("+f.length+").");return c},R.prototype.match_main=function(f,p,c){if(f==null||p==null||c==null)throw new Error("Null input. (match_main)");return c=Math.max(0,Math.min(c,f.length)),f==p?0:f.length?f.substring(c,c+p.length)==p?c:this.match_bitap_(f,p,c):-1},R.prototype.match_bitap_=function(f,p,c){if(p.length>this.Match_MaxBits)throw new Error("Pattern too long for this browser.");var s=this.match_alphabet_(p),a=this;function t(x,o){var d=x/p.length,$=Math.abs(c-o);return a.Match_Distance?d+$/a.Match_Distance:$?1:d}var e=this.Match_Threshold,i=f.indexOf(p,c);i!=-1&&(e=Math.min(t(0,i),e),i=f.lastIndexOf(p,c+p.length),i!=-1&&(e=Math.min(t(0,i),e)));var n=1<<p.length-1;i=-1;for(var r,l,h=p.length+f.length,m,v=0;v<p.length;v++){for(r=0,l=h;r<l;)t(v,c+l)<=e?r=l:h=l,l=Math.floor((h-r)/2+r);h=l;var S=Math.max(1,c-l+1),C=Math.min(c+l,f.length)+p.length,u=Array(C+2);u[C+1]=(1<<v)-1;for(var g=C;g>=S;g--){var A=s[f.charAt(g-1)];if(v===0?u[g]=(u[g+1]<<1|1)&A:u[g]=(u[g+1]<<1|1)&A|((m[g+1]|m[g])<<1|1)|m[g+1],u[g]&n){var b=t(v,g-1);if(b<=e)if(e=b,i=g-1,i>c)S=Math.max(1,2*c-i);else break}}if(t(v+1,c)>e)break;m=u}return i},R.prototype.match_alphabet_=function(f){for(var p={},c=0;c<f.length;c++)p[f.charAt(c)]=0;for(var c=0;c<f.length;c++)p[f.charAt(c)]|=1<<f.length-c-1;return p},R.prototype.patch_addContext_=function(f,p){if(p.length!=0){if(f.start2===null)throw Error("patch not initialized");for(var c=p.substring(f.start2,f.start2+f.length1),s=0;p.indexOf(c)!=p.lastIndexOf(c)&&c.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)s+=this.Patch_Margin,c=p.substring(f.start2-s,f.start2+f.length1+s);s+=this.Patch_Margin;var a=p.substring(f.start2-s,f.start2);a&&f.diffs.unshift(new R.Diff(M,a));var t=p.substring(f.start2+f.length1,f.start2+f.length1+s);t&&f.diffs.push(new R.Diff(M,t)),f.start1-=a.length,f.start2-=a.length,f.length1+=a.length+t.length,f.length2+=a.length+t.length}},R.prototype.patch_make=function(f,p,c){var s,a;if(typeof f=="string"&&typeof p=="string"&&typeof c>"u")s=f,a=this.diff_main(s,p,!0),a.length>2&&(this.diff_cleanupSemantic(a),this.diff_cleanupEfficiency(a));else if(f&&typeof f=="object"&&typeof p>"u"&&typeof c>"u")a=f,s=this.diff_text1(a);else if(typeof f=="string"&&p&&typeof p=="object"&&typeof c>"u")s=f,a=p;else if(typeof f=="string"&&typeof p=="string"&&c&&typeof c=="object")s=f,a=c;else throw new Error("Unknown call format to patch_make.");if(a.length===0)return[];for(var t=[],e=new R.patch_obj,i=0,n=0,r=0,l=s,h=s,m=0;m<a.length;m++){var v=a[m][0],S=a[m][1];switch(!i&&v!==M&&(e.start1=n,e.start2=r),v){case y:e.diffs[i++]=a[m],e.length2+=S.length,h=h.substring(0,r)+S+h.substring(r);break;case w:e.length1+=S.length,e.diffs[i++]=a[m],h=h.substring(0,r)+h.substring(r+S.length);break;case M:S.length<=2*this.Patch_Margin&&i&&a.length!=m+1?(e.diffs[i++]=a[m],e.length1+=S.length,e.length2+=S.length):S.length>=2*this.Patch_Margin&&i&&(this.patch_addContext_(e,l),t.push(e),e=new R.patch_obj,i=0,l=h,n=r);break}v!==y&&(n+=S.length),v!==w&&(r+=S.length)}return i&&(this.patch_addContext_(e,l),t.push(e)),t},R.prototype.patch_deepCopy=function(f){for(var p=[],c=0;c<f.length;c++){var s=f[c],a=new R.patch_obj;a.diffs=[];for(var t=0;t<s.diffs.length;t++)a.diffs[t]=new R.Diff(s.diffs[t][0],s.diffs[t][1]);a.start1=s.start1,a.start2=s.start2,a.length1=s.length1,a.length2=s.length2,p[c]=a}return p},R.prototype.patch_apply=function(f,p){if(f.length==0)return[p,[]];f=this.patch_deepCopy(f);var c=this.patch_addPadding(f);p=c+p+c,this.patch_splitMax(f);for(var s=0,a=[],t=0;t<f.length;t++){var e=f[t].start2+s,i=this.diff_text1(f[t].diffs),n,r=-1;if(i.length>this.Match_MaxBits?(n=this.match_main(p,i.substring(0,this.Match_MaxBits),e),n!=-1&&(r=this.match_main(p,i.substring(i.length-this.Match_MaxBits),e+i.length-this.Match_MaxBits),(r==-1||n>=r)&&(n=-1))):n=this.match_main(p,i,e),n==-1)a[t]=!1,s-=f[t].length2-f[t].length1;else{a[t]=!0,s=n-e;var l;if(r==-1?l=p.substring(n,n+i.length):l=p.substring(n,r+this.Match_MaxBits),i==l)p=p.substring(0,n)+this.diff_text2(f[t].diffs)+p.substring(n+i.length);else{var h=this.diff_main(i,l,!1);if(i.length>this.Match_MaxBits&&this.diff_levenshtein(h)/i.length>this.Patch_DeleteThreshold)a[t]=!1;else{this.diff_cleanupSemanticLossless(h);for(var m=0,v,S=0;S<f[t].diffs.length;S++){var C=f[t].diffs[S];C[0]!==M&&(v=this.diff_xIndex(h,m)),C[0]===y?p=p.substring(0,n+v)+C[1]+p.substring(n+v):C[0]===w&&(p=p.substring(0,n+v)+p.substring(n+this.diff_xIndex(h,m+C[1].length))),C[0]!==w&&(m+=C[1].length)}}}}}return p=p.substring(c.length,p.length-c.length),[p,a]},R.prototype.patch_addPadding=function(f){for(var p=this.Patch_Margin,c="",s=1;s<=p;s++)c+=String.fromCharCode(s);for(var s=0;s<f.length;s++)f[s].start1+=p,f[s].start2+=p;var a=f[0],t=a.diffs;if(t.length==0||t[0][0]!=M)t.unshift(new R.Diff(M,c)),a.start1-=p,a.start2-=p,a.length1+=p,a.length2+=p;else if(p>t[0][1].length){var e=p-t[0][1].length;t[0][1]=c.substring(t[0][1].length)+t[0][1],a.start1-=e,a.start2-=e,a.length1+=e,a.length2+=e}if(a=f[f.length-1],t=a.diffs,t.length==0||t[t.length-1][0]!=M)t.push(new R.Diff(M,c)),a.length1+=p,a.length2+=p;else if(p>t[t.length-1][1].length){var e=p-t[t.length-1][1].length;t[t.length-1][1]+=c.substring(0,e),a.length1+=e,a.length2+=e}return c},R.prototype.patch_splitMax=function(f){for(var p=this.Match_MaxBits,c=0;c<f.length;c++)if(!(f[c].length1<=p)){var s=f[c];f.splice(c--,1);for(var a=s.start1,t=s.start2,e="";s.diffs.length!==0;){var i=new R.patch_obj,n=!0;for(i.start1=a-e.length,i.start2=t-e.length,e!==""&&(i.length1=i.length2=e.length,i.diffs.push(new R.Diff(M,e)));s.diffs.length!==0&&i.length1<p-this.Patch_Margin;){var r=s.diffs[0][0],l=s.diffs[0][1];r===y?(i.length2+=l.length,t+=l.length,i.diffs.push(s.diffs.shift()),n=!1):r===w&&i.diffs.length==1&&i.diffs[0][0]==M&&l.length>2*p?(i.length1+=l.length,a+=l.length,n=!1,i.diffs.push(new R.Diff(r,l)),s.diffs.shift()):(l=l.substring(0,p-i.length1-this.Patch_Margin),i.length1+=l.length,a+=l.length,r===M?(i.length2+=l.length,t+=l.length):n=!1,i.diffs.push(new R.Diff(r,l)),l==s.diffs[0][1]?s.diffs.shift():s.diffs[0][1]=s.diffs[0][1].substring(l.length))}e=this.diff_text2(i.diffs),e=e.substring(e.length-this.Patch_Margin);var h=this.diff_text1(s.diffs).substring(0,this.Patch_Margin);h!==""&&(i.length1+=h.length,i.length2+=h.length,i.diffs.length!==0&&i.diffs[i.diffs.length-1][0]===M?i.diffs[i.diffs.length-1][1]+=h:i.diffs.push(new R.Diff(M,h))),n||f.splice(++c,0,i)}}},R.prototype.patch_toText=function(f){for(var p=[],c=0;c<f.length;c++)p[c]=f[c];return p.join("")},R.prototype.patch_fromText=function(f){var p=[];if(!f)return p;for(var c=f.split(` `),s=0,a=/^@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@$/;s<c.length;){var t=c[s].match(a);if(!t)throw new Error("Invalid patch string: "+c[s]);var e=new R.patch_obj;for(p.push(e),e.start1=parseInt(t[1],10),t[2]===""?(e.start1--,e.length1=1):t[2]=="0"?e.length1=0:(e.start1--,e.length1=parseInt(t[2],10)),e.start2=parseInt(t[3],10),t[4]===""?(e.start2--,e.length2=1):t[4]=="0"?e.length2=0:(e.start2--,e.length2=parseInt(t[4],10)),s++;s<c.length;){var i=c[s].charAt(0);try{var n=decodeURI(c[s].substring(1))}catch{throw new Error("Illegal escape in patch_fromText: "+n)}if(i=="-")e.diffs.push(new R.Diff(w,n));else if(i=="+")e.diffs.push(new R.Diff(y,n));else if(i==" ")e.diffs.push(new R.Diff(M,n));else{if(i=="@")break;if(i!=="")throw new Error('Invalid patch mode "'+i+'" in: '+n)}s++}}return p},R.patch_obj=function(){this.diffs=[],this.start1=null,this.start2=null,this.length1=0,this.length2=0},R.patch_obj.prototype.toString=function(){var f,p;this.length1===0?f=this.start1+",0":this.length1==1?f=this.start1+1:f=this.start1+1+","+this.length1,this.length2===0?p=this.start2+",0":this.length2==1?p=this.start2+1:p=this.start2+1+","+this.length2;for(var c=["@@ -"+f+" +"+p+` @@ `],s,a=0;a<this.diffs.length;a++){switch(this.diffs[a][0]){case y:s="+";break;case w:s="-";break;case M:s=" ";break}c[a+1]=s+encodeURI(this.diffs[a][1])+` `}return c.join("").replace(/%20/g," ")},O.exports=R,O.exports.diff_match_patch=R,O.exports.DIFF_DELETE=w,O.exports.DIFF_INSERT=y,O.exports.DIFF_EQUAL=M})(Hr);var Wr=we&&we.__extends||function(){var O=function(R,w){return O=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(y,M){y.__proto__=M}||function(y,M){for(var f in M)Object.prototype.hasOwnProperty.call(M,f)&&(y[f]=M[f])},O(R,w)};return function(R,w){if(typeof w!="function"&&w!==null)throw new TypeError("Class extends value "+String(w)+" is not a constructor or null");O(R,w);function y(){this.constructor=R}R.prototype=w===null?Object.create(w):(y.prototype=w.prototype,new y)}}();Object.defineProperty(Bt,"__esModule",{value:!0});var ae=Ot,hi=nt,Pr=pt,Nr=Rt,zr=function(O){Wr(R,O);function R(w){var y=O.call(this,w)||this;return y.state={value:y.props.value},y.onChange=y.onChange.bind(y),y.diff=y.diff.bind(y),y}return R.prototype.componentDidUpdate=function(){var w=this.props.value;w!==this.state.value&&this.setState({value:w})},R.prototype.onChange=function(w){this.setState({value:w}),this.props.onChange&&this.props.onChange(w)},R.prototype.diff=function(){var w=new Nr,y=this.state.value[0],M=this.state.value[1];if(y.length===0&&M.length===0)return[];var f=w.diff_main(y,M);w.diff_cleanupSemantic(f);var p=this.generateDiffedLines(f),c=this.setCodeMarkers(p);return c},R.prototype.generateDiffedLines=function(w){var y={DIFF_EQUAL:0,DIFF_DELETE:-1,DIFF_INSERT:1},M={left:[],right:[]},f={left:1,right:1};return w.forEach(function(p){var c=p[0],s=p[1],a=s.split(` `).length-1;if(s.length!==0){var t=s[0],e=s[s.length-1],i=0;switch(c){case y.DIFF_EQUAL:f.left+=a,f.right+=a;break;case y.DIFF_DELETE:t===` `&&(f.left++,a--),i=a,i===0&&M.right.push({startLine:f.right,endLine:f.right}),e===` `&&(i-=1),M.left.push({startLine:f.left,endLine:f.left+i}),f.left+=a;break;case y.DIFF_INSERT:t===` `&&(f.right++,a--),i=a,i===0&&M.left.push({startLine:f.left,endLine:f.left}),e===` `&&(i-=1),M.right.push({startLine:f.right,endLine:f.right+i}),f.right+=a;break;default:throw new Error("Diff type was not defined.")}}}),M},R.prototype.setCodeMarkers=function(w){w===void 0&&(w={left:[],right:[]});for(var y=[],M={left:[],right:[]},f=0;f<w.left.length;f++){var p={startRow:w.left[f].startLine-1,endRow:w.left[f].endLine,type:"text",className:"codeMarker"};M.left.push(p)}for(var f=0;f<w.right.length;f++){var p={startRow:w.right[f].startLine-1,endRow:w.right[f].endLine,type:"text",className:"codeMarker"};M.right.push(p)}return y[0]=M.left,y[1]=M.right,y},R.prototype.render=function(){var w=this.diff();return hi.createElement(Pr.default,{name:this.props.name,className:this.props.className,focus:this.props.focus,orientation:this.props.orientation,splits:this.props.splits,mode:this.props.mode,theme:this.props.theme,height:this.props.height,width:this.props.width,fontSize:this.props.fontSize,showGutter:this.props.showGutter,onChange:this.onChange,onPaste:this.props.onPaste,onLoad:this.props.onLoad,onScroll:this.props.onScroll,minLines:this.props.minLines,maxLines:this.props.maxLines,readOnly:this.props.readOnly,highlightActiveLine:this.props.highlightActiveLine,showPrintMargin:this.props.showPrintMargin,tabSize:this.props.tabSize,cursorStart:this.props.cursorStart,editorProps:this.props.editorProps,style:this.props.style,scrollMargin:this.props.scrollMargin,setOptions:this.props.setOptions,wrapEnabled:this.props.wrapEnabled,enableBasicAutocompletion:this.props.enableBasicAutocompletion,enableLiveAutocompletion:this.props.enableLiveAutocompletion,value:this.state.value,markers:w})},R.propTypes={cursorStart:ae.number,editorProps:ae.object,enableBasicAutocompletion:ae.bool,enableLiveAutocompletion:ae.bool,focus:ae.bool,fontSize:ae.number,height:ae.string,highlightActiveLine:ae.bool,maxLines:ae.number,minLines:ae.number,mode:ae.string,name:ae.string,className:ae.string,onLoad:ae.func,onPaste:ae.func,onScroll:ae.func,onChange:ae.func,orientation:ae.string,readOnly:ae.bool,scrollMargin:ae.array,setOptions:ae.object,showGutter:ae.bool,showPrintMargin:ae.bool,splits:ae.number,style:ae.object,tabSize:ae.number,theme:ae.string,value:ae.array,width:ae.string,wrapEnabled:ae.bool},R.defaultProps={cursorStart:1,editorProps:{},enableBasicAutocompletion:!1,enableLiveAutocompletion:!1,focus:!1,fontSize:12,height:"500px",highlightActiveLine:!0,maxLines:null,minLines:null,mode:"",name:"ace-editor",onLoad:null,onScroll:null,onPaste:null,onChange:null,orientation:"beside",readOnly:!1,scrollMargin:[0,0,0,0],setOptions:{},showGutter:!0,showPrintMargin:!0,splits:2,style:{},tabSize:4,theme:"github",value:["",""],width:"500px",wrapEnabled:!0},R}(hi.Component);Bt.default=zr;Object.defineProperty(Qe,"__esModule",{value:!0});Qe.diff=Qe.split=void 0;var Ur=It,Vr=Bt;Qe.diff=Vr.default;var Gr=pt;Qe.split=Gr.default;var Kr=Qe.default=Ur.default,ci={},jr={get exports(){return ci},set exports(O){ci=O}};(function(O,R){ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(w,y,M){var f=w("../lib/oop");w("../lib/lang");var p=w("./text_highlight_rules").TextHighlightRules,c=y.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",s=y.supportFunction="rgb|rgba|url|attr|counter|counters",a=y.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",t=y.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",e=y.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",i=y.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",n=y.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",r=y.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",l=function(){var h=this.createKeywordMapper({"support.function":s,"support.constant":a,"support.type":c,"support.constant.color":t,"support.constant.fonts":e},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:i},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+i+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:i},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:n},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:r},{include:"url"},{token:h,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};f.inherits(l,p),y.CssHighlightRules=l}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(w,y,M){var f=w("../range").Range,p=function(){};(function(){this.checkOutdent=function(c,s){return/^\s+$/.test(c)?/^\s*\}/.test(s):!1},this.autoOutdent=function(c,s){var a=c.getLine(s),t=a.match(/^(\s*\})/);if(!t)return 0;var e=t[1].length,i=c.findMatchingBracket({row:s,column:e});if(!i||i.row==s)return 0;var n=this.$getIndent(c.getLine(i.row));c.replace(new f(s,0,s,e-1),n)},this.$getIndent=function(c){return c.match(/^\s*/)[0]}}).call(p.prototype),y.MatchingBraceOutdent=p}),ace.define("ace/mode/css_completions",["require","exports","module"],function(w,y,M){var f={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},p=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var c=document.createElement("c").style;for(var s in c)if(typeof c[s]=="string"){var a=s.replace(/[A-Z]/g,function(t){return"-"+t.toLowerCase()});f.hasOwnProperty(a)||(f[a]=1)}}this.completionsDefined=!0},this.getCompletions=function(c,s,a,t){if(this.completionsDefined||this.defineCompletions(),c==="ruleset"||s.$mode.$id=="ace/mode/scss"){var e=s.getLine(a.row).substr(0,a.column),i=/\([^)]*$/.test(e);return i&&(e=e.substr(e.lastIndexOf("(")+1)),/:[^;]+$/.test(e)?this.getPropertyValueCompletions(c,s,a,t):this.getPropertyCompletions(c,s,a,t,i)}return[]},this.getPropertyCompletions=function(c,s,a,t,e){e=e||!1;var i=Object.keys(f);return i.map(function(n){return{caption:n,snippet:n+": $0"+(e?"":";"),meta:"property",score:1e6}})},this.getPropertyValueCompletions=function(c,s,a,t){var e=s.getLine(a.row).substr(0,a.column),i=(/([\w\-]+):[^:]*$/.exec(e)||{})[1];if(!i)return[];var n=[];return i in f&&typeof f[i]=="object"&&(n=Object.keys(f[i])),n.map(function(r){return{caption:r,snippet:r,meta:"property value",score:1e6}})}}).call(p.prototype),y.CssCompletions=p}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(w,y,M){var f=w("../../lib/oop");w("../behaviour").Behaviour;var p=w("./cstyle").CstyleBehaviour,c=w("../../token_iterator").TokenIterator,s=function(){this.inherit(p),this.add("colon","insertion",function(a,t,e,i,n){if(n===":"&&e.selection.isEmpty()){var r=e.getCursorPosition(),l=new c(i,r.row,r.column),h=l.getCurrentToken();if(h&&h.value.match(/\s+/)&&(h=l.stepBackward()),h&&h.type==="support.type"){var m=i.doc.getLine(r.row),v=m.substring(r.column,r.column+1);if(v===":")return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(m.substring(r.column)))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(a,t,e,i,n){var r=i.doc.getTextRange(n);if(!n.isMultiLine()&&r===":"){var l=e.getCursorPosition(),h=new c(i,l.row,l.column),m=h.getCurrentToken();if(m&&m.value.match(/\s+/)&&(m=h.stepBackward()),m&&m.type==="support.type"){var v=i.doc.getLine(n.start.row),S=v.substring(n.end.column,n.end.column+1);if(S===";")return n.end.column++,n}}}),this.add("semicolon","insertion",function(a,t,e,i,n){if(n===";"&&e.selection.isEmpty()){var r=e.getCursorPosition(),l=i.doc.getLine(r.row),h=l.substring(r.column,r.column+1);if(h===";")return{text:"",selection:[1,1]}}}),this.add("!important","insertion",function(a,t,e,i,n){if(n==="!"&&e.selection.isEmpty()){var r=e.getCursorPosition(),l=i.doc.getLine(r.row);if(/^\s*(;|}|$)/.test(l.substring(r.column)))return{text:"!important",selection:[10,10]}}})};f.inherits(s,p),y.CssBehaviour=s}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(w,y,M){var f=w("../../lib/oop"),p=w("../../range").Range,c=w("./fold_mode").FoldMode,s=y.FoldMode=function(a){a&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+a.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+a.end)))};f.inherits(s,c),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(a,t,e){var i=a.getLine(e);if(this.singleLineBlockCommentRe.test(i)&&!this.startRegionRe.test(i)&&!this.tripleStarBlockCommentRe.test(i))return"";var n=this._getFoldWidgetBase(a,t,e);return!n&&this.startRegionRe.test(i)?"start":n},this.getFoldWidgetRange=function(a,t,e,i){var n=a.getLine(e);if(this.startRegionRe.test(n))return this.getCommentRegionBlock(a,n,e);var h=n.match(this.foldingStartMarker);if(h){var r=h.index;if(h[1])return this.openingBracketBlock(a,h[1],e,r);var l=a.getCommentFoldRange(e,r+h[0].length,1);return l&&!l.isMultiLine()&&(i?l=this.getSectionRange(a,e):t!="all"&&(l=null)),l}if(t!=="markbegin"){var h=n.match(this.foldingStopMarker);if(h){var r=h.index+h[0].length;return h[1]?this.closingBracketBlock(a,h[1],e,r):a.getCommentFoldRange(e,r,-1)}}},this.getSectionRange=function(a,t){var e=a.getLine(t),i=e.search(/\S/),n=t,r=e.length;t=t+1;for(var l=t,h=a.getLength();++t<h;){e=a.getLine(t);var m=e.search(/\S/);if(m!==-1){if(i>m)break;var v=this.getFoldWidgetRange(a,"all",t);if(v){if(v.start.row<=n)break;if(v.isMultiLine())t=v.end.row;else if(i==m)break}l=t}}return new p(n,r,l,a.getLine(l).length)},this.getCommentRegionBlock=function(a,t,e){for(var i=t.search(/\s*$/),n=a.getLength(),r=e,l=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,h=1;++e<n;){t=a.getLine(e);var m=l.exec(t);if(m&&(m[1]?h--:h++,!h))break}var v=e;if(v>r)return new p(r,i,v,t.length)}}.call(s.prototype)}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(w,y,M){var f=w("../lib/oop"),p=w("./text").Mode,c=w("./css_highlight_rules").CssHighlightRules,s=w("./matching_brace_outdent").MatchingBraceOutdent,a=w("../worker/worker_client").WorkerClient,t=w("./css_completions").CssCompletions,e=w("./behaviour/css").CssBehaviour,i=w("./folding/cstyle").FoldMode,n=function(){this.HighlightRules=c,this.$outdent=new s,this.$behaviour=new e,this.$completer=new t,this.foldingRules=new i};f.inherits(n,p),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(r,l,h){var m=this.$getIndent(l),v=this.getTokenizer().getLineTokens(l,r).tokens;if(v.length&&v[v.length-1].type=="comment")return m;var S=l.match(/^.*\{\s*$/);return S&&(m+=h),m},this.checkOutdent=function(r,l,h){return this.$outdent.checkOutdent(l,h)},this.autoOutdent=function(r,l,h){this.$outdent.autoOutdent(l,h)},this.getCompletions=function(r,l,h,m){return this.$completer.getCompletions(r,l,h,m)},this.createWorker=function(r){var l=new a(["ace"],"ace/mode/css_worker","Worker");return l.attachToDocument(r.getDocument()),l.on("annotate",function(h){r.setAnnotations(h.data)}),l.on("terminate",function(){r.clearAnnotations()}),l},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(n.prototype),y.Mode=n}),function(){ace.require(["ace/mode/css"],function(w){O&&(O.exports=w)})}()})(jr);var ui={},Yr={get exports(){return ui},set exports(O){ui=O}};(function(O,R){ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(w,y,M){var f=w("../lib/oop"),p=w("./text_highlight_rules").TextHighlightRules,c=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},c.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};f.inherits(c,p),c.getTagRule=function(s){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},c.getStartRule=function(s){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:s}},c.getEndRule=function(s){return{token:"comment.doc",regex:"\\*\\/",next:s}},y.DocCommentHighlightRules=c}),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,y,M){var f=w("../lib/oop"),p=w("./doc_comment_highlight_rules").DocCommentHighlightRules,c=w("./text_highlight_rules").TextHighlightRules,s="[a-zA-Z\\$_¡-][a-zA-Z\\d\\$_¡-]*",a=function(i){var n=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Symbol|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|constructor","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",l="\\\\(?: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:[p.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:"support.constant",regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:n,regex:s},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/,next:"start"},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{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:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|lter|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward|rEach)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:s},{regex:"",token:"empty",next:"no_regex"}],start:[p.getStartRule("doc-start"),e("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],default_parameter:[{token:"string",regex:"'(?=.)",push:[{token:"string",regex:"'|$",next:"pop"},{include:"qstring"}]},{token:"string",regex:'"(?=.)',push:[{token:"string",regex:'"|$',next:"pop"},{include:"qqstring"}]},{token:"constant.language",regex:"null|Infinity|NaN|undefined"},{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:"punctuation.operator",regex:",",next:"function_arguments"},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],function_arguments:[e("function_arguments"),{token:"variable.parameter",regex:s},{token:"punctuation.operator",regex:","},{token:"text",regex:"\\s+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:l},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},(!i||!i.noES6)&&(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(h,m,v){if(this.next=h=="{"?this.nextState:"",h=="{"&&v.length)v.unshift("start",m);else if(h=="}"&&v.length&&(v.shift(),this.next=v.shift(),this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1))return"paren.quasi.end";return h=="{"?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:l},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]},{token:["variable.parameter","text"],regex:"("+s+")(\\s*)(?=\\=>)"},{token:"paren.lparen",regex:"(\\()(?=.+\\s*=>)",next:"function_arguments"},{token:"variable.language",regex:"(?:(?:(?:Weak)?(?:Set|Map))|Promise)\\b"}),this.$rules.function_arguments.unshift({token:"keyword.operator",regex:"=",next:"default_parameter"},{token:"keyword.operator",regex:"\\.{3}"}),this.$rules.property.unshift({token:"support.function",regex:"(findIndex|repeat|startsWith|endsWith|includes|isSafeInteger|trunc|cbrt|log2|log10|sign|then|catch|finally|resolve|reject|race|any|all|allSettled|keys|entries|isInteger)\\b(?=\\()"},{token:"constant.language",regex:"(?:MAX_SAFE_INTEGER|MIN_SAFE_INTEGER|EPSILON)\\b"}),(!i||i.jsx!=!1)&&t.call(this)),this.embedRules(p,"doc-",[p.getEndRule("no_regex")]),this.normalizeRules()};f.inherits(a,c);function t(){var i=s.replace("\\d","\\d\\-"),n={onMatch:function(l,h,m){var v=l.charAt(1)=="/"?2:1;return v==1?(h!=this.nextState?m.unshift(this.next,this.nextState,0):m.unshift(this.next),m[2]++):v==2&&h==this.nextState&&(m[1]--,(!m[1]||m[1]<0)&&(m.shift(),m.shift())),[{type:"meta.tag.punctuation."+(v==1?"":"end-")+"tag-open.xml",value:l.slice(0,v)},{type:"meta.tag.tag-name.xml",value:l.substr(v)}]},regex:"</?"+i,next:"jsxAttributes",nextState:"jsx"};this.$rules.start.unshift(n);var r={regex:"{",token:"paren.quasi.start",push:"start"};this.$rules.jsx=[r,n,{include:"reference"},{defaultToken:"string"}],this.$rules.jsxAttributes=[{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",onMatch:function(l,h,m){return h==m[0]&&m.shift(),l.length==2&&(m[0]==this.nextState&&m[1]--,(!m[1]||m[1]<0)&&m.splice(0,2)),this.next=m[0]||"start",[{type:this.token,value:l}]},nextState:"jsx"},r,e("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:i},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},n],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function e(i){return[{token:"comment",regex:/\/\*/,next:[p.getTagRule(),{token:"comment",regex:"\\*\\/",next:i||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[p.getTagRule(),{token:"comment",regex:"$|^",next:i||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}y.JavaScriptHighlightRules=a}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(w,y,M){var f=w("../range").Range,p=function(){};(function(){this.checkOutdent=function(c,s){return/^\s+$/.test(c)?/^\s*\}/.test(s):!1},this.autoOutdent=function(c,s){var a=c.getLine(s),t=a.match(/^(\s*\})/);if(!t)return 0;var e=t[1].length,i=c.findMatchingBracket({row:s,column:e});if(!i||i.row==s)return 0;var n=this.$getIndent(c.getLine(i.row));c.replace(new f(s,0,s,e-1),n)},this.$getIndent=function(c){return c.match(/^\s*/)[0]}}).call(p.prototype),y.MatchingBraceOutdent=p}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(w,y,M){var f=w("../../lib/oop"),p=w("../../range").Range,c=w("./fold_mode").FoldMode,s=y.FoldMode=function(a){a&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+a.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+a.end)))};f.inherits(s,c),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(a,t,e){var i=a.getLine(e);if(this.singleLineBlockCommentRe.test(i)&&!this.startRegionRe.test(i)&&!this.tripleStarBlockCommentRe.test(i))return"";var n=this._getFoldWidgetBase(a,t,e);return!n&&this.startRegionRe.test(i)?"start":n},this.getFoldWidgetRange=function(a,t,e,i){var n=a.getLine(e);if(this.startRegionRe.test(n))return this.getCommentRegionBlock(a,n,e);var h=n.match(this.foldingStartMarker);if(h){var r=h.index;if(h[1])return this.openingBracketBlock(a,h[1],e,r);var l=a.getCommentFoldRange(e,r+h[0].length,1);return l&&!l.isMultiLine()&&(i?l=this.getSectionRange(a,e):t!="all"&&(l=null)),l}if(t!=="markbegin"){var h=n.match(this.foldingStopMarker);if(h){var r=h.index+h[0].length;return h[1]?this.closingBracketBlock(a,h[1],e,r):a.getCommentFoldRange(e,r,-1)}}},this.getSectionRange=function(a,t){var e=a.getLine(t),i=e.search(/\S/),n=t,r=e.length;t=t+1;for(var l=t,h=a.getLength();++t<h;){e=a.getLine(t);var m=e.search(/\S/);if(m!==-1){if(i>m)break;var v=this.getFoldWidgetRange(a,"all",t);if(v){if(v.start.row<=n)break;if(v.isMultiLine())t=v.end.row;else if(i==m)break}l=t}}return new p(n,r,l,a.getLine(l).length)},this.getCommentRegionBlock=function(a,t,e){for(var i=t.search(/\s*$/),n=a.getLength(),r=e,l=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,h=1;++e<n;){t=a.getLine(e);var m=l.exec(t);if(m&&(m[1]?h--:h++,!h))break}var v=e;if(v>r)return new p(r,i,v,t.length)}}.call(s.prototype)}),ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(w,y,M){var f=w("../lib/oop"),p=w("./text").Mode,c=w("./javascript_highlight_rules").JavaScriptHighlightRules,s=w("./matching_brace_outdent").MatchingBraceOutdent,a=w("../worker/worker_client").WorkerClient,t=w("./behaviour/cstyle").CstyleBehaviour,e=w("./folding/cstyle").FoldMode,i=function(){this.HighlightRules=c,this.$outdent=new s,this.$behaviour=new t,this.foldingRules=new e};f.inherits(i,p),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.getNextLineIndent=function(n,r,l){var h=this.$getIndent(r),m=this.getTokenizer().getLineTokens(r,n),v=m.tokens,S=m.state;if(v.length&&v[v.length-1].type=="comment")return h;if(n=="start"||n=="no_regex"){var C=r.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);C&&(h+=l)}else if(n=="doc-start"){if(S=="start"||S=="no_regex")return"";var C=r.match(/^\s*(\/?)\*/);C&&(C[1]&&(h+=" "),h+="* ")}return h},this.checkOutdent=function(n,r,l){return this.$outdent.checkOutdent(r,l)},this.autoOutdent=function(n,r,l){this.$outdent.autoOutdent(r,l)},this.createWorker=function(n){var r=new a(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return r.attachToDocument(n.getDocument()),r.on("annotate",function(l){n.setAnnotations(l.data)}),r.on("terminate",function(){n.clearAnnotations()}),r},this.$id="ace/mode/javascript",this.snippetFileId="ace/snippets/javascript"}.call(i.prototype),y.Mode=i}),ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"],function(w,y,M){var f=w("../lib/oop");w("../lib/lang");var p=w("./text_highlight_rules").TextHighlightRules,c=y.supportType="align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|max-zoom|min-height|min-width|min-zoom|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|user-select|user-zoom|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index",s=y.supportFunction="rgb|rgba|url|attr|counter|counters",a=y.supportConstant="absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|flex-end|flex-start|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero|zoom",t=y.supportConstantColor="aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen",e=y.supportConstantFonts="arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace",i=y.numRe="\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))",n=y.pseudoElements="(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b",r=y.pseudoClasses="(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b",l=function(){var h=this.createKeywordMapper({"support.function":s,"support.constant":a,"support.type":c,"support.constant.color":t,"support.constant.fonts":e},"text",!0);this.$rules={start:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"ruleset"},{token:"paren.rparen",regex:"\\}"},{token:"string",regex:"@(?!viewport)",next:"media"},{token:"keyword",regex:"#[a-z0-9-_]+"},{token:"keyword",regex:"%"},{token:"variable",regex:"\\.[a-z0-9-_]+"},{token:"string",regex:":[a-z0-9-_]+"},{token:"constant.numeric",regex:i},{token:"constant",regex:"[a-z0-9-_]+"},{caseInsensitive:!0}],media:[{include:["strings","url","comments"]},{token:"paren.lparen",regex:"\\{",next:"start"},{token:"paren.rparen",regex:"\\}",next:"start"},{token:"string",regex:";",next:"start"},{token:"keyword",regex:"(?:media|supports|document|charset|import|namespace|media|supports|document|page|font|keyframes|viewport|counter-style|font-feature-values|swash|ornaments|annotation|stylistic|styleset|character-variant)"}],comments:[{token:"comment",regex:"\\/\\*",push:[{token:"comment",regex:"\\*\\/",next:"pop"},{defaultToken:"comment"}]}],ruleset:[{regex:"-(webkit|ms|moz|o)-",token:"text"},{token:"punctuation.operator",regex:"[:;]"},{token:"paren.rparen",regex:"\\}",next:"start"},{include:["strings","url","comments"]},{token:["constant.numeric","keyword"],regex:"("+i+")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vmax|vmin|vm|vw|%)"},{token:"constant.numeric",regex:i},{token:"constant.numeric",regex:"#[a-f0-9]{6}"},{token:"constant.numeric",regex:"#[a-f0-9]{3}"},{token:["punctuation","entity.other.attribute-name.pseudo-element.css"],regex:n},{token:["punctuation","entity.other.attribute-name.pseudo-class.css"],regex:r},{include:"url"},{token:h,regex:"\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*"},{caseInsensitive:!0}],url:[{token:"support.function",regex:"(?:url(:?-prefix)?|domain|regexp)\\(",push:[{token:"support.function",regex:"\\)",next:"pop"},{defaultToken:"string"}]}],strings:[{token:"string.start",regex:"'",push:[{token:"string.end",regex:"'|$",next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]},{token:"string.start",regex:'"',push:[{token:"string.end",regex:'"|$',next:"pop"},{include:"escapes"},{token:"constant.language.escape",regex:/\\$/,consumeLineEnd:!0},{defaultToken:"string"}]}],escapes:[{token:"constant.language.escape",regex:/\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/}]},this.normalizeRules()};f.inherits(l,p),y.CssHighlightRules=l}),ace.define("ace/mode/css_completions",["require","exports","module"],function(w,y,M){var f={background:{"#$0":1},"background-color":{"#$0":1,transparent:1,fixed:1},"background-image":{"url('/$0')":1},"background-repeat":{repeat:1,"repeat-x":1,"repeat-y":1,"no-repeat":1,inherit:1},"background-position":{bottom:2,center:2,left:2,right:2,top:2,inherit:2},"background-attachment":{scroll:1,fixed:1},"background-size":{cover:1,contain:1},"background-clip":{"border-box":1,"padding-box":1,"content-box":1},"background-origin":{"border-box":1,"padding-box":1,"content-box":1},border:{"solid $0":1,"dashed $0":1,"dotted $0":1,"#$0":1},"border-color":{"#$0":1},"border-style":{solid:2,dashed:2,dotted:2,double:2,groove:2,hidden:2,inherit:2,inset:2,none:2,outset:2,ridged:2},"border-collapse":{collapse:1,separate:1},bottom:{px:1,em:1,"%":1},clear:{left:1,right:1,both:1,none:1},color:{"#$0":1,"rgb(#$00,0,0)":1},cursor:{default:1,pointer:1,move:1,text:1,wait:1,help:1,progress:1,"n-resize":1,"ne-resize":1,"e-resize":1,"se-resize":1,"s-resize":1,"sw-resize":1,"w-resize":1,"nw-resize":1},display:{none:1,block:1,inline:1,"inline-block":1,"table-cell":1},"empty-cells":{show:1,hide:1},float:{left:1,right:1,none:1},"font-family":{Arial:2,"Comic Sans MS":2,Consolas:2,"Courier New":2,Courier:2,Georgia:2,Monospace:2,"Sans-Serif":2,"Segoe UI":2,Tahoma:2,"Times New Roman":2,"Trebuchet MS":2,Verdana:1},"font-size":{px:1,em:1,"%":1},"font-weight":{bold:1,normal:1},"font-style":{italic:1,normal:1},"font-variant":{normal:1,"small-caps":1},height:{px:1,em:1,"%":1},left:{px:1,em:1,"%":1},"letter-spacing":{normal:1},"line-height":{normal:1},"list-style-type":{none:1,disc:1,circle:1,square:1,decimal:1,"decimal-leading-zero":1,"lower-roman":1,"upper-roman":1,"lower-greek":1,"lower-latin":1,"upper-latin":1,georgian:1,"lower-alpha":1,"upper-alpha":1},margin:{px:1,em:1,"%":1},"margin-right":{px:1,em:1,"%":1},"margin-left":{px:1,em:1,"%":1},"margin-top":{px:1,em:1,"%":1},"margin-bottom":{px:1,em:1,"%":1},"max-height":{px:1,em:1,"%":1},"max-width":{px:1,em:1,"%":1},"min-height":{px:1,em:1,"%":1},"min-width":{px:1,em:1,"%":1},overflow:{hidden:1,visible:1,auto:1,scroll:1},"overflow-x":{hidden:1,visible:1,auto:1,scroll:1},"overflow-y":{hidden:1,visible:1,auto:1,scroll:1},padding:{px:1,em:1,"%":1},"padding-top":{px:1,em:1,"%":1},"padding-right":{px:1,em:1,"%":1},"padding-bottom":{px:1,em:1,"%":1},"padding-left":{px:1,em:1,"%":1},"page-break-after":{auto:1,always:1,avoid:1,left:1,right:1},"page-break-before":{auto:1,always:1,avoid:1,left:1,right:1},position:{absolute:1,relative:1,fixed:1,static:1},right:{px:1,em:1,"%":1},"table-layout":{fixed:1,auto:1},"text-decoration":{none:1,underline:1,"line-through":1,blink:1},"text-align":{left:1,right:1,center:1,justify:1},"text-transform":{capitalize:1,uppercase:1,lowercase:1,none:1},top:{px:1,em:1,"%":1},"vertical-align":{top:1,bottom:1},visibility:{hidden:1,visible:1},"white-space":{nowrap:1,normal:1,pre:1,"pre-line":1,"pre-wrap":1},width:{px:1,em:1,"%":1},"word-spacing":{normal:1},filter:{"alpha(opacity=$0100)":1},"text-shadow":{"$02px 2px 2px #777":1},"text-overflow":{"ellipsis-word":1,clip:1,ellipsis:1},"-moz-border-radius":1,"-moz-border-radius-topright":1,"-moz-border-radius-bottomright":1,"-moz-border-radius-topleft":1,"-moz-border-radius-bottomleft":1,"-webkit-border-radius":1,"-webkit-border-top-right-radius":1,"-webkit-border-top-left-radius":1,"-webkit-border-bottom-right-radius":1,"-webkit-border-bottom-left-radius":1,"-moz-box-shadow":1,"-webkit-box-shadow":1,transform:{"rotate($00deg)":1,"skew($00deg)":1},"-moz-transform":{"rotate($00deg)":1,"skew($00deg)":1},"-webkit-transform":{"rotate($00deg)":1,"skew($00deg)":1}},p=function(){};(function(){this.completionsDefined=!1,this.defineCompletions=function(){if(document){var c=document.createElement("c").style;for(var s in c)if(typeof c[s]=="string"){var a=s.replace(/[A-Z]/g,function(t){return"-"+t.toLowerCase()});f.hasOwnProperty(a)||(f[a]=1)}}this.completionsDefined=!0},this.getCompletions=function(c,s,a,t){if(this.completionsDefined||this.defineCompletions(),c==="ruleset"||s.$mode.$id=="ace/mode/scss"){var e=s.getLine(a.row).substr(0,a.column),i=/\([^)]*$/.test(e);return i&&(e=e.substr(e.lastIndexOf("(")+1)),/:[^;]+$/.test(e)?this.getPropertyValueCompletions(c,s,a,t):this.getPropertyCompletions(c,s,a,t,i)}return[]},this.getPropertyCompletions=function(c,s,a,t,e){e=e||!1;var i=Object.keys(f);return i.map(function(n){return{caption:n,snippet:n+": $0"+(e?"":";"),meta:"property",score:1e6}})},this.getPropertyValueCompletions=function(c,s,a,t){var e=s.getLine(a.row).substr(0,a.column),i=(/([\w\-]+):[^:]*$/.exec(e)||{})[1];if(!i)return[];var n=[];return i in f&&typeof f[i]=="object"&&(n=Object.keys(f[i])),n.map(function(r){return{caption:r,snippet:r,meta:"property value",score:1e6}})}}).call(p.prototype),y.CssCompletions=p}),ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"],function(w,y,M){var f=w("../../lib/oop");w("../behaviour").Behaviour;var p=w("./cstyle").CstyleBehaviour,c=w("../../token_iterator").TokenIterator,s=function(){this.inherit(p),this.add("colon","insertion",function(a,t,e,i,n){if(n===":"&&e.selection.isEmpty()){var r=e.getCursorPosition(),l=new c(i,r.row,r.column),h=l.getCurrentToken();if(h&&h.value.match(/\s+/)&&(h=l.stepBackward()),h&&h.type==="support.type"){var m=i.doc.getLine(r.row),v=m.substring(r.column,r.column+1);if(v===":")return{text:"",selection:[1,1]};if(/^(\s+[^;]|\s*$)/.test(m.substring(r.column)))return{text:":;",selection:[1,1]}}}}),this.add("colon","deletion",function(a,t,e,i,n){var r=i.doc.getTextRange(n);if(!n.isMultiLine()&&r===":"){var l=e.getCursorPosition(),h=new c(i,l.row,l.column),m=h.getCurrentToken();if(m&&m.value.match(/\s+/)&&(m=h.stepBackward()),m&&m.type==="support.type"){var v=i.doc.getLine(n.start.row),S=v.substring(n.end.column,n.end.column+1);if(S===";")return n.end.column++,n}}}),this.add("semicolon","insertion",function(a,t,e,i,n){if(n===";"&&e.selection.isEmpty()){var r=e.getCursorPosition(),l=i.doc.getLine(r.row),h=l.substring(r.column,r.column+1);if(h===";")return{text:"",selection:[1,1]}}}),this.add("!important","insertion",function(a,t,e,i,n){if(n==="!"&&e.selection.isEmpty()){var r=e.getCursorPosition(),l=i.doc.getLine(r.row);if(/^\s*(;|}|$)/.test(l.substring(r.column)))return{text:"!important",selection:[10,10]}}})};f.inherits(s,p),y.CssBehaviour=s}),ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"],function(w,y,M){var f=w("../lib/oop"),p=w("./text").Mode,c=w("./css_highlight_rules").CssHighlightRules,s=w("./matching_brace_outdent").MatchingBraceOutdent,a=w("../worker/worker_client").WorkerClient,t=w("./css_completions").CssCompletions,e=w("./behaviour/css").CssBehaviour,i=w("./folding/cstyle").FoldMode,n=function(){this.HighlightRules=c,this.$outdent=new s,this.$behaviour=new e,this.$completer=new t,this.foldingRules=new i};f.inherits(n,p),function(){this.foldingRules="cStyle",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(r,l,h){var m=this.$getIndent(l),v=this.getTokenizer().getLineTokens(l,r).tokens;if(v.length&&v[v.length-1].type=="comment")return m;var S=l.match(/^.*\{\s*$/);return S&&(m+=h),m},this.checkOutdent=function(r,l,h){return this.$outdent.checkOutdent(l,h)},this.autoOutdent=function(r,l,h){this.$outdent.autoOutdent(l,h)},this.getCompletions=function(r,l,h,m){return this.$completer.getCompletions(r,l,h,m)},this.createWorker=function(r){var l=new a(["ace"],"ace/mode/css_worker","Worker");return l.attachToDocument(r.getDocument()),l.on("annotate",function(h){r.setAnnotations(h.data)}),l.on("terminate",function(){r.clearAnnotations()}),l},this.$id="ace/mode/css",this.snippetFileId="ace/snippets/css"}.call(n.prototype),y.Mode=n}),ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(w,y,M){var f=w("../lib/oop"),p=w("./text_highlight_rules").TextHighlightRules,c=function(s){var a="[_:a-zA-ZÀ-][-_:.a-zA-Z0-9À-]*";this.$rules={start:[{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\[",next:"cdata"},{token:["punctuation.instruction.xml","keyword.instruction.xml"],regex:"(<\\?)("+a+")",next:"processing_instruction"},{token:"comment.start.xml",regex:"<\\!--",next:"comment"},{token:["xml-pe.doctype.xml","xml-pe.doctype.xml"],regex:"(<\\!)(DOCTYPE)(?=[\\s])",next:"doctype",caseInsensitive:!0},{include:"tag"},{token:"text.end-tag-open.xml",regex:"</"},{token:"text.tag-open.xml",regex:"<"},{include:"reference"},{defaultToken:"text.xml"}],processing_instruction:[{token:"entity.other.attribute-name.decl-attribute-name.xml",regex:a},{token:"keyword.operator.decl-attribute-equals.xml",regex:"="},{include:"whitespace"},{include:"string"},{token:"punctuation.xml-decl.xml",regex:"\\?>",next:"start"}],doctype:[{include:"whitespace"},{include:"string"},{token:"xml-pe.doctype.xml",regex:">",next:"start"},{token:"xml-pe.xml",regex:"[-_a-zA-Z0-9:]+"},{token:"punctuation.int-subset",regex:"\\[",push:"int_subset"}],int_subset:[{token:"text.xml",regex:"\\s+"},{token:"punctuation.int-subset.xml",regex:"]",next:"pop"},{token:["punctuation.markup-decl.xml","keyword.markup-decl.xml"],regex:"(<\\!)("+a+")",push:[{token:"text",regex:"\\s+"},{token:"punctuation.markup-decl.xml",regex:">",next:"pop"},{include:"string"}]}],cdata:[{token:"string.cdata.xml",regex:"\\]\\]>",next:"start"},{token:"text.xml",regex:"\\s+"},{token:"text.xml",regex:"(?:[^\\]]|\\](?!\\]>))+"}],comment:[{token:"comment.end.xml",regex:"-->",next:"start"},{defaultToken:"comment.xml"}],reference:[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],attr_reference:[{token:"constant.language.escape.reference.attribute-value.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}],tag:[{token:["meta.tag.punctuation.tag-open.xml","meta.tag.punctuation.end-tag-open.xml","meta.tag.tag-name.xml"],regex:"(?:(<)|(</))((?:"+a+":)?"+a+")",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}],tag_whitespace:[{token:"text.tag-whitespace.xml",regex:"\\s+"}],whitespace:[{token:"text.whitespace.xml",regex:"\\s+"}],string:[{token:"string.xml",regex:"'",push:[{token:"string.xml",regex:"'",next:"pop"},{defaultToken:"string.xml"}]},{token:"string.xml",regex:'"',push:[{token:"string.xml",regex:'"',next:"pop"},{defaultToken:"string.xml"}]}],attributes:[{token:"entity.other.attribute-name.xml",regex:a},{token:"keyword.operator.attribute-equals.xml",regex:"="},{include:"tag_whitespace"},{include:"attribute_value"}],attribute_value:[{token:"string.attribute-value.xml",regex:"'",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"attr_reference"},{defaultToken:"string.attribute-value.xml"}]}]},this.constructor===c&&this.normalizeRules()};(function(){this.embedTagRules=function(s,a,t){this.$rules.tag.unshift({token:["meta.tag.punctuation.tag-open.xml","meta.tag."+t+".tag-name.xml"],regex:"(<)("+t+"(?=\\s|>|$))",next:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:a+"start"}]}),this.$rules[t+"-end"]=[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start",onMatch:function(e,i,n){return n.splice(0),this.token}}],this.embedRules(s,a,[{token:["meta.tag.punctuation.end-tag-open.xml","meta.tag."+t+".tag-name.xml"],regex:"(</)("+t+"(?=\\s|>|$))",next:t+"-end"},{token:"string.cdata.xml",regex:"<\\!\\[CDATA\\["},{token:"string.cdata.xml",regex:"\\]\\]>"}])}}).call(p.prototype),f.inherits(c,p),y.XmlHighlightRules=c}),ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"],function(w,y,M){var f=w("../lib/oop"),p=w("../lib/lang"),c=w("./css_highlight_rules").CssHighlightRules,s=w("./javascript_highlight_rules").JavaScriptHighlightRules,a=w("./xml_highlight_rules").XmlHighlightRules,t=p.createMap({a:"anchor",button:"form",form:"form",img:"image",input:"form",label:"form",option:"form",script:"script",select:"form",textarea:"form",style:"style",table:"table",tbody:"table",td:"table",tfoot:"table",th:"table",tr:"table"}),e=function(){a.call(this),this.addRules({attributes:[{include:"tag_whitespace"},{token:"entity.other.attribute-name.xml",regex:"[-_a-zA-Z0-9:.]+"},{token:"keyword.operator.attribute-equals.xml",regex:"=",push:[{include:"tag_whitespace"},{token:"string.unquoted.attribute-value.html",regex:"[^<>='\"`\\s]+",next:"pop"},{token:"empty",regex:"",next:"pop"}]},{include:"attribute_value"}],tag:[{token:function(i,n){var r=t[n];return["meta.tag.punctuation."+(i=="<"?"":"end-")+"tag-open.xml","meta.tag"+(r?"."+r:"")+".tag-name.xml"]},regex:"(</?)([-_a-zA-Z0-9:.]+)",next:"tag_stuff"}],tag_stuff:[{include:"attributes"},{token:"meta.tag.punctuation.tag-close.xml",regex:"/?>",next:"start"}]}),this.embedTagRules(c,"css-","style"),this.embedTagRules(new s({jsx:!1}).getRules(),"js-","script"),this.constructor===e&&this.normalizeRules()};f.inherits(e,a),y.HtmlHighlightRules=e}),ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(w,y,M){var f=w("../../lib/oop"),p=w("../behaviour").Behaviour,c=w("../../token_iterator").TokenIterator;w("../../lib/lang");function s(t,e){return t&&t.type.lastIndexOf(e+".xml")>-1}var a=function(){this.add("string_dquotes","insertion",function(t,e,i,n,r){if(r=='"'||r=="'"){var l=r,h=n.doc.getTextRange(i.getSelectionRange());if(h!==""&&h!=="'"&&h!='"'&&i.getWrapBehavioursEnabled())return{text:l+h+l,selection:!1};var m=i.getCursorPosition(),v=n.doc.getLine(m.row),S=v.substring(m.column,m.column+1),C=new c(n,m.row,m.column),u=C.getCurrentToken();if(S==l&&(s(u,"attribute-value")||s(u,"string")))return{text:"",selection:[1,1]};if(u||(u=C.stepBackward()),!u)return;for(;s(u,"tag-whitespace")||s(u,"whitespace");)u=C.stepBackward();var g=!S||S.match(/\s/);if(s(u,"attribute-equals")&&(g||S==">")||s(u,"decl-attribute-equals")&&(g||S=="?"))return{text:l+l,selection:[1,1]}}}),this.add("string_dquotes","deletion",function(t,e,i,n,r){var l=n.doc.getTextRange(r);if(!r.isMultiLine()&&(l=='"'||l=="'")){var h=n.doc.getLine(r.start.row),m=h.substring(r.start.column+1,r.start.column+2);if(m==l)return r.end.column++,r}}),this.add("autoclosing","insertion",function(t,e,i,n,r){if(r==">"){var l=i.getSelectionRange().start,h=new c(n,l.row,l.column),m=h.getCurrentToken()||h.stepBackward();if(!m||!(s(m,"tag-name")||s(m,"tag-whitespace")||s(m,"attribute-name")||s(m,"attribute-equals")||s(m,"attribute-value"))||s(m,"reference.attribute-value"))return;if(s(m,"attribute-value")){var v=h.getCurrentTokenColumn()+m.value.length;if(l.column<v)return;if(l.column==v){var S=h.stepForward();if(S&&s(S,"attribute-value"))return;h.stepBackward()}}if(/^\s*>/.test(n.getLine(l.row).slice(l.column)))return;for(;!s(m,"tag-name");)if(m=h.stepBackward(),m.value=="<"){m=h.stepForward();break}var C=h.getCurrentTokenRow(),u=h.getCurrentTokenColumn();if(s(h.stepBackward(),"end-tag-open"))return;var g=m.value;return C==l.row&&(g=g.substring(0,l.column-u)),this.voidElements.hasOwnProperty(g.toLowerCase())?void 0:{text:"></"+g+">",selection:[1,1]}}}),this.add("autoindent","insertion",function(t,e,i,n,r){if(r==` `){var l=i.getCursorPosition(),h=n.getLine(l.row),m=new c(n,l.row,l.column),v=m.getCurrentToken();if(v&&v.type.indexOf("tag-close")!==-1){if(v.value=="/>")return;for(;v&&v.type.indexOf("tag-name")===-1;)v=m.stepBackward();if(!v)return;var S=v.value,C=m.getCurrentTokenRow();if(v=m.stepBackward(),!v||v.type.indexOf("end-tag")!==-1)return;if(this.voidElements&&!this.voidElements[S]){var u=n.getTokenAt(l.row,l.column+1),h=n.getLine(C),g=this.$getIndent(h),A=g+n.getTabString();return u&&u.value==="</"?{text:` `+A+` `+g,selection:[1,A.length,1,A.length]}:{text:` `+A}}}}})};f.inherits(a,p),y.XmlBehaviour=a}),ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"],function(w,y,M){var f=w("../../lib/oop"),p=w("./fold_mode").FoldMode,c=y.FoldMode=function(s,a){this.defaultMode=s,this.subModes=a};f.inherits(c,p),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,t,e){var i=this.$getMode(s);return i?i.getFoldWidget(a,t,e):""},this.getFoldWidget=function(s,a,t){return this.$tryMode(s.getState(t-1),s,a,t)||this.$tryMode(s.getState(t),s,a,t)||this.defaultMode.getFoldWidget(s,a,t)},this.getFoldWidgetRange=function(s,a,t){var e=this.$getMode(s.getState(t-1));return(!e||!e.getFoldWidget(s,a,t))&&(e=this.$getMode(s.getState(t))),(!e||!e.getFoldWidget(s,a,t))&&(e=this.defaultMode),e.getFoldWidgetRange(s,a,t)}}.call(c.prototype)}),ace.define("ace/mode/folding/xml",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(w,y,M){var f=w("../../lib/oop"),p=w("../../range").Range,c=w("./fold_mode").FoldMode,s=y.FoldMode=function(e,i){c.call(this),this.voidElements=e||{},this.optionalEndTags=f.mixin({},this.voidElements),i&&f.mixin(this.optionalEndTags,i)};f.inherits(s,c);var a=function(){this.tagName="",this.closing=!1,this.selfClosing=!1,this.start={row:0,column:0},this.end={row:0,column:0}};function t(e,i){return e.type.lastIndexOf(i+".xml")>-1}(function(){this.getFoldWidget=function(e,i,n){var r=this._getFirstTagInLine(e,n);return r?r.closing||!r.tagName&&r.selfClosing?i==="markbeginend"?"end":"":!r.tagName||r.selfClosing||this.voidElements.hasOwnProperty(r.tagName.toLowerCase())||this._findEndTagInLine(e,n,r.tagName,r.end.column)?"":"start":this.getCommentFoldWidget(e,n)},this.getCommentFoldWidget=function(e,i){return/comment/.test(e.getState(i))&&/<!-/.test(e.getLine(i))?"start":""},this._getFirstTagInLine=function(e,i){for(var n=e.getTokens(i),r=new a,l=0;l<n.length;l++){var h=n[l];if(t(h,"tag-open")){if(r.end.column=r.start.column+h.value.length,r.closing=t(h,"end-tag-open"),h=n[++l],!h)return null;for(r.tagName=h.value,r.end.column+=h.value.length,l++;l<n.length;l++)if(h=n[l],r.end.column+=h.value.length,t(h,"tag-close")){r.selfClosing=h.value=="/>";break}return r}else if(t(h,"tag-close"))return r.selfClosing=h.value=="/>",r;r.start.column+=h.value.length}return null},this._findEndTagInLine=function(e,i,n,r){for(var l=e.getTokens(i),h=0,m=0;m<l.length;m++){var v=l[m];if(h+=v.value.length,!(h<r)&&t(v,"end-tag-open")&&(v=l[m+1],v&&v.value==n))return!0}return!1},this.getFoldWidgetRange=function(e,i,n){var r=e.getMatchingTags({row:n,column:0});return r?new p(r.openTag.end.row,r.openTag.end.column,r.closeTag.start.row,r.closeTag.start.column):this.getCommentFoldWidget(e,n)&&e.getCommentFoldRange(n,e.getLine(n).length)}}).call(s.prototype)}),ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"],function(w,y,M){var f=w("../../lib/oop"),p=w("./mixed").FoldMode,c=w("./xml").FoldMode,s=w("./cstyle").FoldMode,a=y.FoldMode=function(t,e){p.call(this,new c(t,e),{"js-":new s,"css-":new s})};f.inherits(a,p)}),ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"],function(w,y,M){var f=w("../token_iterator").TokenIterator,p=["accesskey","class","contenteditable","contextmenu","dir","draggable","dropzone","hidden","id","inert","itemid","itemprop","itemref","itemscope","itemtype","lang","spellcheck","style","tabindex","title","translate"],c=["onabort","onblur","oncancel","oncanplay","oncanplaythrough","onchange","onclick","onclose","oncontextmenu","oncuechange","ondblclick","ondrag","ondragend","ondragenter","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onended","onerror","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onloadeddata","onloadedmetadata","onloadstart","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onpause","onplay","onplaying","onprogress","onratechange","onreset","onscroll","onseeked","onseeking","onselect","onshow","onstalled","onsubmit","onsuspend","ontimeupdate","onvolumechange","onwaiting"],s=p.concat(c),a={a:{href:1,target:{_blank:1,top:1},ping:1,rel:{nofollow:1,alternate:1,author:1,bookmark:1,help:1,license:1,next:1,noreferrer:1,prefetch:1,prev:1,search:1,tag:1},media:1,hreflang:1,type:1},abbr:{},address:{},area:{shape:1,coords:1,href:1,hreflang:1,alt:1,target:1,media:1,rel:1,ping:1,type:1},article:{pubdate:1},aside:{},audio:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},muted:{muted:1},preload:{auto:1,metadata:1,none:1}},b:{},base:{href:1,target:1},bdi:{},bdo:{},blockquote:{cite:1},body:{onafterprint:1,onbeforeprint:1,onbeforeunload:1,onhashchange:1,onmessage:1,onoffline:1,onpopstate:1,onredo:1,onresize:1,onstorage:1,onundo:1,onunload:1},br:{},button:{autofocus:1,disabled:{disabled:1},form:1,formaction:1,formenctype:1,formmethod:1,formnovalidate:1,formtarget:1,name:1,value:1,type:{button:1,submit:1}},canvas:{width:1,height:1},caption:{},cite:{},code:{},col:{span:1},colgroup:{span:1},command:{type:1,label:1,icon:1,disabled:1,checked:1,radiogroup:1,command:1},data:{},datalist:{},dd:{},del:{cite:1,datetime:1},details:{open:1},dfn:{},dialog:{open:1},div:{},dl:{},dt:{},em:{},embed:{src:1,height:1,width:1,type:1},fieldset:{disabled:1,form:1,name:1},figcaption:{},figure:{},footer:{},form:{"accept-charset":1,action:1,autocomplete:1,enctype:{"multipart/form-data":1,"application/x-www-form-urlencoded":1},method:{get:1,post:1},name:1,novalidate:1,target:{_blank:1,top:1}},h1:{},h2:{},h3:{},h4:{},h5:{},h6:{},head:{},header:{},hr:{},html:{manifest:1},i:{},iframe:{name:1,src:1,height:1,width:1,sandbox:{"allow-same-origin":1,"allow-top-navigation":1,"allow-forms":1,"allow-scripts":1},seamless:{seamless:1}},img:{alt:1,src:1,height:1,width:1,usemap:1,ismap:1},input:{type:{text:1,password:1,hidden:1,checkbox:1,submit:1,radio:1,file:1,button:1,reset:1,image:31,color:1,date:1,datetime:1,"datetime-local":1,email:1,month:1,number:1,range:1,search:1,tel:1,time:1,url:1,week:1},accept:1,alt:1,autocomplete:{on:1,off:1},autofocus:{autofocus:1},checked:{checked:1},disabled:{disabled:1},form:1,formaction:1,formenctype:{"application/x-www-form-urlencoded":1,"multipart/form-data":1,"text/plain":1},formmethod:{get:1,post:1},formnovalidate:{formnovalidate:1},formtarget:{_blank:1,_self:1,_parent:1,_top:1},height:1,list:1,max:1,maxlength:1,min:1,multiple:{multiple:1},name:1,pattern:1,placeholder:1,readonly:{readonly:1},required:{required:1},size:1,src:1,step:1,width:1,files:1,value:1},ins:{cite:1,datetime:1},kbd:{},keygen:{autofocus:1,challenge:{challenge:1},disabled:{disabled:1},form:1,keytype:{rsa:1,dsa:1,ec:1},name:1},label:{form:1,for:1},legend:{},li:{value:1},link:{href:1,hreflang:1,rel:{stylesheet:1,icon:1},media:{all:1,screen:1,print:1},type:{"text/css":1,"image/png":1,"image/jpeg":1,"image/gif":1},sizes:1},main:{},map:{name:1},mark:{},math:{},menu:{type:1,label:1},meta:{"http-equiv":{"content-type":1},name:{description:1,keywords:1},content:{"text/html; charset=UTF-8":1},charset:1},meter:{value:1,min:1,max:1,low:1,high:1,optimum:1},nav:{},noscript:{href:1},object:{param:1,data:1,type:1,height:1,width:1,usemap:1,name:1,form:1,classid:1},ol:{start:1,reversed:1},optgroup:{disabled:1,label:1},option:{disabled:1,selected:1,label:1,value:1},output:{for:1,form:1,name:1},p:{},param:{name:1,value:1},pre:{},progress:{value:1,max:1},q:{cite:1},rp:{},rt:{},ruby:{},s:{},samp:{},script:{charset:1,type:{"text/javascript":1},src:1,defer:1,async:1},select:{autofocus:1,disabled:1,form:1,multiple:{multiple:1},name:1,size:1,readonly:{readonly:1}},small:{},source:{src:1,type:1,media:1},span:{},strong:{},style:{type:1,media:{all:1,screen:1,print:1},scoped:1},sub:{},sup:{},svg:{},table:{summary:1},tbody:{},td:{headers:1,rowspan:1,colspan:1},textarea:{autofocus:{autofocus:1},disabled:{disabled:1},form:1,maxlength:1,name:1,placeholder:1,readonly:{readonly:1},required:{required:1},rows:1,cols:1,wrap:{on:1,off:1,hard:1,soft:1}},tfoot:{},th:{headers:1,rowspan:1,colspan:1,scope:1},thead:{},time:{datetime:1},title:{},tr:{},track:{kind:1,src:1,srclang:1,label:1,default:1},section:{},summary:{},u:{},ul:{},var:{},video:{src:1,autobuffer:1,autoplay:{autoplay:1},loop:{loop:1},controls:{controls:1},width:1,height:1,poster:1,muted:{muted:1},preload:{auto:1,metadata:1,none:1}},wbr:{}},t=Object.keys(a);function e(l,h){return l.type.lastIndexOf(h+".xml")>-1}function i(l,h){for(var m=new f(l,h.row,h.column),v=m.getCurrentToken();v&&!e(v,"tag-name");)v=m.stepBackward();if(v)return v.value}function n(l,h){for(var m=new f(l,h.row,h.column),v=m.getCurrentToken();v&&!e(v,"attribute-name");)v=m.stepBackward();if(v)return v.value}var r=function(){};(function(){this.getCompletions=function(l,h,m,v){var S=h.getTokenAt(m.row,m.column);if(!S)return[];if(e(S,"tag-name")||e(S,"tag-open")||e(S,"end-tag-open"))return this.getTagCompletions(l,h,m,v);if(e(S,"tag-whitespace")||e(S,"attribute-name"))return this.getAttributeCompletions(l,h,m,v);if(e(S,"attribute-value"))return this.getAttributeValueCompletions(l,h,m,v);var C=h.getLine(m.row).substr(0,m.column);return/&[a-z]*$/i.test(C)?this.getHTMLEntityCompletions(l,h,m,v):[]},this.getTagCompletions=function(l,h,m,v){return t.map(function(S){return{value:S,meta:"tag",score:1e6}})},this.getAttributeCompletions=function(l,h,m,v){var S=i(h,m);if(!S)return[];var C=s;return S in a&&(C=C.concat(Object.keys(a[S]))),C.map(function(u){return{caption:u,snippet:u+'="$0"',meta:"attribute",score:1e6}})},this.getAttributeValueCompletions=function(l,h,m,v){var S=i(h,m),C=n(h,m);if(!S)return[];var u=[];return S in a&&C in a[S]&&typeof a[S][C]=="object"&&(u=Object.keys(a[S][C])),u.map(function(g){return{caption:g,snippet:g,meta:"attribute value",score:1e6}})},this.getHTMLEntityCompletions=function(l,h,m,v){var S=["Aacute;","aacute;","Acirc;","acirc;","acute;","AElig;","aelig;","Agrave;","agrave;","alefsym;","Alpha;","alpha;","amp;","and;","ang;","Aring;","aring;","asymp;","Atilde;","atilde;","Auml;","auml;","bdquo;","Beta;","beta;","brvbar;","bull;","cap;","Ccedil;","ccedil;","cedil;","cent;","Chi;","chi;","circ;","clubs;","cong;","copy;","crarr;","cup;","curren;","Dagger;","dagger;","dArr;","darr;","deg;","Delta;","delta;","diams;","divide;","Eacute;","eacute;","Ecirc;","ecirc;","Egrave;","egrave;","empty;","emsp;","ensp;","Epsilon;","epsilon;","equiv;","Eta;","eta;","ETH;","eth;","Euml;","euml;","euro;","exist;","fnof;","forall;","frac12;","frac14;","frac34;","frasl;","Gamma;","gamma;","ge;","gt;","hArr;","harr;","hearts;","hellip;","Iacute;","iacute;","Icirc;","icirc;","iexcl;","Igrave;","igrave;","image;","infin;","int;","Iota;","iota;","iquest;","isin;","Iuml;","iuml;","Kappa;","kappa;","Lambda;","lambda;","lang;","laquo;","lArr;","larr;","lceil;","ldquo;","le;","lfloor;","lowast;","loz;","lrm;","lsaquo;","lsquo;","lt;","macr;","mdash;","micro;","middot;","minus;","Mu;","mu;","nabla;","nbsp;","ndash;","ne;","ni;","not;","notin;","nsub;","Ntilde;","ntilde;","Nu;","nu;","Oacute;","oacute;","Ocirc;","ocirc;","OElig;","oelig;","Ograve;","ograve;","oline;","Omega;","omega;","Omicron;","omicron;","oplus;","or;","ordf;","ordm;","Oslash;","oslash;","Otilde;","otilde;","otimes;","Ouml;","ouml;","para;","part;","permil;","perp;","Phi;","phi;","Pi;","pi;","piv;","plusmn;","pound;","Prime;","prime;","prod;","prop;","Psi;","psi;","quot;","radic;","rang;","raquo;","rArr;","rarr;","rceil;","rdquo;","real;","reg;","rfloor;","Rho;","rho;","rlm;","rsaquo;","rsquo;","sbquo;","Scaron;","scaron;","sdot;","sect;","shy;","Sigma;","sigma;","sigmaf;","sim;","spades;","sub;","sube;","sum;","sup;","sup1;","sup2;","sup3;","supe;","szlig;","Tau;","tau;","there4;","Theta;","theta;","thetasym;","thinsp;","THORN;","thorn;","tilde;","times;","trade;","Uacute;","uacute;","uArr;","uarr;","Ucirc;","ucirc;","Ugrave;","ugrave;","uml;","upsih;","Upsilon;","upsilon;","Uuml;","uuml;","weierp;","Xi;","xi;","Yacute;","yacute;","yen;","Yuml;","yuml;","Zeta;","zeta;","zwj;","zwnj;"];return S.map(function(C){return{caption:C,snippet:C,meta:"html entity",score:1e6}})}}).call(r.prototype),y.HtmlCompletions=r}),ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"],function(w,y,M){var f=w("../lib/oop"),p=w("../lib/lang"),c=w("./text").Mode,s=w("./javascript").Mode,a=w("./css").Mode,t=w("./html_highlight_rules").HtmlHighlightRules,e=w("./behaviour/xml").XmlBehaviour,i=w("./folding/html").FoldMode,n=w("./html_completions").HtmlCompletions,r=w("../worker/worker_client").WorkerClient,l=["area","base","br","col","embed","hr","img","input","keygen","link","meta","menuitem","param","source","track","wbr"],h=["li","dt","dd","p","rt","rp","optgroup","option","colgroup","td","th"],m=function(v){this.fragmentContext=v&&v.fragmentContext,this.HighlightRules=t,this.$behaviour=new e,this.$completer=new n,this.createModeDelegates({"js-":s,"css-":a}),this.foldingRules=new i(this.voidElements,p.arrayToMap(h))};f.inherits(m,c),function(){this.blockComment={start:"<!--",end:"-->"},this.voidElements=p.arrayToMap(l),this.getNextLineIndent=function(v,S,C){return this.$getIndent(S)},this.checkOutdent=function(v,S,C){return!1},this.getCompletions=function(v,S,C,u){return this.$completer.getCompletions(v,S,C,u)},this.createWorker=function(v){if(this.constructor==m){var S=new r(["ace"],"ace/mode/html_worker","Worker");return S.attachToDocument(v.getDocument()),this.fragmentContext&&S.call("setOptions",[{context:this.fragmentContext}]),S.on("error",function(C){v.setAnnotations(C.data)}),S.on("terminate",function(){v.clearAnnotations()}),S}},this.$id="ace/mode/html",this.snippetFileId="ace/snippets/html"}.call(m.prototype),y.Mode=m}),function(){ace.require(["ace/mode/html"],function(w){O&&(O.exports=w)})}()})(Yr);var di={},Xr={get exports(){return di},set exports(O){di=O}};(function(O,R){ace.define("ace/theme/chrome.css",["require","exports","module"],function(w,y,M){M.exports=`.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, 6, 144); } .ace-chrome .ace_marker-layer .ace_selection { background: rgb(181, 213, 255); } .ace-chrome .ace_marker-layer .ace_step { background: rgb(252, 255, 0); } .ace-chrome .ace_marker-layer .ace_stack { background: rgb(164, 229, 101); } .ace-chrome .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid rgb(192, 192, 192); } .ace-chrome .ace_marker-layer .ace_active-line { background: rgba(0, 0, 0, 0.07); } .ace-chrome .ace_gutter-active-line { background-color : #dcdcdc; } .ace-chrome .ace_marker-layer .ace_selected-word { background: rgb(250, 250, 255); border: 1px solid rgb(200, 200, 250); } .ace-chrome .ace_storage, .ace-chrome .ace_keyword, .ace-chrome .ace_meta.ace_tag { color: rgb(147, 15, 128); } .ace-chrome .ace_string.ace_regex { color: rgb(255, 0, 0) } .ace-chrome .ace_string { color: #1A1AA6; } .ace-chrome .ace_entity.ace_other.ace_attribute-name { color: #994409; } .ace-chrome .ace_indent-guide { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y; } .ace-chrome .ace_indent-guide-active { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAAZSURBVHjaYvj///9/hivKyv8BAAAA//8DACLqBhbvk+/eAAAAAElFTkSuQmCC") right repeat-y; } `}),ace.define("ace/theme/chrome",["require","exports","module","ace/theme/chrome.css","ace/lib/dom"],function(w,y,M){y.isDark=!1,y.cssClass="ace-chrome",y.cssText=w("./chrome.css");var f=w("../lib/dom");f.importCssString(y.cssText,y.cssClass,!1)}),function(){ace.require(["ace/theme/chrome"],function(w){O&&(O.exports=w)})}()})(Xr);var fi={},Qr={get exports(){return fi},set exports(O){fi=O}};(function(O,R){ace.define("ace/theme/tomorrow_night.css",["require","exports","module"],function(w,y,M){M.exports=`.ace-tomorrow-night .ace_gutter { background: #25282c; color: #C5C8C6 } .ace-tomorrow-night .ace_print-margin { width: 1px; background: #25282c } .ace-tomorrow-night { background-color: #1D1F21; color: #C5C8C6 } .ace-tomorrow-night .ace_cursor { color: #AEAFAD } .ace-tomorrow-night .ace_marker-layer .ace_selection { background: #373B41 } .ace-tomorrow-night.ace_multiselect .ace_selection.ace_start { box-shadow: 0 0 3px 0px #1D1F21; } .ace-tomorrow-night .ace_marker-layer .ace_step { background: rgb(102, 82, 0) } .ace-tomorrow-night .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #4B4E55 } .ace-tomorrow-night .ace_marker-layer .ace_active-line { background: #282A2E } .ace-tomorrow-night .ace_gutter-active-line { background-color: #282A2E } .ace-tomorrow-night .ace_marker-layer .ace_selected-word { border: 1px solid #373B41 } .ace-tomorrow-night .ace_invisible { color: #4B4E55 } .ace-tomorrow-night .ace_keyword, .ace-tomorrow-night .ace_meta, .ace-tomorrow-night .ace_storage, .ace-tomorrow-night .ace_storage.ace_type, .ace-tomorrow-night .ace_support.ace_type { color: #B294BB } .ace-tomorrow-night .ace_keyword.ace_operator { color: #8ABEB7 } .ace-tomorrow-night .ace_constant.ace_character, .ace-tomorrow-night .ace_constant.ace_language, .ace-tomorrow-night .ace_constant.ace_numeric, .ace-tomorrow-night .ace_keyword.ace_other.ace_unit, .ace-tomorrow-night .ace_support.ace_constant, .ace-tomorrow-night .ace_variable.ace_parameter { color: #DE935F } .ace-tomorrow-night .ace_constant.ace_other { color: #CED1CF } .ace-tomorrow-night .ace_invalid { color: #CED2CF; background-color: #DF5F5F } .ace-tomorrow-night .ace_invalid.ace_deprecated { color: #CED2CF; background-color: #B798BF } .ace-tomorrow-night .ace_fold { background-color: #81A2BE; border-color: #C5C8C6 } .ace-tomorrow-night .ace_entity.ace_name.ace_function, .ace-tomorrow-night .ace_support.ace_function, .ace-tomorrow-night .ace_variable { color: #81A2BE } .ace-tomorrow-night .ace_support.ace_class, .ace-tomorrow-night .ace_support.ace_type { color: #F0C674 } .ace-tomorrow-night .ace_heading, .ace-tomorrow-night .ace_markup.ace_heading, .ace-tomorrow-night .ace_string { color: #B5BD68 } .ace-tomorrow-night .ace_entity.ace_name.ace_tag, .ace-tomorrow-night .ace_entity.ace_other.ace_attribute-name, .ace-tomorrow-night .ace_meta.ace_tag, .ace-tomorrow-night .ace_string.ace_regexp, .ace-tomorrow-night .ace_variable { color: #CC6666 } .ace-tomorrow-night .ace_comment { color: #969896 } .ace-tomorrow-night .ace_indent-guide { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y } .ace-tomorrow-night .ace_indent-guide-active { background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQIW2PQ1dX9zzBz5sz/ABCcBFFentLlAAAAAElFTkSuQmCC) right repeat-y; } `}),ace.define("ace/theme/tomorrow_night",["require","exports","module","ace/theme/tomorrow_night.css","ace/lib/dom"],function(w,y,M){y.isDark=!0,y.cssClass="ace-tomorrow-night",y.cssText=w("./tomorrow_night.css");var f=w("../lib/dom");f.importCssString(y.cssText,y.cssClass,!1)}),function(){ace.require(["ace/theme/tomorrow_night"],function(w){O&&(O.exports=w)})}()})(Qr);var gi={},Jr={get exports(){return gi},set exports(O){gi=O}};(function(O,R){ace.define("ace/snippets",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/range_list","ace/keyboard/hash_handler","ace/tokenizer","ace/clipboard","ace/editor"],function(w,y,M){var f=w("./lib/dom"),p=w("./lib/oop"),c=w("./lib/event_emitter").EventEmitter,s=w("./lib/lang"),a=w("./range").Range,t=w("./range_list").RangeList,e=w("./keyboard/hash_handler").HashHandler,i=w("./tokenizer").Tokenizer,n=w("./clipboard"),r={CURRENT_WORD:function(u){return u.session.getTextRange(u.session.getWordRange())},SELECTION:function(u,g,A){var b=u.session.getTextRange();return A?b.replace(/\n\r?([ \t]*\S)/g,` `+A+"$1"):b},CURRENT_LINE:function(u){return u.session.getLine(u.getCursorPosition().row)},PREV_LINE:function(u){return u.session.getLine(u.getCursorPosition().row-1)},LINE_INDEX:function(u){return u.getCursorPosition().row},LINE_NUMBER:function(u){return u.getCursorPosition().row+1},SOFT_TABS:function(u){return u.session.getUseSoftTabs()?"YES":"NO"},TAB_SIZE:function(u){return u.session.getTabSize()},CLIPBOARD:function(u){return n.getText&&n.getText()},FILENAME:function(u){return/[^/\\]*$/.exec(this.FILEPATH(u))[0]},FILENAME_BASE:function(u){return/[^/\\]*$/.exec(this.FILEPATH(u))[0].replace(/\.[^.]*$/,"")},DIRECTORY:function(u){return this.FILEPATH(u).replace(/[^/\\]*$/,"")},FILEPATH:function(u){return"/not implemented.txt"},WORKSPACE_NAME:function(){return"Unknown"},FULLNAME:function(){return"Unknown"},BLOCK_COMMENT_START:function(u){var g=u.session.$mode||{};return g.blockComment&&g.blockComment.start||""},BLOCK_COMMENT_END:function(u){var g=u.session.$mode||{};return g.blockComment&&g.blockComment.end||""},LINE_COMMENT:function(u){var g=u.session.$mode||{};return g.lineCommentStart||""},CURRENT_YEAR:l.bind(null,{year:"numeric"}),CURRENT_YEAR_SHORT:l.bind(null,{year:"2-digit"}),CURRENT_MONTH:l.bind(null,{month:"numeric"}),CURRENT_MONTH_NAME:l.bind(null,{month:"long"}),CURRENT_MONTH_NAME_SHORT:l.bind(null,{month:"short"}),CURRENT_DATE:l.bind(null,{day:"2-digit"}),CURRENT_DAY_NAME:l.bind(null,{weekday:"long"}),CURRENT_DAY_NAME_SHORT:l.bind(null,{weekday:"short"}),CURRENT_HOUR:l.bind(null,{hour:"2-digit",hour12:!1}),CURRENT_MINUTE:l.bind(null,{minute:"2-digit"}),CURRENT_SECOND:l.bind(null,{second:"2-digit"})};r.SELECTED_TEXT=r.SELECTION;function l(u){var g=new Date().toLocaleString("en-us",u);return g.length==1?"0"+g:g}var h=function(){this.snippetMap={},this.snippetNameMap={}};(function(){p.implement(this,c),this.getTokenizer=function(){return h.$tokenizer||this.createTokenizer()},this.createTokenizer=function(){function u(b){return b=b.substr(1),/^\d+$/.test(b)?[{tabstopId:parseInt(b,10)}]:[{text:b}]}function g(b){return"(?:[^\\\\"+b+"]|\\\\.)"}var A={regex:"/("+g("/")+"+)/",onMatch:function(b,x,o){var d=o[0];return d.fmtString=!0,d.guard=b.slice(1,-1),d.flag="",""},next:"formatString"};return h.$tokenizer=new i({start:[{regex:/\\./,onMatch:function(b,x,o){var d=b[1];return(d=="}"&&o.length||"`$\\".indexOf(d)!=-1)&&(b=d),[b]}},{regex:/}/,onMatch:function(b,x,o){return[o.length?o.shift():b]}},{regex:/\$(?:\d+|\w+)/,onMatch:u},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(b,x,o){var d=u(b.substr(1));return o.unshift(d[0]),d},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+g("\\|")+"*\\|",onMatch:function(b,x,o){var d=b.slice(1,-1).replace(/\\[,|\\]|,/g,function($){return $.length==2?$[1]:"\0"}).split("\0").map(function($){return{value:$}});return o[0].choices=d,[d[0]]},next:"start"},A,{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:/:/,onMatch:function(b,x,o){return o.length&&o[0].expectElse?(o[0].expectElse=!1,o[0].ifEnd={elseEnd:o[0]},[o[0].ifEnd]):":"}},{regex:/\\./,onMatch:function(b,x,o){var d=b[1];return d=="}"&&o.length||"`$\\".indexOf(d)!=-1?b=d:d=="n"?b=` `:d=="t"?b=" ":"ulULE".indexOf(d)!=-1&&(b={changeCase:d,local:d>"a"}),[b]}},{regex:"/\\w*}",onMatch:function(b,x,o){var d=o.shift();return d&&(d.flag=b.slice(1,-1)),this.next=d&&d.tabstopId?"start":"",[d||b]},next:"start"},{regex:/\$(?:\d+|\w+)/,onMatch:function(b,x,o){return[{text:b.slice(1)}]}},{regex:/\${\w+/,onMatch:function(b,x,o){var d={text:b.slice(2)};return o.unshift(d),[d]},next:"formatStringVar"},{regex:/\n/,token:"newline",merge:!1},{regex:/}/,onMatch:function(b,x,o){var d=o.shift();return this.next=d&&d.tabstopId?"start":"",[d||b]},next:"start"}],formatStringVar:[{regex:/:\/\w+}/,onMatch:function(b,x,o){var d=o[0];return d.formatFunction=b.slice(2,-1),[o.shift()]},next:"formatString"},A,{regex:/:[\?\-+]?/,onMatch:function(b,x,o){b[1]=="+"&&(o[0].ifEnd=o[0]),b[1]=="?"&&(o[0].expectElse=!0)},next:"formatString"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"formatString"}]}),h.$tokenizer},this.tokenizeTmSnippet=function(u,g){return this.getTokenizer().getLineTokens(u,g).tokens.map(function(A){return A.value||A})},this.getVariableValue=function(u,g,A){if(/^\d+$/.test(g))return(this.variables.__||{})[g]||"";if(/^[A-Z]\d+$/.test(g))return(this.variables[g[0]+"__"]||{})[g.substr(1)]||"";if(g=g.replace(/^TM_/,""),!this.variables.hasOwnProperty(g))return"";var b=this.variables[g];return typeof b=="function"&&(b=this.variables[g](u,g,A)),b??""},this.variables=r,this.tmStrFormat=function(u,g,A){if(!g.fmt)return u;var b=g.flag||"",x=g.guard;x=new RegExp(x,b.replace(/[^gim]/g,""));var o=typeof g.fmt=="string"?this.tokenizeTmSnippet(g.fmt,"formatString"):g.fmt,d=this,$=u.replace(x,function(){var k=d.variables.__;d.variables.__=[].slice.call(arguments);for(var _=d.resolveVariables(o,A),L="E",T=0;T<_.length;T++){var F=_[T];if(typeof F=="object")if(_[T]="",F.changeCase&&F.local){var I=_[T+1];I&&typeof I=="string"&&(F.changeCase=="u"?_[T]=I[0].toUpperCase():_[T]=I[0].toLowerCase(),_[T+1]=I.substr(1))}else F.changeCase&&(L=F.changeCase);else L=="U"?_[T]=F.toUpperCase():L=="L"&&(_[T]=F.toLowerCase())}return d.variables.__=k,_.join("")});return $},this.tmFormatFunction=function(u,g,A){return g.formatFunction=="upcase"?u.toUpperCase():g.formatFunction=="downcase"?u.toLowerCase():u},this.resolveVariables=function(u,g){for(var A=[],b="",x=!0,o=0;o<u.length;o++){var d=u[o];if(typeof d=="string"){A.push(d),d==` `?(x=!0,b=""):x&&(b=/^\t*/.exec(d)[0],x=/\S/.test(d));continue}if(d){if(x=!1,d.fmtString){var $=u.indexOf(d,o+1);$==-1&&($=u.length),d.fmt=u.slice(o+1,$),o=$}if(d.text){var k=this.getVariableValue(g,d.text,b)+"";d.fmtString&&(k=this.tmStrFormat(k,d,g)),d.formatFunction&&(k=this.tmFormatFunction(k,d,g)),k&&!d.ifEnd?(A.push(k),_(d)):!k&&d.ifEnd&&_(d.ifEnd)}else d.elseEnd?_(d.elseEnd):(d.tabstopId!=null||d.changeCase!=null)&&A.push(d)}}function _(L){var T=u.indexOf(L,o+1);T!=-1&&(o=T)}return A},this.insertSnippetForSelection=function(u,g){var A=u.getCursorPosition(),b=u.session.getLine(A.row),x=u.session.getTabString(),o=b.match(/^\s*/)[0];A.column<o.length&&(o=o.slice(0,A.column)),g=g.replace(/\r/g,"");var d=this.tokenizeTmSnippet(g);d=this.resolveVariables(d,u),d=d.map(function(V){return V==` `?V+o:typeof V=="string"?V.replace(/\t/g,x):V});var $=[];d.forEach(function(V,J){if(typeof V=="object"){var X=V.tabstopId,q=$[X];if(q||(q=$[X]=[],q.index=X,q.value="",q.parents={}),q.indexOf(V)===-1){V.choices&&!q.choices&&(q.choices=V.choices),q.push(V);var oe=d.indexOf(V,J+1);if(oe!==-1){var ve=d.slice(J+1,oe),ge=ve.some(function(le){return typeof le=="object"});ge&&!q.value?q.value=ve:ve.length&&(!q.value||typeof q.value!="string")&&(q.value=ve.join(""))}}}}),$.forEach(function(V){V.length=0});var k={};function _(V){for(var J=[],X=0;X<V.length;X++){var q=V[X];if(typeof q=="object"){if(k[q.tabstopId])continue;var oe=V.lastIndexOf(q,X-1);q=J[oe]||{tabstopId:q.tabstopId}}J[X]=q}return J}for(var L=0;L<d.length;L++){var T=d[L];if(typeof T=="object"){var F=T.tabstopId,I=$[F],B=d.indexOf(T,L+1);if(k[F]){k[F]===T&&(delete k[F],Object.keys(k).forEach(function(V){I.parents[V]=!0}));continue}k[F]=T;var H=I.value;typeof H!="string"?H=_(H):T.fmt&&(H=this.tmStrFormat(H,T,u)),d.splice.apply(d,[L+1,Math.max(0,B-L)].concat(H,T)),I.indexOf(T)===-1&&I.push(T)}}var z=0,U=0,D="";d.forEach(function(V){if(typeof V=="string"){var J=V.split(` `);J.length>1?(U=J[J.length-1].length,z+=J.length-1):U+=V.length,D+=V}else V&&(V.start?V.end={row:z,column:U}:V.start={row:z,column:U})});var P=u.getSelectionRange(),N=u.session.replace(P,D),j=new m(u),Y=u.inVirtualSelectionMode&&u.selection.index;j.addTabstops($,P.start,N,Y)},this.insertSnippet=function(u,g){var A=this;if(u.inVirtualSelectionMode)return A.insertSnippetForSelection(u,g);u.forEachSelection(function(){A.insertSnippetForSelection(u,g)},null,{keepOrder:!0}),u.tabstopManager&&u.tabstopManager.tabNext()},this.$getScope=function(u){var g=u.session.$mode.$id||"";if(g=g.split("/").pop(),g==="html"||g==="php"){g==="php"&&!u.session.$mode.inlinePhp&&(g="html");var A=u.getCursorPosition(),b=u.session.getState(A.row);typeof b=="object"&&(b=b[0]),b.substring&&(b.substring(0,3)=="js-"?g="javascript":b.substring(0,4)=="css-"?g="css":b.substring(0,4)=="php-"&&(g="php"))}return g},this.getActiveScopes=function(u){var g=this.$getScope(u),A=[g],b=this.snippetMap;return b[g]&&b[g].includeScopes&&A.push.apply(A,b[g].includeScopes),A.push("_"),A},this.expandWithTab=function(u,g){var A=this,b=u.forEachSelection(function(){return A.expandSnippetForSelection(u,g)},null,{keepOrder:!0});return b&&u.tabstopManager&&u.tabstopManager.tabNext(),b},this.expandSnippetForSelection=function(u,g){var A=u.getCursorPosition(),b=u.session.getLine(A.row),x=b.substring(0,A.column),o=b.substr(A.column),d=this.snippetMap,$;return this.getActiveScopes(u).some(function(k){var _=d[k];return _&&($=this.findMatchingSnippet(_,x,o)),!!$},this),$?(g&&g.dryRun||(u.session.doc.removeInLine(A.row,A.column-$.replaceBefore.length,A.column+$.replaceAfter.length),this.variables.M__=$.matchBefore,this.variables.T__=$.matchAfter,this.insertSnippetForSelection(u,$.content),this.variables.M__=this.variables.T__=null),!0):!1},this.findMatchingSnippet=function(u,g,A){for(var b=u.length;b--;){var x=u[b];if(!(x.startRe&&!x.startRe.test(g))&&!(x.endRe&&!x.endRe.test(A))&&!(!x.startRe&&!x.endRe))return x.matchBefore=x.startRe?x.startRe.exec(g):[""],x.matchAfter=x.endRe?x.endRe.exec(A):[""],x.replaceBefore=x.triggerRe?x.triggerRe.exec(g)[0]:"",x.replaceAfter=x.endTriggerRe?x.endTriggerRe.exec(A)[0]:"",x}},this.snippetMap={},this.snippetNameMap={},this.register=function(u,g){var A=this.snippetMap,b=this.snippetNameMap,x=this;u||(u=[]);function o(k){return k&&!/^\^?\(.*\)\$?$|^\\b$/.test(k)&&(k="(?:"+k+")"),k||""}function d(k,_,L){return k=o(k),_=o(_),L?(k=_+k,k&&k[k.length-1]!="$"&&(k=k+"$")):(k=k+_,k&&k[0]!="^"&&(k="^"+k)),new RegExp(k)}function $(k){k.scope||(k.scope=g||"_"),g=k.scope,A[g]||(A[g]=[],b[g]={});var _=b[g];if(k.name){var L=_[k.name];L&&x.unregister(L),_[k.name]=k}A[g].push(k),k.prefix&&(k.tabTrigger=k.prefix),!k.content&&k.body&&(k.content=Array.isArray(k.body)?k.body.join(` `):k.body),k.tabTrigger&&!k.trigger&&(!k.guard&&/^\w/.test(k.tabTrigger)&&(k.guard="\\b"),k.trigger=s.escapeRegExp(k.tabTrigger)),!(!k.trigger&&!k.guard&&!k.endTrigger&&!k.endGuard)&&(k.startRe=d(k.trigger,k.guard,!0),k.triggerRe=new RegExp(k.trigger),k.endRe=d(k.endTrigger,k.endGuard,!0),k.endTriggerRe=new RegExp(k.endTrigger))}Array.isArray(u)?u.forEach($):Object.keys(u).forEach(function(k){$(u[k])}),this._signal("registerSnippets",{scope:g})},this.unregister=function(u,g){var A=this.snippetMap,b=this.snippetNameMap;function x(o){var d=b[o.scope||g];if(d&&d[o.name]){delete d[o.name];var $=A[o.scope||g],k=$&&$.indexOf(o);k>=0&&$.splice(k,1)}}u.content?x(u):Array.isArray(u)&&u.forEach(x)},this.parseSnippetFile=function(u){u=u.replace(/\r/g,"");for(var g=[],A={},b=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm,x;x=b.exec(u);){if(x[1])try{A=JSON.parse(x[1]),g.push(A)}catch{}if(x[4])A.content=x[4].replace(/^\t/gm,""),g.push(A),A={};else{var o=x[2],d=x[3];if(o=="regex"){var $=/\/((?:[^\/\\]|\\.)*)|$/g;A.guard=$.exec(d)[1],A.trigger=$.exec(d)[1],A.endTrigger=$.exec(d)[1],A.endGuard=$.exec(d)[1]}else o=="snippet"?(A.tabTrigger=d.match(/^\S*/)[0],A.name||(A.name=d)):o&&(A[o]=d)}}return g},this.getSnippetByName=function(u,g){var A=this.snippetNameMap,b;return this.getActiveScopes(g).some(function(x){var o=A[x];return o&&(b=o[u]),!!b},this),b}}).call(h.prototype);var m=function(u){if(u.tabstopManager)return u.tabstopManager;u.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=s.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(u)};(function(){this.attach=function(u){this.index=0,this.ranges=[],this.tabstops=[],this.$openTabstops=null,this.selectedTabstop=null,this.editor=u,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges=null,this.tabstops=null,this.selectedTabstop=null,this.editor.removeListener("change",this.$onChange),this.editor.removeListener("changeSelection",this.$onChangeSelection),this.editor.removeListener("changeSession",this.$onChangeSession),this.editor.commands.removeListener("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.editor=null},this.onChange=function(u){for(var g=u.action[0]=="r",A=this.selectedTabstop||{},b=A.parents||{},x=(this.tabstops||[]).slice(),o=0;o<x.length;o++){var d=x[o],$=d==A||b[d.index];if(d.rangeList.$bias=$?0:1,u.action=="remove"&&d!==A){var k=d.parents&&d.parents[A.index],_=d.rangeList.pointIndex(u.start,k);_=_<0?-_-1:_+1;var L=d.rangeList.pointIndex(u.end,k);L=L<0?-L-1:L-1;for(var T=d.rangeList.ranges.slice(_,L),F=0;F<T.length;F++)this.removeRange(T[F])}d.rangeList.$onChange(u)}var I=this.editor.session;!this.$inChange&&g&&I.getLength()==1&&!I.getValue()&&this.detach()},this.updateLinkedFields=function(){var u=this.selectedTabstop;if(!(!u||!u.hasLinkedRanges||!u.firstNonLinked)){this.$inChange=!0;for(var g=this.editor.session,A=g.getTextRange(u.firstNonLinked),b=0;b<u.length;b++){var x=u[b];if(x.linked){var o=x.original,d=y.snippetManager.tmStrFormat(A,o,this.editor);g.replace(x,d)}}this.$inChange=!1}},this.onAfterExec=function(u){u.command&&!u.command.readOnly&&this.updateLinkedFields()},this.onChangeSelection=function(){if(this.editor){for(var u=this.editor.selection.lead,g=this.editor.selection.anchor,A=this.editor.selection.isEmpty(),b=0;b<this.ranges.length;b++)if(!this.ranges[b].linked){var x=this.ranges[b].contains(u.row,u.column),o=A||this.ranges[b].contains(g.row,g.column);if(x&&o)return}this.detach()}},this.onChangeSession=function(){this.detach()},this.tabNext=function(u){var g=this.tabstops.length,A=this.index+(u||1);A=Math.min(Math.max(A,1),g),A==g&&(A=0),this.selectTabstop(A),A===0&&this.detach()},this.selectTabstop=function(u){this.$openTabstops=null;var g=this.tabstops[this.index];if(g&&this.addTabstopMarkers(g),this.index=u,g=this.tabstops[this.index],!(!g||!g.length)){this.selectedTabstop=g;var A=g.firstNonLinked||g;if(g.choices&&(A.cursor=A.start),this.editor.inVirtualSelectionMode)this.editor.selection.fromOrientedRange(A);else{var b=this.editor.multiSelect;b.toSingleRange(A);for(var x=0;x<g.length;x++)g.hasLinkedRanges&&g[x].linked||b.addRange(g[x].clone(),!0)}this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler),this.selectedTabstop&&this.selectedTabstop.choices&&this.editor.execCommand("startAutocomplete",{matches:this.selectedTabstop.choices})}},this.addTabstops=function(u,g,A){var b=this.useLink||!this.editor.getOption("enableMultiselect");if(this.$openTabstops||(this.$openTabstops=[]),!u[0]){var x=a.fromPoints(A,A);S(x.start,g),S(x.end,g),u[0]=[x],u[0].index=0}var o=this.index,d=[o+1,0],$=this.ranges;u.forEach(function(k,_){for(var L=this.$openTabstops[_]||k,T=0;T<k.length;T++){var F=k[T],I=a.fromPoints(F.start,F.end||F.start);v(I.start,g),v(I.end,g),I.original=F,I.tabstop=L,$.push(I),L!=k?L.unshift(I):L[T]=I,F.fmtString||L.firstNonLinked&&b?(I.linked=!0,L.hasLinkedRanges=!0):L.firstNonLinked||(L.firstNonLinked=I)}L.firstNonLinked||(L.hasLinkedRanges=!1),L===k&&(d.push(L),this.$openTabstops[_]=L),this.addTabstopMarkers(L),L.rangeList=L.rangeList||new t,L.rangeList.$bias=0,L.rangeList.addList(L)},this),d.length>2&&(this.tabstops.length&&d.push(d.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,d))},this.addTabstopMarkers=function(u){var g=this.editor.session;u.forEach(function(A){A.markerId||(A.markerId=g.addMarker(A,"ace_snippet-marker","text"))})},this.removeTabstopMarkers=function(u){var g=this.editor.session;u.forEach(function(A){g.removeMarker(A.markerId),A.markerId=null})},this.removeRange=function(u){var g=u.tabstop.indexOf(u);g!=-1&&u.tabstop.splice(g,1),g=this.ranges.indexOf(u),g!=-1&&this.ranges.splice(g,1),g=u.tabstop.rangeList.ranges.indexOf(u),g!=-1&&u.tabstop.splice(g,1),this.editor.session.removeMarker(u.markerId),u.tabstop.length||(g=this.tabstops.indexOf(u.tabstop),g!=-1&&this.tabstops.splice(g,1),this.tabstops.length||this.detach())},this.keyboardHandler=new e,this.keyboardHandler.bindKeys({Tab:function(u){y.snippetManager&&y.snippetManager.expandWithTab(u)||(u.tabstopManager.tabNext(1),u.renderer.scrollCursorIntoView())},"Shift-Tab":function(u){u.tabstopManager.tabNext(-1),u.renderer.scrollCursorIntoView()},Esc:function(u){u.tabstopManager.detach()}})}).call(m.prototype);var v=function(u,g){u.row==0&&(u.column+=g.column),u.row+=g.row},S=function(u,g){u.row==g.row&&(u.column-=g.column),u.row-=g.row};f.importCssString(` .ace_snippet-marker { -moz-box-sizing: border-box; box-sizing: border-box; background: rgba(194, 193, 208, 0.09); border: 1px dotted rgba(211, 208, 235, 0.62); position: absolute; }`,"snippets.css",!1),y.snippetManager=new h;var C=w("./editor").Editor;(function(){this.insertSnippet=function(u,g){return y.snippetManager.insertSnippet(this,u,g)},this.expandSnippet=function(u){return y.snippetManager.expandWithTab(this,u)}}).call(C.prototype)}),ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom"],function(w,y,M){var f=w("../virtual_renderer").VirtualRenderer,p=w("../editor").Editor,c=w("../range").Range,s=w("../lib/event"),a=w("../lib/lang"),t=w("../lib/dom"),e=function(r){return"suggest-aria-id:".concat(r)},i=function(r){var l=new f(r);l.$maxLines=4;var h=new p(l);return h.setHighlightActiveLine(!1),h.setShowPrintMargin(!1),h.renderer.setShowGutter(!1),h.renderer.setHighlightGutterLine(!1),h.$mouseHandler.$focusTimeout=0,h.$highlightTagPending=!0,h},n=function(r){var l=t.createElement("div"),h=new i(l);r&&r.appendChild(l),l.style.display="none",h.renderer.content.style.cursor="default",h.renderer.setStyle("ace_autocomplete"),h.renderer.container.setAttribute("role","listbox"),h.renderer.container.setAttribute("aria-label","Autocomplete suggestions"),h.setOption("displayIndentGuides",!1),h.setOption("dragDelay",150);var m=function(){};h.focus=m,h.$isFocused=!0,h.renderer.$cursorLayer.restartTimer=m,h.renderer.$cursorLayer.element.style.opacity=0,h.renderer.$maxLines=8,h.renderer.$keepTextAreaAtCursor=!1,h.setHighlightActiveLine(!1),h.session.highlight(""),h.session.$searchHighlight.clazz="ace_highlight-marker",h.on("mousedown",function(b){var x=b.getDocumentPosition();h.selection.moveToPosition(x),C.start.row=C.end.row=x.row,b.stop()});var v,S=new c(-1,0,-1,1/0),C=new c(-1,0,-1,1/0);C.id=h.session.addMarker(C,"ace_active-line","fullLine"),h.setSelectOnHover=function(b){b?S.id&&(h.session.removeMarker(S.id),S.id=null):S.id=h.session.addMarker(S,"ace_line-hover","fullLine")},h.setSelectOnHover(!1),h.on("mousemove",function(b){if(!v){v=b;return}if(!(v.x==b.x&&v.y==b.y)){v=b,v.scrollTop=h.renderer.scrollTop;var x=v.getDocumentPosition().row;S.start.row!=x&&(S.id||h.setRow(x),g(x))}}),h.renderer.on("beforeRender",function(){if(v&&S.start.row!=-1){v.$pos=null;var b=v.getDocumentPosition().row;S.id||h.setRow(b),g(b,!0)}}),h.renderer.on("afterRender",function(){var b=h.getRow(),x=h.renderer.$textLayer,o=x.element.childNodes[b-x.config.firstRow],d=document.activeElement;if(o!==x.selectedNode&&x.selectedNode&&(t.removeCssClass(x.selectedNode,"ace_selected"),d.removeAttribute("aria-activedescendant"),x.selectedNode.removeAttribute("id")),x.selectedNode=o,o){t.addCssClass(o,"ace_selected");var $=e(b);o.id=$,h.renderer.container.setAttribute("aria-activedescendant",$),d.setAttribute("aria-activedescendant",$),o.setAttribute("role","option"),o.setAttribute("aria-label",h.getData(b).value),o.setAttribute("aria-setsize",h.data.length),o.setAttribute("aria-posinset",b)}});var u=function(){g(-1)},g=function(b,x){b!==S.start.row&&(S.start.row=S.end.row=b,x||h.session._emit("changeBackMarker"),h._emit("changeHoverMarker"))};h.getHoveredRow=function(){return S.start.row},s.addListener(h.container,"mouseout",u),h.on("hide",u),h.on("changeSelection",u),h.session.doc.getLength=function(){return h.data.length},h.session.doc.getLine=function(b){var x=h.data[b];return typeof x=="string"?x:x&&x.value||""};var A=h.session.bgTokenizer;return A.$tokenizeRow=function(b){var x=h.data[b],o=[];if(!x)return o;typeof x=="string"&&(x={value:x});var d=x.caption||x.value||x.name;function $(H,z){H&&o.push({type:(x.className||"")+(z||""),value:H})}for(var k=d.toLowerCase(),_=(h.filterText||"").toLowerCase(),L=0,T=0,F=0;F<=_.length;F++)if(F!=T&&(x.matchMask&1<<F||F==_.length)){var I=_.slice(T,F);T=F;var B=k.indexOf(I,L);if(B==-1)continue;$(d.slice(L,B),""),L=B+I.length,$(d.slice(B,L),"completion-highlight")}return $(d.slice(L,d.length),""),x.meta&&o.push({type:"completion-meta",value:x.meta}),x.message&&o.push({type:"completion-message",value:x.message}),o},A.$updateOnChange=m,A.start=m,h.session.$computeWidth=function(){return this.screenWidth=0},h.isOpen=!1,h.isTopdown=!1,h.autoSelect=!0,h.filterText="",h.data=[],h.setData=function(b,x){h.filterText=x||"",h.setValue(a.stringRepeat(` `,b.length),-1),h.data=b||[],h.setRow(0)},h.getData=function(b){return h.data[b]},h.getRow=function(){return C.start.row},h.setRow=function(b){b=Math.max(this.autoSelect?0:-1,Math.min(this.data.length,b)),C.start.row!=b&&(h.selection.clearSelection(),C.start.row=C.end.row=b||0,h.session._emit("changeBackMarker"),h.moveCursorTo(b||0,0),h.isOpen&&h._signal("select"))},h.on("changeSelection",function(){h.isOpen&&h.setRow(h.selection.lead.row),h.renderer.scrollCursorIntoView()}),h.hide=function(){this.container.style.display="none",this._signal("hide"),h.isOpen=!1},h.show=function(b,x,o){var d=this.container,$=window.innerHeight,k=window.innerWidth,_=this.renderer,L=_.$maxLines*x*1.4,T=b.top+this.$borderSize,F=T>$/2&&!o;F&&T+x+L>$?(_.$maxPixelHeight=T-2*this.$borderSize,d.style.top="",d.style.bottom=$-T+"px",h.isTopdown=!1):(T+=x,_.$maxPixelHeight=$-T-.2*x,d.style.top=T+"px",d.style.bottom="",h.isTopdown=!0),d.style.display="";var I=b.left;I+d.offsetWidth>k&&(I=k-d.offsetWidth),d.style.left=I+"px",this._signal("show"),v=null,h.isOpen=!0},h.goTo=function(b){var x=this.getRow(),o=this.session.getLength()-1;switch(b){case"up":x=x<=0?o:x-1;break;case"down":x=x>=o?-1:x+1;break;case"start":x=0;break;case"end":x=o;break}this.setRow(x)},h.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},h.$imageSize=0,h.$borderSize=1,h};t.importCssString(` .ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line { background-color: #CAD6FA; z-index: 1; } .ace_dark.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line { background-color: #3a674e; } .ace_editor.ace_autocomplete .ace_line-hover { border: 1px solid #abbffe; margin-top: -1px; background: rgba(233,233,253,0.4); position: absolute; z-index: 2; } .ace_dark.ace_editor.ace_autocomplete .ace_line-hover { border: 1px solid rgba(109, 150, 13, 0.8); background: rgba(58, 103, 78, 0.62); } .ace_completion-meta { opacity: 0.5; margin: 0.9em; } .ace_completion-message { color: blue; } .ace_editor.ace_autocomplete .ace_completion-highlight{ color: #2d69c7; } .ace_dark.ace_editor.ace_autocomplete .ace_completion-highlight{ color: #93ca12; } .ace_editor.ace_autocomplete { width: 300px; z-index: 200000; border: 1px lightgray solid; position: fixed; box-shadow: 2px 3px 5px rgba(0,0,0,.2); line-height: 1.4; background: #fefefe; color: #111; } .ace_dark.ace_editor.ace_autocomplete { border: 1px #484747 solid; box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51); line-height: 1.4; background: #25282c; color: #c1c1c1; }`,"autocompletion.css",!1),y.AcePopup=n,y.$singleLineEditor=i,y.getAriaId=e}),ace.define("ace/autocomplete/util",["require","exports","module"],function(w,y,M){y.parForEach=function(p,c,s){var a=0,t=p.length;t===0&&s();for(var e=0;e<t;e++)c(p[e],function(i,n){a++,a===t&&s(i,n)})};var f=/[a-zA-Z_0-9\$\-\u00A2-\u2000\u2070-\uFFFF]/;y.retrievePrecedingIdentifier=function(p,c,s){s=s||f;for(var a=[],t=c-1;t>=0&&s.test(p[t]);t--)a.push(p[t]);return a.reverse().join("")},y.retrieveFollowingIdentifier=function(p,c,s){s=s||f;for(var a=[],t=c;t<p.length&&s.test(p[t]);t++)a.push(p[t]);return a},y.getCompletionPrefix=function(p){var c=p.getCursorPosition(),s=p.session.getLine(c.row),a;return p.completers.forEach(function(t){t.identifierRegexps&&t.identifierRegexps.forEach(function(e){!a&&e&&(a=this.retrievePrecedingIdentifier(s,c.column,e))}.bind(this))}.bind(this)),a||this.retrievePrecedingIdentifier(s,c.column)}}),ace.define("ace/autocomplete",["require","exports","module","ace/keyboard/hash_handler","ace/autocomplete/popup","ace/autocomplete/popup","ace/autocomplete/util","ace/lib/lang","ace/lib/dom","ace/snippets","ace/config"],function(w,y,M){var f=w("./keyboard/hash_handler").HashHandler,p=w("./autocomplete/popup").AcePopup,c=w("./autocomplete/popup").getAriaId,s=w("./autocomplete/util"),a=w("./lib/lang"),t=w("./lib/dom"),e=w("./snippets").snippetManager,i=w("./config"),n=function(){this.autoInsert=!1,this.autoSelect=!0,this.exactMatch=!1,this.gatherCompletionsId=0,this.keyboardHandler=new f,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=a.delayedCall(function(){this.updateCompletions(!0)}.bind(this)),this.tooltipTimer=a.delayedCall(this.updateDocTooltip.bind(this),50)};(function(){this.$init=function(){return this.popup=new p(document.body||document.documentElement),this.popup.on("click",function(l){this.insertMatch(),l.stop()}.bind(this)),this.popup.focus=this.editor.focus.bind(this.editor),this.popup.on("show",this.tooltipTimer.bind(null,null)),this.popup.on("select",this.tooltipTimer.bind(null,null)),this.popup.on("changeHoverMarker",this.tooltipTimer.bind(null,null)),this.popup},this.getPopup=function(){return this.popup||this.$init()},this.openPopup=function(l,h,m){this.popup||this.$init(),this.popup.autoSelect=this.autoSelect,this.popup.setData(this.completions.filtered,this.completions.filterText),this.editor.textInput.setAriaOptions&&this.editor.textInput.setAriaOptions({activeDescendant:c(this.popup.getRow())}),l.keyBinding.addKeyboardHandler(this.keyboardHandler);var v=l.renderer;if(this.popup.setRow(this.autoSelect?0:-1),m)m&&!h&&this.detach();else{this.popup.setTheme(l.getTheme()),this.popup.setFontSize(l.getFontSize());var S=v.layerConfig.lineHeight,C=v.$cursorLayer.getPixelPosition(this.base,!0);C.left-=this.popup.getTextLeftOffset();var u=l.container.getBoundingClientRect();C.top+=u.top-v.layerConfig.offset,C.left+=u.left-l.renderer.scrollLeft,C.left+=v.gutterWidth,this.popup.show(C,S)}this.changeTimer.cancel()},this.detach=function(){this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.off("changeSelection",this.changeListener),this.editor.off("blur",this.blurListener),this.editor.off("mousedown",this.mousedownListener),this.editor.off("mousewheel",this.mousewheelListener),this.changeTimer.cancel(),this.hideDocTooltip(),this.gatherCompletionsId+=1,this.popup&&this.popup.isOpen&&this.popup.hide(),this.base&&this.base.detach(),this.activated=!1,this.completions=this.base=null},this.changeListener=function(l){var h=this.editor.selection.lead;(h.row!=this.base.row||h.column<this.base.column)&&this.detach(),this.activated?this.changeTimer.schedule():this.detach()},this.blurListener=function(l){var h=document.activeElement,m=this.editor.textInput.getElement(),v=l.relatedTarget&&this.tooltipNode&&this.tooltipNode.contains(l.relatedTarget),S=this.popup&&this.popup.container;h!=m&&h.parentNode!=S&&!v&&h!=this.tooltipNode&&l.relatedTarget!=m&&this.detach()},this.mousedownListener=function(l){this.detach()},this.mousewheelListener=function(l){this.detach()},this.goTo=function(l){this.popup.goTo(l)},this.insertMatch=function(l,h){if(l||(l=this.popup.getData(this.popup.getRow())),!l)return!1;var m=this.completions;if(this.editor.startOperation({command:{name:"insertMatch"}}),l.completer&&l.completer.insertMatch)l.completer.insertMatch(this.editor,l);else{if(!m)return!1;if(m.filterText)for(var v=this.editor.selection.getAllRanges(),S=0,C;C=v[S];S++)C.start.column-=m.filterText.length,this.editor.session.remove(C);l.snippet?e.insertSnippet(this.editor,l.snippet):this.editor.execCommand("insertstring",l.value||l)}this.completions==m&&this.detach(),this.editor.endOperation()},this.commands={Up:function(l){l.completer.goTo("up")},Down:function(l){l.completer.goTo("down")},"Ctrl-Up|Ctrl-Home":function(l){l.completer.goTo("start")},"Ctrl-Down|Ctrl-End":function(l){l.completer.goTo("end")},Esc:function(l){l.completer.detach()},Return:function(l){return l.completer.insertMatch()},"Shift-Return":function(l){l.completer.insertMatch(null,{deleteSuffix:!0})},Tab:function(l){var h=l.completer.insertMatch();if(!h&&!l.tabstopManager)l.completer.goTo("down");else return h},PageUp:function(l){l.completer.popup.gotoPageUp()},PageDown:function(l){l.completer.popup.gotoPageDown()}},this.gatherCompletions=function(l,h){var m=l.getSession(),v=l.getCursorPosition(),S=s.getCompletionPrefix(l);this.base=m.doc.createAnchor(v.row,v.column-S.length),this.base.$insertRight=!0;var C=[],u=l.completers.length;return l.completers.forEach(function(g,A){g.getCompletions(l,m,v,S,function(b,x){!b&&x&&(C=C.concat(x)),h(null,{prefix:s.getCompletionPrefix(l),matches:C,finished:--u===0})})}),!0},this.showPopup=function(l,h){this.editor&&this.detach(),this.activated=!0,this.editor=l,l.completer!=this&&(l.completer&&l.completer.detach(),l.completer=this),l.on("changeSelection",this.changeListener),l.on("blur",this.blurListener),l.on("mousedown",this.mousedownListener),l.on("mousewheel",this.mousewheelListener),this.updateCompletions(!1,h)},this.updateCompletions=function(l,h){if(l&&this.base&&this.completions){var m=this.editor.getCursorPosition(),v=this.editor.session.getTextRange({start:this.base,end:m});if(v==this.completions.filterText)return;if(this.completions.setFilter(v),!this.completions.filtered.length)return this.detach();if(this.completions.filtered.length==1&&this.completions.filtered[0].value==v&&!this.completions.filtered[0].snippet)return this.detach();this.openPopup(this.editor,v,l);return}if(h&&h.matches){var m=this.editor.getSelectionRange().start;return this.base=this.editor.session.doc.createAnchor(m.row,m.column),this.base.$insertRight=!0,this.completions=new r(h.matches),this.openPopup(this.editor,"",l)}var S=this.gatherCompletionsId,C=function(x){if(x.finished)return this.detach()}.bind(this),u=function(x){var o=x.prefix,d=x.matches;this.completions=new r(d),this.exactMatch&&(this.completions.exactMatch=!0),this.completions.setFilter(o);var $=this.completions.filtered;if(!$.length||$.length==1&&$[0].value==o&&!$[0].snippet)return C(x);if(this.autoInsert&&$.length==1&&x.finished)return this.insertMatch($[0]);this.openPopup(this.editor,o,l)}.bind(this),g=!0,A=null;if(this.gatherCompletions(this.editor,function(x,o){var d=o.prefix,$=o&&o.matches;if(!$||!$.length)return C(o);if(!(d.indexOf(o.prefix)!==0||S!=this.gatherCompletionsId)){if(g){A=o;return}u(o)}}.bind(this)),g=!1,A){var b=A;A=null,u(b)}},this.cancelContextMenu=function(){this.editor.$mouseHandler.cancelContextMenu()},this.updateDocTooltip=function(){var l=this.popup,h=l.data,m=h&&(h[l.getHoveredRow()]||h[l.getRow()]),v=null;if(!m||!this.editor||!this.popup.isOpen)return this.hideDocTooltip();if(this.editor.completers.some(function(S){return S.getDocTooltip&&(v=S.getDocTooltip(m)),v}),!v&&typeof m!="string"&&(v=m),typeof v=="string"&&(v={docText:v}),!v||!(v.docHTML||v.docText))return this.hideDocTooltip();this.showDocTooltip(v)},this.showDocTooltip=function(l){this.tooltipNode||(this.tooltipNode=t.createElement("div"),this.tooltipNode.className="ace_tooltip ace_doc-tooltip",this.tooltipNode.style.margin=0,this.tooltipNode.style.pointerEvents="auto",this.tooltipNode.tabIndex=-1,this.tooltipNode.onblur=this.blurListener.bind(this),this.tooltipNode.onclick=this.onTooltipClick.bind(this));var h=this.tooltipNode;l.docHTML?h.innerHTML=l.docHTML:l.docText&&(h.textContent=l.docText),h.parentNode||document.body.appendChild(h);var m=this.popup,v=m.container.getBoundingClientRect();h.style.top=m.container.style.top,h.style.bottom=m.container.style.bottom,h.style.display="block",window.innerWidth-v.right<320?v.left<320?m.isTopdown?(h.style.top=v.bottom+"px",h.style.left=v.left+"px",h.style.right="",h.style.bottom=""):(h.style.top=m.container.offsetTop-h.offsetHeight+"px",h.style.left=v.left+"px",h.style.right="",h.style.bottom=""):(h.style.right=window.innerWidth-v.left+"px",h.style.left=""):(h.style.left=v.right+1+"px",h.style.right="")},this.hideDocTooltip=function(){if(this.tooltipTimer.cancel(),!!this.tooltipNode){var l=this.tooltipNode;!this.editor.isFocused()&&document.activeElement==l&&this.editor.focus(),this.tooltipNode=null,l.parentNode&&l.parentNode.removeChild(l)}},this.onTooltipClick=function(l){for(var h=l.target;h&&h!=this.tooltipNode;){if(h.nodeName=="A"&&h.href){h.rel="noreferrer",h.target="_blank";break}h=h.parentNode}},this.destroy=function(){if(this.detach(),this.popup){this.popup.destroy();var l=this.popup.container;l&&l.parentNode&&l.parentNode.removeChild(l)}this.editor&&this.editor.completer==this&&this.editor.completer==null,this.popup=null}}).call(n.prototype),n.for=function(l){return l.completer||(i.get("sharedPopups")?(n.$shared||(n.$sharedInstance=new n),l.completer=n.$sharedInstance):(l.completer=new n,l.once("destroy",function(h,m){m.completer.destroy()}))),l.completer},n.startCommand={name:"startAutocomplete",exec:function(l,h){var m=n.for(l);m.autoInsert=!1,m.autoSelect=!0,m.showPopup(l,h),m.cancelContextMenu()},bindKey:"Ctrl-Space|Ctrl-Shift-Space|Alt-Space"};var r=function(l,h){this.all=l,this.filtered=l,this.filterText=h||"",this.exactMatch=!1};(function(){this.setFilter=function(l){if(l.length>this.filterText&&l.lastIndexOf(this.filterText,0)===0)var h=this.filtered;else var h=this.all;this.filterText=l,h=this.filterCompletions(h,this.filterText),h=h.sort(function(v,S){return S.exactMatch-v.exactMatch||S.$score-v.$score||(v.caption||v.value).localeCompare(S.caption||S.value)});var m=null;h=h.filter(function(v){var S=v.snippet||v.caption||v.value;return S===m?!1:(m=S,!0)}),this.filtered=h},this.filterCompletions=function(l,h){var m=[],v=h.toUpperCase(),S=h.toLowerCase();e:for(var C=0,u;u=l[C];C++){var g=u.caption||u.value||u.snippet;if(g){var A=-1,b=0,x=0,o,d;if(this.exactMatch){if(h!==g.substr(0,h.length))continue e}else{var $=g.toLowerCase().indexOf(S);if($>-1)x=$;else for(var k=0;k<h.length;k++){var _=g.indexOf(S[k],A+1),L=g.indexOf(v[k],A+1);if(o=_>=0&&(L<0||_<L)?_:L,o<0)continue e;d=o-A-1,d>0&&(A===-1&&(x+=10),x+=d,b=b|1<<k),A=o}}u.matchMask=b,u.exactMatch=x?0:1,u.$score=(u.score||0)-x,m.push(u)}}return m}}).call(r.prototype),y.Autocomplete=n,y.FilteredList=r}),ace.define("ace/autocomplete/text_completer",["require","exports","module","ace/range"],function(w,y,M){var f=w("../range").Range,p=/[^a-zA-Z_0-9\$\-\u00C0-\u1FFF\u2C00-\uD7FF\w]+/;function c(a,t){var e=a.getTextRange(f.fromPoints({row:0,column:0},t));return e.split(p).length-1}function s(a,t){var e=c(a,t),i=a.getValue().split(p),n=Object.create(null),r=i[e];return i.forEach(function(l,h){if(!(!l||l===r)){var m=Math.abs(e-h),v=i.length-m;n[l]?n[l]=Math.max(v,n[l]):n[l]=v}}),n}y.getCompletions=function(a,t,e,i,n){var r=s(t,e),l=Object.keys(r);n(null,l.map(function(h){return{caption:h,value:h,score:r[h],meta:"local"}}))}}),ace.define("ace/ext/language_tools",["require","exports","module","ace/snippets","ace/autocomplete","ace/config","ace/lib/lang","ace/autocomplete/util","ace/autocomplete/text_completer","ace/editor","ace/config"],function(w,y,M){var f=w("../snippets").snippetManager,p=w("../autocomplete").Autocomplete,c=w("../config"),s=w("../lib/lang"),a=w("../autocomplete/util"),t=w("../autocomplete/text_completer"),e={getCompletions:function(u,g,A,b,x){if(g.$mode.completer)return g.$mode.completer.getCompletions(u,g,A,b,x);var o=u.session.getState(A.row),d=g.$mode.getCompletions(o,g,A,b);x(null,d)}},i=function(u){var g={};return u.replace(/\${(\d+)(:(.*?))?}/g,function(A,b,x,o){return g[b]=o||""}).replace(/\$(\d+?)/g,function(A,b){return g[b]})},n={getCompletions:function(u,g,A,b,x){var o=[],d=g.getTokenAt(A.row,A.column);d&&d.type.match(/(tag-name|tag-open|tag-whitespace|attribute-name|attribute-value)\.xml$/)?o.push("html-tag"):o=f.getActiveScopes(u);var $=f.snippetMap,k=[];o.forEach(function(_){for(var L=$[_]||[],T=L.length;T--;){var F=L[T],I=F.name||F.tabTrigger;I&&k.push({caption:I,snippet:F.content,meta:F.tabTrigger&&!F.name?F.tabTrigger+"⇥ ":"snippet",type:"snippet"})}},this),x(null,k)},getDocTooltip:function(u){u.type=="snippet"&&!u.docHTML&&(u.docHTML=["<b>",s.escapeHTML(u.caption),"</b>","<hr></hr>",s.escapeHTML(i(u.snippet))].join(""))}},r=[n,t,e];y.setCompleters=function(u){r.length=0,u&&r.push.apply(r,u)},y.addCompleter=function(u){r.push(u)},y.textCompleter=t,y.keyWordCompleter=e,y.snippetCompleter=n;var l={name:"expandSnippet",exec:function(u){return f.expandWithTab(u)},bindKey:"Tab"},h=function(u,g){m(g.session.$mode)},m=function(u){typeof u=="string"&&(u=c.$modes[u]),u&&(f.files||(f.files={}),v(u.$id,u.snippetFileId),u.modes&&u.modes.forEach(m))},v=function(u,g){!g||!u||f.files[u]||(f.files[u]={},c.loadModule(g,function(A){A&&(f.files[u]=A,!A.snippets&&A.snippetText&&(A.snippets=f.parseSnippetFile(A.snippetText)),f.register(A.snippets||[],A.scope),A.includeScopes&&(f.snippetMap[A.scope].includeScopes=A.includeScopes,A.includeScopes.forEach(function(b){m("ace/mode/"+b)})))}))},S=function(u){var g=u.editor,A=g.completer&&g.completer.activated;if(u.command.name==="backspace")A&&!a.getCompletionPrefix(g)&&g.completer.detach();else if(u.command.name==="insertstring"){var b=a.getCompletionPrefix(g);if(b&&!A){var x=p.for(g);x.autoInsert=!1,x.showPopup(g)}}},C=w("../editor").Editor;w("../config").defineOptions(C.prototype,"editor",{enableBasicAutocompletion:{set:function(u){u?(this.completers||(this.completers=Array.isArray(u)?u:r),this.commands.addCommand(p.startCommand)):this.commands.removeCommand(p.startCommand)},value:!1},enableLiveAutocompletion:{set:function(u){u?(this.completers||(this.completers=Array.isArray(u)?u:r),this.commands.on("afterExec",S)):this.commands.removeListener("afterExec",S)},value:!1},enableSnippets:{set:function(u){u?(this.commands.addCommand(l),this.on("changeMode",h),h(null,this)):(this.commands.removeCommand(l),this.off("changeMode",h))},value:!1}})}),function(){ace.require(["ace/ext/language_tools"],function(w){O&&(O.exports=w)})}()})(Jr);var Et={},Zr={get exports(){return Et},set exports(O){Et=O}};(function(O,R){ace.define("ace/ext/beautify",["require","exports","module","ace/token_iterator"],function(w,y,M){var f=w("../token_iterator").TokenIterator;function p(c,s){return c.type.lastIndexOf(s+".xml")>-1}y.singletonTags=["area","base","br","col","command","embed","hr","html","img","input","keygen","link","meta","param","source","track","wbr"],y.blockTags=["article","aside","blockquote","body","div","dl","fieldset","footer","form","head","header","html","nav","ol","p","script","section","style","table","tbody","tfoot","thead","ul"],y.formatOptions={lineBreaksAfterCommasInCurlyBlock:!0},y.beautify=function(c){for(var s=new f(c,0,0),a=s.getCurrentToken(),t=c.getTabString(),e=y.singletonTags,i=y.blockTags,n=y.formatOptions||{},r,l=!1,h=!1,m=!1,v="",S="",C="",u=0,g=0,A=0,b=0,x=0,o=0,d=0,$,k=0,_=0,L,T=!1,F=!1,I=!1,B=!1,H={0:0},z=[],U=!1,D=function(){r&&r.value&&r.type!=="string.regexp"&&(r.value=r.value.replace(/^\s*/,""))},P=function(){for(var j=v.length-1;!(j==0||v[j]!==" ");)j=j-1;v=v.slice(0,j+1)},N=function(){v=v.trimRight(),l=!1};a!==null;){if(k=s.getCurrentTokenRow(),s.$rowTokens,r=s.stepForward(),typeof a<"u"){if(S=a.value,x=0,I=C==="style"||c.$modeId==="ace/mode/css",p(a,"tag-open")?(F=!0,r&&(B=i.indexOf(r.value)!==-1),S==="</"&&(B&&!l&&_<1&&_++,I&&(_=1),x=1,B=!1)):p(a,"tag-close")?F=!1:p(a,"comment.start")?B=!0:p(a,"comment.end")&&(B=!1),!F&&!_&&a.type==="paren.rparen"&&a.value.substr(0,1)==="}"&&_++,k!==$&&(_=k,$&&(_-=$)),_){for(N();_>0;_--)v+=` `;l=!0,!p(a,"comment")&&!a.type.match(/^(comment|string)$/)&&(S=S.trimLeft())}if(S){if(a.type==="keyword"&&S.match(/^(if|else|elseif|for|foreach|while|switch)$/)?(z[u]=S,D(),m=!0,S.match(/^(else|elseif)$/)&&v.match(/\}[\s]*$/)&&(N(),h=!0)):a.type==="paren.lparen"?(D(),S.substr(-1)==="{"&&(m=!0,T=!1,F||(_=1)),S.substr(0,1)==="{"&&(h=!0,v.substr(-1)!=="["&&v.trimRight().substr(-1)==="["?(N(),h=!1):v.trimRight().substr(-1)===")"?N():P())):a.type==="paren.rparen"?(x=1,S.substr(0,1)==="}"&&(z[u-1]==="case"&&x++,v.trimRight().substr(-1)==="{"?N():(h=!0,I&&(_+=2))),S.substr(0,1)==="]"&&v.substr(-1)!=="}"&&v.trimRight().substr(-1)==="}"&&(h=!1,b++,N()),S.substr(0,1)===")"&&v.substr(-1)!=="("&&v.trimRight().substr(-1)==="("&&(h=!1,b++,N()),P()):(a.type==="keyword.operator"||a.type==="keyword")&&S.match(/^(=|==|===|!=|!==|&&|\|\||and|or|xor|\+=|.=|>|>=|<|<=|=>)$/)?(N(),D(),h=!0,m=!0):a.type==="punctuation.operator"&&S===";"?(N(),D(),m=!0,I&&_++):a.type==="punctuation.operator"&&S.match(/^(:|,)$/)?(N(),D(),S.match(/^(,)$/)&&d>0&&o===0&&n.lineBreaksAfterCommasInCurlyBlock?_++:(m=!0,l=!1)):a.type==="support.php_tag"&&S==="?>"&&!l?(N(),h=!0):p(a,"attribute-name")&&v.substr(-1).match(/^\s$/)?h=!0:p(a,"attribute-equals")?(P(),D()):p(a,"tag-close")?(P(),S==="/>"&&(h=!0)):a.type==="keyword"&&S.match(/^(case|default)$/)&&U&&(x=1),l&&!(a.type.match(/^(comment)$/)&&!S.substr(0,1).match(/^[/#]$/))&&!(a.type.match(/^(string)$/)&&!S.substr(0,1).match(/^['"@]$/))){if(b=A,u>g)for(b++,L=u;L>g;L--)H[L]=b;else u<g&&(b=H[u]);for(g=u,A=b,x&&(b-=x),T&&!o&&(b++,T=!1),L=0;L<b;L++)v+=t}if(a.type==="keyword"&&S.match(/^(case|default)$/)?U===!1&&(z[u]=S,u++,U=!0):a.type==="keyword"&&S.match(/^(break)$/)&&z[u-1]&&z[u-1].match(/^(case|default)$/)&&(u--,U=!1),a.type==="paren.lparen"&&(o+=(S.match(/\(/g)||[]).length,d+=(S.match(/\{/g)||[]).length,u+=S.length),a.type==="keyword"&&S.match(/^(if|else|elseif|for|while)$/)?(T=!0,o=0):!o&&S.trim()&&a.type!=="comment"&&(T=!1),a.type==="paren.rparen")for(o-=(S.match(/\)/g)||[]).length,d-=(S.match(/\}/g)||[]).length,L=0;L<S.length;L++)u--,S.substr(L,1)==="}"&&z[u]==="case"&&u--;a.type=="text"&&(S=S.replace(/\s+$/," ")),h&&!l&&(P(),v.substr(-1)!==` `&&(v+=" ")),v+=S,m&&(v+=" "),l=!1,h=!1,m=!1,(p(a,"tag-close")&&(B||i.indexOf(C)!==-1)||p(a,"doctype")&&S===">")&&(B&&r&&r.value==="</"?_=-1:_=1),r&&e.indexOf(r.value)===-1&&(p(a,"tag-open")&&S==="</"?u--:p(a,"tag-open")&&S==="<"?u++:p(a,"tag-close")&&S==="/>"&&u--),p(a,"tag-name")&&(C=S),$=k}}a=r}v=v.trim(),c.doc.setValue(v)},y.commands=[{name:"beautify",description:"Format selection (Beautify)",exec:function(c){y.beautify(c.session)},bindKey:"Ctrl-Shift-B"}]}),function(){ace.require(["ace/ext/beautify"],function(w){O&&(O.exports=w)})}()})(Zr);const pi=Et;Ft.config.setModuleUrl("ace/mode/css_worker",kn);Ft.config.setModuleUrl("ace/mode/html_worker",An);Ft.config.setModuleUrl("ace/mode/javascript_worker",_n);function ts({mode:O,onChange:R,onIsValidChange:w,defaultValue:y}){const M=Cn(),f=nt.useRef();return nt.useEffect(()=>{pi.beautify(f.current.editor.session)},[]),Sn.jsx(Kr,{ref:f,width:"auto",height:"auto",wrapEnabled:!0,className:"absolute inset-0",focus:!0,mode:O,theme:M?"tomorrow_night":"chrome",enableBasicAutocompletion:!0,enableLiveAutocompletion:!0,defaultValue:y,onChange:R,editorProps:{$blockScrolling:!0},commands:pi.commands,onValidate:p=>{const c=p.filter(s=>s.type==="error").length===0;w(c)}})}export{ts as default}; //# sourceMappingURL=ace-editor-74b87ff0.js.map
Save
Cancel