(function(b){function c(a,d){if(!a)throw Error("ASSERT: "+d);}function e(a,d){return I.slice(a,d)}function n(a){return 0<="0123456789".indexOf(a)}function f(a){return 0<="01234567".indexOf(a)}function d(a){return" "===a||"\t"===a||"\x0B"===a||"\f"===a||"\u00a0"===a||5760<=a.charCodeAt(0)&&0<="\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\ufeff".indexOf(a)}function p(a){return"\n"===a||"\r"===a||"\u2028"===a||"\u2029"===a}function h(a){return"$"===
a||"_"===a||"\\"===a||"a"<=a&&"z">=a||"A"<=a&&"Z">=a||128<=a.charCodeAt(0)&&La.NonAsciiIdentifierStart.test(a)}function r(a){return"$"===a||"_"===a||"\\"===a||"a"<=a&&"z">=a||"A"<=a&&"Z">=a||"0"<=a&&"9">=a||128<=a.charCodeAt(0)&&La.NonAsciiIdentifierPart.test(a)}function u(a){switch(a){case "class":case "enum":case "export":case "extends":case "import":case "super":return!0}return!1}function a(a){switch(a){case "implements":case "interface":case "package":case "private":case "protected":case "public":case "static":case "yield":case "let":return!0}return!1}
function g(a){return"eval"===a||"arguments"===a}function k(T){var d=!1;switch(T.length){case 2:d="if"===T||"in"===T||"do"===T;break;case 3:d="var"===T||"for"===T||"new"===T||"try"===T;break;case 4:d="this"===T||"else"===T||"case"===T||"void"===T||"with"===T;break;case 5:d="while"===T||"break"===T||"catch"===T||"throw"===T;break;case 6:d="return"===T||"typeof"===T||"delete"===T||"switch"===T;break;case 7:d="default"===T||"finally"===T;break;case 8:d="function"===T||"continue"===T||"debugger"===T;break;
case 10:d="instanceof"===T}if(d)return!0;switch(T){case "const":return!0;case "yield":case "let":return!0}return U&&a(T)?!0:u(T)}function w(){return I[q++]}function s(){var a,c,b;for(b=c=!1;q<N;)if(a=I[q],b)a=w(),p(a)&&(b=!1,"\r"===a&&"\n"===I[q]&&++q,++O,Q=q);else if(c)p(a)?("\r"===a&&"\n"===I[q+1]&&++q,++O,++q,Q=q,q>=N&&C({},E.UnexpectedToken,"ILLEGAL")):(a=w(),q>=N&&C({},E.UnexpectedToken,"ILLEGAL"),"*"===a&&(a=I[q],"/"===a&&(++q,c=!1)));else if("/"===a)if(a=I[q+1],"/"===a)q+=2,b=!0;else if("*"===
a)q+=2,c=!0,q>=N&&C({},E.UnexpectedToken,"ILLEGAL");else break;else if(d(a))++q;else if(p(a))++q,"\r"===a&&"\n"===I[q]&&++q,++O,Q=q;else break}function z(a){var d,c,b=0;d="u"===a?4:2;for(a=0;a<d;++a)if(q<N&&0<="0123456789abcdefABCDEF".indexOf(I[q]))c=w(),b=16*b+"0123456789abcdef".indexOf(c.toLowerCase());else return"";return String.fromCharCode(b)}function J(){var a,d,c,b;a=I[q];if(h(a)){d=q;if("\\"===a){++q;if("u"!==I[q])return;++q;b=q;if(a=z("u")){if("\\"===a||!h(a))return;c=a}else q=b,c="u"}else c=
w();for(;q<N;){a=I[q];if(!r(a))break;if("\\"===a){++q;if("u"!==I[q])return;++q;b=q;if(a=z("u")){if("\\"===a||!r(a))return;c+=a}else q=b,c+="u"}else c+=w()}return 1===c.length?{type:G.Identifier,value:c,lineNumber:O,lineStart:Q,range:[d,q]}:k(c)?{type:G.Keyword,value:c,lineNumber:O,lineStart:Q,range:[d,q]}:"null"===c?{type:G.NullLiteral,value:c,lineNumber:O,lineStart:Q,range:[d,q]}:"true"===c||"false"===c?{type:G.BooleanLiteral,value:c,lineNumber:O,lineStart:Q,range:[d,q]}:{type:G.Identifier,value:c,
lineNumber:O,lineStart:Q,range:[d,q]}}}function L(){var a=q,c=I[q],d,b,l;if(";"===c||"{"===c||"}"===c||","===c||"("===c||")"===c)return++q,{type:G.Punctuator,value:c,lineNumber:O,lineStart:Q,range:[a,q]};d=I[q+1];if("."===c&&!n(d))return{type:G.Punctuator,value:w(),lineNumber:O,lineStart:Q,range:[a,q]};b=I[q+2];l=I[q+3];if("\x3e"===c&&"\x3e"===d&&"\x3e"===b&&"\x3d"===l)return q+=4,{type:G.Punctuator,value:"\x3e\x3e\x3e\x3d",lineNumber:O,lineStart:Q,range:[a,q]};if("\x3d"===c&&"\x3d"===d&&"\x3d"===
b)return q+=3,{type:G.Punctuator,value:"\x3d\x3d\x3d",lineNumber:O,lineStart:Q,range:[a,q]};if("!"===c&&"\x3d"===d&&"\x3d"===b)return q+=3,{type:G.Punctuator,value:"!\x3d\x3d",lineNumber:O,lineStart:Q,range:[a,q]};if("\x3e"===c&&"\x3e"===d&&"\x3e"===b)return q+=3,{type:G.Punctuator,value:"\x3e\x3e\x3e",lineNumber:O,lineStart:Q,range:[a,q]};if("\x3c"===c&&"\x3c"===d&&"\x3d"===b)return q+=3,{type:G.Punctuator,value:"\x3c\x3c\x3d",lineNumber:O,lineStart:Q,range:[a,q]};if("\x3e"===c&&"\x3e"===d&&"\x3d"===
b)return q+=3,{type:G.Punctuator,value:"\x3e\x3e\x3d",lineNumber:O,lineStart:Q,range:[a,q]};if("\x3d"===d&&0<="\x3c\x3e\x3d!+-*%\x26|^/".indexOf(c)||c===d&&0<="+-\x3c\x3e\x26|".indexOf(c)&&0<="+-\x3c\x3e\x26|".indexOf(d))return q+=2,{type:G.Punctuator,value:c+d,lineNumber:O,lineStart:Q,range:[a,q]};if(0<="[]\x3c\x3e+-*%\x26|^!~?:\x3d/".indexOf(c))return{type:G.Punctuator,value:w(),lineNumber:O,lineStart:Q,range:[a,q]}}function l(){var a,d,b;b=I[q];c(n(b)||"."===b,"Numeric literal must start with a decimal digit or a decimal point");
d=q;a="";if("."!==b){a=w();b=I[q];if("0"===a){if("x"===b||"X"===b){for(a+=w();q<N;){b=I[q];if(!(0<="0123456789abcdefABCDEF".indexOf(b)))break;a+=w()}2>=a.length&&C({},E.UnexpectedToken,"ILLEGAL");q<N&&(b=I[q],h(b)&&C({},E.UnexpectedToken,"ILLEGAL"));return{type:G.NumericLiteral,value:parseInt(a,16),lineNumber:O,lineStart:Q,range:[d,q]}}if(f(b)){for(a+=w();q<N;){b=I[q];if(!f(b))break;a+=w()}q<N&&(b=I[q],(h(b)||n(b))&&C({},E.UnexpectedToken,"ILLEGAL"));return{type:G.NumericLiteral,value:parseInt(a,
8),octal:!0,lineNumber:O,lineStart:Q,range:[d,q]}}n(b)&&C({},E.UnexpectedToken,"ILLEGAL")}for(;q<N;){b=I[q];if(!n(b))break;a+=w()}}if("."===b)for(a+=w();q<N;){b=I[q];if(!n(b))break;a+=w()}if("e"===b||"E"===b){a+=w();b=I[q];if("+"===b||"-"===b)a+=w();b=I[q];if(n(b))for(a+=w();q<N;){b=I[q];if(!n(b))break;a+=w()}else C({},E.UnexpectedToken,"ILLEGAL")}q<N&&(b=I[q],h(b)&&C({},E.UnexpectedToken,"ILLEGAL"));return{type:G.NumericLiteral,value:parseFloat(a),lineNumber:O,lineStart:Q,range:[d,q]}}function m(){var a=
"",b,d,l,m,g;l=!1;var B;$=null;s();d=q;b=I[q];c("/"===b,"Regular expression literal must start with a slash");for(a=w();q<N;)if(b=w(),a+=b,l)"]"===b&&(l=!1);else if("\\"===b)b=w(),p(b)&&C({},E.UnterminatedRegExp),a+=b;else if("/"===b)break;else"["===b?l=!0:p(b)&&C({},E.UnterminatedRegExp);1===a.length&&C({},E.UnterminatedRegExp);l=a.substr(1,a.length-2);for(m="";q<N;){b=I[q];if(!r(b))break;++q;if("\\"===b&&q<N)if(b=I[q],"u"===b)if(++q,B=q,b=z("u")){m+=b;for(a+="\\u";B<q;++B)a+=I[B]}else q=B,m+="u",
a+="\\u";else a+="\\";else m+=b,a+=b}try{g=RegExp(l,m)}catch(k){C({},E.InvalidRegExp)}return{literal:a,value:g,range:[d,q]}}function B(){var a;s();if(q>=N)return{type:G.EOF,lineNumber:O,lineStart:Q,range:[q,q]};a=L();if("undefined"!==typeof a)return a;a=I[q];if("'"===a||'"'===a){a="";var b,d,m,g,B,k=!1;b=I[q];c("'"===b||'"'===b,"String literal must starts with a quote");d=q;for(++q;q<N;)if(m=w(),m===b){b="";break}else if("\\"===m)if(m=w(),p(m))++O,"\r"===m&&"\n"===I[q]&&++q;else switch(m){case "n":a+=
"\n";break;case "r":a+="\r";break;case "t":a+="\t";break;case "u":case "x":B=q;(g=z(m))?a+=g:(q=B,a+=m);break;case "b":a+="\b";break;case "f":a+="\f";break;case "v":a+="\v";break;default:f(m)?(g="01234567".indexOf(m),0!==g&&(k=!0),q<N&&f(I[q])&&(k=!0,g=8*g+"01234567".indexOf(w()),0<="0123".indexOf(m)&&q<N&&f(I[q])&&(g=8*g+"01234567".indexOf(w()))),a+=String.fromCharCode(g)):a+=m}else if(p(m))break;else a+=m;""!==b&&C({},E.UnexpectedToken,"ILLEGAL");return{type:G.StringLiteral,value:a,octal:k,lineNumber:O,
lineStart:Q,range:[d,q]}}if("."===a||n(a))return l();a=J();if("undefined"!==typeof a)return a;C({},E.UnexpectedToken,"ILLEGAL")}function y(){var a;if($)return q=$.range[1],O=$.lineNumber,Q=$.lineStart,a=$,$=null,a;$=null;return B()}function M(){var a,b,d;if(null!==$)return $;a=q;b=O;d=Q;$=B();q=a;O=b;Q=d;return $}function Z(){var a,b,d,c;a=q;b=O;d=Q;s();c=O!==b;q=a;O=b;Q=d;return c}function C(a,b){var d,c=Array.prototype.slice.call(arguments,2);d=b.replace(/%(\d)/g,function(a,b){return c[b]||""});
"number"===typeof a.lineNumber?(d=Error("Line "+a.lineNumber+": "+d),d.index=a.range[0],d.end=a.range[1],d.token=a.value,d.lineNumber=a.lineNumber,d.column=a.range[0]-Q+1):(d=Error("Line "+O+": "+d),d.index=q,d.lineNumber=O,d.column=q-Q+1);throw d;}function V(){try{C.apply(null,arguments)}catch(a){if(t.errors)t.errors.push(a);else throw a;}}function R(b){b.type===G.EOF&&C(b,E.UnexpectedEOS);b.type===G.NumericLiteral&&C(b,E.UnexpectedNumber);b.type===G.StringLiteral&&C(b,E.UnexpectedString);b.type===
G.Identifier&&C(b,E.UnexpectedIdentifier);b.type===G.Keyword&&(u(b.value)?C(b,E.UnexpectedReserved):U&&a(b.value)&&C(b,E.StrictReservedWord),C(b,E.UnexpectedToken,b.value));C(b,E.UnexpectedToken,b.value)}function H(a){var b=y();(b.type!==G.Punctuator||b.value!==a)&&R(b)}function Y(a){var b=y();(b.type!==G.Keyword||b.value!==a)&&R(b)}function x(a){var b=M();return b.type===G.Punctuator&&b.value===a}function v(a){var b=M();return b.type===G.Keyword&&b.value===a}function F(){var a;if(";"===I[q])y();
else if(a=O,s(),O===a)if(x(";"))y();else if(a=M(),a.type!==G.EOF&&!x("}")){if(t.errors){for(var b=q;0<b&&!(";"===I[b]||"\n"===I[b]);)b--;if(!(b<=t.statementStart)){var d=!1;t.lastRewindLocation?d=!0:t.lastRewindLocation!==b&&(d=!0);d&&(q=b,$=null,t.lastRewindLocation=q)}}R(a)}}function ea(a){switch(a.type){case "AssignmentExpression":case "BinaryExpression":case "ConditionalExpression":case "LogicalExpression":case "SequenceExpression":case "UnaryExpression":case "UpdateExpression":return!1}return!0}
function P(a,b){var d,c;d=U;c=ka();b&&U&&g(a[0].name)&&C(b,E.StrictParamName);U=d;return{type:A.FunctionExpression,id:null,params:a,body:c}}function S(){var a=y();return a.type===G.StringLiteral||a.type===G.NumericLiteral?(U&&a.octal&&C(a,E.StrictOctalLiteral),fa(a)):{type:A.Identifier,name:a.value}}function D(){var a,b,d;a=M();if(a.type===G.Identifier){b=S();if("get"===a.value&&!x(":"))return b=S(),H("("),H(")"),{type:A.Property,key:b,value:P([]),kind:"get"};if("set"===a.value&&!x(":"))return b=
S(),H("("),a=M(),a.type!==G.Identifier&&R(y()),d=[ca()],H(")"),{type:A.Property,key:b,value:P(d,a),kind:"set"};H(":");return{type:A.Property,key:b,value:ba(),kind:"init"}}if(a.type===G.EOF||a.type===G.Punctuator)R(a);else return b=S(),H(":"),{type:A.Property,key:b,value:ba(),kind:"init"}}function X(){var a;a=M();var b=a.type;if(b===G.Identifier)return{type:A.Identifier,name:y().value};if(b===G.StringLiteral||b===G.NumericLiteral)return U&&a.octal&&V(a,E.StrictOctalLiteral),fa(y());if(b===G.Keyword){if(v("this"))return y(),
{type:A.ThisExpression};if(v("function"))return za()}if(b===G.BooleanLiteral)return y(),a.value="true"===a.value,fa(a);if(b===G.NullLiteral)return y(),a.value=null,fa(a);if(x("[")){a=[];for(H("[");!x("]");)x(",")?(y(),a.push(void 0)):(a.push(ba()),x("]")||H(","));H("]");return{type:A.ArrayExpression,elements:a}}if(x("{")){a=[];var d,c,l={},g=String;for(H("{");!x("}");)b=D(),d=b.key.type===A.Identifier?b.key.name:g(b.key.value),c="init"===b.kind?ga.Data:"get"===b.kind?ga.Get:ga.Set,Object.prototype.hasOwnProperty.call(l,
d)?(l[d]===ga.Data?U&&c===ga.Data?V({},E.StrictDuplicateProperty):c!==ga.Data&&C({},E.AccessorDataProperty):c===ga.Data?C({},E.AccessorDataProperty):l[d]&c&&C({},E.AccessorGetSet),l[d]|=c):l[d]=c,a.push(b),x("}")||H(",");H("}");return{type:A.ObjectExpression,properties:a}}return x("(")?(y(),K.lastParenthesized=a=W(),H(")"),a):x("/")||x("/\x3d")?fa(m()):R(y())}function la(a){for(var b=t.errors.length,d=0;d<b;d++){var c=t.errors[d];if(c.index===a.index&&c.message===a.message)return}t.errors.push(a)}
function Pa(){var a=[];H("(");if(!x(")"))for(;q<N;){a.push(ba());if(x(")"))break;try{H(",")}catch(b){if(t.errors){la(b);break}else throw b;}}try{H(")")}catch(d){if(t.errors)la(d);else throw d;}return a}function ma(){var a,b=y();if(!(b.type===G.Identifier||b.type===G.Keyword||b.type===G.BooleanLiteral||b.type===G.NullLiteral)){if(t.errors&&b.value&&b.type===G.Punctuator){a=q-b.value.length-1;for(var c=!1,l=!1,m;!c;){m=I[a];if("/"===m)if(2<a&&"*"===I[a-1]){a-=2;for(var g=!1;!g;)m=I[a],"*"===m?0<a&&
"/"===I[a-1]&&(g=!0):"\n"===m&&(l=!0),0===a&&(g=!0),a--}else c=!0;else"\n"===m?l=!0:d(m)||(c=!0);c||a--}c=I[a];!("."===c&&l&&"("===b.value)&&"."===c&&(q=a+1,$=null)}R(b)}return{type:A.Identifier,name:b.value}}function na(a){return{type:A.MemberExpression,computed:!1,object:a,property:ma()}}function oa(a){var b;H("[");b=W();a={type:A.MemberExpression,computed:!0,object:a,property:b};H("]");return a}function Aa(a){return{type:A.CallExpression,callee:a,arguments:Pa()}}function pa(){var a;Y("new");a=
A.NewExpression;var b;for(b=v("new")?pa():X();q<N;)if(x("."))y(),b=na(b);else if(x("["))b=oa(b);else break;a={type:a,callee:b,arguments:[]};x("(")&&(a.arguments=Pa());return a}function Ba(){var a;for(a=v("new")?pa():X();q<N;)if(x("."))y(),a=na(a);else if(x("["))a=oa(a);else if(x("("))a=Aa(a);else break;if((x("++")||x("--"))&&!Z())U&&a.type===A.Identifier&&g(a.name)&&C({},E.StrictLHSPostfix),a={type:A.UpdateExpression,operator:y().value,argument:a,prefix:!1};return a}function ha(){var a,b;return x("++")||
x("--")?(a=y(),b=ha(),U&&b.type===A.Identifier&&g(b.name)&&C({},E.StrictLHSPrefix),{type:A.UpdateExpression,operator:a.value,argument:b,prefix:!0}):x("+")||x("-")||x("~")||x("!")?{type:A.UnaryExpression,operator:y().value,argument:ha()}:v("delete")||v("void")||v("typeof")?(b={type:A.UnaryExpression,operator:y().value,argument:ha()},U&&"delete"===b.operator&&b.argument.type===A.Identifier&&V({},E.StrictDelete),b):Ba()}function qa(){for(var a=ha();x("*")||x("/")||x("%");)a={type:A.BinaryExpression,
operator:y().value,left:a,right:ha()};return a}function ra(){for(var a=qa();x("+")||x("-");)a={type:A.BinaryExpression,operator:y().value,left:a,right:qa()};return a}function Ca(){for(var a=ra();x("\x3c\x3c")||x("\x3e\x3e")||x("\x3e\x3e\x3e");)a={type:A.BinaryExpression,operator:y().value,left:a,right:ra()};return a}function ia(){var a,b;b=K.allowIn;K.allowIn=!0;a=Ca();K.allowIn=b;x("\x3c")||x("\x3e")||x("\x3c\x3d")||x("\x3e\x3d")?a={type:A.BinaryExpression,operator:y().value,left:a,right:ia()}:K.allowIn&&
v("in")?(y(),a={type:A.BinaryExpression,operator:"in",left:a,right:ia()}):v("instanceof")&&(y(),a={type:A.BinaryExpression,operator:"instanceof",left:a,right:ia()});return a}function sa(){for(var a=ia();x("\x3d\x3d")||x("!\x3d")||x("\x3d\x3d\x3d")||x("!\x3d\x3d");)a={type:A.BinaryExpression,operator:y().value,left:a,right:ia()};return a}function ta(){for(var a=sa();x("\x26");)y(),a={type:A.BinaryExpression,operator:"\x26",left:a,right:sa()};return a}function ua(){for(var a=ta();x("|");)y(),a={type:A.BinaryExpression,
operator:"|",left:a,right:ta()};return a}function va(){for(var a=ua();x("^");)y(),a={type:A.BinaryExpression,operator:"^",left:a,right:ua()};return a}function wa(){for(var a=va();x("\x26\x26");)y(),a={type:A.LogicalExpression,operator:"\x26\x26",left:a,right:va()};return a}function Da(){for(var a=wa();x("||");)y(),a={type:A.LogicalExpression,operator:"||",left:a,right:wa()};return a}function Ea(){var a,b,d;a=Da();x("?")&&(y(),b=K.allowIn,K.allowIn=!0,d=ba(),K.allowIn=b,H(":"),a={type:A.ConditionalExpression,
test:a,consequent:d,alternate:ba()});return a}function ba(){var a;a=Ea();var b;b=M();var d=b.value;(b.type!==G.Punctuator?0:"\x3d"===d||"*\x3d"===d||"/\x3d"===d||"%\x3d"===d||"+\x3d"===d||"-\x3d"===d||"\x3c\x3c\x3d"===d||"\x3e\x3e\x3d"===d||"\x3e\x3e\x3e\x3d"===d||"\x26\x3d"===d||"^\x3d"===d||"|\x3d"===d)&&(K.lastParenthesized!==a&&!ea(a)&&C({},E.InvalidLHSInAssignment),U&&a.type===A.Identifier&&g(a.name)&&C({},E.StrictLHSAssignment),a={type:A.AssignmentExpression,operator:y().value,left:a,right:ba()});
return a}function W(){var a=ba();if(x(","))for(a={type:A.SequenceExpression,expressions:[a]};q<N&&x(",");)y(),a.expressions.push(ba());return a}function ja(){H("{");for(var a=[],b;q<N&&!x("}");){b=xa();if("undefined"===typeof b)break;a.push(b)}Qa();return{type:A.BlockStatement,body:a}}function ca(){var a=y();a.type!==G.Identifier&&R(a);return{type:A.Identifier,name:a.value}}function Fa(a){var b=ca(),d=null;U&&g(b.name)&&V({},E.StrictVarName);"const"===a?(H("\x3d"),d=ba()):x("\x3d")&&(y(),d=ba());
return{type:A.VariableDeclarator,id:b,init:d}}function Ma(a){for(var b=[];q<N;){b.push(Fa(a));if(!x(","))break;y()}return b}function Ga(a){var b;Y(a);b=Ma(a);F();return{type:A.VariableDeclaration,declarations:b,kind:a}}function Na(){try{H(")")}catch(a){if(t.errors)la(a),"{"===I[a.index]&&(q=a.index,$=null);else throw a;}}function Ha(){var a=y();return{type:A.VariableDeclaration,declarations:Ma(),kind:a.value}}function Ra(){var a=null;Y("continue");if(";"===I[q])return y(),K.inIteration||C({},E.IllegalContinue),
{type:A.ContinueStatement,label:null};if(Z())return K.inIteration||C({},E.IllegalContinue),{type:A.ContinueStatement,label:null};M().type===G.Identifier&&(a=ca(),Object.prototype.hasOwnProperty.call(K.labelSet,a.name)||C({},E.UnknownLabel,a.name));F();null===a&&!K.inIteration&&C({},E.IllegalContinue);return{type:A.ContinueStatement,label:a}}function Sa(){var a=null;Y("break");if(";"===I[q])return y(),!K.inIteration&&!K.inSwitch&&C({},E.IllegalBreak),{type:A.BreakStatement,label:null};if(Z())return!K.inIteration&&
!K.inSwitch&&C({},E.IllegalBreak),{type:A.BreakStatement,label:null};M().type===G.Identifier&&(a=ca(),Object.prototype.hasOwnProperty.call(K.labelSet,a.name)||C({},E.UnknownLabel,a.name));F();null===a&&!K.inIteration&&!K.inSwitch&&C({},E.IllegalBreak);return{type:A.BreakStatement,label:a}}function Ta(){var a,b=null;Y("return");K.inFunctionBody||V({},E.IllegalReturn);if(" "===I[q]&&h(I[q+1]))return b=W(),F(),{type:A.ReturnStatement,argument:b};if(Z())return{type:A.ReturnStatement,argument:null};x(";")||
(a=M(),!x("}")&&a.type!==G.EOF&&(b=W()));F();return{type:A.ReturnStatement,argument:b}}function Ia(){var a,b=[],d;v("default")?(y(),a=null):(Y("case"),a=W());for(H(":");q<N&&!x("}")&&!v("default")&&!v("case");){d=aa();if("undefined"===typeof d)break;b.push(d)}return{type:A.SwitchCase,test:a,consequent:b}}function Ja(){var a;Y("catch");H("(");x(")")||(a=W(),U&&a.type===A.Identifier&&g(a.name)&&V({},E.StrictCatchVariable));H(")");return{type:A.CatchClause,param:a,guard:null,body:ja()}}function aa(){var a=
M(),b,d;a.type===G.EOF&&R(a);if(a.type===G.Punctuator)switch(a.value){case ";":return H(";"),{type:A.EmptyStatement};case "{":return ja();case "(":return b=W(),F(),{type:A.ExpressionStatement,expression:b}}if(a.type===G.Keyword)switch(a.value){case "break":return Sa();case "continue":return Ra();case "debugger":return Y("debugger"),F(),{type:A.DebuggerStatement};case "do":return Y("do"),d=K.inIteration,K.inIteration=!0,b=aa(),K.inIteration=d,Y("while"),H("("),d=W(),H(")"),x(";")&&y(),{type:A.DoWhileStatement,
body:b,test:d};case "for":var c,l,m,g,a=c=l=null;Y("for");H("(");x(";")?y():(v("var")||v("let")?(K.allowIn=!1,a=Ha(),K.allowIn=!0,1===a.declarations.length&&v("in")&&(y(),b=a,d=W(),a=null)):(K.allowIn=!1,a=W(),K.allowIn=!0,v("in")&&(v("in")&&K.lastParenthesized!==a&&!ea(a)&&C({},E.InvalidLHSInForIn),y(),b=a,d=W(),a=null)),"undefined"===typeof b&&H(";"));"undefined"===typeof b&&(x(";")||(c=W()),H(";"),x(")")||(l=W()));Na();g=K.inIteration;K.inIteration=!0;m=aa();K.inIteration=g;return"undefined"===
typeof b?{type:A.ForStatement,init:a,test:c,update:l,body:m}:{type:A.ForInStatement,left:b,right:d,body:m,each:!1};case "function":return ya();case "if":return Y("if"),H("("),b=W(),Na(),(d=aa())||(d=null),v("else")?(y(),a=aa()):a=null,{type:A.IfStatement,test:b,consequent:d,alternate:a};case "return":return Ta();case "switch":Y("switch");H("(");b=W();H(")");H("{");if(x("}"))y(),b={type:A.SwitchStatement,discriminant:b};else{d=[];a=K.inSwitch;for(K.inSwitch=!0;q<N&&!x("}");)d.push(Ia());K.inSwitch=
a;H("}");b={type:A.SwitchStatement,discriminant:b,cases:d}}return b;case "throw":return Y("throw"),Z()&&C({},E.NewlineAfterThrow),b=W(),F(),{type:A.ThrowStatement,argument:b};case "try":return d=[],a=null,Y("try"),b=ja(),v("catch")&&d.push(Ja()),v("finally")&&(y(),a=ja()),0===d.length&&!a&&C({},E.NoCatchOrFinally),{type:A.TryStatement,block:b,handlers:d,finalizer:a};case "var":return Y("var"),b=Ma(),F(),{type:A.VariableDeclaration,declarations:b,kind:"var"};case "while":return Y("while"),H("("),b=
W(),Na(),a=K.inIteration,K.inIteration=!0,d=aa(),K.inIteration=a,{type:A.WhileStatement,test:b,body:d};case "with":return U&&V({},E.StrictModeWith),Y("with"),H("("),b=W(),H(")"),d=aa(),{type:A.WithStatement,object:b,body:d}}if((b=W())&&b.type===A.Identifier&&x(":"))return y(),Object.prototype.hasOwnProperty.call(K.labelSet,b.name)&&C({},E.Redeclaration,"Label",b.name),K.labelSet[b.name]=!0,d=aa(),delete K.labelSet[b.name],{type:A.LabeledStatement,label:b,body:d};F();return{type:A.ExpressionStatement,
expression:b}}function Qa(){if(t.errors)try{H("}")}catch(a){la(a)}else H("}")}function ka(){var a,b=[],d,c,l,m;for(H("{");q<N;){d=M();if(d.type!==G.StringLiteral)break;a=xa();b.push(a);if(a.expression.type!==A.Literal)break;a=e(d.range[0]+1,d.range[1]-1);"use strict"===a?(U=!0,c&&C(c,E.StrictOctalLiteral)):!c&&d.octal&&(c=d)}d=K.labelSet;c=K.inIteration;l=K.inSwitch;m=K.inFunctionBody;K.labelSet={};K.inIteration=!1;K.inSwitch=!1;for(K.inFunctionBody=!0;q<N&&!x("}");){a=xa();if("undefined"===typeof a)break;
b.push(a)}Qa();K.labelSet=d;K.inIteration=c;K.inSwitch=l;K.inFunctionBody=m;return{type:A.BlockStatement,body:b}}function ya(){var b,d,c=[],l,m,B,k;Y("function");l=M();b=ca();U?g(l.value)&&C(l,E.StrictFunctionName):g(l.value)?(m=l,B=E.StrictFunctionName):a(l.value)&&(m=l,B=E.StrictReservedWord);H("(");if(!x(")"))for(k={};q<N;){l=M();d=ca();U?(g(l.value)&&C(l,E.StrictParamName),Object.prototype.hasOwnProperty.call(k,l.value)&&C(l,E.StrictParamDupe)):m||(g(l.value)?(m=l,B=E.StrictParamName):a(l.value)?
(m=l,B=E.StrictReservedWord):Object.prototype.hasOwnProperty.call(k,l.value)&&(m=l,B=E.StrictParamDupe));c.push(d);k[d.name]=!0;if(x(")"))break;H(",")}H(")");l=U;d=ka();U&&m&&C(m,B);U=l;return{type:A.FunctionDeclaration,id:b,params:c,body:d}}function za(){var b,d=null,c,l,m,B=[],k;Y("function");x("(")||(b=M(),d=ca(),U?g(b.value)&&C(b,E.StrictFunctionName):g(b.value)?(c=b,l=E.StrictFunctionName):a(b.value)&&(c=b,l=E.StrictReservedWord));H("(");if(!x(")"))for(k={};q<N;){b=M();m=ca();U?(g(b.value)&&
C(b,E.StrictParamName),Object.prototype.hasOwnProperty.call(k,b.value)&&C(b,E.StrictParamDupe)):c||(g(b.value)?(c=b,l=E.StrictParamName):a(b.value)?(c=b,l=E.StrictReservedWord):Object.prototype.hasOwnProperty.call(k,b.value)&&(c=b,l=E.StrictParamDupe));B.push(m);k[m.name]=!0;if(x(")"))break;H(",")}H(")");m=U;b=ka();U&&c&&C(c,l);U=m;return{type:A.FunctionExpression,id:d,params:B,body:b}}function xa(){var a=M();if(a.type===G.Keyword)switch(a.value){case "const":case "let":return Ga(a.value);case "function":return ya();
default:return aa()}if(a.type!==G.EOF)return aa()}function Ka(){U=!1;for(var a=A.Program,b,d=[],c,l;q<N;){c=M();if(c.type!==G.StringLiteral)break;b=xa();d.push(b);if(b.expression.type!==A.Literal)break;b=e(c.range[0]+1,c.range[1]-1);"use strict"===b?(U=!0,l&&C(l,E.StrictOctalLiteral)):!l&&c.octal&&(l=c)}for(;q<N;){b=xa();if("undefined"===typeof b)break;d.push(b)}return{type:a,body:d}}function Oa(a,b,d,l){c("number"===typeof a,"Comment must have valid position");0<t.comments.length&&t.comments[t.comments.length-
1].range[1]>a||t.comments.push({range:[a,b],type:d,value:l})}function Ua(){var a,b,c,l,m;a="";for(m=l=!1;q<N;)if(b=I[q],m)b=w(),q>=N?(m=!1,a+=b,Oa(c,q,"Line",a)):p(b)?(m=!1,Oa(c,q,"Line",a),"\r"===b&&"\n"===I[q]&&++q,++O,Q=q,a=""):a+=b;else if(l)p(b)?("\r"===b&&"\n"===I[q+1]?(++q,a+="\r\n"):a+=b,++O,++q,Q=q,q>=N&&C({},E.UnexpectedToken,"ILLEGAL")):(b=w(),q>=N&&C({},E.UnexpectedToken,"ILLEGAL"),a+=b,"*"===b&&(b=I[q],"/"===b&&(a=a.substr(0,a.length-1),l=!1,++q,Oa(c,q,"Block",a),a="")));else if("/"===
b)if(b=I[q+1],"/"===b)c=q,q+=2,m=!0;else if("*"===b)c=q,q+=2,l=!0,q>=N&&C({},E.UnexpectedToken,"ILLEGAL");else break;else if(d(b))++q;else if(p(b))++q,"\r"===b&&"\n"===I[q]&&++q,++O,Q=q;else break}function Va(){var a=t.advance(),b,d;a.type!==G.EOF&&(b=[a.range[0],a.range[1]],d=e(a.range[0],a.range[1]),t.tokens.push({type:da[a.type],value:d,range:b}));return a}function Wa(){var a,b,d;s();a=q;b=t.scanRegExp();0<t.tokens.length&&(d=t.tokens[t.tokens.length-1],d.range[0]===a&&"Punctuator"===d.type&&("/"===
d.value||"/\x3d"===d.value)&&t.tokens.pop());t.tokens.push({type:"RegularExpression",value:b.literal,range:[a,q]});return b}function fa(a){return{type:A.Literal,value:a.value}}function Xa(a){return{type:A.Literal,value:a.value,raw:e(a.range[0],a.range[1])}}function Ya(a,b){return function(d){function c(a){return a.type===A.LogicalExpression||a.type===A.BinaryExpression}function l(d){c(d.left)&&l(d.left);c(d.right)&&l(d.right);a&&"undefined"===typeof d.range&&(d.range=[d.left.range[0],d.right.range[1]]);
b&&"undefined"===typeof d.loc&&(d.loc={start:d.left.loc.start,end:d.right.loc.end})}return function(){var m,g,B;s();g=[q,0];B={start:{line:O,column:q-Q}};m=d.apply(null,arguments);if("undefined"!==typeof m)return a&&(g[1]=q,m.range=g),b&&(B.end={line:O,column:q-Q},m.loc=B),c(m)&&l(m),m.type===A.MemberExpression&&("undefined"!==typeof m.object.range&&(m.range[0]=m.object.range[0]),"undefined"!==typeof m.object.loc&&(m.loc.start=m.object.loc.start)),m}}}function Za(){function a(b){return function(){try{return b.apply(null,
arguments)}catch(a){return la(a),null}}}function b(a){return function(){t.statementStart=q;try{return a.apply(null,arguments)}catch(b){la(b)}}}var d;t.comments&&(t.skipComment=s,s=Ua);t.raw&&(t.createLiteral=fa,fa=Xa);if(t.range||t.loc||t.errors)d=Ya(t.range,t.loc),t.parseAdditiveExpression=ra,t.parseAssignmentExpression=ba,t.parseBitwiseANDExpression=ta,t.parseBitwiseORExpression=ua,t.parseBitwiseXORExpression=va,t.parseBlock=ja,t.parseFunctionSourceElements=ka,t.parseCallMember=Aa,t.parseCatchClause=
Ja,t.parseComputedMember=oa,t.parseConditionalExpression=Ea,t.parseConstLetDeclaration=Ga,t.parseEqualityExpression=sa,t.parseExpression=W,t.parseForVariableDeclaration=Ha,t.parseFunctionDeclaration=ya,t.parseFunctionExpression=za,t.parseLogicalANDExpression=wa,t.parseLogicalORExpression=Da,t.parseMultiplicativeExpression=qa,t.parseNewExpression=pa,t.parseNonComputedMember=na,t.parseNonComputedProperty=ma,t.parseObjectProperty=D,t.parseObjectPropertyKey=S,t.parsePostfixExpression=Ba,t.parsePrimaryExpression=
X,t.parseProgram=Ka,t.parsePropertyFunction=P,t.parseRelationalExpression=ia,t.parseStatement=aa,t.parseShiftExpression=Ca,t.parseSwitchCase=Ia,t.parseUnaryExpression=ha,t.parseVariableDeclaration=Fa,t.parseVariableIdentifier=ca,t.consumeSemicolon=F,ra=d(t.parseAdditiveExpression),ba=d(t.parseAssignmentExpression),ta=d(t.parseBitwiseANDExpression),ua=d(t.parseBitwiseORExpression),va=d(t.parseBitwiseXORExpression),ja=d(t.parseBlock),ka=d(t.parseFunctionSourceElements),Aa=d(t.parseCallMember),Ja=d(t.parseCatchClause),
oa=d(t.parseComputedMember),Ea=d(t.parseConditionalExpression),Ga=d(t.parseConstLetDeclaration),sa=d(t.parseEqualityExpression),W=d(t.parseExpression),Ha=d(t.parseForVariableDeclaration),ya=d(t.parseFunctionDeclaration),za=d(t.parseFunctionExpression),wa=d(t.parseLogicalANDExpression),Da=d(t.parseLogicalORExpression),qa=d(t.parseMultiplicativeExpression),pa=d(t.parseNewExpression),na=d(t.parseNonComputedMember),ma=d(t.parseNonComputedProperty),D=d(t.parseObjectProperty),S=d(t.parseObjectPropertyKey),
Ba=d(t.parsePostfixExpression),X=d(t.parsePrimaryExpression),Ka=d(t.parseProgram),P=d(t.parsePropertyFunction),ia=d(t.parseRelationalExpression),aa=d(t.parseStatement),Ca=d(t.parseShiftExpression),Ia=d(t.parseSwitchCase),ha=d(t.parseUnaryExpression),Fa=d(t.parseVariableDeclaration),ca=d(t.parseVariableIdentifier);t.errors&&(aa=b(aa),W=a(W),ma=a(ma),F=a(F));"undefined"!==typeof t.tokens&&(t.advance=B,t.scanRegExp=m,B=Va,m=Wa)}var G,da,A,ga,E,La,I,U,q,O,Q,N,$,K,t;G={BooleanLiteral:1,EOF:2,Identifier:3,
Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8};da={};da[G.BooleanLiteral]="Boolean";da[G.EOF]="\x3cend\x3e";da[G.Identifier]="Identifier";da[G.Keyword]="Keyword";da[G.NullLiteral]="Null";da[G.NumericLiteral]="Numeric";da[G.Punctuator]="Punctuator";da[G.StringLiteral]="String";A={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",
CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",
LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",
VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"};ga={Data:1,Get:2,Set:4};E={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",
InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",
StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",
AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"};
La={NonAsciiIdentifierStart:RegExp("[\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]"),
NonAsciiIdentifierPart:RegExp("[\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05d0-\u05ea\u05f0-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u0800-\u082d\u0840-\u085b\u08a0\u08a2-\u08ac\u08e4-\u08fe\u0900-\u0963\u0966-\u096f\u0971-\u0977\u0979-\u097f\u0981-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7\u09c8\u09cb-\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09e6-\u09f1\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c58\u0c59\u0c60-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1\u0cf2\u0d02\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d57\u0d60-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772\u1773\u1780-\u17d3\u17d7\u17dc\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1877\u1880-\u18aa\u18b0-\u18f5\u1900-\u191c\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19d9\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1cd0-\u1cd2\u1cd4-\u1cf6\u1d00-\u1de6\u1dfc-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u200c\u200d\u203f\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u2e2f\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099\u309a\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua697\ua69f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua827\ua840-\ua873\ua880-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua900-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a\uaa7b\uaa80-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabea\uabec\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]")};
"undefined"===typeof"esprima"[0]&&(e=function(a,b){return I.slice(a,b).join("")});b.version="1.0.0-dev";b.parse=function(a,b){var d,c;c=String;"string"!==typeof a&&!(a instanceof String)&&(a=c(a));I=a;q=0;O=0<I.length?1:0;Q=0;N=I.length;$=null;K={allowIn:!0,labelSet:{},lastParenthesized:null,inFunctionBody:!1,inIteration:!1,inSwitch:!1};t={};"undefined"!==typeof b&&(t.range="boolean"===typeof b.range&&b.range,t.loc="boolean"===typeof b.loc&&b.loc,t.raw="boolean"===typeof b.raw&&b.raw,"boolean"===
typeof b.tokens&&b.tokens&&(t.tokens=[]),"boolean"===typeof b.comment&&b.comment&&(t.comments=[]),"boolean"===typeof b.tolerant&&b.tolerant&&(t.errors=[]));if(0<N&&"undefined"===typeof I[0]&&(a instanceof String&&(I=a.valueOf()),"undefined"===typeof I[0])){c=a;var l=c.length,g=[],k;for(k=0;k<l;++k)g[k]=c.charAt(k);I=g}Za();try{d=Ka(),"undefined"!==typeof t.comments&&(d.comments=t.comments),"undefined"!==typeof t.tokens&&(d.tokens=t.tokens),"undefined"!==typeof t.errors&&(d.errors=t.errors)}catch(J){throw J;
}finally{"function"===typeof t.skipComment&&(s=t.skipComment);t.raw&&(fa=t.createLiteral);if(t.range||t.loc||t.errors)ra=t.parseAdditiveExpression,ba=t.parseAssignmentExpression,ta=t.parseBitwiseANDExpression,ua=t.parseBitwiseORExpression,va=t.parseBitwiseXORExpression,ja=t.parseBlock,ka=t.parseFunctionSourceElements,Aa=t.parseCallMember,Ja=t.parseCatchClause,oa=t.parseComputedMember,Ea=t.parseConditionalExpression,Ga=t.parseConstLetDeclaration,sa=t.parseEqualityExpression,W=t.parseExpression,Ha=
t.parseForVariableDeclaration,ya=t.parseFunctionDeclaration,za=t.parseFunctionExpression,wa=t.parseLogicalANDExpression,Da=t.parseLogicalORExpression,qa=t.parseMultiplicativeExpression,pa=t.parseNewExpression,na=t.parseNonComputedMember,ma=t.parseNonComputedProperty,D=t.parseObjectProperty,S=t.parseObjectPropertyKey,X=t.parsePrimaryExpression,Ba=t.parsePostfixExpression,Ka=t.parseProgram,P=t.parsePropertyFunction,ia=t.parseRelationalExpression,aa=t.parseStatement,Ca=t.parseShiftExpression,Ia=t.parseSwitchCase,
ha=t.parseUnaryExpression,Fa=t.parseVariableDeclaration,ca=t.parseVariableIdentifier,F=t.consumeSemicolon;"function"===typeof t.scanRegExp&&(B=t.advance,m=t.scanRegExp);t={}}return d};b.Syntax=function(){var a,b={};"function"===typeof Object.create&&(b=Object.create(null));for(a in A)A.hasOwnProperty(a)&&(b[a]=A[a]);"function"===typeof Object.freeze&&Object.freeze(b);return b}()})("undefined"===typeof exports?esprima={}:exports);define("esprima",function(){});
(function(b,c){"function"===typeof define&&define.amd?define("orion/Deferred",c):"object"===typeof exports?module.exports=c():(b.orion=b.orion||{},b.orion.Deferred=c())})(this,function(){function b(){for(var b;b=f.shift();)b();d=!1}function c(b){f.push(b);d||(d=!0,p())}function e(b){return function(d){b(d)}}function n(){function b(){for(var a;a=f.shift();){var d=a.deferred,c="fulfilled"===k?"resolve":"reject";a=a[c];if("function"===typeof a)try{var l=a(g),m=l&&("object"===typeof l||"function"===typeof l)&&
l.then;if("function"===typeof m)if(l===d.promise)d.reject(new TypeError);else{var B=l.cancel;"function"===typeof B?d._parentCancel=B.bind(l):delete d._parentCancel;m.call(l,e(d.resolve),e(d.reject),e(d.progress))}else d.resolve(l)}catch(y){d.reject(y)}else d[c](g)}}function d(a){delete s._parentCancel;k="rejected";g=a;f.length&&c(b)}function p(a){function J(a){return function(b){(!k||"assumed"===k)&&a(b)}}delete s._parentCancel;try{var e=a&&("object"===typeof a||"function"===typeof a)&&a.then;if("function"===
typeof e)if(a===s)d(new TypeError);else{k="assumed";var l=a&&a.cancel;if("function"!==typeof l){var m=new n;a=m.promise;try{e(m.resolve,m.reject,m.progress)}catch(B){m.reject(B)}l=a.cancel;e=a.then}g=a;e.call(a,J(p),J(d));s._parentCancel=l.bind(a)}else k="fulfilled",g=a,f.length&&c(b)}catch(y){J(d)(y)}}function a(){var a=s._parentCancel;a?(delete s._parentCancel,a()):k||(a=Error("Cancel"),a.name="Cancel",d(a))}var g,k,f=[],s=this;this.resolve=function(a){k||p(a);return s};this.reject=function(a){k||
d(a);return s};this.progress=function(a){k||f.forEach(function(b){if(b.progress)try{b.progress(a)}catch(d){}});return s.promise};this.cancel=function(){s._parentCancel?setTimeout(a,0):a();return s};this.then=function(a,d,g){var l=new n;l._parentCancel=s.promise.cancel;f.push({resolve:a,reject:d,progress:g,deferred:l});("fulfilled"===k||"rejected"===k)&&c(b);return l.promise};this.promise={then:s.then,cancel:s.cancel}}var f=[],d=!1,p=function(){if("undefined"!==typeof process&&"function"===typeof process.nextTick){var d=
process.nextTick;return function(){d(b)}}if("function"===typeof MutationObserver){var c=document.createElement("div");(new MutationObserver(b)).observe(c,{attributes:!0});return function(){c.setAttribute("class","_tick")}}return function(){setTimeout(b,0)}}();n.all=function(b,d){function c(a,b){p||(k[a]=b,0===--g&&e.resolve(k))}function a(a,b){if(!p){if(d)try{c(a,d(b));return}catch(g){b=g}e.reject(b)}}var g=b.length,k=[],p=!1,e=new n;e.then(void 0,function(){p=!0;b.forEach(function(a){a.cancel&&a.cancel()})});
0===g?e.resolve(k):b.forEach(function(b,d){b.then(c.bind(void 0,d),a.bind(void 0,d))});return e.promise};n.when=function(b,d,c,a){var g;b&&"function"===typeof b.then||(g=new n,g.resolve(b),b=g.promise);return b.then(d,c,a)};return n});
define("orion/objects",[],function(){function b(b){for(var e=1;e<arguments.length;e++){var n=arguments[e],f;for(f in n)Object.prototype.hasOwnProperty.call(n,f)&&(b[f]=n[f])}return b}return{clone:function(c){if(Array.isArray(c))return Array.prototype.slice.call(c);var e=Object.create(Object.getPrototypeOf(c));b(e,c);return e},mixin:b,toArray:function(b){return Array.isArray(b)?b:[b]}}});
define("orion/serialize",[],function(){return{serializeError:function(b){var c=b?JSON.parse(JSON.stringify(b)):b;b instanceof Error&&(c.__isError=!0,c.message=c.message||b.message,c.name=c.name||b.name,c.stack=c.stack||b.stack);return c}}});
define("javascript/astManager",["esprima","orion/Deferred","orion/objects","orion/serialize"],function(b,c,e,n){function f(){this.cache=null}var d={Unexpected:1,EndOfInput:2};e.mixin(f.prototype,{getAST:function(b){if(this.cache)return(new c).resolve(this.cache);var d=this;return b.getText().then(function(b){b=d.parse(b);return d.cache=b})},parse:function(b){try{var d=esprima.parse(b,{range:!0,tolerant:!0,comment:!0,tokens:!0})}catch(c){d=this._emptyAST(b),d.errors=[c]}d.errors&&(this._computeErrorTypes(d.errors),
d.errors=d.errors.map(n.serializeError));return d},_emptyAST:function(b){return{type:"Program",body:[],comments:[],tokens:[],range:[0,b&&"number"===typeof b.length?b.length:0]}},_computeErrorTypes:function(b){b&&Array.isArray(b)&&b.forEach(function(b){var c=b.message;b.message=c=c.replace(/^Line \d+: /,"");/^Unexpected/.test(c)&&(b.type=d.Unexpected,/end of input$/.test(c)&&(b.type=d.EndOfInput))})},updated:function(b){this.cache=null}});return{ASTManager:f,ErrorTypes:d}});
define("javascript/contentAssist/indexFiles/mongodbIndex",[],function(){return{"!name":"mongodb","this":"\x3ctop\x3e",global:"\x3ctop\x3e",mongodb:"mongodb",MongoClient:"mongodb.MongoClient",Db:"mongodb.Db","!define":{mongodb:{MongoClient:{"!proto":"Object","!type":"fn(serverConfig: Object, options: Object)",prototype:{connect:{"!type":"fn(url: String, options: Object, callback: fn())"},open:{"!type":"fn(callback: fn())"},close:{"!type":"fn(callback: fn())"},db:{"!type":"fn(dbName: String) -\x3e Db"}},
connect:{"!type":"fn(url: String, options: Object, callback: fn())"}},Db:{"!proto":"Object","!type":"fn(databaseName: String, serverConfig: Object, options: Object)",prototype:{addUser:{"!type":"fn(username: String, password: String, options: Object, callback: fn())"},admin:{"!type":"fn(callback: fn())"},authenticate:{"!type":"fn(username: String, password: String, options: Object, callback: fn())"},close:{"!type":"fn(forceClose: Boolean, callback: fn())"},createCollection:{"!type":"fn(collectionName: String, options: Object, callback: fn())"},
createIndex:{"!type":"fn(collectionName: String, fieldOrSpec: Object, options: Object, callback: fn())"},command:{"!type":"fn(selector: Object, options: Object, callback: fn())"},collection:{"!type":"fn(collectionName: String, options: Object, callback: fn())"},collectionsInfo:{"!type":"fn(collectionName: String, callback: fn())"},collectionNames:{"!type":"fn(collectionName: String, options: Object, callback: fn())"},collections:{"!type":"fn(callback: fn())"},cursorInfo:{"!type":"fn(options: Object, callback: fn())"},
db:{"!type":"fn(dbName: String) -\x3e Db"},dereference:{"!type":"fn(dbRef: DBRef, callback: fn())"},dropCollection:{"!type":"fn(collectionName: String, callback: fn())"},dropDatabase:{"!type":"fn(callback: fn())"},dropIndex:{"!type":"fn(collectionName: String, indexName: String, callback: fn())"},ensureIndex:{"!type":"fn(collectionName: String, fieldOrSpec: Object, options: Object, callback: fn())"},executeDbAdminCommand:{"!type":"fn(command_hash: String, options: Object, callback: fn())"},executeDbCommand:{"!type":"fn(command_hash: String, options: Object, callback: fn())"},
eval:{"!type":"fn(code: Code, parameters: Object, options: Object, callback: fn())"},indexInformation:{"!type":"fn(collectionName: String, options: Object, callback: fn())"},logout:{"!type":"fn(options: Object, callback: fn())"},open:{"!type":"fn(callback: fn())"},reIndex:{"!type":"fn(collectionName: String, callback: fn())"},removeAllEventListeners:{"!type":"fn()"},renameCollection:{"!type":"fn(fromCollection: String, toCollection: String, options: Object, callback: fn())"},removeUser:{"!type":"fn(username: String, options: Object, callback: fn())"},
stats:{"!type":"fn(options: Object, callback: fn())"}},connect:{"!type":"fn(url: String, options: Object, callback: fn())"},DEFAULT_URL:"String",wrap:{"!type":"fn()"}}}}}});
define("javascript/contentAssist/indexFiles/mysqlIndex",[],function(){return{"!name":"mysql","this":"\x3ctop\x3e",global:"\x3ctop\x3e",mysql:"mysql",Types:"mysql.Types",Connection:"Connection",Pool:"Pool",PoolCluster:"PoolCluster",Query:"Query","!define":{mysql:{createConnection:{"!type":"fn(config: Object) -\x3e +Connection"},createPool:{"!type":"fn(config: Object) -\x3e +Pool"},createPoolCluster:{"!type":"fn(config: Object) -\x3e +PoolCluster"},createQuery:{"!type":"fn(sql: String, values: Object, cb: fn()) -\x3e +Query"},
escape:{"!type":"fn(val: String, stringifyObjects: Boolean, timeZone: String) -\x3e String"},escapeId:{"!type":"fn(val: String, forbidQualified: Boolean) -\x3e String"},format:{"!type":"fn(sql: String, values: [String], stringifyObjects: Boolean, timeZone: String) -\x3e String"},Types:{"!proto":"Object",DECIMAL:"Number",TINY:"Number",SHORT:"Number",LONG:"Number",FLOAT:"Number",DOUBLE:"Number",NULL:"Number",TIMESTAMP:"Number",LONGLONG:"Number",INT24:"Number",DATE:"Number",TIME:"Number",DATETIME:"Number",
YEAR:"Number",NEWDATE:"Number",VARCHAR:"Number",BIT:"Number",NEWDECIMAL:"Number",ENUM:"Number",SET:"Number",TINY_BLOB:"Number",MEDIUM_BLOB:"Number",LONG_BLOB:"Number",BLOB:"Number",VAR_STRING:"Number",STRING:"Number",GEOMETRY:"Number"}},Connection:{"!proto":"EventEmitter","!type":"fn(options: Object)",createQuery:{"!type":"fn(sql: String, values: Object, cb: fn()) -\x3e +Query"},prototype:{connect:{"!type":"fn(cb: fn())"},changeUser:{"!type":"fn(options: Object, cb: fn()) -\x3e Object"},beginTransaction:{"!type":"fn(cb: fn()) -\x3e Object"},
commit:{"!type":"fn(cb: fn()) -\x3e Object"},rollback:{"!type":"fn(cb: fn()) -\x3e Object"},query:{"!type":"fn(sql: Object, values: Object, cb: fn()) -\x3e Object"},ping:{"!type":"fn(cb: fn())"},statistics:{"!type":"fn(cb: fn())"},end:{"!type":"fn(cb: fn())"},destroy:{"!type":"fn()"},pause:{"!type":"fn()"},resume:{"!type":"fn()"},escape:{"!type":"fn(value: String) -\x3e String"},format:{"!type":"fn(sql: Object, values: [String]) -\x3e String"}}},Pool:{"!proto":"EventEmitter","!type":"fn(options: Object)",
prototype:{getConnection:{"!type":"fn(cb: fn(err: Error, conn: Connection))"},releaseConnection:{"!type":"fn(connection: Connection)"},end:{"!type":"fn(cb: fn(err: Error)) -\x3e Object"},query:{"!type":"fn(sql: String, values: Object, cb: fn())"},escape:{"!type":"fn(value: String) -\x3e String"}}},PoolCluster:{"!proto":"Object","!type":"fn(config: Object)",prototype:{of:{"!type":"fn(pattern: String, selector: String) -\x3e Object"},add:{"!type":"fn(id: String, config: String)"},getConnection:{"!type":"fn(pattern: String, selector: String, cb: fn())"},
end:{"!type":"fn()"}}},Query:{"!proto":"Sequence","!type":"fn(options: Object, callback: fn())",prototype:{start:{"!type":"fn()"},determinePacket:{"!type":"fn(firstByte: Number, parser: Object)"},OkPacket:{"!type":"fn(packet: Object)"},ErrorPacket:{"!type":"fn(packet: Object)"},ResultSetHeaderPacket:{"!type":"fn(packet: Object)"},FieldPacket:{"!type":"fn(packet: Object)"},EofPacket:{"!type":"fn(packet: Object)"},RowDataPacket:{"!type":"fn(packet: Object, parser: Parser, connection: Connection)"},
stream:{"!type":"fn(options: Object) -\x3e Object"}}},Sequence:{"!proto":"Object","!type":"fn(callback: fn())",determinePacket:{"!type":"fn(byte: Number)"},prototype:{hasErrorHandler:{"!type":"fn() -\x3e Boolean"},end:{"!type":"fn(err: Error)"},OkPacket:{"!type":"fn(packet: Object)"},ErrorPacket:{"!type":"fn(packet: Object)"},start:{"!type":"fn()"}}}}}});
define("javascript/contentAssist/indexFiles/postgresIndex",[],function(){return{"!name":"pg","this":"\x3ctop\x3e",global:"\x3ctop\x3e",pg:"pg",PG:"pg.PG",Client:"pg.Client",Connection:"pg.Connection",Error:"pg.Error",Query:"pg.Query",Types:"pg.Types",Defaults:"pg.Defaults","!define":{pg:{PG:{"!proto":"EventEmitter","!type":"fn(config: Object)",prototype:{end:{"!type":"fn()"},connect:{"!type":"fn(config: Object, callback: fn())"},cancel:{"!type":"fn(config: Object, client: Client, query: Query)"}},
Client:"Client",Query:"Query",pools:"Pool",types:"Types",Connection:"Connection",defaults:"Defaults"},Client:{"!proto":"EventEmitter","!type":"fn(config: Object)",prototype:{connect:{"!type":"fn(callback: fn(err:Error))"},getStartupConf:{"!type":"fn() -\x3e Object"},cancel:{"!type":"fn(client: Client, query: Query)"},escapeIdentifier:{"!type":"fn(str: String) -\x3e String"},escapeLiteral:{"!type":"fn(str: String) -\x3e String"},copyFrom:{"!type":"fn(text: String)"},copyTo:{"!type":"fn(text: String)"},
query:{"!type":"fn(config: Object, values: Object, callback: fn()) -\x3e Object"},end:{"!type":"fn()"}},md5:"fn(string: String)"},Connection:{"!proto":"EventEmitter","!type":"fn(config: Object)",prototype:{connect:{"!type":"fn(port: Number, host: String)"},attachListeners:{"!type":"fn(stream: Object)"},requestSsl:{"!type":"fn(config: Object)"},startup:{"!type":"fn(config: Object)"},cancel:{"!type":"fn(processID: Number, secretKey: String)"},password:{"!type":"fn(password: String)"},query:{"!type":"fn(text: String)"},
parse:{"!type":"fn(query: Query, more: Object)"},bind:{"!type":"fn(config: Object, more: Object)"},execute:{"!type":"fn(config: Object, more: Object)"},flush:{"!type":"fn()"},sync:{"!type":"fn()"},end:{"!type":"fn()"},describe:{"!type":"fn(msg: Message, more: Object)"},sendCopyFromChunk:{"!type":"fn(chunk: Object)"},endCopyFrom:{"!type":"fn()"},sendCopyFail:{"!type":"fn(msg: Message)"},setBuffer:{"!type":"fn(buffer: Buffer)"},readSslResponse:{"!type":"fn()"},parseMessage:{"!type":"fn() -\x3e Boolean"},
parseR:{"!type":"fn(buffer: Buffer, length: Number) -\x3e Message"},parseS:{"!type":"fn(buffer: Buffer, length: Number) -\x3e Message"},parseK:{"!type":"fn(buffer: Buffer, length: Number) -\x3e Message"},parseC:{"!type":"fn(buffer: Buffer, length: Number) -\x3e Message"},parseZ:{"!type":"fn(buffer: Buffer, length: Number) -\x3e Message"},parseT:{"!type":"fn(buffer: Buffer, length: Number) -\x3e Message"},parseField:{"!type":"fn(buffer: Buffer) -\x3e Object"},parseD:{"!type":"fn(buffer: Buffer, length: Number) -\x3e Message"},
parseE:{"!type":"fn(buffer: Buffer, length: Number) -\x3e Message"},parseN:{"!type":"fn(buffer: Buffer, length: Number) -\x3e Message"},parseA:{"!type":"fn(buffer: Buffer, length: Number) -\x3e Message"},parseG:{"!type":"fn(buffer: Buffer, length: Number) -\x3e Message"},parseH:{"!type":"fn(buffer: Buffer, length: Number) -\x3e Message"},parseGH:{"!type":"fn(buffer: Buffer, msg: String) -\x3e Message"},parsed:{"!type":"fn(buffer: Buffer, length: Number) -\x3e Message"},parseInt32:{"!type":"fn(buffer: Buffer) -\x3e Number"},
parseInt16:{"!type":"fn(buffer: Buffer) -\x3e Number"},readString:{"!type":"fn(buffer: Buffer, length: Number) -\x3e String"},readBytes:{"!type":"fn(buffer: Buffer, length: Number) -\x3e Buffer"},parseCString:{"!type":"fn(buffer: Buffer) -\x3e String"}}},Error:{"!proto":"Object",name:"String",length:"Number",salt:"Buffer",parameterName:"String",parameterValue:"String",processID:"Number",secretKey:"Number",text:"String",status:"String",fieldCount:"Number",fields:"[Object]",processId:"Number",channel:"String",
payload:"String",binary:"Boolean",columnTypes:"[Number]",chunk:"Buffer"},Query:{"!proto":"EventEmitter","!type":"fn(config: Object, values: Object, callback: fn()) -\x3e Query",prototype:{requiresPreparation:{"!type":"fn() -\x3e Boolean"},handleRowDescription:{"!type":"fn(msg: Message)"},handleDataRow:{"!type":"fn(msg: Message)"},handleCommandComplete:{"!type":"fn(msg: Message, con: Connection)"},handleReadyForQuery:{"!type":"fn()"},handleError:{"!type":"fn(err: Boolean, connection: Connection)"},
submit:{"!type":"fn(connection: Connection)"},hasBeenParsed:{"!type":"fn(connection: Connection) -\x3e String"},handlePortalSuspended:{"!type":"fn(connection: Connection)"},prepare:{"!type":"fn(connection: Connection)"},handleCopyInResponse:{"!type":"fn(connection: Connection)"},handleCopyData:{"!type":"fn(msg: Message, connection: Connection)"}},portal:{"!type":"String"},isPreparedStatement:{"!type":"Boolean"}},Types:{"!proto":"Object",getTypeParser:{"!type":"fn(oid: String, format: Object) -\x3e Object"},
setTypeParser:{"!type":"fn(oid: String, format: String, parseFn: fn())"}},Pool:{"!proto":"Object",all:"Object",getOrCreate:"fn(clientConfig: Object)"},Defaults:{"!proto":"Object",host:{"!type":"String"},port:{"!type":"Number"},rows:{"!type":"Number"},binary:{"!type":"Boolean"},poolSize:{"!type":"Number"},poolIdleTimeout:{"!type":"Number"},reapIntervalMillis:{"!type":"Number"},poolLog:{"!type":"Boolean"},client_encoding:"String",ssl:"Boolean"}}}}});
define("javascript/contentAssist/indexFiles/redisIndex",[],function(){return{"!name":"redis","this":"\x3ctop\x3e",global:"\x3ctop\x3e",redis:"redis",RedisClient:"redis.RedisClient",Multi:"redis.Multi",commands:"Commands","!define":{redis:{debug_mode:{"!type":"Boolean"},createClient:{"!type":"fn(port_arg: Number, host_arg: String, options: Object) -\x3e +redis.RedisClient"},print:{"!type":"fn(err: Error, reply: Object)"},RedisClient:{"!type":"fn(stream: Object, options: Object)",prototype:{initialize_retry_vars:{"!type":"fn()"},
unref:{"!type":"fn()"},flush_and_error:{"!type":"fn(message: String)"},on_error:{"!type":"fn(msg: String)"},do_auth:{"!type":"fn()"},on_connect:{"!type":"fn()"},init_parser:{"!type":"fn()"},on_ready:{"!type":"fn()"},on_info_cmd:{"!type":"fn(err: Error, res: Object)"},ready_check:{"!type":"fn()"},send_offline_queue:{"!type":"fn()"},connection_gone:{"!type":"fn(why: String)"},on_data:{"!type":"fn(data: Object)"},return_error:{"!type":"fn(err: Error)"},return_reply:{"!type":"fn(reply: Object)"},send_command:{"!type":"fn(command: String, args: Object, callback: fn()) -\x3e Object"},
pub_sub_command:{"!type":"fn(command_obj: Object)"},end:{"!type":"fn()"},select:{"!type":"fn(db: Object, callback: fn())"},auth:{"!type":"fn()"},hmget:{"!type":"fn(arg1: Object, arg2: Object, arg3: Object)"},hmset:{"!type":"fn(args: Object, callback: fn())"},multi:{"!type":"fn(args: Object) -\x3e +redis.Multi"},MULTI:{"!type":"fn(args: Object) -\x3e +redis.Multi"},EVAL:{"!type":"fn()"},SELECT:{"!type":"fn()"},AUTH:{"!type":"fn()"},HMGET:{"!type":"fn(arg1: Object, arg2: Object, arg3: Object)"},HMSET:{"!type":"fn(args: Object, callback: fn())"},
eval:{"!type":"fn()"}}},Multi:{"!proto":"Object","!type":"fn(client: RedisClient, args: Object)",prototype:{hmset:{"!type":"fn() -\x3e +redis.Multi"},exec:{"!type":"fn(callback: fn()) -\x3e Boolean"},HMSET:{"!type":"fn()"},EXEC:{"!type":"fn()"}},queue:"[[MULTI]]"}},Commands:{"!proto":"Object",append:"String",auth:"String",bgrewriteaof:"String",bgsave:"String",bitcount:"String",bitop:"String",blpop:"String",brpop:"String",brpoplpush:"String","client kill":"String","client list":"String","client getname":"String",
"client setname":"String","config get":"String","config rewrite":"String","config set":"String","config resetstat":"String",dbsize:"String","debug object":"String","debug segfault":"String",decr:"String",decrby:"String",del:"String",discard:"String",dump:"String",echo:"String",eval:"String",evalsha:"String",exec:"String",exists:"String",expire:"String",expireat:"String",flushall:"String",flushdb:"String",get:"String",getbit:"String",getrange:"String",getset:"String",hdel:"String",hexists:"String",
hget:"String",hgetall:"String",hincrby:"String",hincrbyfloat:"String",hkeys:"String",hlen:"String",hmget:"String",hmset:"String",hset:"String",hsetnx:"String",hvals:"String",incr:"String",incrby:"String",incrbyfloat:"String",info:"String",keys:"String",lastsave:"String",lindex:"String",linsert:"String",llen:"String",lpop:"String",lpush:"String",lpushx:"String",lrange:"String",lrem:"String",lset:"String",ltrim:"String",mget:"String",migrate:"String",monitor:"String",move:"String",mset:"String",msetnx:"String",
multi:"String",object:"String",persist:"String",pexpire:"String",pexpireat:"String",ping:"String",psetex:"String",psubscribe:"String",pubsub:"String",pttl:"String",publish:"String",punsubscribe:"String",quit:"String",randomkey:"String",rename:"String",renamenx:"String",restore:"String",rpop:"String",rpoplpush:"String",rpush:"String",rpushx:"String",sadd:"String",save:"String",scard:"String","script exists":"String","script flush":"String","script kill":"String","script load":"String",sdiff:"String",
sdiffstore:"String",select:"String",set:"String",setbit:"String",setex:"String",setnx:"String",setrange:"String",shutdown:"String",sinter:"String",sinterstore:"String",sismember:"String",slaveof:"String",slowlog:"String",smembers:"String",smove:"String",sort:"String",spop:"String",srandmember:"String",srem:"String",strlen:"String",subscribe:"String",sunion:"String",sunionstore:"String",sync:"String",time:"String",ttl:"String",type:"String",unsubscribe:"String",unwatch:"String",watch:"String",zadd:"String",
zcard:"String",zcount:"String",zincrby:"String",zinterstore:"String",zrange:"String",zrangebyscore:"String",zrank:"String",zrem:"String",zremrangebyrank:"String",zremrangebyscore:"String",zrevrange:"String",zrevrangebyscore:"String",zrevrank:"String",zscore:"String",zunionstore:"String",scan:"String",sscan:"String",hscan:"String",zscan:"String"}}}});
define("javascript/contentAssist/indexFiles/expressIndex",[],function(){return{"!name":"express","!define":{express:{createServer:{"!type":"fn() -\x3e application"},application:"application",request:"request",response:"response",Route:"Route",Router:"Router","!proto":"Object","!type":"fn() -\x3e application"},Route:{prototype:{match:{"!type":"fn(path: String) -\x3e Boolean"}},"!proto":"Object","!type":"fn(method: String, path: String, callbacks: [fn()], options: Object)"},Router:{prototype:{param:{"!type":"fn(name: String, fn: fn()) -\x3e Object"},
matchRequest:{"!type":"fn(req: IncomingMessage, i: Number, head: String) -\x3e Route"},match:{"!type":"fn(method: String, url: String, i: Number, head: String) -\x3e Route"},route:{"!type":"fn(method: String, path: String, callbacks: fn()) -\x3e Router"},all:{"!type":"fn(path: String) -\x3e Router"}},"!proto":"Object","!type":"fn(options: Object)"},application:{"!proto":"Object",init:{"!type":"fn()"},defaultConfiguration:{"!type":"fn()"},use:{"!type":"fn(route: String, fn: fn()) -\x3e Object"},engine:{"!type":"fn(ext: String, fn: fn()) -\x3e Object"},
param:{"!type":"fn(name: String, fn: fn()) -\x3e Object"},set:{"!type":"fn(setting: String, val: String) -\x3e Object"},path:{"!type":"fn() -\x3e String"},enabled:{"!type":"fn(setting: String) -\x3e Boolean"},disabled:{"!type":"fn(setting: String) -\x3e Boolean"},enable:{"!type":"fn(setting: String) -\x3e Object"},disable:{"!type":"fn(setting: String) -\x3e Object"},configure:{"!type":"fn(env: String, fn: fn()) -\x3e Object"},all:{"!type":"fn(path: String) -\x3e Object"},render:{"!type":"fn(name: String, options: Object, fn: fn())"},
listen:{"!type":"fn()"}},request:{"!proto":"Object",header:{"!type":"fn(name: String) -\x3e Object"},accepts:{"!type":"fn(type: Object)"},acceptsEncoding:{"!type":"fn(encoding: String) -\x3e Boolean"},acceptsCharset:{"!type":"fn(charset: String) -\x3e Boolean"},acceptsLanguage:{"!type":"fn(lang: String) -\x3e Boolean"},range:{"!type":"fn(size: Number)"},param:{"!type":"fn(name: String, defaultValue: Object) -\x3e String"},is:{"!type":"fn(type: String) -\x3e Boolean"},get:{"!type":"fn(name: String) -\x3e Object"}},
response:{"!proto":"Object",status:{"!type":"fn(code: Number) -\x3e response"},links:{"!type":"fn(links: Object) -\x3e response"},send:{"!type":"fn(body: String) -\x3e response"},json:{"!type":"fn(obj: Object) -\x3e response"},jsonp:{"!type":"fn(obj: Object) -\x3e response"},sendfile:{"!type":"fn(path: String, options: Object, fn: fn())"},download:{"!type":"fn(path: String, filename: String, fn: fn())"},type:{"!type":"fn(type: String)"},format:{"!type":"fn(obj: Object) -\x3e response"},attachment:{"!type":"fn(filename: String) -\x3e response"},
header:{"!type":"fn(field: Object, val: String) -\x3e response"},get:{"!type":"fn(field: String) -\x3e String"},clearCookie:{"!type":"fn(name: String, options: Object) -\x3e response"},cookie:{"!type":"fn(name: String, val: Object, options: Object) -\x3e response"},location:{"!type":"fn(url: String) -\x3e response"},redirect:{"!type":"fn(url: String)"},vary:{"!type":"fn(field: Object) -\x3e response"},render:{"!type":"fn(view: String, options: Object, fn: fn())"},contentType:{"!type":"fn(type: String)"},
set:{"!type":"fn(field: Object, val: String) -\x3e response"}},middleware:{"!proto":"Object",init:{"!type":"fn(app: fn())"}}}}});
define("javascript/contentAssist/indexFiles/amqpIndex",[],function(){return{"!name":"amqp","this":"\x3ctop\x3e",global:"\x3ctop\x3e","!define":{amqp:{"!proto":"Object",Connection:"fn(connectionArgs: Object, options: Object, readyCallback: fn())",createConnection:"fn(options: Object, implOptions: Object, readyCallback: fn()) -\x3e Connection"},Connection:{"!type":"fn(connectionArgs: ?, options: ?, readyCallback: ?)","!proto":"EventEmitter",prototype:{setOptions:"fn(options: Object)",setImplOptions:"fn(options: Object)",
connect:"fn()",reconnect:"fn()",addAllListeners:"fn()",heartbeat:"fn()",exchange:"fn(name: String, options: Object, openCallback: fn()) -\x3e Exchange",exchangeClosed:"fn(name: String)",queue:"fn(name: String) -\x3e Queue",queueClosed:"fn(name: String)",publish:"fn(routingKey: Object, body: Object, options: Object, callback: fn())",generateChannelId:"fn() -\x3e String"}},Exchange:{"!type":"fn(connection: Connection, channel: Channel, name: String, options: Object, openCallback: fn())","!proto":"Channel",
prototype:{publish:"fn(routingKey: Object, data: Object, options: Object, callback: fn())",cleanup:"fn()",destroy:"fn(ifUnused: Boolean)",unbind:"fn()",bind:"fn()",bind_headers:"fn()"}},Queue:{"!type":"fn(connection: Connection, channel: Channel, name: String, options: Object, callback: fn())","!proto":"Channel",prototype:{subscribeRaw:"fn(options: Object, messageListener: fn())",unsubscribe:"fn(consumerTag: String)",subscribe:"fn(options: Object, messageListener: fn())",shift:"fn(reject: Object, requeue: Object)",
bind:"fn(exchange: Exchange, routingKey: String, callback: fn())",unbind:"fn(exchange: Exchange, routingKey: String)",bind_headers:"fn()",destroy:"fn(options: Object)",purge:"fn()",flow:"fn(active: Object)",subscribeJSON:"fn(options: Object, messageListener: fn())"}},Channel:{"!type":"fn(connection: Connection, channel: Channel)","!proto":"EventEmitter",prototype:{closeOK:"fn()",reconnect:"fn()",close:"fn()"}}}}});
define("javascript/contentAssist/proposalUtils",[],function(){return{looselyMatches:function(b,c){if(null===c||null===b)return!1;if(0===b.length)return!0;if(b.charAt(0).toLowerCase()!==c.charAt(0).toLowerCase())return!1;if(this.startsWith(c,b))return!0;var e=c.toLowerCase();if(this.startsWith(e,b))return!0;if(b===b.toLowerCase())return!1;var e=this.toCamelCaseParts(b),n=this.toCamelCaseParts(c);if(e.length>n.length)return!1;for(var f=0;f<e.length;++f)if(!this.startsWith(n[f],e[f]))return!1;return!0},
toCamelCaseParts:function(b){for(var c=[],e=b.length-1;0<=e;--e)this.isUpperCase(b.charAt(e))&&(c.push(b.substring(e)),b=b.substring(0,e));0!==b.length&&c.push(b);return c.reverse()},startsWith:function(b,c){return b.substr(0,c.length)===c},isUpperCase:function(b){return"A"<=b&&"Z">=b},repeatChar:function(b,c){for(var e="",n=0;n<c;n++)e+=b;return e},inRange:function(b,c,e){return c[0]<=b&&(e?c[1]>=b:c[1]>b)},isBefore:function(b,c){return!c?!0:b<c[0]},afterDot:function(b,c,e){var n;n=c.property?c.property.range[0]:
c.range[1]+2;if(!this.inRange(b-1,c.range)||this.inRange(b-1,c.object.range)||b>n)return!1;for(c=c.object.range[1];"."!==e.charAt(c)&&c<n;)c++;return"."!==e.charAt(c)?!1:c<b}}});
(function(b){function c(a,b,d){return a.slice(b,d)}function e(a){return"\n"===a||"\r"===a||"\u2028"===a||"\u2029"===a}function n(a){return" "===a||"\t"===a||"\x0B"===a||"\f"===a||"\u00a0"===a||5760<=a.charCodeAt(0)&&0<="\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\ufeff".indexOf(a)}function f(a){return 0<="0123456789".indexOf(a)}function d(a){return 0<="01234567".indexOf(a)}function p(a){return"$"===a||"_"===a||"\\"===a||"a"<=a&&"z">=a||"A"<=a&&
"Z">=a||128<=a.charCodeAt(0)&&g.NonAsciiIdentifierStart.test(a)}function h(a){return-1==="\x3e\x3c(){}[],:*|?!\x3d".indexOf(a)&&!n(a)&&!e(a)}function r(a,b){}function u(a){return a.replace(/^\s+/,"").replace(/\s+$/,"")}function a(a){var b,d,c,g,k;a=a.replace(/^\/\*\*/,"").replace(/\*\/$/,"");b=0;d=a.length;c=0;for(g="";b<d;){k=a[b];switch(c){case 0:e(k)?g+=k:"*"===k?c=1:n(k)||(g+=k,c=2);break;case 1:n(k)||(g+=k);c=2;break;case 2:g+=k,e(k)&&(c=0)}b+=1}return g}var g,k,w,s,z;g={NonAsciiIdentifierStart:RegExp("[\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]"),
NonAsciiIdentifierPart:RegExp("[\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05d0-\u05ea\u05f0-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u0800-\u082d\u0840-\u085b\u08a0\u08a2-\u08ac\u08e4-\u08fe\u0900-\u0963\u0966-\u096f\u0971-\u0977\u0979-\u097f\u0981-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7\u09c8\u09cb-\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09e6-\u09f1\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c58\u0c59\u0c60-\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1\u0cf2\u0d02\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d57\u0d60-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772\u1773\u1780-\u17d3\u17d7\u17dc\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1877\u1880-\u18aa\u18b0-\u18f5\u1900-\u191c\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19d9\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1cd0-\u1cd2\u1cd4-\u1cf6\u1d00-\u1de6\u1dfc-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u200c\u200d\u203f\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u2e2f\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099\u309a\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua697\ua69f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua827\ua840-\ua873\ua880-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua900-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a\uaa7b\uaa80-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabea\uabec\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]")};
k=void 0!==typeof"doctrine"[0];(z=Array.isArray)||(z=function(a){return"[object Array]"===Object.prototype.toString.call(a)});k||(c=function(a,b,d){return a.slice(b,d).join("")});"dev"==="0.0.4".slice(-3)&&(r=function(a,b){if(!a)throw Error(b);});(function(a){function b(){var a=P[F];F+=1;return a}function c(){var a,l;a="";if("."!==l){a=b();l=P[F];if("0"===a){if("x"===l||"X"===l){for(a+=b();F<S;){l=P[F];if(!(0<="0123456789abcdefABCDEF".indexOf(l)))break;a+=b()}if(2>=a.length)throw"unexpected token";
if(F<S&&(l=P[F],p(l)))throw"unexpected token";X=parseInt(a,16);return v.NUMBER}if(d(l)){for(a+=b();F<S;){l=P[F];if(!d(l))break;a+=b()}if(F<S&&(l=P[F],p(l)||f(l)))throw"unexpected token";X=parseInt(a,8);return v.NUMBER}if(f(l))throw"unexpected token";}for(;F<S;){l=P[F];if(!f(l))break;a+=b()}}if("."===l)for(a+=b();F<S;){l=P[F];if(!f(l))break;a+=b()}if("e"===l||"E"===l){a+=b();l=P[F];if("+"===l||"-"===l)a+=b();l=P[F];if(f(l))for(a+=b();F<S;){l=P[F];if(!f(l))break;a+=b()}else throw"unexpected token";
}if(F<S&&(l=P[F],p(l)))throw"unexpected token";X=parseFloat(a);return v.NUMBER}function m(){var a;for(ea=F;F<S&&n(P[F]);)b();if(F>=S)return D=v.EOF;a=P[F];switch(a){case '"':a="";var m,g,k,B;m=P[F];for(++F;F<S;)if(g=b(),g===m){m="";break}else if("\\"===g)if(g=b(),e(g))"\r"===g&&"\n"===P[F]&&++F;else switch(g){case "n":a+="\n";break;case "r":a+="\r";break;case "t":a+="\t";break;case "u":case "x":k=F;a:{var p=void 0,y=void 0,M=0,p="u"===g?4:2;for(B=0;B<p;++B)if(F<S&&0<="0123456789abcdefABCDEF".indexOf(P[F]))y=
b(),M=16*M+"0123456789abcdef".indexOf(y.toLowerCase());else{B="";break a}B=String.fromCharCode(M)}B?a+=B:(F=k,a+=g);break;case "b":a+="\b";break;case "f":a+="\f";break;case "v":a+="\v";break;default:d(g)?(k="01234567".indexOf(g),F<S&&d(P[F])&&(k=8*k+"01234567".indexOf(b()),0<="0123".indexOf(g)&&F<S&&d(P[F])&&(k=8*k+"01234567".indexOf(b()))),a+=String.fromCharCode(k)):a+=g}else if(e(g))break;else a+=g;if(""!==m)throw"unexpected quote";X=a;return D=v.STRING;case ":":return b(),D=v.COLON;case ",":return b(),
D=v.COMMA;case "(":return b(),D=v.LPAREN;case ")":return b(),D=v.RPAREN;case "[":return b(),D=v.LBRACK;case "]":return b(),D=v.RBRACK;case "{":return b(),D=v.LBRACE;case "}":return b(),D=v.RBRACE;case ".":b();if(F<S){a=P[F];if("\x3c"===a)return b(),D=v.DOT_LT;if("."===a&&F+1<S&&"."===P[F+1])return b(),b(),D=v.REST;if(f(a))return D=c()}return D=v.DOT;case "\x3c":return b(),D=v.LT;case "\x3e":return b(),D=v.GT;case "*":return b(),D=v.STAR;case "|":return b(),D=v.PIPE;case "?":return b(),D=v.QUESTION;
case "!":return b(),D=v.BANG;case "\x3d":return b(),D=v.EQUAL;default:if(f(a))return D=c();if(h(a)){for(X=b();F<S&&h(P[F]);){a=P[F];if("."===a&&F+1<S&&(a=P[F+1],"\x3c"===a))break;X+=b()}return D=v.NAME}return D=v.ILLEGAL}}function g(a,b){r(D===a,b||"consumed token not matched");m()}function y(a){if(D!==a)throw"unexpected token";m()}function M(){var a;a=X;if(D===v.NAME||D===v.STRING)m();else if(D===v.NUMBER)g(v.NUMBER),a=String(a);else throw"unexpected token";return D===v.COLON?(g(v.COLON),{type:x.FieldType,
key:a,value:R()}):{type:x.FieldType,key:a,value:null}}function s(){var a;a=X;y(v.NAME);a={type:x.NameExpression,name:a};if(D===v.DOT_LT||D===v.LT){m();var b=[];for(b.push(H());D===v.COMMA;)g(v.COMMA),b.push(H());y(v.GT);return{type:x.TypeApplication,expression:a,applications:b}}return a}function w(){for(var a=[],b=!0,d,c=!1;D!==v.RPAREN;){D===v.REST&&(g(v.REST),c=!0);d=R();d.type===x.NameExpression&&D===v.COLON&&(g(v.COLON),d={type:x.ParameterType,name:d.name,expression:R()});if(D===v.EQUAL)g(v.EQUAL),
d={type:x.OptionalType,expression:d},b=!1;else if(!b)throw"unexpected token";c&&(d={type:x.RestType,expression:d});a.push(d);D!==v.RPAREN&&y(v.COMMA)}return a}function z(){switch(D){case v.STAR:return g(v.STAR),{type:x.AllLiteral};case v.LPAREN:var a;g(v.LPAREN,"UnionType should start with (");a=[];if(D!==v.RPAREN)for(;;){a.push(R());if(D===v.RPAREN)break;y(v.PIPE)}g(v.RPAREN,"UnionType should end with )");return{type:x.UnionType,elements:a};case v.LBRACK:g(v.LBRACK,"ArrayType should start with [");
for(a=[];D!==v.RBRACK;){if(D===v.REST){g(v.REST);a.push({type:x.RestType,expression:R()});break}else a.push(R());D!==v.RBRACK&&y(v.COMMA)}y(v.RBRACK);return{type:x.ArrayType,elements:a};case v.LBRACE:g(v.LBRACE,"RecordType should start with {");a=[];if(D===v.COMMA)g(v.COMMA);else for(;D!==v.RBRACE;)a.push(M()),D!==v.RBRACE&&y(v.COMMA);y(v.RBRACE);return{type:x.RecordType,fields:a};case v.NAME:if("null"===X)return g(v.NAME),{type:x.NullLiteral};if("undefined"===X)return g(v.NAME),{type:x.UndefinedLiteral};
if("function"===X){var b,d,c;r(D===v.NAME&&"function"===X,"FunctionType should start with 'function'");g(v.NAME);y(v.LPAREN);a=!1;d=[];b=null;D!==v.RPAREN&&(D===v.NAME&&("this"===X||"new"===X)?(a="new"===X,g(v.NAME),y(v.COLON),b=s(),D===v.COMMA&&(g(v.COMMA),d=w())):d=w());y(v.RPAREN);c=null;D===v.COLON&&(g(v.COLON,"ResultType should start with :"),D===v.NAME&&"void"===X?(g(v.NAME),c={type:x.VoidLiteral}):c=R());d={type:x.FunctionType,params:d,result:c};b&&(d["this"]=b,a&&(d["new"]=!0));return d}return s();
default:throw"unexpected token";}}function R(){var a;if(D===v.QUESTION)return g(v.QUESTION),D===v.COMMA||D===v.EQUAL||D===v.RBRACE||D===v.RPAREN||D===v.PIPE||D===v.EOF?{type:x.NullableLiteral}:{type:x.NullableType,expression:z(),prefix:!0};if(D===v.BANG)return g(v.BANG),{type:x.NonNullableType,expression:z(),prefix:!0};a=z();return D===v.BANG?(g(v.BANG),{type:x.NonNullableType,expression:a,prefix:!1}):D===v.QUESTION?(g(v.QUESTION),{type:x.NullableType,expression:a,prefix:!1}):a}function H(){var a;
a=R();if(D!==v.PIPE)return a;a=[a];for(g(v.PIPE);;){a.push(R());if(D!==v.PIPE)break;g(v.PIPE)}return{type:x.UnionType,elements:a}}function u(a,b,d){var c,l,m;switch(a.type){case x.NullableLiteral:c="?";break;case x.AllLiteral:c="*";break;case x.NullLiteral:c="null";break;case x.UndefinedLiteral:c="undefined";break;case x.VoidLiteral:c="void";break;case x.UnionType:c=d?"":"(";l=0;for(m=a.elements.length;l<m;++l)c+=u(a.elements[l],b),l+1!==m&&(c+="|");d||(c+=")");break;case x.ArrayType:c="[";l=0;for(m=
a.elements.length;l<m;++l)c+=u(a.elements[l],b),l+1!==m&&(c+=b?",":", ");c+="]";break;case x.RecordType:c="{";l=0;for(m=a.fields.length;l<m;++l)c+=u(a.fields[l],b),l+1!==m&&(c+=b?",":", ");c+="}";break;case x.FieldType:c=a.value?a.key+(b?":":": ")+u(a.value,b):a.key;break;case x.FunctionType:c=b?"function(":"function (";a["this"]&&(c=a["new"]?c+(b?"new:":"new: "):c+(b?"this:":"this: "),c+=u(a["this"],b),0!==a.params.length&&(c+=b?",":", "));l=0;for(m=a.params.length;l<m;++l)c+=u(a.params[l],b),l+
1!==m&&(c+=b?",":", ");c+=")";a.result&&(c+=(b?":":": ")+u(a.result,b));break;case x.ParameterType:c=a.name+(b?":":": ")+u(a.expression,b);break;case x.RestType:c="...";a.expression&&(c+=u(a.expression,b));break;case x.NonNullableType:c=a.prefix?"!"+u(a.expression,b):u(a.expression,b)+"!";break;case x.OptionalType:c=u(a.expression,b)+"\x3d";break;case x.NullableType:c=a.prefix?"?"+u(a.expression,b):u(a.expression,b)+"?";break;case x.NameExpression:c=a.name;break;case x.TypeApplication:c=u(a.expression,
b)+".\x3c";l=0;for(m=a.applications.length;l<m;++l)c+=u(a.applications[l],b),l+1!==m&&(c+=b?",":", ");c+="\x3e";break;default:throw Error("Unknown type "+a.type);}return c}var x,v,F,ea,P,S,D,X;x={NullableLiteral:"NullableLiteral",AllLiteral:"AllLiteral",NullLiteral:"NullLiteral",UndefinedLiteral:"UndefinedLiteral",VoidLiteral:"VoidLiteral",UnionType:"UnionType",ArrayType:"ArrayType",RecordType:"RecordType",FieldType:"FieldType",FunctionType:"FunctionType",ParameterType:"ParameterType",RestType:"RestType",
NonNullableType:"NonNullableType",OptionalType:"OptionalType",NullableType:"NullableType",NameExpression:"NameExpression",TypeApplication:"TypeApplication"};v={ILLEGAL:0,DOT:1,DOT_LT:2,REST:3,LT:4,GT:5,LPAREN:6,RPAREN:7,LBRACE:8,RBRACE:9,LBRACK:10,RBRACK:11,COMMA:12,COLON:13,STAR:14,PIPE:15,QUESTION:16,BANG:17,EQUAL:18,NAME:19,STRING:20,NUMBER:21,EOF:22};a.parseType=function(a,b){var d;P=a;S=P.length;ea=F=0;k||(P=P.split(""));m();d=H();if(b&&b.midstream)return{expression:d,index:ea};if(D!==v.EOF)throw"not reach to EOF";
return d};a.parseParamType=function(a,b){var d;P=a;S=P.length;ea=F=0;k||(P=P.split(""));m();D===v.REST?d=(g(v.REST),{type:x.RestType,expression:H()}):(d=H(),d=D===v.EQUAL?(g(v.EQUAL),{type:x.OptionalType,expression:d}):d);if(b&&b.midstream)return{expression:d,index:ea};if(D!==v.EOF)throw"not reach to EOF";return d};a.stringify=function(a,b){null==b&&(b={});return u(a,b.compact,b.topLevel)};a.Syntax=x})(w={});(function(b){function d(){var a=h[f];f+=1;return a}function l(){var a="";for(d();f<s&&("a"<=
h[f]&&"z">=h[f]||"A"<=h[f]&&"Z">=h[f]||"0"<=h[f]&&"9">=h[f]);)a+=d();return a}function m(){var a,b,d=f;for(b=!1;d<s;){a=h[d];if(e(a))b=!0;else if(b){if("@"===a)break;n(a)||(b=!1)}d+=1}return d}function B(a,b){var l,m,g;for(g=!1;f<b;)if(l=h[f],n(l))d();else{"{"===l?d():g=!0;break}if(g){g=c(h,f,b);try{return m="param"===a?w.parseParamType(g,{midstream:!0}):w.parseType(g,{midstream:!0}),f+=m.index,m.expression}catch(k){}}else{m=0;for(g="";f<b;){l=h[f];if(e(l))return;if("}"===l)if(0===m){d();break}else m-=
1;else"{"===l&&(m+=1);g+=d()}try{return"param"===a?w.parseParamType(g):w.parseType(g)}catch(B){}}}function y(a,b){for(var c,l,m;f<a&&(n(h[f])||e(h[f]));)d();if(!(f>=a)){if(!p(h[f]))if(b&&"["===h[f])m=!0;else return;for(l=d();f<a;){c=h[f];if(n(c)||e(c)){d();break}if(m&&"]"===h[f]){l+=d();break}if(!("$"===c||"_"===c||"\\"===c||"a"<=c&&"z">=c||"A"<=c&&"Z">=c||"0"<=c&&"9">=c||128<=c.charCodeAt(0)&&g.NonAsciiIdentifierPart.test(c)))return;l+=d()}m&&"]"===h[f]&&(l+=d());return l}}function M(){function a(d){b.errors||
(b.errors=[]);b.errors.push(d)}for(var b,g,k;f<s&&"@"!==h[f];)d();if(!(f>=s)&&(r("@"===h[f]),g=l(),b={title:g,description:null},g||!(a("Missing or invalid title"),!R))){k=m(g);if("define"===g||"enum"===g||"extends"===g||"implements"===g||"param"===g||"return"===g||"this"===g||"type"===g||"typedef"===g||"throws"===g||"returns"===g||"property"===g||"augments"===g)if(b.type=B(g,k),!b.type&&(a("Missing or invalid tag type"),!R))return;if("param"===g||"property"===g)if(b.name=y(k,H&&"param"===g),b.name)"["===
b.name.charAt(0)&&"]"===b.name.charAt(b.name.length-1)&&(b.name=b.name.substring(1,b.name.length-1),g={type:"OptionalType",expression:b.type},b.type=g);else if(a("Missing or invalid tag name"),!R)return;if(g=u(c(h,f,k)))b.description=g;f=k;return b}}var f,s,h,R,H;b.parse=function(b,c){var l=[],g,m,B;void 0===c&&(c={});h="boolean"===typeof c.unwrap&&c.unwrap?a(b):b;if(c.tags)if(z(c.tags)){B={};g=0;for(m=c.tags.length;g<m;g++)if("string"===typeof c.tags[g])B[c.tags[g]]=!0;else throw Error('Invalid "tags" parameter: '+
c.tags);}else throw Error('Invalid "tags" parameter: '+c.tags);k||(h=h.split(""));s=h.length;f=0;R=c.recoverable;H=c.sloppy;for(g="";f<s&&"@"!==h[f];)g+=d();for(m=u(g);;){g=M();if(!g)break;(!B||B.hasOwnProperty(g.title))&&l.push(g)}return{description:m,tags:l}}})(s={});b.version="0.0.4";b.parse=s.parse;b.parseType=w.parseType;b.parseParamType=w.parseParamType;b.unwrapComment=a;b.Syntax=function(a){var b={},d;for(d in a)a.hasOwnProperty(d)&&(b[d]=a[d]);return b}(w.Syntax);b.type={Syntax:b.Syntax,parseType:w.parseType,
parseParamType:w.parseParamType,stringify:w.stringify}})("undefined"===typeof exports?doctrine={}:exports);define("doctrine/doctrine",function(){});
define("javascript/contentAssist/typeUtils",["javascript/contentAssist/proposalUtils","doctrine/doctrine"],function(b,c){function e(a){if(!a||a.type)return a;try{return doctrine.parseParamType(a)}catch(b){return console.error("doctrine failure to parse: "+a),{}}}function n(a){if("string"!==typeof a)throw Error("Expected string, but found: "+JSON.parse(a));return{type:"NameExpression",name:a}}function f(a,b,d){if("string"!==typeof a)return!1;if("Object"===a||"undefined"===a)return!0;if(a.substring(0,
u.length)!==u)return!1;if(d){if(d[a])return!0}else d={};d[a]=!0;a=b[a];var c=0,e;for(e in a)if(a.hasOwnProperty(e)&&(c++,1<c))break;return 1===c?f(a.$$proto.typeObj.name,b,d):!1}var d=n("Object"),p=/\$\$__JUST_DOTS__\$\$/g,h=/:undefined|:\{\}/g,r=function(a,b,d){this._typeObj=e(a);this.range=b;this.path=d};r.prototype={set typeObj(a){"string"===typeof a&&(a=e(a));this._typeObj=a},get typeObj(){return this._typeObj}};r.revive=function(a){var b=new r,d;for(d in a)a.hasOwnProperty(d)&&("typeSig"===d?
b.typeObj=a[d]:b[d]=a[d]);return b};var u="gen~";return{Definition:r,GEN_NAME:u,isArrayType:function(a){return"ArrayType"===a.type||"TypeApplication"===a.type},isFunctionOrConstructor:function(a){return"FunctionType"===a.type},isPrototypeName:function(a){return"~proto"===a.substr(-6,6)},parameterizeArray:function(a){return{type:"ArrayType",elements:[a]}},createAppliedArray:function(a){return{type:"TypeApplication",applications:[a],expression:{name:"Array",type:"NameExpression"}}},createFunctionType:function(a,
b,d){a={type:"FunctionType",params:a,result:b};d&&(a.params=a.params||[],a.params.push({type:"ParameterType",name:"new",expression:b}));return a},extractArrayParameterType:function(a){if("TypeApplication"===a.type)if("Array"===a.expression.name)a=a.applications;else return a.expression;else if("ArrayType"===a.type)a=a.elements;else return a;return 0<a.length?a[0]:d},extractReturnType:function(a){return a.result||("FunctionType"===a.type?this.UNDEFINED_TYPE:a)},parseJSDocComment:function(a){var b=
{params:{}};if(a){a=a.value;if(!a)return b;try{var d=doctrine.parse("/*"+a+"*/",{unwrap:!0,tags:["param","type","return"]}).tags;if(d)for(a=0;a<d.length;a++)switch(d[a].title){case "typedef":case "define":case "type":b.type=d[a].type;break;case "return":b.rturn=d[a].type;break;case "param":var c=d[a].name;"["===c.charAt(0)&&"]"===c.charAt(c.length-1)&&(c=c.substring(1,c.length-1));b.params[c]=d[a].type}}catch(f){}}return b},convertJsDocType:function(a,b,c,f){"number"!==typeof f&&(f=0);if(!a)return d;
var e=this,p=a.name,h=b.getAllTypes();switch(a.type){case "NullableLiteral":case "AllLiteral":case "NullLiteral":case "UndefinedLiteral":case "VoidLiteral":return{type:a.type};case "UnionType":return{type:a.type,elements:a.elements.map(function(a){return e.convertJsDocType(a,b,c,f)})};case "RestType":return{type:a.type,expression:e.convertJsDocType(a.expression,b,c,f)};case "ArrayType":return{type:a.type,elements:a.elements.map(function(a){return e.convertJsDocType(a,b,c,f)})};case "FunctionType":var r=
{type:a.type,params:a.params.map(function(a){return e.convertJsDocType(a,b,c,f)})};a.result&&(r.result=2<f?{type:"NameExpression",name:"$$__JUST_DOTS__$$"}:e.convertJsDocType(a.result,b,c,f));return r;case "TypeApplication":return r={type:a.type,expression:e.convertJsDocType(a.expression,b,c,f)},a.applications&&(r.applications=a.applications.map(function(a){return e.convertJsDocType(a,b,c,f)})),r;case "ParameterType":return{type:a.type,name:p,expression:a.expression?e.convertJsDocType(a.expression,
b,c,f):null};case "NonNullableType":case "OptionalType":case "NullableType":return{prefix:!0,type:a.type,expression:e.convertJsDocType(a.expression,b,c,f)};case "NameExpression":if(c&&b.isSyntheticName(p)){var l=h[p];if(l.$$fntype)return e.convertJsDocType(l.$$fntype,b,c,f);var m=[];Object.keys(l).forEach(function(a){if("$$proto"!==a&&"$$isBuiltin"!==a){var d=l[a],d=0<f&&"NameExpression"===d.typeObj.type&&b.isSyntheticName(d.typeObj.name)&&!h[d.typeObj.name].$$fntype?{type:"NameExpression",name:"$$__JUST_DOTS__$$"}:
e.convertJsDocType(d.typeObj,b,c,f+1);m.push({type:"FieldType",key:a,value:d})}});return{type:"RecordType",fields:m}}if(h[p])return{type:"NameExpression",name:p};a=p[0].toUpperCase()+p.substring(1);if(h[a])return{type:"NameExpression",name:a};break;case "FieldType":return{type:a.type,key:a.key,value:e.convertJsDocType(a.value,b,c,f)};case "RecordType":if(c)return{type:a.type,params:a.fields.map(function(a){return e.convertJsDocType(a,b,c,f+1)})};for(var p={},B=0;B<a.fields.length;B++){var y=e.convertJsDocType(a.fields[B],
b,c,f+1);p[y.key]=y.value}a=b.newFleetingObject();for(r in p)p.hasOwnProperty(r)&&b.addVariable(r,a.name,p[r]);return a}return d},createNameType:n,createParamType:function(a,b){return{type:"ParameterType",name:a,expression:b}},convertToSimpleTypeName:function(a){switch(a.type){case "NullableLiteral":case "AllLiteral":case "NullLiteral":return"Object";case "UndefinedLiteral":case "VoidLiteral":return"undefined";case "NameExpression":return a.name;case "TypeApplication":case "ArrayType":return"Array";
case "FunctionType":return"Function";case "UnionType":return a.expressions&&0<a.expressions.length?this.convertToSimpleTypeName(a.expressions[0]):"Object";case "RecordType":return"Object";case "FieldType":return this.convertToSimpleTypeName(a.value);case "NonNullableType":case "OptionalType":case "NullableType":case "ParameterType":return this.convertToSimpleTypeName(a.expression)}},styleAsProperty:function(a,b){return b?'\x3cspan style\x3d"color: blue;font-weight:bold;"\x3e'+a+"\x3c/span\x3e":a},
styleAsType:function(a,b){return b?'\x3cspan style\x3d"color: black;"\x3e'+a+"\x3c/span\x3e":a},styleAsOther:function(a,b){return b?'\x3cspan style\x3d"font-weight:bold; color:purple;"\x3e'+a+"\x3c/span\x3e":a},createReadableType:function(a,b,d,c,f){if(d){a=this.convertJsDocType(a,b,!0);if(f)return this.convertToHtml(a,0);a=doctrine.type.stringify(a,{compact:!0});a=a.replace(p,"{...}");return a.replace(h,"")}a=this.extractReturnType(a);return this.createReadableType(a,b,!0,c,f)},convertToHtml:function(a,
d){var c=this,f,e=[];d=d||0;switch(a.type){case "NullableLiteral":return this.styleAsType("?",!0);case "AllLiteral":return this.styleAsType("*",!0);case "NullLiteral":return this.styleAsType("null",!0);case "UndefinedLiteral":return this.styleAsType("undefined",!0);case "VoidLiteral":return this.styleAsType("void",!0);case "NameExpression":return this.styleAsType("$$__JUST_DOTS__$$"===a.name?"{...}":a.name,!0);case "UnionType":return e=[],a.expressions&&a.expressions.forEach(function(a){e.push(c.convertToHtml(a,
d+1))}),"( "+e.join(", ")+" )";case "TypeApplication":a.applications&&a.applications.forEach(function(a){e.push(c.convertToHtml(a,d))});var p="Array"===a.expression.name;p||(f=this.convertToHtml(a.expression,d)+".\x3c");f+=e.join(",");return p?f+"[]":f+"\x3e";case "ArrayType":return a.elements&&a.elements.forEach(function(a){e.push(c.convertToHtml(a,d+1))}),e.join(", ")+"[]";case "NonNullableType":return"!"+this.convertToHtml(a.expression,d);case "OptionalType":return this.convertToHtml(a.expression,
d)+"\x3d";case "NullableType":return"?"+this.convertToHtml(a.expression,d);case "RestType":return"..."+this.convertToHtml(a.expression,d);case "ParameterType":return this.styleAsProperty(a.name,!0)+("$$__JUST_DOTS__$$"===a.expression.name?"":":"+this.convertToHtml(a.expression,d));case "FunctionType":var h=!1,r;a.params&&a.params.forEach(function(a){"this"===a.name?(h=!0,r=a.expression):"new"===a.name?(h=!0,r=a.expression):e.push(c.convertToHtml(a,d+1))});!r&&a.result&&(r=a.result);p=r&&"UndefinedLiteral"!==
r.type&&"undefined"!==r.name?this.convertToHtml(r,d+1):"";f=this.styleAsOther(h?"new ":"function",!0);h&&(f+=p);f+="("+e.join(",")+")";!h&&p&&(f+="\x26rarr;"+p);return f;case "RecordType":return a.fields&&0<a.fields.length?(a.fields.forEach(function(a){e.push(b.repeatChar("\x26nbsp;\x26nbsp;",d+1)+c.convertToHtml(a,d+1))}),"{\x3cbr/\x3e"+e.join(",\x3cbr/\x3e")+"\x3cbr/\x3e"+b.repeatChar("\x26nbsp;\x26nbsp;",d)+"}"):"{ }";case "FieldType":return this.styleAsProperty(a.key,!0)+":"+this.convertToHtml(a.value,
d)}},leftTypeIsMoreGeneral:function(a,b,d){var c=a.name;b=b.name;if(!c&&("NullLiteral"===a.type||"UndefinedLiteral"===a.type||"VoidLiteral"===a.type))c="undefined";if(!b)return!1;a="undefined"===c?0:"Object"===c?1:f(c,d.getAllTypes())?2:3;return 0===a?"undefined"!==b:1===a?"undefined"!==b&&"Object"!==b:2===a?"undefined"!==b&&"Object"!==b&&!f(b,d.getAllTypes()):!1},isEmpty:f,ensureTypeObject:e,isUpperCaseChar:function(a){return 1>a.length||isNaN(a.charCodeAt(0))?!1:a.toLocaleUpperCase().charAt(0)===
a.charAt(0)},OBJECT_TYPE:d,UNDEFINED_TYPE:n("undefined"),NUMBER_TYPE:n("Number"),BOOLEAN_TYPE:n("Boolean"),STRING_TYPE:n("String"),ARRAY_TYPE:n("Array"),FUNCTION_TYPE:n("Function")}});
define("javascript/contentAssist/indexFiles/browserIndex",[],function(){return{"!name":"browser","!define":{WebSocket:{"!proto":"Object",onreadystatechange:"EventHandler",onopen:"EventHandler",onerror:"EventHandler",onclose:"EventHandler",readyState:"Number",extensions:"String",protocol:"String",close:{"!type":"fn(reason?: Object)"},send:{"!type":"fn(data: String)"}},WebSocket_obj:{"!type":"fn(url: String, protocols: String)",prototype:"WebSocket"},EventHandler:{"!proto":"Object"},XMLHttpRequest:{"!proto":"Object",
onreadystatechange:"EventHandler",open:{"!type":"fn(method: String, url: String, async?: Boolean, user?: String, password?: String)"},setRequestHeader:{"!type":"fn(header: String, value: String)"},timeout:"Number",withCredentials:"Boolean",upload:"Object",send:{"!type":"fn(data?: String)"},abort:{"!type":"fn()"},getResponseHeader:{"!type":"fn(header: String) -\x3e String"},getAllResponseHeaders:{"!type":"fn() -\x3e String"},overrideMimeType:"Object",responseType:"Object",readyState:"Number",response:"Object",
responseText:"String",responseXML:"Document",status:"Number",statusText:"String"},XHR_obj:{"!type":"fn()",prototype:"XMLHttpRequest"},Worker_proto:{"!proto":"Object",terminate:{"!type":"fn()"},postMessage:{"!type":"fn(message: String, transfer?: Object)"},onmessage:{"!type":"fn()"}},Worker_obj:{"!type":"fn(url: String)",prototype:"Worker_proto"},HTMLOptionElement:{"!proto":"HTMLElement"},HTMLElement:{"!proto":"Element",id:"String",title:"String",lang:"String",dir:"String",className:"String"},HTMLImageElement:{"!proto":"HTMLElement"},
Event:{"!proto":"Object",bubbles:"Boolean",cancelable:"Boolean",currentTarget:"Object",defaultPrevented:"Boolean",eventPhase:"Number",explicitOriginalTarget:"Object",originalTarget:"Object",target:"Object",timeStamp:"Number",isTrusted:"Boolean",initEvent:{"!type":"fn(type: String, bubbles: Boolean, cancelable: Boolean)"},preventDefault:{"!type":"fn()"},stopImmediatePropagation:{"!type":"fn()"},stopPropagation:{"!type":"fn()"}},Event_obj:{"!type":"fn(type: String)",prototype:"Event"},MediaQueryList:{"!proto":"Object"},
Selection:{"!proto":"Object",anchorNode:"Node",anchorOffset:"Number",focusNode:"Node",focusOffset:"Number",rangeCount:"Number",isCollapsed:"Boolean",collapse:{"!type":"fn(node: Node, offset: Number)"},collapseToStart:{"!type":"fn()"},collapseToEnd:{"!type":"fn()"},extend:{"!type":"fn(node: Node, offset: Number)"},selectAllChildren:{"!type":"fn(node: Node)"},deleteFromDocument:{"!type":"fn()"},getRangeAt:{"!type":"fn(index: Number) -\x3e Range"},addRange:{"!type":"fn(range: Range)"},removeRange:{"!type":"fn(range: Range)"},
removeAllRanges:{"!type":"fn()"}},Range:{"!proto":"Object",startContainer:"Node",startOffset:"Number",endContainer:"Node",endOffset:"Number",collapsed:"Boolean",commonAncestorContainer:"Node",setStart:{"!type":"fn(refNode: Node, offset: Number)"},setEnd:{"!type":"fn(refNode: Node, offset: Number)"},setStartBefore:{"!type":"fn(refNode: Node)"},setStartAfter:{"!type":"fn(refNode: Node)"},setEndBefore:{"!type":"fn(refNode: Node)"},setEndAfter:{"!type":"fn(refNode: Node)"},collapse:{"!type":"fn(toStart: Node)"},
selectNode:{"!type":"fn(refNode: Node)"},selectNodeContents:{"!type":"fn(refNode: Node)"},compareBoundaryPoints:{"!type":"fn(how: Object, sourceRange: Object) -\x3e Number"},deleteContents:{"!type":"fn()"},extractContents:{"!type":"fn() -\x3e DocumentFragment"},cloneContents:{"!type":"fn() -\x3e DocumentFragment"},insertNode:{"!type":"fn(node: Node)"},surroundContents:{"!type":"fn(nodeParent: Node)"},cloneRange:{"!type":"fn() -\x3e Range"},detach:{"!type":"fn()"},isPointInRange:{"!type":"fn(node: Node, offset: Number) -\x3e Boolean"},
comparePoint:{"!type":"fn(node: Node, offset: Number) -\x3e Number"},intersectsNode:{"!type":"fn(node: Node) -\x3e Boolean"}},DocumentFragment:{"!proto":"Node",prepend:{"!type":"fn(nodes: Node)"},append:{"!type":"fn(nodes: Node)"}},CSSStyleDeclaration:{"!proto":"Object"},Node:{"!proto":"Object",nodeType:"Number",nodeName:"String",baseURI:"String",ownerDocument:"Document",parentNode:"Node",parentElement:"Element",childNodes:"NodeList",firstChild:"Node",lastChild:"Node",previousSibling:"Node",nextSibling:"Node",
nodeValue:"String",textContent:"String",hasChildNodes:{"!type":"fn() -\x3e Boolean"},compareDocumentPosition:{"!type":"fn(other: Node) -\x3e Number"},contains:{"!type":"fn(other: Node) -\x3e Boolean"},insertBefore:{"!type":"fn(child: Node) -\x3e Node"},appendChild:{"!type":"fn(node: Node) -\x3e Node"},replaceChild:{"!type":"fn(child: Node) -\x3e Node"},removeChild:{"!type":"fn(child: Node) -\x3e Node"},normalize:{"!type":"fn()"},cloneNode:{"!type":"fn(deep?: Boolean) -\x3e Node"},isEqualNode:{"!type":"fn(node: Node) -\x3e Boolean"},
lookupPrefix:{"!type":"fn(namespace: String) -\x3e String"},lookupNamespaceURI:{"!type":"fn(prefix: String) -\x3e String"},isDefaultNamespace:{"!type":"fn(namespace: String) -\x3e Boolean"}},Node_obj:{"!type":"fn()",prototype:"Node"},NodeList:{"!proto":"Object",item:"Node",length:"Number"},Screen:{"!proto":"Object",availTop:"Number",availLeft:"Number",availHeight:"Number",availWidth:"Number",colorDepth:"Number",height:"Number",left:"Number",pixelDepth:"Number",top:"Number",width:"Number"},Performance:{"!proto":"Object"},
Navigator:{"!proto":"Object",appName:"String",appVersion:"String",connection:"Connection",cookieEnabled:"Boolean",language:"String",mimeTypes:"MimeTypeArray",onLine:"Boolean",oscpu:"String",platform:"String",plugins:"String",userAgent:"String",javaEnabled:{"!type":"fn() -\x3e Boolean"},registerContentHandler:{"!type":"fn(mimType: String, url: String, title: String)"},registerProtocolHandler:{"!type":"fn(protocol: String, url: String, title: String)"}},MimeTypeArray:{length:"Number",item:{"!type":"fn(index: Number) -\x3e MimeType"},
namedItem:{"!type":"fn(name: String) -\x3e MimeType"}},MimeType:{description:"String",suffixes:"String",type:"String",enabledPlugin:"Plugin"},Plugin:{description:"String",fileName:"String",length:"Number",name:"String",item:{"!type":"fn(index: Number) -\x3e MimeType"},namedItem:{"!type":"fn(name: String) -\x3e MimeType"}},Connection:{bandwidth:"Number",metered:"Boolean",onchange:"Function"},Storage:{"!proto":"Object",length:"Number",key:{"!type":"fn(idx: Number) -\x3e String"},getItem:{"!type":"fn(key: String) -\x3e String"},
setItem:{"!type":"fn(key: String, value: String)"},removeItem:{"!type":"fn(key: String)"},clear:{"!type":"fn()"}},BarInfo:{"!proto":"Object",visible:"Boolean"},Location:{"!proto":"Object",assign:{"!type":"fn(url: String)"},replace:{"!type":"fn(url: String)"},reload:{"!type":"fn()"},href:"String",protocol:"String",host:"String",hostname:"String",port:"String",pathname:"String",search:"String",hash:"String"},History:{"!proto":"Object",length:"Number",state:"Object",go:{"!type":"fn(delta: Number)"},
back:{"!type":"fn()"},forward:{"!type":"fn()"},pushState:{"!type":"fn(data: Object, title: String, url: String)"},replaceState:{"!type":"fn(data: Object, title: String, url: String)"}},Element:{"!proto":"Node",namespaceURI:"String",prefix:"String",localName:"String",tagName:"String",id:"String",className:"String",classList:"DOMTokenList",attributes:"Array",childElementCount:"Number",children:"HTMLCollection",firstElementChild:"Element",lastElementChild:"Element",previousElementSibling:"Element",nextElementSibling:"Element",
getAttribute:{"!type":"fn(name: String) -\x3e String"},getAttributeNS:{"!type":"fn(namespace: String, localname: String) -\x3e String"},setAttribute:{"!type":"fn(name: String, value: Object)"},setAttributeNS:{"!type":"fn(namespace: String, name: String, value: Object)"},removeAttribute:{"!type":"fn(name: String)"},removeAttributeNS:{"!type":"fn(namespace: String, localname: String)"},hasAttribute:{"!type":"fn(name: String) -\x3e Boolean"},hasAttributeNS:{"!type":"fn(namespace: String, localname: String) -\x3e Boolean"},
getElementsByTagName:{"!type":"fn(localName: String) -\x3e HTMLCollection"},getElementsByTagNameNS:{"!type":"fn(namespace: String, localName: String) -\x3e HTMLCollection"},getElementsByClassName:{"!type":"fn(classname: String) -\x3e HTMLCollection"},prepend:{"!type":"fn(nodes: Node)"},append:{"!type":"fn(nodes: Node)"},before:{"!type":"fn(nodes: Node)"},after:{"!type":"fn(nodes: Node)"},replace:{"!type":"fn(nodes: Node)"},remove:{"!type":"fn()"}},HTMLCollection:{"!proto":"Object",length:"Number",
item:{"!type":"fn(index: Number) -\x3e Element"},namedItem:{"!type":"fn(name: String) -\x3e Element"}},DOMTokenList:{"!proto":"Object",length:"Number",item:{"!type":"fn(index: Number) -\x3e String"},contains:{"!type":"fn(token: String) -\x3e Boolean"},add:{"!type":"fn(token: String)"},remove:{"!type":"fn(token: String)"},toggle:{"!type":"fn(token: String) -\x3e Boolean"}},Document:{"!proto":"Node",implementation:"DOMImplementation",URL:"String",documentURI:"String",compatMode:"String",characterSet:"String",
contentType:"String",doctype:"DocumentType",documentElement:"Element",getElementsByTagName:{"!type":"fn(localName: String) -\x3e HTMLCollection"},getElementsByTagNameNS:{"!type":"fn(namespace: String, localName: String) -\x3e HTMLCollection"},getElementsByClassName:{"!type":"fn(classNames: String) -\x3e HTMLCollection"},getElementById:{"!type":"fn(elementId: String) -\x3e Element"},createElement:{"!type":"fn(elementId: String) -\x3e Element"},createElementNS:{"!type":"fn(namespace: String, qualifiedName: String) -\x3e Element"},
createDocumentFragment:{"!type":"fn() -\x3e DocumentFragment"},createTextNode:{"!type":"fn(data: String) -\x3e Text"},createComment:{"!type":"fn(data: String) -\x3e Comment"},createProcessingInstruction:{"!type":"fn(target: String, data: String) -\x3e ProcessingInstruction"},importNode:{"!type":"fn(node: Node, deep?: Boolean) -\x3e Node"},adoptNode:{"!type":"fn(node: Node) -\x3e Node"},createEvent:{"!type":"fn(eventInterfaceName: String) -\x3e Event"},createRange:{"!type":"fn() -\x3e Range"},createNodeIterator:{"!type":"fn(root: Node, whatToShow?: Object, filter?: Object) -\x3e NodeIterator"},
createTreeWalker:{"!type":"fn(root: Node, whatToShow?: Object, filter?: Object) -\x3e TreeWalker"}},TreeWalker:{"!proto":"Object"},NodeIterator:{"!proto":"Object"},ProcessingInstruction:{"!proto":"Node"},Comment:{"!proto":"Node"},Text:{"!proto":"Node"},DocumentType:{"!proto":"Node",name:"String",publicId:"String",systemId:"String",before:{"!type":"fn(nodeOrString: Node)"},after:{"!type":"fn(nodeOrString: Node)"},replace:{"!type":"fn(nodeOrString: Node)"},remove:{"!type":"fn()"}},DOMImplementation:{"!proto":"Object",
createDocumentType:{"!type":"fn(qualifiedName: String, publicId: String, systemId: String) -\x3e DocumentType"},createDocument:{"!type":"fn(namespace: String, qualifiedName: String, doctype: String) -\x3e Document"},createHTMLDocument:{"!type":"fn(title: String) -\x3e Document"},hasFeature:{"!type":"fn(feature: String) -\x3e Boolean"}},Console:{debug:{"!type":"fn(msg: String)"},dir:{"!type":"fn(obj: Object)"},error:{"!type":"fn(msg: String)"},group:{"!type":"fn()"},groupCollapsed:{"!type":"fn()"},
groupEnd:{"!type":"fn()"},info:{"!type":"fn(msg: String)"},log:{"!type":"fn(msg: String)"},time:{"!type":"fn(timerName: String)"},timeEnd:{"!type":"fn(timerName: String)"},trace:{"!type":"fn()"},warn:{"!type":"fn(msg: String)"}},DOMApplicationCache:{"!proto":"Object"}},"this":"\x3ctop\x3e",applicationCache:"DOMApplicationCache",closed:"Boolean",console:"Console",defaultStatus:"String",document:"Document",frameElement:"Element",frames:"Array",history:"History",innerHeight:"Number",innerWidth:"Number",
length:"Number",location:"Location",locationbar:"BarInfo",localStorage:"Storage",menubar:"BarInfo",name:"String",navigator:"Navigator",opener:"\x3ctop\x3e",outerHeight:"Number",outerWidth:"Number",pageXOffset:"Number",pageYOffset:"Number",parent:"\x3ctop\x3e",performance:"Performance",personalbar:"BarInfo",screen:"Screen",screenX:"Number",screenY:"Number",scrollbars:"BarInfo",scrollMaxX:"Number",scrollMaxY:"Number",scrollX:"Number",scrollY:"Number",self:"\x3ctop\x3e",sessionStorage:"Storage",sidebar:"BarInfo",
status:"String",statusbar:"BarInfo",toolbar:"BarInfo",top:"\x3ctop\x3e",window:"\x3ctop\x3e",addEventListener:{"!type":"fn()"},alert:{"!type":"fn(msg: String)"},atob:{"!type":"fn(val: Object) -\x3e String"},back:{"!type":"fn()"},blur:{"!type":"fn()"},btoa:{"!type":"fn(val: Object) -\x3e String"},clearInterval:{"!type":"fn(t: Number)"},clearTimeout:{"!type":"fn(t: Number)"},close:{"!type":"fn()"},confirm:{"!type":"fn(msg: String) -\x3e Boolean"},dispatchEvent:{"!type":"fn(domnode: Node)"},dump:{"!type":"fn(msg: String)"},
escape:{"!type":"fn(str: String) -\x3e String"},find:{"!type":"fn(str: String) -\x3e Boolean"},focus:{"!type":"fn()"},forward:{"!type":"fn()"},getAttention:{"!type":"fn()"},getComputedStyle:{"!type":"fn(domnode: Node) -\x3e CSSStyleDeclaration"},getSelection:{"!type":"fn() -\x3e Selection"},home:{"!type":"fn()"},matchMedia:{"!type":"fn(query: Object) -\x3e MediaQueryList"},moveBy:{"!type":"fn(deltaX: Number, deltaY: Number)"},moveTo:{"!type":"fn(x: Number, y: Number)"},open:{"!type":"fn(strUrl: String, strWindowName: String, strWindowFeatures?: String) -\x3e \x3ctop\x3e"},
openDialog:{"!type":"fn(strUrl: String, strWindowName: String, strWindowFeatures: String, args?: String) -\x3e \x3ctop\x3e"},postMessage:{"!type":"fn(message: String, targetOrigin: String)"},print:{"!type":"fn()"},prompt:{"!type":"fn(message: String) -\x3e String"},removeEventListener:{"!type":"fn(type: String, listener: Object, useCapture?: Boolean)"},resizeBy:{"!type":"fn(deltaX: Number, deltaY: Number)"},resizeTo:{"!type":"fn(x: Number, y: Number)"},scroll:{"!type":"fn(x: Number, y: Number)"},
scrollBy:{"!type":"fn(deltaX: Number, deltaY: Number)"},scrollByLines:{"!type":"fn(lines: Number)"},scrollByPages:{"!type":"fn(pages: Number)"},scrollTo:{"!type":"fn(x: Number, y: Number)"},setCursor:{"!type":"fn(cursor: String)"},setInterval:{"!type":"fn(callback: Function, ms: Number) -\x3e Number"},setTimeout:{"!type":"fn(callback: Function, ms: Number) -\x3e Number"},sizeToContent:{"!type":"fn()"},stop:{"!type":"fn()"},unescape:{"!type":"fn(str: String) -\x3e String"},updateCommands:{"!type":"fn(cmdName: String)"},
onabort:{"!type":"fn(event: Event)"},onbeforeunload:{"!type":"fn(event: Event)"},onblur:{"!type":"fn(event: Event)"},onchange:{"!type":"fn(event: Event)"},onclick:{"!type":"fn(event: Event)"},onclose:{"!type":"fn(event: Event)"},oncontextmenu:{"!type":"fn(event: Event)"},ondevicemotion:{"!type":"fn(event: Event)"},ondeviceorientation:{"!type":"fn(event: Event)"},ondragdrop:{"!type":"fn(event: Event)"},onerror:{"!type":"fn(event: Event)"},onfocus:{"!type":"fn(event: Event)"},onhashchange:{"!type":"fn(event: Event)"},
onkeydown:{"!type":"fn(event: Event)"},onkeypress:{"!type":"fn(event: Event)"},onkeyup:{"!type":"fn(event: Event)"},onload:{"!type":"fn(event: Event)"},onmousedown:{"!type":"fn(event: Event)"},onmousemove:{"!type":"fn(event: Event)"},onmouseout:{"!type":"fn(event: Event)"},onmouseover:{"!type":"fn(event: Event)"},onmouseup:{"!type":"fn(event: Event)"},onpaint:{"!type":"fn(event: Event)"},onpopstate:{"!type":"fn(event: Event)"},onreset:{"!type":"fn(event: Event)"},onresize:{"!type":"fn(event: Event)"},
onscroll:{"!type":"fn(event: Event)"},onselect:{"!type":"fn(event: Event)"},onsubmit:{"!type":"fn(event: Event)"},onunload:{"!type":"fn(event: Event)"},onpageshow:{"!type":"fn(event: Event)"},onpagehide:{"!type":"fn(event: Event)"},Image:{"!type":"fn(width?: Number, height?: Number)"},Option:{"!type":"fn(text?: String, value?: Object, defaultSelected?: Boolean, selected?: Boolean)"},Worker:"Worker_obj",XMLHttpRequest:"XHR_obj",WebSocket:"WebSocket_obj",Event:"Event_obj",Node:"Node_obj"}});
define("javascript/contentAssist/indexFiles/ecma5Index",[],function(){return{"!name":"ecma5","!define":{Error:{name:{"!type":"String"},message:{"!type":"String"},stack:{"!type":"String"},"!proto":"Object"},Error_obj:{"!type":"fn(err?: Error)",prototype:"Error"},RegExp:{source:{"!type":"String"},global:{"!type":"Boolean"},ignoreCase:{"!type":"Boolean"},multiline:{"!type":"Boolean"},lastIndex:{"!type":"Boolean"},exec:{"!type":"fn(str: String) -\x3e [String]"},test:{"!type":"fn(str: String) -\x3e Boolean"},
"!proto":"Object"},RegExp_obj:{"!type":"fn(val?: RegExp)",prototype:"RegExp"},Date:{toDateString:{"!type":"fn() -\x3e String"},toTimeString:{"!type":"fn() -\x3e String"},toUTCString:{"!type":"fn() -\x3e String"},toISOString:{"!type":"fn() -\x3e String"},toJSON:{"!type":"fn(key: String) -\x3e Object"},toLocaleDateString:{"!type":"fn() -\x3e String"},toLocaleTimeString:{"!type":"fn() -\x3e String"},getTime:{"!type":"fn() -\x3e Number"},getTimezoneOffset:{"!type":"fn() -\x3e Number"},getDay:{"!type":"fn() -\x3e Number"},
getUTCDay:{"!type":"fn() -\x3e Number"},getFullYear:{"!type":"fn() -\x3e Number"},getUTCFullYear:{"!type":"fn() -\x3e Number"},getHours:{"!type":"fn() -\x3e Number"},getUTCHours:{"!type":"fn() -\x3e Number"},getMinutes:{"!type":"fn() -\x3e Number"},getUTCMinutes:{"!type":"fn() -\x3e Number"},getSeconds:{"!type":"fn() -\x3e Number"},getUTCSeconds:{"!type":"fn() -\x3e Number"},getMilliseconds:{"!type":"fn() -\x3e Number"},getUTCMilliseconds:{"!type":"fn() -\x3e Number"},getMonth:{"!type":"fn() -\x3e Number"},
getUTCMonth:{"!type":"fn() -\x3e Number"},getDate:{"!type":"fn() -\x3e Number"},getUTCDate:{"!type":"fn() -\x3e Number"},setTime:{"!type":"fn() -\x3e Number"},setTimezoneOffset:{"!type":"fn() -\x3e Number"},setDay:{"!type":"fn(dayOfWeek: Number) -\x3e Number"},setUTCDay:{"!type":"fn(dayOfWeek: Number) -\x3e Number"},setFullYear:{"!type":"fn(year: Number, month?: Number, date?: Number) -\x3e Number"},setUTCFullYear:{"!type":"fn(year: Number, month?: Number, date?: Number) -\x3e Number"},setHours:{"!type":"fn(hour: Number, min?: Number, sec?: Number, ms?: Number) -\x3e Number"},
setUTCHours:{"!type":"fn(hour: Number, min?: Number, sec?: Number, ms?: Number) -\x3e Number"},setMinutes:{"!type":"fn(min: Number, sec?: Number, ms?: Number) -\x3e Number"},setUTCMinutes:{"!type":"fn(min: Number, sec?: Number, ms?: Number) -\x3e Number"},setSeconds:{"!type":"fn(sec: Number, ms?: Number) -\x3e Number"},setUTCSeconds:{"!type":"fn(sec: Number, ms?: Number) -\x3e Number"},setMilliseconds:{"!type":"fn(ms: Number) -\x3e Number"},setUTCMilliseconds:{"!type":"fn(ms: Number) -\x3e Number"},
setMonth:{"!type":"fn(month: Number, date?: Number) -\x3e Number"},setUTCMonth:{"!type":"fn(month: Number, date?: Number) -\x3e Number"},setDate:{"!type":"fn(date: Number) -\x3e Number"},setUTCDate:{"!type":"fn(date: Number) -\x3e Number"},"!proto":"Object"},Date_obj:{"!type":"fn(val?: Date)",now:{"!type":"fn() -\x3e Number"},parse:{"!type":"fn(dateString: String) -\x3e Number"},UTC:{"!type":"fn(year: Number, month: Number, date?: Number, hrs?: Number, min?:Number, sec?:Number, ms?:Number) -\x3e Number"},
prototype:"Date"},Boolean:{"!proto":"Object"},Boolean_obj:{"!type":"fn(val?: Boolean)",prototype:"Boolean"},Array:{concat:{"!type":"fn(first: Array, rest: Array) -\x3e Array"},join:{"!type":"fn(separator: Object) -\x3e String"},length:{"!type":"Number"},pop:{"!type":"fn() -\x3e Object"},push:{"!type":"fn(vals: Object) -\x3e Object"},reverse:{"!type":"fn() -\x3e Array"},shift:{"!type":"fn() -\x3e Object"},slice:{"!type":"fn(start: Number, deleteCount: Number, items: Object) -\x3e Array"},splice:{"!type":"fn(start: Number, end: Number) -\x3e Array"},
sort:{"!type":"fn(sorter?: Object) -\x3e Array"},unshift:{"!type":"fn(items: Object) -\x3e Number"},indexOf:{"!type":"fn(searchElement: Object, fromIndex?: Number) -\x3e Number"},lastIndexOf:{"!type":"fn(searchElement: Object, fromIndex?: Number) -\x3e Number"},every:{"!type":"fn(callbackFn: fn(elt: Object), thisArg?: Object) -\x3e Boolean"},some:{"!type":"fn(callbackFn: fn(elt: Object), thisArg?: Object) -\x3e Boolean"},forEach:{"!type":"fn(callbackFn: fn(elt: Object), thisArg?: Object) -\x3e Object"},
map:{"!type":"fn(callbackFn: fn(elt: Object) -\x3e Object, thisArg?: Object) -\x3e Array"},filter:{"!type":"fn(callbackFn: fn(elt: Object) -\x3e Boolean, thisArg?: Object) -\x3e Array"},reduce:{"!type":"fn(callbackFn: fn(elt: Object) -\x3e Object, initialValue?: Object) -\x3e Array"},reduceRight:{"!type":"fn(callbackFn: fn(elt: Object) -\x3e Object, initialValue?: Object) -\x3e Array"},"!proto":"Object"},Array_obj:{"!type":"fn(val?: Array)",isArray:{"!type":"fn(obj: Object) -\x3e Boolean"},prototype:"Array"},
Function:{apply:{"!type":"fn(func: fn(), argArray?: Array) -\x3e Object"},arguments:{"!type":"Arguments"},bind:{"!type":"fn(func: fn(), args: Object) -\x3e Object"},call:{"!type":"fn(func: fn(), args: Object) -\x3e Object"},caller:{"!type":"Function"},length:{"!type":"Number"},name:{"!type":"String"},"!proto":"Object"},Function_obj:{"!type":"fn()",prototype:"Function"},Arguments:{callee:{"!type":"Function"},length:{"!type":"Number"},"!proto":"Object"},JSON:{parse:{"!type":"fn(str: String) -\x3e Object"},
stringify:{"!type":"fn(json: Object) -\x3e String"},"!proto":"Object"},Math:{E:{"!type":"Number"},LN2:{"!type":"Number"},LN10:{"!type":"Number"},LOG2E:{"!type":"Number"},LOG10E:{"!type":"Number"},PI:{"!type":"Number"},SQRT1_2:{"!type":"Number"},SQRT2:{"!type":"Number"},abs:{"!type":"fn(val: Number) -\x3e Number"},acos:{"!type":"fn(val: Number) -\x3e Number"},asin:{"!type":"fn(val: Number) -\x3e Number"},atan:{"!type":"fn(val: Number) -\x3e Number"},atan2:{"!type":"fn(val1: Number, val2: Number) -\x3e Number"},
ceil:{"!type":"fn(val: Number) -\x3e Number"},cos:{"!type":"fn(val: Number) -\x3e Number"},exp:{"!type":"fn(val: Number) -\x3e Number"},floor:{"!type":"fn(val: Number) -\x3e Number"},log:{"!type":"fn(val: Number) -\x3e Number"},max:{"!type":"fn(val1: Number, val2: Number) -\x3e Number"},min:{"!type":"fn(val1: Number, val2: Number) -\x3e Number"},pow:{"!type":"fn(x: Number, y: Number) -\x3e Number"},random:{"!type":"fn() -\x3e Number"},round:{"!type":"fn(val: Number) -\x3e Number"},sin:{"!type":"fn(val: Number) -\x3e Number"},
sqrt:{"!type":"fn(val: Number) -\x3e Number"},tan:{"!type":"fn(val: Number) -\x3e Number"},"!proto":"Object"},Number:{toExponential:{"!type":"fn(digits: Number) -\x3e String"},toFixed:{"!type":"fn(digits: Number) -\x3e String"},toPrecision:{"!type":"fn(digits: Number) -\x3e String"},"!proto":"Object"},Number_obj:{"!type":"fn(val?: Number)",MAX_VALUE:"Number",MIN_VALUE:"Number",prototype:"Number"},Object:{toString:{"!type":"fn() -\x3e String"},toLocaleString:{"!type":"fn() -\x3e String"},valueOf:{"!type":"fn() -\x3e Object"},
hasOwnProperty:{"!type":"fn(property: String) -\x3e Boolean"},isPrototypeOf:{"!type":"fn(object: Object) -\x3e Boolean"},propertyIsEnumerable:{"!type":"fn(property: String) -\x3e Boolean"}},Object_obj:{"!type":"fn(val?: Object)",create:{"!type":"fn(proto: Object, propertiesObject?: Object) -\x3e Object"},defineProperty:{"!type":"fn(obj: Object, prop: String, descriptor: Object) -\x3e Object"},defineProperties:{"!type":"fn(obj: Object, props: Object) -\x3e Object"},getOwnPropertyDescriptor:{"!type":"fn(obj: Object, prop: String) -\x3e Object"},
keys:{"!type":"fn(obj: Object) -\x3e Array"},getOwnPropertyNames:{"!type":"fn(obj: Object) -\x3e Array"},getPrototypeOf:{"!type":"fn(obj: Object) -\x3e Object"},prototype:"Object"},String:{charAt:{"!type":"fn(index: Number) -\x3e String"},charCodeAt:{"!type":"fn(index: Number) -\x3e Number"},concat:{"!type":"fn(str: String) -\x3e String"},indexOf:{"!type":"fn(searchString: String, start?: Number) -\x3e Number"},lastIndexOf:{"!type":"fn(searchString: String, start?: Number) -\x3e Number"},length:{"!type":"Number"},
localeCompare:{"!type":"fn(str: String) -\x3e Number"},match:{"!type":"fn(regexp: String) -\x3e Boolean"},replace:{"!type":"fn(searchValue: String, replaceValue: String) -\x3e String"},search:{"!type":"fn(regexp: String) -\x3e String"},slice:{"!type":"fn(start: Number, end: Number) -\x3e String"},split:{"!type":"fn(separator: String, limit?: Number) -\x3e [String]"},substring:{"!type":"fn(start: Number, end?: Number) -\x3e String"},toLocaleUpperCase:{"!type":"fn() -\x3e String"},toLowerCase:{"!type":"fn() -\x3e String"},
toLocaleLowerCase:{"!type":"fn() -\x3e String"},toUpperCase:{"!type":"fn() -\x3e String"},trim:{"!type":"fn() -\x3e String"},"!proto":"Object"},String_obj:{"!type":"fn(val?: Object)",fromCharCode:{"!type":"fn(num1: Number, rest: Number) -\x3e String"},prototype:"String","!proto":"Object"}},decodeURI:{"!type":"fn(uri: String) -\x3e String"},encodeURI:{"!type":"fn(uri: String) -\x3e String"},eval:{"!type":"fn(toEval: String) -\x3e Object"},parseInt:{"!type":"fn(str: String, radix?: Number) -\x3e Number"},
parseFloat:{"!type":"fn(str: String, radix?: Number) -\x3e Number"},Math:{"!type":"Math"},JSON:{"!type":"JSON"},Object:"Object_obj",Function:"Function_obj",Array:"Array_obj",Boolean:"Boolean_obj",Number:"Number_obj",Date:"Date_obj",RegExp:"RegExp_obj",String:"String_obj",Error:"Error_obj",undefined:{"!type":"?"},isNaN:{"!type":"fn(num: Number) -\x3e Boolean"},isFinite:{"!type":"fn(num: Number) -\x3e Boolean"},NaN:{"!type":"number"},Infinity:{"!type":"number"},decodeURIComponent:{"!type":"fn(encodedURIString: String) -\x3e String"},
encodeURIComponent:{"!type":"fn(decodedURIString: String) -\x3e String"},"this":{"!type":"\x3ctop\x3e"}}});
define("javascript/contentAssist/indexFiles/nodeIndex",[],function(){return{console:"Console",process:"Process","!define":{assert:{fail:{"!type":"fn(actual: Object, expected: Object, message: Object, operator: Object)"},assert:{"!type":"fn(value: Object, message: Object)"},ok:{"!type":"fn(value: Object, message?: Object)"},equal:{"!type":"fn(actual: Object, expected: Object, message?: Object)"},notEqual:{"!type":"fn(actual: Object, expected: Object, message?: Object)"},deepEqual:{"!type":"fn(actual: Object, expected: Object, message?: Object)"},
notDeepEqual:{"!type":"fn(actual: Object, expected: Object, message?: Object)"},strictEqual:{"!type":"fn(actual: Object, expected: Object, message?: Object)"},notStrictEqual:{"!type":"fn(actual: Object, expected: Object, message?: Object)"},"throws":{"!type":"fn(block: Object, error?: Object, message?: Object)"},doesNotThrow:{"!type":"fn(block: Object, message?: Object)"},ifError:{"!type":"fn(value: Object)"}},buffer:{INSPECT_MAX_BYTES:{"!type":"Number"},Buffer:{"!type":"fn()",prototype:{write:{"!type":"fn(string: Object, offset?: Object, length?: Object, encoding?: Object)"},
toString:{"!type":"fn(encoding?: Object, start?: Object, end?: Object)"},toJSON:{"!type":"fn()"},copy:{"!type":"fn(targetBuffer: Object, targetStart?: Object, sourceStart?: Object, sourceEnd?: Object)"},slice:{"!type":"fn(start?: Object, end?: Object)"},readUInt8:{"!type":"fn(offset: Object, noAssert?: Object)"},readUInt16LE:{"!type":"fn(offset: Object, noAssert?: Object)"},readUInt16BE:{"!type":"fn(offset: Object, noAssert?: Object)"},readUInt32LE:{"!type":"fn(offset: Object, noAssert?: Object)"},
readUInt32BE:{"!type":"fn(offset: Object, noAssert?: Object)"},readInt8:{"!type":"fn(offset: Object, noAssert?: Object)"},readInt16LE:{"!type":"fn(offset: Object, noAssert?: Object)"},readInt16BE:{"!type":"fn(offset: Object, noAssert?: Object)"},readInt32LE:{"!type":"fn(offset: Object, noAssert?: Object)"},readInt32BE:{"!type":"fn(offset: Object, noAssert?: Object)"},readFloatLE:{"!type":"fn(offset: Object, noAssert?: Object)"},readFloatBE:{"!type":"fn(offset: Object, noAssert?: Object)"},readDoubleLE:{"!type":"fn(offset: Object, noAssert?: Object)"},
readDoubleBE:{"!type":"fn(offset: Object, noAssert?: Object)"},writeUInt8:{"!type":"fn(value: Object, offset: Object, noAssert?: Object)"},writeUInt16LE:{"!type":"fn(value: Object, offset: Object, noAssert?: Object)"},writeUInt16BE:{"!type":"fn(value: Object, offset: Object, noAssert?: Object)"},writeUInt32LE:{"!type":"fn(value: Object, offset: Object, noAssert?: Object)"},writeUInt32BE:{"!type":"fn(value: Object, offset: Object, noAssert?: Object)"},writeInt8:{"!type":"fn(value: Object, offset: Object, noAssert?: Object)"},
writeInt16LE:{"!type":"fn(value: Object, offset: Object, noAssert?: Object)"},writeInt16BE:{"!type":"fn(value: Object, offset: Object, noAssert?: Object)"},writeInt32LE:{"!type":"fn(value: Object, offset: Object, noAssert?: Object)"},writeInt32BE:{"!type":"fn(value: Object, offset: Object, noAssert?: Object)"},writeFloatLE:{"!type":"fn(value: Object, offset: Object, noAssert?: Object)"},writeFloatBE:{"!type":"fn(value: Object, offset: Object, noAssert?: Object)"},writeDoubleLE:{"!type":"fn(value: Object, offset: Object, noAssert?: Object)"},
writeDoubleBE:{"!type":"fn(value: Object, offset: Object, noAssert?: Object)"},fill:{"!type":"fn(value: Object, offset?: Object, end?: Object)"},length:{"!type":"Number"}},isEncoding:{"!type":"fn(encoding: Object)"},isBuffer:{"!type":"fn(obj: Object)"},byteLength:{"!type":"fn(string: Object, encoding?: Object)"},concat:{"!type":"fn(list: Object, totalLength?: Object)"}},SlowBuffer:{"!type":"fn()",prototype:{}}},child_process:{spawn:{"!type":"fn(command: Object, args?: Object, options?: Object) -\x3e +ChildProcess"},
exec:{"!type":"fn(command: Object, options: Object, callback: Object) -\x3e +ChildProcess"},execFile:{"!type":"fn(file: Object, args: Object, options: Object, callback: Object) -\x3e +ChildProcess"},fork:{"!type":"fn(modulePath: Object, args?: Object, options?: Object) -\x3e +ChildProcess"}},ChildProcess:{"!type":"fn()",prototype:{kill:{"!type":"fn(signal?: String)"},unref:{"!type":"fn()"},send:{"!type":"fn(message: Object, sendHandle?: Object)"},disconnect:{"!type":"fn()"},stdin:{"!type":"Object"},
stdout:{"!type":"Object"},stderr:{"!type":"Object"},pid:{"!type":"Number"}}},cluster:{setupMaster:{"!type":"fn(settings?: Object)"},fork:{"!type":"fn(env?: Object) -\x3e Workerobject"},disconnect:{"!type":"fn(callback?: Object)"},settings:{"!type":"Object"},isMaster:{"!type":"Object"},isWorker:{"!type":"Object"},worker:{"!type":"Object"},workers:{"!type":"Object"},Worker:{"!type":"fn()",prototype:{send:{"!type":"fn(message: Object, sendHandle?: Object)"},kill:{"!type":"fn(signal?: Object)"},disconnect:{"!type":"fn()"},
id:{"!type":"Object"},process:{"!type":"Object"},suicide:{"!type":"Object"}}}},Console:{log:{"!type":"fn(data?: Object, other?: Object)"},info:{"!type":"fn(data?: Object, other?: Object)"},error:{"!type":"fn(data?: Object, other?: Object)"},warn:{"!type":"fn(data?: Object, other?: Object)"},dir:{"!type":"fn(obj: Object)"},time:{"!type":"fn(label: Object)"},timeEnd:{"!type":"fn(label: Object)"},trace:{"!type":"fn(label: Object)"},assert:{"!type":"fn(expression: Object, message?: Object)"}},crypto:{getCiphers:{"!type":"fn()"},
getHashes:{"!type":"fn()"},createCredentials:{"!type":"fn(details: Object)"},createHash:{"!type":"fn(algorithm: Object)"},createHmac:{"!type":"fn(algorithm: Object, key: Object)"},createCipher:{"!type":"fn(algorithm: Object, password: Object)"},createCipheriv:{"!type":"fn(algorithm: Object, key: Object, iv: Object)"},createDecipher:{"!type":"fn(algorithm: Object, password: Object)"},createDecipheriv:{"!type":"fn(algorithm: Object, key: Object, iv: Object)"},createSign:{"!type":"fn(algorithm: Object)"},
createVerify:{"!type":"fn(algorithm: Object)"},createDiffieHellman:{"!type":"fn(prime: Object, encoding?: Object)"},getDiffieHellman:{"!type":"fn(group_name: Object)"},pbkdf2:{"!type":"fn(password: Object, salt: Object, iterations: Object, keylen: Object, callback: Object)"},pbkdf2Sync:{"!type":"fn(password: Object, salt: Object, iterations: Object, keylen: Object)"},randomBytes:{"!type":"fn(size: Object, callback?: Object)"},pseudoRandomBytes:{"!type":"fn(size: Object, callback?: Object)"},DEFAULT_ENCODING:{"!type":"Object"},
Hash:{"!type":"fn()",prototype:{update:{"!type":"fn(data: Object, input_encoding?: Object)"},digest:{"!type":"fn(encoding?: Object)"}}},Hmac:{"!type":"fn()",prototype:{update:{"!type":"fn(data: Object)"},digest:{"!type":"fn(encoding?: Object)"}}},Cipher:{"!type":"fn()",prototype:{update:{"!type":"fn(data: Object, input_encoding?: Object, output_encoding?: Object)"},"final":{"!type":"fn(output_encoding?: Object)"},setAutoPadding:{"!type":"fn(auto_padding: Object)"}}},Decipher:{"!type":"fn()",prototype:{update:{"!type":"fn(data: Object, input_encoding?: Object, output_encoding?: Object)"},
"final":{"!type":"fn(output_encoding?: Object)"},setAutoPadding:{"!type":"fn(auto_padding: Object)"}}},Sign:{"!type":"fn()",prototype:{update:{"!type":"fn(data: Object)"},sign:{"!type":"fn(private_key: Object, output_format?: Object)"}}},Verify:{"!type":"fn()",prototype:{update:{"!type":"fn(data: Object)"},verify:{"!type":"fn(object: Object, signature: Object, signature_format?: Object)"}}},DiffieHellman:{"!type":"fn()",prototype:{generateKeys:{"!type":"fn(encoding?: Object)"},computeSecret:{"!type":"fn(other_public_key: Object, input_encoding?: Object, output_encoding?: Object)"},
getPrime:{"!type":"fn(encoding?: Object)"},getGenerator:{"!type":"fn(encoding?: Object)"},getPublicKey:{"!type":"fn(encoding?: Object)"},getPrivateKey:{"!type":"fn(encoding?: Object)"},setPublicKey:{"!type":"fn(public_key: Object, encoding?: Object)"},setPrivateKey:{"!type":"fn(private_key: Object, encoding?: Object)"}}}},dgram:{createSocket:{"!type":"fn(type: Object, callback?: Object)"},Socket:{"!type":"fn()",prototype:{send:{"!type":"fn(buf: Object, offset: Object, length: Object, port: Object, address: Object, callback?: Object)"},
bind:{"!type":"fn(port: Object, address?: Object, callback?: Object)"},close:{"!type":"fn()"},address:{"!type":"fn()"},setBroadcast:{"!type":"fn(flag: Object)"},setTTL:{"!type":"fn(ttl: Object)"},setMulticastTTL:{"!type":"fn(ttl: Object)"},setMulticastLoopback:{"!type":"fn(flag: Object)"},addMembership:{"!type":"fn(multicastAddress: Object, multicastInterface?: Object)"},dropMembership:{"!type":"fn(multicastAddress: Object, multicastInterface?: Object)"},unref:{"!type":"fn()"},ref:{"!type":"fn()"}}}},
dns:{lookup:{"!type":"fn(domain: Object, family: Object, callback: Object)"},resolve:{"!type":"fn(domain: Object, rrtype: Object, callback: Object)"},resolve4:{"!type":"fn(domain: Object, callback: Object)"},resolve6:{"!type":"fn(domain: Object, callback: Object)"},resolveMx:{"!type":"fn(domain: Object, callback: Object)"},resolveTxt:{"!type":"fn(domain: Object, callback: Object)"},resolveSrv:{"!type":"fn(domain: Object, callback: Object)"},resolveNs:{"!type":"fn(domain: Object, callback: Object)"},
resolveCname:{"!type":"fn(domain: Object, callback: Object)"},reverse:{"!type":"fn(ip: Object, callback: Object)"}},domain:{create:{"!type":"fn() -\x3e +domain.Domain"},createDomain:{"!type":"fn() -\x3e +domain.Domain"},Domain:{"!type":"fn()",prototype:{run:{"!type":"fn(fn: Object)"},add:{"!type":"fn(emitter: Object)"},remove:{"!type":"fn(emitter: Object)"},bind:{"!type":"fn(callback: Object) -\x3e Function"},intercept:{"!type":"fn(callback: Object) -\x3e Function"},enter:{"!type":"fn()"},exit:{"!type":"fn()"},
dispose:{"!type":"fn()"},members:{"!type":"Object"}}}},events:{EventEmitter:{"!type":"fn()",prototype:{addListener:{"!type":"fn(event: Object, listener: Object)"},on:{"!type":"fn(event: Object, listener: Object)"},once:{"!type":"fn(event: Object, listener: Object)"},removeListener:{"!type":"fn(event: Object, listener: Object)"},removeAllListeners:{"!type":"fn(event?: Object)"},setMaxListeners:{"!type":"fn(n: Object)"},listeners:{"!type":"fn(event: Object)"},emit:{"!type":"fn(event: Object, arg1?: Object, arg2?: Object, other?: Object)"}},
listenerCount:{"!type":"fn(emitter: Object, event: Object)"}}},fs:{rename:{"!type":"fn(oldPath: Object, newPath: Object, callback: Object)"},renameSync:{"!type":"fn(oldPath: Object, newPath: Object)"},ftruncate:{"!type":"fn(fd: Object, len: Object, callback: Object)"},ftruncateSync:{"!type":"fn(fd: Object, len: Object)"},truncate:{"!type":"fn(path: Object, len: Object, callback: Object)"},truncateSync:{"!type":"fn(path: Object, len: Object)"},chown:{"!type":"fn(path: Object, uid: Object, gid: Object, callback: Object)"},
chownSync:{"!type":"fn(path: Object, uid: Object, gid: Object)"},fchown:{"!type":"fn(fd: Object, uid: Object, gid: Object, callback: Object)"},fchownSync:{"!type":"fn(fd: Object, uid: Object, gid: Object)"},lchown:{"!type":"fn(path: Object, uid: Object, gid: Object, callback: Object)"},lchownSync:{"!type":"fn(path: Object, uid: Object, gid: Object)"},chmod:{"!type":"fn(path: Object, mode: Object, callback: Object)"},chmodSync:{"!type":"fn(path: Object, mode: Object)"},fchmod:{"!type":"fn(fd: Object, mode: Object, callback: Object)"},
fchmodSync:{"!type":"fn(fd: Object, mode: Object)"},lchmod:{"!type":"fn(path: Object, mode: Object, callback: Object)"},lchmodSync:{"!type":"fn(path: Object, mode: Object)"},stat:{"!type":"fn(path: Object, callback: Object)"},lstat:{"!type":"fn(path: Object, callback: Object)"},fstat:{"!type":"fn(fd: Object, callback: Object)"},statSync:{"!type":"fn(path: Object)"},lstatSync:{"!type":"fn(path: Object)"},fstatSync:{"!type":"fn(fd: Object)"},link:{"!type":"fn(srcpath: Object, dstpath: Object, callback: Object)"},
linkSync:{"!type":"fn(srcpath: Object, dstpath: Object)"},symlink:{"!type":"fn(srcpath: Object, dstpath: Object, type: Object, callback: Object)"},symlinkSync:{"!type":"fn(srcpath: Object, dstpath: Object, type?: Object)"},readlink:{"!type":"fn(path: Object, callback: Object)"},readlinkSync:{"!type":"fn(path: Object)"},realpath:{"!type":"fn(path: Object, cache: Object, callback: Object)"},realpathSync:{"!type":"fn(path: Object, cache?: Object)"},unlink:{"!type":"fn(path: Object, callback: Object)"},
unlinkSync:{"!type":"fn(path: Object)"},rmdir:{"!type":"fn(path: Object, callback: Object)"},rmdirSync:{"!type":"fn(path: Object)"},mkdir:{"!type":"fn(path: Object, mode: Object, callback: Object)"},mkdirSync:{"!type":"fn(path: Object, mode?: Object)"},readdir:{"!type":"fn(path: Object, callback: Object)"},readdirSync:{"!type":"fn(path: Object)"},close:{"!type":"fn(fd: Object, callback: Object)"},closeSync:{"!type":"fn(fd: Object)"},open:{"!type":"fn(path: Object, flags: Object, mode: Object, callback: Object)"},
openSync:{"!type":"fn(path: Object, flags: Object, mode?: Object) -\x3e Number"},utimes:{"!type":"fn(path: Object, atime: Object, mtime: Object)"},utimesSync:{"!type":"fn(path: Object, atime: Object, mtime: Object)"},futimes:{"!type":"fn(fd: Object, atime: Object, mtime: Object)"},futimesSync:{"!type":"fn(fd: Object, atime: Object, mtime: Object)"},fsync:{"!type":"fn(fd: Object, callback: Object)"},fsyncSync:{"!type":"fn(fd: Object)"},write:{"!type":"fn(fd: Object, buffer: Object, offset: Object, length: Object, position: Object, callback: Object)"},
writeSync:{"!type":"fn(fd: Object, buffer: Object, offset: Object, length: Object, position: Object)"},read:{"!type":"fn(fd: Object, buffer: Object, offset: Object, length: Object, position: Object, callback: Object)"},readSync:{"!type":"fn(fd: Object, buffer: Object, offset: Object, length: Object, position: Object)"},readFile:{"!type":"fn(filename: Object, options: Object, callback: Object)"},readFileSync:{"!type":"fn(filename: Object, options?: Object)"},writeFile:{"!type":"fn(filename: Object, data: Object, options: Object, callback: Object)"},
writeFileSync:{"!type":"fn(filename: Object, data: Object, options?: Object)"},appendFile:{"!type":"fn(filename: Object, data: Object, options: Object, callback: Object)"},appendFileSync:{"!type":"fn(filename: Object, data: Object, options?: Object)"},watchFile:{"!type":"fn(filename: Object, options: Object, listener: Object)"},unwatchFile:{"!type":"fn(filename: Object, listener?: Object)"},watch:{"!type":"fn(filename: Object, options?: Object, listener?: Object)"},exists:{"!type":"fn(path: Object, callback: Object)"},
existsSync:{"!type":"fn(path: Object)"},createReadStream:{"!type":"fn(path: Object, options?: Object)"},createWriteStream:{"!type":"fn(path: Object, options?: Object)"},Stats:{"!type":"fn()",prototype:{}},ReadStream:{"!type":"fn()",prototype:{}},WriteStream:{"!type":"fn()",prototype:{bytesWritten:{"!type":"Object"}}},FSWatcher:{"!type":"fn()",prototype:{close:{"!type":"fn()"}}}},http:{createServer:{"!type":"fn(requestListener?: Object)"},createClient:{"!type":"fn(port?: Object, host?: Object)"},request:{"!type":"fn(options: Object, callback: Object)"},
get:{"!type":"fn(options: Object, callback: Object)"},STATUS_CODES:{"!type":"Object"},globalAgent:{"!type":"Object"},IncomingMessage:{"!type":"Object"},Server:{"!type":"fn()",prototype:{listen:{"!type":"fn(handle: Object, callback?: Object)"},close:{"!type":"fn(callback?: Object)"},setTimeout:{"!type":"fn(msecs: Object, callback: Object)"},maxHeadersCount:{"!type":"Object"},timeout:{"!type":"Object"}}},ServerResponse:{"!type":"fn()",prototype:{writeContinue:{"!type":"fn()"},writeHead:{"!type":"fn(statusCode: Object, reasonPhrase?: Object, headers?: Object)"},
setTimeout:{"!type":"fn(msecs: Object, callback: Object)"},setHeader:{"!type":"fn(name: Object, value: Object)"},getHeader:{"!type":"fn(name: Object)"},removeHeader:{"!type":"fn(name: Object)"},write:{"!type":"fn(chunk: Object, encoding?: Object)"},addTrailers:{"!type":"fn(headers: Object)"},end:{"!type":"fn(data?: Object, encoding?: Object)"},statusCode:{"!type":"Object"},headersSent:{"!type":"Object"},sendDate:{"!type":"Object"}}},Agent:{"!type":"fn()",prototype:{maxSockets:{"!type":"Object"},sockets:{"!type":"Object"},
requests:{"!type":"Object"}}},ClientRequest:{"!type":"fn()",prototype:{write:{"!type":"fn(chunk: Object, encoding?: Object)"},end:{"!type":"fn(data?: Object, encoding?: Object)"},abort:{"!type":"fn()"},setTimeout:{"!type":"fn(timeout: Object, callback?: Object)"},setNoDelay:{"!type":"fn(noDelay?: Object)"},setSocketKeepAlive:{"!type":"fn(enable?: Object, initialDelay?: Object)"}}}},https:{createServer:{"!type":"fn(options: Object, requestListener?: Object)"},request:{"!type":"fn(options: Object, callback: Object)"},
get:{"!type":"fn(options: Object, callback: Object)"},globalAgent:{"!type":"Object"},Server:{"!type":"fn()",prototype:{}},Agent:{"!type":"fn()",prototype:{}}},net:{createServer:{"!type":"fn(options?: Object, connectionListener?: Object)"},connect:{"!type":"fn(path: Object, connectListener?: Object)"},createConnection:{"!type":"fn(path: Object, connectListener?: Object)"},isIP:{"!type":"fn(input: Object)"},isIPv4:{"!type":"fn(input: Object)"},isIPv6:{"!type":"fn(input: Object)"},Server:{"!type":"fn()",
prototype:{listen:{"!type":"fn(handle: Object, callback?: Object)"},close:{"!type":"fn(callback?: Object)"},address:{"!type":"fn()"},unref:{"!type":"fn()"},ref:{"!type":"fn()"},getConnections:{"!type":"fn(callback: Object)"},maxConnections:{"!type":"Object"},connections:{"!type":"Object"}}},Socket:{"!type":"fn()",prototype:{Socket:{"!type":"fn(options?: Object)"},connect:{"!type":"fn(path: Object, connectListener?: Object)"},setEncoding:{"!type":"fn(encoding?: Object)"},write:{"!type":"fn(data: Object, encoding?: Object, callback?: Object)"},
end:{"!type":"fn(data?: Object, encoding?: Object)"},destroy:{"!type":"fn()"},pause:{"!type":"fn()"},resume:{"!type":"fn()"},setTimeout:{"!type":"fn(timeout: Object, callback?: Object)"},setNoDelay:{"!type":"fn(noDelay?: Object)"},setKeepAlive:{"!type":"fn(enable?: Object, initialDelay?: Object)"},address:{"!type":"fn()"},unref:{"!type":"fn()"},ref:{"!type":"fn()"},bufferSize:{"!type":"Object"},remoteAddress:{"!type":"Object"},remotePort:{"!type":"Object"},localAddress:{"!type":"Object"},localPort:{"!type":"Object"},
bytesRead:{"!type":"Object"},bytesWritten:{"!type":"Object"}}}},os:{tmpdir:{"!type":"fn()"},endianness:{"!type":"fn()"},hostname:{"!type":"fn()"},type:{"!type":"fn()"},platform:{"!type":"fn()"},arch:{"!type":"fn()"},release:{"!type":"fn()"},uptime:{"!type":"fn()"},loadavg:{"!type":"fn()"},totalmem:{"!type":"fn()"},freemem:{"!type":"fn()"},cpus:{"!type":"fn()"},networkInterfaces:{"!type":"fn()"},EOL:{"!type":"Object"}},path:{normalize:{"!type":"fn(p: Object)"},join:{"!type":"fn(path1?: Object, path2?: Object, other?: Object)"},
resolve:{"!type":"fn(from: Object, to: Object)"},relative:{"!type":"fn(from: Object, to: Object)"},dirname:{"!type":"fn(p: Object)"},basename:{"!type":"fn(p: Object, ext?: Object)"},extname:{"!type":"fn(p: Object)"},sep:{"!type":"Object"},delimiter:{"!type":"Object"}},Process:{abort:{"!type":"fn()"},chdir:{"!type":"fn(directory: Object)"},cwd:{"!type":"fn()"},exit:{"!type":"fn(code?: Object)"},getgid:{"!type":"fn()"},setgid:{"!type":"fn(id: Object)"},getuid:{"!type":"fn()"},setuid:{"!type":"fn(id: Object)"},
getgroups:{"!type":"fn()"},setgroups:{"!type":"fn(groups: Object)"},initgroups:{"!type":"fn(user: Object, extra_group: Object)"},kill:{"!type":"fn(pid: Object, signal?: Object)"},memoryUsage:{"!type":"fn()"},nextTick:{"!type":"fn(callback: Object)"},umask:{"!type":"fn(mask?: Object)"},uptime:{"!type":"fn()"},hrtime:{"!type":"fn()"},stdout:{"!type":"+stream.Writable"},stderr:{"!type":"Object"},stdin:{"!type":"Object"},argv:{"!type":"Object"},execPath:{"!type":"Object"},execArgv:{"!type":"Object"},
env:{"!type":"Object"},version:{"!type":"Object"},versions:{"!type":"Object"},config:{"!type":"Object"},pid:{"!type":"Object"},title:{"!type":"Object"},arch:{"!type":"Object"},platform:{"!type":"Object"},maxTickDepth:{"!type":"Object"}},punycode:{decode:{"!type":"fn(string: Object)"},encode:{"!type":"fn(string: Object)"},toUnicode:{"!type":"fn(domain: Object)"},toASCII:{"!type":"fn(domain: Object)"},ucs2:{"!type":"Object"},version:{"!type":"Object"}},querystring:{stringify:{"!type":"fn(obj: Object, sep?: Object, eq?: Object)"},
parse:{"!type":"fn(str: Object, sep?: Object, eq?: Object, options?: Object)"},escape:{"!type":"Object"},unescape:{"!type":"Object"}},readline:{createInterface:{"!type":"fn(options: Object)"},Interface:{"!type":"fn()",prototype:{setPrompt:{"!type":"fn(prompt: Object, length: Object)"},prompt:{"!type":"fn(preserveCursor?: Object)"},question:{"!type":"fn(query: Object, callback: Object)"},pause:{"!type":"fn()"},resume:{"!type":"fn()"},close:{"!type":"fn()"},write:{"!type":"fn(data: Object, key?: Object)"}}}},
repl:{start:{"!type":"fn(options: Object)"}},stream:{Readable:{"!type":"fn()",prototype:{read:{"!type":"fn(size?: Object) -\x3e String"},setEncoding:{"!type":"fn(encoding: Object)"},resume:{"!type":"fn()"},pause:{"!type":"fn()"},pipe:{"!type":"fn(destination: Object, options?: Object)"},unpipe:{"!type":"fn(destination?: Object)"},unshift:{"!type":"fn(chunk: Object)"},wrap:{"!type":"fn(stream: Object)"}}},Writable:{"!type":"fn()",prototype:{write:{"!type":"fn(chunk: Object, encoding?: Object, callback?: Object) -\x3e Boolean"},
end:{"!type":"fn(chunk?: Object, encoding?: Object, callback?: Object)"}}},Duplex:{"!type":"fn()",prototype:{}},Transform:{"!type":"fn()",prototype:{}}},string_decoder:{StringDecoder:{"!type":"fn()",prototype:{write:{"!type":"fn(buffer: Object)"},end:{"!type":"fn()"}}}},timers:{setTimeout:{"!type":"fn(callback: Object, delay: Object, arg?: Object, other?: Object)"},clearTimeout:{"!type":"fn(timeoutId: Object)"},setInterval:{"!type":"fn(callback: Object, delay: Object, arg?: Object, other?: Object)"},
clearInterval:{"!type":"fn(intervalId: Object)"},unref:{"!type":"fn()"},ref:{"!type":"fn()"},setImmediate:{"!type":"fn(callback: Object, arg?: Object, other?: Object)"},clearImmediate:{"!type":"fn(immediateId: Object)"}},tls:{getCiphers:{"!type":"fn()"},createServer:{"!type":"fn(options: Object, secureConnectionListener?: Object)"},connect:{"!type":"fn(port: Object, host?: Object, options?: Object, callback?: Object)"},createSecurePair:{"!type":"fn(credentials?: Object, isServer?: Object, requestCert?: Object, rejectUnauthorized?: Object)"},
SLAB_BUFFER_SIZE:{"!type":"Object"},SecurePair:{"!type":"fn()",prototype:{}},Server:{"!type":"fn()",prototype:{listen:{"!type":"fn(port: Object, host?: Object, callback?: Object)"},close:{"!type":"fn()"},address:{"!type":"fn()"},addContext:{"!type":"fn(hostname: Object, credentials: Object)"},maxConnections:{"!type":"Object"},connections:{"!type":"Object"}}},CryptoStream:{"!type":"fn()",prototype:{bytesWritten:{"!type":"Object"}}},CleartextStream:{"!type":"fn()",prototype:{getPeerCertificate:{"!type":"fn()"},
getCipher:{"!type":"fn()"},address:{"!type":"fn()"},authorized:{"!type":"Object"},authorizationError:{"!type":"Object"},remoteAddress:{"!type":"Object"},remotePort:{"!type":"Object"}}}},tty:{isatty:{"!type":"fn(fd: Object)"},setRawMode:{"!type":"fn(mode: Object)"},ReadStream:{"!type":"fn()",prototype:{setRawMode:{"!type":"fn(mode: Object)"},isRaw:{"!type":"Object"}}},WriteStream:{"!type":"fn()",prototype:{columns:{"!type":"Object"},rows:{"!type":"Object"}}}},url:{parse:{"!type":"fn(urlStr: Object, parseQueryString?: Object, slashesDenoteHost?: Object)"},
format:{"!type":"fn(urlObj: Object)"},resolve:{"!type":"fn(from: Object, to: Object)"}},util:{format:{"!type":"fn(format: Object, other?: Object)"},debug:{"!type":"fn(string: Object)"},error:{"!type":"fn(other?: Object)"},puts:{"!type":"fn(other?: Object)"},print:{"!type":"fn(other?: Object)"},log:{"!type":"fn(string: Object)"},inspect:{"!type":"fn(object: Object, options?: Object)"},isArray:{"!type":"fn(object: Object)"},isRegExp:{"!type":"fn(object: Object)"},isDate:{"!type":"fn(object: Object)"},
isError:{"!type":"fn(object: Object)"},pump:{"!type":"fn(readableStream: Object, writableStream: Object, callback?: Object)"},inherits:{"!type":"fn(constructor: Object, superConstructor: Object)"}},vm:{runInThisContext:{"!type":"fn(code: Object, filename?: Object)"},runInNewContext:{"!type":"fn(code: Object, sandbox?: Object, filename?: Object)"},runInContext:{"!type":"fn(code: Object, context: Object, filename?: Object)"},createContext:{"!type":"fn(initSandbox?: Object)"},createScript:{"!type":"fn(code: Object, filename?: Object)"},
Script:{"!type":"fn()",prototype:{runInThisContext:{"!type":"fn()"},runInNewContext:{"!type":"fn(sandbox?: Object)"}}}},zlib:{createGzip:{"!type":"fn(options?: Object)"},createGunzip:{"!type":"fn(options?: Object)"},createDeflate:{"!type":"fn(options?: Object)"},createInflate:{"!type":"fn(options?: Object)"},createDeflateRaw:{"!type":"fn(options?: Object)"},createInflateRaw:{"!type":"fn(options?: Object)"},createUnzip:{"!type":"fn(options?: Object)"},deflate:{"!type":"fn(buf: Object, callback: Object)"},
deflateRaw:{"!type":"fn(buf: Object, callback: Object)"},gzip:{"!type":"fn(buf: Object, callback: Object)"},gunzip:{"!type":"fn(buf: Object, callback: Object)"},inflate:{"!type":"fn(buf: Object, callback: Object)"},inflateRaw:{"!type":"fn(buf: Object, callback: Object)"},unzip:{"!type":"fn(buf: Object, callback: Object)"},Zlib:{"!type":"fn()",prototype:{flush:{"!type":"fn(callback: Object)"},reset:{"!type":"fn()"}}},Gzip:{"!type":"fn()",prototype:{}},Gunzip:{"!type":"fn()",prototype:{}},Deflate:{"!type":"fn()",
prototype:{}},Inflate:{"!type":"fn()",prototype:{}},DeflateRaw:{"!type":"fn()",prototype:{}},InflateRaw:{"!type":"fn()",prototype:{}},Unzip:{"!type":"fn()",prototype:{}}},TimeoutID:{},IntervalID:{}},"!name":"node","this":"\x3ctop\x3e",global:"\x3ctop\x3e",Buffer:"buffer.Buffer",require:{"!type":"fn(name: String)"},__filename:"String",__dirname:"String",module:{exports:"Object",id:"String",filename:"String",loaded:"String",parent:"Object",children:"[Object]"},exports:"Object",setTimeout:{"!type":"fn(cb: Object, ms: Number) -\x3e TimeoutID"},
clearTimeout:{"!type":"fn(t: TimeoutID)"},setInterval:{"!type":"fn(cb: Object, ms: Number) -\x3e IntervalID"},clearInterval:{"!type":"fn(t: IntervalID)"}}});
define("javascript/contentAssist/typesFromIndexFile","doctrine/doctrine javascript/contentAssist/indexFiles/browserIndex javascript/contentAssist/indexFiles/ecma5Index javascript/contentAssist/indexFiles/nodeIndex javascript/contentAssist/typeUtils orion/Deferred".split(" "),function(b,c,e,n,f,d){function p(a){if(f.isArrayType(a))return doctrine.type.stringify(a,{compact:!0});if(!a.typeObj)throw Error("No typeObj in "+a);return"FunctionType"===a.typeObj.type?doctrine.type.stringify(a.typeObj,{compact:!0}):
a.typeObj.name}function h(a,b,d){var c;a=a.substring(3,a.length).replace(/\s+/g,"");for(c="";")"!==a.charAt(0);){var l=a.indexOf(":"),m=a.slice(0,l),g="?"===m[m.length-1];g&&(m=m.slice(0,m.length-1));a=a.slice(l+1,a.length);var e=l=null;"f"===a.charAt(0)&&"n"===a.charAt(1)?(e=a.indexOf(")"),l=a.indexOf(",",e)):l=a.indexOf(",");var B=null;-1!==l?B=l:(B=null,B=e?a.indexOf("-\x3e",a.indexOf(")",e+1)):a.indexOf("-\x3e"),B=-1!==B?B-1:a.length-1);e=a.slice(0,B);e=r(d,e);c+=m+":"+p(e);g&&(c+="\x3d");-1!==
l?(c+=",",a=a.slice(B+1,a.length)):a=a.slice(B,a.length)}a=a.slice(1,a.length);var k;""!==a?k=p(r(d,a.substring(2,a.length))):b&&(k=b);b="function(";!a&&k&&f.isUpperCaseChar(k)&&(b+="new:"+k,c&&(b+=","));return b+(c+"):"+k)}function r(a,b,d){if("string"===typeof b){if(z[b])return new f.Definition(z[b]);if("?"===b)return"undefined"===d?new f.Definition({name:"undefined",type:"NameExpression"}):d?new f.Definition(d):new f.Definition("Object");if("\x3ctop\x3e"===b)return new f.Definition("Global");if("$"===
b[0])return new f.Definition(d);if("fn"===b.slice(0,2))return new f.Definition(h(b,d,a));if("["===b[0])return a=r(a,b.slice(1,b.length-1)),a.typeObj&&"Object"===a.typeObj.name?new f.Definition("Array"):f.createAppliedArray(a.typeObj);if("!custom"===b.slice(0,7)||"!this"===b.slice(0,5)||"!0"===b.slice(0,2))return new f.Definition("Object");if("!"===b.slice(0,1))throw"unhandled special case "+b;-1!==b.indexOf(".")&&(b=b.replace(/\./g,".."));"+"===b.slice(0,1)&&(b=b.slice(1,b.length)+"..prototype");
return new f.Definition(b)}var c=b,m={},g,e;for(e in c)if(Object.prototype.hasOwnProperty.call(c,e))if("!type"===e)g=r(a,c[e],d),f.isFunctionOrConstructor(g.typeObj)&&(m.$$fntype=g.typeObj,g=d?new f.Definition(d):new f.Definition(J+L++));else if("!proto"===e)m.$$proto=r(a,c[e]);else if(!("!url"===e||"!stdProto"===e||"!effects"===e||"!doc"===e)){if("!"===e[0])throw"didn't handle special property "+e;"prototype"===e?(m.$$prototype=r(a,c[e]),m.$$newtype=m.$$prototype):m[e]=r(a,c[e])}m.$$prototype&&m.$$fntype&&
"string"===typeof c.prototype&&(m.$$fntype.result.name=m.$$prototype.typeObj.name);g||(g=d?new f.Definition(d):new f.Definition(J+L++));d=g;if((c=d.typeObj.name)&&"Global"!==c&&(!b["!type"]||!l.test(b["!type"])&&!("["===b["!type"].slice(0,1)||"+"===b["!type"].slice(0,1))))if("Object"===c){b={};for(var B in m)Object.prototype.hasOwnProperty.call(m,B)&&(b["$_$"+B]=m[B]);b.$$isBuiltin=!0;a[c]=b}else{if(a[c])throw"type "+c+" defined twice in index file";m.$$isBuiltin=!0;a[c]=m}return d}function u(a,b,
d){for(var c in a)if(Object.prototype.hasOwnProperty.call(a,c)&&"!name"!==c)if("!define"===c){var l=a[c],m;for(m in l)Object.prototype.hasOwnProperty.call(l,m)&&r(d,l[m],m)}else b[c]="string"===typeof a[c]?r(d,{"!type":a[c]},c):r(d,a[c],c)}function a(a,b){var d={},c=Object.getPrototypeOf(a.Global);Object.keys(c).forEach(function(a){d[a]=c[a]});Object.keys(b.globals).forEach(function(a){d[a]=b.globals[a]});k.prototype=d;a.Global=new k;k.prototype=w;Object.keys(b.types).forEach(function(d){"Global"!==
d&&(a[d]=b.types[d])});return a}function g(a,b){if(!a||!b)throw Error("Missing parameter");var d=B[a];d||(d={globals:{},types:{}},u(b,d.globals,d.types),B[a]=d);return d}var k=function(){},w={};k.prototype=w;b=function(a){this.Global=new k};var s={};b.prototype=s;var z={number:"Number",bool:"Boolean",string:"String"},J=f.GEN_NAME+"index~",L=0,l=/^[_$a-zA-Z\xA0-\uFFFF]([_$a-zA-Z0-9\.\xA0-\uFFFF])*$/;w.$$proto=new f.Definition("Object");var m=null,B={};return{Types:b,getGlobalsAndTypes:g,addLibrary:function(b,
d){var l;if("browser"===d)l=c;else if("node"===d)l=n;else throw Error("unknown built-in library name: "+d);l=g(d,l);return a(b,l)},ternSig2ClosureSig:h,init:function(){if(!m){var a=new d;u(e,w,s);a.resolve();m=a.promise}return m},parseType:function(a,b){var d={};return{def:r(d,a,b),typeInfo:d}},addIndexData:function(b,d){var c={globals:{},types:{}};u(b,c.globals,c.types);a(d,c)}}});
define("javascript/contentAssist/typeEnvironment",["javascript/contentAssist/typeUtils","javascript/contentAssist/typesFromIndexFile","orion/Deferred"],function(b,c,e){function n(b,c){return!(c in b)?!1:Object.hasOwnProperty(c)?!b.hasOwnProperty(c):Object.prototype.hasOwnProperty(c)?b.hasOwnProperty(c):!0}function f(b,f){return c.init().then(function(){var h=new c.Types;f&&f.forEach(function(b){c.addIndexData(b,h)});var r=null;"Window"===b?r=c.addLibrary(h,"browser"):"Module"===b?r=c.addLibrary(h,
"node"):(r=new e,r.resolve(h),r=r.promise);return r})}return{createEnvironment:function(d){function c(a,b,d,g,e){var f=d[b];d=d.$$proto;if(f)return g||"$$fntype"===b?f:f.typeObj;if(d){if(e){if(e[d.typeObj.name])return null}else e={};e[d.typeObj.name]=!0;return c(a,b,a.lookupQualifiedType(d.typeObj.name),g,e)}return null}var e=d.buffer,r=d.uid,u=d.offset,a=d.indexer,g=d.globalObjName,k=d.indexData;u||(u=e.length+1);var w=[];if(d.comments)for(var s=0;s<d.comments.length;s++)w[s]=d.comments[s];var z=
function(a){switch(a){case "prototype":return"$$prototype";case "__proto__":return"$$proto";case "toString":case "hasOwnProperty":case "toLocaleString":case "valueOf":case "isProtoTypeOf":case "propertyIsEnumerable":return"$_$"+a;default:return a}},J=b.GEN_NAME+function(a){var b=0,d,c;if(0===a.length)return b;for(c=0;c<a.length;c++)d=a.charCodeAt(c),b=(b<<5)-b+d,b&=b;return b}(r)+"~";return f(g,k).then(function(d){return{_scopeStack:["Global"],_allTypes:d,_typeCount:0,_nameStack:[],amdModule:null,
commonjsModule:null,nodeJSModule:"Module"===g,globalObjName:g,indexer:a,offset:u,contents:e,uid:"local"===r?null:r,comments:w,newName:function(){return J+this._typeCount++},isSyntheticName:function(a){return a.substr(0,b.GEN_NAME.length)===b.GEN_NAME},newScope:function(a){var d=this.scope(),c=this.newName();this._allTypes[c]={$$proto:new b.Definition(d,a,this.uid)};this._scopeStack.push(c);return c},newScopeObj:function(a){return b.createNameType(this.newScope(a))},pushScope:function(a){this._scopeStack.push(a)},
pushName:function(a){this._nameStack.push(a)},popName:function(){this._nameStack.pop()},getQualifiedName:function(){var a=this._nameStack.join(".");return 0<a.length?a+".":a},newObject:function(a,d){this.newScope();a=a?a:this.newName();this._allTypes[a]={$$proto:new b.Definition("Object",d,this.uid)};var c=b.createNameType(a);this.addVariable("this",null,c,d);return c},newFleetingObject:function(a,d){var c=a?a:this.newName();this._allTypes[c]={$$proto:new b.Definition("Object",d,this.uid)};return b.createNameType(c)},
con:function(a,d){var c=a?a:this.newName();this._allTypes[c]={$$proto:new b.Definition("Object",d,this.uid)};return c},popScope:function(){return this._scopeStack.pop()},scope:function(a){if("string"===typeof a)return a;if(a&&a.extras.inferredTypeObj){a=a.extras.inferredTypeObj;if("NameExpression"===a.type)return a.name;if("FunctionType"===a.type){if(a.params)for(var b=0;b<a.params.length;b++)if(("new"===a.params[b].name||"this"===a.params[b].name)&&a.params[b].expression.name)return a.params[b].expression.name;
return"Function"}if("ArrayType"===a.type)return"Array";if("TypeApplication"===a.type)return a.expression.name;if("UndefinedLiteral"===a.type||"UnionType"===a.type)return"Object"}else return this._scopeStack[this._scopeStack.length-1]},globalScope:function(){return this._allTypes[this._scopeStack[0]]},globalTypeName:function(){return this._scopeStack[0]},addVariable:function(a,d,c,g,e){if("prototype"===a)a="$$prototype";else if("__proto__"===a)a="$$proto";else if(this._allTypes.Object["$_$"+a])return;
d=this.lookupQualifiedType(this.scope(d),!0);if(!d.$$isBuiltin&&(!n(d,a)||!b.leftTypeIsMoreGeneral(c,d[a].typeObj,this)))return d[a]=new b.Definition(c?c:b.OBJECT_TYPE,g,this.uid),d[a].docRange=e,d[a]},addOrSetGlobalVariable:function(a,b,d,c){if(!this._allTypes.Object["$_$"+a])return this.addOrSetVariable(a,this.globalTypeName(),b,d,c)},addOrSetVariable:function(a,d,c,g,e){if("prototype"===a)a="$$prototype";else if("__proto__"===a)a="$$proto";else if(this._allTypes.Object["$_$"+a])return;d=this.scope(d);
var f=this._allTypes[d],k=!1;c=c?c:this.newFleetingObject();for(var p;f;)if(n(f,a)){p=f[a];!f.$$isBuiltin&&f.hasOwnProperty(a)&&!b.leftTypeIsMoreGeneral(c,p.typeObj,this)&&(p.typeObj=c,e&&(p.docRange=e),"$$prototype"===a&&f.$$newtype&&(this._allTypes[f.$$newtype.typeObj.name].$$proto.typeObj=c));k=!0;break}else f=f.$$proto?this._allTypes[f.$$proto.typeObj.name||"Function"]:null;if(!k&&(d=this.lookupQualifiedType(d,!0))&&!d.$$isBuiltin)p=new b.Definition(c,g,this.uid),p.docRange=e,d[a]=p;return p},
lookupQualifiedType:function(a,b){for(var d=a.split(".."),g=this._allTypes[d[0]],e=1;e<d.length;e++)g=c(this,z(d[e]),g,b),g=this._allTypes[g.name];return g},lookupTypeObj:function(a,b,d){b=this.scope(b);b=this.lookupQualifiedType(b,d);return c(this,z(a),b,d)},removeVariable:function(a,b){var d=this.lookupQualifiedType(this.scope(b),!0);d&&!d.$$isBuiltin&&d[a]&&(!d[a]||d.hasOwnProperty(a))&&delete d[a]},mergeSummary:function(a,d){for(var c in a.types)if(a.types.hasOwnProperty(c)){var g=this._allTypes[c],
e=a.types[c];if(!g||g.$$isBuiltin){var g=this._allTypes[c]={},f;for(f in e)g[f]||(g[f]=b.Definition.revive(e[f]))}}c=this._allTypes[d];if("string"!==typeof a.provided)for(var k in a.provided)a.provided.hasOwnProperty(k)&&(c[k]=b.Definition.revive(a.provided[k]))},initFunctionType:function(a,d,c,g){c=c.name;var e=this.newFleetingObject(c+"~proto");this._allTypes[c].$$proto=new b.Definition("Function",null,this.uid);this._allTypes[c].$$fntype=a;this._allTypes[c].$$prototype=new b.Definition(e,null,
this.uid);g||(g=c+"~new");this.newObject(g,d.range);this._allTypes[c].$$newtype=new b.Definition(g,null,this.uid);this._allTypes[g].$$proto=new b.Definition(e,null,this.uid)},updateObjLitFunctionTypes:function(a){function b(a,d){if(a!==d)for(var c in d)if(d.hasOwnProperty(c)&&0!==c.indexOf("$$"))if(a.hasOwnProperty(c)){if("NameExpression"===a[c].typeObj.type&&g.isSyntheticName(a[c].typeObj.name)&&"NameExpression"===d[c].typeObj.type&&g.isSyntheticName(d[c].typeObj.name)){var l=g._allTypes[a[c].typeObj.name],
e=g._allTypes[d[c].typeObj.name];l&&e&&b(l,e)}}else a[c]=d[c]}var d=a.extras.inferredTypeObj.name;if(d){var c={},g=this;b(c,this._allTypes[d]);a=a.properties;for(d=0;d<a.length;d++)if(a[d].hasOwnProperty("key")){var e=a[d].key.name;e&&"FunctionExpression"===a[d].value.type&&(e=a[d].value.extras.inferredTypeObj.name,e=this._allTypes[this._allTypes[e].$$newtype.typeObj.name],b(c,e))}for(d=0;d<a.length;d++)if(a[d].hasOwnProperty("key")&&(e=a[d].key.name)&&"FunctionExpression"===a[d].value.type){var e=
a[d].value.extras.inferredTypeObj.name,e=this._allTypes[this._allTypes[e].$$newtype.typeObj.name],f;for(f in c)c.hasOwnProperty(f)&&!e.hasOwnProperty(f)&&(e[f]=c[f])}}},updateReturnType:function(a,b){if(!a)return b;var d=this._allTypes[a.name].$$fntype;if(d){var c={type:d.type,params:d.params,result:b};d["this"]&&(c["this"]=d["this"]);d["new"]&&(c["new"]=d["new"]);return this._allTypes[a.name].$$fntype=c}return b},getNewType:function(a){return this.lookupTypeObj("$$newtype",a)},getFnType:function(a){var b=
this.lookupTypeObj("$$fntype",a);b||(b=a.extras.inferredTypeObj);return b},findType:function(a){a=b.convertToSimpleTypeName(a);return this._allTypes[a]},getAllTypes:function(){return this._allTypes},storeTarget:function(a){this.targetTypeName||(a||(a=this.scope()),this.targetTypeName=a,this.targetFound=!0)}}})}}});
define("javascript/contentAssist/esprimaVisitor",[],function(){return{visit:function(b,c,e,n){var f,d,p,h;if(e(b,c,!0)){h=[];for(d in b)if("range"!==d&&"errors"!==d&&"target"!==d&&"extras"!==d&&"comments"!==d)if(p=b[d],p instanceof Array)for(f=0;f<p.length;f++)p[f]&&p[f].hasOwnProperty("type")?h.push(p[f]):"properties"===d&&p[f].hasOwnProperty("key")&&p[f].hasOwnProperty("value")&&(h.push(p[f].key),h.push(p[f].value));else p&&p.hasOwnProperty("type")&&h.push(p);if(0<h.length){h.sort(function(b,d){return b.range&&
d.range?b.range[0]-d.range[0]:b.range?1:d.range?-1:0});for(f=0;f<h.length;f++)this.visit(h[f],c,e,n)}n&&n(b,c,!1)}}}});
define("javascript/contentAssist/typeInference",["javascript/contentAssist/esprimaVisitor","javascript/contentAssist/typeUtils","javascript/contentAssist/proposalUtils"],function(b,c,e){function n(a){return a?"Identifier"===a.type?a:"MemberExpression"===a.type?a.computed?"Literal"===a.property.type&&"string"===typeof a.property.value?a.property:a:n(a.property):"ArrayExpression"===a.type?a:null:null}function f(a){if(a){if("Identifier"===a.type)return a.name;if("MemberExpression"===a.type){var b=f(a.object);
a=f(a.property);return 0<b.length&&0<a.length?b+"."+a:b+a}return"CallExpression"===a.type?f(a.callee):""}return""}function d(a,b){for(var d;0<b.length&&b[0].range[0]<a.range[0];)d=b.shift();return d||{value:null}}function p(a,g){var k=a.type,h,s,z,J,L,l;a.extras||(a.extras={});switch(k){case "Program":a:{if((k=a.body)&&1<=k.length)for(l=0;l<k.length;l++)if(k[l]&&"ExpressionStatement"===k[l].type&&k[l].expression&&"CallExpression"===k[l].expression.type&&"define"===k[l].expression.callee.name&&(z=
k[l].expression,z.arguments&&1===z.arguments.length&&"FunctionExpression"===z.arguments[0].type&&3===z.arguments[0].params.length&&(z=z.arguments[0].params,"require"===z[0].name&&"exports"===z[1].name&&"module"===z[2].name))){k=k[l].expression;break a}k=null}g.commonjsModule=k;g.commonjsModule||(k=(k=a.body)&&1<=k.length&&k[0]&&"ExpressionStatement"===k[0].type&&k[0].expression&&"CallExpression"===k[0].expression.type&&"define"===k[0].expression.callee.name?k[0].expression:null,g.amdModule=k);break;
case "BlockStatement":a.extras.inferredTypeObj=g.newScopeObj();if(a.extras.stop)return r(a,g),delete a.extras.stop,!1;break;case "ArrayExpression":a.extras.inferredTypeObj=c.ARRAY_TYPE;break;case "ObjectExpression":a.extras.fname&&g.pushName(a.extras.fname);J=g.newObject(null,a.range);a.extras.inferredTypeObj=J;for(s=0;s<a.properties.length;s++)if(h=a.properties[s],h.key&&h.key.name&&(k=d(h.key,g.comments),L=c.parseJSDocComment(k),l=L.type&&c.convertJsDocType(L.type,g),h.key.extras||(h.key.extras=
{}),l?h.key.extras.inferredType=h.key.extras.jsdocType=z=l:z=c.OBJECT_TYPE,g.addVariable(h.key.name,a,z,h.key.range,k.range),h.key.extras.associatedComment=k,h.key.extras.isLHS=h.key.extras.isDecl=!0,"FunctionExpression"===h.value.type||"ObjectExpression"===h.value.type))h.value.extras||(h.value.extras={}),h.value.extras.fname=h.key.name,h.value.extras.cname=g.getQualifiedName()+h.key.name,"FunctionExpression"===h.value.type&&(h.value.extras.jsdocResult=L);break;case "FunctionDeclaration":case "FunctionExpression":a.id?
(h=a.id.name,l=a.id.range):a.extras.fname&&(h=a.extras.fname,l=a.range);z=[];if(a.params)for(s=0;s<a.params.length;s++)z[s]=a.params[s].name;a.extras.jsdocResult?(L=a.extras.jsdocResult,k={range:null}):(k=a.extras.associatedComment||d(a,g.comments),L=c.parseJSDocComment(k));var m;if(h&&a.body&&c.isUpperCaseChar(h))a.extras.cname&&(h=a.extras.cname),J=c.createNameType(h),m=!0;else{if(L.rturn){var B=c.convertJsDocType(L.rturn,g);J=a.extras.jsdocReturn=B;a.extras.inferredTypeObj=B}else J=c.UNDEFINED_TYPE;
m=!1}var y=Array(z.length);if(a.extras.paramTypeObj&&"FunctionType"===a.extras.paramTypeObj.type){var B=a.extras.paramTypeObj.params,M=Math.min(z.length||0,B.length||0);for(s=0;s<M;s++)y[s]=B[s]}else if(a.extras.stashedArguments){M=Math.min(z.length||0,a.extras.stashedArguments.length||0);for(s=0;s<M;s++)y[s]=a.extras.stashedArguments[s].extras.inferredTypeObj}a.body.extras||(a.body.extras={});a.body.extras.isConstructor=m;B=[];if(0<z.length){M=[];s=a.params;var u;if(0<s.length&&(a.extras||(a.extras=
{}),g.indexer&&a.extras.amdDefn&&(u=a.extras.amdDefn.arguments,1<u.length&&u[u.length-1]===a))){var C=null;3===u.length&&"Literal"===u[0].type&&"ArrayExpression"===u[1].type?C=u[1].elements:2===u.length&&"ArrayExpression"===u[0].type&&(C=u[0].elements);if(C)for(u=0;u<s.length;u++)if(u<C.length&&"Literal"===C[u].type){var V=g.indexer.retrieveSummary(C[u].value,g);if(V){var R,H;"string"===typeof V.provided?H=R=V.provided:(H=R=g.newScope(),g.popScope());g.mergeSummary(V,H);M.push(R)}else M.push(g.newFleetingObject())}else M.push(c.OBJECT_TYPE)}if(0===
M.length)for(u=0;u<s.length;u++)M.push(g.newFleetingObject());for(s=0;s<z.length;s++)u=(C=L.params[z[s]])?c.convertJsDocType(C,g):M[s],y[s]&&c.leftTypeIsMoreGeneral(u,y[s],g)&&(u="ParameterType"===y[s].type?y[s].expression:y[s]),B.push(c.createParamType(z[s],u))}L=c.createFunctionType(B,J,m);y=g.newFleetingObject();h&&!e.isBefore(g.offset,a.range)&&g.addVariable(h,a.extras.target,y,l,k.range);g.initFunctionType(L,a,y,m?J.name:void 0);m&&g.addOrSetGlobalVariable(h,y,l,k.range);a.extras.inferredTypeObj=
y;g.addVariable("arguments",a.extras.target,c.createNameType("Arguments"),a.range);if(L=a.extras.appliesTo)if(L=L.extras.target)L=g.scope(L),c.isPrototypeName(L)&&(L=c.extractReturnType(L)),g.addVariable("this",a.extras.target,c.createNameType(L),l,k.range);for(s=0;s<z.length;s++)g.addVariable(z[s],a.extras.target,B[s].expression,a.params[s].range);break;case "VariableDeclarator":a.id.name&&(a.id.extras||(a.id.extras={}),a.id.extras.isLHS=a.id.extras.isDecl=!0,a.init&&!a.init.extras&&(a.init.extras=
{}),a.init&&"FunctionExpression"===a.init.type?(a.init.extras.fname=a.id.name,a.init.extras.cname=g.getQualifiedName()+a.id.name,a.init.extras.fnameRange=a.id.range):(k=d(a,g.comments),L=c.parseJSDocComment(k),l=L.type&&c.convertJsDocType(L.type,g),a.extras.docRange=k.range,l&&(a.extras.inferredTypeObj=l,a.extras.jsdocType=l,g.addVariable(a.id.name,a.extras.target,l,a.id.range,k.range))));g.pushName(a.id.name);break;case "AssignmentExpression":z=n(a.left);h=g.getQualifiedName()+f(a.left);if(z&&("Identifier"===
z.type||"Literal"===z.type))z.extras||(z.extras={}),"FunctionExpression"===a.right.type&&(a.right.extras||(a.right.extras={}),a.right.extras.appliesTo=z,a.right.extras.fname=z.name,a.right.extras.cname=h,a.right.extras.fnameRange=z.range,a.left.extras||(a.left.extras={})),k=d(a,g.comments),L=c.parseJSDocComment(k),l=L.type&&c.convertJsDocType(L.type,g),a.extras.docRange=k.range,l&&(a.extras.inferredTypeObj=l,a.extras.jsdocType=l,g.addVariable(z.name,a.extras.target,l,z.range,k.range));g.pushName(h);
break;case "CatchClause":a.extras.inferredTypeObj=g.newScope();a.param&&(a.param.extras||(a.param.extras={}),k=c.createNameType("Error"),a.param.extras.inferredTypeObj=k,g.addVariable(a.param.name,a.extras.target,k,a.param.range));break;case "MemberExpression":if(a.property&&(!a.computed||a.computed&&"Literal"===a.property.type&&"string"===typeof a.property.value))a.property.extras||(a.property.extras={}),a.property.extras.target=a.object;break;case "CallExpression":if("define"===a.callee.name||"require"===
a.callee.name)k=a.arguments,1<k.length&&"FunctionExpression"===k[k.length-1].type&&"ArrayExpression"===k[k.length-2].type&&(k[k.length-1].extras||(k[k.length-1].extras={}),k[k.length-1].extras.amdDefn=a);else if((z=n(a.callee))&&"Identifier"===z.type)z.extras=z.extras||{},z.extras.callArgs=a.arguments;else if("FunctionExpression"===a.callee.type&&a.arguments){for(k=0;k<a.arguments.length;k++)b.visit(a.arguments[k],g,p,r);a.callee.extras||(a.callee.extras={});a.callee.extras.stashedArguments=a.arguments;
delete a.arguments}}a===g.defer&&(a.extras.associatedComment=d(a,g.comments),a.extras.inferredTypeObj=a.extras.inferredTypeObj||c.OBJECT_TYPE,a.extras.scope=g.scope(a.extras.target),a.body.extras.stop=!0);return!0}function h(a){if(!a)return null;var b,d;switch(a.type){case "BlockStatement":return a.body&&0<a.body.length?(b=a.body[a.body.length-1],"ReturnStatement"===b.type?b:h(b)):null;case "WhileStatement":case "DoWhileStatement":case "ForStatement":case "ForInStatement":case "CatchClause":return h(a.body);
case "IfStatement":return(b=h(a.alternate))||(b=h(a.consequent)),b;case "TryStatement":b=h(a.finalizer);var c=a.handlers;if(!b&&c)for(d=c.length-1;0<=d&&!(b=h(c[d]));d--);b||(b=h(a.block));return b;case "SwitchStatement":if(a=a.cases)for(d=a.length-1;0<=d&&!(b=h(a[d]));d--);return b;case "SwitchCase":return a.consequent&&0<a.consequent.length?(b=a.consequent[a.consequent.length-1],"ReturnStatement"===b.type?b:h(b)):null;case "ReturnStatement":return a;default:return null}}function r(a,d){var f,w,
s,z;switch(a.type){case "Program":throw d.defer&&(d.comments=d.deferredComments,f=d.defer,d.defer=null,d.targetTypeName=null,d.pushScope(f.extras.scope),b.visit(f.body,d,p,r),d.popScope()),d.storeTarget(),d.targetTypeName;case "BlockStatement":case "CatchClause":e.inRange(d.offset,a.range)&&d.storeTarget();d.popScope();break;case "MemberExpression":e.afterDot(d.offset,a,d.contents)&&d.storeTarget(d.scope(a.object));c.isArrayType(a.object.extras.inferredTypeObj)&&a.computed?a.extras.inferredTypeObj=
c.extractArrayParameterType(a.object.extras.inferredTypeObj):a.extras.inferredTypeObj=a.computed&&a.property&&"Literal"!==a.property.type?c.OBJECT_TYPE:a.property?a.property.extras.inferredTypeObj:a.object.extras.inferredTypeObj;break;case "CallExpression":a:{if((d.indexer||d.nodeJSModule)&&"CallExpression"===a.type&&"Identifier"===a.callee.type&&"require"===a.callee.name&&1===a.arguments.length)if(f=a.arguments[0],"Literal"===f.type&&"string"===typeof f.value&&d.indexer&&(f=d.indexer.retrieveSummary(f.value,
d))){"string"===typeof f.provided?w=s=f.provided:(w=s=d.newScope(),d.popScope());d.mergeSummary(f,w);f=c.ensureTypeObject(s);break a}f=void 0}f||(f=c.extractReturnType(d.getFnType(a.callee)));a.extras.inferredTypeObj=f;if(a.callee.extras.stashedArguments){if(a.arguments)throw"thought we deleted node.arguments";a.arguments=a.callee.extras.stashedArguments;delete a.callee.extras.stashedArguments}break;case "NewExpression":a.extras.inferredTypeObj=d.getNewType(a.callee);break;case "ObjectExpression":z=
a.properties;for(s=0;s<z.length;s++)if(z[s].hasOwnProperty("key")&&(f=z[s].key.name)){var J=null;if(f===z[s].value.name&&(w=d.lookupTypeObj(z[s].value.name,null,!0))&&w.range&&c.isFunctionOrConstructor(w.typeObj))J=w.range;J||(J=z[s].key.range);w=z[s].key.extras.jsdocType||z[s].value.extras.inferredTypeObj;d.addVariable(f,a,w,J,z[s].key.extras.associatedComment.range);e.inRange(d.offset-1,z[s].key.range)&&d.storeTarget(d.scope(a))}d.updateObjLitFunctionTypes(a);a.extras.fname&&d.popName();d.popScope();
break;case "LogicalExpression":case "BinaryExpression":switch(a.operator){case "+":a.extras.inferredTypeObj="String"===a.left.extras.inferredTypeObj.name||"String"===a.right.extras.inferredTypeObj.name?c.STRING_TYPE:c.NUMBER_TYPE;break;case "-":case "/":case "*":case "%":case "\x26":case "|":case "^":case "\x3c\x3c":case "\x3e\x3e":case "\x3e\x3e\x3e":a.extras.inferredTypeObj=c.NUMBER_TYPE;break;case "\x26\x26":case "||":a.extras.inferredTypeObj=a.left.extras.inferredTypeObj;break;case "!\x3d\x3d":case "!\x3d":case "\x3d\x3d\x3d":case "\x3d\x3d":case "\x3c":case "\x3c\x3d":case "\x3e":case "\x3e\x3d":a.extras.inferredTypeObj=
c.BOOLEAN_TYPE;break;default:a.extras.inferredTypeObj=c.OBJECT_TYPE}break;case "UpdateExpression":case "UnaryExpression":a.extras.inferredTypeObj="!"===a.operator?c.BOOLEAN_TYPE:c.NUMBER_TYPE;break;case "FunctionDeclaration":case "FunctionExpression":d.popScope();a.body&&(a.body.extras.isConstructor?(f=a.id?a.id.range:a.extras.fnameRange,d.addOrSetVariable(c.extractReturnType(a.extras.inferredTypeObj),a.extras.target,a.extras.inferredTypeObj,f)):(a.extras.jsdocReturn||(s=h(a.body),d.updateReturnType(a.extras.inferredTypeObj,
s&&s.extras&&s.extras.inferredTypeObj?s.extras.inferredTypeObj:c.UNDEFINED_TYPE)),a.id?(w=a.id.name,f=a.id.range):a.extras.appliesTo&&(w=a.extras.fname,f=a.extras.fnameRange),w&&d.addOrSetVariable(w,a.extras.target,a.extras.inferredTypeObj,f)));break;case "VariableDeclarator":w=a.init?a.init.extras.inferredTypeObj:d.newFleetingObject();a.id.extras.inferredTypeObj=w;a.extras.jsdocType||(a.extras.inferredTypeObj=w,d.addVariable(a.id.name,a.extras.target,w,a.id.range,a.extras.docRange));e.inRange(d.offset-
1,a.id.range)&&d.storeTarget(d.scope(a.id.extras.target));d.popName();break;case "Property":a.extras.inferredTypeObj=a.key.extras.jsdocType?a.key.extras.jsdocType:a.key.extras.inferredTypeObj=a.value.extras.inferredTypeObj;break;case "AssignmentExpression":w=a.extras.jsdocType?a.extras.jsdocType:"\x3d"===a.operator?a.right.extras.inferredTypeObj:"+\x3d"===a.operator&&"String"===a.left.extras.inferredTypeObj.name?c.STRING_TYPE:c.NUMBER_TYPE;a.extras.inferredTypeObj=w;if((s=n(a.left))&&("Identifier"===
s.type||"Literal"===s.type))f=s.name?s.name:s.value,s.extras.inferredTypeObj=w,d.addOrSetVariable(f,s.extras.target,w,s.range,a.extras.docRange),e.inRange(d.offset-1,s.range)&&d.storeTarget(d.scope(s.extras.target));else if(a.left.computed&&(s=n(a.left.object))&&!("Identifier"===s.type&&"prototype"===s.name))f=c.parameterizeArray(w),a.left.extras.inferredTypeObj=w,a.left.object.extras.inferredTypeObj=f,d.addOrSetVariable(s.name,s.extras.target,f,s.range,a.extras.docRange);d.popName();break;case "Identifier":if(f=
a.name)if((w=d.lookupTypeObj(f,a.extras.target))&&!a.extras.isDecl){a.extras.inferredTypeObj=w;e.inRange(d.offset,a.range,!0)&&d.storeTarget(d.scope(a.extras.target));if(a.extras.callArgs&&"FunctionType"===w.type){z=w.params;var J=a.extras.callArgs,L=Math.min(J.length||0,z.length||0);for(s=0;s<L;s++)J[s].extras=J[s].extras||{},J[s].extras.paramTypeObj="ParameterType"===z[s].type?z[s].expression:z[s]}a.extras.paramTypeObj&&c.leftTypeIsMoreGeneral(w,a.extras.paramTypeObj,d)&&(a.extras.inferredTypeObj=
w=a.extras.paramTypeObj,d.addOrSetVariable(f,a.extras.target,w))}else if(!a.extras.isLHS)if(!e.inRange(d.offset,a.range,!0)&&!0!==u[f])if(a.extras.target){if(f=d.addVariable(f,a.extras.target,d.newFleetingObject(),a.range))a.extras.inferredTypeObj=f.typeObj}else a.extras.inferredTypeObj=d.addOrSetGlobalVariable(f,null,a.range).typeObj;else d.storeTarget(d.scope(a.extras.target));break;case "ThisExpression":a.extras.inferredTypeObj=d.lookupTypeObj("this");e.inRange(d.offset-1,a.range)&&d.storeTarget(d.scope());
break;case "ReturnStatement":a.argument&&(a.extras.inferredTypeObj=a.argument.extras.inferredTypeObj);break;case "Literal":a.extras.target&&"string"===typeof a.value?(f=a.value,w=d.lookupTypeObj(f,a.extras.target),a.extras.inferredTypeObj=w):a.extras.target&&"number"===typeof a.value?a.extras.inferredTypeObj=c.NUMBER_TYPE:(f=typeof a.value,a.extras.inferredTypeObj=c.createNameType(f[0].toUpperCase()+f.substring(1,f.length)));break;case "ConditionalExpression":if(f=a.consequent?a.consequent:a.alternate)a.extras.inferredTypeObj=
f.extras.inferredTypeObj;break;case "ArrayExpression":if(a.elements)for(s=0;s<a.elements.length;s++)a.elements[s]&&(a.extras.inferredTypeObj=c.parameterizeArray(a.elements[s].extras.inferredTypeObj))}a.extras.inferredTypeObj||(a.extras.inferredTypeObj=c.OBJECT_TYPE)}var u={"break":!0,"case":!0,"catch":!0,"continue":!0,"debugger":!0,"default":!0,"delete":!0,"do":!0,"else":!0,"finally":!0,"for":!0,"function":!0,"if":!0,"in":!0,"instanceof":!0,"new":!0,"return":!0,"switch":!0,"this":!0,"throw":!0,"try":!0,
"typeof":!0,"var":!0,"void":!0,"while":!0,"with":!0};return{inferTypes:function(a,d,c){var f,e;if(c&&Array.isArray(c.global))for(f=0;f<c.global.length;f++)e=c.global[f],d.lookupTypeObj(e)||d.addOrSetVariable(e);if(e=d.comments)for(f=0;f<e.length;f++)if(c=e[f].range,"Block"===e[f].type&&"global"===e[f].value.substring(0,6)){f=e[f].value.split(/\s+/);for(var h=1;h<f.length;h++)0<f[h].length&&(e=f[h].indexOf(":"),e=0<=e?f[h].substring(0,e).trim():f[h].trim(),d.lookupTypeObj(e)||d.addOrSetVariable(e,
null,null,c));break}if(d.indexer){c=d.indexer.retrieveGlobalSummaries();for(var n in c)c.hasOwnProperty(n)&&d.mergeSummary(c[n],d.globalTypeName())}n=[];for(c=0;c<d.comments.length;c++)"*"===d.comments[c].value.charAt(0)&&n.push(d.comments[c]);d.comments=n;try{b.visit(a,d,p,r)}catch(L){if("string"!==typeof L)throw L;return L}throw Error("The visit function should always end with a throwable");}}});
(function(b,c){"function"===typeof define&&define.amd?define("estraverse",["exports"],c):"undefined"!==typeof exports?c(exports):c(b.estraverse={})})(this,function(b){function c(a){var b={},d,f;for(d in a)a.hasOwnProperty(d)&&(f=a[d],b[d]="object"===typeof f&&null!==f?c(f):f);return b}function e(a,b){var d,c,f,m;c=a.length;for(f=0;c;)d=c>>>1,m=f+d,b(a[m])?c=d:(f=m+1,c-=d+1);return f}function n(a,b){this.parent=a;this.key=b}function f(a,b,d,c){this.node=a;this.path=b;this.wrap=d;this.ref=c}function d(){}
function p(a,b){return(new d).traverse(a,b)}function h(a,b){var d;d=e(b,function(b){return b.range[0]>a.range[0]});a.extendedRange=[a.range[0],a.range[1]];d!==b.length&&(a.extendedRange[1]=b[d].range[0]);d-=1;0<=d&&(a.extendedRange[0]=b[d].range[1]);return a}var r,u,a,g,k,w;r={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",
BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",
FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",
SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"};(u=Array.isArray)||(u=function(a){return"[object Array]"===Object.prototype.toString.call(a)});g={AssignmentExpression:["left",
"right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","defaults","rest","body"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ClassBody:["body"],ClassDeclaration:["id","body","superClass"],ClassExpression:["id","body","superClass"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],
DoWhileStatement:["body","test"],EmptyStatement:[],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],FunctionDeclaration:["id","params","defaults","rest","body"],FunctionExpression:["id","params","defaults","rest","body"],Identifier:[],IfStatement:["test","consequent","alternate"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MethodDefinition:["key","value"],
NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handlers","handler","guardedHandlers","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id",
"init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]};k={};w={};a={Break:k,Skip:w};n.prototype.replace=function(a){this.parent[this.key]=a};d.prototype.path=function(){function a(b,d){if(u(d)){c=0;for(f=d.length;c<f;++c)b.push(d[c])}else b.push(d)}var b,d,c,f,m,e;if(!this.__current.path)return null;m=[];b=2;for(d=this.__leavelist.length;b<d;++b)e=this.__leavelist[b],a(m,e.path);a(m,this.__current.path);return m};d.prototype.parents=function(){var a,b,
d;d=[];a=1;for(b=this.__leavelist.length;a<b;++a)d.push(this.__leavelist[a].node);return d};d.prototype.current=function(){return this.__current.node};d.prototype.__execute=function(a,b){var d,c;c=void 0;d=this.__current;this.__current=b;this.__state=null;a&&(c=a.call(this,b.node,this.__leavelist[this.__leavelist.length-1].node));this.__current=d;return c};d.prototype.notify=function(a){this.__state=a};d.prototype.skip=function(){this.notify(w)};d.prototype["break"]=function(){this.notify(k)};d.prototype.__initialize=
function(a,b){this.visitor=b;this.root=a;this.__worklist=[];this.__leavelist=[];this.__state=this.__current=null};d.prototype.traverse=function(a,b){var d,c,e,m,h,p,n,Z,C,V,R;this.__initialize(a,b);R={};d=this.__worklist;c=this.__leavelist;d.push(new f(a,null,null,null));for(c.push(new f(null,null,null,null));d.length;)if(e=d.pop(),e===R){if(e=c.pop(),m=this.__execute(b.leave,e),this.__state===k||m===k)break}else if(e.node){m=this.__execute(b.enter,e);if(this.__state===k||m===k)break;d.push(R);c.push(e);
if(!(this.__state===w||m===w)){m=e.node;h=e.wrap||m.type;C=g[h];for(n=C.length;0<=(n-=1);)if(p=C[n],V=m[p])if(u(V))for(Z=V.length;0<=(Z-=1);)V[Z]&&(e=(h===r.ObjectExpression||h===r.ObjectPattern)&&"properties"===C[n]?new f(V[Z],[p,Z],"Property",null):new f(V[Z],[p,Z],null,null),d.push(e));else d.push(new f(V,p,null,null))}}};d.prototype.replace=function(a,b){var d,c,e,m,h,p,M,Z,C,V,R,H;this.__initialize(a,b);V={};d=this.__worklist;c=this.__leavelist;R={root:a};h=new f(a,null,null,new n(R,"root"));
d.push(h);for(c.push(h);d.length;)if(h=d.pop(),h===V){if(h=c.pop(),m=this.__execute(b.leave,h),void 0!==m&&m!==k&&m!==w&&h.ref.replace(m),this.__state===k||m===k)break}else{m=this.__execute(b.enter,h);void 0!==m&&m!==k&&m!==w&&(h.ref.replace(m),h.node=m);if(this.__state===k||m===k)break;if(e=h.node)if(d.push(V),c.push(h),!(this.__state===w||m===w)){m=h.wrap||e.type;Z=g[m];for(p=Z.length;0<=(p-=1);)if(H=Z[p],C=e[H])if(u(C))for(M=C.length;0<=(M-=1);)C[M]&&(h=m===r.ObjectExpression&&"properties"===Z[p]?
new f(C[M],[H,M],"Property",new n(C,M)):new f(C[M],[H,M],null,new n(C,M)),d.push(h));else d.push(new f(C,H,null,new n(e,H)))}}return R.root};b.version="1.3.3-dev";b.Syntax=r;b.traverse=p;b.replace=function(a,b){return(new d).replace(a,b)};b.attachComments=function(b,d,f){var e=[],l,m,g;if(!b.range)throw Error("attachComments needs range information");if(!f.length){if(d.length){m=0;for(l=d.length;m<l;m+=1)f=c(d[m]),f.extendedRange=[0,b.range[0]],e.push(f);b.leadingComments=e}return b}m=0;for(l=d.length;m<
l;m+=1)e.push(h(c(d[m]),f));g=0;p(b,{enter:function(b){for(var d;g<e.length;){d=e[g];if(d.extendedRange[1]>b.range[0])break;d.extendedRange[1]===b.range[0]?(b.leadingComments||(b.leadingComments=[]),b.leadingComments.push(d),e.splice(g,1)):g+=1}if(g===e.length)return a.Break;if(e[g].extendedRange[0]>b.range[1])return a.Skip}});g=0;p(b,{leave:function(b){for(var d;g<e.length;){d=e[g];if(b.range[1]<d.extendedRange[0])break;b.range[1]===d.extendedRange[0]?(b.trailingComments||(b.trailingComments=[]),
b.trailingComments.push(d),e.splice(g,1)):g+=1}if(g===e.length)return a.Break;if(e[g].extendedRange[0]>b.range[1])return a.Skip}});return b};b.VisitorKeys=g;b.VisitorOption=a;b.Controller=d});
define("javascript/contentAssist/contentAssist","javascript/contentAssist/typeEnvironment javascript/contentAssist/typeInference javascript/contentAssist/typeUtils javascript/contentAssist/proposalUtils orion/Deferred orion/objects esprima estraverse".split(" "),function(b,c,e,n,f,d,p,h){function r(a,b,d){b=b.params||[];var c=[];a+="(";for(var f=b.length,e=0;e<f;e++)if(!("new"===b[e].name||"this"===b[e].name)){0<e&&(a+=", ");var h=b[e],g,p;"OptionalType"===h.type&&(h=h.expression,g=!0);"RestType"===
h.type&&(h=h.expression,p=!0);h=h.name||"arg"+e;p&&(h="..."+h);g&&(h="["+h+"]");c.push({offset:d+a.length+1,length:h.length});a+=h}return{completion:a+")",positions:0===c.length?null:c}}function u(a,b,d,c){var f=[];h.traverse(a,{skipped:!1,enter:function(a){this.skipped=!1;a.extras||(a.extras={});if(a.range&&n.inRange(b-1,a.range)||a.type===h.Syntax.Program){if(a.type===h.Syntax.Identifier)return h.VisitorOption.Break;f.push(a);if((a.type===h.Syntax.FunctionDeclaration||a.type===h.Syntax.FunctionExpression)&&
a.nody&&n.isBefore(b,a.body.range)||a.type===h.Syntax.MemberExpression&&!a.property&&n.afterDot(b,a,c))return h.VisitorOption.Break}else return this.skipped=!0,h.VisitorOption.Skip},leave:function(a){if(!this.skipped){if(a.type===h.Syntax.Program||a.type===h.Syntax.BlockStatement&&n.inRange(b,a.range))return h.VisitorOption.Break;f.pop()}}});var e;if(f&&f.length){a=f.pop();for(d=f.length-1;0<=d;d--)if((f[d].type===h.Syntax.FunctionDeclaration||f[d].type===h.Syntax.FunctionExpression)&&(!f[d].id||
!n.inRange(b,f[d].id.range,!0))){e=f[d];break}switch(a.type){case h.Syntax.MemberExpression:if(a.property&&n.inRange(b-1,a.property.range)||n.inRange(b-1,a.range)&&n.afterDot(b,a,c))return{kind:"member",toDefer:e};break;case h.Syntax.VariableDeclarator:if(!a.init||n.isBefore(b,a.init.range))return null;break;case h.Syntax.FunctionDeclaration:case h.Syntax.FunctionExpression:if(n.isBefore(b,a.body.range))return!0}}return{kind:"top",toDefer:e}}function a(a,b){switch(a.type){case "FunctionType":if(a.result&&
"UndefinedLiteral"===a.result.type)return""}return" : "+e.createReadableType(a,b)}function g(b,d,c,f,e,h,p,k){var J,s,u;b=d.lookupQualifiedType(b);var x=b.$$proto;p||(p=100);x&&(s=!1,k?k[x.typeObj.name]&&(s=!0):k={},s||(k[x.typeObj.name]=!0,g(x.typeObj.name,d,c,f,e,h,p-10,k)));h["---dummy"+p]={proposal:"",name:"",description:"---------------------------------",relevance:p-1,style:"hr",unselectable:!0};var v=Object.getPrototypeOf(b),L=!Object.getPrototypeOf(v);for(J in b)if((b.hasOwnProperty(J)||!L&&
v.hasOwnProperty(J))&&!("$"===J.charAt(0)&&"$"===J.charAt(1)))s=!x&&0===J.indexOf("$_$")?J.substring(3):J,!("this"===s&&"member"===c)&&b[J].typeObj&&n.looselyMatches(f,s)&&(k=b[J].typeObj,d._allTypes[k.name]&&d._allTypes[k.name].$$fntype&&(k=d._allTypes[k.name].$$fntype),"FunctionType"===k.type?(u=r(s,k,e-1),h["$"+s]={proposal:u.completion,name:u.completion,description:a(k,d),positions:u.positions,escapePosition:e+u.completion.length,relevance:p+5,style:"emphasis",overwrite:!0}):h["$"+s]={proposal:s,
relevance:p,name:s,description:a(k,d),style:"emphasis",overwrite:!0})}function k(a,b){for(var d=0;d<a.length;d++){var c=a[d];if("Block"===c.type&&("jslint"===c.value.substring(0,6)||"jshint"===c.value.substring(0,6)))return c.value.match(z)||c.value.match(L)?"Window":c.value.match(J)?"Module":"Global"}if(b&&b.options){if(!0===b.options.browser)return"Window";if(!0===b.options.node)return"Module"}return"Global"}function w(a){var b=[],d;for(d in a)a.hasOwnProperty(d)&&b.push(a[d]);b.sort(function(a,
b){if(a.relevance>b.relevance)return-1;if(b.relevance>a.relevance)return 1;var d=a.name.toLowerCase(),c=b.name.toLowerCase();return d<c?-1:c<d?1:0});a=[];for(d=b.length-1;0<=d&&0===b[d].description.indexOf("---");)a[d]=!0,d--;for(d=0;d<b.length&&0===b[d].description.indexOf("---");)a[d]=!0,d++;for(d+=1;d<b.length;)0===b[d].description.indexOf("---")&&0===b[d-1].description.indexOf("---")&&(a[d]=!0),d++;var c=[];for(d=0;d<b.length;d++)a[d]||c.push(b[d]);return c}function s(a,b,d){this.astManager=a;
this.indexer=b;this.lintOptions=d}var z=/browser\s*:\s*true/,J=/node\s*:\s*true/,L=/amd\s*:\s*true/;d.mixin(s.prototype,{computeContentAssist:function(a,b){var d=this;return f.all([this.astManager.getAST(a),a.getText(),this._createIndexData(a,b)]).then(function(a){return d._computeProposalsFromAST(a[0],a[1],b)})},_createIndexData:function(a,b){if(!this.indexer)return(new f).resolve();if(!this.indexDataPromise){var d=this,c=b.typeDefs||{},e=[];Object.keys(c).forEach(function(b){"tern"===c[b].type&&
e.push(a.getTypeDef(b))});this.indexDataPromise=f.all(e).then(function(a){d.indexer.setIndexData(a);return d.indexData})}return this.indexDataPromise},_computeProposalsFromAST:function(d,e,h){function p(){var a=new f;a.resolve([]);return a.promise}if(h.selection&&h.selection.start!==h.selection.end||!d)return p();var J=h.offset,s=u(d,J,h.prefix,e);if(s){var L=this;return b.createEnvironment({buffer:e,uid:"local",offset:J,indexer:L.indexer,globalObjName:k(d.comments,L.lintOptions),comments:d.comments}).then(function(b){b.defer=
s.toDefer;if(b.defer){var f;f=b.comments;var e=b.defer.range,m=0,p=0,k,u,y;for(k=0;k<f.length&&!(u=f[k].range[0],y=f[k].range[1],!n.isBefore(u,e)||!n.isBefore(y,e));k++);if(k<f.length){for(m=k;k<f.length&&!(u=f[k].range[0],y=f[k].range[1],!n.inRange(u,e,!0)||!n.inRange(y,e,!0));k++);p=k}f=f.splice(m,p-m);b.deferredComments=f}e=c.inferTypes(d,b,L.lintOptions);f={};g(e,b,s.kind,h.prefix,J-h.prefix.length,f);if(h.includeNonInferred){e=h.prefix;m=J-h.prefix.length;y=!1;var p=b.getAllTypes(),z;for(z in p)if(p[z].$$proto)for(u in k=
p[z],u=void 0,k)if(k.hasOwnProperty(u)&&0===u.indexOf(e)&&!f["$"+u]&&"$$proto"!==u&&"$$isBuiltin"!==u&&"$$fntype"!==u&&"$$newtype"!==u&&"$$prototype"!==u){y=k[u].typeObj;if("FunctionType"===y.type){var S=r(u,y,m-1);f[u]={proposal:S.completion.substring(e.length),name:u,description:a(y,b),positions:S.positions,escapePosition:m+S.completion.length,relevance:-99,style:"noemphasis"}}else f[u]={proposal:u.substring(e.length),name:u,description:a(y,b),relevance:-100,style:"noemphasis"};y=!0}y&&(f["---dummy"]=
{proposal:"",name:"",description:"Non-inferred proposals",relevance:-98,style:"noemphasis",unselectable:!0})}return w(f)})}return p()}});return{JSContentAssist:s}});
define("javascript/contentAssist/indexer",["javascript/contentAssist/indexFiles/nodeIndex","javascript/contentAssist/typesFromIndexFile","javascript/contentAssist/typeUtils","orion/objects"],function(b,c,e,n){function f(){this.catalog=null}n.mixin(f.prototype,{setIndexData:function(b){var c=Object.create(null);b.forEach(function(b){var d;if(!(d=b["!name"]))throw Error("Missing !name in typeDef: "+b);c[d]=b});this.catalog=c},retrieveGlobalSummaries:function(){},retrieveSummary:function(d,f){if(!f.amdModule&&
(f.nodeJSModule||f.commonjsModule||"Window"!==f.globalObjName)){var h=c.getGlobalsAndTypes("node",b),r;-1!==d.indexOf(".")||-1!==d.indexOf("/")?r=null:(r=e.convertToSimpleTypeName(e.ensureTypeObject(d)),r=h.types[r]?!0:!1);if(r)return{provided:d,types:h.types}}return Object.prototype.hasOwnProperty.call(this.catalog,d)?(h=c.getGlobalsAndTypes(d,this.catalog[d]),{provided:d,types:h.types}):null}});return f});
(function(b,c){function e(b,c){var d,e,h,r;h=b.split(".");d=0;for(e=h.length;d<e;++d)r=h[d],c=c.hasOwnProperty(r)?c[r]:c[r]={};return c}"function"===typeof define&&define.amd?define("escope",["exports","estraverse"],function(e,f){b(e,c,f)}):"undefined"!==typeof exports?b(exports,c,require("estraverse")):b(e("escope",c),c,c.estraverse)})(function(b,c,e){function n(a,b){if(!a)throw Error(b);}function f(a,b){function d(a){return"object"===typeof a&&a instanceof Object&&!(a instanceof RegExp)}var c,e;
for(c in b)b.hasOwnProperty(c)&&(e=b[c],d(e)?d(a[c])?f(a[c],e):a[c]=f({},e):a[c]=e);return a}function d(a,b,d,c,f){this.identifier=a;this.from=b;this.tainted=!1;this.resolved=null;this.flag=d;this.isWrite()&&(this.writeExpr=c);this.__maybeImplicitGlobal=f}function p(a,b){this.name=a;this.identifiers=[];this.references=[];this.defs=[];this.tainted=!1;this.stack=!0;this.scope=b}function h(b,d){var c,f,e,h;if(b.upper&&b.upper.isStrict)return!0;if("function"===b.type)c=d.body;else if("global"===b.type)c=
d;else return!1;if(z.directive){f=0;for(e=c.body.length;f<e;++f){h=c.body[f];if("DirectiveStatement"!==h.type)break;if('"use strict"'===h.raw||"'use strict'"===h.raw)return!0}}else{f=0;for(e=c.body.length;f<e;++f){h=c.body[f];if(h.type!==a.ExpressionStatement)break;h=h.expression;if(h.type!==a.Literal||"string"!==typeof h.value)break;if(null!=h.raw){if('"use strict"'===h.raw||"'use strict'"===h.raw)return!0}else if("use strict"===h.value)return!0}}return!1}function r(b,d){var c;this.type=b.type===
a.CatchClause?"catch":b.type===a.WithStatement?"with":b.type===a.Program?"global":"function";this.set=new g;this.taints=new g;this.dynamic="global"===this.type||"with"===this.type;this.block=b;this.through=[];this.variables=[];this.references=[];this.left=[];this.variableScope="global"===this.type||"function"===this.type?this:k.variableScope;this.thisFound=this.directCallToEvalScope=this.functionExpressionScope=!1;d.naming?(this.__define(b.id,{type:p.FunctionName,name:b.id,node:b}),this.functionExpressionScope=
!0):("function"===this.type&&(c=new p("arguments",this),this.taints.set("arguments",!0),this.set.set("arguments",c),this.variables.push(c)),b.type===a.FunctionExpression&&b.id&&new r(b,{naming:!0}));this.upper=k;this.isStrict=h(this,b);this.childScopes=[];k&&k.childScopes.push(this);k=this;"global"===this.type&&(w=this,w.implicit={set:new g,variables:[]});s.push(this)}function u(a){this.scopes=a;this.attached=!1}var a,g,k,w,s,z;a=e.Syntax;"undefined"!==typeof c.Map?g=c.Map:(g=function(){this.__data=
{}},g.prototype.get=function(a){a="$"+a;if(this.__data.hasOwnProperty(a))return this.__data[a]},g.prototype.has=function(a){return this.__data.hasOwnProperty("$"+a)},g.prototype.set=function(a,b){this.__data["$"+a]=b},g.prototype["delete"]=function(a){return delete this.__data["$"+a]});d.READ=1;d.WRITE=2;d.RW=3;d.prototype.isStatic=function(){return!this.tainted&&this.resolved&&this.resolved.scope.isStatic()};d.prototype.isWrite=function(){return this.flag&d.WRITE};d.prototype.isRead=function(){return this.flag&
d.READ};d.prototype.isReadOnly=function(){return this.flag===d.READ};d.prototype.isWriteOnly=function(){return this.flag===d.WRITE};d.prototype.isReadWrite=function(){return this.flag===d.RW};p.CatchClause="CatchClause";p.Parameter="Parameter";p.FunctionName="FunctionName";p.Variable="Variable";p.ImplicitGlobalVariable="ImplicitGlobalVariable";r.prototype.__close=function(){var a,b,d,c;if(!this.dynamic||z.optimistic){a=0;for(b=this.left.length;a<b;++a)d=this.left[a],this.__resolve(d)||this.__delegateToUpperScope(d)}else if("with"===
this.type){a=0;for(b=this.left.length;a<b;++a)d=this.left[a],d.tainted=!0,this.__delegateToUpperScope(d)}else{a=0;for(b=this.left.length;a<b;++a){d=this.left[a];c=this;do c.through.push(d),c=c.upper;while(c)}}if("global"===this.type){c=[];a=0;for(b=this.left.length;a<b;++a)d=this.left[a],d.__maybeImplicitGlobal&&!this.set.has(d.identifier.name)&&c.push(d.__maybeImplicitGlobal);a=0;for(b=c.length;a<b;++a)d=c[a],this.__defineImplicit(d.left,{type:p.ImplicitGlobalVariable,name:d.left,node:d})}this.left=
null;k=this.upper};r.prototype.__resolve=function(a){var b;b=a.identifier.name;return this.set.has(b)?(b=this.set.get(b),b.references.push(a),b.stack=b.stack&&a.from.variableScope===this.variableScope,a.tainted&&(b.tainted=!0,this.taints.set(b.name,!0)),a.resolved=b,!0):!1};r.prototype.__delegateToUpperScope=function(a){this.upper&&this.upper.left.push(a);this.through.push(a)};r.prototype.__defineImplicit=function(b,d){var c,f;b&&b.type===a.Identifier&&(c=b.name,this.implicit.set.has(c)?(f=this.implicit.set.get(c),
f.identifiers.push(b),f.defs.push(d)):(f=new p(c,this),f.identifiers.push(b),f.defs.push(d),this.implicit.set.set(c,f),this.implicit.variables.push(f)))};r.prototype.__define=function(b,d){var c,f;b&&b.type===a.Identifier&&(c=b.name,this.set.has(c)?(f=this.set.get(c),f.identifiers.push(b),f.defs.push(d)):(f=new p(c,this),f.identifiers.push(b),f.defs.push(d),this.set.set(c,f),this.variables.push(f)))};r.prototype.__referencing=function(b,c,f,e){b&&b.type===a.Identifier&&(b=new d(b,this,c||d.READ,f,
e),this.references.push(b),this.left.push(b))};r.prototype.__detectEval=function(){var a;a=this;this.directCallToEvalScope=!0;do a.dynamic=!0,a=a.upper;while(a)};r.prototype.__detectThis=function(){this.thisFound=!0};r.prototype.__isClosed=function(){return null===this.left};r.prototype.resolve=function(b){var d,c,f;n(this.__isClosed(),"scope should be closed");n(b.type===a.Identifier,"target should be identifier");c=0;for(f=this.references.length;c<f;++c)if(d=this.references[c],d.identifier===b)return d;
return null};r.prototype.isStatic=function(){return!this.dynamic};r.prototype.isArgumentsMaterialized=function(){var a;if("function"!==this.type||!this.isStatic())return!0;a=this.set.get("arguments");n(a,"always have arguments variable");return a.tainted||0!==a.references.length};r.prototype.isThisMaterialized=function(){return"function"!==this.type||!this.isStatic()?!0:this.thisFound};r.mangledName="__$escope$__";r.prototype.attach=function(){this.functionExpressionScope||(this.block[r.mangledName]=
this)};r.prototype.detach=function(){this.functionExpressionScope||delete this.block[r.mangledName]};r.prototype.isUsedName=function(a){if(this.set.has(a))return!0;for(var b=0,d=this.through.length;b<d;++b)if(this.through[b].identifier.name===a)return!0;return!1};u.prototype.__get=function(a){var b,d,c;if(this.attached)return a[r.mangledName]||null;if(r.isScopeRequired(a)){b=0;for(d=this.scopes.length;b<d;++b)if(c=this.scopes[b],!c.functionExpressionScope&&c.block===a)return c}return null};u.prototype.acquire=
function(a){return this.__get(a)};u.prototype.release=function(a){if(a=this.__get(a))for(a=a.upper;a;){if(!a.functionExpressionScope)return a;a=a.upper}return null};u.prototype.attach=function(){var a,b;a=0;for(b=this.scopes.length;a<b;++a)this.scopes[a].attach();this.attached=!0};u.prototype.detach=function(){var a,b;a=0;for(b=this.scopes.length;a<b;++a)this.scopes[a].detach();this.attached=!1};r.isScopeRequired=function(b){return r.isVariableScopeRequired(b)||b.type===a.WithStatement||b.type===
a.CatchClause};r.isVariableScopeRequired=function(b){return b.type===a.Program||b.type===a.FunctionExpression||b.type===a.FunctionDeclaration};b.version="1.0.0";b.Reference=d;b.Variable=p;b.Scope=r;b.ScopeManager=u;b.analyze=function(b,c){var h;z=f({optimistic:!1,directive:!1},c);h=s=[];w=k=null;e.traverse(b,{enter:function(b){var c,f,e;r.isScopeRequired(b)&&new r(b,{});switch(b.type){case a.AssignmentExpression:"\x3d"===b.operator?k.__referencing(b.left,d.WRITE,b.right,!k.isStrict&&null!=b.left.name&&
b):k.__referencing(b.left,d.RW,b.right);k.__referencing(b.right);break;case a.ArrayExpression:c=0;for(f=b.elements.length;c<f;++c)k.__referencing(b.elements[c]);break;case a.BinaryExpression:k.__referencing(b.left);k.__referencing(b.right);break;case a.CallExpression:k.__referencing(b.callee);c=0;for(f=b.arguments.length;c<f;++c)k.__referencing(b.arguments[c]);!z.ignoreEval&&b.callee.type===a.Identifier&&"eval"===b.callee.name&&k.variableScope.__detectEval();break;case a.CatchClause:k.__define(b.param,
{type:p.CatchClause,name:b.param,node:b});break;case a.ConditionalExpression:k.__referencing(b.test);k.__referencing(b.consequent);k.__referencing(b.alternate);break;case a.DoWhileStatement:k.__referencing(b.test);break;case a.ExpressionStatement:k.__referencing(b.expression);break;case a.ForStatement:k.__referencing(b.init);k.__referencing(b.test);k.__referencing(b.update);break;case a.ForInStatement:b.left.type===a.VariableDeclaration?k.__referencing(b.left.declarations[0].id,d.WRITE,null,!1):k.__referencing(b.left,
d.WRITE,null,!k.isStrict&&null!=b.left.name&&b);k.__referencing(b.right);break;case a.FunctionDeclaration:k.upper.__define(b.id,{type:p.FunctionName,name:b.id,node:b});c=0;for(f=b.params.length;c<f;++c)k.__define(b.params[c],{type:p.Parameter,name:b.params[c],node:b,index:c});break;case a.FunctionExpression:c=0;for(f=b.params.length;c<f;++c)k.__define(b.params[c],{type:p.Parameter,name:b.params[c],node:b,index:c});break;case a.IfStatement:k.__referencing(b.test);break;case a.LogicalExpression:k.__referencing(b.left);
k.__referencing(b.right);break;case a.MemberExpression:k.__referencing(b.object);b.computed&&k.__referencing(b.property);break;case a.NewExpression:k.__referencing(b.callee);c=0;for(f=b.arguments.length;c<f;++c)k.__referencing(b.arguments[c]);break;case a.Property:k.__referencing(b.value);break;case a.ReturnStatement:k.__referencing(b.argument);break;case a.SequenceExpression:c=0;for(f=b.expressions.length;c<f;++c)k.__referencing(b.expressions[c]);break;case a.SwitchStatement:k.__referencing(b.discriminant);
break;case a.SwitchCase:k.__referencing(b.test);break;case a.ThisExpression:k.variableScope.__detectThis();break;case a.ThrowStatement:k.__referencing(b.argument);break;case a.UnaryExpression:k.__referencing(b.argument);break;case a.UpdateExpression:k.__referencing(b.argument,d.RW,null);break;case a.VariableDeclaration:c=0;for(f=b.declarations.length;c<f;++c)e=b.declarations[c],k.variableScope.__define(e.id,{type:p.Variable,name:e.id,node:e,index:c,parent:b}),e.init&&(k.__referencing(e.id,d.WRITE,
e.init,!1),k.__referencing(e.init));break;case a.WhileStatement:k.__referencing(b.test);break;case a.WithStatement:k.upper.__referencing(b.object)}},leave:function(a){for(;k&&a===k.block;)k.__close()}});n(null===k);z=s=w=null;return new u(h)}},this);
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module):"function"===typeof define&&define.amd?define("eslint/conf/environments",["require","exports","module"],c):b.conf.environments=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,e){e.exports={builtin:{NaN:!1,Infinity:!1,undefined:!1,eval:!1,parseFloat:!1,parseInt:!1,isNaN:!1,isFinite:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Object:!1,Function:!1,Array:!1,String:!1,Boolean:!1,
Number:!1,Date:!1,RegExp:!1,Error:!1,EvalError:!1,RangeError:!1,ReferenceError:!1,SyntaxError:!1,TypeError:!1,URIError:!1,Math:!1,JSON:!1,ArrayBuffer:!1,DataView:!1,Float32Array:!1,Float64Array:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1},browser:{addEventListener:!1,applicationCache:!1,atob:!1,Audio:!1,Blob:!1,blur:!1,btoa:!1,cancelAnimationFrame:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,crypto:!1,defaultStatus:!1,devicePixelRatio:!1,
dispatchEvent:!1,document:!1,DOMParser:!1,Element:!1,FileReader:!1,find:!1,focus:!1,FormData:!1,frameElement:!1,frames:!1,getComputedStyle:!1,getSelection:!1,history:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,
HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLLabelElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,
HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,Image:!1,indexedDB:!1,innerHeight:!1,innerWidth:!1,Intl:!1,length:!1,localStorage:!1,location:!1,matchMedia:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,navigator:!1,Node:!1,NodeFilter:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,
onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,outerHeight:!1,outerWidth:!1,pageXOffset:!1,pageYOffset:!1,parent:!1,postMessage:!1,print:!1,removeEventListener:!1,requestAnimationFrame:!1,resizeBy:!1,resizeTo:!1,screen:!1,screenX:!1,screenY:!1,scroll:!1,scrollbars:!1,scrollBy:!1,scrollTo:!1,scrollX:!1,scrollY:!1,self:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,showModalDialog:!1,stop:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,
SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimationElement:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGComponentTransferFunctionElement:!1,
SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,
SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,
SVGHKernElement:!1,SVGImageElement:!1,SVGLength:!1,SVGLengthList:!1,SVGLinearGradientElement:!1,SVGLineElement:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGMPathElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,
SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,
SVGRectElement:!1,SVGRenderingIntent:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStyleElement:!1,SVGSVGElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformList:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGUnitTypes:!1,SVGUseElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGVKernElement:!1,top:!1,WebSocket:!1,window:!1,Worker:!1,XMLHttpRequest:!1,
XMLSerializer:!1,XPathEvaluator:!1,XPathExpression:!1,XPathResult:!1},node:{__filename:!1,__dirname:!1,Buffer:!1,console:!1,exports:!0,GLOBAL:!1,global:!1,module:!1,process:!1,require:!1,setTimeout:!1,clearTimeout:!1,setInterval:!1,clearInterval:!1,setImmediate:!1,clearImmediate:!1},amd:{require:!1,define:!1}};return e.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules/eqeqeq",["require","exports","module"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,e){function n(b,c){for(var f=b.getTokens(c),e=f.length,n=c.operator,a=0;a<e;a++){var g=f[a];if(g.value===n)return g}return null}function f(b){return b&&b.type?"Literal"===b.type&&null==b.value||"Identifier"===b.type&&"undefined"===b.name:!1}
e.exports=function(b){return{BinaryExpression:function(c){if(!f(c.left)&&!f(c.right)){var e=c.operator;"\x3d\x3d"===e?b.report(c,"Expected '\x3d\x3d\x3d' and instead saw '\x3d\x3d'.",null,n(b,c)):"!\x3d"===e&&b.report(c,"Expected '!\x3d\x3d' and instead saw '!\x3d'.",null,n(b,c))}}}};return e.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module):"function"===typeof define&&define.amd?define("eslint/util",["require","exports","module"],c):b.util=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,e){c.mixin=function(b,c){Object.keys(c).forEach(function(d){b[d]=c[d]})};c.mergeConfigs=function f(b,c){Object.keys(c).forEach(function(e){var r=c[e];"object"===typeof r&&!Array.isArray(r)?b[e]=f(b[e]||{},c[e]):b[e]=c[e]});return b};c.getDeclaration=function(b,
d){for(var c=d;;){if(!c)return null;var e=b.name?b.name:b.identifier.name,r;c.variables.some(function(b){return b.name===e?(r=b,!0):!1});if(r)return r;c=c.upper}};return e.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require("../util"),require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules/no-redeclare",["eslint/util","require","exports","module"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,e,n){n.exports=function(c){function d(a,b){c.report(a,"'{{name}}' is already defined.",{name:b})}function e(a,b){b.variables.forEach(function(d){d.defs.some(function(d){return"FunctionName"===d.type?(d=
d.name.name,Object.prototype.hasOwnProperty.call(a,d)||(a[d]=b),!0):!1})})}function h(a){for(var d=a.upper,c=Object.create(null);d&&!d._namedFunctions;)d=d.upper;d&&b.mixin(c,d._namedFunctions);e(c,a);return a._namedFunctions=c}function r(a){return a.defs.some(function(a){return"Parameter"===a.type})}function n(a){var b=c.getScope(),e=h(b);b.variables.forEach(function(c){var f;"Program"!==a.type&&(f=e[c.name])&&f!==b&&!r(c)&&d(c.defs[0].name,c.name);c.defs.filter(function(a){return"ImplicitGlobalVariable"!==
a.type}).forEach(function(a,b){0<b&&d(a.name,a.name.name)})})}return{Program:n,FunctionDeclaration:n,FunctionExpression:n}};return n.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules/no-undef",["require","exports","module"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,e){function n(b){return b.defs.every(function(b){return"ImplicitGlobalVariable"===b.type})}function f(b,c){var f=null;b.variables.some(function(b){return b.name===c.identifier.name&&(!n(b)||Object.hasOwnProperty.call(b,"writeable"))?(f=b,
!0):!1});return f}e.exports=function(b){return{Program:function(){var c=b.getScope();c.through.forEach(function(e){var r=f(c,e),n=e.identifier.name;r?e.isWrite()&&!1===r.writeable&&b.report(e.identifier,"'{{name}}' is read only.",{name:n}):b.report(e.identifier,"'{{name}}' is not defined.",{name:n})})}}};return e.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules/no-unused-vars",["require","exports","module"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,e){e.exports=function(b){function c(b){return b.isRead()}function d(b,d){var c=d.references;"global"===b.type&&(c=c.concat(b.through.filter(function(a){return a.identifier.name===d.name})));return c}function e(h){var p=b.getScope();
p.variables.forEach(function(e){if(e.defs.length&&"Parameter"!==e.defs[0].type){var a=d(p,e);e=e.defs[0].node.id;a.length?a.some(c)||b.report(e,"'{{name}}' is never read.",{name:e.name}):b.report(e,"'{{name}}' is never used.",{name:e.name})}})}return{Program:e,FunctionDeclaration:e,FunctionExpression:e}};return e.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module,require("../util")):"function"===typeof define&&define.amd?define("eslint/rules/no-use-before-define",["require","exports","module","../util"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b},b.util)})(this,function(b,c,e,n){e.exports=function(b){function d(d){var a=b.getScope();a.references.forEach(function(d){var c=n.getDeclaration(d,a);d=d.identifier;var p=d.name,s;if(c&&(s=c.defs).length&&d.range[0]<s[0].node.range[0])c=
s[0].type,!r&&"FunctionName"===c||!e&&"Variable"===c||b.report(d,"'{{name}}' was used before it was defined.",{name:p})})}var c=b.options,e="boolean"===typeof c[0]?c[0]:!0,r="boolean"===typeof c[1]?c[1]:!1;return{Program:d,FunctionExpression:d,FunctionDeclaration:d}};return e.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules/semi",["require","exports","module"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,e){e.exports=function(b){function c(d){var e=b.getTokens(d),e=e[e.length-1];(!e||!("Punctuator"===e.type&&";"===e.value))&&b.report(d,"Missing semicolon.",null,e)}return{VariableDeclaration:function(d){var e=b.getAncestors(d),e=e[e.length-1],
h=e.type;"ForStatement"===h&&e.init===d||"ForInStatement"===h&&e.left===d||c(d)},ExpressionStatement:c,ReturnStatement:c}};return e.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules/no-extra-semi",["require","exports","module"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,e){e.exports=function(b){return{EmptyStatement:function(c){var d=b.getTokens(c);(d=d[d.length-1])&&"Punctuator"===d.type&&";"===d.value&&b.report(c,"Unnecessary semicolon.",null,d)}}};return e.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules/missing-doc",["require","exports","module"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,e){e.exports=function(b){function c(e){if(b.options){var f,r;switch(e.type){case "Property":if("expr"===b.options[0]&&e.value&&"FunctionExpression"===e.value.type&&(f=b.getComments(e),!f||1>f.leading.length)){switch(e.key.type){case "Identifier":r=
e.key.name;break;case "Literal":r=e.key.value}d(e.key,r)}break;case "FunctionDeclaration":"decl"===b.options[0]&&(f=b.getComments(e),(!f||1>f.leading.length)&&d(e.id,e.id.name));break;case "ExpressionStatement":if("expr"===b.options[0]&&e.expression&&"AssignmentExpression"===e.expression.type){var u=e.expression;if(u.right&&"FunctionExpression"===u.right.type&&u.left&&"MemberExpression"===u.left.type&&(f=b.getComments(e),!f||1>f.leading.length))r=!0===u.left.computed?u.left.property.value:u.left.property.name,
d(u.left.property,r)}}}}function d(d,c){b.report(d,"Missing documentation for function '{{name}}'",{name:c})}return{Property:c,FunctionDeclaration:c,ExpressionStatement:c}};return e.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules/no-debugger",["require","exports","module"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,e){e.exports=function(b){return{DebuggerStatement:function(c){b.report(c,"'debugger' statement use is discouraged.",null,b.getTokens(c)[0])}}};return e.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules/no-dupe-keys",["require","exports","module"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,e){e.exports=function(b){return{ObjectExpression:function(c){if((c=c.properties)&&0<c.length)for(var d=c.length,e={},h=0;h<d;h++){var r=c[h],u=r.key.name?r.key.name:r.key.value;e.hasOwnProperty(u)?b.report(r,"Duplicate object key '{{key}}'",
{key:u},b.getTokens(r)[0]):e[u]=1}}}};return e.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module,require("../util")):"function"===typeof define&&define.amd?define("eslint/rules/no-eval",["require","exports","module","../util"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b},b.util)})(this,function(b,c,e,n){e.exports=function(b){return{CallExpression:function(d){var c=d.callee.name;if(c)if("eval"===c)b.report(d.callee,"'eval' function calls are discouraged.",null,b.getTokens(d.callee)[0]);else if(("setInterval"===
c||"setTimeout"===c)&&0<d.arguments.length)if(c=d.arguments[0],"Literal"===c.type)b.report(d.callee,"Implicit 'eval' function calls are discouraged.",null,b.getTokens(d.callee)[0]);else if("Identifier"===c.type){var e=b.getScope();if((c=n.getDeclaration(c,e))&&c.defs&&c.defs.length)c=c.defs[0],e=c.node,"Variable"===c.type&&e&&"VariableDeclarator"===e.type&&e.init&&"Literal"===e.init.type&&b.report(d.callee,"Implicit 'eval' function calls are discouraged.",null,b.getTokens(d.callee)[0])}}}};return e.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules/curly",["require","exports","module"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,e){e.exports=function(b){function c(d){"IfStatement"===d.type?(d.consequent&&"BlockStatement"!==d.consequent.type&&b.report(d.consequent,"Statement should be enclosed in braces.",null,b.getTokens(d.consequent)[0]),d.alternate&&"BlockStatement"!==
d.alternate.type&&"IfStatement"!==d.alternate.type&&b.report(d.alternate,"Statement should be enclosed in braces.",null,b.getTokens(d.alternate)[0])):("WhileStatement"===d.type||"ForStatement"===d.type||"ForInStatement"===d.type)&&d.body&&"BlockStatement"!==d.body.type&&b.report(d.body,"Statement should be enclosed in braces.",null,b.getTokens(d.body)[0])}return{IfStatement:c,WhileStatement:c,ForStatement:c,ForInStatement:c}};return e.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules/new-parens",["require","exports","module"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,e){e.exports=function(b){return{NewExpression:function(c){if(c.callee){var d=b.getTokens(c.callee,0,1);if(d&&0<d.length){var e=d[d.length-1];("Punctuator"!==e.type||"("!==e.value)&&b.report(c.callee,"Missing parentheses invoking constructor.",
null,d[0])}}}}};return e.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules/use-isnan",["require","exports","module"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,e){e.exports=function(b){return{BinaryExpression:function(c){"Identifier"===c.left.type&&"NaN"===c.left.name?b.report(c.left,"Use the isNaN function to compare with NaN.",null,c.left):"Identifier"===c.right.type&&"NaN"===c.right.name&&b.report(c.right,
"Use the isNaN function to compare with NaN.",null,c.right)}}};return e.exports});
define("eslint/load-rules-async","eslint/rules/eqeqeq eslint/rules/no-redeclare eslint/rules/no-undef eslint/rules/no-unused-vars eslint/rules/no-use-before-define eslint/rules/semi eslint/rules/no-extra-semi eslint/rules/missing-doc eslint/rules/no-debugger eslint/rules/no-dupe-keys eslint/rules/no-eval eslint/rules/curly eslint/rules/new-parens eslint/rules/use-isnan".split(" "),function(b,c,e,n,f,d,p,h,r,u,a,g,k,w){return function(){return{eqeqeq:b,"no-redeclare":c,"no-undef":e,"no-unused-vars":n,
"no-use-before-define":f,semi:d,"no-extra-semi":p,"missing-func-decl-doc":h,"missing-func-expr-doc":h,"no-debugger":r,"no-dupe-keys":u,"no-eval":a,curly:g,"new-parens":k,"use-isnan":w}}});
(function(b,c){"object"===typeof exports?module.exports=c(require("./load-rules"),require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules",["./load-rules-async","require","exports","module"],c):b.rules=c(b.loadRules,function(c){return b[c]},b,{exports:b})})(this,function(b,c,e,n){function f(c){var e=b(c);Object.keys(e).forEach(function(b){d[b]=e[b]})}var d=Object.create(null);e.load=f;e.get=function(b){return d[b]};e.define=function(b,c){d[b]=c};f();return e});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module):"function"===typeof define&&define.amd?define("eslint/rule-context",["require","exports","module"],c):b.ruleContext=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,e){function n(b,c,e){Object.defineProperty(this,"id",{value:b});Object.defineProperty(this,"options",{value:e});f.forEach(function(b){this[b]=function(){return c[b].apply(c,arguments)}},this);this.report=function(e,f,a,h){c.report(b,e,f,a,h)}}
var f="getSource getTokens getComments getAllComments getAncestors getScope".split(" ");n.prototype={constructor:n};e.exports=n;return e.exports});
define("orion/EventTarget",[],function(){function b(){this._namedListeners={}}b.prototype={dispatchEvent:function(b){if(!b.type)throw Error("unspecified type");var e=this._namedListeners[b.type];e&&e.forEach(function(e){try{"function"===typeof e?e(b):e.handleEvent(b)}catch(f){"undefined"!==typeof console&&console.log(f)}});return!b.defaultPrevented},addEventListener:function(b,e){if("function"===typeof e||e.handleEvent)this._namedListeners[b]=this._namedListeners[b]||[],this._namedListeners[b].push(e)},
removeEventListener:function(b,e){var n=this._namedListeners[b];if(n)for(var f=0;f<n.length;f++)if(n[f]===e){1===n.length?delete this._namedListeners[b]:n.splice(f,1);break}}};b.prototype.constructor=b;b.attach=function(c){var e=new b;c.dispatchEvent=e.dispatchEvent.bind(e);c.addEventListener=e.addEventListener.bind(e);c.removeEventListener=e.removeEventListener.bind(e)};return b});
define("eslint/events",["orion/EventTarget","orion/objects"],function(b,c){function e(){this._eventTarget=new b}function n(b,c){if("function"!==typeof c)throw Error("addListener only takes instances of Function");var h="undefined"!==typeof this._maxListeners?this._maxListeners:f,r;0!==h&&(r=e.listenerCount(this,b)>=h)&&"undefined"!==typeof console&&console.error("Possible EventEmitter memory leak: "+r+" listeners added.");this.emit("newListener",c);this._eventTarget.addEventListener(b,c);return this}
var f=10;e.prototype.constructor=e;c.mixin(e.prototype,{_maxListeners:10,addListener:n,on:n,once:function(b,c){var e=this,f=function(n){try{c.apply(this,Array.prototype.slice.call(arguments))}finally{e.removeListener(b,f)}};this.addListener(b,f);return this},removeListener:function(b,c){if("function"!==typeof c)throw Error("removeListener only takes instances of Function");this._eventTarget.removeEventListener(b,c);this.emit("removeListener",c);return this},removeAllListeners:function(b){var c=this._eventTarget._namedListeners,
e=this,f=function(b){var a=c[b];a&&(a.forEach(e.emit.bind(e,"removeListener")),delete c[b])};"undefined"===typeof b?Object.keys(c).forEach(f):f(b);return this},setMaxListeners:function(b){if("number"!==typeof b)throw Error("setMaxListeners only takes a number");this._maxListeners=b},listeners:function(b){return(b=this._eventTarget._namedListeners[b])?b.slice():[]},emit:function(b){var c=this._eventTarget._namedListeners[b];if(!c){if("error"===b)throw Error("Uncaught, unspecified 'error' event.");
return!1}var e=Array.prototype.slice.call(arguments,1),f=this;c.forEach(function(b){b.apply(f,e)});return!0}});e.listenerCount=function(b,c){var e=b._eventTarget._namedListeners[c];return e?e.length:0};return{EventEmitter:e}});
(function(b,c){"object"===typeof exports?module.exports=c(require("esprima"),require("estraverse"),require("escope"),require("../conf/environments"),require("./rules"),require("./util"),require("./rule-context"),require("events"),require,exports,module):"function"===typeof define&&define.amd?define("eslint/eslint","esprima estraverse escope eslint/conf/environments ./rules ./util ./rule-context ./events require exports module".split(" "),c):b.eslint=c(b.esprima,b.estraverse,b.escope,b.environments,
b.rules,b.util,b.RuleContext,b.events,function(c){return b[c]},b,{exports:b})})(this,function(b,c,e,n,f,d,p,h,r,u,a){function g(a,b){a=a.replace(/\s*:\s*/g,":");a=a.replace(/\s*,\s*/g,",");a.split(/\s|,+/).forEach(function(a){if(a){var d=a.indexOf(":"),c;-1!==d&&(c=a.substring(d+1,a.length),a=a.substring(0,d));b(a,c)}})}function k(a,b){if("Block"===a.type){var c=a.value,e;if(e=/^\s*(globals?)/.exec(c))return g(c.substring(e.index+e[1].length),function(a,d){b[a]="true"===d}),!0;(e=/^\s*(js[lh]int)/.exec(c))&&
g(c.substring(e.index+e[1].length),function(a,c){"true"===c&&Object.hasOwnProperty.call(n,a)&&d.mixin(b,n[a])})}}function w(a,b){var d=null;a.variables.some(function(a){return a.name===b?(d=a,!0):!1});return d}function s(a,b,d){var c={},f=n.builtin;Object.keys(f).forEach(function(a){c[a]=f[a]});d.env&&Object.keys(d.env).forEach(function(a){var b=n[a];d.env[a]&&b&&Object.keys(b).forEach(function(a){c[a]=b[a]})});a.comments.forEach(function(a){k(a,c)});d.globals?Object.keys(d.globals).forEach(function(a){c[a]=
d.globals[a]}):d.global&&Object.keys(d.global).forEach(function(a){c[a]=d.global[a]});Object.keys(c).forEach(function(a){var d=w(b,a);d||(d=new e.Variable(a,b),b.variables.push(d));d.writeable=c[a]})}function z(a,b){var c={};a.comments.forEach(function(a){"Block"===a.type&&(a=a.value.trim(),0===a.indexOf("eslint")&&(a=a.substr(6,a.length-6),g(a,function(a,b){c[a]=JSON.parse(b)})))});return d.mergeConfigs(b.rules,c)}var J=h.EventEmitter;a.exports=function(){var a=Object.create(new J),d=[],h=!1,g=null,
k=null,n=null,u=null,w=null;a.reset=function(){this.removeAllListeners();d=[];h=!1;w=u=n=g=k=null};a.verify=function(h,r,m){var x=h&&"object"===typeof h?h:null,v=!1;m||this.reset();try{x=x||b.parse(h,{loc:!0,range:!0,raw:!0,tokens:!0,comment:!0})}catch(F){v=!0,d.push({fatal:!0,message:F.message.substring(F.message.indexOf(":")+1).trim(),line:F.lineNumber,column:F.column})}v||(r.rules=z(x,r),Object.keys(r.rules).filter(function(a){if("number"===typeof r.rules[a])return 0<r.rules[a];if(Array.isArray(r.rules[a]))return 0<
r.rules[a][0]}).forEach(function(b){var d=f.get(b),c=[],e;Array.isArray(r.rules[b])&&(c=r.rules[b].slice(1));if(d)e=d(new p(b,a,c)),Object.keys(e).forEach(function(b){a.on(b,e[b])});else throw Error("Definition for rule '"+b+"' was not found.");}),k=r,g=h&&"string"===typeof h?h:null,w=new c.Controller,u=e.analyze(x,{ignoreEval:!0}).scopes,n={},x.tokens.forEach(function(a){n[a.range[0]]=a}),s(x,u[0],k),w.traverse(x,{enter:function(b){a.emit(b.type,b)},leave:function(b){a.emit(b.type+":after",b)}}));
return d};a.report=function(b,c,e,f,h){Object.keys(f||{}).forEach(function(a){var b=RegExp("{{"+a.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$\x26")+"}}","g");e=e.replace(b,f[a])});d.push({ruleId:b,node:c,message:e,line:c.loc?c.loc.start.line:null,column:c.loc?c.loc.start.column:null,source:a.getSource(c),related:"undefined"!==typeof h?h:null})};a.getSource=function(a,b,d){return a&&"string"===typeof g?g?g.slice(a.range[0]-(b||0),a.range[1]+(d||0)):null:g||null};a.getAllComments=function(){return w.root.comments||
[]};a.getComments=function(a){var b=w.root;h||(c.attachComments(b,b.comments,b.tokens),h=!0);return{leading:a.leadingComments||[],trailing:a.trailingComments||[]}};a.getTokens=function(a,b,d){if(a){b=a.range[0]-(b||0);a=a.range[1]+(d||0);for(d=[];b<a;)n[b]?(d.push(n[b]),b=n[b].range[1]):b+=1;return d}return Object.keys(n).map(function(a){return a})||null};a.getAncestors=function(){return w.parents()};a.getScope=function(){var a=w.parents().reverse(),b=null;if(a.length){var d=w.current();("FunctionDeclaration"===
d.type||"FunctionExpression"===d.type)&&a.splice(0,0,d);for(d=0;d<a.length;d++)if(e.Scope.isScopeRequired(a[d])){b=a[d];break}for(a=0;a<u.length;a++)if(b.type===u[a].block.type&&b.range[0]===u[a].block.range[0]&&b.range[1]===u[a].block.range[1])return u[a]}else return u[0]};var V=a.defineRule=function(a,b){f.define(a,b)};a.defineRules=function(a){Object.getOwnPropertyNames(a).forEach(function(b){V(b,a[b])})};a.defaults=function(){return r("./conf/eslint.json")};return a}();return a.exports});
define("eslint",["eslint/eslint"],function(b){return b});
define("javascript/finder",["estraverse"],function(b){return{punc:"\n\t\r (){}[]:;,.+\x3d-*^\x26@!%~`'\"/\\",findWord:function(b,e){if(b&&e){for(var n=-1<this.punc.indexOf(b.charAt(e)),f=n?e-1:e;0<=f&&!(-1<this.punc.indexOf(b.charAt(f)));)f--;for(var d=f,f=e;f<=b.length&&!(-1<this.punc.indexOf(b.charAt(f)));)f++;if(!((d===e||n&&d===e-1)&&f===e))return d===e?b.substring(d,f):b.substring(d+1,f)}return null},findNode:function(c,e){var n=null;null!=c&&-1<c&&e&&b.traverse(e,{enter:function(e){if(e.type&&
e.range)if(e.range[0]<=c)n=e;else return b.VisitorOption.Break}});return n},findToken:function(b,e){if(null!=b&&-1<b&&e&&0<e.length){var n=0,f=e.length-1,d,p=0;d=e[0];if(b>=d.range[0]&&b<d.range[1])return d.index=b,d;d=e[f];if(b>=d.range[0])return d.index=f,d;for(;n<=f;){p=Math.floor((n+f)/2);d=e[p];if(b<d.range[0])f=p-1;else if(b>d.range[1])n=p+1;else if(b===d.range[1])if(e[p+1].range[0]===d.range[1])n=p+1;else return d.index=p,d;else if(b>=d.range[0]&&b<d.range[1])return d.index=p,d;if(n===f){d=
e[n];if(b>=d.range[0]&&b<=d.range[1])return d.index=n,d;break}}}return null},findComment:function(b,e){if(e.comments){for(var n=e.comments,f=n.length,d=0;d<f;d++){var p=n[d];if(p.range[0]<=b&&p.range[1]>b)return p;if(p.range[0]>b)break}return null}},findScriptBlocks:function(b,e){for(var n=[],f=null,d=/<script\s*>((?:.|\r?\n)*?)<\/script\s*>/ig;null!=(f=d.exec(b));){var p=f[1];1>p.length||(f=f.index+f[0].indexOf("\x3e")+1,(null==e||f<=e&&f+p.length>=e)&&n.push({text:p,offset:f}))}return n}}});
define("javascript/validator",["eslint","orion/objects","javascript/astManager","javascript/finder","orion/Deferred"],function(b,c,e,n,f){function d(b){this.astManager=b}function p(b){var d,a;b.node&&(d=b.node.range[0],a=b.node.range[1],b.related&&(a=b.related,d=a.range[0],a=a.range[1]));var c=b.message;a:{var e=2,e=Array.isArray(h.rules[b.ruleId])?h.rules[b.ruleId][0]:h.rules[b.ruleId];switch(e){case 1:b="warning";break a;case 2:b="error";break a}b="error"}return{description:c,severity:b,start:d,
end:a}}var h={rules:{eqeqeq:1,"no-redeclare":1,"no-undef":2,"no-unused-vars":1,"no-use-before-define":1,semi:1,"no-extra-semi":1,"missing-func-decl-doc":[0,"decl"],"missing-func-expr-doc":[0,"expr"],"no-debugger":1,"no-dupe-keys":2,"no-eval":0,curly:0,"new-parens":2,"use-isnan":2},setOption:function(b,d){"number"===typeof d&&(Array.isArray(this.rules[b])?this.rules[b][0]=d:this.rules[b]=d)}};c.mixin(d.prototype,{_extractParseErrors:function(b){var d=[],a=Object.create(null),c=b.errors;if(c)for(var f=
c.length,h=0;h<f;h++){var p=c[h],z=null;p.end&&p.token?z={range:[p.index,p.end],value:p.token}:0<b.tokens.length&&(z=n.findToken(p.index,b.tokens));if(z){var J=p.message;if(a[p.index]!==J){a[p.index]=J;if(p.type)switch(p.type){case e.ErrorTypes.Unexpected:p.message="Syntax error on token '"+z.value+"', delete this token.";break;case e.ErrorTypes.EndOfInput:p.message="Syntax error, incomplete statement."}p.node=z;d.push(p)}}}return d},computeProblems:function(b,d){var a=this;switch(d.contentType){case "text/html":return b.getText().then(function(b){b=
n.findScriptBlocks(b);for(var d=b.length,c=[],e=0;e<d;e++){for(var f=b[e],h=a.astManager.parse(f.text),h=a._validateAst(h).problems,p=h.length,l=0;l<p;l++)h[l].start+=f.offset,h[l].end+=f.offset;c=c.concat(h)}return{problems:c}});case "application/javascript":return this.astManager.getAST(b).then(function(b){return a._validateAst(b)})}},_validateAst:function(d){var c=[],a;try{c=b.verify(d,h)}catch(e){a=e}d=this._extractParseErrors(d);c=[].concat(c).concat(d).map(p);a&&!d.length&&c.push({start:0,description:"ESLint could not validate this file because an error occurred: "+
a.toString(),severity:"error"});return{problems:c}},updated:function(b){b&&(h.setOption("missing-func-decl-doc",b.validate_func_decl),h.setOption("missing-func-expr-doc",b.validate_func_expr),h.setOption("eqeqeq",b.validate_eqeqeq),h.setOption("no-redeclare",b.validate_no_redeclare),h.setOption("no-undef",b.validate_no_undef),h.setOption("no-unused-vars",b.validate_no_unused_vars),h.setOption("no-use-before-define",b.validate_use_before_define),h.setOption("semi",b.validate_missing_semi),h.setOption("no-extra-semi",
b.validate_unnecessary_semi),h.setOption("no-debugger",b.validate_debugger),h.setOption("no-dupe-keys",b.validate_dupe_obj_keys),h.setOption("no-eval",b.validate_eval),h.setOption("curly",b.validate_curly),h.setOption("new-parens",b.validate_new_parens),h.setOption("use-isnan",b.validate_use_isnan))}});return d});
define("javascript/occurrences",["orion/objects","estraverse","javascript/finder"],function(b,c,e){function n(){}function f(b){this.astManager=b}b.mixin(n.prototype,{occurrences:[],scopes:[],context:null,thisCheck:!1,enter:function(b){var e,f;switch(b.type){case c.Syntax.Program:this.occurrences=[];this.scopes=[{range:b.range,occurrences:[],kind:"p"}];this.defscope=this.defnode=null;break;case c.Syntax.FunctionDeclaration:this.checkId(b.id,!0);this._enterScope(b);if(b.params){e=b.params.length;for(f=
0;f<e;f++)if(this.checkId(b.params[f],!0))return c.VisitorOption.Skip}break;case c.Syntax.FunctionExpression:if(b.params){if(this._enterScope(b))return c.VisitorOption.Skip;e=b.params.length;for(f=0;f<e;f++)if(this.checkId(b.params[f],!0))return c.VisitorOption.Skip}break;case c.Syntax.AssignmentExpression:this.checkId(b.left);this.checkId(b.right);break;case c.Syntax.ArrayExpression:if(b.elements){e=b.elements.length;for(f=0;f<e;f++)this.checkId(b.elements[f])}break;case c.Syntax.MemberExpression:this.checkId(b.object);
b.computed&&this.checkId(b.property);break;case c.Syntax.BinaryExpression:this.checkId(b.left);this.checkId(b.right);break;case c.Syntax.UnaryExpression:this.checkId(b.argument);break;case c.Syntax.IfStatement:this.checkId(b.test);break;case c.Syntax.SwitchStatement:this.checkId(b.discriminant);break;case c.Syntax.UpdateExpression:this.checkId(b.argument);break;case c.Syntax.ConditionalExpression:this.checkId(b.test);this.checkId(b.consequent);this.checkId(b.alternate);break;case c.Syntax.CallExpression:this.checkId(b.callee,
!1);if(b.arguments){e=b.arguments.length;for(f=0;f<e;f++)this.checkId(b.arguments[f])}break;case c.Syntax.ReturnStatement:this.checkId(b.argument);break;case c.Syntax.ObjectExpression:if(this._enterScope(b))return c.VisitorOption.Skip;if(b.properties){e=b.properties.length;for(f=0;f<e;f++){var n=b.properties[f];this.thisCheck&&n.value&&n.value.type===c.Syntax.FunctionExpression&&(n.value.isprop=!0);this.checkId(n.value)}}break;case c.Syntax.VariableDeclarator:this.checkId(b.id,!0);this.checkId(b.init);
break;case c.Syntax.NewExpression:this.checkId(b.callee,!1);if(b.arguments){e=b.arguments.length;for(f=0;f<e;f++)this.checkId(b.arguments[f])}break;case c.Syntax.LogicalExpression:this.checkId(b.left);this.checkId(b.right);break;case c.Syntax.ThisExpression:this.thisCheck&&(e=this.scopes[this.scopes.length-1],e.occurrences.push({start:b.range[0],end:b.range[1]}),b.range[0]===this.context.token.range[0]&&(this.defscope=e))}},_enterScope:function(b){if(this.thisCheck)switch(b.type){case c.Syntax.ObjectExpression:this.scopes.push({range:b.range,
occurrences:[],kind:"o"});if(this.defscope)return!0;break;case c.Syntax.FunctionExpression:if(!b.isprop&&(this.scopes.push({range:b.range,occurrences:[],kind:"fe"}),this.defscope))return!0}else{var e="fe";switch(b.type){case c.Syntax.FunctionDeclaration:e="fd";case c.Syntax.FunctionExpression:this.scopes.push({range:b.range,occurrences:[],kind:e})}}return!1},leave:function(b){if(this.thisCheck)switch(b.type){case c.Syntax.FunctionExpression:if(b.isprop){delete b.isprop;break}case c.Syntax.ObjectExpression:case c.Syntax.Program:if(this._popScope())return c.VisitorOption.Break}else switch(b.type){case c.Syntax.FunctionExpression:case c.Syntax.FunctionDeclaration:case c.Syntax.Program:if(this._popScope())return c.VisitorOption.Break}},
_popScope:function(){var b=this.scopes.pop(),c=b.occurrences.length,e;if(this.defscope){for(e=0;e<c;e++)this.occurrences.push(b.occurrences[e]);if(this.defscope.range[0]===b.range[0]&&this.defscope.range[1]===b.range[1]&&this.defscope.kind===b.kind)return!0}return!1},checkId:function(b,e){if(!this.thisCheck&&b&&b.type===c.Syntax.Identifier&&b.name===this.context.word){var f=this.scopes[this.scopes.length-1];if(e){if(this.defscope){if(b.range[0]>this.context.start)return!0;this.occurrences=[];f.occurrences=
[]}f&&f.range[0]<=this.context.start&&f.range[1]>=this.context.end&&(this.defscope=f)}f.occurrences.push({start:b.range[0],end:b.range[1]})}return!1}});n.prototype.constructor=n;b.mixin(f.prototype,{visitor:null,getVisitor:function(b){this.visitor||(this.visitor=new n,this.visitor.enter=this.visitor.enter.bind(this.visitor),this.visitor.leave=this.visitor.leave.bind(this.visitor));this.visitor.thisCheck=b.token&&"Keyword"===b.token.type&&"this"===b.token.value;this.visitor.context=b;return this.visitor},
_nameFromNode:function(b){switch(b.type){case c.Syntax.Identifier:return b.value;case "Keyword":return"this"}},_skip:function(b,e,f){return!e?!0:"Keyword"===e.type?"this"!==e.value:e.type!==c.Syntax.Identifier},_getToken:function(b,c){if(c.tokens&&0<c.tokens.length){var f=e.findToken(b,c.tokens);if(f){if("Punctuator"===f.type){var n=f.index;if(b===f.range[0]&&null!=n&&0<n){n=c.tokens[n-1];if(n.range[1]!==f.range[0])return null;f=n}}if("Identifier"===f.type||"Keyword"===f.type&&"this"===f.value)return f}}return null},
computeOccurrences:function(b,c){var f=this;switch(c.contentType){case "text/html":return b.getText().then(function(b){b=e.findScriptBlocks(b,c.selection.start);if(0<b.length){b=b[0];for(var d=f.astManager.parse(b.text),d=f._getOccurrencesFromAst(d,{selection:{start:c.selection.start-b.offset,end:c.selection.end-b.offset}}),a=d.length,g=0;g<a;g++)d[g].start+=b.offset,d[g].end+=b.offset}return d});case "application/javascript":return this.astManager.getAST(b).then(function(b){return f._getOccurrencesFromAst(b,
c)})}},_getOccurrencesFromAst:function(b,e){if(b&&e){var f=this._getToken(e.selection.start,b);if(!this._skip(e,f,b))return f={start:e.selection.start,end:e.selection.end,word:this._nameFromNode(f),token:f},f=this.getVisitor(f),c.traverse(b,f),f.occurrences}return[]}});f.prototype.contructor=f;return{JavaScriptOccurrences:f}});
define("javascript/signatures",[],function(){return{computeSignature:function(b){return b?b.sig?b.sig:{sig:this.getNameFrom(b),range:this.getSignatureSourceRangeFrom(b)}:null},getParamsFrom:function(b){if(b&&(b=b.params)&&0<b.length){for(var c=b.length,e="",n=0;n<c;n++)e=b[n].name?e+b[n].name:e+"Object",n<c-1&&(e+=", ");return e}},getNameFrom:function(b){var c="Anonyous "+b.type;if(b&&b.type)if("FunctionDeclaration"===b.type)b.id&&b.id.name&&(c=b.id.name+"(",(b=this.getParamsFrom(b))&&(c+=b),c+=")");
else if("FunctionExpression"===b.type)c="function(",(b=this.getParamsFrom(b))&&(c+=b),c+=")";else if("ObjectExpression"===b.type)c="closure {...}";else if("Property"===b.type)b.value&&("FunctionExpression"===b.value.type?(b.key?b.key.name?c=b.key.name+"(":b.key.value&&(c=b.key.value+"("):c="function(",(b=this.getParamsFrom(b.value))&&(c+=b),c+=")"):"ObjectExpression"===b.value.type?b.key&&(b.key.name?c=b.key.name+" {...}":b.key.value&&(c=b.key.value+" {...}")):b.key&&(b.key.name?c=b.key.name:b.key.value&&
(c=b.key.value)));else if("VariableDeclarator"===b.type)b.init&&("ObjectExpression"===b.init.type?b.id&&b.id.name&&(c="var "+b.id.name+" \x3d {...}"):"FunctionExpression"===b.init.type&&(b.id&&b.id.name?(c=b.id.name+"(",(b=this.getParamsFrom(b.init))&&(c+=b),c+=")"):c=this.getNameFrom(b.init)));else if("AssignmentExpression"===b.type){if(b.left&&b.right){var e="ObjectExpression"===b.right.type;if(e||"FunctionExpression"===b.right.type)b.left.name?c=b.left.name:"MemberExpression"===b.left.type&&(c=
this.expandMemberExpression(b.left,"")),c?e?c+=" {...}":(c+="(",(b=this.getParamsFrom(b.right))&&(c+=b),c+=")"):c=this.getNameFrom(b.right)}}else if("ReturnStatement"===b.type&&b.argument&&("ObjectExpression"===b.argument.type||"FunctionExpression"===b.argument.type))c="return {...}";return c},expandMemberExpression:function(b,c){return"MemberExpression"===b.type?(b.property&&b.property.name&&(c=c&&0<c.length?b.property.name+"."+c:b.property.name),b.object&&b.object.name&&(c=b.object.name+"."+c),
this.expandMemberExpression(b.object,c)):c},getSignatureSourceRangeFrom:function(b){var c=[0,0];b&&("AssignmentExpression"===b.type?b.left&&b.left.range&&(c=b.left.range):"Property"===b.type?b.key&&b.key.range&&(c=b.key.range):"ReturnStatement"===b.type?(c[0]=b.range[0],c[1]=c[0]+6):b.id&&b.id.range?c=b.id.range:b.range&&(c=b.range,"FunctionExpression"===b.type&&(c[1]=c[0]+8)),1>c[0]&&(c[0]=1));return c}}});
define("javascript/outliner",["orion/objects","javascript/signatures","estraverse"],function(b,c,e){function n(){}function f(b){this.astManager=b}b.mixin(n.prototype,{outline:[],scope:[],enter:function(b){var f,h=this;if(b.type===e.Syntax.FunctionDeclaration)(f=this.addElement(c.computeSignature(b)))&&this.scope.push(f);else if(b.type===e.Syntax.FunctionExpression)(f=this.addElement(c.computeSignature(b)))&&this.scope.push(f),delete b.sig;else if(b.type===e.Syntax.ObjectExpression)(f=this.addElement(c.computeSignature(b)))&&
this.scope.push(f),delete b.sig,b.properties&&b.properties.forEach(function(b){b.value&&(b.value.type===e.Syntax.FunctionExpression||b.value.type===e.Syntax.ObjectExpression?b.value.sig=c.computeSignature(b):h.addElement(c.computeSignature(b)))});else if(b.type===e.Syntax.VariableDeclaration)b.declarations&&b.declarations.forEach(function(b){b.init&&b.init.type===e.Syntax.ObjectExpression&&(b.init.sig=c.computeSignature(b))});else if(b.type===e.Syntax.AssignmentExpression){if(b.left&&b.right&&(b.right.type===
e.Syntax.ObjectExpression||b.right.type===e.Syntax.FunctionExpression))b.right.sig=c.computeSignature(b)}else if(b.type===e.Syntax.ReturnStatement&&b.argument&&(b.argument.type===e.Syntax.ObjectExpression||b.argument.type===e.Syntax.FunctionExpression))b.argument.sig=c.computeSignature(b)},leave:function(b){(b.type===e.Syntax.ObjectExpression||b.type===e.Syntax.FunctionDeclaration||b.type===e.Syntax.FunctionExpression)&&this.scope.pop()},addElement:function(b){if(b){b={label:b.sig,start:b.range[0],
end:b.range[1]};if(1>this.scope.length)this.outline.push(b);else{var c=this.scope[this.scope.length-1];c.children||(c.children=[]);c.children.push(b)}return b}}});n.prototype.constructor=n;b.mixin(f.prototype,{visitor:null,getVisitor:function(){this.visitor||(this.visitor=new n,this.visitor.enter=this.visitor.enter.bind(this.visitor),this.visitor.leave=this.visitor.leave.bind(this.visitor));this.visitor.outline=[];return this.visitor},computeOutline:function(b,c){var f=this;return this.astManager.getAST(b).then(function(b){if(b){var c=
f.getVisitor();e.traverse(b,c);return c.outline}return[]})}});f.prototype.contructor=f;return{JSOutliner:f}});
(function(b,c){"function"===typeof define&&define.amd?define("orion/plugin",["orion/Deferred"],c):"object"===typeof exports?module.exports=c(require("orion/Deferred")):(b.orion=b.orion||{},b.orion.PluginProvider=c(b.orion.Deferred))})(this,function(b){function c(b,c){this.__objectId=b;this.__methods=c}return function(e){function n(a){w&&("undefined"===typeof ArrayBuffer&&(a=JSON.stringify(a)),w===self?w.postMessage(a):w.postMessage(a,"*"))}function f(){var a=[];Object.keys(B).forEach(function(b){var c=
B[b];a.push({serviceId:b,names:c.names,methods:c.methods,properties:c.properties})});return{headers:g||{},services:a}}function d(a,b){if(b&&b instanceof XMLHttpRequest){var c,d;try{c=b.status,d=b.statusText}catch(e){c=0,d=""}return{status:c||0,statusText:d}}return b}function p(a){var b=a?JSON.parse(JSON.stringify(a,d)):a;a instanceof Error&&(b.__isError=!0,b.message=b.message||a.message,b.name=b.name||a.name);return b}function h(a){if(!w)return(new b).reject(Error("plugin not connected"));a.id=String(s++);
var d=new b;l[a.id]=d;d.then(null,function(b){k&&b instanceof Error&&"Cancel"===b.name&&y({requestId:a.id,method:"cancel",params:b.message?[b.message]:[]})});var e=Object.prototype.toString;a.params.forEach(function(b,f){if("[object Object]"===e.call(b)&&!(b instanceof c)){var g,h;for(g in b)"[object Function]"===e.call(b[g])&&(h=h||[],h.push(g));if(h){var k=z++;m[k]=b;g=function(){delete m[k]};d.then(g,g);a.params[f]=new c(k,h)}}});y(a);return d.promise}function r(a,b){a||0===a?y({id:a,result:null,
error:b}):console.log(b)}function u(a,b,c,d){d.forEach(function(a,b){if(a&&"undefined"!==typeof a.__objectId){var c={};a.__methods.forEach(function(b){c[b]=function(){return h({objectId:a.__objectId,method:b,params:Array.prototype.slice.call(arguments)})}});d[b]=c}});var e=void 0===typeof a?null:{id:a,result:null,error:null};try{var f=c.apply(b,d);e&&(f&&"function"===typeof f.then?(L[a]=f,f.then(function(b){delete L[a];e.result=b;y(e)},function(b){L[a]&&(delete L[a],e.error=p(b),y(e))},function(){y({responseId:a,
method:"progress",params:Array.prototype.slice.call(arguments)})})):(e.result=f,y(e)))}catch(g){e&&(e.error=p(g),y(e))}}function a(a){if(!(a.source!==w&&"undefined"!==typeof window)){a="string"!==typeof a.data?a.data:JSON.parse(a.data);try{if(a.method){var b=a.method,c=a.params||[];if("serviceId"in a){var d=B[a.serviceId];d||r(a.id,"service not found");d=d.implementation;b in d?u(a.id,d,d[b],c):r(a.id,"method not found")}else if("objectId"in a){var e=m[a.objectId];e||r(a.id,"object not found");!b in
e?u(a.id,e,e[b],c):r(a.id,"method not found")}else if("requestId"in a){var f=L[a.requestId];f&&"cancel"===b&&f.cancel&&f.cancel.apply(f,c)}else if("responseId"in a){var g=l[a.responseId];g&&"progress"===b&&g.progress&&g.progress.apply(g,c)}else throw Error("Bad method: "+a.method);}else{var h=l[String(a.id)];delete l[String(a.id)];a.error?h.reject(a.error):h.resolve(a.result)}}catch(k){console.log("Plugin._messageHandler "+k)}}}var g=e,k=!1,w=null,s=0,z=0,J=0,L={},l={},m={},B={},y=n;this.updateHeaders=
function(a){if(k)throw Error("Cannot update headers. Plugin Provider is connected");g=a};this.registerServiceProvider=this.registerService=function(a,b,c){if(k)throw Error("Cannot register service. Plugin Provider is connected");"string"===typeof a?a=[a]:Array.isArray(a)||(a=[]);var d=null,e=[];for(d in b)"function"===typeof b[d]&&e.push(d);B[J++]={names:a,methods:e,implementation:b,properties:c||{},listeners:{}}};this.connect=function(b,c){if(!k){if("undefined"===typeof window)w=self;else if(window!==
window.parent)w=window.parent;else if(null!==window.opener)w=window.opener;else{c&&c("No valid plugin target");return}addEventListener("message",a,!1);var d={method:"plugin",params:[f()]};n(d);k=!0}b&&b()};this.disconnect=function(){k&&(removeEventListener("message",a),w=null,k=!1)}}});
define("orion/editor/templates",[],function(){function b(b,c,f,d){this.prefix=b;this.description=c;this.template=f;this.name=d;this._parse()}function c(b,c){this._keywords=b||[];this._templates=[];this.addTemplates(c||[])}b.prototype={getProposal:function(b,c,f){b=c-b.length;c={};var d,p=void 0!==f.delimiter?f.delimiter:"\n";f.indentation&&(p+=f.indentation);var h=void 0!==f.tab?f.tab:"\t",r=0,u=this.variables,a=this.segments;f=[];for(var g=0;g<a.length;g++){var k=a[g],w=u[k];if(void 0!==w)switch(k){case "${tab}":k=
h;break;case "${delimiter}":k=p;break;case "${cursor}":k="";d=r;break;default:var s=c[k];s||(s=c[k]={data:w.data,positions:[]});k=w.substitution;s.data&&s.data.values&&(k=s.data.values[0]);s.positions.push({offset:b+r,length:k.length})}f.push(k);r+=k.length}var p=[],z;for(z in c)c.hasOwnProperty(z)&&p.push(c[z]);f=f.join("");void 0===d&&(d=f.length);return{proposal:f,name:this.name,description:this.description,groups:p,escapePosition:b+d,style:"noemphasis"}},match:function(b){return 0===this.prefix.indexOf(b)},
_parse:function(){var b=this.template,c=[],f={},d,p=0,b=b.replace(/\n/g,"${delimiter}"),b=b.replace(/\t/g,"${tab}");b.replace(/\$\{((?:[^\\}]+|\\.))*\}/g,function(h,r,u){var a=h.substring(2,h.length-1);r=h;var g=a,k=null,w=g.indexOf(":");-1!==w&&(g=g.substring(0,w),r="${"+g+"}",k=JSON.parse(a.substring(w+1).replace("\\}","}").trim()));(a=f[r])||(a=f[r]={});a.substitution=g;k&&(a.data=k);(d=b.substring(p,u))&&c.push(d);c.push(r);p=u+h.length;return g});(d=b.substring(p,b.length))&&c.push(d);this.segments=
c;this.variables=f}};c.prototype={addTemplates:function(c){for(var n=this.getTemplates(),f=0;f<c.length;f++)n.push(new b(c[f].prefix,c[f].description,c[f].template,c[f].name))},computeProposals:function(b,c,f){var d=this.getPrefix(b,c,f),p=[];this.isValid(d,b,c,f)&&(p=p.concat(this.getTemplateProposals(d,c,f)),p=p.concat(this.getKeywordProposals(d)));return p},getKeywords:function(){return this._keywords},getKeywordProposals:function(b){var c=[],f=this.getKeywords();if(f){for(var d=0;d<f.length;d++)0===
f[d].indexOf(b)&&c.push({proposal:f[d].substring(b.length),description:f[d],style:"noemphasis_keyword"});0<c.length&&c.splice(0,0,{proposal:"",description:"Keywords",style:"noemphasis_title_keywords",unselectable:!0})}return c},getPrefix:function(b,c,f){return f.prefix},getTemplates:function(){return this._templates},getTemplateProposals:function(b,c,f){for(var d=[],p=this.getTemplates(),h=0;h<p.length;h++){var r=p[h];r.match(b)&&(r=r.getProposal(b,c,f),this.removePrefix(b,r),d.push(r))}0<d.length&&
(d.sort(function(b,a){return b.name<a.name?-1:b.name>a.name?1:0}),d.splice(0,0,{proposal:"",description:"Templates",style:"noemphasis_title",unselectable:!0}));return d},removePrefix:function(b,c){if(!(c.overwrite=c.proposal.substring(0,b.length)!==b))c.proposal=c.proposal.substring(b.length)},isValid:function(b,c,f,d){return!0}};return{Template:b,TemplateContentAssist:c}});
define("orion/editor/stylers/lib/syntax",[],function(){return{id:"orion.lib",grammars:[{id:"orion.lib",repository:{brace_open:{match:"{",name:"punctuation.section.block.begin"},brace_close:{match:"}",name:"punctuation.section.block.end"},bracket_open:{match:"\\[",name:"punctuation.section.bracket.begin"},bracket_close:{match:"\\]",name:"punctuation.section.bracket.end"},parenthesis_open:{match:"\\(",name:"punctuation.section.parens.begin"},parenthesis_close:{match:"\\)",name:"punctuation.section.parens.end"},
doc_block:{begin:{match:"/\\*\\*",literal:"/**"},end:{match:"\\*/",literal:"*/"},name:"comment.block.documentation",patterns:[{match:"@(?:(?!\\*/)\\S)*",name:"keyword.other.documentation.tag"},{match:"\\\x3c\\S*\\\x3e",name:"keyword.other.documentation.markup"},{match:"(\\b)(TODO)(\\b)(((?!\\*/).)*)",name:"meta.annotation.task.todo",captures:{2:{name:"keyword.other.documentation.task"},4:{name:"comment.block"}}}]},number_decimal:{match:"\\b-?(?:\\.\\d+|\\d+\\.?\\d*)(?:[eE][+-]?\\d+)?\\b",name:"constant.numeric.number"},
number_hex:{match:"\\b0[xX][0-9A-Fa-f]+\\b",name:"constant.numeric.hex"},string_doubleQuote:{match:'"(?:\\\\.|[^"])*"?',name:"string.quoted.double"},string_singleQuote:{match:"'(?:\\\\.|[^'])*'?",name:"string.quoted.single"},todo_comment_singleLine:{match:"(\\b)(TODO)(\\b)(.*)",name:"meta.annotation.task.todo",captures:{2:{name:"keyword.other.documentation.task"},4:{name:"comment.line"}}}}},{id:"orion.c-like",repository:{comment_singleLine:{match:{match:"//.*",literal:"//"},name:"comment.line.double-slash",
patterns:[{include:"orion.lib#todo_comment_singleLine"}]},comment_block:{begin:{match:"/\\*",literal:"/*"},end:{match:"\\*/",literal:"*/"},name:"comment.block",patterns:[{match:"(\\b)(TODO)(\\b)(((?!\\*/).)*)",name:"meta.annotation.task.todo",captures:{2:{name:"keyword.other.documentation.task"},4:{name:"comment.block"}}}]}}}],keywords:[]}});
define("orion/editor/stylers/application_javascript/syntax",["orion/editor/stylers/lib/syntax"],function(b){var c="break case class catch continue const debugger default delete do else enum export extends false finally for function if implements import in instanceof interface let new null package private protected public return static super switch this throw true try typeof undefined var void while with yield".split(" ");b=b.grammars;b.push({id:"orion.js",contentTypes:["application/javascript"],patterns:[{begin:"'(?:\\\\.|[^\\\\'])*\\\\$",
end:"^(?:$|(?:\\\\.|[^\\\\'])*('|[^\\\\]$))",name:"string.quoted.single.js"},{begin:'"(?:\\\\.|[^\\\\"])*\\\\$',end:'^(?:$|(?:\\\\.|[^\\\\"])*("|[^\\\\]$))',name:"string.quoted.double.js"},{include:"orion.lib#string_doubleQuote"},{include:"orion.lib#string_singleQuote"},{include:"orion.c-like#comment_singleLine"},{match:"/(?![\\s\\*])(?:\\\\.|[^/])+/(?:[gim]{0,3})",name:"string.regexp.js"},{include:"orion.lib#doc_block"},{include:"orion.c-like#comment_block"},{include:"orion.lib#brace_open"},{include:"orion.lib#brace_close"},
{include:"orion.lib#bracket_open"},{include:"orion.lib#bracket_close"},{include:"orion.lib#parenthesis_open"},{include:"orion.lib#parenthesis_close"},{include:"orion.lib#number_decimal"},{include:"orion.lib#number_hex"},{match:"\\b(?:"+c.join("|")+")\\b",name:"keyword.control.js"}]});return{id:b[b.length-1].id,grammars:b,keywords:c}});
define("orion/editor/jsTemplateContentAssist",["orion/editor/templates","orion/editor/stylers/application_javascript/syntax"],function(b,c){function e(){}var n=[{prefix:"if",name:"if",description:" - if statement",template:"if (${condition}) {\n\t${cursor}\n}"},{prefix:"if",name:"if",description:" - if else statement",template:"if (${condition}) {\n\t${cursor}\n} else {\n\t\n}"},{prefix:"for",name:"for",description:" - iterate over array",template:"for (var ${i}\x3d0; ${i}\x3c${array}.length; ${i}++) {\n\t${cursor}\n}"},
{prefix:"for",name:"for",description:" - iterate over array with local var",template:"for (var ${i}\x3d0; ${i}\x3c${array}.length; ${i}++) {\n\tvar ${value} \x3d ${array}[${i}];\n\t${cursor}\n}"},{prefix:"for",name:"for..in",description:" - iterate over properties of an object",template:"for (var ${property} in ${object}) {\n\tif (${object}.hasOwnProperty(${property})) {\n\t\t${cursor}\n\t}\n}"},{prefix:"while",name:"while",description:" - while loop with condition",template:"while (${condition}) {\n\t${cursor}\n}"},
{prefix:"do",name:"do",description:" - do while loop with condition",template:"do {\n\t${cursor}\n} while (${condition});"},{prefix:"switch",name:"switch",description:" - switch case statement",template:"switch (${expression}) {\n\tcase ${value1}:\n\t\t${cursor}\n\t\tbreak;\n\tdefault:\n}"},{prefix:"case",name:"case",description:" - case statement",template:"case ${value}:\n\t${cursor}\n\tbreak;"},{prefix:"try",name:"try",description:" - try..catch statement",template:"try {\n\t${cursor}\n} catch (${err}) {\n}"},
{prefix:"try",name:"try",description:" - try..catch statement with finally block",template:"try {\n\t${cursor}\n} catch (${err}) {\n} finally {\n}"},{prefix:"typeof",name:"typeof",description:" - typeof statement",template:'typeof ${object} \x3d\x3d\x3d "${type:'+JSON.stringify({type:"link",values:"undefined object boolean number string function xml".split(" ")}).replace("}","\\}")+'}"'},{prefix:"instanceof",name:"instanceof",description:" - instanceof statement",template:"${object} instanceof ${type}"},
{prefix:"with",name:"with",description:" - with statement",template:"with (${object}) {\n\t${cursor}\n}"},{prefix:"function",name:"function",description:" - function declaration",template:"/**\n * @name ${name}\n * @param ${parameter}\n */\nfunction ${name} (${parameter}) {\n\t${cursor}\n}"},{prefix:"function",name:"function",description:" - function expression",template:"/**\n * @name ${name}\n * @function\n * @param ${parameter}\n */\n${name}: function(${parameter}) {\n\t${cursor}\n}"},{prefix:"define",
name:"define",description:" - define function call",template:"/* global define */\ndefine('${name}',[\n'${import}'\n], function(${importname}) {\n\t${cursor}\n});"},{prefix:"nls",name:"nls",description:" - non NLS string",template:"${cursor} //$NON-NLS-${0}$"},{prefix:"log",name:"log",description:" - console log",template:"console.log(${object});"},{prefix:"mongodb",name:"mongodb",description:" - Node.js require statement for MongoDB",template:"var ${name} \x3d require('mongodb');\n"},{prefix:"mongodb",
name:"mongodb client",description:" - create a new MongoDB client",template:"var MongoClient \x3d require('mongodb').MongoClient;\nvar Server \x3d require('mongodb').Server;\n${cursor}"},{prefix:"mongodb",name:"mongodb open",description:" - create a new MongoDB client and open a connection",template:"var MongoClient \x3d require('mongodb').MongoClient;\nvar Server \x3d require('mongodb').Server;\nvar ${client} \x3d new MongoClient(new Server(${host}, ${port}));\ntry {\n\t${client}.open(function(error, ${client}) {\n\t\tvar ${db} \x3d ${client}.db(${name});\n\t\t${cursor}\n\t});\n} finally {\n\t${client}.close();\n};"},
{prefix:"mongodb",name:"mongodb connect",description:" - connect to an existing MongoDB database",template:"var MongoClient \x3d require('mongodb').MongoClient;\nMongoClient.connect(${url}, function(error, db) {\n\t${cursor}\n});\n"},{prefix:"mongodb",name:"mongodb connect (Cloud Foundry)",description:" - connect to an existing MongoDB database using Cloud Foundry",template:"if (${process}.env.VCAP_SERVICES) {\n\tvar env \x3d JSON.parse(${process}.env.VCAP_SERVICES);\n\tvar mongo \x3d env['${mongo-version}'][0].credentials;\n} else {\n\tvar mongo \x3d {\n\t\tusername : 'username',\n\t\tpassword : 'password',\n\t\turl : 'mongodb://username:password@localhost:27017/database'\n\t};\n}\nvar MongoClient \x3d require('mongodb').MongoClient;\nMongoClient.connect(mongo.url, function(error, db) {\n\t${cursor}\n});\n"},
{prefix:"mongodb",name:"mongodb collection",description:" - create a MongoDB database collection",template:"${db}.collection(${id}, function(${error}, collection) {\n\t${cursor}\n});"},{prefix:"mongodb",name:"mongodb strict collection",description:" - create a MongoDB database strict collection",template:"${db}.collection(${id}, {strict:true}, function(${error}, collection) {\n\t${cursor}\n});"},{prefix:"redis",name:"redis",description:" - Node.js require statement for Redis",template:"var ${name} \x3d require('redis');\n"},
{prefix:"redis",name:"redis client",description:" - create a new Redis client",template:"var ${name} \x3d require('redis');\nvar ${client} \x3d ${name}.createClient(${port}, ${host}, ${options});\n"},{prefix:"redis",name:"redis connect",description:" - create a new Redis client and connect",template:"var ${name} \x3d require('redis');\nvar ${client} \x3d ${name}.createClient(${port}, ${host}, ${options});\ntry {\n\t${cursor}\n} finally {\n\t${client}.close();\n}\n"},{prefix:"redis",name:"redis set",
description:" - create a new Redis client set call",template:"client.set(${key}, ${value});\n"},{prefix:"redis",name:"redis get",description:" - create a new Redis client get call",template:"client.get(${key}, function(${error}, ${reply}) {\n\t${cursor}\n});\n"},{prefix:"redis",name:"redis on",description:" - create a new Redis client event handler",template:"client.on(${event}, function(${arg}) {\n\t${cursor}});\n"},{prefix:"pg",name:"postgres",description:" - Node.js require statement for Postgres DB",
template:"var pg \x3d require('pg');\n"},{prefix:"pg",name:"postgres client",description:" - create a new Postgres DB client",template:"var pg \x3d require('pg');\nvar url \x3d \"postgres://postgres:${port}@${host}/${database}\";\nvar ${client} \x3d new pg.Client(url);\n"},{prefix:"pg",name:"postgres connect",description:" - create a new Postgres DB client and connect",template:"var pg \x3d require('pg');\nvar url \x3d \"postgres://postgres:${port}@${host}/${database}\";\nvar ${client} \x3d new pg.Client(url);\n${client}.connect(function(error) {\n\t${cursor}\n});\n"},
{prefix:"pg",name:"postgres query",description:" - create a new Postgres DB query statement",template:"${client}.query(${sql}, function(error, result) {\n\t${cursor}\n});\n"},{prefix:"mysql",name:"mysql",description:" - Node.js require statement for MySQL DB",template:"var mysql \x3d require('mysql');\n"},{prefix:"mysql",name:"mysql connection",description:" - create a new MySQL DB connection",template:"var mysql \x3d require('mysql');\nvar ${connection} \x3d mysql.createConnection({\n\thost : ${host},\n\tuser : ${username},\n\tpassword : ${password}\n});\ntry {\n\t${connection}.connect();\n\t${cursor}\n} finally {\n\t${connection}.end();\n}"},
{prefix:"mysql",name:"mysql query",description:" - create a new MySQL DB query statement",template:"${connection}.query(${sql}, function(error, rows, fields) {\n\t${cursor}\n});\n"},{prefix:"express",name:"express",description:" - Node.js require statement for Express",template:"var ${name} \x3d require('express');"},{prefix:"express",name:"express app",description:" - create a new Express app",template:"var express \x3d require('express');\nvar ${app} \x3d express();\n${cursor}\napp.listen(${timeout});\n"},
{prefix:"express",name:"express configure",description:" - create an Express app configure statement",template:"app.configure(function() {\n\tapp.set(${id}, ${value});\n});"},{prefix:"express",name:"express specific configure",description:" - create a specific Express app configure statement",template:"app.configure(${name}, function() {\n\tapp.set(${id}, ${value});\n});"},{prefix:"express",name:"express app get",description:" - create a new Express app.get call",template:"var value \x3d app.get(${id}, function(request, result){\n\t${cursor}\n});\n"},
{prefix:"express",name:"express app set",description:" - create a new Express app set call",template:"app.set(${id}, ${value});\n"},{prefix:"express",name:"express app use",description:" - create a new Express app use statement",template:"app.use(${fnOrObject});\n"},{prefix:"express",name:"express app engine",description:" - create a new Express app engine statement",template:"app.engine(${fnOrObject});\n"},{prefix:"express",name:"express app param",description:" - create a new Express app param statement",
template:"app.param(${id}, ${value});\n"},{prefix:"express",name:"express app error use",description:" - create a new Express app error handling use statement",template:"app.use(function(error, request, result, next) {\n\tresult.send(${code}, ${message});\n});\n"},{prefix:"amqp",name:"amqp",description:" - Node.js require statement for AMQP framework",template:"var amqp \x3d require('amqp');\n"},{prefix:"amqp",name:"amqp connection",description:" - create a new AMQP connection ",template:"var amqp \x3d require('amqp');\nvar ${connection} \x3d amqp.createConnection({\n\thost: ${host},\n\tport: ${port},\n\tlogin: ${login},\n\tpassword: ${password}\n});\n"},
{prefix:"amqp",name:"amqp on",description:" - create a new AMQP connection on statement",template:"${connection}.on(${event}, function() {\n\t${cursor}\n});\n"},{prefix:"amqp",name:"amqp queue",description:" - create a new AMQP connection queue statement",template:"${connection}.queue(${id}, function(queue) {\n\tqueue.bind('#'); //catch all messages\n\tqueue.subscribe(function (message, headers, deliveryInfo) {\n\t\t// Receive messages\n\t});\n\t${cursor}\n});\n"},{prefix:"amqp",name:"amqp exchange",
description:" - create a new AMQP connection exchange",template:"var exchange \x3d ${connection}.exchange(${id}, {type: 'topic'}, function(exchange) {\n\t${cursor}\n});\n"}];e.prototype=new b.TemplateContentAssist(c.keywords,n);e.prototype.isValid=function(b,c,e,h){b=c.charAt(e-b.length-1);return!b||-1===":!@#$^\x26*.?\x3c\x3e".indexOf(b)};return{JSTemplateContentAssistProvider:e}});
define("orion/editor/stylers/application_json/syntax",["orion/editor/stylers/lib/syntax"],function(b){var c=["false","true"];b=b.grammars;b.push({id:"orion.json",contentTypes:["application/json"],patterns:[{include:"orion.lib#string_doubleQuote"},{include:"orion.lib#string_singleQuote"},{include:"orion.lib#brace_open"},{include:"orion.lib#brace_close"},{include:"orion.lib#bracket_open"},{include:"orion.lib#bracket_close"},{include:"orion.lib#parenthesis_open"},{include:"orion.lib#parenthesis_close"},
{include:"orion.lib#number_decimal"},{include:"orion.lib#number_hex"},{match:"\\b(?:"+c.join("|")+")\\b",name:"keyword.control.json"}]});return{id:b[b.length-1].id,grammars:b,keywords:c}});
define("orion/editor/stylers/application_schema_json/syntax",["orion/editor/stylers/application_json/syntax"],function(b){var c="additionalItems additionalProperties allOf anyOf default definitions dependencies description enum exclusiveMaximum exclusiveMinimum format id maximum maxItems maxLength maxProperties minimum minItems minLength minProperties multipleOf not oneOf patternProperties pattern properties required title type uniqueItems".split(" ");b=b.grammars;b.push({id:"orion.json.schema",contentTypes:["application/schema+json"],
patterns:[{include:"orion.json"},{match:"(?:\\$schema|(?:\\b(?:"+c.join("|")+")))\\b",name:"keyword.control.schema.json"}]});return{id:b[b.length-1].id,grammars:b,keywords:c}});
define("orion/editor/stylers/application_xml/syntax",["orion/editor/stylers/lib/syntax"],function(b){b=b.grammars;b.push({id:"orion.xml",contentTypes:["application/xml","application/xhtml+xml"],patterns:[{include:"#comment"},{include:"#doctype"},{include:"#xmlDeclaration"},{include:"#tag"},{include:"#ampersandEscape"}],repository:{ampersandEscape:{match:"\x26lt;|\x26gt;|\x26amp;",name:"constant.character"},comment:{begin:{match:"\x3c!--",literal:"\x3c!--"},end:{match:"--\x3e",literal:"--\x3e"},name:"comment.block.xml",
patterns:[{match:"(\\b)(TODO)(\\b)(((?!--\x3e).)*)",name:"meta.annotation.task.todo",captures:{2:{name:"keyword.other.documentation.task"},4:{name:"comment.line"}}}]},doctype:{begin:"\x3c!(?:doctype|DOCTYPE)",end:"\x3e",name:"meta.tag.doctype.xml",captures:{0:{name:"entity.name.tag.doctype.xml"}},patterns:[{include:"#comment"},{include:"orion.lib#string_doubleQuote"},{include:"orion.lib#string_singleQuote"}]},tag:{begin:"\x3c/?[A-Za-z0-9]+",end:"/?\x3e",captures:{0:{name:"entity.name.tag.xml"}},name:"meta.tag.xml",
patterns:[{include:"#comment"},{include:"orion.lib#string_doubleQuote"},{include:"orion.lib#string_singleQuote"}]},xmlDeclaration:{begin:"\x3c\\?xml",end:"\\?\x3e",captures:{0:{name:"entity.name.tag.declaration.xml"}},patterns:[{include:"#comment"},{include:"orion.lib#string_doubleQuote"},{include:"orion.lib#string_singleQuote"}],name:"meta.tag.declaration.xml"}}});return{id:b[b.length-1].id,grammars:b,keywords:[]}});
define("orion/editor/stylers/application_x-ejs/syntax",["orion/editor/stylers/lib/syntax","orion/editor/stylers/application_javascript/syntax","orion/editor/stylers/application_xml/syntax"],function(b,c,e){b=b.grammars.concat(c.grammars).concat(e.grammars);b.push({id:"orion.ejs",contentTypes:["application/x-ejs"],patterns:[{include:"orion.xml#comment"},{include:"orion.xml#doctype"},{begin:"\x3c%\x3d?(?:\\s|$)",end:"%\x3e",captures:{0:{name:"entity.name.declaration.js"}},contentName:"source.js.embedded.ejs",
patterns:[{include:"orion.js"}]},{include:"orion.xml#tag"},{include:"orion.xml#ampersandEscape"}]});return{id:b[b.length-1].id,grammars:b,keywords:[]}});
define("built-javascriptPlugin.js","javascript/astManager javascript/contentAssist/indexFiles/mongodbIndex javascript/contentAssist/indexFiles/mysqlIndex javascript/contentAssist/indexFiles/postgresIndex javascript/contentAssist/indexFiles/redisIndex javascript/contentAssist/indexFiles/expressIndex javascript/contentAssist/indexFiles/amqpIndex javascript/contentAssist/contentAssist javascript/contentAssist/indexer javascript/validator javascript/occurrences javascript/outliner orion/plugin orion/editor/jsTemplateContentAssist orion/editor/stylers/application_javascript/syntax orion/editor/stylers/application_json/syntax orion/editor/stylers/application_schema_json/syntax orion/editor/stylers/application_x-ejs/syntax".split(" "),function(b,
c,e,n,f,d,p,h,r,u,a,g,k,w,s,z,J,L){var l=new k({name:"Orion JavaScript Tool Support",version:"1.0",description:"This plugin provides JavaScript tools support for Orion, like editing, search, navigation, validation, and code completion."});l.registerService("orion.core.contenttype",{},{contentTypes:[{id:"application/javascript","extends":"text/plain",name:"JavaScript",extension:["js"],imageClass:"file-sprite-javascript modelDecorationSprite"},{id:"application/json","extends":"text/plain",name:"JSON",
extension:["json"],imageClass:"file-sprite-javascript modelDecorationSprite"},{id:"application/x-ejs","extends":"text/plain",name:"Embedded Javascript",extension:["ejs"],imageClass:"file-sprite-javascript modelDecorationSprite"}]});b=new b.ASTManager;l.registerService("orion.edit.model",{onModelChanging:b.updated.bind(b)},{contentType:["application/javascript"],types:["ModelChanging"]});l.registerService("orion.edit.outliner",new g.JSOutliner(b),{contentType:["application/javascript"],nls:"javascript/nls/messages",
nameKey:"sourceOutline",titleKey:"sourceOutlineTitle",id:"orion.javascript.outliner.source"});l.registerService("orion.edit.occurrences",new a.JavaScriptOccurrences(b),{contentType:["application/javascript","text/html"]});l.registerService("orion.edit.contentassist",new w.JSTemplateContentAssistProvider,{nls:"javascript/nls/messages",name:"contentAssist",contentType:["application/javascript"]});l.registerService("orion.edit.contentassist",new h.JSContentAssist(b,new r),{contentType:["application/javascript"],
nls:"javascript/nls/messages",name:"contentAssist",id:"orion.edit.contentassist.javascript",charTriggers:"[.]",excludedStyles:"(comment.*|string.*)"});l.registerService(["orion.edit.validator","orion.cm.managedservice"],new u(b),{contentType:["application/javascript","text/html"],pid:"eslint.config"});h=[{labelKey:"ignore",value:0},{labelKey:"warning",value:1},{labelKey:"error",value:2}];l.registerService("orion.core.setting",{},{settings:[{pid:"eslint.config",nls:"javascript/nls/messages",nameKey:"eslintValidator",
tags:["validation","javascript","js","eslint"],category:"validation",properties:[{id:"validate_eqeqeq",nameKey:"eqeqeq",type:"number",defaultValue:1,options:h},{id:"validate_debugger",nameKey:"noDebugger",type:"number",defaultValue:1,options:h},{id:"validate_eval",nameKey:"noEval",type:"number",defaultValue:0,options:h},{id:"validate_dupe_obj_keys",nameKey:"noDupeKeys",type:"number",defaultValue:2,options:h},{id:"validate_use_isnan",nameKey:"useIsNaN",type:"number",defaultValue:2,options:h},{id:"validate_func_decl",
nameKey:"docFuncDecl",type:"number",defaultValue:0,options:h},{id:"validate_func_expr",nameKey:"docFuncExpr",type:"number",defaultValue:0,options:h},{id:"validate_use_before_define",nameKey:"useBeforeDefine",type:"number",defaultValue:1,options:h},{id:"validate_new_parens",nameKey:"newParens",type:"number",defaultValue:2,options:h},{id:"validate_missing_semi",nameKey:"missingSemi",type:"number",defaultValue:1,options:h},{id:"validate_curly",nameKey:"curly",type:"number",defaultValue:0,options:h},
{id:"validate_no_undef",nameKey:"undefMember",type:"number",defaultValue:2,options:h},{id:"validate_unnecessary_semi",nameKey:"unnecessarySemis",type:"number",defaultValue:1,options:h},{id:"validate_no_unused_vars",nameKey:"unusedVars",type:"number",defaultValue:1,options:h},{id:"validate_no_redeclare",nameKey:"varRedecl",type:"number",defaultValue:1,options:h}]}]});s.grammars.concat(z.grammars).concat(J.grammars).concat(L.grammars).forEach(function(a){l.registerService("orion.edit.highlighter",{},
a)}.bind(this));l.registerService("orion.core.typedef",{},{id:"node.redis",type:"tern",defs:f});l.registerService("orion.core.typedef",{},{id:"node.mysql",type:"tern",defs:e});l.registerService("orion.core.typedef",{},{id:"node.postgres",type:"tern",defs:n});l.registerService("orion.core.typedef",{},{id:"node.mongodb",type:"tern",defs:c});l.registerService("orion.core.typedef",{},{id:"node.express",type:"tern",defs:d});l.registerService("orion.core.typedef",{},{id:"node.amqp",type:"tern",defs:p});
l.connect()});
//@ sourceMappingURL=built-javascriptPlugin.js.map