{"version":3,"file":"7613.6334cff4df12cc157522.js","mappings":"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","sources":["webpack://grafana/./node_modules/brace/mode/markdown.js","webpack://grafana/./node_modules/brace/worker/css.js","webpack://grafana/./node_modules/brace/worker/html.js","webpack://grafana/./node_modules/brace/worker/javascript.js","webpack://grafana/./node_modules/brace/worker/xml.js"],"sourcesContent":["ace.define(\"ace/mode/doc_comment_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar DocCommentHighlightRules = function() {\n this.$rules = {\n \"start\" : [ {\n token : \"comment.doc.tag\",\n regex : \"@[\\\\w\\\\d_]+\" // TODO: fix email addresses\n }, \n DocCommentHighlightRules.getTagRule(),\n {\n defaultToken : \"comment.doc\",\n caseInsensitive: true\n }]\n };\n};\n\noop.inherits(DocCommentHighlightRules, TextHighlightRules);\n\nDocCommentHighlightRules.getTagRule = function(start) {\n return {\n token : \"comment.doc.tag.storage.type\",\n regex : \"\\\\b(?:TODO|FIXME|XXX|HACK)\\\\b\"\n };\n};\n\nDocCommentHighlightRules.getStartRule = function(start) {\n return {\n token : \"comment.doc\", // doc comment\n regex : \"\\\\/\\\\*(?=\\\\*)\",\n next : start\n };\n};\n\nDocCommentHighlightRules.getEndRule = function (start) {\n return {\n token : \"comment.doc\", // closing comment\n regex : \"\\\\*\\\\/\",\n next : start\n };\n};\n\n\nexports.DocCommentHighlightRules = DocCommentHighlightRules;\n\n});\n\nace.define(\"ace/mode/javascript_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/doc_comment_highlight_rules\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar DocCommentHighlightRules = acequire(\"./doc_comment_highlight_rules\").DocCommentHighlightRules;\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar identifierRe = \"[a-zA-Z\\\\$_\\u00a1-\\uffff][a-zA-Z\\\\d\\\\$_\\u00a1-\\uffff]*\";\n\nvar JavaScriptHighlightRules = function(options) {\n var keywordMapper = this.createKeywordMapper({\n \"variable.language\":\n \"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|\" + // Constructors\n \"Namespace|QName|XML|XMLList|\" + // E4X\n \"ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|\" +\n \"Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|\" +\n \"Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|\" + // Errors\n \"SyntaxError|TypeError|URIError|\" +\n \"decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|\" + // Non-constructor functions\n \"isNaN|parseFloat|parseInt|\" +\n \"JSON|Math|\" + // Other\n \"this|arguments|prototype|window|document\" , // Pseudo\n \"keyword\":\n \"const|yield|import|get|set|async|await|\" +\n \"break|case|catch|continue|default|delete|do|else|finally|for|function|\" +\n \"if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|\" +\n \"__parent__|__count__|escape|unescape|with|__proto__|\" +\n \"class|enum|extends|super|export|implements|private|public|interface|package|protected|static\",\n \"storage.type\":\n \"const|let|var|function\",\n \"constant.language\":\n \"null|Infinity|NaN|undefined\",\n \"support.function\":\n \"alert\",\n \"constant.language.boolean\": \"true|false\"\n }, \"identifier\");\n var kwBeforeRe = \"case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void\";\n\n var escapedRe = \"\\\\\\\\(?:x[0-9a-fA-F]{2}|\" + // hex\n \"u[0-9a-fA-F]{4}|\" + // unicode\n \"u{[0-9a-fA-F]{1,6}}|\" + // es6 unicode\n \"[0-2][0-7]{0,2}|\" + // oct\n \"3[0-7][0-7]?|\" + // oct\n \"[4-7][0-7]?|\" + //oct\n \".)\";\n\n this.$rules = {\n \"no_regex\" : [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"no_regex\"),\n {\n token : \"string\",\n regex : \"'(?=.)\",\n next : \"qstring\"\n }, {\n token : \"string\",\n regex : '\"(?=.)',\n next : \"qqstring\"\n }, {\n token : \"constant.numeric\", // hexadecimal, octal and binary\n regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\\b/\n }, {\n token : \"constant.numeric\", // decimal integers and floats\n regex : /(?:\\d\\d*(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+\\b)?/\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"support.function\",\n \"punctuation.operator\", \"entity.name.function\", \"text\",\"keyword.operator\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(prototype)(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)\",\n next: \"function_arguments\"\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"entity.name.function\", \"text\", \"keyword.operator\", \"text\", \"storage.type\",\n \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(\\\\s+)(\\\\w+)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex : \"(function)(\\\\s+)(\" + identifierRe + \")(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"entity.name.function\", \"text\", \"punctuation.operator\",\n \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\s*)(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : [\n \"text\", \"text\", \"storage.type\", \"text\", \"paren.lparen\"\n ],\n regex : \"(:)(\\\\s*)(function)(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : \"keyword\",\n regex : \"from(?=\\\\s*('|\\\"))\"\n }, {\n token : \"keyword\",\n regex : \"(?:\" + kwBeforeRe + \")\\\\b\",\n next : \"start\"\n }, {\n token : [\"support.constant\"],\n regex : /that\\b/\n }, {\n token : [\"storage.type\", \"punctuation.operator\", \"support.function.firebug\"],\n regex : /(console)(\\.)(warn|info|log|error|time|trace|timeEnd|assert)\\b/\n }, {\n token : keywordMapper,\n regex : identifierRe\n }, {\n token : \"punctuation.operator\",\n regex : /[.](?![.])/,\n next : \"property\"\n }, {\n token : \"storage.type\",\n regex : /=>/\n }, {\n token : \"keyword.operator\",\n regex : /--|\\+\\+|\\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\\|\\||\\?:|[!$%&*+\\-~\\/^]=?/,\n next : \"start\"\n }, {\n token : \"punctuation.operator\",\n regex : /[?:,;.]/,\n next : \"start\"\n }, {\n token : \"paren.lparen\",\n regex : /[\\[({]/,\n next : \"start\"\n }, {\n token : \"paren.rparen\",\n regex : /[\\])}]/\n }, {\n token: \"comment\",\n regex: /^#!.*$/\n }\n ],\n property: [{\n token : \"text\",\n regex : \"\\\\s+\"\n }, {\n token : [\n \"storage.type\", \"punctuation.operator\", \"entity.name.function\", \"text\",\n \"keyword.operator\", \"text\",\n \"storage.type\", \"text\", \"entity.name.function\", \"text\", \"paren.lparen\"\n ],\n regex : \"(\" + identifierRe + \")(\\\\.)(\" + identifierRe +\")(\\\\s*)(=)(\\\\s*)(function)(?:(\\\\s+)(\\\\w+))?(\\\\s*)(\\\\()\",\n next: \"function_arguments\"\n }, {\n token : \"punctuation.operator\",\n regex : /[.](?![.])/\n }, {\n token : \"support.function\",\n 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|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|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(?=\\()/\n }, {\n token : \"support.function.dom\",\n 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(?=\\()/\n }, {\n token : \"support.constant\",\n 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/\n }, {\n token : \"identifier\",\n regex : identifierRe\n }, {\n regex: \"\",\n token: \"empty\",\n next: \"no_regex\"\n }\n ],\n \"start\": [\n DocCommentHighlightRules.getStartRule(\"doc-start\"),\n comments(\"start\"),\n {\n token: \"string.regexp\",\n regex: \"\\\\/\",\n next: \"regex\"\n }, {\n token : \"text\",\n regex : \"\\\\s+|^$\",\n next : \"start\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"regex\": [\n {\n token: \"regexp.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"string.regexp\",\n regex: \"/[sxngimy]*\",\n next: \"no_regex\"\n }, {\n token : \"invalid\",\n regex: /\\{\\d+\\b,?\\d*\\}[+*]|[+*$^?][+*]|[$^][?]|\\?{3,}/\n }, {\n token : \"constant.language.escape\",\n regex: /\\(\\?[:=!]|\\)|\\{\\d+\\b,?\\d*\\}|[+*]\\?|[()$^+*?.]/\n }, {\n token : \"constant.language.delimiter\",\n regex: /\\|/\n }, {\n token: \"constant.language.escape\",\n regex: /\\[\\^?/,\n next: \"regex_character_class\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp\"\n }\n ],\n \"regex_character_class\": [\n {\n token: \"regexp.charclass.keyword.operator\",\n regex: \"\\\\\\\\(?:u[\\\\da-fA-F]{4}|x[\\\\da-fA-F]{2}|.)\"\n }, {\n token: \"constant.language.escape\",\n regex: \"]\",\n next: \"regex\"\n }, {\n token: \"constant.language.escape\",\n regex: \"-\"\n }, {\n token: \"empty\",\n regex: \"$\",\n next: \"no_regex\"\n }, {\n defaultToken: \"string.regexp.charachterclass\"\n }\n ],\n \"function_arguments\": [\n {\n token: \"variable.parameter\",\n regex: identifierRe\n }, {\n token: \"punctuation.operator\",\n regex: \"[, ]+\"\n }, {\n token: \"punctuation.operator\",\n regex: \"$\"\n }, {\n token: \"empty\",\n regex: \"\",\n next: \"no_regex\"\n }\n ],\n \"qqstring\" : [\n {\n token : \"constant.language.escape\",\n regex : escapedRe\n }, {\n token : \"string\",\n regex : \"\\\\\\\\$\",\n consumeLineEnd : true\n }, {\n token : \"string\",\n regex : '\"|$',\n next : \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ],\n \"qstring\" : [\n {\n token : \"constant.language.escape\",\n regex : escapedRe\n }, {\n token : \"string\",\n regex : \"\\\\\\\\$\",\n consumeLineEnd : true\n }, {\n token : \"string\",\n regex : \"'|$\",\n next : \"no_regex\"\n }, {\n defaultToken: \"string\"\n }\n ]\n };\n\n\n if (!options || !options.noES6) {\n this.$rules.no_regex.unshift({\n regex: \"[{}]\", onMatch: function(val, state, stack) {\n this.next = val == \"{\" ? this.nextState : \"\";\n if (val == \"{\" && stack.length) {\n stack.unshift(\"start\", state);\n }\n else if (val == \"}\" && stack.length) {\n stack.shift();\n this.next = stack.shift();\n if (this.next.indexOf(\"string\") != -1 || this.next.indexOf(\"jsx\") != -1)\n return \"paren.quasi.end\";\n }\n return val == \"{\" ? \"paren.lparen\" : \"paren.rparen\";\n },\n nextState: \"start\"\n }, {\n token : \"string.quasi.start\",\n regex : /`/,\n push : [{\n token : \"constant.language.escape\",\n regex : escapedRe\n }, {\n token : \"paren.quasi.start\",\n regex : /\\${/,\n push : \"start\"\n }, {\n token : \"string.quasi.end\",\n regex : /`/,\n next : \"pop\"\n }, {\n defaultToken: \"string.quasi\"\n }]\n });\n\n if (!options || options.jsx != false)\n JSX.call(this);\n }\n\n this.embedRules(DocCommentHighlightRules, \"doc-\",\n [ DocCommentHighlightRules.getEndRule(\"no_regex\") ]);\n\n this.normalizeRules();\n};\n\noop.inherits(JavaScriptHighlightRules, TextHighlightRules);\n\nfunction JSX() {\n var tagRegex = identifierRe.replace(\"\\\\d\", \"\\\\d\\\\-\");\n var jsxTag = {\n onMatch : function(val, state, stack) {\n var offset = val.charAt(1) == \"/\" ? 2 : 1;\n if (offset == 1) {\n if (state != this.nextState)\n stack.unshift(this.next, this.nextState, 0);\n else\n stack.unshift(this.next);\n stack[2]++;\n } else if (offset == 2) {\n if (state == this.nextState) {\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.shift();\n stack.shift();\n }\n }\n }\n return [{\n type: \"meta.tag.punctuation.\" + (offset == 1 ? \"\" : \"end-\") + \"tag-open.xml\",\n value: val.slice(0, offset)\n }, {\n type: \"meta.tag.tag-name.xml\",\n value: val.substr(offset)\n }];\n },\n regex : \"\",\n onMatch : function(value, currentState, stack) {\n if (currentState == stack[0])\n stack.shift();\n if (value.length == 2) {\n if (stack[0] == this.nextState)\n stack[1]--;\n if (!stack[1] || stack[1] < 0) {\n stack.splice(0, 2);\n }\n }\n this.next = stack[0] || \"start\";\n return [{type: this.token, value: value}];\n },\n nextState: \"jsx\"\n },\n jsxJsRule,\n comments(\"jsxAttributes\"),\n {\n token : \"entity.other.attribute-name.xml\",\n regex : tagRegex\n }, {\n token : \"keyword.operator.attribute-equals.xml\",\n regex : \"=\"\n }, {\n token : \"text.tag-whitespace.xml\",\n regex : \"\\\\s+\"\n }, {\n token : \"string.attribute-value.xml\",\n regex : \"'\",\n stateName : \"jsx_attr_q\",\n push : [\n {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n {include : \"reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n }, {\n token : \"string.attribute-value.xml\",\n regex : '\"',\n stateName : \"jsx_attr_qq\",\n push : [\n {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n {include : \"reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n },\n jsxTag\n ];\n this.$rules.reference = [{\n token : \"constant.language.escape.reference.xml\",\n regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }];\n}\n\nfunction comments(next) {\n return [\n {\n token : \"comment\", // multi line comment\n regex : /\\/\\*/,\n next: [\n DocCommentHighlightRules.getTagRule(),\n {token : \"comment\", regex : \"\\\\*\\\\/\", next : next || \"pop\"},\n {defaultToken : \"comment\", caseInsensitive: true}\n ]\n }, {\n token : \"comment\",\n regex : \"\\\\/\\\\/\",\n next: [\n DocCommentHighlightRules.getTagRule(),\n {token : \"comment\", regex : \"$|^\", next : next || \"pop\"},\n {defaultToken : \"comment\", caseInsensitive: true}\n ]\n }\n ];\n}\nexports.JavaScriptHighlightRules = JavaScriptHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar Range = acequire(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Range = acequire(\"../../range\").Range;\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.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(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar JavaScriptHighlightRules = acequire(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\nvar CstyleBehaviour = acequire(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = JavaScriptHighlightRules;\n \n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = \"//\";\n this.blockComment = {start: \"/*\", end: \"*/\"};\n this.$quotes = {'\"': '\"', \"'\": \"'\", \"`\": \"`\"};\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n var tokenizedLine = this.getTokenizer().getLineTokens(line, state);\n var tokens = tokenizedLine.tokens;\n var endState = tokenizedLine.state;\n\n if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n return indent;\n }\n\n if (state == \"start\" || state == \"no_regex\") {\n var match = line.match(/^.*(?:\\bcase\\b.*:|[\\{\\(\\[])\\s*$/);\n if (match) {\n indent += tab;\n }\n } else if (state == \"doc-start\") {\n if (endState == \"start\" || endState == \"no_regex\") {\n return \"\";\n }\n var match = line.match(/^\\s*(\\/?)\\*/);\n if (match) {\n if (match[1]) {\n indent += \" \";\n }\n indent += \"* \";\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], require(\"../worker/javascript\"), \"JavaScriptWorker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(results) {\n session.setAnnotations(results.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n this.$id = \"ace/mode/javascript\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/xml_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\n\nvar XmlHighlightRules = function(normalize) {\n var tagRegex = \"[_:a-zA-Z\\xc0-\\uffff][-_:.a-zA-Z0-9\\xc0-\\uffff]*\";\n\n this.$rules = {\n start : [\n {token : \"string.cdata.xml\", regex : \"<\\\\!\\\\[CDATA\\\\[\", next : \"cdata\"},\n {\n token : [\"punctuation.instruction.xml\", \"keyword.instruction.xml\"],\n regex : \"(<\\\\?)(\" + tagRegex + \")\", next : \"processing_instruction\"\n },\n {token : \"comment.start.xml\", regex : \"<\\\\!--\", next : \"comment\"},\n {\n token : [\"xml-pe.doctype.xml\", \"xml-pe.doctype.xml\"],\n regex : \"(<\\\\!)(DOCTYPE)(?=[\\\\s])\", next : \"doctype\", caseInsensitive: true\n },\n {include : \"tag\"},\n {token : \"text.end-tag-open.xml\", regex: \"\",\n next : \"start\"\n }],\n\n doctype : [\n {include : \"whitespace\"},\n {include : \"string\"},\n {token : \"xml-pe.doctype.xml\", regex : \">\", next : \"start\"},\n {token : \"xml-pe.xml\", regex : \"[-_a-zA-Z0-9:]+\"},\n {token : \"punctuation.int-subset\", regex : \"\\\\[\", push : \"int_subset\"}\n ],\n\n int_subset : [{\n token : \"text.xml\",\n regex : \"\\\\s+\"\n }, {\n token: \"punctuation.int-subset.xml\",\n regex: \"]\",\n next: \"pop\"\n }, {\n token : [\"punctuation.markup-decl.xml\", \"keyword.markup-decl.xml\"],\n regex : \"(<\\\\!)(\" + tagRegex + \")\",\n push : [{\n token : \"text\",\n regex : \"\\\\s+\"\n },\n {\n token : \"punctuation.markup-decl.xml\",\n regex : \">\",\n next : \"pop\"\n },\n {include : \"string\"}]\n }],\n\n cdata : [\n {token : \"string.cdata.xml\", regex : \"\\\\]\\\\]>\", next : \"start\"},\n {token : \"text.xml\", regex : \"\\\\s+\"},\n {token : \"text.xml\", regex : \"(?:[^\\\\]]|\\\\](?!\\\\]>))+\"}\n ],\n\n comment : [\n {token : \"comment.end.xml\", regex : \"-->\", next : \"start\"},\n {defaultToken : \"comment.xml\"}\n ],\n\n reference : [{\n token : \"constant.language.escape.reference.xml\",\n regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n\n attr_reference : [{\n token : \"constant.language.escape.reference.attribute-value.xml\",\n regex : \"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\\\.-]+;)\"\n }],\n\n tag : [{\n token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.tag-name.xml\"],\n regex : \"(?:(<)|(\", next : \"start\"}\n ]\n }],\n\n tag_whitespace : [\n {token : \"text.tag-whitespace.xml\", regex : \"\\\\s+\"}\n ],\n whitespace : [\n {token : \"text.whitespace.xml\", regex : \"\\\\s+\"}\n ],\n string: [{\n token : \"string.xml\",\n regex : \"'\",\n push : [\n {token : \"string.xml\", regex: \"'\", next: \"pop\"},\n {defaultToken : \"string.xml\"}\n ]\n }, {\n token : \"string.xml\",\n regex : '\"',\n push : [\n {token : \"string.xml\", regex: '\"', next: \"pop\"},\n {defaultToken : \"string.xml\"}\n ]\n }],\n\n attributes: [{\n token : \"entity.other.attribute-name.xml\",\n regex : tagRegex\n }, {\n token : \"keyword.operator.attribute-equals.xml\",\n regex : \"=\"\n }, {\n include: \"tag_whitespace\"\n }, {\n include: \"attribute_value\"\n }],\n\n attribute_value: [{\n token : \"string.attribute-value.xml\",\n regex : \"'\",\n push : [\n {token : \"string.attribute-value.xml\", regex: \"'\", next: \"pop\"},\n {include : \"attr_reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n }, {\n token : \"string.attribute-value.xml\",\n regex : '\"',\n push : [\n {token : \"string.attribute-value.xml\", regex: '\"', next: \"pop\"},\n {include : \"attr_reference\"},\n {defaultToken : \"string.attribute-value.xml\"}\n ]\n }]\n };\n\n if (this.constructor === XmlHighlightRules)\n this.normalizeRules();\n};\n\n\n(function() {\n\n this.embedTagRules = function(HighlightRules, prefix, tag){\n this.$rules.tag.unshift({\n token : [\"meta.tag.punctuation.tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex : \"(<)(\" + tag + \"(?=\\\\s|>|$))\",\n next: [\n {include : \"attributes\"},\n {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next : prefix + \"start\"}\n ]\n });\n\n this.$rules[tag + \"-end\"] = [\n {include : \"attributes\"},\n {token : \"meta.tag.punctuation.tag-close.xml\", regex : \"/?>\", next: \"start\",\n onMatch : function(value, currentState, stack) {\n stack.splice(0);\n return this.token;\n }}\n ];\n\n this.embedRules(HighlightRules, prefix, [{\n token: [\"meta.tag.punctuation.end-tag-open.xml\", \"meta.tag.\" + tag + \".tag-name.xml\"],\n regex : \"(|$))\",\n next: tag + \"-end\"\n }, {\n token: \"string.cdata.xml\",\n regex : \"<\\\\!\\\\[CDATA\\\\[\"\n }, {\n token: \"string.cdata.xml\",\n regex : \"\\\\]\\\\]>\"\n }]);\n };\n\n}).call(TextHighlightRules.prototype);\n\noop.inherits(XmlHighlightRules, TextHighlightRules);\n\nexports.XmlHighlightRules = XmlHighlightRules;\n});\n\nace.define(\"ace/mode/behaviour/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/token_iterator\",\"ace/lib/lang\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\nvar lang = acequire(\"../../lib/lang\");\n\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nvar XmlBehaviour = function () {\n\n this.add(\"string_dquotes\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '\"' || text == \"'\") {\n var quote = text;\n var selected = session.doc.getTextRange(editor.getSelectionRange());\n if (selected !== \"\" && selected !== \"'\" && selected != '\"' && editor.getWrapBehavioursEnabled()) {\n return {\n text: quote + selected + quote,\n selection: false\n };\n }\n\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n if (rightChar == quote && (is(token, \"attribute-value\") || is(token, \"string\"))) {\n return {\n text: \"\",\n selection: [1, 1]\n };\n }\n\n if (!token)\n token = iterator.stepBackward();\n\n if (!token)\n return;\n\n while (is(token, \"tag-whitespace\") || is(token, \"whitespace\")) {\n token = iterator.stepBackward();\n }\n var rightSpace = !rightChar || rightChar.match(/\\s/);\n if (is(token, \"attribute-equals\") && (rightSpace || rightChar == '>') || (is(token, \"decl-attribute-equals\") && (rightSpace || rightChar == '?'))) {\n return {\n text: quote + quote,\n selection: [1, 1]\n };\n }\n }\n });\n\n this.add(\"string_dquotes\", \"deletion\", function(state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && (selected == '\"' || selected == \"'\")) {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.start.column + 1, range.start.column + 2);\n if (rightChar == selected) {\n range.end.column++;\n return range;\n }\n }\n });\n\n this.add(\"autoclosing\", \"insertion\", function (state, action, editor, session, text) {\n if (text == '>') {\n var position = editor.getSelectionRange().start;\n var iterator = new TokenIterator(session, position.row, position.column);\n var token = iterator.getCurrentToken() || iterator.stepBackward();\n if (!token || !(is(token, \"tag-name\") || is(token, \"tag-whitespace\") || is(token, \"attribute-name\") || is(token, \"attribute-equals\") || is(token, \"attribute-value\")))\n return;\n if (is(token, \"reference.attribute-value\"))\n return;\n if (is(token, \"attribute-value\")) {\n var firstChar = token.value.charAt(0);\n if (firstChar == '\"' || firstChar == \"'\") {\n var lastChar = token.value.charAt(token.value.length - 1);\n var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length;\n if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar)\n return;\n }\n }\n while (!is(token, \"tag-name\")) {\n token = iterator.stepBackward();\n if (token.value == \"<\") {\n token = iterator.stepForward();\n break;\n }\n }\n\n var tokenRow = iterator.getCurrentTokenRow();\n var tokenColumn = iterator.getCurrentTokenColumn();\n if (is(iterator.stepBackward(), \"end-tag-open\"))\n return;\n\n var element = token.value;\n if (tokenRow == position.row)\n element = element.substring(0, position.column - tokenColumn);\n\n if (this.voidElements.hasOwnProperty(element.toLowerCase()))\n return;\n\n return {\n text: \">\" + \"\",\n selection: [1, 1]\n };\n }\n });\n\n this.add(\"autoindent\", \"insertion\", function (state, action, editor, session, text) {\n if (text == \"\\n\") {\n var cursor = editor.getCursorPosition();\n var line = session.getLine(cursor.row);\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n\n if (token && token.type.indexOf(\"tag-close\") !== -1) {\n if (token.value == \"/>\")\n return;\n while (token && token.type.indexOf(\"tag-name\") === -1) {\n token = iterator.stepBackward();\n }\n\n if (!token) {\n return;\n }\n\n var tag = token.value;\n var row = iterator.getCurrentTokenRow();\n token = iterator.stepBackward();\n if (!token || token.type.indexOf(\"end-tag\") !== -1) {\n return;\n }\n\n if (this.voidElements && !this.voidElements[tag]) {\n var nextToken = session.getTokenAt(cursor.row, cursor.column+1);\n var line = session.getLine(row);\n var nextIndent = this.$getIndent(line);\n var indent = nextIndent + session.getTabString();\n\n if (nextToken && nextToken.value === \" -1;\n}\n\n(function() {\n\n this.getFoldWidget = function(session, foldStyle, row) {\n var tag = this._getFirstTagInLine(session, row);\n\n if (!tag)\n return this.getCommentFoldWidget(session, row);\n\n if (tag.closing || (!tag.tagName && tag.selfClosing))\n return foldStyle == \"markbeginend\" ? \"end\" : \"\";\n\n if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase()))\n return \"\";\n\n if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column))\n return \"\";\n\n return \"start\";\n };\n\n this.getCommentFoldWidget = function(session, row) {\n if (/comment/.test(session.getState(row)) && /';\n break;\n }\n }\n return tag;\n } else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == '/>';\n return tag;\n }\n tag.start.column += token.value.length;\n }\n\n return null;\n };\n\n this._findEndTagInLine = function(session, row, tagName, startColumn) {\n var tokens = session.getTokens(row);\n var column = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n column += token.value.length;\n if (column < startColumn)\n continue;\n if (is(token, \"end-tag-open\")) {\n token = tokens[i + 1];\n if (token && token.value == tagName)\n return true;\n }\n }\n return false;\n };\n this._readTagForward = function(iterator) {\n var token = iterator.getCurrentToken();\n if (!token)\n return null;\n\n var tag = new Tag();\n do {\n if (is(token, \"tag-open\")) {\n tag.closing = is(token, \"end-tag-open\");\n tag.start.row = iterator.getCurrentTokenRow();\n tag.start.column = iterator.getCurrentTokenColumn();\n } else if (is(token, \"tag-name\")) {\n tag.tagName = token.value;\n } else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == \"/>\";\n tag.end.row = iterator.getCurrentTokenRow();\n tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n iterator.stepForward();\n return tag;\n }\n } while(token = iterator.stepForward());\n\n return null;\n };\n \n this._readTagBackward = function(iterator) {\n var token = iterator.getCurrentToken();\n if (!token)\n return null;\n\n var tag = new Tag();\n do {\n if (is(token, \"tag-open\")) {\n tag.closing = is(token, \"end-tag-open\");\n tag.start.row = iterator.getCurrentTokenRow();\n tag.start.column = iterator.getCurrentTokenColumn();\n iterator.stepBackward();\n return tag;\n } else if (is(token, \"tag-name\")) {\n tag.tagName = token.value;\n } else if (is(token, \"tag-close\")) {\n tag.selfClosing = token.value == \"/>\";\n tag.end.row = iterator.getCurrentTokenRow();\n tag.end.column = iterator.getCurrentTokenColumn() + token.value.length;\n }\n } while(token = iterator.stepBackward());\n\n return null;\n };\n \n this._pop = function(stack, tag) {\n while (stack.length) {\n \n var top = stack[stack.length-1];\n if (!tag || top.tagName == tag.tagName) {\n return stack.pop();\n }\n else if (this.optionalEndTags.hasOwnProperty(top.tagName)) {\n stack.pop();\n continue;\n } else {\n return null;\n }\n }\n };\n \n this.getFoldWidgetRange = function(session, foldStyle, row) {\n var firstTag = this._getFirstTagInLine(session, row);\n \n if (!firstTag) {\n return this.getCommentFoldWidget(session, row)\n && session.getCommentFoldRange(row, session.getLine(row).length);\n }\n \n var isBackward = firstTag.closing || firstTag.selfClosing;\n var stack = [];\n var tag;\n \n if (!isBackward) {\n var iterator = new TokenIterator(session, row, firstTag.start.column);\n var start = {\n row: row,\n column: firstTag.start.column + firstTag.tagName.length + 2\n };\n if (firstTag.start.row == firstTag.end.row)\n start.column = firstTag.end.column;\n while (tag = this._readTagForward(iterator)) {\n if (tag.selfClosing) {\n if (!stack.length) {\n tag.start.column += tag.tagName.length + 2;\n tag.end.column -= 2;\n return Range.fromPoints(tag.start, tag.end);\n } else\n continue;\n }\n \n if (tag.closing) {\n this._pop(stack, tag);\n if (stack.length == 0)\n return Range.fromPoints(start, tag.start);\n }\n else {\n stack.push(tag);\n }\n }\n }\n else {\n var iterator = new TokenIterator(session, row, firstTag.end.column);\n var end = {\n row: row,\n column: firstTag.start.column\n };\n \n while (tag = this._readTagBackward(iterator)) {\n if (tag.selfClosing) {\n if (!stack.length) {\n tag.start.column += tag.tagName.length + 2;\n tag.end.column -= 2;\n return Range.fromPoints(tag.start, tag.end);\n } else\n continue;\n }\n \n if (!tag.closing) {\n this._pop(stack, tag);\n if (stack.length == 0) {\n tag.start.column += tag.tagName.length + 2;\n if (tag.start.row == tag.end.row && tag.start.column < tag.end.column)\n tag.start.column = tag.end.column;\n return Range.fromPoints(tag.start, end);\n }\n }\n else {\n stack.push(tag);\n }\n }\n }\n \n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/xml\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text\",\"ace/mode/xml_highlight_rules\",\"ace/mode/behaviour/xml\",\"ace/mode/folding/xml\",\"ace/worker/worker_client\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar TextMode = acequire(\"./text\").Mode;\nvar XmlHighlightRules = acequire(\"./xml_highlight_rules\").XmlHighlightRules;\nvar XmlBehaviour = acequire(\"./behaviour/xml\").XmlBehaviour;\nvar XmlFoldMode = acequire(\"./folding/xml\").FoldMode;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n this.HighlightRules = XmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.foldingRules = new XmlFoldMode();\n};\n\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.voidElements = lang.arrayToMap([]);\n\n this.blockComment = {start: \"\"};\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], require(\"../worker/xml\"), \"Worker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"error\", function(e) {\n session.setAnnotations(e.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n \n this.$id = \"ace/mode/xml\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/css_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar supportType = exports.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|min-height|min-width|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|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index\";\nvar supportFunction = exports.supportFunction = \"rgb|rgba|url|attr|counter|counters\";\nvar supportConstant = exports.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|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\";\nvar supportConstantColor = exports.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\";\nvar supportConstantFonts = exports.supportConstantFonts = \"arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace\";\n\nvar numRe = exports.numRe = \"\\\\-?(?:(?:[0-9]+(?:\\\\.[0-9]+)?)|(?:\\\\.[0-9]+))\";\nvar pseudoElements = exports.pseudoElements = \"(\\\\:+)\\\\b(after|before|first-letter|first-line|moz-selection|selection)\\\\b\";\nvar pseudoClasses = exports.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|acequired|root|target|valid|visited)\\\\b\";\n\nvar CssHighlightRules = function() {\n\n var keywordMapper = this.createKeywordMapper({\n \"support.function\": supportFunction,\n \"support.constant\": supportConstant,\n \"support.type\": supportType,\n \"support.constant.color\": supportConstantColor,\n \"support.constant.fonts\": supportConstantFonts\n }, \"text\", true);\n\n this.$rules = {\n \"start\" : [{\n include : [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"ruleset\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\"\n }, {\n token: \"string\",\n regex: \"@\",\n next: \"media\"\n }, {\n token: \"keyword\",\n regex: \"#[a-z0-9-_]+\"\n }, {\n token: \"keyword\",\n regex: \"%\"\n }, {\n token: \"variable\",\n regex: \"\\\\.[a-z0-9-_]+\"\n }, {\n token: \"string\",\n regex: \":[a-z0-9-_]+\"\n }, {\n token : \"constant.numeric\",\n regex : numRe\n }, {\n token: \"constant\",\n regex: \"[a-z0-9-_]+\"\n }, {\n caseInsensitive: true\n }],\n\n \"media\": [{\n include : [\"strings\", \"url\", \"comments\"]\n }, {\n token: \"paren.lparen\",\n regex: \"\\\\{\",\n next: \"start\"\n }, {\n token: \"paren.rparen\",\n regex: \"\\\\}\",\n next: \"start\"\n }, {\n token: \"string\",\n regex: \";\",\n next: \"start\"\n }, {\n token: \"keyword\",\n regex: \"(?:media|supports|document|charset|import|namespace|media|supports|document\"\n + \"|page|font|keyframes|viewport|counter-style|font-feature-values\"\n + \"|swash|ornaments|annotation|stylistic|styleset|character-variant)\"\n }],\n\n \"comments\" : [{\n token: \"comment\", // multi line comment\n regex: \"\\\\/\\\\*\",\n push: [{\n token : \"comment\",\n regex : \"\\\\*\\\\/\",\n next : \"pop\"\n }, {\n defaultToken : \"comment\"\n }]\n }],\n\n \"ruleset\" : [{\n regex : \"-(webkit|ms|moz|o)-\",\n token : \"text\"\n }, {\n token : \"paren.rparen\",\n regex : \"\\\\}\",\n next : \"start\"\n }, {\n include : [\"strings\", \"url\", \"comments\"]\n }, {\n token : [\"constant.numeric\", \"keyword\"],\n regex : \"(\" + numRe + \")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\"\n }, {\n token : \"constant.numeric\",\n regex : numRe\n }, {\n token : \"constant.numeric\", // hex6 color\n regex : \"#[a-f0-9]{6}\"\n }, {\n token : \"constant.numeric\", // hex3 color\n regex : \"#[a-f0-9]{3}\"\n }, {\n token : [\"punctuation\", \"entity.other.attribute-name.pseudo-element.css\"],\n regex : pseudoElements\n }, {\n token : [\"punctuation\", \"entity.other.attribute-name.pseudo-class.css\"],\n regex : pseudoClasses\n }, {\n include: \"url\"\n }, {\n token : keywordMapper,\n regex : \"\\\\-?[a-zA-Z_][a-zA-Z0-9_\\\\-]*\"\n }, {\n caseInsensitive: true\n }],\n\n url: [{\n token : \"support.function\",\n regex : \"(?:url(:?-prefix)?|domain|regexp)\\\\(\",\n push: [{\n token : \"support.function\",\n regex : \"\\\\)\",\n next : \"pop\"\n }, {\n defaultToken: \"string\"\n }]\n }],\n\n strings: [{\n token : \"string.start\",\n regex : \"'\",\n push : [{\n token : \"string.end\",\n regex : \"'|$\",\n next: \"pop\"\n }, {\n include : \"escapes\"\n }, {\n token : \"constant.language.escape\",\n regex : /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }, {\n token : \"string.start\",\n regex : '\"',\n push : [{\n token : \"string.end\",\n regex : '\"|$',\n next: \"pop\"\n }, {\n include : \"escapes\"\n }, {\n token : \"constant.language.escape\",\n regex : /\\\\$/,\n consumeLineEnd: true\n }, {\n defaultToken: \"string\"\n }]\n }],\n escapes: [{\n token : \"constant.language.escape\",\n regex : /\\\\([a-fA-F\\d]{1,6}|[^a-fA-F\\d])/\n }]\n\n };\n\n this.normalizeRules();\n};\n\noop.inherits(CssHighlightRules, TextHighlightRules);\n\nexports.CssHighlightRules = CssHighlightRules;\n\n});\n\nace.define(\"ace/mode/css_completions\",[\"require\",\"exports\",\"module\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar propertyMap = {\n \"background\": {\"#$0\": 1},\n \"background-color\": {\"#$0\": 1, \"transparent\": 1, \"fixed\": 1},\n \"background-image\": {\"url('/$0')\": 1},\n \"background-repeat\": {\"repeat\": 1, \"repeat-x\": 1, \"repeat-y\": 1, \"no-repeat\": 1, \"inherit\": 1},\n \"background-position\": {\"bottom\":2, \"center\":2, \"left\":2, \"right\":2, \"top\":2, \"inherit\":2},\n \"background-attachment\": {\"scroll\": 1, \"fixed\": 1},\n \"background-size\": {\"cover\": 1, \"contain\": 1},\n \"background-clip\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n \"background-origin\": {\"border-box\": 1, \"padding-box\": 1, \"content-box\": 1},\n \"border\": {\"solid $0\": 1, \"dashed $0\": 1, \"dotted $0\": 1, \"#$0\": 1},\n \"border-color\": {\"#$0\": 1},\n \"border-style\": {\"solid\":2, \"dashed\":2, \"dotted\":2, \"double\":2, \"groove\":2, \"hidden\":2, \"inherit\":2, \"inset\":2, \"none\":2, \"outset\":2, \"ridged\":2},\n \"border-collapse\": {\"collapse\": 1, \"separate\": 1},\n \"bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"clear\": {\"left\": 1, \"right\": 1, \"both\": 1, \"none\": 1},\n \"color\": {\"#$0\": 1, \"rgb(#$00,0,0)\": 1},\n \"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},\n \"display\": {\"none\": 1, \"block\": 1, \"inline\": 1, \"inline-block\": 1, \"table-cell\": 1},\n \"empty-cells\": {\"show\": 1, \"hide\": 1},\n \"float\": {\"left\": 1, \"right\": 1, \"none\": 1},\n \"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},\n \"font-size\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"font-weight\": {\"bold\": 1, \"normal\": 1},\n \"font-style\": {\"italic\": 1, \"normal\": 1},\n \"font-variant\": {\"normal\": 1, \"small-caps\": 1},\n \"height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"letter-spacing\": {\"normal\": 1},\n \"line-height\": {\"normal\": 1},\n \"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},\n \"margin\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"margin-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"margin-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"margin-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"margin-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"max-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"max-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"min-height\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"min-width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"overflow\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n \"overflow-x\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n \"overflow-y\": {\"hidden\": 1, \"visible\": 1, \"auto\": 1, \"scroll\": 1},\n \"padding\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"padding-top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"padding-right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"padding-bottom\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"padding-left\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"page-break-after\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n \"page-break-before\": {\"auto\": 1, \"always\": 1, \"avoid\": 1, \"left\": 1, \"right\": 1},\n \"position\": {\"absolute\": 1, \"relative\": 1, \"fixed\": 1, \"static\": 1},\n \"right\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"table-layout\": {\"fixed\": 1, \"auto\": 1},\n \"text-decoration\": {\"none\": 1, \"underline\": 1, \"line-through\": 1, \"blink\": 1},\n \"text-align\": {\"left\": 1, \"right\": 1, \"center\": 1, \"justify\": 1},\n \"text-transform\": {\"capitalize\": 1, \"uppercase\": 1, \"lowercase\": 1, \"none\": 1},\n \"top\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"vertical-align\": {\"top\": 1, \"bottom\": 1},\n \"visibility\": {\"hidden\": 1, \"visible\": 1},\n \"white-space\": {\"nowrap\": 1, \"normal\": 1, \"pre\": 1, \"pre-line\": 1, \"pre-wrap\": 1},\n \"width\": {\"px\": 1, \"em\": 1, \"%\": 1},\n \"word-spacing\": {\"normal\": 1},\n \"filter\": {\"alpha(opacity=$0100)\": 1},\n\n \"text-shadow\": {\"$02px 2px 2px #777\": 1},\n \"text-overflow\": {\"ellipsis-word\": 1, \"clip\": 1, \"ellipsis\": 1},\n \"-moz-border-radius\": 1,\n \"-moz-border-radius-topright\": 1,\n \"-moz-border-radius-bottomright\": 1,\n \"-moz-border-radius-topleft\": 1,\n \"-moz-border-radius-bottomleft\": 1,\n \"-webkit-border-radius\": 1,\n \"-webkit-border-top-right-radius\": 1,\n \"-webkit-border-top-left-radius\": 1,\n \"-webkit-border-bottom-right-radius\": 1,\n \"-webkit-border-bottom-left-radius\": 1,\n \"-moz-box-shadow\": 1,\n \"-webkit-box-shadow\": 1,\n \"transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n \"-moz-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1},\n \"-webkit-transform\": {\"rotate($00deg)\": 1, \"skew($00deg)\": 1 }\n};\n\nvar CssCompletions = function() {\n\n};\n\n(function() {\n\n this.completionsDefined = false;\n\n this.defineCompletions = function() {\n if (document) {\n var style = document.createElement('c').style;\n\n for (var i in style) {\n if (typeof style[i] !== 'string')\n continue;\n\n var name = i.replace(/[A-Z]/g, function(x) {\n return '-' + x.toLowerCase();\n });\n\n if (!propertyMap.hasOwnProperty(name))\n propertyMap[name] = 1;\n }\n }\n\n this.completionsDefined = true;\n };\n\n this.getCompletions = function(state, session, pos, prefix) {\n if (!this.completionsDefined) {\n this.defineCompletions();\n }\n\n var token = session.getTokenAt(pos.row, pos.column);\n\n if (!token)\n return [];\n if (state==='ruleset'){\n var line = session.getLine(pos.row).substr(0, pos.column);\n if (/:[^;]+$/.test(line)) {\n /([\\w\\-]+):[^:]*$/.test(line);\n\n return this.getPropertyValueCompletions(state, session, pos, prefix);\n } else {\n return this.getPropertyCompletions(state, session, pos, prefix);\n }\n }\n\n return [];\n };\n\n this.getPropertyCompletions = function(state, session, pos, prefix) {\n var properties = Object.keys(propertyMap);\n return properties.map(function(property){\n return {\n caption: property,\n snippet: property + ': $0;',\n meta: \"property\",\n score: Number.MAX_VALUE\n };\n });\n };\n\n this.getPropertyValueCompletions = function(state, session, pos, prefix) {\n var line = session.getLine(pos.row).substr(0, pos.column);\n var property = (/([\\w\\-]+):[^:]*$/.exec(line) || {})[1];\n\n if (!property)\n return [];\n var values = [];\n if (property in propertyMap && typeof propertyMap[property] === \"object\") {\n values = Object.keys(propertyMap[property]);\n }\n return values.map(function(value){\n return {\n caption: value,\n snippet: value,\n meta: \"property value\",\n score: Number.MAX_VALUE\n };\n });\n };\n\n}).call(CssCompletions.prototype);\n\nexports.CssCompletions = CssCompletions;\n});\n\nace.define(\"ace/mode/behaviour/css\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/behaviour\",\"ace/mode/behaviour/cstyle\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar Behaviour = acequire(\"../behaviour\").Behaviour;\nvar CstyleBehaviour = acequire(\"./cstyle\").CstyleBehaviour;\nvar TokenIterator = acequire(\"../../token_iterator\").TokenIterator;\n\nvar CssBehaviour = function () {\n\n this.inherit(CstyleBehaviour);\n\n this.add(\"colon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ':') {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ':') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n if (!line.substring(cursor.column).match(/^\\s*;/)) {\n return {\n text: ':;',\n selection: [1, 1]\n };\n }\n }\n }\n });\n\n this.add(\"colon\", \"deletion\", function (state, action, editor, session, range) {\n var selected = session.doc.getTextRange(range);\n if (!range.isMultiLine() && selected === ':') {\n var cursor = editor.getCursorPosition();\n var iterator = new TokenIterator(session, cursor.row, cursor.column);\n var token = iterator.getCurrentToken();\n if (token && token.value.match(/\\s+/)) {\n token = iterator.stepBackward();\n }\n if (token && token.type === 'support.type') {\n var line = session.doc.getLine(range.start.row);\n var rightChar = line.substring(range.end.column, range.end.column + 1);\n if (rightChar === ';') {\n range.end.column ++;\n return range;\n }\n }\n }\n });\n\n this.add(\"semicolon\", \"insertion\", function (state, action, editor, session, text) {\n if (text === ';') {\n var cursor = editor.getCursorPosition();\n var line = session.doc.getLine(cursor.row);\n var rightChar = line.substring(cursor.column, cursor.column + 1);\n if (rightChar === ';') {\n return {\n text: '',\n selection: [1, 1]\n };\n }\n }\n });\n\n};\noop.inherits(CssBehaviour, CstyleBehaviour);\n\nexports.CssBehaviour = CssBehaviour;\n});\n\nace.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(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar CssHighlightRules = acequire(\"./css_highlight_rules\").CssHighlightRules;\nvar MatchingBraceOutdent = acequire(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\nvar CssCompletions = acequire(\"./css_completions\").CssCompletions;\nvar CssBehaviour = acequire(\"./behaviour/css\").CssBehaviour;\nvar CStyleFoldMode = acequire(\"./folding/cstyle\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = CssHighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CssBehaviour();\n this.$completer = new CssCompletions();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.foldingRules = \"cStyle\";\n this.blockComment = {start: \"/*\", end: \"*/\"};\n\n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n var tokens = this.getTokenizer().getLineTokens(line, state).tokens;\n if (tokens.length && tokens[tokens.length-1].type == \"comment\") {\n return indent;\n }\n\n var match = line.match(/^.*\\{\\s*$/);\n if (match) {\n indent += tab;\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.getCompletions = function(state, session, pos, prefix) {\n return this.$completer.getCompletions(state, session, pos, prefix);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], require(\"../worker/css\"), \"Worker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(e) {\n session.setAnnotations(e.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n this.$id = \"ace/mode/css\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n\n});\n\nace.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(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar CssHighlightRules = acequire(\"./css_highlight_rules\").CssHighlightRules;\nvar JavaScriptHighlightRules = acequire(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = acequire(\"./xml_highlight_rules\").XmlHighlightRules;\n\nvar tagMap = lang.createMap({\n a : 'anchor',\n button \t : 'form',\n form : 'form',\n img : 'image',\n input : 'form',\n label : 'form',\n option : 'form',\n script : 'script',\n select : 'form',\n textarea : 'form',\n style : 'style',\n table : 'table',\n tbody : 'table',\n td : 'table',\n tfoot : 'table',\n th : 'table',\n tr : 'table'\n});\n\nvar HtmlHighlightRules = function() {\n XmlHighlightRules.call(this);\n\n this.addRules({\n attributes: [{\n include : \"tag_whitespace\"\n }, {\n token : \"entity.other.attribute-name.xml\",\n regex : \"[-_a-zA-Z0-9:.]+\"\n }, {\n token : \"keyword.operator.attribute-equals.xml\",\n regex : \"=\",\n push : [{\n include: \"tag_whitespace\"\n }, {\n token : \"string.unquoted.attribute-value.html\",\n regex : \"[^<>='\\\"`\\\\s]+\",\n next : \"pop\"\n }, {\n token : \"empty\",\n regex : \"\",\n next : \"pop\"\n }]\n }, {\n include : \"attribute_value\"\n }],\n tag: [{\n token : function(start, tag) {\n var group = tagMap[tag];\n return [\"meta.tag.punctuation.\" + (start == \"<\" ? \"\" : \"end-\") + \"tag-open.xml\",\n \"meta.tag\" + (group ? \".\" + group : \"\") + \".tag-name.xml\"];\n },\n regex : \"(\", next : \"start\"}\n ]\n });\n\n this.embedTagRules(CssHighlightRules, \"css-\", \"style\");\n this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), \"js-\", \"script\");\n\n if (this.constructor === HtmlHighlightRules)\n this.normalizeRules();\n};\n\noop.inherits(HtmlHighlightRules, XmlHighlightRules);\n\nexports.HtmlHighlightRules = HtmlHighlightRules;\n});\n\nace.define(\"ace/mode/folding/mixed\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(defaultMode, subModes) {\n this.defaultMode = defaultMode;\n this.subModes = subModes;\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n\n\n this.$getMode = function(state) {\n if (typeof state != \"string\") \n state = state[0];\n for (var key in this.subModes) {\n if (state.indexOf(key) === 0)\n return this.subModes[key];\n }\n return null;\n };\n \n this.$tryMode = function(state, session, foldStyle, row) {\n var mode = this.$getMode(state);\n return (mode ? mode.getFoldWidget(session, foldStyle, row) : \"\");\n };\n\n this.getFoldWidget = function(session, foldStyle, row) {\n return (\n this.$tryMode(session.getState(row-1), session, foldStyle, row) ||\n this.$tryMode(session.getState(row), session, foldStyle, row) ||\n this.defaultMode.getFoldWidget(session, foldStyle, row)\n );\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n var mode = this.$getMode(session.getState(row-1));\n \n if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n mode = this.$getMode(session.getState(row));\n \n if (!mode || !mode.getFoldWidget(session, foldStyle, row))\n mode = this.defaultMode;\n \n return mode.getFoldWidgetRange(session, foldStyle, row);\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/folding/html\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/mixed\",\"ace/mode/folding/xml\",\"ace/mode/folding/cstyle\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar MixedFoldMode = acequire(\"./mixed\").FoldMode;\nvar XmlFoldMode = acequire(\"./xml\").FoldMode;\nvar CStyleFoldMode = acequire(\"./cstyle\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(voidElements, optionalTags) {\n MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), {\n \"js-\": new CStyleFoldMode(),\n \"css-\": new CStyleFoldMode()\n });\n};\n\noop.inherits(FoldMode, MixedFoldMode);\n\n});\n\nace.define(\"ace/mode/html_completions\",[\"require\",\"exports\",\"module\",\"ace/token_iterator\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar TokenIterator = acequire(\"../token_iterator\").TokenIterator;\n\nvar commonAttributes = [\n \"accesskey\",\n \"class\",\n \"contenteditable\",\n \"contextmenu\",\n \"dir\",\n \"draggable\",\n \"dropzone\",\n \"hidden\",\n \"id\",\n \"inert\",\n \"itemid\",\n \"itemprop\",\n \"itemref\",\n \"itemscope\",\n \"itemtype\",\n \"lang\",\n \"spellcheck\",\n \"style\",\n \"tabindex\",\n \"title\",\n \"translate\"\n];\n\nvar eventAttributes = [\n \"onabort\",\n \"onblur\",\n \"oncancel\",\n \"oncanplay\",\n \"oncanplaythrough\",\n \"onchange\",\n \"onclick\",\n \"onclose\",\n \"oncontextmenu\",\n \"oncuechange\",\n \"ondblclick\",\n \"ondrag\",\n \"ondragend\",\n \"ondragenter\",\n \"ondragleave\",\n \"ondragover\",\n \"ondragstart\",\n \"ondrop\",\n \"ondurationchange\",\n \"onemptied\",\n \"onended\",\n \"onerror\",\n \"onfocus\",\n \"oninput\",\n \"oninvalid\",\n \"onkeydown\",\n \"onkeypress\",\n \"onkeyup\",\n \"onload\",\n \"onloadeddata\",\n \"onloadedmetadata\",\n \"onloadstart\",\n \"onmousedown\",\n \"onmousemove\",\n \"onmouseout\",\n \"onmouseover\",\n \"onmouseup\",\n \"onmousewheel\",\n \"onpause\",\n \"onplay\",\n \"onplaying\",\n \"onprogress\",\n \"onratechange\",\n \"onreset\",\n \"onscroll\",\n \"onseeked\",\n \"onseeking\",\n \"onselect\",\n \"onshow\",\n \"onstalled\",\n \"onsubmit\",\n \"onsuspend\",\n \"ontimeupdate\",\n \"onvolumechange\",\n \"onwaiting\"\n];\n\nvar globalAttributes = commonAttributes.concat(eventAttributes);\n\nvar attributeMap = {\n \"html\": {\"manifest\": 1},\n \"head\": {},\n \"title\": {},\n \"base\": {\"href\": 1, \"target\": 1},\n \"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},\n \"meta\": {\"http-equiv\": {\"content-type\": 1}, \"name\": {\"description\": 1, \"keywords\": 1}, \"content\": {\"text/html; charset=UTF-8\": 1}, \"charset\": 1},\n \"style\": {\"type\": 1, \"media\": {\"all\": 1, \"screen\": 1, \"print\": 1}, \"scoped\": 1},\n \"script\": {\"charset\": 1, \"type\": {\"text/javascript\": 1}, \"src\": 1, \"defer\": 1, \"async\": 1},\n \"noscript\": {\"href\": 1},\n \"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},\n \"section\": {},\n \"nav\": {},\n \"article\": {\"pubdate\": 1},\n \"aside\": {},\n \"h1\": {},\n \"h2\": {},\n \"h3\": {},\n \"h4\": {},\n \"h5\": {},\n \"h6\": {},\n \"header\": {},\n \"footer\": {},\n \"address\": {},\n \"main\": {},\n \"p\": {},\n \"hr\": {},\n \"pre\": {},\n \"blockquote\": {\"cite\": 1},\n \"ol\": {\"start\": 1, \"reversed\": 1},\n \"ul\": {},\n \"li\": {\"value\": 1},\n \"dl\": {},\n \"dt\": {},\n \"dd\": {},\n \"figure\": {},\n \"figcaption\": {},\n \"div\": {},\n \"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},\n \"em\": {},\n \"strong\": {},\n \"small\": {},\n \"s\": {},\n \"cite\": {},\n \"q\": {\"cite\": 1},\n \"dfn\": {},\n \"abbr\": {},\n \"data\": {},\n \"time\": {\"datetime\": 1},\n \"code\": {},\n \"var\": {},\n \"samp\": {},\n \"kbd\": {},\n \"sub\": {},\n \"sup\": {},\n \"i\": {},\n \"b\": {},\n \"u\": {},\n \"mark\": {},\n \"ruby\": {},\n \"rt\": {},\n \"rp\": {},\n \"bdi\": {},\n \"bdo\": {},\n \"span\": {},\n \"br\": {},\n \"wbr\": {},\n \"ins\": {\"cite\": 1, \"datetime\": 1},\n \"del\": {\"cite\": 1, \"datetime\": 1},\n \"img\": {\"alt\": 1, \"src\": 1, \"height\": 1, \"width\": 1, \"usemap\": 1, \"ismap\": 1},\n \"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}},\n \"embed\": {\"src\": 1, \"height\": 1, \"width\": 1, \"type\": 1},\n \"object\": {\"param\": 1, \"data\": 1, \"type\": 1, \"height\" : 1, \"width\": 1, \"usemap\": 1, \"name\": 1, \"form\": 1, \"classid\": 1},\n \"param\": {\"name\": 1, \"value\": 1},\n \"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}},\n \"audio\": {\"src\": 1, \"autobuffer\": 1, \"autoplay\": {\"autoplay\": 1}, \"loop\": {\"loop\": 1}, \"controls\": {\"controls\": 1}, \"muted\": {\"muted\": 1}, \"preload\": {\"auto\": 1, \"metadata\": 1, \"none\": 1 }},\n \"source\": {\"src\": 1, \"type\": 1, \"media\": 1},\n \"track\": {\"kind\": 1, \"src\": 1, \"srclang\": 1, \"label\": 1, \"default\": 1},\n \"canvas\": {\"width\": 1, \"height\": 1},\n \"map\": {\"name\": 1},\n \"area\": {\"shape\": 1, \"coords\": 1, \"href\": 1, \"hreflang\": 1, \"alt\": 1, \"target\": 1, \"media\": 1, \"rel\": 1, \"ping\": 1, \"type\": 1},\n \"svg\": {},\n \"math\": {},\n \"table\": {\"summary\": 1},\n \"caption\": {},\n \"colgroup\": {\"span\": 1},\n \"col\": {\"span\": 1},\n \"tbody\": {},\n \"thead\": {},\n \"tfoot\": {},\n \"tr\": {},\n \"td\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1},\n \"th\": {\"headers\": 1, \"rowspan\": 1, \"colspan\": 1, \"scope\": 1},\n \"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}},\n \"fieldset\": {\"disabled\": 1, \"form\": 1, \"name\": 1},\n \"legend\": {},\n \"label\": {\"form\": 1, \"for\": 1},\n \"input\": {\n \"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},\n \"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}, \"acequired\": {\"acequired\": 1}, \"size\": 1, \"src\": 1, \"step\": 1, \"width\": 1, \"files\": 1, \"value\": 1},\n \"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}},\n \"select\": {\"autofocus\": 1, \"disabled\": 1, \"form\": 1, \"multiple\": {\"multiple\": 1}, \"name\": 1, \"size\": 1, \"readonly\":{\"readonly\": 1}},\n \"datalist\": {},\n \"optgroup\": {\"disabled\": 1, \"label\": 1},\n \"option\": {\"disabled\": 1, \"selected\": 1, \"label\": 1, \"value\": 1},\n \"textarea\": {\"autofocus\": {\"autofocus\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"maxlength\": 1, \"name\": 1, \"placeholder\": 1, \"readonly\": {\"readonly\": 1}, \"acequired\": {\"acequired\": 1}, \"rows\": 1, \"cols\": 1, \"wrap\": {\"on\": 1, \"off\": 1, \"hard\": 1, \"soft\": 1}},\n \"keygen\": {\"autofocus\": 1, \"challenge\": {\"challenge\": 1}, \"disabled\": {\"disabled\": 1}, \"form\": 1, \"keytype\": {\"rsa\": 1, \"dsa\": 1, \"ec\": 1}, \"name\": 1},\n \"output\": {\"for\": 1, \"form\": 1, \"name\": 1},\n \"progress\": {\"value\": 1, \"max\": 1},\n \"meter\": {\"value\": 1, \"min\": 1, \"max\": 1, \"low\": 1, \"high\": 1, \"optimum\": 1},\n \"details\": {\"open\": 1},\n \"summary\": {},\n \"command\": {\"type\": 1, \"label\": 1, \"icon\": 1, \"disabled\": 1, \"checked\": 1, \"radiogroup\": 1, \"command\": 1},\n \"menu\": {\"type\": 1, \"label\": 1},\n \"dialog\": {\"open\": 1}\n};\n\nvar elements = Object.keys(attributeMap);\n\nfunction is(token, type) {\n return token.type.lastIndexOf(type + \".xml\") > -1;\n}\n\nfunction findTagName(session, pos) {\n var iterator = new TokenIterator(session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n while (token && !is(token, \"tag-name\")){\n token = iterator.stepBackward();\n }\n if (token)\n return token.value;\n}\n\nfunction findAttributeName(session, pos) {\n var iterator = new TokenIterator(session, pos.row, pos.column);\n var token = iterator.getCurrentToken();\n while (token && !is(token, \"attribute-name\")){\n token = iterator.stepBackward();\n }\n if (token)\n return token.value;\n}\n\nvar HtmlCompletions = function() {\n\n};\n\n(function() {\n\n this.getCompletions = function(state, session, pos, prefix) {\n var token = session.getTokenAt(pos.row, pos.column);\n\n if (!token)\n return [];\n if (is(token, \"tag-name\") || is(token, \"tag-open\") || is(token, \"end-tag-open\"))\n return this.getTagCompletions(state, session, pos, prefix);\n if (is(token, \"tag-whitespace\") || is(token, \"attribute-name\"))\n return this.getAttributeCompletions(state, session, pos, prefix);\n if (is(token, \"attribute-value\"))\n return this.getAttributeValueCompletions(state, session, pos, prefix);\n var line = session.getLine(pos.row).substr(0, pos.column);\n if (/&[a-z]*$/i.test(line))\n return this.getHTMLEntityCompletions(state, session, pos, prefix);\n\n return [];\n };\n\n this.getTagCompletions = function(state, session, pos, prefix) {\n return elements.map(function(element){\n return {\n value: element,\n meta: \"tag\",\n score: Number.MAX_VALUE\n };\n });\n };\n\n this.getAttributeCompletions = function(state, session, pos, prefix) {\n var tagName = findTagName(session, pos);\n if (!tagName)\n return [];\n var attributes = globalAttributes;\n if (tagName in attributeMap) {\n attributes = attributes.concat(Object.keys(attributeMap[tagName]));\n }\n return attributes.map(function(attribute){\n return {\n caption: attribute,\n snippet: attribute + '=\"$0\"',\n meta: \"attribute\",\n score: Number.MAX_VALUE\n };\n });\n };\n\n this.getAttributeValueCompletions = function(state, session, pos, prefix) {\n var tagName = findTagName(session, pos);\n var attributeName = findAttributeName(session, pos);\n \n if (!tagName)\n return [];\n var values = [];\n if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === \"object\") {\n values = Object.keys(attributeMap[tagName][attributeName]);\n }\n return values.map(function(value){\n return {\n caption: value,\n snippet: value,\n meta: \"attribute value\",\n score: Number.MAX_VALUE\n };\n });\n };\n\n this.getHTMLEntityCompletions = function(state, session, pos, prefix) {\n var values = ['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;'];\n\n return values.map(function(value){\n return {\n caption: value,\n snippet: value,\n meta: \"html entity\",\n score: Number.MAX_VALUE\n };\n });\n };\n\n}).call(HtmlCompletions.prototype);\n\nexports.HtmlCompletions = HtmlCompletions;\n});\n\nace.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(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar TextMode = acequire(\"./text\").Mode;\nvar JavaScriptMode = acequire(\"./javascript\").Mode;\nvar CssMode = acequire(\"./css\").Mode;\nvar HtmlHighlightRules = acequire(\"./html_highlight_rules\").HtmlHighlightRules;\nvar XmlBehaviour = acequire(\"./behaviour/xml\").XmlBehaviour;\nvar HtmlFoldMode = acequire(\"./folding/html\").FoldMode;\nvar HtmlCompletions = acequire(\"./html_completions\").HtmlCompletions;\nvar WorkerClient = acequire(\"../worker/worker_client\").WorkerClient;\nvar voidElements = [\"area\", \"base\", \"br\", \"col\", \"embed\", \"hr\", \"img\", \"input\", \"keygen\", \"link\", \"meta\", \"menuitem\", \"param\", \"source\", \"track\", \"wbr\"];\nvar optionalEndTags = [\"li\", \"dt\", \"dd\", \"p\", \"rt\", \"rp\", \"optgroup\", \"option\", \"colgroup\", \"td\", \"th\"];\n\nvar Mode = function(options) {\n this.fragmentContext = options && options.fragmentContext;\n this.HighlightRules = HtmlHighlightRules;\n this.$behaviour = new XmlBehaviour();\n this.$completer = new HtmlCompletions();\n \n this.createModeDelegates({\n \"js-\": JavaScriptMode,\n \"css-\": CssMode\n });\n \n this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags));\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.blockComment = {start: \"\"};\n\n this.voidElements = lang.arrayToMap(voidElements);\n\n this.getNextLineIndent = function(state, line, tab) {\n return this.$getIndent(line);\n };\n\n this.checkOutdent = function(state, line, input) {\n return false;\n };\n\n this.getCompletions = function(state, session, pos, prefix) {\n return this.$completer.getCompletions(state, session, pos, prefix);\n };\n\n this.createWorker = function(session) {\n if (this.constructor != Mode)\n return;\n var worker = new WorkerClient([\"ace\"], require(\"../worker/html\"), \"Worker\");\n worker.attachToDocument(session.getDocument());\n\n if (this.fragmentContext)\n worker.call(\"setOptions\", [{context: this.fragmentContext}]);\n\n worker.on(\"error\", function(e) {\n session.setAnnotations(e.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n this.$id = \"ace/mode/html\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n\nace.define(\"ace/mode/markdown_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/lib/lang\",\"ace/mode/text_highlight_rules\",\"ace/mode/javascript_highlight_rules\",\"ace/mode/xml_highlight_rules\",\"ace/mode/html_highlight_rules\",\"ace/mode/css_highlight_rules\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar lang = acequire(\"../lib/lang\");\nvar TextHighlightRules = acequire(\"./text_highlight_rules\").TextHighlightRules;\nvar JavaScriptHighlightRules = acequire(\"./javascript_highlight_rules\").JavaScriptHighlightRules;\nvar XmlHighlightRules = acequire(\"./xml_highlight_rules\").XmlHighlightRules;\nvar HtmlHighlightRules = acequire(\"./html_highlight_rules\").HtmlHighlightRules;\nvar CssHighlightRules = acequire(\"./css_highlight_rules\").CssHighlightRules;\n\nvar escaped = function(ch) {\n return \"(?:[^\" + lang.escapeRegExp(ch) + \"\\\\\\\\]|\\\\\\\\.)*\";\n};\n\nfunction github_embed(tag, prefix) {\n return { // Github style block\n token : \"support.function\",\n regex : \"^\\\\s*```\" + tag + \"\\\\s*$\",\n push : prefix + \"start\"\n };\n}\n\nvar MarkdownHighlightRules = function() {\n HtmlHighlightRules.call(this);\n\n this.$rules[\"start\"].unshift({\n token : \"empty_line\",\n regex : '^$',\n next: \"allowBlock\"\n }, { // h1\n token: \"markup.heading.1\",\n regex: \"^=+(?=\\\\s*$)\"\n }, { // h2\n token: \"markup.heading.2\",\n regex: \"^\\\\-+(?=\\\\s*$)\"\n }, {\n token : function(value) {\n return \"markup.heading.\" + value.length;\n },\n regex : /^#{1,6}(?=\\s*[^ #]|\\s+#.)/,\n next : \"header\"\n },\n github_embed(\"(?:javascript|js)\", \"jscode-\"),\n github_embed(\"xml\", \"xmlcode-\"),\n github_embed(\"html\", \"htmlcode-\"),\n github_embed(\"css\", \"csscode-\"),\n { // Github style block\n token : \"support.function\",\n regex : \"^\\\\s*```\\\\s*\\\\S*(?:{.*?\\\\})?\\\\s*$\",\n next : \"githubblock\"\n }, { // block quote\n token : \"string.blockquote\",\n regex : \"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",\n next : \"blockquote\"\n }, { // HR * - _\n token : \"constant\",\n regex : \"^ {0,2}(?:(?: ?\\\\* ?){3,}|(?: ?\\\\- ?){3,}|(?: ?\\\\_ ?){3,})\\\\s*$\",\n next: \"allowBlock\"\n }, { // list\n token : \"markup.list\",\n regex : \"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",\n next : \"listblock-start\"\n }, {\n include : \"basic\"\n });\n\n this.addRules({\n \"basic\" : [{\n token : \"constant.language.escape\",\n regex : /\\\\[\\\\`*_{}\\[\\]()#+\\-.!]/\n }, { // code span `\n token : \"support.function\",\n regex : \"(`+)(.*?[^`])(\\\\1)\"\n }, { // reference\n token : [\"text\", \"constant\", \"text\", \"url\", \"string\", \"text\"],\n regex : \"^([ ]{0,3}\\\\[)([^\\\\]]+)(\\\\]:\\\\s*)([^ ]+)(\\\\s*(?:[\\\"][^\\\"]+[\\\"])?(\\\\s*))$\"\n }, { // link by reference\n token : [\"text\", \"string\", \"text\", \"constant\", \"text\"],\n regex : \"(\\\\[)(\" + escaped(\"]\") + \")(\\\\]\\\\s*\\\\[)(\"+ escaped(\"]\") + \")(\\\\])\"\n }, { // link by url\n token : [\"text\", \"string\", \"text\", \"markup.underline\", \"string\", \"text\"],\n regex : \"(\\\\[)(\" + // [\n escaped(\"]\") + // link text\n \")(\\\\]\\\\()\"+ // ](\n '((?:[^\\\\)\\\\s\\\\\\\\]|\\\\\\\\.|\\\\s(?=[^\"]))*)' + // href\n '(\\\\s*\"' + escaped('\"') + '\"\\\\s*)?' + // \"title\"\n \"(\\\\))\" // )\n }, { // strong ** __\n token : \"string.strong\",\n regex : \"([*]{2}|[_]{2}(?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"\n }, { // emphasis * _\n token : \"string.emphasis\",\n regex : \"([*]|[_](?=\\\\S))(.*?\\\\S[*_]*)(\\\\1)\"\n }, { //\n token : [\"text\", \"url\", \"text\"],\n regex : \"(<)(\"+\n \"(?:https?|ftp|dict):[^'\\\">\\\\s]+\"+\n \"|\"+\n \"(?:mailto:)?[-.\\\\w]+\\\\@[-a-z0-9]+(?:\\\\.[-a-z0-9]+)*\\\\.[a-z]+\"+\n \")(>)\"\n }],\n \"allowBlock\": [\n {token : \"support.function\", regex : \"^ {4}.+\", next : \"allowBlock\"},\n {token : \"empty_line\", regex : '^$', next: \"allowBlock\"},\n {token : \"empty\", regex : \"\", next : \"start\"}\n ],\n\n \"header\" : [{\n regex: \"$\",\n next : \"start\"\n }, {\n include: \"basic\"\n }, {\n defaultToken : \"heading\"\n } ],\n\n \"listblock-start\" : [{\n token : \"support.variable\",\n regex : /(?:\\[[ x]\\])?/,\n next : \"listblock\"\n }],\n\n \"listblock\" : [ { // Lists only escape on completely blank lines.\n token : \"empty_line\",\n regex : \"^$\",\n next : \"start\"\n }, { // list\n token : \"markup.list\",\n regex : \"^\\\\s{0,3}(?:[*+-]|\\\\d+\\\\.)\\\\s+\",\n next : \"listblock-start\"\n }, {\n include : \"basic\", noEscape: true\n }, { // Github style block\n token : \"support.function\",\n regex : \"^\\\\s*```\\\\s*[a-zA-Z]*(?:{.*?\\\\})?\\\\s*$\",\n next : \"githubblock\"\n }, {\n defaultToken : \"list\" //do not use markup.list to allow stling leading `*` differntly\n } ],\n\n \"blockquote\" : [ { // Blockquotes only escape on blank lines.\n token : \"empty_line\",\n regex : \"^\\\\s*$\",\n next : \"start\"\n }, { // block quote\n token : \"string.blockquote\",\n regex : \"^\\\\s*>\\\\s*(?:[*+-]|\\\\d+\\\\.)?\\\\s+\",\n next : \"blockquote\"\n }, {\n include : \"basic\", noEscape: true\n }, {\n defaultToken : \"string.blockquote\"\n } ],\n\n \"githubblock\" : [ {\n token : \"support.function\",\n regex : \"^\\\\s*```\",\n next : \"start\"\n }, {\n defaultToken : \"support.function\"\n } ]\n });\n\n this.embedRules(JavaScriptHighlightRules, \"jscode-\", [{\n token : \"support.function\",\n regex : \"^\\\\s*```\",\n next : \"pop\"\n }]);\n\n this.embedRules(HtmlHighlightRules, \"htmlcode-\", [{\n token : \"support.function\",\n regex : \"^\\\\s*```\",\n next : \"pop\"\n }]);\n\n this.embedRules(CssHighlightRules, \"csscode-\", [{\n token : \"support.function\",\n regex : \"^\\\\s*```\",\n next : \"pop\"\n }]);\n\n this.embedRules(XmlHighlightRules, \"xmlcode-\", [{\n token : \"support.function\",\n regex : \"^\\\\s*```\",\n next : \"pop\"\n }]);\n\n this.normalizeRules();\n};\noop.inherits(MarkdownHighlightRules, TextHighlightRules);\n\nexports.MarkdownHighlightRules = MarkdownHighlightRules;\n});\n\nace.define(\"ace/mode/folding/markdown\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/folding/fold_mode\",\"ace/range\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../../lib/oop\");\nvar BaseFoldMode = acequire(\"./fold_mode\").FoldMode;\nvar Range = acequire(\"../../range\").Range;\n\nvar FoldMode = exports.FoldMode = function() {};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n this.foldingStartMarker = /^(?:[=-]+\\s*$|#{1,6} |`{3})/;\n\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n if (!this.foldingStartMarker.test(line))\n return \"\";\n\n if (line[0] == \"`\") {\n if (session.bgTokenizer.getState(row) == \"start\")\n return \"end\";\n return \"start\";\n }\n\n return \"start\";\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row) {\n var line = session.getLine(row);\n var startColumn = line.length;\n var maxRow = session.getLength();\n var startRow = row;\n var endRow = row;\n if (!line.match(this.foldingStartMarker))\n return;\n\n if (line[0] == \"`\") {\n if (session.bgTokenizer.getState(row) !== \"start\") {\n while (++row < maxRow) {\n line = session.getLine(row);\n if (line[0] == \"`\" & line.substring(0, 3) == \"```\")\n break;\n }\n return new Range(startRow, startColumn, row, 0);\n } else {\n while (row -- > 0) {\n line = session.getLine(row);\n if (line[0] == \"`\" & line.substring(0, 3) == \"```\")\n break;\n }\n return new Range(row, line.length, startRow, 0);\n }\n }\n\n var token;\n function isHeading(row) {\n token = session.getTokens(row)[0];\n return token && token.type.lastIndexOf(heading, 0) === 0;\n }\n\n var heading = \"markup.heading\";\n function getLevel() {\n var ch = token.value[0];\n if (ch == \"=\") return 6;\n if (ch == \"-\") return 5;\n return 7 - token.value.search(/[^#]/);\n }\n\n if (isHeading(row)) {\n var startHeadingLevel = getLevel();\n while (++row < maxRow) {\n if (!isHeading(row))\n continue;\n var level = getLevel();\n if (level >= startHeadingLevel)\n break;\n }\n\n endRow = row - (!token || [\"=\", \"-\"].indexOf(token.value[0]) == -1 ? 1 : 2);\n\n if (endRow > startRow) {\n while (endRow > startRow && /^\\s*$/.test(session.getLine(endRow)))\n endRow--;\n }\n\n if (endRow > startRow) {\n var endColumn = session.getLine(endRow).length;\n return new Range(startRow, startColumn, endRow, endColumn);\n }\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/markdown\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/javascript\",\"ace/mode/xml\",\"ace/mode/html\",\"ace/mode/markdown_highlight_rules\",\"ace/mode/folding/markdown\"], function(acequire, exports, module) {\n\"use strict\";\n\nvar oop = acequire(\"../lib/oop\");\nvar TextMode = acequire(\"./text\").Mode;\nvar JavaScriptMode = acequire(\"./javascript\").Mode;\nvar XmlMode = acequire(\"./xml\").Mode;\nvar HtmlMode = acequire(\"./html\").Mode;\nvar MarkdownHighlightRules = acequire(\"./markdown_highlight_rules\").MarkdownHighlightRules;\nvar MarkdownFoldMode = acequire(\"./folding/markdown\").FoldMode;\n\nvar Mode = function() {\n this.HighlightRules = MarkdownHighlightRules;\n\n this.createModeDelegates({\n \"js-\": JavaScriptMode,\n \"xml-\": XmlMode,\n \"html-\": HtmlMode\n });\n\n this.foldingRules = new MarkdownFoldMode();\n this.$behaviour = this.$defaultBehaviour;\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n this.type = \"text\";\n this.blockComment = {start: \"\"};\n\n this.getNextLineIndent = function(state, line, tab) {\n if (state == \"listblock\") {\n var match = /^(\\s*)(?:([-+*])|(\\d+)\\.)(\\s+)/.exec(line);\n if (!match)\n return \"\";\n var marker = match[2];\n if (!marker)\n marker = parseInt(match[3], 10) + 1 + \".\";\n return match[1] + marker + match[4];\n } else {\n return this.$getIndent(line);\n }\n };\n this.$id = \"ace/mode/markdown\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n});\n","module.exports.id = 'ace/mode/css_worker';\nmodule.exports.src = \"\\\"no use strict\\\";!function(window){function resolveModuleId(id,paths){for(var testPath=id,tail=\\\"\\\";testPath;){var alias=paths[testPath];if(\\\"string\\\"==typeof alias)return alias+tail;if(alias)return alias.location.replace(/\\\\/*$/,\\\"/\\\")+(tail||alias.main||alias.name);if(alias===!1)return\\\"\\\";var i=testPath.lastIndexOf(\\\"/\\\");if(-1===i)break;tail=testPath.substr(i)+tail,testPath=testPath.slice(0,i)}return id}if(!(void 0!==window.window&&window.document||window.acequire&&window.define)){window.console||(window.console=function(){var msgs=Array.prototype.slice.call(arguments,0);postMessage({type:\\\"log\\\",data:msgs})},window.console.error=window.console.warn=window.console.log=window.console.trace=window.console),window.window=window,window.ace=window,window.onerror=function(message,file,line,col,err){postMessage({type:\\\"error\\\",data:{message:message,data:err.data,file:file,line:line,col:col,stack:err.stack}})},window.normalizeModule=function(parentId,moduleName){if(-1!==moduleName.indexOf(\\\"!\\\")){var chunks=moduleName.split(\\\"!\\\");return window.normalizeModule(parentId,chunks[0])+\\\"!\\\"+window.normalizeModule(parentId,chunks[1])}if(\\\".\\\"==moduleName.charAt(0)){var base=parentId.split(\\\"/\\\").slice(0,-1).join(\\\"/\\\");for(moduleName=(base?base+\\\"/\\\":\\\"\\\")+moduleName;-1!==moduleName.indexOf(\\\".\\\")&&previous!=moduleName;){var previous=moduleName;moduleName=moduleName.replace(/^\\\\.\\\\//,\\\"\\\").replace(/\\\\/\\\\.\\\\//,\\\"/\\\").replace(/[^\\\\/]+\\\\/\\\\.\\\\.\\\\//,\\\"\\\")}}return moduleName},window.acequire=function acequire(parentId,id){if(id||(id=parentId,parentId=null),!id.charAt)throw Error(\\\"worker.js acequire() accepts only (parentId, id) as arguments\\\");id=window.normalizeModule(parentId,id);var module=window.acequire.modules[id];if(module)return module.initialized||(module.initialized=!0,module.exports=module.factory().exports),module.exports;if(!window.acequire.tlns)return console.log(\\\"unable to load \\\"+id);var path=resolveModuleId(id,window.acequire.tlns);return\\\".js\\\"!=path.slice(-3)&&(path+=\\\".js\\\"),window.acequire.id=id,window.acequire.modules[id]={},importScripts(path),window.acequire(parentId,id)},window.acequire.modules={},window.acequire.tlns={},window.define=function(id,deps,factory){if(2==arguments.length?(factory=deps,\\\"string\\\"!=typeof id&&(deps=id,id=window.acequire.id)):1==arguments.length&&(factory=id,deps=[],id=window.acequire.id),\\\"function\\\"!=typeof factory)return window.acequire.modules[id]={exports:factory,initialized:!0},void 0;deps.length||(deps=[\\\"require\\\",\\\"exports\\\",\\\"module\\\"]);var req=function(childId){return window.acequire(id,childId)};window.acequire.modules[id]={exports:{},factory:function(){var module=this,returnExports=factory.apply(this,deps.map(function(dep){switch(dep){case\\\"require\\\":return req;case\\\"exports\\\":return module.exports;case\\\"module\\\":return module;default:return req(dep)}}));return returnExports&&(module.exports=returnExports),module}}},window.define.amd={},acequire.tlns={},window.initBaseUrls=function(topLevelNamespaces){for(var i in topLevelNamespaces)acequire.tlns[i]=topLevelNamespaces[i]},window.initSender=function(){var EventEmitter=window.acequire(\\\"ace/lib/event_emitter\\\").EventEmitter,oop=window.acequire(\\\"ace/lib/oop\\\"),Sender=function(){};return function(){oop.implement(this,EventEmitter),this.callback=function(data,callbackId){postMessage({type:\\\"call\\\",id:callbackId,data:data})},this.emit=function(name,data){postMessage({type:\\\"event\\\",name:name,data:data})}}.call(Sender.prototype),new Sender};var main=window.main=null,sender=window.sender=null;window.onmessage=function(e){var msg=e.data;if(msg.event&&sender)sender._signal(msg.event,msg.data);else if(msg.command)if(main[msg.command])main[msg.command].apply(main,msg.args);else{if(!window[msg.command])throw Error(\\\"Unknown command:\\\"+msg.command);window[msg.command].apply(window,msg.args)}else if(msg.init){window.initBaseUrls(msg.tlns),acequire(\\\"ace/lib/es5-shim\\\"),sender=window.sender=window.initSender();var clazz=acequire(msg.module)[msg.classname];main=window.main=new clazz(sender)}}}}(this),ace.define(\\\"ace/lib/oop\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.inherits=function(ctor,superCtor){ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})},exports.mixin=function(obj,mixin){for(var key in mixin)obj[key]=mixin[key];return obj},exports.implement=function(proto,mixin){exports.mixin(proto,mixin)}}),ace.define(\\\"ace/lib/lang\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.last=function(a){return a[a.length-1]},exports.stringReverse=function(string){return string.split(\\\"\\\").reverse().join(\\\"\\\")},exports.stringRepeat=function(string,count){for(var result=\\\"\\\";count>0;)1&count&&(result+=string),(count>>=1)&&(string+=string);return result};var trimBeginRegexp=/^\\\\s\\\\s*/,trimEndRegexp=/\\\\s\\\\s*$/;exports.stringTrimLeft=function(string){return string.replace(trimBeginRegexp,\\\"\\\")},exports.stringTrimRight=function(string){return string.replace(trimEndRegexp,\\\"\\\")},exports.copyObject=function(obj){var copy={};for(var key in obj)copy[key]=obj[key];return copy},exports.copyArray=function(array){for(var copy=[],i=0,l=array.length;l>i;i++)copy[i]=array[i]&&\\\"object\\\"==typeof array[i]?this.copyObject(array[i]):array[i];return copy},exports.deepCopy=function deepCopy(obj){if(\\\"object\\\"!=typeof obj||!obj)return obj;var copy;if(Array.isArray(obj)){copy=[];for(var key=0;obj.length>key;key++)copy[key]=deepCopy(obj[key]);return copy}if(\\\"[object Object]\\\"!==Object.prototype.toString.call(obj))return obj;copy={};for(var key in obj)copy[key]=deepCopy(obj[key]);return copy},exports.arrayToMap=function(arr){for(var map={},i=0;arr.length>i;i++)map[arr[i]]=1;return map},exports.createMap=function(props){var map=Object.create(null);for(var i in props)map[i]=props[i];return map},exports.arrayRemove=function(array,value){for(var i=0;array.length>=i;i++)value===array[i]&&array.splice(i,1)},exports.escapeRegExp=function(str){return str.replace(/([.*+?^${}()|[\\\\]\\\\/\\\\\\\\])/g,\\\"\\\\\\\\$1\\\")},exports.escapeHTML=function(str){return str.replace(/&/g,\\\"&\\\").replace(/\\\"/g,\\\""\\\").replace(/'/g,\\\"'\\\").replace(/ [\\\"+this.end.row+\\\"/\\\"+this.end.column+\\\"]\\\"},this.contains=function(row,column){return 0==this.compare(row,column)},this.compareRange=function(range){var cmp,end=range.end,start=range.start;return cmp=this.compare(end.row,end.column),1==cmp?(cmp=this.compare(start.row,start.column),1==cmp?2:0==cmp?1:0):-1==cmp?-2:(cmp=this.compare(start.row,start.column),-1==cmp?-1:1==cmp?42:0)},this.comparePoint=function(p){return this.compare(p.row,p.column)},this.containsRange=function(range){return 0==this.comparePoint(range.start)&&0==this.comparePoint(range.end)},this.intersects=function(range){var cmp=this.compareRange(range);return-1==cmp||0==cmp||1==cmp},this.isEnd=function(row,column){return this.end.row==row&&this.end.column==column},this.isStart=function(row,column){return this.start.row==row&&this.start.column==column},this.setStart=function(row,column){\\\"object\\\"==typeof row?(this.start.column=row.column,this.start.row=row.row):(this.start.row=row,this.start.column=column)},this.setEnd=function(row,column){\\\"object\\\"==typeof row?(this.end.column=row.column,this.end.row=row.row):(this.end.row=row,this.end.column=column)},this.inside=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)||this.isStart(row,column)?!1:!0:!1},this.insideStart=function(row,column){return 0==this.compare(row,column)?this.isEnd(row,column)?!1:!0:!1},this.insideEnd=function(row,column){return 0==this.compare(row,column)?this.isStart(row,column)?!1:!0:!1},this.compare=function(row,column){return this.isMultiLine()||row!==this.start.row?this.start.row>row?-1:row>this.end.row?1:this.start.row===row?column>=this.start.column?0:-1:this.end.row===row?this.end.column>=column?0:1:0:this.start.column>column?-1:column>this.end.column?1:0},this.compareStart=function(row,column){return this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.compareEnd=function(row,column){return this.end.row==row&&this.end.column==column?1:this.compare(row,column)},this.compareInside=function(row,column){return this.end.row==row&&this.end.column==column?1:this.start.row==row&&this.start.column==column?-1:this.compare(row,column)},this.clipRows=function(firstRow,lastRow){if(this.end.row>lastRow)var end={row:lastRow+1,column:0};else if(firstRow>this.end.row)var end={row:firstRow,column:0};if(this.start.row>lastRow)var start={row:lastRow+1,column:0};else if(firstRow>this.start.row)var start={row:firstRow,column:0};return Range.fromPoints(start||this.start,end||this.end)},this.extend=function(row,column){var cmp=this.compare(row,column);if(0==cmp)return this;if(-1==cmp)var start={row:row,column:column};else var end={row:row,column:column};return Range.fromPoints(start||this.start,end||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 Range.fromPoints(this.start,this.end)},this.collapseRows=function(){return 0==this.end.column?new Range(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new Range(this.start.row,0,this.end.row,0)},this.toScreenRange=function(session){var screenPosStart=session.documentToScreenPosition(this.start),screenPosEnd=session.documentToScreenPosition(this.end);return new Range(screenPosStart.row,screenPosStart.column,screenPosEnd.row,screenPosEnd.column)},this.moveBy=function(row,column){this.start.row+=row,this.start.column+=column,this.end.row+=row,this.end.column+=column}}).call(Range.prototype),Range.fromPoints=function(start,end){return new Range(start.row,start.column,end.row,end.column)},Range.comparePoints=comparePoints,Range.comparePoints=function(p1,p2){return p1.row-p2.row||p1.column-p2.column},exports.Range=Range}),ace.define(\\\"ace/apply_delta\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";exports.applyDelta=function(docLines,delta){var row=delta.start.row,startColumn=delta.start.column,line=docLines[row]||\\\"\\\";switch(delta.action){case\\\"insert\\\":var lines=delta.lines;if(1===lines.length)docLines[row]=line.substring(0,startColumn)+delta.lines[0]+line.substring(startColumn);else{var args=[row,1].concat(delta.lines);docLines.splice.apply(docLines,args),docLines[row]=line.substring(0,startColumn)+docLines[row],docLines[row+delta.lines.length-1]+=line.substring(startColumn)}break;case\\\"remove\\\":var endColumn=delta.end.column,endRow=delta.end.row;row===endRow?docLines[row]=line.substring(0,startColumn)+line.substring(endColumn):docLines.splice(row,endRow-row+1,line.substring(0,startColumn)+docLines[endRow].substring(endColumn))}}}),ace.define(\\\"ace/lib/event_emitter\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports){\\\"use strict\\\";var EventEmitter={},stopPropagation=function(){this.propagationStopped=!0},preventDefault=function(){this.defaultPrevented=!0};EventEmitter._emit=EventEmitter._dispatchEvent=function(eventName,e){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var listeners=this._eventRegistry[eventName]||[],defaultHandler=this._defaultHandlers[eventName];if(listeners.length||defaultHandler){\\\"object\\\"==typeof e&&e||(e={}),e.type||(e.type=eventName),e.stopPropagation||(e.stopPropagation=stopPropagation),e.preventDefault||(e.preventDefault=preventDefault),listeners=listeners.slice();for(var i=0;listeners.length>i&&(listeners[i](e,this),!e.propagationStopped);i++);return defaultHandler&&!e.defaultPrevented?defaultHandler(e,this):void 0}},EventEmitter._signal=function(eventName,e){var listeners=(this._eventRegistry||{})[eventName];if(listeners){listeners=listeners.slice();for(var i=0;listeners.length>i;i++)listeners[i](e,this)}},EventEmitter.once=function(eventName,callback){var _self=this;callback&&this.addEventListener(eventName,function newCallback(){_self.removeEventListener(eventName,newCallback),callback.apply(null,arguments)})},EventEmitter.setDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers||(handlers=this._defaultHandlers={_disabled_:{}}),handlers[eventName]){var old=handlers[eventName],disabled=handlers._disabled_[eventName];disabled||(handlers._disabled_[eventName]=disabled=[]),disabled.push(old);var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}handlers[eventName]=callback},EventEmitter.removeDefaultHandler=function(eventName,callback){var handlers=this._defaultHandlers;if(handlers){var disabled=handlers._disabled_[eventName];if(handlers[eventName]==callback)handlers[eventName],disabled&&this.setDefaultHandler(eventName,disabled.pop());else if(disabled){var i=disabled.indexOf(callback);-1!=i&&disabled.splice(i,1)}}},EventEmitter.on=EventEmitter.addEventListener=function(eventName,callback,capturing){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];return listeners||(listeners=this._eventRegistry[eventName]=[]),-1==listeners.indexOf(callback)&&listeners[capturing?\\\"unshift\\\":\\\"push\\\"](callback),callback},EventEmitter.off=EventEmitter.removeListener=EventEmitter.removeEventListener=function(eventName,callback){this._eventRegistry=this._eventRegistry||{};var listeners=this._eventRegistry[eventName];if(listeners){var index=listeners.indexOf(callback);-1!==index&&listeners.splice(index,1)}},EventEmitter.removeAllListeners=function(eventName){this._eventRegistry&&(this._eventRegistry[eventName]=[])},exports.EventEmitter=EventEmitter}),ace.define(\\\"ace/anchor\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/lib/event_emitter\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Anchor=exports.Anchor=function(doc,row,column){this.$onChange=this.onChange.bind(this),this.attach(doc),column===void 0?this.setPosition(row.row,row.column):this.setPosition(row,column)};(function(){function $pointsInOrder(point1,point2,equalPointsInOrder){var bColIsAfter=equalPointsInOrder?point1.column<=point2.column:point1.columnthis.row)){var point=$getTransformedPoint(delta,{row:this.row,column:this.column},this.$insertRight);this.setPosition(point.row,point.column,!0)}},this.setPosition=function(row,column,noClip){var pos;if(pos=noClip?{row:row,column:column}:this.$clipPositionToDocument(row,column),this.row!=pos.row||this.column!=pos.column){var old={row:this.row,column:this.column};this.row=pos.row,this.column=pos.column,this._signal(\\\"change\\\",{old:old,value:pos})}},this.detach=function(){this.document.removeEventListener(\\\"change\\\",this.$onChange)},this.attach=function(doc){this.document=doc||this.document,this.document.on(\\\"change\\\",this.$onChange)},this.$clipPositionToDocument=function(row,column){var pos={};return row>=this.document.getLength()?(pos.row=Math.max(0,this.document.getLength()-1),pos.column=this.document.getLine(pos.row).length):0>row?(pos.row=0,pos.column=0):(pos.row=row,pos.column=Math.min(this.document.getLine(pos.row).length,Math.max(0,column))),0>column&&(pos.column=0),pos}}).call(Anchor.prototype)}),ace.define(\\\"ace/document\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/lib/oop\\\",\\\"ace/apply_delta\\\",\\\"ace/lib/event_emitter\\\",\\\"ace/range\\\",\\\"ace/anchor\\\"],function(acequire,exports){\\\"use strict\\\";var oop=acequire(\\\"./lib/oop\\\"),applyDelta=acequire(\\\"./apply_delta\\\").applyDelta,EventEmitter=acequire(\\\"./lib/event_emitter\\\").EventEmitter,Range=acequire(\\\"./range\\\").Range,Anchor=acequire(\\\"./anchor\\\").Anchor,Document=function(textOrLines){this.$lines=[\\\"\\\"],0===textOrLines.length?this.$lines=[\\\"\\\"]:Array.isArray(textOrLines)?this.insertMergedLines({row:0,column:0},textOrLines):this.insert({row:0,column:0},textOrLines)};(function(){oop.implement(this,EventEmitter),this.setValue=function(text){var len=this.getLength()-1;this.remove(new Range(0,0,len,this.getLine(len).length)),this.insert({row:0,column:0},text)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(row,column){return new Anchor(this,row,column)},this.$split=0===\\\"aaa\\\".split(/a/).length?function(text){return text.replace(/\\\\r\\\\n|\\\\r/g,\\\"\\\\n\\\").split(\\\"\\\\n\\\")}:function(text){return text.split(/\\\\r\\\\n|\\\\r|\\\\n/)},this.$detectNewLine=function(text){var match=text.match(/^.*?(\\\\r\\\\n|\\\\r|\\\\n)/m);this.$autoNewLine=match?match[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(newLineMode){this.$newLineMode!==newLineMode&&(this.$newLineMode=newLineMode,this._signal(\\\"changeNewLineMode\\\"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(text){return\\\"\\\\r\\\\n\\\"==text||\\\"\\\\r\\\"==text||\\\"\\\\n\\\"==text},this.getLine=function(row){return this.$lines[row]||\\\"\\\"},this.getLines=function(firstRow,lastRow){return this.$lines.slice(firstRow,lastRow+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(range){return this.getLinesForRange(range).join(this.getNewLineCharacter())},this.getLinesForRange=function(range){var lines;if(range.start.row===range.end.row)lines=[this.getLine(range.start.row).substring(range.start.column,range.end.column)];else{lines=this.getLines(range.start.row,range.end.row),lines[0]=(lines[0]||\\\"\\\").substring(range.start.column);var l=lines.length-1;range.end.row-range.start.row==l&&(lines[l]=lines[l].substring(0,range.end.column))}return lines},this.insertLines=function(row,lines){return console.warn(\\\"Use of document.insertLines is deprecated. Use the insertFullLines method instead.\\\"),this.insertFullLines(row,lines)},this.removeLines=function(firstRow,lastRow){return console.warn(\\\"Use of document.removeLines is deprecated. Use the removeFullLines method instead.\\\"),this.removeFullLines(firstRow,lastRow)},this.insertNewLine=function(position){return console.warn(\\\"Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead.\\\"),this.insertMergedLines(position,[\\\"\\\",\\\"\\\"])},this.insert=function(position,text){return 1>=this.getLength()&&this.$detectNewLine(text),this.insertMergedLines(position,this.$split(text))},this.insertInLine=function(position,text){var start=this.clippedPos(position.row,position.column),end=this.pos(position.row,position.column+text.length);return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:[text]},!0),this.clonePos(end)},this.clippedPos=function(row,column){var length=this.getLength();void 0===row?row=length:0>row?row=0:row>=length&&(row=length-1,column=void 0);var line=this.getLine(row);return void 0==column&&(column=line.length),column=Math.min(Math.max(column,0),line.length),{row:row,column:column}},this.clonePos=function(pos){return{row:pos.row,column:pos.column}},this.pos=function(row,column){return{row:row,column:column}},this.$clipPosition=function(position){var length=this.getLength();return position.row>=length?(position.row=Math.max(0,length-1),position.column=this.getLine(length-1).length):(position.row=Math.max(0,position.row),position.column=Math.min(Math.max(position.column,0),this.getLine(position.row).length)),position},this.insertFullLines=function(row,lines){row=Math.min(Math.max(row,0),this.getLength());var column=0;this.getLength()>row?(lines=lines.concat([\\\"\\\"]),column=0):(lines=[\\\"\\\"].concat(lines),row--,column=this.$lines[row].length),this.insertMergedLines({row:row,column:column},lines)},this.insertMergedLines=function(position,lines){var start=this.clippedPos(position.row,position.column),end={row:start.row+lines.length-1,column:(1==lines.length?start.column:0)+lines[lines.length-1].length};return this.applyDelta({start:start,end:end,action:\\\"insert\\\",lines:lines}),this.clonePos(end)},this.remove=function(range){var start=this.clippedPos(range.start.row,range.start.column),end=this.clippedPos(range.end.row,range.end.column);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})}),this.clonePos(start)},this.removeInLine=function(row,startColumn,endColumn){var start=this.clippedPos(row,startColumn),end=this.clippedPos(row,endColumn);return this.applyDelta({start:start,end:end,action:\\\"remove\\\",lines:this.getLinesForRange({start:start,end:end})},!0),this.clonePos(start)},this.removeFullLines=function(firstRow,lastRow){firstRow=Math.min(Math.max(0,firstRow),this.getLength()-1),lastRow=Math.min(Math.max(0,lastRow),this.getLength()-1);var deleteFirstNewLine=lastRow==this.getLength()-1&&firstRow>0,deleteLastNewLine=this.getLength()-1>lastRow,startRow=deleteFirstNewLine?firstRow-1:firstRow,startCol=deleteFirstNewLine?this.getLine(startRow).length:0,endRow=deleteLastNewLine?lastRow+1:lastRow,endCol=deleteLastNewLine?0:this.getLine(endRow).length,range=new Range(startRow,startCol,endRow,endCol),deletedLines=this.$lines.slice(firstRow,lastRow+1);return this.applyDelta({start:range.start,end:range.end,action:\\\"remove\\\",lines:this.getLinesForRange(range)}),deletedLines},this.removeNewLine=function(row){this.getLength()-1>row&&row>=0&&this.applyDelta({start:this.pos(row,this.getLine(row).length),end:this.pos(row+1,0),action:\\\"remove\\\",lines:[\\\"\\\",\\\"\\\"]})},this.replace=function(range,text){if(range instanceof Range||(range=Range.fromPoints(range.start,range.end)),0===text.length&&range.isEmpty())return range.start;if(text==this.getTextRange(range))return range.end;this.remove(range);var end;return end=text?this.insert(range.start,text):range.start},this.applyDeltas=function(deltas){for(var i=0;deltas.length>i;i++)this.applyDelta(deltas[i])},this.revertDeltas=function(deltas){for(var i=deltas.length-1;i>=0;i--)this.revertDelta(deltas[i])},this.applyDelta=function(delta,doNotValidate){var isInsert=\\\"insert\\\"==delta.action;(isInsert?1>=delta.lines.length&&!delta.lines[0]:!Range.comparePoints(delta.start,delta.end))||(isInsert&&delta.lines.length>2e4&&this.$splitAndapplyLargeDelta(delta,2e4),applyDelta(this.$lines,delta,doNotValidate),this._signal(\\\"change\\\",delta))},this.$splitAndapplyLargeDelta=function(delta,MAX){for(var lines=delta.lines,l=lines.length,row=delta.start.row,column=delta.start.column,from=0,to=0;;){from=to,to+=MAX-1;var chunk=lines.slice(from,to);if(to>l){delta.lines=chunk,delta.start.row=row+from,delta.start.column=column;break}chunk.push(\\\"\\\"),this.applyDelta({start:this.pos(row+from,column),end:this.pos(row+to,column=0),action:delta.action,lines:chunk},!0)}},this.revertDelta=function(delta){this.applyDelta({start:this.clonePos(delta.start),end:this.clonePos(delta.end),action:\\\"insert\\\"==delta.action?\\\"remove\\\":\\\"insert\\\",lines:delta.lines.slice()})},this.indexToPosition=function(index,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,i=startRow||0,l=lines.length;l>i;i++)if(index-=lines[i].length+newlineLength,0>index)return{row:i,column:index+lines[i].length+newlineLength};return{row:l-1,column:lines[l-1].length}},this.positionToIndex=function(pos,startRow){for(var lines=this.$lines||this.getAllLines(),newlineLength=this.getNewLineCharacter().length,index=0,row=Math.min(pos.row,lines.length),i=startRow||0;row>i;++i)index+=lines[i].length+newlineLength;return index+pos.column}}).call(Document.prototype),exports.Document=Document}),ace.define(\\\"ace/worker/mirror\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\",\\\"ace/range\\\",\\\"ace/document\\\",\\\"ace/lib/lang\\\"],function(acequire,exports){\\\"use strict\\\";acequire(\\\"../range\\\").Range;var Document=acequire(\\\"../document\\\").Document,lang=acequire(\\\"../lib/lang\\\"),Mirror=exports.Mirror=function(sender){this.sender=sender;var doc=this.doc=new Document(\\\"\\\"),deferredUpdate=this.deferredUpdate=lang.delayedCall(this.onUpdate.bind(this)),_self=this;sender.on(\\\"change\\\",function(e){var data=e.data;if(data[0].start)doc.applyDeltas(data);else for(var i=0;data.length>i;i+=2){if(Array.isArray(data[i+1]))var d={action:\\\"insert\\\",start:data[i],lines:data[i+1]};else var d={action:\\\"remove\\\",start:data[i],end:data[i+1]};doc.applyDelta(d,!0)}return _self.$timeout?deferredUpdate.schedule(_self.$timeout):(_self.onUpdate(),void 0)})};(function(){this.$timeout=500,this.setTimeout=function(timeout){this.$timeout=timeout},this.setValue=function(value){this.doc.setValue(value),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(callbackId){this.sender.callback(this.doc.getValue(),callbackId)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(Mirror.prototype)}),ace.define(\\\"ace/mode/css/csslint\\\",[\\\"require\\\",\\\"exports\\\",\\\"module\\\"],function(acequire,exports,module){function objectToString(o){return Object.prototype.toString.call(o)}function clone(parent,circular,depth,prototype){function _clone(parent,depth){if(null===parent)return null;if(0==depth)return parent;var child;if(\\\"object\\\"!=typeof parent)return parent;if(util.isArray(parent))child=[];else if(util.isRegExp(parent))child=RegExp(parent.source,util.getRegExpFlags(parent)),parent.lastIndex&&(child.lastIndex=parent.lastIndex);else if(util.isDate(parent))child=new Date(parent.getTime());else{if(useBuffer&&Buffer.isBuffer(parent))return child=new Buffer(parent.length),parent.copy(child),child;child=prototype===void 0?Object.create(Object.getPrototypeOf(parent)):Object.create(prototype)}if(circular){var index=allParents.indexOf(parent);if(-1!=index)return allChildren[index];allParents.push(parent),allChildren.push(child)}for(var i in parent)child[i]=_clone(parent[i],depth-1);return child}var allParents=[],allChildren=[],useBuffer=\\\"undefined\\\"!=typeof Buffer;return circular===void 0&&(circular=!0),depth===void 0&&(depth=1/0),_clone(parent,depth)}function Reporter(lines,ruleset){this.messages=[],this.stats=[],this.lines=lines,this.ruleset=ruleset}var parserlib={};(function(){function EventTarget(){this._listeners={}}function StringReader(text){this._input=text.replace(/\\\\n\\\\r?/g,\\\"\\\\n\\\"),this._line=1,this._col=1,this._cursor=0}function SyntaxError(message,line,col){this.col=col,this.line=line,this.message=message}function SyntaxUnit(text,line,col,type){this.col=col,this.line=line,this.text=text,this.type=type}function TokenStreamBase(input,tokenData){this._reader=input?new StringReader(\\\"\\\"+input):null,this._token=null,this._tokenData=tokenData,this._lt=[],this._ltIndex=0,this._ltIndexCache=[]}EventTarget.prototype={constructor:EventTarget,addListener:function(type,listener){this._listeners[type]||(this._listeners[type]=[]),this._listeners[type].push(listener)},fire:function(event){if(\\\"string\\\"==typeof event&&(event={type:event}),event.target!==void 0&&(event.target=this),event.type===void 0)throw Error(\\\"Event object missing 'type' property.\\\");if(this._listeners[event.type])for(var listeners=this._listeners[event.type].concat(),i=0,len=listeners.length;len>i;i++)listeners[i].call(this,event)},removeListener:function(type,listener){if(this._listeners[type])for(var listeners=this._listeners[type],i=0,len=listeners.length;len>i;i++)if(listeners[i]===listener){listeners.splice(i,1);break}}},StringReader.prototype={constructor:StringReader,getCol:function(){return this._col},getLine:function(){return this._line},eof:function(){return this._cursor==this._input.length},peek:function(count){var c=null;return count=count===void 0?1:count,this._cursori;i++)nameMap.push(tokenData[i].name),tokenData[tokenData[i].name]=i,tokenData[i].text&&(typeMap[tokenData[i].text]=i);return tokenData.name=function(tt){return nameMap[tt]},tokenData.type=function(c){return typeMap[c]},tokenData},TokenStreamBase.prototype={constructor:TokenStreamBase,match:function(tokenTypes,channel){tokenTypes instanceof Array||(tokenTypes=[tokenTypes]);\\nfor(var tt=this.get(channel),i=0,len=tokenTypes.length;len>i;)if(tt==tokenTypes[i++])return!0;return this.unget(),!1},mustMatch:function(tokenTypes){var token;if(tokenTypes instanceof Array||(tokenTypes=[tokenTypes]),!this.match.apply(this,arguments))throw token=this.LT(1),new SyntaxError(\\\"Expected \\\"+this._tokenData[tokenTypes[0]].name+\\\" at line \\\"+token.startLine+\\\", col \\\"+token.startCol+\\\".\\\",token.startLine,token.startCol)},advance:function(tokenTypes,channel){for(;0!==this.LA(0)&&!this.match(tokenTypes,channel);)this.get();return this.LA(0)},get:function(channel){var token,info,tokenInfo=this._tokenData,i=(this._reader,0);if(tokenInfo.length,this._lt.length&&this._ltIndex>=0&&this._ltIndex-1&&!tokenInfo[token.type].hide&&(token.channel=tokenInfo[token.type].channel,this._token=token,this._lt.push(token),this._ltIndexCache.push(this._lt.length-this._ltIndex+i),this._lt.length>5&&this._lt.shift(),this._ltIndexCache.length>5&&this._ltIndexCache.shift(),this._ltIndex=this._lt.length),info=tokenInfo[token.type],info&&(info.hide||void 0!==info.channel&&channel!==info.channel)?this.get(channel):token.type},LA:function(index){var tt,total=index;if(index>0){if(index>5)throw Error(\\\"Too much lookahead.\\\");for(;total;)tt=this.get(),total--;for(;index>total;)this.unget(),total++}else if(0>index){if(!this._lt[this._ltIndex+index])throw Error(\\\"Too much lookbehind.\\\");tt=this._lt[this._ltIndex+index].type}else tt=this._token.type;return tt},LT:function(index){return this.LA(index),this._lt[this._ltIndex+index-1]},peek:function(){return this.LA(1)},token:function(){return this._token},tokenName:function(tokenType){return 0>tokenType||tokenType>this._tokenData.length?\\\"UNKNOWN_TOKEN\\\":this._tokenData[tokenType].name},tokenType:function(tokenName){return this._tokenData[tokenName]||-1},unget:function(){if(!this._ltIndexCache.length)throw Error(\\\"Too much lookahead.\\\");this._ltIndex-=this._ltIndexCache.pop(),this._token=this._lt[this._ltIndex-1]}},parserlib.util={StringReader:StringReader,SyntaxError:SyntaxError,SyntaxUnit:SyntaxUnit,EventTarget:EventTarget,TokenStreamBase:TokenStreamBase}})(),function(){function Combinator(text,line,col){SyntaxUnit.call(this,text,line,col,Parser.COMBINATOR_TYPE),this.type=\\\"unknown\\\",/^\\\\s+$/.test(text)?this.type=\\\"descendant\\\":\\\">\\\"==text?this.type=\\\"child\\\":\\\"+\\\"==text?this.type=\\\"adjacent-sibling\\\":\\\"~\\\"==text&&(this.type=\\\"sibling\\\")}function MediaFeature(name,value){SyntaxUnit.call(this,\\\"(\\\"+name+(null!==value?\\\":\\\"+value:\\\"\\\")+\\\")\\\",name.startLine,name.startCol,Parser.MEDIA_FEATURE_TYPE),this.name=name,this.value=value}function MediaQuery(modifier,mediaType,features,line,col){SyntaxUnit.call(this,(modifier?modifier+\\\" \\\":\\\"\\\")+(mediaType?mediaType:\\\"\\\")+(mediaType&&features.length>0?\\\" and \\\":\\\"\\\")+features.join(\\\" and \\\"),line,col,Parser.MEDIA_QUERY_TYPE),this.modifier=modifier,this.mediaType=mediaType,this.features=features}function Parser(options){EventTarget.call(this),this.options=options||{},this._tokenStream=null}function PropertyName(text,hack,line,col){SyntaxUnit.call(this,text,line,col,Parser.PROPERTY_NAME_TYPE),this.hack=hack}function PropertyValue(parts,line,col){SyntaxUnit.call(this,parts.join(\\\" \\\"),line,col,Parser.PROPERTY_VALUE_TYPE),this.parts=parts}function PropertyValueIterator(value){this._i=0,this._parts=value.parts,this._marks=[],this.value=value}function PropertyValuePart(text,line,col){SyntaxUnit.call(this,text,line,col,Parser.PROPERTY_VALUE_PART_TYPE),this.type=\\\"unknown\\\";var temp;if(/^([+\\\\-]?[\\\\d\\\\.]+)([a-z]+)$/i.test(text))switch(this.type=\\\"dimension\\\",this.value=+RegExp.$1,this.units=RegExp.$2,this.units.toLowerCase()){case\\\"em\\\":case\\\"rem\\\":case\\\"ex\\\":case\\\"px\\\":case\\\"cm\\\":case\\\"mm\\\":case\\\"in\\\":case\\\"pt\\\":case\\\"pc\\\":case\\\"ch\\\":case\\\"vh\\\":case\\\"vw\\\":case\\\"vmax\\\":case\\\"vmin\\\":this.type=\\\"length\\\";break;case\\\"deg\\\":case\\\"rad\\\":case\\\"grad\\\":this.type=\\\"angle\\\";break;case\\\"ms\\\":case\\\"s\\\":this.type=\\\"time\\\";break;case\\\"hz\\\":case\\\"khz\\\":this.type=\\\"frequency\\\";break;case\\\"dpi\\\":case\\\"dpcm\\\":this.type=\\\"resolution\\\"}else/^([+\\\\-]?[\\\\d\\\\.]+)%$/i.test(text)?(this.type=\\\"percentage\\\",this.value=+RegExp.$1):/^([+\\\\-]?\\\\d+)$/i.test(text)?(this.type=\\\"integer\\\",this.value=+RegExp.$1):/^([+\\\\-]?[\\\\d\\\\.]+)$/i.test(text)?(this.type=\\\"number\\\",this.value=+RegExp.$1):/^#([a-f0-9]{3,6})/i.test(text)?(this.type=\\\"color\\\",temp=RegExp.$1,3==temp.length?(this.red=parseInt(temp.charAt(0)+temp.charAt(0),16),this.green=parseInt(temp.charAt(1)+temp.charAt(1),16),this.blue=parseInt(temp.charAt(2)+temp.charAt(2),16)):(this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16))):/^rgb\\\\(\\\\s*(\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\s*\\\\)/i.test(text)?(this.type=\\\"color\\\",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3):/^rgb\\\\(\\\\s*(\\\\d+)%\\\\s*,\\\\s*(\\\\d+)%\\\\s*,\\\\s*(\\\\d+)%\\\\s*\\\\)/i.test(text)?(this.type=\\\"color\\\",this.red=255*+RegExp.$1/100,this.green=255*+RegExp.$2/100,this.blue=255*+RegExp.$3/100):/^rgba\\\\(\\\\s*(\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\s*,\\\\s*(\\\\d+)\\\\s*,\\\\s*([\\\\d\\\\.]+)\\\\s*\\\\)/i.test(text)?(this.type=\\\"color\\\",this.red=+RegExp.$1,this.green=+RegExp.$2,this.blue=+RegExp.$3,this.alpha=+RegExp.$4):/^rgba\\\\(\\\\s*(\\\\d+)%\\\\s*,\\\\s*(\\\\d+)%\\\\s*,\\\\s*(\\\\d+)%\\\\s*,\\\\s*([\\\\d\\\\.]+)\\\\s*\\\\)/i.test(text)?(this.type=\\\"color\\\",this.red=255*+RegExp.$1/100,this.green=255*+RegExp.$2/100,this.blue=255*+RegExp.$3/100,this.alpha=+RegExp.$4):/^hsl\\\\(\\\\s*(\\\\d+)\\\\s*,\\\\s*(\\\\d+)%\\\\s*,\\\\s*(\\\\d+)%\\\\s*\\\\)/i.test(text)?(this.type=\\\"color\\\",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100):/^hsla\\\\(\\\\s*(\\\\d+)\\\\s*,\\\\s*(\\\\d+)%\\\\s*,\\\\s*(\\\\d+)%\\\\s*,\\\\s*([\\\\d\\\\.]+)\\\\s*\\\\)/i.test(text)?(this.type=\\\"color\\\",this.hue=+RegExp.$1,this.saturation=+RegExp.$2/100,this.lightness=+RegExp.$3/100,this.alpha=+RegExp.$4):/^url\\\\([\\\"']?([^\\\\)\\\"']+)[\\\"']?\\\\)/i.test(text)?(this.type=\\\"uri\\\",this.uri=RegExp.$1):/^([^\\\\(]+)\\\\(/i.test(text)?(this.type=\\\"function\\\",this.name=RegExp.$1,this.value=text):/^[\\\"'][^\\\"']*[\\\"']/.test(text)?(this.type=\\\"string\\\",this.value=eval(text)):Colors[text.toLowerCase()]?(this.type=\\\"color\\\",temp=Colors[text.toLowerCase()].substring(1),this.red=parseInt(temp.substring(0,2),16),this.green=parseInt(temp.substring(2,4),16),this.blue=parseInt(temp.substring(4,6),16)):/^[\\\\,\\\\/]$/.test(text)?(this.type=\\\"operator\\\",this.value=text):/^[a-z\\\\-_\\\\u0080-\\\\uFFFF][a-z0-9\\\\-_\\\\u0080-\\\\uFFFF]*$/i.test(text)&&(this.type=\\\"identifier\\\",this.value=text)}function Selector(parts,line,col){SyntaxUnit.call(this,parts.join(\\\" \\\"),line,col,Parser.SELECTOR_TYPE),this.parts=parts,this.specificity=Specificity.calculate(this)}function SelectorPart(elementName,modifiers,text,line,col){SyntaxUnit.call(this,text,line,col,Parser.SELECTOR_PART_TYPE),this.elementName=elementName,this.modifiers=modifiers}function SelectorSubPart(text,type,line,col){SyntaxUnit.call(this,text,line,col,Parser.SELECTOR_SUB_PART_TYPE),this.type=type,this.args=[]}function Specificity(a,b,c,d){this.a=a,this.b=b,this.c=c,this.d=d}function isHexDigit(c){return null!==c&&h.test(c)}function isDigit(c){return null!==c&&/\\\\d/.test(c)}function isWhitespace(c){return null!==c&&/\\\\s/.test(c)}function isNewLine(c){return null!==c&&nl.test(c)}function isNameStart(c){return null!==c&&/[a-z_\\\\u0080-\\\\uFFFF\\\\\\\\]/i.test(c)}function isNameChar(c){return null!==c&&(isNameStart(c)||/[0-9\\\\-\\\\\\\\]/.test(c))}function isIdentStart(c){return null!==c&&(isNameStart(c)||/\\\\-\\\\\\\\/.test(c))}function mix(receiver,supplier){for(var prop in supplier)supplier.hasOwnProperty(prop)&&(receiver[prop]=supplier[prop]);return receiver}function TokenStream(input){TokenStreamBase.call(this,input,Tokens)}function ValidationError(message,line,col){this.col=col,this.line=line,this.message=message}var EventTarget=parserlib.util.EventTarget,TokenStreamBase=parserlib.util.TokenStreamBase,StringReader=parserlib.util.StringReader,SyntaxError=parserlib.util.SyntaxError,SyntaxUnit=parserlib.util.SyntaxUnit,Colors={aliceblue:\\\"#f0f8ff\\\",antiquewhite:\\\"#faebd7\\\",aqua:\\\"#00ffff\\\",aquamarine:\\\"#7fffd4\\\",azure:\\\"#f0ffff\\\",beige:\\\"#f5f5dc\\\",bisque:\\\"#ffe4c4\\\",black:\\\"#000000\\\",blanchedalmond:\\\"#ffebcd\\\",blue:\\\"#0000ff\\\",blueviolet:\\\"#8a2be2\\\",brown:\\\"#a52a2a\\\",burlywood:\\\"#deb887\\\",cadetblue:\\\"#5f9ea0\\\",chartreuse:\\\"#7fff00\\\",chocolate:\\\"#d2691e\\\",coral:\\\"#ff7f50\\\",cornflowerblue:\\\"#6495ed\\\",cornsilk:\\\"#fff8dc\\\",crimson:\\\"#dc143c\\\",cyan:\\\"#00ffff\\\",darkblue:\\\"#00008b\\\",darkcyan:\\\"#008b8b\\\",darkgoldenrod:\\\"#b8860b\\\",darkgray:\\\"#a9a9a9\\\",darkgrey:\\\"#a9a9a9\\\",darkgreen:\\\"#006400\\\",darkkhaki:\\\"#bdb76b\\\",darkmagenta:\\\"#8b008b\\\",darkolivegreen:\\\"#556b2f\\\",darkorange:\\\"#ff8c00\\\",darkorchid:\\\"#9932cc\\\",darkred:\\\"#8b0000\\\",darksalmon:\\\"#e9967a\\\",darkseagreen:\\\"#8fbc8f\\\",darkslateblue:\\\"#483d8b\\\",darkslategray:\\\"#2f4f4f\\\",darkslategrey:\\\"#2f4f4f\\\",darkturquoise:\\\"#00ced1\\\",darkviolet:\\\"#9400d3\\\",deeppink:\\\"#ff1493\\\",deepskyblue:\\\"#00bfff\\\",dimgray:\\\"#696969\\\",dimgrey:\\\"#696969\\\",dodgerblue:\\\"#1e90ff\\\",firebrick:\\\"#b22222\\\",floralwhite:\\\"#fffaf0\\\",forestgreen:\\\"#228b22\\\",fuchsia:\\\"#ff00ff\\\",gainsboro:\\\"#dcdcdc\\\",ghostwhite:\\\"#f8f8ff\\\",gold:\\\"#ffd700\\\",goldenrod:\\\"#daa520\\\",gray:\\\"#808080\\\",grey:\\\"#808080\\\",green:\\\"#008000\\\",greenyellow:\\\"#adff2f\\\",honeydew:\\\"#f0fff0\\\",hotpink:\\\"#ff69b4\\\",indianred:\\\"#cd5c5c\\\",indigo:\\\"#4b0082\\\",ivory:\\\"#fffff0\\\",khaki:\\\"#f0e68c\\\",lavender:\\\"#e6e6fa\\\",lavenderblush:\\\"#fff0f5\\\",lawngreen:\\\"#7cfc00\\\",lemonchiffon:\\\"#fffacd\\\",lightblue:\\\"#add8e6\\\",lightcoral:\\\"#f08080\\\",lightcyan:\\\"#e0ffff\\\",lightgoldenrodyellow:\\\"#fafad2\\\",lightgray:\\\"#d3d3d3\\\",lightgrey:\\\"#d3d3d3\\\",lightgreen:\\\"#90ee90\\\",lightpink:\\\"#ffb6c1\\\",lightsalmon:\\\"#ffa07a\\\",lightseagreen:\\\"#20b2aa\\\",lightskyblue:\\\"#87cefa\\\",lightslategray:\\\"#778899\\\",lightslategrey:\\\"#778899\\\",lightsteelblue:\\\"#b0c4de\\\",lightyellow:\\\"#ffffe0\\\",lime:\\\"#00ff00\\\",limegreen:\\\"#32cd32\\\",linen:\\\"#faf0e6\\\",magenta:\\\"#ff00ff\\\",maroon:\\\"#800000\\\",mediumaquamarine:\\\"#66cdaa\\\",mediumblue:\\\"#0000cd\\\",mediumorchid:\\\"#ba55d3\\\",mediumpurple:\\\"#9370d8\\\",mediumseagreen:\\\"#3cb371\\\",mediumslateblue:\\\"#7b68ee\\\",mediumspringgreen:\\\"#00fa9a\\\",mediumturquoise:\\\"#48d1cc\\\",mediumvioletred:\\\"#c71585\\\",midnightblue:\\\"#191970\\\",mintcream:\\\"#f5fffa\\\",mistyrose:\\\"#ffe4e1\\\",moccasin:\\\"#ffe4b5\\\",navajowhite:\\\"#ffdead\\\",navy:\\\"#000080\\\",oldlace:\\\"#fdf5e6\\\",olive:\\\"#808000\\\",olivedrab:\\\"#6b8e23\\\",orange:\\\"#ffa500\\\",orangered:\\\"#ff4500\\\",orchid:\\\"#da70d6\\\",palegoldenrod:\\\"#eee8aa\\\",palegreen:\\\"#98fb98\\\",paleturquoise:\\\"#afeeee\\\",palevioletred:\\\"#d87093\\\",papayawhip:\\\"#ffefd5\\\",peachpuff:\\\"#ffdab9\\\",peru:\\\"#cd853f\\\",pink:\\\"#ffc0cb\\\",plum:\\\"#dda0dd\\\",powderblue:\\\"#b0e0e6\\\",purple:\\\"#800080\\\",red:\\\"#ff0000\\\",rosybrown:\\\"#bc8f8f\\\",royalblue:\\\"#4169e1\\\",saddlebrown:\\\"#8b4513\\\",salmon:\\\"#fa8072\\\",sandybrown:\\\"#f4a460\\\",seagreen:\\\"#2e8b57\\\",seashell:\\\"#fff5ee\\\",sienna:\\\"#a0522d\\\",silver:\\\"#c0c0c0\\\",skyblue:\\\"#87ceeb\\\",slateblue:\\\"#6a5acd\\\",slategray:\\\"#708090\\\",slategrey:\\\"#708090\\\",snow:\\\"#fffafa\\\",springgreen:\\\"#00ff7f\\\",steelblue:\\\"#4682b4\\\",tan:\\\"#d2b48c\\\",teal:\\\"#008080\\\",thistle:\\\"#d8bfd8\\\",tomato:\\\"#ff6347\\\",turquoise:\\\"#40e0d0\\\",violet:\\\"#ee82ee\\\",wheat:\\\"#f5deb3\\\",white:\\\"#ffffff\\\",whitesmoke:\\\"#f5f5f5\\\",yellow:\\\"#ffff00\\\",yellowgreen:\\\"#9acd32\\\",activeBorder:\\\"Active window border.\\\",activecaption:\\\"Active window caption.\\\",appworkspace:\\\"Background color of multiple document interface.\\\",background:\\\"Desktop background.\\\",buttonface:\\\"The face background color for 3-D elements that appear 3-D due to one layer of surrounding border.\\\",buttonhighlight:\\\"The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.\\\",buttonshadow:\\\"The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.\\\",buttontext:\\\"Text on push buttons.\\\",captiontext:\\\"Text in caption, size box, and scrollbar arrow box.\\\",graytext:\\\"Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.\\\",greytext:\\\"Greyed (disabled) text. This color is set to #000 if the current display driver does not support a solid grey color.\\\",highlight:\\\"Item(s) selected in a control.\\\",highlighttext:\\\"Text of item(s) selected in a control.\\\",inactiveborder:\\\"Inactive window border.\\\",inactivecaption:\\\"Inactive window caption.\\\",inactivecaptiontext:\\\"Color of text in an inactive caption.\\\",infobackground:\\\"Background color for tooltip controls.\\\",infotext:\\\"Text color for tooltip controls.\\\",menu:\\\"Menu background.\\\",menutext:\\\"Text in menus.\\\",scrollbar:\\\"Scroll bar gray area.\\\",threeddarkshadow:\\\"The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\\\",threedface:\\\"The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\\\",threedhighlight:\\\"The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\\\",threedlightshadow:\\\"The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\\\",threedshadow:\\\"The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.\\\",window:\\\"Window background.\\\",windowframe:\\\"Window frame.\\\",windowtext:\\\"Text in windows.\\\"};Combinator.prototype=new SyntaxUnit,Combinator.prototype.constructor=Combinator,MediaFeature.prototype=new SyntaxUnit,MediaFeature.prototype.constructor=MediaFeature,MediaQuery.prototype=new SyntaxUnit,MediaQuery.prototype.constructor=MediaQuery,Parser.DEFAULT_TYPE=0,Parser.COMBINATOR_TYPE=1,Parser.MEDIA_FEATURE_TYPE=2,Parser.MEDIA_QUERY_TYPE=3,Parser.PROPERTY_NAME_TYPE=4,Parser.PROPERTY_VALUE_TYPE=5,Parser.PROPERTY_VALUE_PART_TYPE=6,Parser.SELECTOR_TYPE=7,Parser.SELECTOR_PART_TYPE=8,Parser.SELECTOR_SUB_PART_TYPE=9,Parser.prototype=function(){var prop,proto=new EventTarget,additions={constructor:Parser,DEFAULT_TYPE:0,COMBINATOR_TYPE:1,MEDIA_FEATURE_TYPE:2,MEDIA_QUERY_TYPE:3,PROPERTY_NAME_TYPE:4,PROPERTY_VALUE_TYPE:5,PROPERTY_VALUE_PART_TYPE:6,SELECTOR_TYPE:7,SELECTOR_PART_TYPE:8,SELECTOR_SUB_PART_TYPE:9,_stylesheet:function(){var count,token,tt,tokenStream=this._tokenStream;for(this.fire(\\\"startstylesheet\\\"),this._charset(),this._skipCruft();tokenStream.peek()==Tokens.IMPORT_SYM;)this._import(),this._skipCruft();for(;tokenStream.peek()==Tokens.NAMESPACE_SYM;)this._namespace(),this._skipCruft();for(tt=tokenStream.peek();tt>Tokens.EOF;){try{switch(tt){case Tokens.MEDIA_SYM:this._media(),this._skipCruft();break;case Tokens.PAGE_SYM:this._page(),this._skipCruft();break;case Tokens.FONT_FACE_SYM:this._font_face(),this._skipCruft();break;case Tokens.KEYFRAMES_SYM:this._keyframes(),this._skipCruft();break;case Tokens.VIEWPORT_SYM:this._viewport(),this._skipCruft();break;case Tokens.UNKNOWN_SYM:if(tokenStream.get(),this.options.strict)throw new SyntaxError(\\\"Unknown @ rule.\\\",tokenStream.LT(0).startLine,tokenStream.LT(0).startCol);for(this.fire({type:\\\"error\\\",error:null,message:\\\"Unknown @ rule: \\\"+tokenStream.LT(0).value+\\\".\\\",line:tokenStream.LT(0).startLine,col:tokenStream.LT(0).startCol}),count=0;tokenStream.advance([Tokens.LBRACE,Tokens.RBRACE])==Tokens.LBRACE;)count++;for(;count;)tokenStream.advance([Tokens.RBRACE]),count--;break;case Tokens.S:this._readWhitespace();break;default:if(!this._ruleset())switch(tt){case Tokens.CHARSET_SYM:throw token=tokenStream.LT(1),this._charset(!1),new SyntaxError(\\\"@charset not allowed here.\\\",token.startLine,token.startCol);case Tokens.IMPORT_SYM:throw token=tokenStream.LT(1),this._import(!1),new SyntaxError(\\\"@import not allowed here.\\\",token.startLine,token.startCol);case Tokens.NAMESPACE_SYM:throw token=tokenStream.LT(1),this._namespace(!1),new SyntaxError(\\\"@namespace not allowed here.\\\",token.startLine,token.startCol);default:tokenStream.get(),this._unexpectedToken(tokenStream.token())}}}catch(ex){if(!(ex instanceof SyntaxError)||this.options.strict)throw ex;this.fire({type:\\\"error\\\",error:ex,message:ex.message,line:ex.line,col:ex.col})}tt=tokenStream.peek()}tt!=Tokens.EOF&&this._unexpectedToken(tokenStream.token()),this.fire(\\\"endstylesheet\\\")},_charset:function(emit){var charset,token,line,col,tokenStream=this._tokenStream;tokenStream.match(Tokens.CHARSET_SYM)&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),tokenStream.mustMatch(Tokens.STRING),token=tokenStream.token(),charset=token.value,this._readWhitespace(),tokenStream.mustMatch(Tokens.SEMICOLON),emit!==!1&&this.fire({type:\\\"charset\\\",charset:charset,line:line,col:col}))},_import:function(emit){var uri,importToken,tokenStream=this._tokenStream,mediaList=[];tokenStream.mustMatch(Tokens.IMPORT_SYM),importToken=tokenStream.token(),this._readWhitespace(),tokenStream.mustMatch([Tokens.STRING,Tokens.URI]),uri=tokenStream.token().value.replace(/^(?:url\\\\()?[\\\"']?([^\\\"']+?)[\\\"']?\\\\)?$/,\\\"$1\\\"),this._readWhitespace(),mediaList=this._media_query_list(),tokenStream.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),emit!==!1&&this.fire({type:\\\"import\\\",uri:uri,media:mediaList,line:importToken.startLine,col:importToken.startCol})},_namespace:function(emit){var line,col,prefix,uri,tokenStream=this._tokenStream;tokenStream.mustMatch(Tokens.NAMESPACE_SYM),line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),tokenStream.match(Tokens.IDENT)&&(prefix=tokenStream.token().value,this._readWhitespace()),tokenStream.mustMatch([Tokens.STRING,Tokens.URI]),uri=tokenStream.token().value.replace(/(?:url\\\\()?[\\\"']([^\\\"']+)[\\\"']\\\\)?/,\\\"$1\\\"),this._readWhitespace(),tokenStream.mustMatch(Tokens.SEMICOLON),this._readWhitespace(),emit!==!1&&this.fire({type:\\\"namespace\\\",prefix:prefix,uri:uri,line:line,col:col})},_media:function(){var line,col,mediaList,tokenStream=this._tokenStream;for(tokenStream.mustMatch(Tokens.MEDIA_SYM),line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),mediaList=this._media_query_list(),tokenStream.mustMatch(Tokens.LBRACE),this._readWhitespace(),this.fire({type:\\\"startmedia\\\",media:mediaList,line:line,col:col});;)if(tokenStream.peek()==Tokens.PAGE_SYM)this._page();else if(tokenStream.peek()==Tokens.FONT_FACE_SYM)this._font_face();else if(tokenStream.peek()==Tokens.VIEWPORT_SYM)this._viewport();else if(!this._ruleset())break;tokenStream.mustMatch(Tokens.RBRACE),this._readWhitespace(),this.fire({type:\\\"endmedia\\\",media:mediaList,line:line,col:col})},_media_query_list:function(){var tokenStream=this._tokenStream,mediaList=[];for(this._readWhitespace(),(tokenStream.peek()==Tokens.IDENT||tokenStream.peek()==Tokens.LPAREN)&&mediaList.push(this._media_query());tokenStream.match(Tokens.COMMA);)this._readWhitespace(),mediaList.push(this._media_query());return mediaList},_media_query:function(){var tokenStream=this._tokenStream,type=null,ident=null,token=null,expressions=[];if(tokenStream.match(Tokens.IDENT)&&(ident=tokenStream.token().value.toLowerCase(),\\\"only\\\"!=ident&&\\\"not\\\"!=ident?(tokenStream.unget(),ident=null):token=tokenStream.token()),this._readWhitespace(),tokenStream.peek()==Tokens.IDENT?(type=this._media_type(),null===token&&(token=tokenStream.token())):tokenStream.peek()==Tokens.LPAREN&&(null===token&&(token=tokenStream.LT(1)),expressions.push(this._media_expression())),null===type&&0===expressions.length)return null;for(this._readWhitespace();tokenStream.match(Tokens.IDENT);)\\\"and\\\"!=tokenStream.token().value.toLowerCase()&&this._unexpectedToken(tokenStream.token()),this._readWhitespace(),expressions.push(this._media_expression());return new MediaQuery(ident,type,expressions,token.startLine,token.startCol)},_media_type:function(){return this._media_feature()},_media_expression:function(){var token,tokenStream=this._tokenStream,feature=null,expression=null;return tokenStream.mustMatch(Tokens.LPAREN),this._readWhitespace(),feature=this._media_feature(),this._readWhitespace(),tokenStream.match(Tokens.COLON)&&(this._readWhitespace(),token=tokenStream.LT(1),expression=this._expression()),tokenStream.mustMatch(Tokens.RPAREN),this._readWhitespace(),new MediaFeature(feature,expression?new SyntaxUnit(expression,token.startLine,token.startCol):null)},_media_feature:function(){var tokenStream=this._tokenStream;return tokenStream.mustMatch(Tokens.IDENT),SyntaxUnit.fromToken(tokenStream.token())},_page:function(){var line,col,tokenStream=this._tokenStream,identifier=null,pseudoPage=null;tokenStream.mustMatch(Tokens.PAGE_SYM),line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),tokenStream.match(Tokens.IDENT)&&(identifier=tokenStream.token().value,\\\"auto\\\"===identifier.toLowerCase()&&this._unexpectedToken(tokenStream.token())),tokenStream.peek()==Tokens.COLON&&(pseudoPage=this._pseudo_page()),this._readWhitespace(),this.fire({type:\\\"startpage\\\",id:identifier,pseudo:pseudoPage,line:line,col:col}),this._readDeclarations(!0,!0),this.fire({type:\\\"endpage\\\",id:identifier,pseudo:pseudoPage,line:line,col:col})},_margin:function(){var line,col,tokenStream=this._tokenStream,marginSym=this._margin_sym();return marginSym?(line=tokenStream.token().startLine,col=tokenStream.token().startCol,this.fire({type:\\\"startpagemargin\\\",margin:marginSym,line:line,col:col}),this._readDeclarations(!0),this.fire({type:\\\"endpagemargin\\\",margin:marginSym,line:line,col:col}),!0):!1},_margin_sym:function(){var tokenStream=this._tokenStream;return tokenStream.match([Tokens.TOPLEFTCORNER_SYM,Tokens.TOPLEFT_SYM,Tokens.TOPCENTER_SYM,Tokens.TOPRIGHT_SYM,Tokens.TOPRIGHTCORNER_SYM,Tokens.BOTTOMLEFTCORNER_SYM,Tokens.BOTTOMLEFT_SYM,Tokens.BOTTOMCENTER_SYM,Tokens.BOTTOMRIGHT_SYM,Tokens.BOTTOMRIGHTCORNER_SYM,Tokens.LEFTTOP_SYM,Tokens.LEFTMIDDLE_SYM,Tokens.LEFTBOTTOM_SYM,Tokens.RIGHTTOP_SYM,Tokens.RIGHTMIDDLE_SYM,Tokens.RIGHTBOTTOM_SYM])?SyntaxUnit.fromToken(tokenStream.token()):null},_pseudo_page:function(){var tokenStream=this._tokenStream;return tokenStream.mustMatch(Tokens.COLON),tokenStream.mustMatch(Tokens.IDENT),tokenStream.token().value},_font_face:function(){var line,col,tokenStream=this._tokenStream;tokenStream.mustMatch(Tokens.FONT_FACE_SYM),line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),this.fire({type:\\\"startfontface\\\",line:line,col:col}),this._readDeclarations(!0),this.fire({type:\\\"endfontface\\\",line:line,col:col})},_viewport:function(){var line,col,tokenStream=this._tokenStream;tokenStream.mustMatch(Tokens.VIEWPORT_SYM),line=tokenStream.token().startLine,col=tokenStream.token().startCol,this._readWhitespace(),this.fire({type:\\\"startviewport\\\",line:line,col:col}),this._readDeclarations(!0),this.fire({type:\\\"endviewport\\\",line:line,col:col})},_operator:function(inFunction){var tokenStream=this._tokenStream,token=null;return(tokenStream.match([Tokens.SLASH,Tokens.COMMA])||inFunction&&tokenStream.match([Tokens.PLUS,Tokens.STAR,Tokens.MINUS]))&&(token=tokenStream.token(),this._readWhitespace()),token?PropertyValuePart.fromToken(token):null},_combinator:function(){var token,tokenStream=this._tokenStream,value=null;return tokenStream.match([Tokens.PLUS,Tokens.GREATER,Tokens.TILDE])&&(token=tokenStream.token(),value=new Combinator(token.value,token.startLine,token.startCol),this._readWhitespace()),value},_unary_operator:function(){var tokenStream=this._tokenStream;return tokenStream.match([Tokens.MINUS,Tokens.PLUS])?tokenStream.token().value:null},_property:function(){var tokenValue,token,line,col,tokenStream=this._tokenStream,value=null,hack=null;return tokenStream.peek()==Tokens.STAR&&this.options.starHack&&(tokenStream.get(),token=tokenStream.token(),hack=token.value,line=token.startLine,col=token.startCol),tokenStream.match(Tokens.IDENT)&&(token=tokenStream.token(),tokenValue=token.value,\\\"_\\\"==tokenValue.charAt(0)&&this.options.underscoreHack&&(hack=\\\"_\\\",tokenValue=tokenValue.substring(1)),value=new PropertyName(tokenValue,hack,line||token.startLine,col||token.startCol),this._readWhitespace()),value},_ruleset:function(){var tt,selectors,tokenStream=this._tokenStream;try{selectors=this._selectors_group()}catch(ex){if(!(ex instanceof SyntaxError)||this.options.strict)throw ex;if(this.fire({type:\\\"error\\\",error:ex,message:ex.message,line:ex.line,col:ex.col}),tt=tokenStream.advance([Tokens.RBRACE]),tt!=Tokens.RBRACE)throw ex;return!0}return selectors&&(this.fire({type:\\\"startrule\\\",selectors:selectors,line:selectors[0].line,col:selectors[0].col}),this._readDeclarations(!0),this.fire({type:\\\"endrule\\\",selectors:selectors,line:selectors[0].line,col:selectors[0].col})),selectors},_selectors_group:function(){var selector,tokenStream=this._tokenStream,selectors=[];if(selector=this._selector(),null!==selector)for(selectors.push(selector);tokenStream.match(Tokens.COMMA);)this._readWhitespace(),selector=this._selector(),null!==selector?selectors.push(selector):this._unexpectedToken(tokenStream.LT(1));return selectors.length?selectors:null},_selector:function(){var tokenStream=this._tokenStream,selector=[],nextSelector=null,combinator=null,ws=null;if(nextSelector=this._simple_selector_sequence(),null===nextSelector)return null;for(selector.push(nextSelector);;)if(combinator=this._combinator(),null!==combinator)selector.push(combinator),nextSelector=this._simple_selector_sequence(),null===nextSelector?this._unexpectedToken(tokenStream.LT(1)):selector.push(nextSelector);else{if(!this._readWhitespace())break;ws=new Combinator(tokenStream.token().value,tokenStream.token().startLine,tokenStream.token().startCol),combinator=this._combinator(),nextSelector=this._simple_selector_sequence(),null===nextSelector?null!==combinator&&this._unexpectedToken(tokenStream.LT(1)):(null!==combinator?selector.push(combinator):selector.push(ws),selector.push(nextSelector))}return new Selector(selector,selector[0].line,selector[0].col)},_simple_selector_sequence:function(){var line,col,tokenStream=this._tokenStream,elementName=null,modifiers=[],selectorText=\\\"\\\",components=[function(){return tokenStream.match(Tokens.HASH)?new SelectorSubPart(tokenStream.token().value,\\\"id\\\",tokenStream.token().startLine,tokenStream.token().startCol):null},this._class,this._attrib,this._pseudo,this._negation],i=0,len=components.length,component=null;for(line=tokenStream.LT(1).startLine,col=tokenStream.LT(1).startCol,elementName=this._type_selector(),elementName||(elementName=this._universal()),null!==elementName&&(selectorText+=elementName);;){if(tokenStream.peek()===Tokens.S)break;for(;len>i&&null===component;)component=components[i++].call(this);if(null===component){if(\\\"\\\"===selectorText)return null;break}i=0,modifiers.push(component),selectorText+=\\\"\\\"+component,component=null}return\\\"\\\"!==selectorText?new SelectorPart(elementName,modifiers,selectorText,line,col):null},_type_selector:function(){var tokenStream=this._tokenStream,ns=this._namespace_prefix(),elementName=this._element_name();return elementName?(ns&&(elementName.text=ns+elementName.text,elementName.col-=ns.length),elementName):(ns&&(tokenStream.unget(),ns.length>1&&tokenStream.unget()),null)},_class:function(){var token,tokenStream=this._tokenStream;return tokenStream.match(Tokens.DOT)?(tokenStream.mustMatch(Tokens.IDENT),token=tokenStream.token(),new SelectorSubPart(\\\".\\\"+token.value,\\\"class\\\",token.startLine,token.startCol-1)):null},_element_name:function(){var token,tokenStream=this._tokenStream;return tokenStream.match(Tokens.IDENT)?(token=tokenStream.token(),new SelectorSubPart(token.value,\\\"elementName\\\",token.startLine,token.startCol)):null},_namespace_prefix:function(){var tokenStream=this._tokenStream,value=\\\"\\\";return(tokenStream.LA(1)===Tokens.PIPE||tokenStream.LA(2)===Tokens.PIPE)&&(tokenStream.match([Tokens.IDENT,Tokens.STAR])&&(value+=tokenStream.token().value),tokenStream.mustMatch(Tokens.PIPE),value+=\\\"|\\\"),value.length?value:null},_universal:function(){var ns,tokenStream=this._tokenStream,value=\\\"\\\";return ns=this._namespace_prefix(),ns&&(value+=ns),tokenStream.match(Tokens.STAR)&&(value+=\\\"*\\\"),value.length?value:null},_attrib:function(){var ns,token,tokenStream=this._tokenStream,value=null;return tokenStream.match(Tokens.LBRACKET)?(token=tokenStream.token(),value=token.value,value+=this._readWhitespace(),ns=this._namespace_prefix(),ns&&(value+=ns),tokenStream.mustMatch(Tokens.IDENT),value+=tokenStream.token().value,value+=this._readWhitespace(),tokenStream.match([Tokens.PREFIXMATCH,Tokens.SUFFIXMATCH,Tokens.SUBSTRINGMATCH,Tokens.EQUALS,Tokens.INCLUDES,Tokens.DASHMATCH])&&(value+=tokenStream.token().value,value+=this._readWhitespace(),tokenStream.mustMatch([Tokens.IDENT,Tokens.STRING]),value+=tokenStream.token().value,value+=this._readWhitespace()),tokenStream.mustMatch(Tokens.RBRACKET),new SelectorSubPart(value+\\\"]\\\",\\\"attribute\\\",token.startLine,token.startCol)):null},_pseudo:function(){var line,col,tokenStream=this._tokenStream,pseudo=null,colons=\\\":\\\";return tokenStream.match(Tokens.COLON)&&(tokenStream.match(Tokens.COLON)&&(colons+=\\\":\\\"),tokenStream.match(Tokens.IDENT)?(pseudo=tokenStream.token().value,line=tokenStream.token().startLine,col=tokenStream.token().startCol-colons.length):tokenStream.peek()==Tokens.FUNCTION&&(line=tokenStream.LT(1).startLine,col=tokenStream.LT(1).startCol-colons.length,pseudo=this._functional_pseudo()),pseudo&&(pseudo=new SelectorSubPart(colons+pseudo,\\\"pseudo\\\",line,col))),pseudo},_functional_pseudo:function(){var tokenStream=this._tokenStream,value=null;return tokenStream.match(Tokens.FUNCTION)&&(value=tokenStream.token().value,value+=this._readWhitespace(),value+=this._expression(),tokenStream.mustMatch(Tokens.RPAREN),value+=\\\")\\\"),value},_expression:function(){for(var tokenStream=this._tokenStream,value=\\\"\\\";tokenStream.match([Tokens.PLUS,Tokens.MINUS,Tokens.DIMENSION,Tokens.NUMBER,Tokens.STRING,Tokens.IDENT,Tokens.LENGTH,Tokens.FREQ,Tokens.ANGLE,Tokens.TIME,Tokens.RESOLUTION,Tokens.SLASH]);)value+=tokenStream.token().value,value+=this._readWhitespace();return value.length?value:null},_negation:function(){var line,col,arg,tokenStream=this._tokenStream,value=\\\"\\\",subpart=null;return tokenStream.match(Tokens.NOT)&&(value=tokenStream.token().value,line=tokenStream.token().startLine,col=tokenStream.token().startCol,value+=this._readWhitespace(),arg=this._negation_arg(),value+=arg,value+=this._readWhitespace(),tokenStream.match(Tokens.RPAREN),value+=tokenStream.token().value,subpart=new SelectorSubPart(value,\\\"not\\\",line,col),subpart.args.push(arg)),subpart},_negation_arg:function(){var line,col,part,tokenStream=this._tokenStream,args=[this._type_selector,this._universal,function(){return tokenStream.match(Tokens.HASH)?new SelectorSubPart(tokenStream.token().value,\\\"id\\\",tokenStream.token().startLine,tokenStream.token().startCol):null},this._class,this._attrib,this._pseudo],arg=null,i=0,len=args.length;for(line=tokenStream.LT(1).startLine,col=tokenStream.LT(1).startCol;len>i&&null===arg;)arg=args[i].call(this),i++;return null===arg&&this._unexpectedToken(tokenStream.LT(1)),part=\\\"elementName\\\"==arg.type?new SelectorPart(arg,[],\\\"\\\"+arg,line,col):new SelectorPart(null,[arg],\\\"\\\"+arg,line,col)},_declaration:function(){var tokenStream=this._tokenStream,property=null,expr=null,prio=null,invalid=null,propertyName=\\\"\\\";if(property=this._property(),null!==property){tokenStream.mustMatch(Tokens.COLON),this._readWhitespace(),expr=this._expr(),expr&&0!==expr.length||this._unexpectedToken(tokenStream.LT(1)),prio=this._prio(),propertyName=\\\"\\\"+property,(this.options.starHack&&\\\"*\\\"==property.hack||this.options.underscoreHack&&\\\"_\\\"==property.hack)&&(propertyName=property.text);try{this._validateProperty(propertyName,expr)}catch(ex){invalid=ex}return this.fire({type:\\\"property\\\",property:property,value:expr,important:prio,line:property.line,col:property.col,invalid:invalid}),!0}return!1},_prio:function(){var tokenStream=this._tokenStream,result=tokenStream.match(Tokens.IMPORTANT_SYM);return this._readWhitespace(),result},_expr:function(inFunction){var values=(this._tokenStream,[]),value=null,operator=null;if(value=this._term(inFunction),null!==value)for(values.push(value);;){if(operator=this._operator(inFunction),operator&&values.push(operator),value=this._term(inFunction),null===value)break;\\nvalues.push(value)}return values.length>0?new PropertyValue(values,values[0].line,values[0].col):null},_term:function(inFunction){var token,line,col,tokenStream=this._tokenStream,unary=null,value=null,endChar=null;return unary=this._unary_operator(),null!==unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol),tokenStream.peek()==Tokens.IE_FUNCTION&&this.options.ieFilters?(value=this._ie_function(),null===unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol)):inFunction&&tokenStream.match([Tokens.LPAREN,Tokens.LBRACE,Tokens.LBRACKET])?(token=tokenStream.token(),endChar=token.endChar,value=token.value+this._expr(inFunction).text,null===unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol),tokenStream.mustMatch(Tokens.type(endChar)),value+=endChar,this._readWhitespace()):tokenStream.match([Tokens.NUMBER,Tokens.PERCENTAGE,Tokens.LENGTH,Tokens.ANGLE,Tokens.TIME,Tokens.FREQ,Tokens.STRING,Tokens.IDENT,Tokens.URI,Tokens.UNICODE_RANGE])?(value=tokenStream.token().value,null===unary&&(line=tokenStream.token().startLine,col=tokenStream.token().startCol),this._readWhitespace()):(token=this._hexcolor(),null===token?(null===unary&&(line=tokenStream.LT(1).startLine,col=tokenStream.LT(1).startCol),null===value&&(value=tokenStream.LA(3)==Tokens.EQUALS&&this.options.ieFilters?this._ie_function():this._function())):(value=token.value,null===unary&&(line=token.startLine,col=token.startCol))),null!==value?new PropertyValuePart(null!==unary?unary+value:value,line,col):null},_function:function(){var lt,tokenStream=this._tokenStream,functionText=null,expr=null;if(tokenStream.match(Tokens.FUNCTION)){if(functionText=tokenStream.token().value,this._readWhitespace(),expr=this._expr(!0),functionText+=expr,this.options.ieFilters&&tokenStream.peek()==Tokens.EQUALS)do for(this._readWhitespace()&&(functionText+=tokenStream.token().value),tokenStream.LA(0)==Tokens.COMMA&&(functionText+=tokenStream.token().value),tokenStream.match(Tokens.IDENT),functionText+=tokenStream.token().value,tokenStream.match(Tokens.EQUALS),functionText+=tokenStream.token().value,lt=tokenStream.peek();lt!=Tokens.COMMA&<!=Tokens.S&<!=Tokens.RPAREN;)tokenStream.get(),functionText+=tokenStream.token().value,lt=tokenStream.peek();while(tokenStream.match([Tokens.COMMA,Tokens.S]));tokenStream.match(Tokens.RPAREN),functionText+=\\\")\\\",this._readWhitespace()}return functionText},_ie_function:function(){var lt,tokenStream=this._tokenStream,functionText=null;if(tokenStream.match([Tokens.IE_FUNCTION,Tokens.FUNCTION])){functionText=tokenStream.token().value;do for(this._readWhitespace()&&(functionText+=tokenStream.token().value),tokenStream.LA(0)==Tokens.COMMA&&(functionText+=tokenStream.token().value),tokenStream.match(Tokens.IDENT),functionText+=tokenStream.token().value,tokenStream.match(Tokens.EQUALS),functionText+=tokenStream.token().value,lt=tokenStream.peek();lt!=Tokens.COMMA&<!=Tokens.S&<!=Tokens.RPAREN;)tokenStream.get(),functionText+=tokenStream.token().value,lt=tokenStream.peek();while(tokenStream.match([Tokens.COMMA,Tokens.S]));tokenStream.match(Tokens.RPAREN),functionText+=\\\")\\\",this._readWhitespace()}return functionText},_hexcolor:function(){var color,tokenStream=this._tokenStream,token=null;if(tokenStream.match(Tokens.HASH)){if(token=tokenStream.token(),color=token.value,!/#[a-f0-9]{3,6}/i.test(color))throw new SyntaxError(\\\"Expected a hex color but found '\\\"+color+\\\"' at line \\\"+token.startLine+\\\", col \\\"+token.startCol+\\\".\\\",token.startLine,token.startCol);this._readWhitespace()}return token},_keyframes:function(){var token,tt,name,tokenStream=this._tokenStream,prefix=\\\"\\\";for(tokenStream.mustMatch(Tokens.KEYFRAMES_SYM),token=tokenStream.token(),/^@\\\\-([^\\\\-]+)\\\\-/.test(token.value)&&(prefix=RegExp.$1),this._readWhitespace(),name=this._keyframe_name(),this._readWhitespace(),tokenStream.mustMatch(Tokens.LBRACE),this.fire({type:\\\"startkeyframes\\\",name:name,prefix:prefix,line:token.startLine,col:token.startCol}),this._readWhitespace(),tt=tokenStream.peek();tt==Tokens.IDENT||tt==Tokens.PERCENTAGE;)this._keyframe_rule(),this._readWhitespace(),tt=tokenStream.peek();this.fire({type:\\\"endkeyframes\\\",name:name,prefix:prefix,line:token.startLine,col:token.startCol}),this._readWhitespace(),tokenStream.mustMatch(Tokens.RBRACE)},_keyframe_name:function(){var tokenStream=this._tokenStream;return tokenStream.mustMatch([Tokens.IDENT,Tokens.STRING]),SyntaxUnit.fromToken(tokenStream.token())},_keyframe_rule:function(){var keyList=(this._tokenStream,this._key_list());this.fire({type:\\\"startkeyframerule\\\",keys:keyList,line:keyList[0].line,col:keyList[0].col}),this._readDeclarations(!0),this.fire({type:\\\"endkeyframerule\\\",keys:keyList,line:keyList[0].line,col:keyList[0].col})},_key_list:function(){var tokenStream=this._tokenStream,keyList=[];for(keyList.push(this._key()),this._readWhitespace();tokenStream.match(Tokens.COMMA);)this._readWhitespace(),keyList.push(this._key()),this._readWhitespace();return keyList},_key:function(){var token,tokenStream=this._tokenStream;if(tokenStream.match(Tokens.PERCENTAGE))return SyntaxUnit.fromToken(tokenStream.token());if(tokenStream.match(Tokens.IDENT)){if(token=tokenStream.token(),/from|to/i.test(token.value))return SyntaxUnit.fromToken(token);tokenStream.unget()}this._unexpectedToken(tokenStream.LT(1))},_skipCruft:function(){for(;this._tokenStream.match([Tokens.S,Tokens.CDO,Tokens.CDC]););},_readDeclarations:function(checkStart,readMargins){var tt,tokenStream=this._tokenStream;this._readWhitespace(),checkStart&&tokenStream.mustMatch(Tokens.LBRACE),this._readWhitespace();try{for(;;){if(tokenStream.match(Tokens.SEMICOLON)||readMargins&&this._margin());else{if(!this._declaration())break;if(!tokenStream.match(Tokens.SEMICOLON))break}this._readWhitespace()}tokenStream.mustMatch(Tokens.RBRACE),this._readWhitespace()}catch(ex){if(!(ex instanceof SyntaxError)||this.options.strict)throw ex;if(this.fire({type:\\\"error\\\",error:ex,message:ex.message,line:ex.line,col:ex.col}),tt=tokenStream.advance([Tokens.SEMICOLON,Tokens.RBRACE]),tt==Tokens.SEMICOLON)this._readDeclarations(!1,readMargins);else if(tt!=Tokens.RBRACE)throw ex}},_readWhitespace:function(){for(var tokenStream=this._tokenStream,ws=\\\"\\\";tokenStream.match(Tokens.S);)ws+=tokenStream.token().value;return ws},_unexpectedToken:function(token){throw new SyntaxError(\\\"Unexpected token '\\\"+token.value+\\\"' at line \\\"+token.startLine+\\\", col \\\"+token.startCol+\\\".\\\",token.startLine,token.startCol)},_verifyEnd:function(){this._tokenStream.LA(1)!=Tokens.EOF&&this._unexpectedToken(this._tokenStream.LT(1))},_validateProperty:function(property,value){Validation.validate(property,value)},parse:function(input){this._tokenStream=new TokenStream(input,Tokens),this._stylesheet()},parseStyleSheet:function(input){return this.parse(input)},parseMediaQuery:function(input){this._tokenStream=new TokenStream(input,Tokens);var result=this._media_query();return this._verifyEnd(),result},parsePropertyValue:function(input){this._tokenStream=new TokenStream(input,Tokens),this._readWhitespace();var result=this._expr();return this._readWhitespace(),this._verifyEnd(),result},parseRule:function(input){this._tokenStream=new TokenStream(input,Tokens),this._readWhitespace();var result=this._ruleset();return this._readWhitespace(),this._verifyEnd(),result},parseSelector:function(input){this._tokenStream=new TokenStream(input,Tokens),this._readWhitespace();var result=this._selector();return this._readWhitespace(),this._verifyEnd(),result},parseStyleAttribute:function(input){input+=\\\"}\\\",this._tokenStream=new TokenStream(input,Tokens),this._readDeclarations()}};for(prop in additions)additions.hasOwnProperty(prop)&&(proto[prop]=additions[prop]);return proto}();var Properties={\\\"align-items\\\":\\\"flex-start | flex-end | center | baseline | stretch\\\",\\\"align-content\\\":\\\"flex-start | flex-end | center | space-between | space-around | stretch\\\",\\\"align-self\\\":\\\"auto | flex-start | flex-end | center | baseline | stretch\\\",\\\"-webkit-align-items\\\":\\\"flex-start | flex-end | center | baseline | stretch\\\",\\\"-webkit-align-content\\\":\\\"flex-start | flex-end | center | space-between | space-around | stretch\\\",\\\"-webkit-align-self\\\":\\\"auto | flex-start | flex-end | center | baseline | stretch\\\",\\\"alignment-adjust\\\":\\\"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | | \\\",\\\"alignment-baseline\\\":\\\"baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical\\\",animation:1,\\\"animation-delay\\\":{multi:\\\"