(function(a){if(typeof exports=="object"&&typeof module=="object"){a(require("../../lib/codemirror"))}else if(typeof define=="function"&&define.amd){define(["../../lib/codemirror"],a)}else{a(CodeMirror)}})(function(a){"use strict";var b={addition:"positive",attributes:"attribute",bold:"strong",cite:"keyword",code:"atom",definitionList:"number",deletion:"negative",div:"punctuation",em:"em",footnote:"variable",footCite:"qualifier",header:"header",html:"comment",image:"string",italic:"em",link:"link",linkDefinition:"link",list1:"variable-2",list2:"variable-3",list3:"keyword",notextile:"string-2",pre:"operator",p:"property",quote:"bracket",span:"quote",specialChar:"tag",strong:"strong",sub:"builtin",sup:"builtin",table:"variable-3",tableHeading:"operator"};function c(a,b){b.mode=m.newLayout;b.tableHeading=false;if(b.layoutType==="definitionList"&&b.spanningLayout&&a.match(l("definitionListEnd"),false))b.spanningLayout=false}function d(a,c,d){if(d==="_"){if(a.eat("_"))return e(a,c,"italic",/__/,2);else return e(a,c,"em",/_/,1)}if(d==="*"){if(a.eat("*")){return e(a,c,"bold",/\*\*/,2)}return e(a,c,"strong",/\*/,1)}if(d==="["){if(a.match(/\d+\]/))c.footCite=true;return f(c)}if(d==="("){var g=a.match(/^(r|tm|c)\)/);if(g)return h(c,b.specialChar)}if(d==="<"&&a.match(/(\w+)[^>]+>[^<]+<\/\1>/))return h(c,b.html);if(d==="?"&&a.eat("?"))return e(a,c,"cite",/\?\?/,2);if(d==="="&&a.eat("="))return e(a,c,"notextile",/==/,2);if(d==="-"&&!a.eat("-"))return e(a,c,"deletion",/-/,1);if(d==="+")return e(a,c,"addition",/\+/,1);if(d==="~")return e(a,c,"sub",/~/,1);if(d==="^")return e(a,c,"sup",/\^/,1);if(d==="%")return e(a,c,"span",/%/,1);if(d==="@")return e(a,c,"code",/@/,1);if(d==="!"){var i=e(a,c,"image",/(?:\([^\)]+\))?!/,1);a.match(/^:\S+/);return i}return f(c)}function e(a,b,c,d,e){var g=a.pos>e?a.string.charAt(a.pos-e-1):null;var h=a.peek();if(b[c]){if((!h||/\W/.test(h))&&g&&/\S/.test(g)){var i=f(b);b[c]=false;return i}}else if((!g||/\W/.test(g))&&h&&/\S/.test(h)&&a.match(new RegExp("^.*\\S"+d.source+"(?:\\W|$)"),false)){b[c]=true;b.mode=m.attributes}return f(b)}function f(a){var c=g(a);if(c)return c;var d=[];if(a.layoutType)d.push(b[a.layoutType]);d=d.concat(i(a,"addition","bold","cite","code","deletion","em","footCite","image","italic","link","span","strong","sub","sup","table","tableHeading"));if(a.layoutType==="header")d.push(b.header+"-"+a.header);return d.length?d.join(" "):null}function g(a){var c=a.layoutType;switch(c){case"notextile":case"code":case"pre":return b[c];default:if(a.notextile)return b.notextile+(c?" "+b[c]:"");return null}}function h(a,b){var c=g(a);if(c)return c;var d=f(a);if(b)return d?d+" "+b:b;else return d}function i(a){var c=[];for(var d=1;d]+)?>(?:[^<]+<\/\1>)?/,link:/[^"]+":\S/,linkDefinition:/\[[^\s\]]+\]\S+/,list:/(?:#+|\*+)/,notextile:"notextile",para:"p",pre:"pre",table:"table",tableCellAttributes:/[\/\\]\d+/,tableHeading:/\|_\./,tableText:/[^"_\*\[\(\?\+~\^%@|-]+/,text:/[^!"_=\*\[\(<\?\+~\^%@-]+/},attributes:{align:/(?:<>|<|>|=)/,selector:/\([^\(][^\)]+\)/,lang:/\[[^\[\]]+\]/,pad:/(?:\(+|\)+){1,2}/,css:/\{[^\}]+\}/},createRe:function(a){switch(a){case"drawTable":return k.makeRe("^",k.single.drawTable,"$");case"html":return k.makeRe("^",k.single.html,"(?:",k.single.html,")*","$");case"linkDefinition":return k.makeRe("^",k.single.linkDefinition,"$");case"listLayout":return k.makeRe("^",k.single.list,l("allAttributes"),"*\\s+");case"tableCellAttributes":return k.makeRe("^",k.choiceRe(k.single.tableCellAttributes,l("allAttributes")),"+\\.");case"type":return k.makeRe("^",l("allTypes"));case"typeLayout":return k.makeRe("^",l("allTypes"),l("allAttributes"),"*\\.\\.?","(\\s+|$)");case"attributes":return k.makeRe("^",l("allAttributes"),"+");case"allTypes":return k.choiceRe(k.single.div,k.single.foot,k.single.header,k.single.bc,k.single.bq,k.single.notextile,k.single.pre,k.single.table,k.single.para);case"allAttributes":return k.choiceRe(k.attributes.selector,k.attributes.css,k.attributes.lang,k.attributes.align,k.attributes.pad);default:return k.makeRe("^",k.single[a])}},makeRe:function(){var a="";for(var b=0;b