define(“ace/mode/coffee”,,function(a,b,c){function k(){this.$tokenizer=new d((new e).getRules()),this.$outdent=new f}var d=a(“../tokenizer”).Tokenizer,e=a(“./coffee_highlight_rules”).CoffeeHighlightRules,f=a(“./matching_brace_outdent”).MatchingBraceOutdent,g=a(“../range”).Range,h=a(“./text”).Mode,i=a(“../worker/worker_client”).WorkerClient,j=a(“../lib/oop”);j.inherits(k,h),function(){var a=/(?:[({|[-=]>|b(?:else|switch|try|catch(?:s*[$wx7f-uffff]*)?|finally))s*$/,b=/^(s*)#/,c=/^s*###(?!#)/,d=/^s*/;this.getNextLineIndent=function(b,c,d){var e=this.$getIndent©,f=this.$tokenizer.getLineTokens(c,b).tokens;return(!f.length||f.type!==“comment”)&&b===“start”&&a.test©&&(e+=d),e},this.toggleCommentLines=function(a,e,f,h){console.log(“toggle”);var i=new g(0,0,0,0);for(var j=f;j<=h;++j){var k=e.getLine(j);if(c.test(k))continue;b.test(k)?k=k.replace(b,“$1”):k=k.replace(d,“$&#”),i.end.row=i.start.row=j,i.end.column=k.length+1,e.replace(i,k)}},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)},this.createWorker=function(a){var b=new i(,“worker-coffee.js”,“ace/mode/coffee_worker”,“Worker”);return b.attachToDocument(a.getDocument()),b.on(“error”,function(b){a.setAnnotations()}),b.on(“ok”,function(b){a.clearAnnotations()}),b}}.call(k.prototype),b.Mode=k}),define(“ace/mode/coffee_highlight_rules”,,function(a,b,c){function g(){var a=“[$\w\x7f-\uffff]*”,b={token:“string”,merge:!0,regex:“.+”},c=d.arrayToMap(“this|throw|then|try|typeof|super|switch|return|break|by)|continue|catch|class|in|instanceof|is|isnt|if|else|extends|for|forown|finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|or|on|unless|until|and|yes”.split(“|”)),e=d.arrayToMap(“true|false|null|undefined”.split(“|”)),f=d.arrayToMap(“case|const|default|function|var|void|with|enum|export|implements|interface|let|package|private|protected|public|static|yield|__hasProp|extends|slice|bind|indexOf”.split(“|”)),g=d.arrayToMap(“Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|RangeError|String|SyntaxError|Error|EvalError|TypeError|URIError”.split(“|”)),h=d.arrayToMap(“Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|encodeURIComponent|decodeURI|decodeURIComponent|RangeError|String|SyntaxError|Error|EvalError|TypeError|URIError”.split(“|”));this.$rules={start:[{token:“identifier”,regex:“(?:(?:\.|::)\s*)”+a},{token:“variable”,regex:“@(?:”a
“)?”},{token:function(a){return c.hasOwnProperty(a)?“keyword”:e.hasOwnProperty(a)?“constant.language”:f.hasOwnProperty(a)?“invalid.illegal”:g.hasOwnProperty(a)?“language.support.class”:h.hasOwnProperty(a)?“language.support.function”:“identifier”},regex:a},{token:“constant.numeric”,regex:“(?:0x+|(?:\d+(?:\.\d+)?|\.\d+)(?:[+-]?\d+)?)”},{token:“string”,merge:!0,regex:“'''”,next:“qdoc”},{token:“string”,merge:!0,regex:'“”“',next:”qqdoc“},{token:”string“,merge:!0,regex:”'“,next:”qstring“},{token:”string“,merge:!0,regex:'”',next:“qqstring”},{token:“string”,merge:!0,regex:“`”,next:“js”},{token:“string.regex”,merge:!0,regex:“///”,next:“heregex”},{token:“string.regex”,regex:“/(?!\s)[^*(?: (?:\\.|\[[^\]\n\\]*(?:\\.\n\\]*)*\])[^*)*/[imgy]{0,4}(?!\w)”},{token:“comment”,merge:!0,regex:“###(?!#)”,next:“comment”},{token:“comment”,regex:“#.*”},{token:“punctuation.operator”,regex:“\?|\:|\,|\.”},{token:“keyword.operator”,regex:“(?:>|[-+*/%<>&|^!?=]=|>>>=?|\-\-|++|::|&&=|\|\|=|<<=|>>=|\?\.|\.{2,3}|\!)”},{token:“paren.lparen”,regex:“[({”},{token:“paren.rparen”,regex:“})]”},{token:“text”,regex:“\s+”}],qdoc:,qqdoc:,qstring:[{token:“string”,regex:“*(?:\\.[^\\']*)*'”,merge:!0,next:“start”},b],qqstring:[{token:“string”,regex:‘*(?:\\.[^\\“]*)*”',merge:!0,next:“start”},b],js:[{token:“string”,merge:!0,regex:“*(?:\\.[^\\`]*)*`”,next:“start”},b],heregex:[{token:“string.regex”,regex:“.*?///{0,4}”,next:“start”},{token:“comment.regex”,regex:“\s+(?:#.*)?”},{token:“string.regex”,merge:!0,regex:“\S+”}],comment:}}var d=a(“../lib/lang”),e=a(“../lib/oop”),f=a(“./text_highlight_rules”).TextHighlightRules;e.inherits(g,f),b.CoffeeHighlightRules=g}),define(“ace/mode/matching_brace_outdent”,,function(a,b,c){var d=a(“../range”).Range,e=function(){};((function(){this.checkOutdent=function(a,b){return/^s+$/.test(a)?/^s*}/.test(b):!1},this.autoOutdent=function(a,b){var c=a.getLine(b),e=c.match(/^(s*})/);if(!e)return 0;var f=e.length,g=a.findMatchingBracket({row:b,column:f});if(!g||g.row==b)return 0;var h=this.$getIndent(a.getLine(g.row));a.replace(new d(b,0,b,f-1),h)},this.$getIndent=function(a){var b=a.match(/^(s+)/);return b?b:“”}})).call(e.prototype),b.MatchingBraceOutdent=e}),define(“ace/worker/worker_client”,,function(a,b,c){var d=a(“../lib/oop”),e=a(“../lib/event_emitter”).EventEmitter,f=function(b,c,d,e){this.changeListener=this.changeListener.bind(this);if(window.require.packaged)var f=this.$guessBasePath(),g=this.$worker=new Worker(f+c);else{var h=this.$normalizePath(a.nameToUrl(“ace/worker/worker”,null,“_”)),g=this.$worker=new Worker(h),i={};for(var j=0;j<b.length;j++){var k=b,l=this.$normalizePath(a.nameToUrl(k,null,“_”).replace(/.js$/,“”));i=l}}this.$worker.postMessage({init:!0,tlns:i,module:d,classname:e}),this.callbackId=1,this.callbacks={};var m=this;this.$worker.onerror=function(a){throw window.console&&console.log&&console.log(a),a},this.$worker.onmessage=function(a){var b=a.data;switch(b.type){case“log”:window.console&&console.log&&console.log(b.data);break;case“event”:m._dispatchEvent(b.name,{data:b.data});break;case“call”:var c=m.callbacks;c&&(c(b.data),delete m.callbacks)}}};((function(){d.implement(this,e),this.$normalizePath=function(a){return a.match(/^w+:/)||(a=location.protocol+“//”location.host
(a.charAt(0)==“/”?“”:location.pathname.replace(//*$/,“”))+“/”+a.replace(/^+/,“”)),a},this.$guessBasePath=function(){if(a.aceBaseUrl)return a.aceBaseUrl;var b=document.getElementsByTagName(“script”);for(var c=0;c<b.length;c++){var d=b,e=d.getAttribute(“data-ace-base”);if(e)return e.replace(//*$/,“/”);var f=d.src||d.getAttribute(“src”);if(!f)continue;var g=f.match(/^(?:(.*/)ace.js|(.*/)ace-uncompressed.js)(?:?|$)/);if(g)return g||g}return“”},this.terminate=function(){this._dispatchEvent(“terminate”,{}),this.$worker.terminate(),this.$worker=null,this.$doc.removeEventListener(“change”,this.changeListener),this.$doc=null},this.send=function(a,b){this.$worker.postMessage({command:a,args:b})},this.call=function(a,b,c){if©{var d=this.callbackId++;this.callbacks=c,b.push(d)}this.send(a,b)},this.emit=function(a,b){try{this.$worker.postMessage({event:a,data:{data:b.data}})}catch©{}},this.attachToDocument=function(a){this.$doc&&this.terminate(),this.$doc=a,this.call(“setValue”,),a.on(“change”,this.changeListener)},this.changeListener=function(a){a.range={start:a.data.range.start,end:a.data.range.end},this.emit(“change”,a)}})).call(f.prototype),b.WorkerClient=f})