!function(e){if(("undefined"==typeof e.window||!e.document)&&(!e.require||!e.define)){e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(-1!==n.indexOf("!")){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if("."==n.charAt(0)){var i=t.split("/").slice(0,-1).join("/");for(n=(i?i+"/":"")+n;-1!==n.indexOf(".")&&o!=n;){var o=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(t,n){if(n||(n=t,t=null),!n.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");n=e.normalizeModule(t,n);var r=e.require.modules[n];if(r)return r.initialized||(r.initialized=!0,r.exports=r.factory().exports),r.exports;if(!e.require.tlns)return console.log("unable to load "+n);var i=function(e,t){var n=e,r="";for(;n;){var i=t[n];if("string"==typeof i)return i+r;if(i)return i.location.replace(/\/*$/,"/")+(r||i.main||i.name);if(!1===i)return"";var o=n.lastIndexOf("/");if(-1===o)break;r=n.substr(o)+r,n=n.slice(0,o)}return e}(n,e.require.tlns);return".js"!=i.slice(-3)&&(i+=".js"),e.require.id=n,e.require.modules[n]={},importScripts(i),e.require(t,n)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){if(2==arguments.length?(r=n,"string"!=typeof t&&(n=t,t=e.require.id)):1==arguments.length&&(r=t,n=[],t=e.require.id),"function"==typeof r){n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.slice(0,r.length).map((function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}})));return t&&(e.exports=t),e}}}else e.require.modules[t]={exports:r,initialized:!0}},e.define.amd={},require.tlns={},e.initBaseUrls=function(e){for(var t in e)require.tlns[t]=e[t]},e.initSender=function(){var t=e.require("ace/lib/event_emitter").EventEmitter,n=e.require("ace/lib/oop"),r=function(){};return function(){n.implement(this,t),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(r.prototype),new r};var t=e.main=null,n=e.sender=null;e.onmessage=function(r){var i=r.data;if(i.event&&n)n._signal(i.event,i.data);else if(i.command)if(t[i.command])t[i.command].apply(t,i.args);else{if(!e[i.command])throw new Error("Unknown command:"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),n=e.sender=e.initSender();var o=require(i.module)[i.classname];t=e.main=new o(n)}}}}(this),ace.define("ace/lib/oop",[],(function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}})),ace.define("ace/range",[],(function(e,t,n){"use strict";var r=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return 0==this.compare(e,t)},this.compareRange=function(e){var t,n=e.end,r=e.start;return 1==(t=this.compare(n.row,n.column))?1==(t=this.compare(r.row,r.column))?2:0==t?1:0:-1==t?-2:-1==(t=this.compare(r.row,r.column))?-1:1==t?42:0},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return-1==t||0==t||1==t},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0:tthis.end.column?1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.rowt)var i={row:t+1,column:0};else if(this.start.rowthis.row)){var n=function(t,n,r){var i="insert"==t.action,o=(i?1:-1)*(t.end.row-t.start.row),s=(i?1:-1)*(t.end.column-t.start.column),a=t.start,c=i?a:t.end;if(e(n,a,r))return{row:n.row,column:n.column};if(e(c,n,!r))return{row:n.row+o,column:n.column+(n.row==c.row?s:0)};return{row:a.row,column:a.column}}(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)}},this.setPosition=function(e,t,n){var r;if(r=n?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=r.row||this.column!=r.column){var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})}},this.detach=function(){this.document.off("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(o.prototype)})),ace.define("ace/document",[],(function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=e("./anchor").Anchor,c=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new s(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new a(this,e,t)},0==="aaa".split(/a/).length?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},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"\r\n"==e||"\r"==e||"\n"==e},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+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 t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{(t=this.getLines(e.start.row,e.end.row))[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();void 0===e?e=n:e<0?e=0:e>=n&&(e=n-1,t=void 0);var r=this.getLine(e);return void 0==t&&(t=r.length),{row:e,column:t=Math.min(Math.max(t,0),r.length)}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-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,t){var n=0;(e=Math.min(Math.max(e,0),this.getLength()))0,r=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){return e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty()?e.start:t==this.getTextRange(e)?e.end:(this.remove(e),t?this.insert(e.start,t):e.start)},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n="insert"==e.action;(n?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4?this.$splitAndapplyLargeDelta(e,2e4):(i(this.$lines,e,t),this._signal("change",e)))},this.$safeApplyDelta=function(e){var t=this.$lines.length;("remove"==e.action&&e.start.row0;)1&t&&(n+=e),(t>>=1)&&(e+=e);return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){for(var t=[],n=0,r=e.length;n>6,128|t|63&e):e<65536?String.fromCharCode(224|t|e>>12,128|t|e>>6&63,128|t|63&e):e<1114112?String.fromCharCode(240|t|e>>18,128|t|e>>12&63,128|t|e>>6&63,128|t|63&e):null}function c(e,t){for(var n=e.toString(16);n.length=128?String.fromCharCode(63232|e):String.fromCharCode(e)},encodeUTF8:function(e){return a(e,63232)}},none:{discardStrings:!0,fixup:function(e){return e},encodeByte:function(e){return""},encodeUTF8:function(e){return""}}},h=1,p=2,f=4,d=8,m=16,g=32,v=64,y=128,w=256;e.tokenTypes={EOF:h,StringLiteral:p,Keyword:f,Identifier:d,NumericLiteral:m,Punctuator:g,BooleanLiteral:v,NilLiteral:y,VarargLiteral:w};var b=e.errors={unexpected:"unexpected %1 '%2' near '%3'",unexpectedEOF:"unexpected symbol near ''",expected:"'%1' expected near '%2'",expectedToken:"%1 expected near '%2'",unfinishedString:"unfinished string near '%1'",malformedNumber:"malformed number near '%1'",decimalEscapeTooLarge:"decimal escape too large near '%1'",invalidEscape:"invalid escape sequence near '%1'",hexadecimalDigitExpected:"hexadecimal digit expected near '%1'",braceExpected:"missing '%1' near '%2'",tooLargeCodepoint:"UTF-8 value too large near '%1'",unfinishedLongString:"unfinished long string (starting at line %1) near '%2'",unfinishedLongComment:"unfinished long comment (starting at line %1) near '%2'",ambiguousSyntax:"ambiguous syntax (function call x new statement) near '%1'",noLoopToBreak:"no loop to break near '%1'",labelAlreadyDefined:"label '%1' already defined on line %2",labelNotVisible:"no visible label '%1' for ",gotoJumpInLocalScope:" jumps into the scope of local '%2'",cannotUseVararg:"cannot use '...' outside a vararg function near '%1'",invalidCodeUnit:"code unit U+%1 is not allowed in the current encoding mode"},x=e.ast={labelStatement:function(e){return{type:"LabelStatement",label:e}},breakStatement:function(){return{type:"BreakStatement"}},gotoStatement:function(e){return{type:"GotoStatement",label:e}},returnStatement:function(e){return{type:"ReturnStatement",arguments:e}},ifStatement:function(e){return{type:"IfStatement",clauses:e}},ifClause:function(e,t){return{type:"IfClause",condition:e,body:t}},elseifClause:function(e,t){return{type:"ElseifClause",condition:e,body:t}},elseClause:function(e){return{type:"ElseClause",body:e}},whileStatement:function(e,t){return{type:"WhileStatement",condition:e,body:t}},doStatement:function(e){return{type:"DoStatement",body:e}},repeatStatement:function(e,t){return{type:"RepeatStatement",condition:e,body:t}},localStatement:function(e,t){return{type:"LocalStatement",variables:e,init:t}},assignmentStatement:function(e,t){return{type:"AssignmentStatement",variables:e,init:t}},callStatement:function(e){return{type:"CallStatement",expression:e}},functionStatement:function(e,t,n,r){return{type:"FunctionDeclaration",identifier:e,isLocal:n,parameters:t,body:r}},forNumericStatement:function(e,t,n,r,i){return{type:"ForNumericStatement",variable:e,start:t,end:n,step:r,body:i}},forGenericStatement:function(e,t,n){return{type:"ForGenericStatement",variables:e,iterators:t,body:n}},chunk:function(e){return{type:"Chunk",body:e}},identifier:function(e){return{type:"Identifier",name:e}},literal:function(e,t,n){return{type:e=e===p?"StringLiteral":e===m?"NumericLiteral":e===v?"BooleanLiteral":e===y?"NilLiteral":"VarargLiteral",value:t,raw:n}},tableKey:function(e,t){return{type:"TableKey",key:e,value:t}},tableKeyString:function(e,t){return{type:"TableKeyString",key:e,value:t}},tableValue:function(e){return{type:"TableValue",value:e}},tableConstructorExpression:function(e){return{type:"TableConstructorExpression",fields:e}},binaryExpression:function(e,t,n){return{type:"and"===e||"or"===e?"LogicalExpression":"BinaryExpression",operator:e,left:t,right:n}},unaryExpression:function(e,t){return{type:"UnaryExpression",operator:e,argument:t}},memberExpression:function(e,t,n){return{type:"MemberExpression",indexer:t,identifier:n,base:e}},indexExpression:function(e,t){return{type:"IndexExpression",base:e,index:t}},callExpression:function(e,t){return{type:"CallExpression",base:e,arguments:t}},tableCallExpression:function(e,t){return{type:"TableCallExpression",base:e,arguments:t}},stringCallExpression:function(e,t){return{type:"StringCallExpression",base:e,argument:t}},comment:function(e,t){return{type:"Comment",value:e,raw:t}}};function L(e){if(Ee){var t=Ae.pop();t.complete(),t.bless(e)}return n.onCreateNode&&n.onCreateNode(e),e}var S=Array.prototype.slice,C=(Object.prototype.toString,function(e,t){for(var n=0,r=e.length;n=r)return{type:h,value:"",line:$,lineStart:N,range:[k,k]};var e=t.charCodeAt(k),n=t.charCodeAt(k+1);if(_=k,de(e))return K();switch(e){case 39:case 34:return X();case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return Y();case 46:return pe(n)?Y():46===n?46===t.charCodeAt(k+2)?J():W(".."):W(".");case 61:return W(61===n?"==":"=");case 62:return i.bitwiseOperators&&62===n?W(">>"):W(61===n?">=":">");case 60:return i.bitwiseOperators&&60===n?W("<<"):W(61===n?"<=":"<");case 126:if(61===n)return W("~=");if(!i.bitwiseOperators)break;return W("~");case 58:return i.labels&&58===n?W("::"):W(":");case 91:return 91===n||61===n?Q():W("[");case 47:return i.integerDivision&&47===n?W("//"):W("/");case 38:case 124:if(!i.bitwiseOperators)break;case 42:case 94:case 37:case 44:case 123:case 125:case 93:case 40:case 41:case 59:case 35:case 45:case 43:return W(t.charAt(k))}return G(t.charAt(k))}function H(){var e=t.charCodeAt(k),n=t.charCodeAt(k+1);return!!he(e)&&(10===e&&13===n&&++k,13===e&&10===n&&++k,++$,N=++k,!0)}function z(){for(;kr||he(e))&&(c+=t.slice(a,k-1),F(null,b.unfinishedString,t.slice(_,k-1))),92===e){if(!o.discardStrings){var u=t.slice(a,k-1);c+=o.fixup(u)}var l=ie();o.discardStrings||(c+=l),a=k}return o.discardStrings||(c+=o.encodeByte(null),c+=o.fixup(t.slice(a,k-1))),{type:p,value:c,line:i,lineStart:s,lastLine:$,lastLineStart:N,range:[_,k]}}function Q(){var e=$,t=N,n=se(!1);return!1===n&&F(D,b.expected,"[",q(D)),{type:p,value:o.discardStrings?null:o.fixup(n),line:e,lineStart:t,lastLine:$,lastLineStart:N,range:[_,k]}}function Y(){var e=t.charAt(k),n=t.charAt(k+1),r="0"===e&&"xX".indexOf(n||null)>=0?te():ne(),i=Z();return ee()&&(i||r.hasFractionPart)&&F(null,b.malformedNumber,t.slice(_,k)),{type:m,value:r.value,line:$,lineStart:N,range:[_,k]}}function Z(){if(i.imaginaryNumbers)return"iI".indexOf(t.charAt(k)||null)>=0&&(++k,!0)}function ee(){if(i.integerSuffixes)if("uU".indexOf(t.charAt(k)||null)>=0)if(++k,"lL".indexOf(t.charAt(k)||null)>=0){if(++k,"lL".indexOf(t.charAt(k)||null)>=0)return++k,"ULL";F(null,b.malformedNumber,t.slice(_,k))}else F(null,b.malformedNumber,t.slice(_,k));else if("lL".indexOf(t.charAt(k)||null)>=0){if(++k,"lL".indexOf(t.charAt(k)||null)>=0)return++k,"LL";F(null,b.malformedNumber,t.slice(_,k))}}function te(){var e,n,r,i,o=0,s=1,a=1;for(i=k+=2,fe(t.charCodeAt(k))||F(null,b.malformedNumber,t.slice(_,k));fe(t.charCodeAt(k));)++k;e=parseInt(t.slice(i,k),16);var c=!1;if("."===t.charAt(k)){for(c=!0,n=++k;fe(t.charCodeAt(k));)++k;o=t.slice(n,k),o=n===k?0:parseInt(o,16)/Math.pow(16,k-n)}var u=!1;if("pP".indexOf(t.charAt(k)||null)>=0){for(u=!0,++k,"+-".indexOf(t.charAt(k)||null)>=0&&(a="+"===t.charAt(k++)?1:-1),r=k,pe(t.charCodeAt(k))||F(null,b.malformedNumber,t.slice(_,k));pe(t.charCodeAt(k));)++k;s=t.slice(r,k),s=Math.pow(2,s*a)}return{value:(e+o)*s,hasFractionPart:c||u}}function ne(){for(;pe(t.charCodeAt(k));)++k;var e=!1;if("."===t.charAt(k))for(e=!0,++k;pe(t.charCodeAt(k));)++k;var n=!1;if("eE".indexOf(t.charAt(k)||null)>=0)for(n=!0,++k,"+-".indexOf(t.charAt(k)||null)>=0&&++k,pe(t.charCodeAt(k))||F(null,b.malformedNumber,t.slice(_,k));pe(t.charCodeAt(k));)++k;return{value:parseFloat(t.slice(_,k)),hasFractionPart:e||n}}function re(){var e=k++;for("{"!==t.charAt(k++)&&F(null,b.braceExpected,"{","\\"+t.slice(e,k)),fe(t.charCodeAt(k))||F(null,b.hexadecimalDigitExpected,"\\"+t.slice(e,k));48===t.charCodeAt(k);)++k;for(var n=k;fe(t.charCodeAt(k));)++k-n>6&&F(null,b.tooLargeCodepoint,"\\"+t.slice(e,k));var r=t.charAt(k++);"}"!==r&&('"'===r||"'"===r?F(null,b.braceExpected,"}","\\"+t.slice(e,k--)):F(null,b.hexadecimalDigitExpected,"\\"+t.slice(e,k)));var i=parseInt(t.slice(n,k-1)||"0",16),s="\\"+t.slice(e,k);return i>1114111&&F(null,b.tooLargeCodepoint,s),o.encodeUTF8(i,s)}function ie(){var e=k;switch(t.charAt(k)){case"a":return++k,"\x07";case"n":return++k,"\n";case"r":return++k,"\r";case"t":return++k,"\t";case"v":return++k,"\v";case"b":return++k,"\b";case"f":return++k,"\f";case"\r":case"\n":return H(),"\n";case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;pe(t.charCodeAt(k))&&k-e<3;)++k;var n=t.slice(e,k),r=parseInt(n,10);return r>255&&F(null,b.decimalEscapeTooLarge,"\\"+r),o.encodeByte(r,"\\"+n);case"z":if(i.skipWhitespaceEscape)return++k,z(),"";break;case"x":if(i.hexEscapes){if(fe(t.charCodeAt(k+1))&&fe(t.charCodeAt(k+2)))return k+=3,o.encodeByte(parseInt(t.slice(e+1,k),16),"\\"+t.slice(e,k));F(null,b.hexadecimalDigitExpected,"\\"+t.slice(e,k+2))}break;case"u":if(i.unicodeEscapes)return re();break;case"\\":case'"':case"'":return t.charAt(k++)}return i.strictEscapes&&F(null,b.invalidEscape,"\\"+t.slice(e,k+1)),t.charAt(k++)}function oe(){_=k,k+=2;var e=t.charAt(k),i="",o=!1,s=k,a=N,c=$;if("["===e&&(!1===(i=se(!0))?i=e:o=!0),!o){for(;k")}function ae(){P=D,D=M,M=B()}function ce(e){return e===D.value&&(ae(),!0)}function ue(e){e===D.value?ae():F(D,b.expected,e,q(D))}function le(e){return 9===e||32===e||11===e||12===e}function he(e){return 10===e||13===e}function pe(e){return e>=48&&e<=57}function fe(e){return e>=48&&e<=57||e>=97&&e<=102||e>=65&&e<=70}function de(e){return e>=65&&e<=90||e>=97&&e<=122||95===e||!!(i.extendedIdentifiers&&e>=128)}function me(e){return e>=65&&e<=90||e>=97&&e<=122||95===e||e>=48&&e<=57||!!(i.extendedIdentifiers&&e>=128)}function ge(e){switch(e.length){case 2:return"do"===e||"if"===e||"in"===e||"or"===e;case 3:return"and"===e||"end"===e||"for"===e||"not"===e;case 4:return"else"===e||"then"===e||!(!i.labels||i.contextualGoto)&&"goto"===e;case 5:return"break"===e||"local"===e||"until"===e||"while"===e;case 6:return"elseif"===e||"repeat"===e||"return"===e;case 8:return"function"===e}return!1}function ve(e){return g===e.type?"#-~".indexOf(e.value)>=0:f===e.type&&"not"===e.value}function ye(e){if(h===e.type)return!0;if(f!==e.type)return!1;switch(e.value){case"else":case"elseif":case"end":case"until":return!0;default:return!1}}function we(){var e=T[R++].slice();T.push(e),n.onCreateScope&&n.onCreateScope()}function be(){T.pop(),--R,n.onDestroyScope&&n.onDestroyScope()}function xe(e){n.onLocalDeclaration&&n.onLocalDeclaration(e),-1===C(T[R],e)&&T[R].push(e)}function Le(e){xe(e.name),Se(e,!0)}function Se(e,t){t||-1!==E(j,"name",e.name)||j.push(e),e.isLocal=t}function Ce(e){return-1!==C(T[R],e)}Object.assign&&(U=Object.assign),e.SyntaxError=SyntaxError,e.lex=B;var Ee,Ae=[];function ke(){return new De(D)}function De(e){n.locations&&(this.loc={start:{line:e.line,column:e.range[0]-e.lineStart},end:{line:0,column:0}}),n.ranges&&(this.range=[e.range[0],0])}function Pe(){Ee&&Ae.push(ke())}function Me(e){Ee&&Ae.push(e)}function Oe(){this.scopes=[],this.pendingGotos=[]}function _e(){this.level=0,this.loopLevels=[]}function $e(){return i.labels?new Oe:new _e}function Ne(){ae(),Pe(),n.scope&&we();var e=$e();e.allowVararg=!0,e.pushScope();var t=Te(e);return e.popScope(),n.scope&&be(),h!==D.type&&G(D),Ee&&!t.length&&(P=D),L(x.chunk(t))}function Te(e){for(var t,n=[];!ye(D);){if("return"===D.value||!i.relaxedBreak&&"break"===D.value){n.push(Re(e));break}t=Re(e),ce(";"),t&&n.push(t)}return n}function Re(e){if(Pe(),g===D.type&&ce("::"))return je(e);if(!i.emptyStatement||!ce(";")){if(e.raiseDeferredErrors(),f===D.type)switch(D.value){case"local":return ae(),ze(e);case"if":return ae(),Be(e);case"return":return ae(),Ge(e);case"function":return ae(),Je(Xe());case"while":return ae(),qe(e);case"for":return ae(),He(e);case"repeat":return ae(),Ve(e);case"break":return ae(),e.isInLoop()||F(D,b.noLoopToBreak,D.value),Ue();case"do":return ae(),Fe(e);case"goto":return ae(),Ie(e)}return i.contextualGoto&&D.type===d&&"goto"===D.value&&M.type===d&&"goto"!==M.value?(ae(),Ie(e)):(Ee&&Ae.pop(),Ke(e))}Ee&&Ae.pop()}function je(e){var t=D,r=We();return n.scope&&(xe("::"+t.value+"::"),Se(r,!0)),ue("::"),e.addLabel(t.value,t),L(x.labelStatement(r))}function Ue(){return L(x.breakStatement())}function Ie(e){var t=D.value,n=P,r=We();return e.addGoto(t,n),L(x.gotoStatement(r))}function Fe(e){n.scope&&we(),e.pushScope();var t=Te(e);return e.popScope(),n.scope&&be(),ue("end"),L(x.doStatement(t))}function qe(e){var t=Ze(e);ue("do"),n.scope&&we(),e.pushScope(!0);var r=Te(e);return e.popScope(),n.scope&&be(),ue("end"),L(x.whileStatement(t,r))}function Ve(e){n.scope&&we(),e.pushScope(!0);var t=Te(e);ue("until"),e.raiseDeferredErrors();var r=Ze(e);return e.popScope(),n.scope&&be(),L(x.repeatStatement(r,t))}function Ge(e){var t=[];if("end"!==D.value){var n=Ye(e);for(null!=n&&t.push(n);ce(",");)n=Ze(e),t.push(n);ce(";")}return L(x.returnStatement(t))}function Be(e){var t,r,i,o=[];for(Ee&&(i=Ae[Ae.length-1],Ae.push(i)),t=Ze(e),ue("then"),n.scope&&we(),e.pushScope(),r=Te(e),e.popScope(),n.scope&&be(),o.push(L(x.ifClause(t,r))),Ee&&(i=ke());ce("elseif");)Me(i),t=Ze(e),ue("then"),n.scope&&we(),e.pushScope(),r=Te(e),e.popScope(),n.scope&&be(),o.push(L(x.elseifClause(t,r))),Ee&&(i=ke());return ce("else")&&(Ee&&(i=new De(P),Ae.push(i)),n.scope&&we(),e.pushScope(),r=Te(e),e.popScope(),n.scope&&be(),o.push(L(x.elseClause(r)))),ue("end"),L(x.ifStatement(o))}function He(e){var t,r=We();if(n.scope&&(we(),Le(r)),ce("=")){var i=Ze(e);ue(",");var o=Ze(e),s=ce(",")?Ze(e):null;return ue("do"),e.pushScope(!0),t=Te(e),e.popScope(),ue("end"),n.scope&&be(),L(x.forNumericStatement(r,i,o,s,t))}for(var a=[r];ce(",");)r=We(),n.scope&&Le(r),a.push(r);ue("in");var c=[];do{var u=Ze(e);c.push(u)}while(ce(","));return ue("do"),e.pushScope(!0),t=Te(e),e.popScope(),ue("end"),n.scope&&be(),L(x.forGenericStatement(a,c,t))}function ze(e){var t,r=P;if(d===D.type){var i=[],o=[];do{t=We(),i.push(t),e.addLocal(t.name,r)}while(ce(","));if(ce("="))do{var s=Ze(e);o.push(s)}while(ce(","));if(n.scope)for(var a=0,c=i.length;a",D)}function Ke(e){var t,r,i,o,s,a=[];for(Ee&&(r=ke());;){if(Ee&&(t=ke()),d===D.type)s=D.value,o=We(),n.scope&&Se(o,Ce(s)),i=!0;else{if("("!==D.value)return G(D);ae(),o=Ze(e),ue(")"),i=!1}e:for(;;){switch(p===D.type?'"':D.value){case".":case"[":i=!0;break;case":":case"(":case"{":case'"':i=null;break;default:break e}o=nt(o,t,e)}if(a.push(o),","!==D.value)break;if(!i)return G(D);ae()}if(1===a.length&&null===i)return Me(t),L(x.callStatement(a[0]));if(!i)return G(D);ue("=");var c=[];do{c.push(Ze(e))}while(ce(","));return Me(r),L(x.assignmentStatement(a,c))}function We(){Pe();var e=D.value;return d!==D.type&&V("",D),ae(),L(x.identifier(e))}function Je(e,t){var r=$e();r.pushScope();var i=[];if(ue("("),!ce(")"))for(;;){if(d===D.type){var o=We();if(n.scope&&Le(o),i.push(o),ce(","))continue}else w===D.type?(r.allowVararg=!0,i.push(ot(r))):V(" or '...'",D);ue(")");break}var s=Te(r);return r.popScope(),ue("end"),n.scope&&be(),t=t||!1,L(x.functionStatement(e,i,t,s))}function Xe(){var e,t,r;for(Ee&&(r=ke()),e=We(),n.scope&&(Se(e,Ce(e.name)),we());ce(".");)Me(r),t=We(),e=L(x.memberExpression(e,".",t));return ce(":")&&(Me(r),t=We(),e=L(x.memberExpression(e,":",t)),n.scope&&xe("self")),e}function Qe(e){for(var t,n,r=[];;){if(Pe(),g===D.type&&ce("["))t=Ze(e),ue("]"),ue("="),n=Ze(e),r.push(L(x.tableKey(t,n)));else if(d===D.type)"="===M.value?(t=We(),ae(),n=Ze(e),r.push(L(x.tableKeyString(t,n)))):(n=Ze(e),r.push(L(x.tableValue(n))));else{if(null==(n=Ye(e))){Ae.pop();break}r.push(L(x.tableValue(n)))}if(!(",;".indexOf(D.value)>=0))break;ae()}return ue("}"),L(x.tableConstructorExpression(r))}function Ye(e){return tt(0,e)}function Ze(e){var t=Ye(e);if(null!=t)return t;V("",D)}function et(e){var t=e.charCodeAt(0),n=e.length;if(1===n)switch(t){case 94:return 12;case 42:case 47:case 37:return 10;case 43:case 45:return 9;case 38:return 6;case 126:return 5;case 124:return 4;case 60:case 62:return 3}else if(2===n)switch(t){case 47:return 10;case 46:return 8;case 60:case 62:return"<<"===e||">>"===e?7:3;case 61:case 126:return 3;case 111:return 1}else if(97===t&&"and"===e)return 2;return 0}function tt(e,t){var n,r,i,o=D.value;if(Ee&&(r=ke()),ve(D)){Pe(),ae();var s=tt(10,t);null==s&&V("",D),n=L(x.unaryExpression(o,s))}if(null==n&&null==(n=ot(t))&&(n=rt(t)),null==n)return null;for(;o=D.value,!(0===(i=g===D.type||f===D.type?et(o):0)||i<=e);){"^"!==o&&".."!==o||--i,ae();var a=tt(i,t);null==a&&V("",D),Ee&&Ae.push(r),n=L(x.binaryExpression(o,n,a))}return n}function nt(e,t,n){var r,i;if(g===D.type)switch(D.value){case"[":return Me(t),ae(),r=Ze(n),ue("]"),L(x.indexExpression(e,r));case".":return Me(t),ae(),i=We(),L(x.memberExpression(e,".",i));case":":return Me(t),ae(),i=We(),e=L(x.memberExpression(e,":",i)),Me(t),it(e,n);case"(":case"{":return Me(t),it(e,n)}else if(p===D.type)return Me(t),it(e,n);return null}function rt(e){var t,r,i;if(Ee&&(i=ke()),d===D.type)r=D.value,t=We(),n.scope&&Se(t,Ce(r));else{if(!ce("("))return null;t=Ze(e),ue(")")}for(;;){var o=nt(t,i,e);if(null===o)break;t=o}return t}function it(e,t){if(g===D.type)switch(D.value){case"(":i.emptyStatement||D.line!==P.line&&F(null,b.ambiguousSyntax,D.value),ae();var n=[],r=Ye(t);for(null!=r&&n.push(r);ce(",");)r=Ze(t),n.push(r);return ue(")"),L(x.callExpression(e,n));case"{":Pe(),ae();var o=Qe(t);return L(x.tableCallExpression(e,o))}else if(p===D.type)return L(x.stringCallExpression(e,ot(t)));V("function arguments",D)}function ot(e){var r,i=p|m|v|y|w,o=D.value,s=D.type;if(Ee&&(r=ke()),s!==w||e.allowVararg||F(D,b.cannotUseVararg,D.value),s&i){Me(r);var a=t.slice(D.range[0],D.range[1]);return ae(),L(x.literal(s,o,a))}return f===s&&"function"===o?(Me(r),ae(),n.scope&&we(),Je(null)):ce("{")?(Me(r),Qe(e)):void 0}De.prototype.complete=function(){n.locations&&(this.loc.end.line=P.lastLine||P.line,this.loc.end.column=P.range[1]-(P.lastLineStart||P.lineStart)),n.ranges&&(this.range[1]=P.range[1])},De.prototype.bless=function(e){if(this.loc){var t=this.loc;e.loc={start:{line:t.start.line,column:t.start.column},end:{line:t.end.line,column:t.end.column}}}this.range&&(e.range=[this.range[0],this.range[1]])},Oe.prototype.isInLoop=function(){for(var e=this.scopes.length;e-- >0;)if(this.scopes[e].isLoop)return!0;return!1},Oe.prototype.pushScope=function(e){var t={labels:{},locals:[],deferredGotos:[],isLoop:!!e};this.scopes.push(t)},Oe.prototype.popScope=function(){for(var e=0;e=this.scopes.length&&--t.maxDepth<=0&&F(t.token,b.labelNotVisible,t.target)}this.scopes.pop()},Oe.prototype.addGoto=function(e,t){for(var n=[],r=0;r=this.scopes.length&&o.target===e?o.localCounts[this.scopes.length-1]0)throw new Error("Location tracking failed. This is most likely a bug in luaparse");return i}e.write=ct,e.end=ut}(t)})),ace.define("ace/mode/lua_worker",[],(function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../worker/mirror").Mirror,o=e("../mode/lua/luaparse"),s=t.Worker=function(e){i.call(this,e),this.setTimeout(500)};r.inherits(s,i),function(){this.onUpdate=function(){var e=this.doc.getValue(),t=[];try{o.parse(e)}catch(n){n instanceof o.SyntaxError&&t.push({row:n.line-1,column:n.column,text:n.message,type:"error"})}this.sender.emit("annotate",t)}}.call(s.prototype)}));