!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}((function(e){"use strict";function t(e){for(var t={},n=e.split(" "),r=0;r!\/]/;function k(e,t){var r,x=e.next();if('"'==x||"'"==x)return t.tokenize=(r=x,function(e,t){for(var n,i=!1,o=!1;null!=(n=e.next());){if(n==r&&!i){var s=e.peek();s&&("b"!=(s=s.toLowerCase())&&"h"!=s&&"o"!=s||e.next()),o=!0;break}i=!i&&"\\"==n}return(o||!i&&!v)&&(t.tokenize=null),"string"}),t.tokenize(e,t);if(/[\[\]{}\(\),;\\:\?\.]/.test(x))return n=x,"punctuation";if("#"==x)return e.skipToEnd(),"atom preprocessor";if("%"==x)return e.eatWhile(/\b/),"atom ttcn3Macros";if(/\d/.test(x))return e.eatWhile(/[\w\.]/),"number";if("/"==x){if(e.eat("*"))return t.tokenize=O,O(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(g.test(x))return"@"==x&&(e.match("try")||e.match("catch")||e.match("lazy"))?"keyword":(e.eatWhile(g),"operator");e.eatWhile(/[\w\$_\xa1-\uffff]/);var k=e.current();return i.propertyIsEnumerable(k)?"keyword":o.propertyIsEnumerable(k)?"builtin":s.propertyIsEnumerable(k)?"def timerOps":l.propertyIsEnumerable(k)?"def configOps":c.propertyIsEnumerable(k)?"def verdictOps":a.propertyIsEnumerable(k)?"def portOps":p.propertyIsEnumerable(k)?"def sutOps":u.propertyIsEnumerable(k)?"def functionOps":f.propertyIsEnumerable(k)?"string verdictConsts":d.propertyIsEnumerable(k)?"string booleanConsts":m.propertyIsEnumerable(k)?"string otherConsts":b.propertyIsEnumerable(k)?"builtin types":h.propertyIsEnumerable(k)?"builtin visibilityModifiers":y.propertyIsEnumerable(k)?"atom templateMatch":"variable"}function O(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="*"==n}return"comment"}function E(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function w(e,t,n){var r=e.indented;return e.context&&"statement"==e.context.type&&(r=e.context.indented),e.context=new E(r,t,n,null,e.context)}function C(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}return{startState:function(e){return{tokenize:null,context:new E((e||0)-r,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var r=t.context;if(e.sol()&&(null==r.align&&(r.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;n=null;var i=(t.tokenize||k)(e,t);if("comment"==i)return i;if(null==r.align&&(r.align=!0),";"!=n&&":"!=n&&","!=n||"statement"!=r.type)if("{"==n)w(t,e.column(),"}");else if("["==n)w(t,e.column(),"]");else if("("==n)w(t,e.column(),")");else if("}"==n){for(;"statement"==r.type;)r=C(t);for("}"==r.type&&(r=C(t));"statement"==r.type;)r=C(t)}else n==r.type?C(t):x&&(("}"==r.type||"top"==r.type)&&";"!=n||"statement"==r.type&&"newstatement"==n)&&w(t,e.column(),"statement");else C(t);return t.startOfLine=!1,i},electricChars:"{}",blockCommentStart:"/*",blockCommentEnd:"*/",lineComment:"//",fold:"brace"}})),function(t,n){"string"==typeof t&&(t=[t]);var r=[];function i(e){if(e)for(var t in e)e.hasOwnProperty(t)&&r.push(t)}i(n.keywords),i(n.builtin),i(n.timerOps),i(n.portOps),r.length&&(n.helperType=t[0],e.registerHelper("hintWords",t[0],r));for(var o=0;o