define(“ace/mode/perl”,,function(a,b,c){“use strict”;var d=a(“../lib/oop”),e=a(“./text”).Mode,f=a(“../tokenizer”).Tokenizer,g=a(“./perl_highlight_rules”).PerlHighlightRules,h=a(“./matching_brace_outdent”).MatchingBraceOutdent,i=a(“../range”).Range,j=a(“./folding/cstyle”).FoldMode,k=function(){this.$tokenizer=new f((new g).getRules()),this.$outdent=new h,this.foldingRules=new j};d.inherits(k,e),function(){this.toggleCommentLines=function(a,b,c,d){var e=!0,f=/^(s*)#/;for(var g=c;g<=d;g++)if(!f.test(b.getLine(g))){e=!1;break}if(e){var h=new i(0,0,0,0);for(var g=c;g<=d;g++){var j=b.getLine(g),k=j.match(f);h.start.row=g,h.end.row=g,h.end.column=k.length,b.replace(h,k)}}else b.indentRows(c,d,“#”)},this.getNextLineIndent=function(a,b,c){var d=this.$getIndent(b),e=this.$tokenizer.getLineTokens(b,a),f=e.tokens;if(f.length&&f.type==“comment”)return d;if(a==“start”){var g=b.match(/^.*[{(s*$/);g&&(d+=c)}return d},this.checkOutdent=function(a,b,c){return this.$outdent.checkOutdent(b,c)},this.autoOutdent=function(a,b,c){this.$outdent.autoOutdent(b,c)}}.call(k.prototype),b.Mode=k}),define(“ace/mode/perl_highlight_rules”,,function(a,b,c){“use strict”;var d=a(“../lib/oop”),e=a(“../lib/lang”),f=a(“./text_highlight_rules”).TextHighlightRules,g=function(){var a=e.arrayToMap(“base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars”.split(“|”)),b=e.arrayToMap(“ARGV|ENV|INC|SIG”.split(“|”)),c=e.arrayToMap(“getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|getpeername|setpriority|getprotoent|setprotoent|getpriority|endprotoent|getservent|setservent|endservent|sethostent|socketpair|getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|map|die|uc|lc|do”.split(“|”));this.$rules={start:[{token:“comment”,regex:“#.*$”},{token:“string.regexp”,regex:“(?:(?:\[(?:\\]|[^\]])+\])|(?:\\/|[^\]/]))*[/]\w*\s*(?=|$)”},{token:“string”,regex:‘(?:(?:\\.)|(?:[^“\\]))*?[”]’},{token:“string”,merge:!0,regex:‘.*\\$’,next:“qqstring”},{token:“string”,regex:“(?:(?:\\.)|(?:[^‘\\]))*?[’]”},{token:“string”,merge:!0,regex:“.*\\$”,next:“qstring”},{token:“constant.numeric”,regex:“0x+\b”},{token:“constant.numeric”,regex:“?\d+(?:(?:\.\d*)?(?:[+-]?\d+)?)?\b”},{token:function(d){return a.hasOwnProperty(d)?“keyword”:b.hasOwnProperty(d)?“constant.language”:c.hasOwnProperty(d)?“support.function”:“identifier”},regex:“[a-zA-Z0-9_$]*\b”},{token:“keyword.operator”,regex:“\.\.\.|\|\|=|>>=|<<=|<=>|&&=|=>|!~|\^=|&=|\|=|\.=|x=|%=|\/=|*=|\-=|+=|=~|**|\-\-|\.\.|\|\||&&|++|\->|!=|==|>=|<=|>>|<<|,|=|\?\:|\^|\||x|%|\/|*|<|&|\\|~|!|>|\.|\-|+|\-C|\-b|\-S|\-u|\-t|\-p|\-l|\-d|\-f|\-g|\-s|\-z|\-k|\-e|\-O|\-T|\-B|\-M|\-A|\-X|\-W|\-c|\-R|\-o|\-x|\-w|\-r|\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)”},{token:“lparen”,regex:“[”},{token:“rparen”,regex:“)}]”},{token:“text”,regex:“\s+”}],qqstring:[{token:“string”,regex:‘(?:(?:\\.)|(?:))*?“’,next:”start“},{token:”string“,merge:!0,regex:”.+“}],qstring:[{token:”string“,regex:”(?:(?:\\.)|(?:))*?‘“,next:”start“},{token:”string“,merge:!0,regex:”.+“}]}};d.inherits(g,f),b.PerlHighlightRules=g}),define(”ace/mode/matching_brace_outdent“,,function(a,b,c){”use strict“;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/mode/folding/cstyle“,,function(a,b,c){”use strict“;var d=a(”../../lib/oop“),e=a(”../../range“).Range,f=a(”./fold_mode“).FoldMode,g=b.FoldMode=function(){};d.inherits(g,f),function(){this.foldingStartMarker=/({|[)[^}]]*$|^s*(/*)/,this.foldingStopMarker=/^[^*(}|])|^[s*]*(*/)/,this.getFoldWidgetRange=function(a,b,c){var d=a.getLine©,f=d.match(this.foldingStartMarker);if(f){var g=f.index;if(f)return this.openingBracketBlock(a,f,c,g);var h=a.getCommentFoldRange(c,g+f.length);return h.end.column-=2,h}if(b!==”markbeginend“)return;var f=d.match(this.foldingStopMarker);if(f){var g=f.index+f.length;if(f){var h=a.getCommentFoldRange(c,g);return h.end.column-=2,h}var i={row:c,column:g},j=a.$findOpeningBracket(f,i);if(!j)return;return j.column++,i.column–,e.fromPoints(j,i)}}}.call(g.prototype)}),define(”ace/mode/folding/fold_mode“,,function(a,b,c){”use strict“;var d=a(”../../range“).Range,e=b.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(a,b,c){var d=a.getLine©;return this.foldingStartMarker.test(d)?”start“:b==”markbeginend“&&this.foldingStopMarker&&this.foldingStopMarker.test(d)?”end“:”“},this.getFoldWidgetRange=function(a,b,c){return null},this.indentationBlock=function(a,b,c){var e=/^s*/,f=b,g=b,h=a.getLine(b),i=c||h.length,j=h.match(e).length,k=a.getLength();while(++b<k){h=a.getLine(b);var l=h.match(e).length;if(l==h.length)continue;if(l<=j)break;g=b}if(g>f){var m=a.getLine(g).length;return new d(f,i,g,m)}},this.openingBracketBlock=function(a,b,c,e){var f={row:c,column:e+1},g=a.$findClosingBracket(b,f);if(!g)return;var h=a.foldWidgets;return h==null&&(h=this.getFoldWidget(a,g.row)),h==”start“&&(g.row–,g.column=a.getLine(g.row).length),d.fromPoints(f,g)}}).call(e.prototype)})