/*

 Copyright (c) 2012 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors: IBM Corporation - initial API and implementation

 Copyright (c) 2013 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors: IBM Corporation - initial API and implementation

 Copyright (c) 2013 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors: IBM Corporation - initial API and implementation

 Copyright (c) 2013, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
     IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
     IBM Corporation - Initial API and implementation

 Copyright (c) 2014 IBM Corporation.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
     IBM Corporation - Initial API and implementation

 Copyright (c) 2014 IBM Corporation.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
     IBM Corporation - Initial API and implementation

 Copyright (c) 2014 IBM Corporation.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
     IBM Corporation - Initial API and implementation

 Copyright (c) 2014 IBM Corporation.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
     IBM Corporation - Initial API and implementation

 Copyright (c) 2014 IBM Corporation.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
     IBM Corporation - Initial API and implementation

 Copyright (c) 2012, 2014 VMware, Inc. and others.
 All Rights Reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
     Andy Clement (VMware) - initial API and implementation
     Andrew Eisenberg (VMware) - implemented visitor pattern
     IBM Corporation - bug fixes / improvements

 Copyright (c) 2012, 2013 VMware, Inc. and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
     Andrew Eisenberg (VMware) - initial API and implementation
     IBM Corporation - Various improvements

 Copyright (c) 2013 IBM Corporation.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
     IBM Corporation - Initial API and implementation

 Copyright (c) 2013 IBM Corporation.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
     IBM Corporation - Initial API and implementation

 Copyright (c) 2013 IBM Corporation.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
     IBM Corporation - Initial API and implementation

 Copyright (c) 2012, 2014 VMware, Inc. and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
  Andy Clement (VMware) - initial API and implementation
  Andrew Eisenberg (VMware) - implemented visitor pattern
   IBM Corporation - Various improvements

 Copyright (c) 2012, 2014 VMware, Inc. and others.
 All Rights Reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
     Andrew Eisenberg (VMware) - initial API and implementation
     IBM Corporation - bug fixes / improvements

 Copyright (c) 2012, 2014 VMware, Inc. and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
  Andy Clement (VMware) - initial API and implementation
  Andrew Eisenberg (VMware) - implemented visitor pattern
   IBM Corporation - Various improvements

 Copyright (c) 2010, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors: IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors: IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors: IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
     IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
     IBM Corporation - initial API and implementation

 Copyright (c) 2012, 2014 VMware, Inc. and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
  Andy Clement (VMware) - initial API and implementation
  Andrew Eisenberg (VMware) - implemented visitor pattern
   IBM Corporation - Various improvements

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2013, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2013, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2013, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2013 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2013, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2013, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2012 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
     IBM Corporation - initial API and implementation

 Copyright (c) 2013 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
     IBM Corporation - initial API and implementation

 Copyright (c) 2013, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
     IBM Corporation - initial API and implementation

 Copyright (c) 2013, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
     IBM Corporation - initial API and implementation

 Copyright (c) 2013, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
     IBM Corporation - initial API and implementation

 Copyright (c) 2013, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
     IBM Corporation - initial API and implementation

 Copyright (c) 2013, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
     IBM Corporation - initial API and implementation

 Copyright (c) 2011, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
     IBM Corporation - initial API and implementation

 Copyright (c) 2012 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors: IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
     IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors: IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors: IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors: IBM Corporation - initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors: IBM Corporation - initial API and implementation

 Copyright (c) 2013, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
     IBM Corporation - initial API and implementation

 Copyright (c) 2013, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
     IBM Coporation - Initial API and implementation

 Copyright (c) 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made
 available under the terms of the Eclipse Public License v1.0
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html).

 Contributors:
  IBM Corporation - initial API and implementation

 Copyright (c) 2013, 2014 IBM Corporation and others.
 All rights reserved. This program and the accompanying materials are made 
 available under the terms of the Eclipse Public License v1.0 
 (http://www.eclipse.org/legal/epl-v10.html), and the Eclipse Distribution 
 License v1.0 (http://www.eclipse.org/org/documents/edl-v10.html). 

 Contributors:
  IBM Corporation - initial API and implementation
*/
(function(b,c){"function"===typeof define&&define.amd?define("esprima",["exports"],c):"undefined"!==typeof exports?c(exports):c(b.esprima={})})(this,function(b){function c(a,b){if(!a)throw Error("ASSERT: "+b);}function h(a){return 48<=a&&57>=a}function f(a){return 0<="01234567".indexOf(a)}function g(a){return 10===a||13===a||8232===a||8233===a}function d(a){return 36===a||95===a||65<=a&&90>=a||97<=a&&122>=a||92===a||128<=a&&oa.NonAsciiIdentifierStart.test(String.fromCharCode(a))}function k(a){return 36===
a||95===a||65<=a&&90>=a||97<=a&&122>=a||48<=a&&57>=a||92===a||128<=a&&oa.NonAsciiIdentifierPart.test(String.fromCharCode(a))}function m(a){switch(a){case "implements":case "interface":case "package":case "private":case "protected":case "public":case "static":case "yield":case "let":return!0;default:return!1}}function p(a){return"eval"===a||"arguments"===a}function u(a){if(U&&m(a))return!0;switch(a.length){case 2:return"if"===a||"in"===a||"do"===a;case 3:return"var"===a||"for"===a||"new"===a||"try"===
a||"let"===a;case 4:return"this"===a||"else"===a||"case"===a||"void"===a||"with"===a||"enum"===a;case 5:return"while"===a||"break"===a||"catch"===a||"throw"===a||"const"===a||"yield"===a||"class"===a||"super"===a;case 6:return"return"===a||"typeof"===a||"delete"===a||"switch"===a||"export"===a||"import"===a;case 7:return"default"===a||"finally"===a||"extends"===a;case 8:return"function"===a||"continue"===a||"debugger"===a;case 10:return"instanceof"===a;default:return!1}}function a(a,b,d,e,f){c("number"===
typeof d,"Comment must have valid position");I.lastCommentStart>=d||(I.lastCommentStart=d,a={type:a,value:b},v.range&&(a.range=[d,e]),v.loc&&(a.loc=f),v.comments.push(a),v.attachComment&&(d={comment:a,leading:null,trailing:null,range:[d,e]},v.pendingComments.push(d)))}function l(){var b,d,c,e;b=n-2;for(d={start:{line:O,column:n-Q-2}};n<T;)if(c=y.charCodeAt(n),++n,g(c)){v.comments&&(e=y.slice(b+2,n-1),d.end={line:O,column:n-Q-1},a("Line",e,b,n-1,d));13===c&&10===y.charCodeAt(n)&&++n;++O;Q=n;return}v.comments&&
(e=y.slice(b+2,n),d.end={line:O,column:n-Q},a("Line",e,b,n,d))}function e(){var b,d;for(d=0===n;n<T;)if(b=y.charCodeAt(n),32===b||9===b||11===b||12===b||160===b||5760<=b&&0<=[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(b))++n;else if(g(b))++n,13===b&&10===y.charCodeAt(n)&&++n,++O,Q=n,d=!0;else if(47===b)if(b=y.charCodeAt(n+1),47===b)++n,++n,l(),d=!0;else if(42===b){++n;++n;a:{var c=b=void 0,e=void 0,e=void 0;v.comments&&(b=n-2,c={start:{line:O,column:n-
Q-2}});for(;n<T;)if(e=y.charCodeAt(n),g(e))13===e&&10===y.charCodeAt(n+1)&&++n,++O,++n,Q=n,n>=T&&w({},D.UnexpectedToken,"ILLEGAL");else{if(42===e&&47===y.charCodeAt(n+1)){++n;++n;v.comments&&(e=y.slice(b+2,n-2),c.end={line:O,column:n-Q},a("Block",e,b,n,c));break a}++n}w({},D.UnexpectedToken,"ILLEGAL")}}else break;else if(d&&45===b)if(45===y.charCodeAt(n+1)&&62===y.charCodeAt(n+2))n+=3,l();else break;else if(60===b)if("!--"===y.slice(n+1,n+4))++n,++n,++n,++n,l();else break;else break}function z(a){var b,
d,c=0;b="u"===a?4:2;for(a=0;a<b;++a)if(n<T&&0<="0123456789abcdefABCDEF".indexOf(y[n]))d=y[n++],c=16*c+"0123456789abcdef".indexOf(d.toLowerCase());else return"";return String.fromCharCode(c)}function s(){var a,b;a=y.charCodeAt(n++);b=String.fromCharCode(a);92===a&&(117!==y.charCodeAt(n)&&w({},D.UnexpectedToken,"ILLEGAL"),++n,a=z("u"),(!a||"\\"===a||!d(a.charCodeAt(0)))&&w({},D.UnexpectedToken,"ILLEGAL"),b=a);for(;n<T;){a=y.charCodeAt(n);if(!k(a))break;++n;92===a?(117!==y.charCodeAt(n)&&w({},D.UnexpectedToken,
"ILLEGAL"),++n,a=z("u"),(!a||"\\"===a||!k(a.charCodeAt(0)))&&w({},D.UnexpectedToken,"ILLEGAL"),b+=a):b+=String.fromCharCode(a)}return b}function x(){var a=n,b=y.charCodeAt(n),d,c=y[n],e;switch(b){case 46:case 40:case 41:case 59:case 44:case 123:case 125:case 91:case 93:case 58:case 63:case 126:return++n,v.tokenize&&(40===b?v.openParenToken=v.tokens.length:123===b&&(v.openCurlyToken=v.tokens.length)),{type:B.Punctuator,value:String.fromCharCode(b),lineNumber:O,lineStart:Q,range:[a,n]};default:if(d=
y.charCodeAt(n+1),61===d)switch(b){case 37:case 38:case 42:case 43:case 45:case 47:case 60:case 62:case 94:case 124:return n+=2,{type:B.Punctuator,value:String.fromCharCode(b)+String.fromCharCode(d),lineNumber:O,lineStart:Q,range:[a,n]};case 33:case 61:return n+=2,61===y.charCodeAt(n)&&++n,{type:B.Punctuator,value:y.slice(a,n),lineNumber:O,lineStart:Q,range:[a,n]}}}b=y[n+1];d=y[n+2];e=y[n+3];if("\x3e"===c&&("\x3e"===b&&"\x3e"===d)&&"\x3d"===e)return n+=4,{type:B.Punctuator,value:"\x3e\x3e\x3e\x3d",
lineNumber:O,lineStart:Q,range:[a,n]};if("\x3e"===c&&"\x3e"===b&&"\x3e"===d)return n+=3,{type:B.Punctuator,value:"\x3e\x3e\x3e",lineNumber:O,lineStart:Q,range:[a,n]};if("\x3c"===c&&"\x3c"===b&&"\x3d"===d)return n+=3,{type:B.Punctuator,value:"\x3c\x3c\x3d",lineNumber:O,lineStart:Q,range:[a,n]};if("\x3e"===c&&"\x3e"===b&&"\x3d"===d)return n+=3,{type:B.Punctuator,value:"\x3e\x3e\x3d",lineNumber:O,lineStart:Q,range:[a,n]};if(c===b&&0<="+-\x3c\x3e\x26|".indexOf(c))return n+=2,{type:B.Punctuator,value:c+
b,lineNumber:O,lineStart:Q,range:[a,n]};if(0<="\x3c\x3e\x3d!+-*%\x26|^/".indexOf(c))return++n,{type:B.Punctuator,value:c,lineNumber:O,lineStart:Q,range:[a,n]};w({},D.UnexpectedToken,"ILLEGAL")}function M(){var a,b,e;e=y[n];c(h(e.charCodeAt(0))||"."===e,"Numeric literal must start with a decimal digit or a decimal point");b=n;a="";if("."!==e){a=y[n++];e=y[n];if("0"===a){if("x"===e||"X"===e){++n;for(a="";n<T&&0<="0123456789abcdefABCDEF".indexOf(y[n]);)a+=y[n++];0===a.length&&w({},D.UnexpectedToken,
"ILLEGAL");d(y.charCodeAt(n))&&w({},D.UnexpectedToken,"ILLEGAL");return{type:B.NumericLiteral,value:parseInt("0x"+a,16),lineNumber:O,lineStart:Q,range:[b,n]}}if(f(e)){for(a="0"+y[n++];n<T&&f(y[n]);)a+=y[n++];(d(y.charCodeAt(n))||h(y.charCodeAt(n)))&&w({},D.UnexpectedToken,"ILLEGAL");return{type:B.NumericLiteral,value:parseInt(a,8),octal:!0,lineNumber:O,lineStart:Q,range:[b,n]}}e&&h(e.charCodeAt(0))&&w({},D.UnexpectedToken,"ILLEGAL")}for(;h(y.charCodeAt(n));)a+=y[n++];e=y[n]}if("."===e){for(a+=y[n++];h(y.charCodeAt(n));)a+=
y[n++];e=y[n]}if("e"===e||"E"===e){a+=y[n++];e=y[n];if("+"===e||"-"===e)a+=y[n++];if(h(y.charCodeAt(n)))for(;h(y.charCodeAt(n));)a+=y[n++];else w({},D.UnexpectedToken,"ILLEGAL")}d(y.charCodeAt(n))&&w({},D.UnexpectedToken,"ILLEGAL");return{type:B.NumericLiteral,value:parseFloat(a),lineNumber:O,lineStart:Q,range:[b,n]}}function J(){var a,b,d,f,q,l;f=!1;var M;q=!1;N=null;e();d=n;b=y[n];c("/"===b,"Regular expression literal must start with a slash");for(a=y[n++];n<T;)if(b=y[n++],a+=b,"\\"===b)b=y[n++],
g(b.charCodeAt(0))&&w({},D.UnterminatedRegExp),a+=b;else if(g(b.charCodeAt(0)))w({},D.UnterminatedRegExp);else if(f)"]"===b&&(f=!1);else if("/"===b){q=!0;break}else"["===b&&(f=!0);q||w({},D.UnterminatedRegExp);f=a.substr(1,a.length-2);for(q="";n<T;){b=y[n];if(!k(b.charCodeAt(0)))break;++n;if("\\"===b&&n<T)if(b=y[n],"u"===b)if(++n,M=n,b=z("u")){q+=b;for(a+="\\u";M<n;++M)a+=y[M]}else n=M,q+="u",a+="\\u";else a+="\\";else q+=b,a+=b}try{l=RegExp(f,q)}catch(A){w({},D.InvalidRegExp)}return v.tokenize?{type:B.RegularExpression,
value:l,lineNumber:O,lineStart:Q,range:[d,n]}:{literal:a,value:l,range:[d,n]}}function A(){var a,b,d,c;e();a=n;b={start:{line:O,column:n-Q}};d=J();b.end={line:O,column:n-Q};v.tokenize||(0<v.tokens.length&&(c=v.tokens[v.tokens.length-1],c.range[0]===a&&"Punctuator"===c.type&&("/"===c.value||"/\x3d"===c.value)&&v.tokens.pop()),v.tokens.push({type:"RegularExpression",value:d.literal,range:[a,n],loc:b}));return d}function q(){var a;a=v.tokens[v.tokens.length-1];if(!a)return A();if("Punctuator"===a.type){if(")"===
a.value)return(a=v.tokens[v.openParenToken-1])&&"Keyword"===a.type&&("if"===a.value||"while"===a.value||"for"===a.value||"with"===a.value)?A():x();if("}"===a.value){if(v.tokens[v.openCurlyToken-3]&&"Keyword"===v.tokens[v.openCurlyToken-3].type){if(a=v.tokens[v.openCurlyToken-4],!a)return x()}else if(v.tokens[v.openCurlyToken-4]&&"Keyword"===v.tokens[v.openCurlyToken-4].type){if(a=v.tokens[v.openCurlyToken-5],!a)return A()}else return x();if(0<=ua.indexOf(a.value))return x()}return A()}return"Keyword"===
a.type?A():x()}function ba(){var a;e();if(n>=T)return{type:B.EOF,lineNumber:O,lineStart:Q,range:[n,n]};a=y.charCodeAt(n);if(40===a||41===a||58===a)return x();if(39===a||34===a){a="";var b,l,A,J,m,p=!1;b=y[n];c("'"===b||'"'===b,"String literal must starts with a quote");l=n;for(++n;n<T;)if(A=y[n++],A===b){b="";break}else if("\\"===A)if(A=y[n++],!A||!g(A.charCodeAt(0)))switch(A){case "n":a+="\n";break;case "r":a+="\r";break;case "t":a+="\t";break;case "u":case "x":m=n;(J=z(A))?a+=J:(n=m,a+=A);break;
case "b":a+="\b";break;case "f":a+="\f";break;case "v":a+="\x0B";break;default:f(A)?(J="01234567".indexOf(A),0!==J&&(p=!0),n<T&&f(y[n])&&(p=!0,J=8*J+"01234567".indexOf(y[n++]),0<="0123".indexOf(A)&&(n<T&&f(y[n]))&&(J=8*J+"01234567".indexOf(y[n++]))),a+=String.fromCharCode(J)):a+=A}else++O,"\r"===A&&"\n"===y[n]&&++n;else if(g(A.charCodeAt(0)))break;else a+=A;""!==b&&K({},D.UnexpectedToken,"ILLEGAL");return{type:B.StringLiteral,value:a,octal:p,lineNumber:O,lineStart:Q,range:[l,n]}}if(d(a)){a=n;if(92===
y.charCodeAt(n))b=s();else a:{for(b=n++;n<T;){l=y.charCodeAt(n);if(92===l){n=b;b=s();break a}if(k(l))++n;else break}b=y.slice(b,n)}return{type:1===b.length?B.Identifier:u(b)?B.Keyword:"null"===b?B.NullLiteral:"true"===b||"false"===b?B.BooleanLiteral:B.Identifier,value:b,lineNumber:O,lineStart:Q,range:[a,n]}}return 46===a?h(y.charCodeAt(n+1))?M():x():h(a)?M():v.tokenize&&47===a?q():x()}function V(){var a,b,d,c;e();a={start:{line:O,column:n-Q}};b=ba();a.end={line:O,column:n-Q};b.type!==B.EOF&&(d=[b.range[0],
b.range[1]],c=y.slice(b.range[0],b.range[1]),v.tokens.push({type:da[b.type],value:c,range:d,loc:a}));return b}function F(){var a;a=N;n=a.range[1];O=a.lineNumber;Q=a.lineStart;N="undefined"!==typeof v.tokens?V():ba();n=a.range[1];O=a.lineNumber;Q=a.lineStart;return a}function C(){var a,b,d;a=n;b=O;d=Q;N="undefined"!==typeof v.tokens?V():ba();n=a;O=b;Q=d}function R(){var a,b,d,c;a=n;b=O;d=Q;e();c=O!==b;n=a;O=b;Q=d;return c}function w(a,b){var d,e=Array.prototype.slice.call(arguments,2),f=b.replace(/%(\d)/g,
function(a,b){c(b<e.length,"Message reference must be in range");return e[b]});"number"===typeof a.lineNumber?(d=Error("Line "+a.lineNumber+": "+f),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+": "+f),d.index=n,d.lineNumber=O,d.column=n-Q+1);d.description=f;throw d;}function K(){try{w.apply(null,arguments)}catch(a){if(v.errors)ia(a);else throw a;}}function W(a){a.type===B.EOF&&w(a,D.UnexpectedEOS);a.type===B.NumericLiteral&&
w(a,D.UnexpectedNumber);a.type===B.StringLiteral&&w(a,D.UnexpectedString);a.type===B.Identifier&&w(a,D.UnexpectedIdentifier);if(a.type===B.Keyword){var b;a:switch(a.value){case "class":case "enum":case "export":case "extends":case "import":case "super":b=!0;break a;default:b=!1}b?w(a,D.UnexpectedReserved):U&&m(a.value)&&K(a,D.StrictReservedWord);w(a,D.UnexpectedToken,a.value)}w(a,D.UnexpectedToken,a.value)}function P(a){var b=F();(b.type!==B.Punctuator||b.value!==a)&&W(b)}function Z(a){if(v.errors){var b=
N;b.type===B.EOF?K(b,D.UnexpectedEOS):b.type!==B.Punctuator&&b.value!==a?(v.tokens&&0<v.tokens.length&&(b=v.tokens[v.tokens.length-1]),K(b,D.MissingToken,a)):F()}else P(a)}function G(a){var b=F();(b.type!==B.Keyword||b.value!==a)&&W(b)}function r(a){return N.type===B.Punctuator&&N.value===a}function H(a){return N.type===B.Keyword&&N.value===a}function $(){var a;if(59===y.charCodeAt(n))F();else if(a=O,e(),O===a)if(r(";"))F();else if(N.type!==B.EOF&&!r("}")){a=N;if(v.errors){for(var b=n;-1<b&&";"!==
y[b]&&"\n"!==y[b];)b--;if(!(b<=v.statementStart)){var d=!1;v.lastRewindLocation?d=!0:v.lastRewindLocation!==b&&(d=!0);d&&(n=b,C(),v.lastRewindLocation=n)}}W(a)}}function S(a){return a.type===L.Identifier||a.type===L.MemberExpression}function X(a,b){var d,c;d=U;e();t.markStart();c=pa();b&&(U&&p(a[0].name))&&K(b,D.StrictParamName);U=d;return t.markEnd(t.createFunctionExpression(null,a,[],c))}function E(){var a;e();t.markStart();a=F();return a.type===B.StringLiteral||a.type===B.NumericLiteral?(U&&a.octal&&
K(a,D.StrictOctalLiteral),t.markEnd(t.createLiteral(a))):t.markEnd(t.createIdentifier(a.value))}function aa(){var a,b,d;a=N;e();t.markStart();if(a.type===B.Identifier)return b=E(),"get"===a.value&&!r(":")?(b=E(),P("("),P(")"),a=X([]),t.markEnd(t.createProperty("get",b,a))):"set"===a.value&&!r(":")?(b=E(),P("("),a=N,a.type!==B.Identifier?(P(")"),K(a,D.UnexpectedToken,a.value),a=X([])):(d=[fa()],P(")"),a=X(d,a)),t.markEnd(t.createProperty("set",b,a))):va(a,b);if(a.type===B.EOF||a.type===B.Punctuator)W(a);
else return va(a,E())}function va(a,b){if(v.errors){var d=ba();if(":"===d.value){d=null;try{F(),d=ea()}catch(c){return d=v.tokens[v.tokens.length-1],K(d,D.UnexpectedToken,d.value),t.markEndIf(b),null}return t.markEnd(t.createProperty("init",b,d))}if(d.type===B.Punctuator&&"}"===d.value)return K(a,D.UnexpectedToken,a.value),t.markEndIf(b),null;K(a,D.UnexpectedToken,a.value);if(d.type===B.Identifier||d.type===B.StringLiteral)return t.markEndIf(b),null;for(;d.type!==B.EOF;){if(d.type===B.Punctuator&&
(","===d.value||"}"===d.value))return t.markEndIf(b),null;F();d=ba()}t.markEndIf(b);return null}P(":");return t.markEnd(t.createProperty("init",b,ea()))}function wa(){var a,b,d;if(r("("))return P("("),b=Y(),P(")"),b;a=N.type;t.markStart();if(a===B.Identifier)d=t.createIdentifier(F().value);else if(a===B.StringLiteral||a===B.NumericLiteral)U&&N.octal&&K(N,D.StrictOctalLiteral),d=t.createLiteral(F());else if(a===B.Keyword)if(H("this"))F(),d=t.createThisExpression();else{if(H("function")){a=null;var c,
e,f=[],q;t.markStart();G("function");r("(")||(d=N,a=fa(),U?p(d.value)&&K(d,D.StrictFunctionName):p(d.value)?(b=d,c=D.StrictFunctionName):m(d.value)&&(b=d,c=D.StrictReservedWord));e=xa(b);f=e.params;d=e.stricted;b=e.firstRestricted;e.message&&(c=e.message);q=U;e=pa();U&&b&&w(b,c);U&&d&&K(d,c);U=q;d=t.markEnd(t.createFunctionExpression(a,f,[],e))}}else if(a===B.BooleanLiteral)b=F(),b.value="true"===b.value,d=t.createLiteral(b);else if(a===B.NullLiteral)b=F(),b.value=null,d=t.createLiteral(b);else if(r("[")){b=
[];for(P("[");!r("]");)r(",")?(F(),b.push(null)):(b.push(ea()),r("]")||P(","));P("]");d=t.createArrayExpression(b)}else if(r("{")){b=[];d={};f=String;for(P("{");!r("}");)if(c=aa())e=c.key.type===L.Identifier?c.key.name:f(c.key.value),a="init"===c.kind?ga.Data:"get"===c.kind?ga.Get:ga.Set,e="$"+e,Object.prototype.hasOwnProperty.call(d,e)?(d[e]===ga.Data?U&&a===ga.Data?K({},D.StrictDuplicateProperty):a!==ga.Data&&K({},D.AccessorDataProperty):a===ga.Data?K({},D.AccessorDataProperty):d[e]&a&&K({},D.AccessorGetSet),
d[e]|=a):d[e]=a,b.push(c),r("}")||Z(",");P("}");d=t.createObjectExpression(b)}else if(r("/")||r("/\x3d"))d="undefined"!==typeof v.tokens?t.createLiteral(A()):t.createLiteral(J()),C();return d?t.markEnd(d):W(F())}function ya(){var a=[];P("(");if(!r(")"))for(;n<T;){a.push(ea());if(r(")"))break;Z(",")}try{P(")")}catch(b){if(v.errors)ia(b);else throw b;}return a}function ka(){var a;N.lineNumber!==O&&(n=N.lineStart);t.markStart();a=F();if(!(a.type===B.Identifier||a.type===B.Keyword||a.type===B.BooleanLiteral||
a.type===B.NullLiteral)){if(v.errors&&a.value&&a.type===B.Punctuator){for(var b=v.tokens.length-1;0<b;){if(v.tokens[b].range[0]===a.range[0]){v.tokens.pop();break}b--;v.tokens.pop()}b=v.tokens[b-1];b.type===da[B.Punctuator]&&"."===b.value&&(v.tokens.pop(),n=b.range[0]+1,C())}W(a)}return t.markEnd(t.createIdentifier(a.value))}function za(){P(".");return ka()}function Aa(){var a;P("[");a=Y();P("]");return a}function Ba(){var a,b;t.markStart();G("new");var d;a=la();d=I.allowIn;b=H("new")?Ba():wa();for(I.allowIn=
d;r(".")||r("[");)r("[")?(d=Aa(),b=t.createMemberExpression("[",b,d)):(d=za(),b=t.createMemberExpression(".",b,d)),a&&(a.end(),a.apply(b));a=b;b=r("(")?ya():[];return t.markEnd(t.createNewExpression(a,b))}function Ca(){var a,b;t.markStart();var d;a=la();d=I.allowIn;I.allowIn=!0;b=H("new")?Ba():wa();for(I.allowIn=d;r(".")||r("[")||r("(");)r("(")?(d=ya(),b=t.createCallExpression(b,d)):r("[")?(d=Aa(),b=t.createMemberExpression("[",b,d)):(d=za(),b=t.createMemberExpression(".",b,d)),a&&(a.end(),a.apply(b));
a=b;if(N.type===B.Punctuator&&(r("++")||r("--"))&&!R())U&&(a.type===L.Identifier&&p(a.name))&&K({},D.StrictLHSPostfix),S(a)||K({},D.InvalidLHSInAssignment),b=F(),a=t.createPostfixExpression(b.value,a);return t.markEndIf(a)}function ja(){var a,b;t.markStart();N.type!==B.Punctuator&&N.type!==B.Keyword?b=Ca():r("++")||r("--")?(a=F(),b=ja(),U&&(b.type===L.Identifier&&p(b.name))&&K({},D.StrictLHSPrefix),S(b)||K({},D.InvalidLHSInAssignment),b=t.createUnaryExpression(a.value,b)):r("+")||r("-")||r("~")||
r("!")?(a=F(),b=ja(),b=t.createUnaryExpression(a.value,b)):H("delete")||H("void")||H("typeof")?(a=F(),b=ja(),b=t.createUnaryExpression(a.value,b),U&&("delete"===b.operator&&b.argument.type===L.Identifier)&&K({},D.StrictDelete)):b=Ca();return t.markEndIf(b)}function Da(a,b){var d=0;if(a.type!==B.Punctuator&&a.type!==B.Keyword)return 0;switch(a.value){case "||":d=1;break;case "\x26\x26":d=2;break;case "|":d=3;break;case "^":d=4;break;case "\x26":d=5;break;case "\x3d\x3d":case "!\x3d":case "\x3d\x3d\x3d":case "!\x3d\x3d":d=
6;break;case "\x3c":case "\x3e":case "\x3c\x3d":case "\x3e\x3d":case "instanceof":d=7;break;case "in":d=b?7:0;break;case "\x3c\x3c":case "\x3e\x3e":case "\x3e\x3e\x3e":d=8;break;case "+":case "-":d=9;break;case "*":case "/":case "%":d=11}return d}function ea(){var a,b,d;a=N;t.markStart();var c;t.markStart();var e,f,q;e=la();f=ja();q=N;c=Da(q,I.allowIn);if(0!==c){q.prec=c;F();b=[e,la()];e=ja();for(d=[f,q,e];0<(c=Da(N,I.allowIn));){for(;2<d.length&&c<=d[d.length-2].prec;){e=d.pop();q=d.pop().value;
f=d.pop();f=t.createBinaryExpression(q,f,e);b.pop();if(e=b.pop())e.end(),e.apply(f);d.push(f);b.push(e)}q=F();q.prec=c;d.push(q);b.push(la());f=ja();d.push(f)}c=d.length-1;f=d[c];for(b.pop();1<c;)if(f=t.createBinaryExpression(d[c-1].value,d[c-2],f),c-=2,e=b.pop())e.end(),e.apply(f)}b=f;r("?")?(F(),c=I.allowIn,I.allowIn=!0,d=ea(),I.allowIn=c,P(":"),c=ea(),b=t.markEnd(t.createConditionalExpression(b,d,c))):t.markEnd({});d=b;N.type!==B.Punctuator?c=!1:(c=N.value,c="\x3d"===c||"*\x3d"===c||"/\x3d"===
c||"%\x3d"===c||"+\x3d"===c||"-\x3d"===c||"\x3c\x3c\x3d"===c||"\x3e\x3e\x3d"===c||"\x3e\x3e\x3e\x3d"===c||"\x26\x3d"===c||"^\x3d"===c||"|\x3d"===c);c&&(S(b)||K({},D.InvalidLHSInAssignment),U&&(b.type===L.Identifier&&p(b.name))&&K(a,D.StrictLHSAssignment),a=F(),d=ea(),d=t.createAssignmentExpression(a.value,b,d));return t.markEndIf(d)}function Y(){var a;t.markStart();a=ea();if(r(","))for(a=t.createSequenceExpression([a]);n<T&&r(",");)F(),a.expressions.push(ea());return t.markEndIf(a)}function na(){e();
t.markStart();P("{");for(var a=[],b,d=n;n<T&&!r("}");){b=ma();if("undefined"===typeof b||d===n)break;a.push(b);d=n}ha("}");return t.markEnd(t.createBlockStatement(a))}function fa(){var a;e();t.markStart();a=F();a.type!==B.Identifier&&W(a);return t.markEnd(t.createIdentifier(a.value))}function Ga(a){var b=null,d;e();t.markStart();d=fa();U&&p(d.name)&&K({},D.StrictVarName);"const"===a?(P("\x3d"),b=ea()):r("\x3d")&&(F(),b=ea());return t.markEnd(t.createVariableDeclarator(d,b))}function qa(a){var b=[];
do{b.push(Ga(a));if(!r(","))break;F()}while(n<T);return b}function Ha(){var a;G("var");a=qa();$();return t.createVariableDeclaration(a,"var")}function Ia(){P(";");return t.createEmptyStatement()}function Ja(){var a=Y();$();return t.createExpressionStatement(a)}function Ka(){var a,b,d;G("if");P("(");a=Y();ha(")","{");(b=ca())||(b=null);H("else")?(F(),d=ca()):d=null;return t.createIfStatement(a,b,d)}function La(){var a,b;G("do");b=I.inIteration;I.inIteration=!0;a=ca();I.inIteration=b;G("while");P("(");
b=Y();ha(")","{");r(";")&&F();return t.createDoWhileStatement(a,b)}function Ma(){var a,b,d;G("while");P("(");a=Y();ha(")","{");d=I.inIteration;I.inIteration=!0;b=ca();I.inIteration=d;return t.createWhileStatement(a,b)}function Na(){var a,b,d,c,e,f,q;a=b=d=null;G("for");P("(");r(";")?F():(H("var")||H("let")?(I.allowIn=!1,t.markStart(),a=F(),f=qa(),a=t.markEnd(t.createVariableDeclaration(f,a.value)),I.allowIn=!0,1===a.declarations.length&&H("in")&&(F(),c=a,e=Y(),a=null)):(I.allowIn=!1,a=Y(),I.allowIn=
!0,H("in")&&(S(a)||K({},D.InvalidLHSInForIn),F(),c=a,e=Y(),a=null)),"undefined"===typeof c&&P(";"));"undefined"===typeof c&&(r(";")||(b=Y()),P(";"),r(")")||(d=Y()));ha(")","{");q=I.inIteration;I.inIteration=!0;f=ca();I.inIteration=q;return"undefined"===typeof c?t.createForStatement(a,b,d,f):t.createForInStatement(c,e,f)}function Oa(){var a=null,b;G("continue");if(59===y.charCodeAt(n))return F(),I.inIteration||w({},D.IllegalContinue),t.createContinueStatement(null);if(R())return I.inIteration||w({},
D.IllegalContinue),t.createContinueStatement(null);N.type===B.Identifier&&(a=fa(),b="$"+a.name,Object.prototype.hasOwnProperty.call(I.labelSet,b)||w({},D.UnknownLabel,a.name));$();null===a&&!I.inIteration&&w({},D.IllegalContinue);return t.createContinueStatement(a)}function Pa(){var a=null,b;G("break");if(59===y.charCodeAt(n))return F(),!I.inIteration&&!I.inSwitch&&w({},D.IllegalBreak),t.createBreakStatement(null);if(R())return!I.inIteration&&!I.inSwitch&&w({},D.IllegalBreak),t.createBreakStatement(null);
N.type===B.Identifier&&(a=fa(),b="$"+a.name,Object.prototype.hasOwnProperty.call(I.labelSet,b)||w({},D.UnknownLabel,a.name));$();null===a&&(!I.inIteration&&!I.inSwitch)&&w({},D.IllegalBreak);return t.createBreakStatement(a)}function Qa(){var a=null;G("return");I.inFunctionBody||K({},D.IllegalReturn);if(32===y.charCodeAt(n)&&d(y.charCodeAt(n+1)))return a=Y(),$(),t.createReturnStatement(a);if(R())return t.createReturnStatement(null);r(";")||!r("}")&&N.type!==B.EOF&&(a=Y());$();return t.createReturnStatement(a)}
function Ra(){var a,b;U&&K({},D.StrictModeWith);G("with");P("(");a=Y();ha(")","{");b=ca();return t.createWithStatement(a,b)}function Sa(){var a,b,d,c,f;G("switch");P("(");a=Y();P(")");P("{");b=[];if(r("}"))return F(),t.createSwitchStatement(a,b);c=I.inSwitch;I.inSwitch=!0;for(f=!1;n<T&&!r("}");){d=void 0;var q=[],l=void 0;e();t.markStart();H("default")?(F(),d=null):(G("case"),d=Y());P(":");for(var k=n;n<T&&!r("}")&&!H("default")&&!H("case");){l=ca();if("undefined"===typeof l||k===n)break;k=n;q.push(l)}d=
t.markEnd(t.createSwitchCase(d,q));null===d.test&&(f&&w({},D.MultipleDefaultsInSwitch),f=!0);b.push(d)}I.inSwitch=c;P("}");return t.createSwitchStatement(a,b)}function Ta(){var a;G("throw");R()&&w({},D.NewlineAfterThrow);a=Y();$();return t.createThrowStatement(a)}function Ua(){var a,b;e();t.markStart();G("catch");P("(");r(")")&&W(N);a=fa();U&&p(a.name)&&K({},D.StrictCatchVariable);P(")");b=na();return t.markEnd(t.createCatchClause(a,b))}function Va(){var a,b=[],d=null;G("try");a=na();H("catch")&&
b.push(Ua());H("finally")&&(F(),d=na());0===b.length&&!d&&w({},D.NoCatchOrFinally);return t.createTryStatement(a,[],b,d)}function Wa(){G("debugger");$();return t.createDebuggerStatement()}function ca(){var a=N.type,b,d;a===B.EOF&&W(N);e();t.markStart();if(a===B.Punctuator)switch(N.value){case ";":return t.markEnd(Ia());case "{":return t.markEnd(na());case "(":return t.markEnd(Ja())}if(a===B.Keyword)switch(N.value){case "break":return t.markEnd(Pa());case "continue":return t.markEnd(Oa());case "debugger":return t.markEnd(Wa());
case "do":return t.markEnd(La());case "for":return t.markEnd(Na());case "function":return t.markEnd(Ea());case "if":return t.markEnd(Ka());case "return":return t.markEnd(Qa());case "switch":return t.markEnd(Sa());case "throw":return t.markEnd(Ta());case "try":return t.markEnd(Va());case "var":return t.markEnd(Ha());case "while":return t.markEnd(Ma());case "with":return t.markEnd(Ra())}if((a=Y())&&a.type===L.Identifier&&r(":"))return F(),d="$"+a.name,Object.prototype.hasOwnProperty.call(I.labelSet,
d)&&w({},D.Redeclaration,"Label",a.name),I.labelSet[d]=!0,b=ca(),delete I.labelSet[d],t.markEnd(t.createLabeledStatement(a,b));$();return t.markEnd(t.createExpressionStatement(a))}function pa(){var a,b=[],d,c,f,q;e();t.markStart();for(P("{");n<T&&N.type===B.StringLiteral;){d=N;a=ma();b.push(a);if(a.expression.type!==L.Literal)break;a=y.slice(d.range[0]+1,d.range[1]-1);"use strict"===a?(U=!0,c&&K(c,D.StrictOctalLiteral)):!c&&d.octal&&(c=d)}d=I.labelSet;c=I.inIteration;f=I.inSwitch;q=I.inFunctionBody;
I.labelSet={};I.inIteration=!1;I.inSwitch=!1;I.inFunctionBody=!0;for(var l=n;n<T&&!r("}");){a=ma();if("undefined"===typeof a||l===n)break;l=n;b.push(a)}ha("}");I.labelSet=d;I.inIteration=c;I.inSwitch=f;I.inFunctionBody=q;return t.markEnd(t.createBlockStatement(b))}function xa(a){var b,d=[],c,e,f,q,l;P("(");if(!r(")"))for(f={};n<T;){c=N;b=fa();q="$"+c.value;U?(p(c.value)&&(e=c,l=D.StrictParamName),Object.prototype.hasOwnProperty.call(f,q)&&(e=c,l=D.StrictParamDupe)):a||(p(c.value)?(a=c,l=D.StrictParamName):
m(c.value)?(a=c,l=D.StrictReservedWord):Object.prototype.hasOwnProperty.call(f,q)&&(a=c,l=D.StrictParamDupe));d.push(b);f[q]=!0;if(r(")"))break;P(",")}P(")");return{params:d,stricted:e,firstRestricted:a,message:l}}function Ea(){var a,b=[],d,c,f,q,l;e();t.markStart();G("function");b=N;a=fa();U?p(b.value)&&K(b,D.StrictFunctionName):p(b.value)?(f=b,q=D.StrictFunctionName):m(b.value)&&(f=b,q=D.StrictReservedWord);d=xa(f);b=d.params;c=d.stricted;f=d.firstRestricted;d.message&&(q=d.message);l=U;d=pa();
U&&f&&w(f,q);U&&c&&K(c,q);U=l;return t.markEnd(t.createFunctionDeclaration(a,b,[],d))}function ma(){if(N.type===B.Keyword)switch(N.value){case "const":case "let":var a=N.value,b;e();t.markStart();G(a);b=qa(a);$();return t.markEnd(t.createVariableDeclaration(b,a));case "function":return Ea();default:return ca()}if(N.type!==B.EOF)return ca()}function Fa(){var a,b,d,c=[];for(a=0;a<v.tokens.length;++a)b=v.tokens[a],d={type:b.type,value:b.value},v.range&&(d.range=b.range),v.loc&&(d.loc=b.loc),c.push(d);
v.tokens=c}function ra(){this.marker=[n,O,n-Q,0,0,0]}function la(){if(!v.loc&&!v.range)return null;e();return new ra}function ha(a,b){try{P(a)}catch(d){if(v.errors)ia(d),b&&y[d.index]===b&&(n=d.index,C());else throw d;}}function ia(a){for(var b=v.errors.length,d=0;d<b;d++){var c=v.errors[d];if(c.index===a.index&&c.message===a.message)return}v.errors.push(a)}function sa(a){return function(){var b=I.markerStack.length;try{return a.apply(null,arguments)}catch(d){for(ia(d);I.markerStack.length>b;)t.markEndIf(null)}}}
function Xa(a){return function(){v.statementStart=n;try{return a.apply(null,arguments)}catch(b){ia(b)}}}var B,da,ua,L,ga,D,oa,ta,y,U,n,O,Q,T,t,N,I,v;B={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,RegularExpression:9};da={};da[B.BooleanLiteral]="Boolean";da[B.EOF]="\x3cend\x3e";da[B.Identifier]="Identifier";da[B.Keyword]="Keyword";da[B.NullLiteral]="Null";da[B.NumericLiteral]="Numeric";da[B.Punctuator]="Punctuator";da[B.StringLiteral]="String";
da[B.RegularExpression]="RegularExpression";ua="( { [ in typeof instanceof new return case delete throw void \x3d +\x3d -\x3d *\x3d /\x3d %\x3d \x3c\x3c\x3d \x3e\x3e\x3d \x3e\x3e\x3e\x3d \x26\x3d |\x3d ^\x3d , + - * / % ++ -- \x3c\x3c \x3e\x3e \x3e\x3e\x3e \x26 | ^ ! ~ \x26\x26 || ? : \x3d\x3d\x3d \x3d\x3d \x3e\x3d \x3c\x3d \x3c \x3e !\x3d !\x3d\x3d".split(" ");L={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};D={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",MultipleDefaultsInSwitch:"More than one default clause in switch statement",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",MissingToken:"Missing expected '%0'"};oa={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]")};
ta={name:"SyntaxTree",markStart:function(){v.loc&&(I.markerStack.push(n-Q),I.markerStack.push(O));v.range&&I.markerStack.push(n)},processComment:function(a){var b,d,c,e;if(!("undefined"===typeof a.type||a.type===L.Program))for(b=0;b<v.pendingComments.length;++b)d=v.pendingComments[b],a.range[0]>=d.comment.range[1]&&((e=d.leading)?(c=e.range[0],e=e.range[1]-c,a.range[0]<=c&&a.range[1]-a.range[0]>=e&&(d.leading=a)):d.leading=a),a.range[1]<=d.comment.range[0]&&((e=d.trailing)?(c=e.range[0],e=e.range[1]-
c,a.range[0]<=c&&a.range[1]-a.range[0]>=e&&(d.trailing=a)):d.trailing=a)},markEnd:function(a){v.range&&(a.range=[I.markerStack.pop(),n]);v.loc&&(a.loc={start:{line:I.markerStack.pop(),column:I.markerStack.pop()},end:{line:O,column:n-Q}},this.postProcess(a));v.attachComment&&this.processComment(a);return a},markEndIf:function(a){!a||a.range||a.loc?(v.loc&&(I.markerStack.pop(),I.markerStack.pop()),v.range&&I.markerStack.pop()):this.markEnd(a);return a},postProcess:function(a){v.source&&(a.loc.source=
v.source);return a},createArrayExpression:function(a){return{type:L.ArrayExpression,elements:a}},createAssignmentExpression:function(a,b,d){return{type:L.AssignmentExpression,operator:a,left:b,right:d}},createBinaryExpression:function(a,b,d){return{type:"||"===a||"\x26\x26"===a?L.LogicalExpression:L.BinaryExpression,operator:a,left:b,right:d}},createBlockStatement:function(a){return{type:L.BlockStatement,body:a}},createBreakStatement:function(a){return{type:L.BreakStatement,label:a}},createCallExpression:function(a,
b){return{type:L.CallExpression,callee:a,arguments:b}},createCatchClause:function(a,b){return{type:L.CatchClause,param:a,body:b}},createConditionalExpression:function(a,b,d){return{type:L.ConditionalExpression,test:a,consequent:b,alternate:d}},createContinueStatement:function(a){return{type:L.ContinueStatement,label:a}},createDebuggerStatement:function(){return{type:L.DebuggerStatement}},createDoWhileStatement:function(a,b){return{type:L.DoWhileStatement,body:a,test:b}},createEmptyStatement:function(){return{type:L.EmptyStatement}},
createExpressionStatement:function(a){return{type:L.ExpressionStatement,expression:a}},createForStatement:function(a,b,d,c){return{type:L.ForStatement,init:a,test:b,update:d,body:c}},createForInStatement:function(a,b,d){return{type:L.ForInStatement,left:a,right:b,body:d,each:!1}},createFunctionDeclaration:function(a,b,d,c){return{type:L.FunctionDeclaration,id:a,params:b,defaults:d,body:c,rest:null,generator:!1,expression:!1}},createFunctionExpression:function(a,b,d,c){return{type:L.FunctionExpression,
id:a,params:b,defaults:d,body:c,rest:null,generator:!1,expression:!1}},createIdentifier:function(a){return{type:L.Identifier,name:a}},createIfStatement:function(a,b,d){return{type:L.IfStatement,test:a,consequent:b,alternate:d}},createLabeledStatement:function(a,b){return{type:L.LabeledStatement,label:a,body:b}},createLiteral:function(a){return{type:L.Literal,value:a.value,raw:y.slice(a.range[0],a.range[1])}},createMemberExpression:function(a,b,d){return{type:L.MemberExpression,computed:"["===a,object:b,
property:d}},createNewExpression:function(a,b){return{type:L.NewExpression,callee:a,arguments:b}},createObjectExpression:function(a){return{type:L.ObjectExpression,properties:a}},createPostfixExpression:function(a,b){return{type:L.UpdateExpression,operator:a,argument:b,prefix:!1}},createProgram:function(a){return{type:L.Program,body:a}},createProperty:function(a,b,d){return{type:L.Property,key:b,value:d,kind:a}},createReturnStatement:function(a){return{type:L.ReturnStatement,argument:a}},createSequenceExpression:function(a){return{type:L.SequenceExpression,
expressions:a}},createSwitchCase:function(a,b){return{type:L.SwitchCase,test:a,consequent:b}},createSwitchStatement:function(a,b){return{type:L.SwitchStatement,discriminant:a,cases:b}},createThisExpression:function(){return{type:L.ThisExpression}},createThrowStatement:function(a){return{type:L.ThrowStatement,argument:a}},createTryStatement:function(a,b,d,c){return{type:L.TryStatement,block:a,guardedHandlers:b,handlers:d,finalizer:c}},createUnaryExpression:function(a,b){return"++"===a||"--"===a?{type:L.UpdateExpression,
operator:a,argument:b,prefix:!0}:{type:L.UnaryExpression,operator:a,argument:b,prefix:!0}},createVariableDeclaration:function(a,b){return{type:L.VariableDeclaration,declarations:a,kind:b}},createVariableDeclarator:function(a,b){return{type:L.VariableDeclarator,id:a,init:b}},createWhileStatement:function(a,b){return{type:L.WhileStatement,test:a,body:b}},createWithStatement:function(a,b){return{type:L.WithStatement,object:a,body:b}}};ra.prototype={constructor:ra,end:function(){this.marker[3]=n;this.marker[4]=
O;this.marker[5]=n-Q},apply:function(a){v.range&&(a.range=[this.marker[0],this.marker[3]]);v.loc&&(a.loc={start:{line:this.marker[1],column:this.marker[2]},end:{line:this.marker[4],column:this.marker[5]}},a=t.postProcess(a));v.attachComment&&t.processComment(a)}};b.version="1.1.0-dev";b.tokenize=function(a,b){var d,c;d=String;"string"!==typeof a&&!(a instanceof String)&&(a=d(a));t=ta;y=a;n=0;O=0<y.length?1:0;Q=0;T=y.length;N=null;I={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,
lastCommentStart:-1};v=Object.create(null);b=b||Object.create(null);b.tokens=!0;v.tokens=[];v.tokenize=!0;v.openParenToken=-1;v.openCurlyToken=-1;v.range="boolean"===typeof b.range&&b.range;v.loc="boolean"===typeof b.loc&&b.loc;"boolean"===typeof b.comment&&b.comment&&(v.comments=[]);"boolean"===typeof b.tolerant&&b.tolerant&&(v.errors=[]);0<T&&"undefined"===typeof y[0]&&a instanceof String&&(y=a.valueOf());try{C();if(N.type===B.EOF)return v.tokens;for(F();N.type!==B.EOF;)try{F()}catch(e){if(v.errors){ia(e);
break}else throw e;}Fa();c=v.tokens;"undefined"!==typeof v.comments&&(c.comments=v.comments);"undefined"!==typeof v.errors&&(c.errors=v.errors)}catch(f){throw f;}finally{v=Object.create(null)}return c};b.parse=function(a,b){var d,c;c=String;"string"!==typeof a&&!(a instanceof String)&&(a=c(a));t=ta;y=a;n=0;O=0<y.length?1:0;Q=0;T=y.length;N=null;I={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1,markerStack:[]};v={};"undefined"!==typeof b&&(v.range="boolean"===
typeof b.range&&b.range,v.loc="boolean"===typeof b.loc&&b.loc,v.attachComment="boolean"===typeof b.attachComment&&b.attachComment,v.loc&&(null!==b.source&&void 0!==b.source)&&(v.source=c(b.source)),"boolean"===typeof b.tokens&&b.tokens&&(v.tokens=[]),"boolean"===typeof b.comment&&b.comment&&(v.comments=[]),"boolean"===typeof b.tolerant&&b.tolerant&&(v.errors=[],v.tokens=[],v.parseStatement=ca,v.parseExpression=Y,v.parseNonComputedProperty=ka,v.consumeSemicolon=$,ca=Xa(ca),Y=sa(Y),ka=sa(ka),$=sa($)),
v.attachComment&&(v.range=!0,v.pendingComments=[],v.comments=[]));0<T&&"undefined"===typeof y[0]&&a instanceof String&&(y=a.valueOf());try{e();t.markStart();U=!1;C();var f;c=[];for(var q,l,k;n<T;){q=N;if(q.type!==B.StringLiteral)break;f=ma();c.push(f);if(f.expression.type!==L.Literal)break;l=y.slice(q.range[0]+1,q.range[1]-1);"use strict"===l?(U=!0,k&&K(k,D.StrictOctalLiteral)):!k&&q.octal&&(k=q)}for(q=n;n<T;){f=ma();if("undefined"===typeof f||q===n)break;q=n;c.push(f)}d=t.markEnd(t.createProgram(c));
"undefined"!==typeof v.comments&&(d.comments=v.comments);"undefined"!==typeof v.tokens&&(Fa(),d.tokens=v.tokens);"undefined"!==typeof v.errors&&(d.errors=v.errors);if(v.attachComment){var A,M,J,g;for(A=0;A<v.pendingComments.length;++A){M=v.pendingComments[A];if(J=M.leading)"undefined"===typeof J.leadingComments&&(J.leadingComments=[]),J.leadingComments.push(M.comment);if(g=M.trailing)"undefined"===typeof g.trailingComments&&(g.trailingComments=[]),g.trailingComments.push(M.comment)}v.pendingComments=
[]}}catch(m){throw m;}finally{"undefined"!==typeof v.errors&&(ca=v.parseStatement,Y=v.parseExpression,ka=v.parseNonComputedProperty,$=v.consumeSemicolon),v=Object.create(null)}return d};b.Syntax=function(){var a,b={};"function"===typeof Object.create&&(b=Object.create(null));for(a in L)L.hasOwnProperty(a)&&(b[a]=L[a]);"function"===typeof Object.freeze&&Object.freeze(b);return b}()});
(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=g.shift();)b();d=!1}function c(b){g.push(b);d||(d=!0,k())}function h(b){return function(d){b(d)}}function f(){function b(){for(var a;a=g.shift();){var d=a.deferred,c="fulfilled"===e?"resolve":"reject";a=a[c];if("function"===typeof a)try{var f=a(l),q=f&&("object"===typeof f||"function"===typeof f)&&
f.then;if("function"===typeof q)if(f===d.promise)d.reject(new TypeError);else{var k=f.cancel;"function"===typeof k?d._parentCancel=k.bind(f):delete d._parentCancel;q.call(f,h(d.resolve),h(d.reject),h(d.progress))}else d.resolve(f)}catch(m){d.reject(m)}else d[c](l)}}function d(a){delete s._parentCancel;e="rejected";l=a;g.length&&c(b)}function k(a){function M(a){return function(b){(!e||"assumed"===e)&&a(b)}}delete s._parentCancel;try{var J=a&&("object"===typeof a||"function"===typeof a)&&a.then;if("function"===
typeof J)if(a===s)d(new TypeError);else{e="assumed";var A=a&&a.cancel;if("function"!==typeof A){var q=new f;a=q.promise;try{J(q.resolve,q.reject,q.progress)}catch(h){q.reject(h)}A=a.cancel;J=a.then}l=a;J.call(a,M(k),M(d));s._parentCancel=A.bind(a)}else e="fulfilled",l=a,g.length&&c(b)}catch(V){M(d)(V)}}function a(){var a=s._parentCancel;a?(delete s._parentCancel,a()):e||(a=Error("Cancel"),a.name="Cancel",d(a))}var l,e,g=[],s=this;this.resolve=function(a){e||k(a);return s};this.reject=function(a){e||
d(a);return s};this.progress=function(a){e||g.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,l){var k=new f;k._parentCancel=s.promise.cancel;g.push({resolve:a,reject:d,progress:l,deferred:k});("fulfilled"===e||"rejected"===e)&&c(b);return k.promise};this.promise={then:s.then,cancel:s.cancel}}var g=[],d=!1,k=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)}}();f.all=function(b,d){function c(a,b){k||(e[a]=b,0===--l&&g.resolve(e))}function a(a,b){if(!k){if(d)try{c(a,d(b));return}catch(e){b=e}g.reject(b)}}var l=b.length,e=[],k=!1,g=new f;g.then(void 0,function(){k=!0;b.forEach(function(a){a.cancel&&a.cancel()})});
0===l?g.resolve(e):b.forEach(function(b,d){b.then(c.bind(void 0,d),a.bind(void 0,d))});return g.promise};f.when=function(b,d,c,a){var l;b&&"function"===typeof b.then||(l=new f,l.resolve(b),b=l.promise);return b.then(d,c,a)};return f});
define("orion/objects",[],function(){function b(b){for(var h=Object.prototype.hasOwnProperty,f=1,g=arguments.length;f<g;f++){var d=arguments[f],k;for(k in d)h.call(d,k)&&(b[k]=d[k])}return b}return{clone:function(c){if(Array.isArray(c))return Array.prototype.slice.call(c);var h=Object.create(Object.getPrototypeOf(c));b(h,c);return h},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",["orion/Deferred","orion/objects","orion/serialize"],function(b,c,h){function f(b){this.parser=b;this.cache=null;if(!this.parser)throw Error("Missing parser");}var g={Unexpected:1,EndOfInput:2};c.mixin(f.prototype,{getAST:function(d){if(this.cache)return(new b).resolve(this.cache);var c=this;return d.getText().then(function(b){b=c.parse(b);return c.cache=b})},parse:function(b){try{var c=this.parser.parse(b,{range:!0,tolerant:!0,comment:!0,tokens:!0,attachComment:!0})}catch(f){c=
this._emptyAST(b),c.errors=[f]}c.errors&&(this._computeErrorTypes(c.errors),c.errors=c.errors.map(h.serializeError));return c},_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 d=b.message;b.message=d=d.replace(/^Line \d+: /,"");/^Unexpected/.test(d)&&(b.type=g.Unexpected,/end of input$/.test(d)&&(b.type=g.EndOfInput))})},updated:function(){this.cache=
null}});return{ASTManager:f,ErrorTypes:g}});
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 h=c.toLowerCase();if(this.startsWith(h,b))return!0;if(b===b.toLowerCase())return!1;var h=this.toCamelCaseParts(b),f=this.toCamelCaseParts(c);if(h.length>f.length)return!1;for(var g=0;g<h.length;++g)if(!this.startsWith(f[g],h[g]))return!1;return!0},
toCamelCaseParts:function(b){for(var c=[],h=b.length-1;0<=h;--h)this.isUpperCase(b.charAt(h))&&(c.push(b.substring(h)),b=b.substring(0,h));0!==b.length&&c.push(b);return c.reverse()},startsWith:function(b,c){return b.slice(0,c.length)===c},isUpperCase:function(b){return 1>b.length||isNaN(b.charCodeAt(0))?!1:b.toLocaleUpperCase().charAt(0)===b.charAt(0)},repeatChar:function(b,c){for(var h="",f=0;f<c;f++)h+=b;return h},inRange:function(b,c,h){return c[0]<=b&&(h?c[1]>=b:c[1]>b)},isBefore:function(b,
c){return!c?!0:b<c[0]},afterDot:function(b,c,h){var f;f=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>f)return!1;for(c=c.object.range[1];"."!==h.charAt(c)&&c<f;)c++;return"."!==h.charAt(c)?!1:c<b},extractDocComments:function(b,c){var h=0,f=0,g,d,k;for(g=0;g<b.length&&!(d=b[g].range[0],k=b[g].range[1],!this.isBefore(d,c)||!this.isBefore(k,c));g++);if(g<b.length){for(h=g;g<b.length&&!(d=b[g].range[0],k=b[g].range[1],!this.inRange(d,c,
!0)||!this.inRange(k,c,!0));g++);f=g}return b.splice(h,f-h)}}});
(function(b){function c(a,b,d){return a.slice(b,d)}function h(a){return"\n"===a||"\r"===a||"\u2028"===a||"\u2029"===a}function f(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 g(a){return 0<="0123456789".indexOf(a)}function d(a){return 0<="01234567".indexOf(a)}function k(a){return"$"===a||"_"===a||"\\"===a||"a"<=a&&"z">=a||"A"<=a&&
"Z">=a||128<=a.charCodeAt(0)&&l.NonAsciiIdentifierStart.test(a)}function m(a){return-1==="\x3e\x3c(){}[],:*|?!\x3d".indexOf(a)&&!f(a)&&!h(a)}function p(a,b){}function u(a){return a.replace(/^\s+/,"").replace(/\s+$/,"")}function a(a){var b,d,c,e,l;a=a.replace(/^\/\*\*/,"").replace(/\*\/$/,"");b=0;d=a.length;c=0;for(e="";b<d;){l=a[b];switch(c){case 0:h(l)?e+=l:"*"===l?c=1:f(l)||(e+=l,c=2);break;case 1:f(l)||(e+=l);c=2;break;case 2:e+=l,h(l)&&(c=0)}b+=1}return e}var l,e,z,s,x;l={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]")};
e=void 0!==typeof"doctrine"[0];(x=Array.isArray)||(x=function(a){return"[object Array]"===Object.prototype.toString.call(a)});e||(c=function(a,b,d){return a.slice(b,d).join("")});"dev"==="0.0.4".slice(-3)&&(p=function(a,b){if(!a)throw Error(b);});(function(a){function b(){var a=S[H];H+=1;return a}function c(){var a,e;a="";if("."!==e){a=b();e=S[H];if("0"===a){if("x"===e||"X"===e){for(a+=b();H<X;){e=S[H];if(!(0<="0123456789abcdefABCDEF".indexOf(e)))break;a+=b()}if(2>=a.length)throw"unexpected token";
if(H<X&&(e=S[H],k(e)))throw"unexpected token";aa=parseInt(a,16);return r.NUMBER}if(d(e)){for(a+=b();H<X;){e=S[H];if(!d(e))break;a+=b()}if(H<X&&(e=S[H],k(e)||g(e)))throw"unexpected token";aa=parseInt(a,8);return r.NUMBER}if(g(e))throw"unexpected token";}for(;H<X;){e=S[H];if(!g(e))break;a+=b()}}if("."===e)for(a+=b();H<X;){e=S[H];if(!g(e))break;a+=b()}if("e"===e||"E"===e){a+=b();e=S[H];if("+"===e||"-"===e)a+=b();e=S[H];if(g(e))for(a+=b();H<X;){e=S[H];if(!g(e))break;a+=b()}else throw"unexpected token";
}if(H<X&&(e=S[H],k(e)))throw"unexpected token";aa=parseFloat(a);return r.NUMBER}function q(){var a;for($=H;H<X&&f(S[H]);)b();if(H>=X)return E=r.EOF;a=S[H];switch(a){case '"':a="";var e,l,q,k;e=S[H];for(++H;H<X;)if(l=b(),l===e){e="";break}else if("\\"===l)if(l=b(),h(l))"\r"===l&&"\n"===S[H]&&++H;else switch(l){case "n":a+="\n";break;case "r":a+="\r";break;case "t":a+="\t";break;case "u":case "x":q=H;a:{var z=k=void 0,s=void 0,p=0,z="u"===l?4:2;for(k=0;k<z;++k)if(H<X&&0<="0123456789abcdefABCDEF".indexOf(S[H]))s=
b(),p=16*p+"0123456789abcdef".indexOf(s.toLowerCase());else{k="";break a}k=String.fromCharCode(p)}k?a+=k:(H=q,a+=l);break;case "b":a+="\b";break;case "f":a+="\f";break;case "v":a+="\v";break;default:d(l)?(q="01234567".indexOf(l),H<X&&d(S[H])&&(q=8*q+"01234567".indexOf(b()),0<="0123".indexOf(l)&&(H<X&&d(S[H]))&&(q=8*q+"01234567".indexOf(b()))),a+=String.fromCharCode(q)):a+=l}else if(h(l))break;else a+=l;if(""!==e)throw"unexpected quote";aa=a;return E=r.STRING;case ":":return b(),E=r.COLON;case ",":return b(),
E=r.COMMA;case "(":return b(),E=r.LPAREN;case ")":return b(),E=r.RPAREN;case "[":return b(),E=r.LBRACK;case "]":return b(),E=r.RBRACK;case "{":return b(),E=r.LBRACE;case "}":return b(),E=r.RBRACE;case ".":b();if(H<X){a=S[H];if("\x3c"===a)return b(),E=r.DOT_LT;if("."===a&&H+1<X&&"."===S[H+1])return b(),b(),E=r.REST;if(g(a))return E=c()}return E=r.DOT;case "\x3c":return b(),E=r.LT;case "\x3e":return b(),E=r.GT;case "*":return b(),E=r.STAR;case "|":return b(),E=r.PIPE;case "?":return b(),E=r.QUESTION;
case "!":return b(),E=r.BANG;case "\x3d":return b(),E=r.EQUAL;default:if(g(a))return E=c();if(m(a)){for(aa=b();H<X&&m(S[H]);){a=S[H];if("."===a&&H+1<X&&(a=S[H+1],"\x3c"===a))break;aa+=b()}return E=r.NAME}return E=r.ILLEGAL}}function l(a,b){p(E===a,b||"consumed token not matched");q()}function z(a){if(E!==a)throw"unexpected token";q()}function s(){var a;a=aa;if(E===r.NAME||E===r.STRING)q();else if(E===r.NUMBER)l(r.NUMBER),a=String(a);else throw"unexpected token";return E===r.COLON?(l(r.COLON),{type:G.FieldType,
key:a,value:K()}):{type:G.FieldType,key:a,value:null}}function x(){var a;a=aa;z(r.NAME);a={type:G.NameExpression,name:a};if(E===r.DOT_LT||E===r.LT){q();var b=[];for(b.push(W());E===r.COMMA;)l(r.COMMA),b.push(W());z(r.GT);return{type:G.TypeApplication,expression:a,applications:b}}return a}function u(){for(var a=[],b=!0,d,c=!1;E!==r.RPAREN;){E===r.REST&&(l(r.REST),c=!0);d=K();d.type===G.NameExpression&&E===r.COLON&&(l(r.COLON),d={type:G.ParameterType,name:d.name,expression:K()});if(E===r.EQUAL)l(r.EQUAL),
d={type:G.OptionalType,expression:d},b=!1;else if(!b)throw"unexpected token";c&&(d={type:G.RestType,expression:d});a.push(d);E!==r.RPAREN&&z(r.COMMA)}return a}function w(){switch(E){case r.STAR:return l(r.STAR),{type:G.AllLiteral};case r.LPAREN:var a;l(r.LPAREN,"UnionType should start with (");a=[];if(E!==r.RPAREN)for(;;){a.push(K());if(E===r.RPAREN)break;z(r.PIPE)}l(r.RPAREN,"UnionType should end with )");return{type:G.UnionType,elements:a};case r.LBRACK:l(r.LBRACK,"ArrayType should start with [");
for(a=[];E!==r.RBRACK;){if(E===r.REST){l(r.REST);a.push({type:G.RestType,expression:K()});break}else a.push(K());E!==r.RBRACK&&z(r.COMMA)}z(r.RBRACK);return{type:G.ArrayType,elements:a};case r.LBRACE:l(r.LBRACE,"RecordType should start with {");a=[];if(E===r.COMMA)l(r.COMMA);else for(;E!==r.RBRACE;)a.push(s()),E!==r.RBRACE&&z(r.COMMA);z(r.RBRACE);return{type:G.RecordType,fields:a};case r.NAME:if("null"===aa)return l(r.NAME),{type:G.NullLiteral};if("undefined"===aa)return l(r.NAME),{type:G.UndefinedLiteral};
if("function"===aa){var b,d,c;p(E===r.NAME&&"function"===aa,"FunctionType should start with 'function'");l(r.NAME);z(r.LPAREN);a=!1;d=[];b=null;E!==r.RPAREN&&(E===r.NAME&&("this"===aa||"new"===aa)?(a="new"===aa,l(r.NAME),z(r.COLON),b=x(),E===r.COMMA&&(l(r.COMMA),d=u())):d=u());z(r.RPAREN);c=null;E===r.COLON&&(l(r.COLON,"ResultType should start with :"),E===r.NAME&&"void"===aa?(l(r.NAME),c={type:G.VoidLiteral}):c=K());d={type:G.FunctionType,params:d,result:c};b&&(d["this"]=b,a&&(d["new"]=!0));return d}return x();
default:throw"unexpected token";}}function K(){var a;if(E===r.QUESTION)return l(r.QUESTION),E===r.COMMA||E===r.EQUAL||E===r.RBRACE||E===r.RPAREN||E===r.PIPE||E===r.EOF?{type:G.NullableLiteral}:{type:G.NullableType,expression:w(),prefix:!0};if(E===r.BANG)return l(r.BANG),{type:G.NonNullableType,expression:w(),prefix:!0};a=w();return E===r.BANG?(l(r.BANG),{type:G.NonNullableType,expression:a,prefix:!1}):E===r.QUESTION?(l(r.QUESTION),{type:G.NullableType,expression:a,prefix:!1}):a}function W(){var a;
a=K();if(E!==r.PIPE)return a;a=[a];for(l(r.PIPE);;){a.push(K());if(E!==r.PIPE)break;l(r.PIPE)}return{type:G.UnionType,elements:a}}function P(){var a;if(E===r.REST)return l(r.REST),{type:G.RestType,expression:W()};a=W();return E===r.EQUAL?(l(r.EQUAL),{type:G.OptionalType,expression:a}):a}function Z(a,b,d){var c,e,f;switch(a.type){case G.NullableLiteral:c="?";break;case G.AllLiteral:c="*";break;case G.NullLiteral:c="null";break;case G.UndefinedLiteral:c="undefined";break;case G.VoidLiteral:c="void";
break;case G.UnionType:c=d?"":"(";e=0;for(f=a.elements.length;e<f;++e)c+=Z(a.elements[e],b),e+1!==f&&(c+="|");d||(c+=")");break;case G.ArrayType:c="[";e=0;for(f=a.elements.length;e<f;++e)c+=Z(a.elements[e],b),e+1!==f&&(c+=b?",":", ");c+="]";break;case G.RecordType:c="{";e=0;for(f=a.fields.length;e<f;++e)c+=Z(a.fields[e],b),e+1!==f&&(c+=b?",":", ");c+="}";break;case G.FieldType:c=a.value?a.key+(b?":":": ")+Z(a.value,b):a.key;break;case G.FunctionType:c=b?"function(":"function (";a["this"]&&(c=a["new"]?
c+(b?"new:":"new: "):c+(b?"this:":"this: "),c+=Z(a["this"],b),0!==a.params.length&&(c+=b?",":", "));e=0;for(f=a.params.length;e<f;++e)c+=Z(a.params[e],b),e+1!==f&&(c+=b?",":", ");c+=")";a.result&&(c+=(b?":":": ")+Z(a.result,b));break;case G.ParameterType:c=a.name+(b?":":": ")+Z(a.expression,b);break;case G.RestType:c="...";a.expression&&(c+=Z(a.expression,b));break;case G.NonNullableType:c=a.prefix?"!"+Z(a.expression,b):Z(a.expression,b)+"!";break;case G.OptionalType:c=Z(a.expression,b)+"\x3d";break;
case G.NullableType:c=a.prefix?"?"+Z(a.expression,b):Z(a.expression,b)+"?";break;case G.NameExpression:c=a.name;break;case G.TypeApplication:c=Z(a.expression,b)+".\x3c";e=0;for(f=a.applications.length;e<f;++e)c+=Z(a.applications[e],b),e+1!==f&&(c+=b?",":", ");c+="\x3e";break;default:throw Error("Unknown type "+a.type);}return c}var G,r,H,$,S,X,E,aa;G={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"};r={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;S=a;X=S.length;$=H=0;e||(S=S.split(""));q();d=W();if(b&&b.midstream)return{expression:d,index:$};if(E!==r.EOF)throw"not reach to EOF";return d};a.parseParamType=function(a,b){var d;S=a;X=S.length;$=H=0;e||(S=S.split(""));q();d=P();if(b&&b.midstream)return{expression:d,index:$};if(E!==r.EOF)throw"not reach to EOF";return d};a.stringify=function(a,b){null==b&&(b={});return Z(a,b.compact,b.topLevel)};a.Syntax=G})(z={});(function(b){function d(){var a=w[C];C+=1;return a}
function g(){var a="";for(d();C<R&&("a"<=w[C]&&"z">=w[C]||"A"<=w[C]&&"Z">=w[C]||"0"<=w[C]&&"9">=w[C]);)a+=d();return a}function q(){var a,b,d=C;for(b=!1;d<R;){a=w[d];if(h(a))b=!0;else if(b){if("@"===a)break;f(a)||(b=!1)}d+=1}return d}function s(a,b){var e,l,q;for(q=!1;C<b;)if(e=w[C],f(e))d();else{"{"===e?d():q=!0;break}if(q){q=c(w,C,b);try{return l="param"===a?z.parseParamType(q,{midstream:!0}):z.parseType(q,{midstream:!0}),C+=l.index,l.expression}catch(k){}}else{l=0;for(q="";C<b;){e=w[C];if(h(e))return;
if("}"===e)if(0===l){d();break}else l-=1;else"{"===e&&(l+=1);q+=d()}try{return"param"===a?z.parseParamType(q):z.parseType(q)}catch(g){}}}function m(a,b){for(var c,e,q;C<a&&(f(w[C])||h(w[C]));)d();if(!(C>=a)){if(!k(w[C]))if(b&&"["===w[C])q=!0;else return;for(e=d();C<a;){c=w[C];if(f(c)||h(c)){d();break}if(q&&"]"===w[C]){e+=d();break}if(!("$"===c||"_"===c||"\\"===c||"a"<=c&&"z">=c||"A"<=c&&"Z">=c||"0"<=c&&"9">=c||128<=c.charCodeAt(0)&&l.NonAsciiIdentifierPart.test(c)))return;e+=d()}q&&"]"===w[C]&&(e+=
d());return e}}function F(){function a(d){b.errors||(b.errors=[]);b.errors.push(d)}for(var b,e,f;C<R&&"@"!==w[C];)d();if(!(C>=R)){p("@"===w[C]);e=g();b={title:e,description:null};if(!e&&(a("Missing or invalid title"),!K))return;f=q(e);if("define"===e||"enum"===e||"extends"===e||"implements"===e||"param"===e||"return"===e||"this"===e||"type"===e||"typedef"===e||"throws"===e||"returns"===e||"property"===e||"augments"===e)if(b.type=s(e,f),!b.type&&(a("Missing or invalid tag type"),!K))return;if("param"===
e||"property"===e)if(b.name=m(f,W&&"param"===e),b.name)"["===b.name.charAt(0)&&"]"===b.name.charAt(b.name.length-1)&&(b.name=b.name.substring(1,b.name.length-1),e={type:"OptionalType",expression:b.type},b.type=e);else if(a("Missing or invalid tag name"),!K)return;if(e=u(c(w,C,f)))b.description=e;C=f;return b}}var C,R,w,K,W;b.parse=function(b,c){var f=[],l,q,k;void 0===c&&(c={});w="boolean"===typeof c.unwrap&&c.unwrap?a(b):b;if(c.tags)if(x(c.tags)){k={};l=0;for(q=c.tags.length;l<q;l++)if("string"===
typeof c.tags[l])k[c.tags[l]]=!0;else throw Error('Invalid "tags" parameter: '+c.tags);}else throw Error('Invalid "tags" parameter: '+c.tags);e||(w=w.split(""));R=w.length;C=0;K=c.recoverable;W=c.sloppy;for(l="";C<R&&"@"!==w[C];)l+=d();for(q=u(l);;){l=F();if(!l)break;(!k||k.hasOwnProperty(l.title))&&f.push(l)}return{description:q,tags:f}}})(s={});b.version="0.0.4";b.parse=s.parse;b.parseType=z.parseType;b.parseParamType=z.parseParamType;b.unwrapComment=a;b.Syntax=function(a){var b={},d;for(d in a)a.hasOwnProperty(d)&&
(b[d]=a[d]);return b}(z.Syntax);b.type={Syntax:b.Syntax,parseType:z.parseType,parseParamType:z.parseParamType,stringify:z.stringify}})("undefined"===typeof exports?doctrine={}:exports);define("doctrine/doctrine",function(){});
define("javascript/contentAssist/typeUtils",["javascript/contentAssist/proposalUtils","doctrine/doctrine"],function(b,c){function h(a){if(!a||a.type)return a;try{return doctrine.parseParamType(a)}catch(b){return console.error("doctrine failure to parse: "+a),{}}}function f(a){if("string"!==typeof a)throw Error("Expected string, but found: "+JSON.parse(a));return{type:"NameExpression",name:a}}function g(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,f;for(f in a)if(a.hasOwnProperty(f)&&(c++,1<c))break;return 1===c?g(a.$$proto.typeObj.name,b,d):!1}var d=f("Object"),k=/\$\$__JUST_DOTS__\$\$/g,m=/:undefined|:\{\}/g,p=function(a,b,d){this._typeObj=h(a);this.range=b;this.path=d};p.prototype={set typeObj(a){"string"===typeof a&&(a=h(a));this._typeObj=a},get typeObj(){return this._typeObj}};p.revive=function(a){var b=new p,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:p,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 k=this,g=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 k.convertJsDocType(a,b,c,f)})};case "RestType":return{type:a.type,expression:k.convertJsDocType(a.expression,b,c,f)};case "ArrayType":return{type:a.type,elements:a.elements.map(function(a){return k.convertJsDocType(a,b,c,f)})};case "FunctionType":var m=
{type:a.type,params:a.params.map(function(a){return k.convertJsDocType(a,b,c,f)})};a.result&&(m.result=2<f?{type:"NameExpression",name:"$$__JUST_DOTS__$$"}:k.convertJsDocType(a.result,b,c,f));return m;case "TypeApplication":return m={type:a.type,expression:k.convertJsDocType(a.expression,b,c,f)},a.applications&&(m.applications=a.applications.map(function(a){return k.convertJsDocType(a,b,c,f)})),m;case "ParameterType":return{type:a.type,name:g,expression:a.expression?k.convertJsDocType(a.expression,
b,c,f):null};case "NonNullableType":case "OptionalType":case "NullableType":return{prefix:!0,type:a.type,expression:k.convertJsDocType(a.expression,b,c,f)};case "NameExpression":if(c&&b.isSyntheticName(g)){var A=h[g];if(A.$$fntype)return k.convertJsDocType(A.$$fntype,b,c,f);var q=[];Object.keys(A).forEach(function(a){if("$$proto"!==a&&"$$isBuiltin"!==a){var d=A[a],d=0<f&&"NameExpression"===d.typeObj.type&&b.isSyntheticName(d.typeObj.name)&&!h[d.typeObj.name].$$fntype?{type:"NameExpression",name:"$$__JUST_DOTS__$$"}:
k.convertJsDocType(d.typeObj,b,c,f+1);q.push({type:"FieldType",key:a,value:d})}});return{type:"RecordType",fields:q}}if(h[g])return{type:"NameExpression",name:g};a=g[0].toUpperCase()+g.substring(1);if(h[a])return{type:"NameExpression",name:a};break;case "FieldType":return{type:a.type,key:a.key,value:k.convertJsDocType(a.value,b,c,f)};case "RecordType":if(c)return{type:a.type,params:a.fields.map(function(a){return k.convertJsDocType(a,b,c,f+1)})};for(var g={},p=0;p<a.fields.length;p++){var V=k.convertJsDocType(a.fields[p],
b,c,f+1);g[V.key]=V.value}a=b.newFleetingObject();for(m in g)g.hasOwnProperty(m)&&b.addVariable(m,a.name,g[m]);return a}return d},createNameType:f,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(k,"{...}");return a=a.replace(m,"")}a=this.extractReturnType(a);return this.createReadableType(a,b,!0,c,f)},convertToHtml:function(a,
d){var c=this,f,k=[];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 k=[],a.expressions&&a.expressions.forEach(function(a){k.push(c.convertToHtml(a,
d+1))}),"( "+k.join(", ")+" )";case "TypeApplication":a.applications&&a.applications.forEach(function(a){k.push(c.convertToHtml(a,d))});var g="Array"===a.expression.name;g||(f=this.convertToHtml(a.expression,d)+".\x3c");f+=k.join(",");return g?f+"[]":f+"\x3e";case "ArrayType":return a.elements&&a.elements.forEach(function(a){k.push(c.convertToHtml(a,d+1))}),k.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,m;a.params&&a.params.forEach(function(a){"this"===a.name?(h=!0,m=a.expression):"new"===a.name?(h=!0,m=a.expression):k.push(c.convertToHtml(a,d+1))});!m&&a.result&&(m=a.result);g=m&&"UndefinedLiteral"!==
m.type&&"undefined"!==m.name?this.convertToHtml(m,d+1):"";f=this.styleAsOther(h?"new ":"function",!0);h&&(f+=g);f+="("+k.join(",")+")";!h&&g&&(f+="\x26rarr;"+g);return f;case "RecordType":return a.fields&&0<a.fields.length?(a.fields.forEach(function(a){k.push(b.repeatChar("\x26nbsp;\x26nbsp;",d+1)+c.convertToHtml(a,d+1))}),"{\x3cbr/\x3e"+k.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:g(c,d.getAllTypes())?2:3;return 0===a?"undefined"!==b:1===a?"undefined"!==b&&"Object"!==b:2===a?"undefined"!==b&&"Object"!==b&&!g(b,d.getAllTypes()):!1},isEmpty:g,ensureTypeObject:h,isUpperCaseChar:function(a){return 1>a.length||isNaN(a.charCodeAt(0))?!1:a.toLocaleUpperCase().charAt(0)===
a.charAt(0)},OBJECT_TYPE:d,UNDEFINED_TYPE:f("undefined"),NUMBER_TYPE:f("Number"),BOOLEAN_TYPE:f("Boolean"),STRING_TYPE:f("String"),ARRAY_TYPE:f("Array"),FUNCTION_TYPE:f("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,h,f,g,d){function k(a){if(g.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 m(a,b,d){var c;a=a.substring(3,a.length).replace(/\s+/g,"");for(c="";")"!==a.charAt(0);){var e=a.indexOf(":"),f=a.slice(0,e),q="?"===f[f.length-1];q&&(f=f.slice(0,f.length-1));a=a.slice(e+1,a.length);var l=e=null;"f"===a.charAt(0)&&"n"===a.charAt(1)?(l=a.indexOf(")"),e=a.indexOf(",",l)):e=a.indexOf(",");var A=null;-1!==e?A=e:(A=null,A=l?a.indexOf("-\x3e",a.indexOf(")",l+1)):a.indexOf("-\x3e"),A=-1!==A?A-1:a.length-1);l=a.slice(0,A);l=p(d,l);c+=f+":"+k(l);q&&(c+="\x3d");-1!==
e?(c+=",",a=a.slice(A+1,a.length)):a=a.slice(A,a.length)}a=a.slice(1,a.length);var h;""!==a?h=k(p(d,a.substring(2,a.length))):b&&(h=b);b="function(";!a&&(h&&g.isUpperCaseChar(h))&&(b+="new:"+h,c&&(b+=","));return b+(c+"):"+h)}function p(a,b,d){if("string"===typeof b){if(x[b])return new g.Definition(x[b]);if("?"===b)return"undefined"===d?new g.Definition({name:"undefined",type:"NameExpression"}):d?new g.Definition(d):new g.Definition("Object");if("\x3ctop\x3e"===b)return new g.Definition("Global");
if("$"===b[0])return new g.Definition(d);if("fn"===b.slice(0,2))return new g.Definition(m(b,d,a));if("["===b[0])return a=p(a,b.slice(1,b.length-1)),a.typeObj&&"Object"===a.typeObj.name?new g.Definition("Array"):g.createAppliedArray(a.typeObj);if("!custom"===b.slice(0,7)||"!this"===b.slice(0,5)||"!0"===b.slice(0,2))return new g.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 g.Definition(b)}var c=b,e={},f,q;for(q in c)if(Object.prototype.hasOwnProperty.call(c,q))if("!type"===q)f=p(a,c[q],d),g.isFunctionOrConstructor(f.typeObj)&&(e.$$fntype=f.typeObj,f=d?new g.Definition(d):new g.Definition(M+J++));else if("!proto"===q)e.$$proto=p(a,c[q]);else if(!("!url"===q||"!stdProto"===q||"!effects"===q||"!doc"===q)){if("!"===q[0])throw"didn't handle special property "+q;"prototype"===q?(e.$$prototype=p(a,c[q]),e.$$newtype=e.$$prototype):e[q]=p(a,c[q])}e.$$prototype&&(e.$$fntype&&
"string"===typeof c.prototype)&&(e.$$fntype.result.name=e.$$prototype.typeObj.name);f||(f=d?new g.Definition(d):new g.Definition(M+J++));d=f;if((c=d.typeObj.name)&&"Global"!==c&&(!b["!type"]||!A.test(b["!type"])&&!("["===b["!type"].slice(0,1)||"+"===b["!type"].slice(0,1))))if("Object"===c){b={};for(var k in e)Object.prototype.hasOwnProperty.call(e,k)&&(b["$_$"+k]=e[k]);b.$$isBuiltin=!0;a[c]=b}else{if(a[c])throw"type "+c+" defined twice in index file";e.$$isBuiltin=!0;a[c]=e}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 e=a[c],f;for(f in e)Object.prototype.hasOwnProperty.call(e,f)&&p(d,e[f],f)}else b[c]="string"===typeof a[c]?p(d,{"!type":a[c]},c):p(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]});e.prototype=d;a.Global=new e;e.prototype=z;Object.keys(b.types).forEach(function(d){"Global"!==
d&&(a[d]=b.types[d])});return a}function l(a,b){if(!a||!b)throw Error("Missing parameter");var d=ba[a];d||(d={globals:{},types:{}},u(b,d.globals,d.types),ba[a]=d);return d}var e=function(){},z={};e.prototype=z;b=function(a){this.Global=new e};var s={};b.prototype=s;var x={number:"Number",bool:"Boolean",string:"String"},M=g.GEN_NAME+"index~",J=0,A=/^[_$a-zA-Z\xA0-\uFFFF]([_$a-zA-Z0-9\.\xA0-\uFFFF])*$/;z.$$proto=new g.Definition("Object");var q=null,ba={};return{Types:b,getGlobalsAndTypes:l,addLibrary:function(b,
d){var e;if("browser"===d)e=c;else if("node"===d)e=f;else throw Error("unknown built-in library name: "+d);e=l(d,e);return a(b,e)},ternSig2ClosureSig:m,init:function(){if(!q){var a=new d;u(h,z,s);a.resolve();q=a.promise}return q},parseType:function(a,b){var d={};return{def:p(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,h){function f(b,c){return!(c in b)?!1:Object.hasOwnProperty(c)?!b.hasOwnProperty(c):Object.prototype.hasOwnProperty(c)?b.hasOwnProperty(c):!0}function g(b,f){return c.init().then(function(){var g=new c.Types;f&&f.forEach(function(b){c.addIndexData(b,g)});var p=null;"Window"===b?p=c.addLibrary(g,"browser"):"Module"===b?p=c.addLibrary(g,
"node"):(p=new h,p.resolve(g),p=p.promise);return p})}return{createEnvironment:function(d){function c(a,d,e,f,l){var g=e[d];e=e.$$proto;if(g)return f||"$$fntype"===d?g:g.typeObj;if(e){if(l){if(l[e.typeObj.name])return null}else l={};b.isArrayType(e.typeObj)&&(e.typeObj=b.extractArrayParameterType(e.typeObj));l[e.typeObj.name]=!0;return c(a,d,a.lookupQualifiedType(e.typeObj.name),f,l)}return null}var h=d.buffer,p=d.uid,u=d.offset,a=d.indexer,l=d.globalObjName,e=d.indexData;u||(u=h.length+1);var z=
[];if(d.comments)for(var s=0;s<d.comments.length;s++)z[s]=d.comments[s];var x=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}},M=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}(p)+"~";return g(l,e).then(function(d){return{_scopeStack:["Global"],
_allTypes:d,_typeCount:0,_nameStack:[],amdModule:null,commonjsModule:null,nodeJSModule:"Module"===l,globalObjName:l,indexer:a,offset:u,contents:h,uid:"local"===p?null:p,comments:z,newName:function(){return M+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,e,l){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&&(!f(d,a)||!b.leftTypeIsMoreGeneral(c,d[a].typeObj,this)))return d[a]=new b.Definition(c?c:b.OBJECT_TYPE,e,this.uid),d[a].docRange=l,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,e,l){if("prototype"===a)a="$$prototype";else if("__proto__"===a)a="$$proto";else if(this._allTypes.Object["$_$"+a])return;d=this.scope(d);
var k=this._allTypes[d],g=!1;c=c?c:this.newFleetingObject();for(var h;k;)if(f(k,a)){h=k[a];!k.$$isBuiltin&&(k.hasOwnProperty(a)&&!b.leftTypeIsMoreGeneral(c,h.typeObj,this))&&(h.typeObj=c,l&&(h.docRange=l),"$$prototype"===a&&k.$$newtype&&(this._allTypes[k.$$newtype.typeObj.name].$$proto.typeObj=c));g=!0;break}else k=k.$$proto?this._allTypes[k.$$proto.typeObj.name||"Function"]:null;if(!g&&(d=this.lookupQualifiedType(d,!0))&&!d.$$isBuiltin)h=new b.Definition(c,e,this.uid),h.docRange=l,d[a]=h;return h},
lookupQualifiedType:function(a,b){for(var d=a.split(".."),e=this._allTypes[d[0]],f=1;f<d.length;f++)e=c(this,x(d[f]),e,b),e=this._allTypes[e.name];return e},lookupTypeObj:function(a,b,d){b=this.scope(b);b=this.lookupQualifiedType(b,d);return c(this,x(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 e=this._allTypes[c],
f=a.types[c];if(!e||e.$$isBuiltin){var e=this._allTypes[c]={},k;for(k in f)e[k]||(e[k]=b.Definition.revive(f[k]))}}c=this._allTypes[d];if("string"!==typeof a.provided)for(var l in a.provided)a.provided.hasOwnProperty(l)&&(c[l]=b.Definition.revive(a.provided[l]))},initFunctionType:function(a,d,c,e){c=c.name;var f=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(f,null,
this.uid);e||(e=c+"~new");this.newObject(e,d.range);this._allTypes[c].$$newtype=new b.Definition(e,null,this.uid);this._allTypes[e].$$proto=new b.Definition(f,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&&e.isSyntheticName(a[c].typeObj.name)&&"NameExpression"===d[c].typeObj.type&&e.isSyntheticName(d[c].typeObj.name)){var f=e._allTypes[a[c].typeObj.name],
k=e._allTypes[d[c].typeObj.name];f&&k&&b(f,k)}}else a[c]=d[c]}var d=a.extras.inferredTypeObj.name;if(d){var c={},e=this;b(c,this._allTypes[d]);a=a.properties;for(d=0;d<a.length;d++)if(a[d].hasOwnProperty("key")){var f=a[d].key.name;f&&"FunctionExpression"===a[d].value.type&&(f=a[d].value.extras.inferredTypeObj.name,f=this._allTypes[this._allTypes[f].$$newtype.typeObj.name],b(c,f))}for(d=0;d<a.length;d++)if(a[d].hasOwnProperty("key")&&(f=a[d].key.name)&&"FunctionExpression"===a[d].value.type){var f=
a[d].value.extras.inferredTypeObj.name,f=this._allTypes[this._allTypes[f].$$newtype.typeObj.name],k;for(k in c)c.hasOwnProperty(k)&&!f.hasOwnProperty(k)&&(f[k]=c[k])}}},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{restricted:{range:!0,errors:!0,target:!0,extras:!0,comments:!0,parent:!0,tokens:!0},visit:function(b,c,h,f){if(h(b,c,!0)){var g,d,k=[];for(d in b)if(!this.restricted[d]){var m=b[d];if(m instanceof Array)for(g=0;g<m.length;g++)m[g]&&m[g].type&&k.push(m[g]);else m&&m.type&&k.push(m)}if(0<k.length)for(g=0;g<k.length;g++)this.visit(k[g],c,h,f);f&&f(b,c,!1)}}}});
define("javascript/contentAssist/typeInference",["javascript/contentAssist/esprimaVisitor","javascript/contentAssist/typeUtils","javascript/contentAssist/proposalUtils"],function(b,c,h){function f(a){return a?"Identifier"===a.type?a:"MemberExpression"===a.type?a.computed?"Literal"===a.property.type&&"string"===typeof a.property.value?a.property:a:f(a.property):"ArrayExpression"===a.type?a:null:null}function g(a){if(a){if("Identifier"===a.type)return a.name;if("MemberExpression"===a.type){var b=g(a.object);
a=g(a.property);return 0<b.length&&0<a.length?b+"."+a:b+a}return"CallExpression"===a.type?g(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 k(a,l){var e=a.type,m,s,x,M,J,A;a.extras||(a.extras={});switch(e){case "Program":a:{if((e=a.body)&&1<=e.length)for(A=0;A<e.length;A++)if(e[A]&&("ExpressionStatement"===e[A].type&&e[A].expression&&"CallExpression"===e[A].expression.type&&"define"===e[A].expression.callee.name)&&(x=
e[A].expression,x.arguments&&(1===x.arguments.length&&"FunctionExpression"===x.arguments[0].type&&3===x.arguments[0].params.length)&&(x=x.arguments[0].params,"require"===x[0].name&&"exports"===x[1].name&&"module"===x[2].name))){e=e[A].expression;break a}e=null}l.commonjsModule=e;l.commonjsModule||(e=(e=a.body)&&1<=e.length&&e[0]&&"ExpressionStatement"===e[0].type&&e[0].expression&&"CallExpression"===e[0].expression.type&&"define"===e[0].expression.callee.name?e[0].expression:null,l.amdModule=e);break;
case "BlockStatement":a.extras.inferredTypeObj=l.newScopeObj();if(a.extras.stop)return p(a,l),delete a.extras.stop,!1;break;case "ArrayExpression":a.extras.inferredTypeObj=c.ARRAY_TYPE;break;case "ObjectExpression":a.extras.fname&&l.pushName(a.extras.fname);M=l.newObject(null,a.range);a.extras.inferredTypeObj=M;for(s=0;s<a.properties.length;s++)if(m=a.properties[s],m.key&&m.key.name&&(e=d(m.key,l.comments),J=c.parseJSDocComment(e),A=J.type&&c.convertJsDocType(J.type,l),m.key.extras||(m.key.extras=
{}),A?m.key.extras.inferredType=m.key.extras.jsdocType=x=A:x=c.OBJECT_TYPE,l.addVariable(m.key.name,a,x,m.key.range,e.range),m.key.extras.associatedComment=e,m.key.extras.isLHS=m.key.extras.isDecl=!0,"FunctionExpression"===m.value.type||"ObjectExpression"===m.value.type))m.value.extras||(m.value.extras={}),m.value.extras.fname=m.key.name,m.value.extras.cname=l.getQualifiedName()+m.key.name,"FunctionExpression"===m.value.type&&(m.value.extras.jsdocResult=J);break;case "FunctionDeclaration":case "FunctionExpression":a.id?
(m=a.id.name,A=a.id.range):a.extras.fname&&(m=a.extras.fname,A=a.range);x=[];if(a.params)for(s=0;s<a.params.length;s++)x[s]=a.params[s].name;a.extras.jsdocResult?(J=a.extras.jsdocResult,e={range:null}):(e=a.extras.associatedComment||d(a,l.comments),J=c.parseJSDocComment(e));var q;if(m&&a.body&&c.isUpperCaseChar(m))a.extras.cname&&(m=a.extras.cname),M=c.createNameType(m),q=!0;else{if(J.rturn){var u=c.convertJsDocType(J.rturn,l);M=a.extras.jsdocReturn=u;a.extras.inferredTypeObj=u}else M=c.UNDEFINED_TYPE;
q=!1}var V=Array(x.length);if(a.extras.paramTypeObj&&"FunctionType"===a.extras.paramTypeObj.type){var u=a.extras.paramTypeObj.params,F=Math.min(x.length||0,u.length||0);for(s=0;s<F;s++)V[s]=u[s]}else if(a.extras.stashedArguments){F=Math.min(x.length||0,a.extras.stashedArguments.length||0);for(s=0;s<F;s++)V[s]=a.extras.stashedArguments[s].extras.inferredTypeObj}a.body.extras||(a.body.extras={});a.body.extras.isConstructor=q;u=[];if(0<x.length){F=[];s=a.params;var C;if(0<s.length&&(a.extras||(a.extras=
{}),l.indexer&&a.extras.amdDefn&&(C=a.extras.amdDefn.arguments,1<C.length&&C[C.length-1]===a))){var R=null;3===C.length&&"Literal"===C[0].type&&"ArrayExpression"===C[1].type?R=C[1].elements:2===C.length&&"ArrayExpression"===C[0].type&&(R=C[0].elements);if(R)for(C=0;C<s.length;C++)if(C<R.length&&"Literal"===R[C].type){var w=l.indexer.retrieveSummary(R[C].value,l);if(w){var K,W;"string"===typeof w.provided?W=K=w.provided:(W=K=l.newScope(),l.popScope());l.mergeSummary(w,W);F.push(K)}else F.push(l.newFleetingObject())}else F.push(c.OBJECT_TYPE)}if(0===
F.length)for(C=0;C<s.length;C++)F.push(l.newFleetingObject());for(s=0;s<x.length;s++)R=J.params[x[s]],C=null,C=R?c.convertJsDocType(R,l):F[s],V[s]&&c.leftTypeIsMoreGeneral(C,V[s],l)&&(C="ParameterType"===V[s].type?V[s].expression:V[s]),u.push(c.createParamType(x[s],C))}J=c.createFunctionType(u,M,q);V=l.newFleetingObject();m&&!h.isBefore(l.offset,a.range)&&l.addVariable(m,a.extras.target,V,A,e.range);l.initFunctionType(J,a,V,q?M.name:void 0);q&&l.addOrSetGlobalVariable(m,V,A,e.range);a.extras.inferredTypeObj=
V;l.addVariable("arguments",a.extras.target,c.createNameType("Arguments"),a.range);if(J=a.extras.appliesTo)if(J=J.extras.target)J=l.scope(J),c.isPrototypeName(J)&&(J=c.extractReturnType(J)),l.addVariable("this",a.extras.target,c.createNameType(J),A,e.range);for(s=0;s<x.length;s++)l.addVariable(x[s],a.extras.target,u[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=l.getQualifiedName()+a.id.name,a.init.extras.fnameRange=a.id.range):(e=d(a,l.comments),J=c.parseJSDocComment(e),A=J.type&&c.convertJsDocType(J.type,l),a.extras.docRange=e.range,A&&(a.extras.inferredTypeObj=A,a.extras.jsdocType=A,l.addVariable(a.id.name,a.extras.target,A,a.id.range,e.range))));l.pushName(a.id.name);break;case "AssignmentExpression":x=f(a.left);m=l.getQualifiedName()+g(a.left);if(x&&("Identifier"===
x.type||"Literal"===x.type))x.extras||(x.extras={}),"FunctionExpression"===a.right.type&&(a.right.extras||(a.right.extras={}),a.right.extras.appliesTo=x,a.right.extras.fname=x.name,a.right.extras.cname=m,a.right.extras.fnameRange=x.range,a.left.extras||(a.left.extras={})),e=d(a,l.comments),J=c.parseJSDocComment(e),A=J.type&&c.convertJsDocType(J.type,l),a.extras.docRange=e.range,A&&(a.extras.inferredTypeObj=A,a.extras.jsdocType=A,l.addVariable(x.name,a.extras.target,A,x.range,e.range));l.pushName(m);
break;case "CatchClause":a.extras.inferredTypeObj=l.newScope();a.param&&(a.param.extras||(a.param.extras={}),e=c.createNameType("Error"),a.param.extras.inferredTypeObj=e,l.addVariable(a.param.name,a.extras.target,e,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)e=a.arguments,1<e.length&&("FunctionExpression"===e[e.length-1].type&&"ArrayExpression"===e[e.length-2].type)&&(e[e.length-1].extras||(e[e.length-1].extras={}),e[e.length-1].extras.amdDefn=a);else if((x=f(a.callee))&&"Identifier"===x.type)x.extras=x.extras||{},x.extras.callArgs=a.arguments;else if("FunctionExpression"===a.callee.type&&a.arguments){for(e=0;e<a.arguments.length;e++)b.visit(a.arguments[e],l,k,p);a.callee.extras||(a.callee.extras={});a.callee.extras.stashedArguments=a.arguments;
delete a.arguments}}a===l.defer&&(a.extras.associatedComment=d(a,l.comments),a.extras.inferredTypeObj=a.extras.inferredTypeObj||c.OBJECT_TYPE,a.extras.scope=l.scope(a.extras.target),a.body.extras.stop=!0);return!0}function m(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:m(b)):null;case "WhileStatement":case "DoWhileStatement":case "ForStatement":case "ForInStatement":case "CatchClause":return m(a.body);
case "IfStatement":return(b=m(a.alternate))||(b=m(a.consequent)),b;case "TryStatement":b=m(a.finalizer);var c=a.handlers;if(!b&&c)for(d=c.length-1;0<=d&&!(b=m(c[d]));d--);b||(b=m(a.block));return b;case "SwitchStatement":if(a=a.cases)for(d=a.length-1;0<=d&&!(b=m(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:m(b)):null;case "ReturnStatement":return a;default:return null}}function p(a,d){var e,g,
s,x;switch(a.type){case "Program":throw d.defer&&(d.comments=d.deferredComments,e=d.defer,d.defer=null,d.targetTypeName=null,d.pushScope(e.extras.scope),b.visit(e.body,d,k,p),d.popScope()),d.storeTarget(),d.targetTypeName;case "BlockStatement":case "CatchClause":h.inRange(d.offset,a.range)&&d.storeTarget();d.popScope();break;case "MemberExpression":h.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(e=a.arguments[0],"Literal"===e.type&&"string"===typeof e.value&&d.indexer&&(e=d.indexer.retrieveSummary(e.value,
d))){"string"===typeof e.provided?g=s=e.provided:(g=s=d.newScope(),d.popScope());d.mergeSummary(e,g);e=c.ensureTypeObject(s);break a}e=void 0}e||(e=c.extractReturnType(d.getFnType(a.callee)));a.extras.inferredTypeObj=e;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":x=
a.properties;for(s=0;s<x.length;s++)if(x[s].hasOwnProperty("key")&&(e=x[s].key.name)){var M=null;if(e===x[s].value.name&&(g=d.lookupTypeObj(x[s].value.name,null,!0))&&g.range&&c.isFunctionOrConstructor(g.typeObj))M=g.range;M||(M=x[s].key.range);g=x[s].key.extras.jsdocType||x[s].value.extras.inferredTypeObj;d.addVariable(e,a,g,M,x[s].key.extras.associatedComment.range);h.inRange(d.offset-1,x[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?(e=a.id?a.id.range:a.extras.fnameRange,d.addOrSetVariable(c.extractReturnType(a.extras.inferredTypeObj),a.extras.target,a.extras.inferredTypeObj,e)):(a.extras.jsdocReturn||(s=m(a.body),d.updateReturnType(a.extras.inferredTypeObj,
s&&s.extras&&s.extras.inferredTypeObj?s.extras.inferredTypeObj:c.UNDEFINED_TYPE)),a.id?(g=a.id.name,e=a.id.range):a.extras.appliesTo&&(g=a.extras.fname,e=a.extras.fnameRange),g&&d.addOrSetVariable(g,a.extras.target,a.extras.inferredTypeObj,e)));break;case "VariableDeclarator":g=a.init?a.init.extras.inferredTypeObj:d.newFleetingObject();a.id.extras.inferredTypeObj=g;a.extras.jsdocType||(a.extras.inferredTypeObj=g,d.addVariable(a.id.name,a.extras.target,g,a.id.range,a.extras.docRange));h.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":g=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=g;if((s=f(a.left))&&("Identifier"===
s.type||"Literal"===s.type))e=s.name?s.name:s.value,s.extras.inferredTypeObj=g,d.addOrSetVariable(e,s.extras.target,g,s.range,a.extras.docRange),h.inRange(d.offset-1,s.range)&&d.storeTarget(d.scope(s.extras.target));else if(a.left.computed&&(s=f(a.left.object))&&!("Identifier"===s.type&&"prototype"===s.name))e=c.parameterizeArray(g),a.left.extras.inferredTypeObj=g,a.left.object.extras.inferredTypeObj=e,d.addOrSetVariable(s.name,s.extras.target,e,s.range,a.extras.docRange);d.popName();break;case "Identifier":if(e=
a.name)if((g=d.lookupTypeObj(e,a.extras.target))&&!a.extras.isDecl){a.extras.inferredTypeObj=g;h.inRange(d.offset,a.range,!0)&&d.storeTarget(d.scope(a.extras.target));if(a.extras.callArgs&&"FunctionType"===g.type){x=g.params;var M=a.extras.callArgs,J=Math.min(M.length||0,x.length||0);for(s=0;s<J;s++)M[s].extras=M[s].extras||{},M[s].extras.paramTypeObj="ParameterType"===x[s].type?x[s].expression:x[s]}a.extras.paramTypeObj&&c.leftTypeIsMoreGeneral(g,a.extras.paramTypeObj,d)&&(a.extras.inferredTypeObj=
g=a.extras.paramTypeObj,d.addOrSetVariable(e,a.extras.target,g))}else if(!a.extras.isLHS)if(!h.inRange(d.offset,a.range,!0)&&!0!==u[e])if(a.extras.target){if(e=d.addVariable(e,a.extras.target,d.newFleetingObject(),a.range))a.extras.inferredTypeObj=e.typeObj}else a.extras.inferredTypeObj=d.addOrSetGlobalVariable(e,null,a.range).typeObj;else d.storeTarget(d.scope(a.extras.target));break;case "ThisExpression":a.extras.inferredTypeObj=d.lookupTypeObj("this");h.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?(e=a.value,g=d.lookupTypeObj(e,a.extras.target),a.extras.inferredTypeObj=g):a.extras.target&&"number"===typeof a.value?a.extras.inferredTypeObj=c.NUMBER_TYPE:(e=typeof a.value,a.extras.inferredTypeObj=c.createNameType(e[0].toUpperCase()+e.substring(1,e.length)));break;case "ConditionalExpression":if(e=a.consequent?a.consequent:a.alternate)a.extras.inferredTypeObj=
e.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,g;if(c&&Array.isArray(c.global))for(f=0;f<c.global.length;f++)g=c.global[f],d.lookupTypeObj(g)||d.addOrSetVariable(g);if(g=d.comments)for(f=0;f<g.length;f++)if(c=g[f].range,"Block"===g[f].type&&"global"===g[f].value.substring(0,6)){f=g[f].value.split(/\s+/);for(var m=1;m<f.length;m++)0<f[m].length&&(g=f[m].indexOf(":"),g=0<=g?f[m].substring(0,g).trim():f[m].trim(),d.lookupTypeObj(g)||d.addOrSetVariable(g,
null,null,c));break}if(d.indexer){c=d.indexer.retrieveGlobalSummaries();for(var h in c)c.hasOwnProperty(h)&&d.mergeSummary(c[h],d.globalTypeName())}h=[];for(c=0;c<d.comments.length;c++)"*"===d.comments[c].value.charAt(0)&&h.push(d.comments[c]);d.comments=h;try{b.visit(a,d,k,p)}catch(J){if("string"!==typeof J)throw J;return J}throw Error("The visit function should always end with a throwable");}}});
define("orion/editor/templates",[],function(){function b(b,c,g,d){this.prefix=b;this.description=c;this.template=g;this.name=d;this._parse()}function c(b,c){this._keywords=b||[];this._templates=[];this.addTemplates(c||[])}b.prototype={getProposal:function(b,c,g){b=c-b.length;c={};var d,k=void 0!==g.delimiter?g.delimiter:"\n";g.indentation&&(k+=g.indentation);var m=void 0!==g.tab?g.tab:"\t",p=0,u=this.variables,a=this.segments;g=[];for(var l=0;l<a.length;l++){var e=a[l],z=u[e];if(void 0!==z)switch(e){case "${tab}":e=
m;break;case "${delimiter}":e=k;break;case "${cursor}":e="";d=p;break;default:var s=c[e];s||(s=c[e]={data:z.data,positions:[]});e=z.substitution;s.data&&s.data.values&&(e=s.data.values[0]);s.positions.push({offset:b+p,length:e.length})}g.push(e);p+=e.length}var k=[],x;for(x in c)c.hasOwnProperty(x)&&k.push(c[x]);g=g.join("");void 0===d&&(d=g.length);return{proposal:g,name:this.name,description:this.description,groups:k,escapePosition:b+d,style:"noemphasis"}},match:function(b){return 0===this.prefix.indexOf(b)},
_parse:function(){var b=this.template,c=[],g={},d,k=0,b=b.replace(/\n/g,"${delimiter}"),b=b.replace(/\t/g,"${tab}");b.replace(/\$\{((?:[^\\}]+|\\.))*\}/g,function(m,p,u){var a=m.substring(2,m.length-1);p=m;var l=a,e=null,z=l.indexOf(":");-1!==z&&(l=l.substring(0,z),p="${"+l+"}",e=JSON.parse(a.substring(z+1).replace("\\}","}").trim()));(a=g[p])||(a=g[p]={});a.substitution=l;e&&(a.data=e);(d=b.substring(k,u))&&c.push(d);c.push(p);k=u+m.length;return l});(d=b.substring(k,b.length))&&c.push(d);this.segments=
c;this.variables=g}};c.prototype={addTemplates:function(c){for(var f=this.getTemplates(),g=0;g<c.length;g++)f.push(new b(c[g].prefix,c[g].description,c[g].template,c[g].name))},initialize:function(){},computeProposals:function(b,c,g){var d=this.getPrefix(b,c,g),k=[];this.isValid(d,b,c,g)&&(k=k.concat(this.getTemplateProposals(d,c,g)),k=k.concat(this.getKeywordProposals(d)));return k},getKeywords:function(){return this._keywords},getKeywordProposals:function(b){var c=[],g=this.getKeywords();if(g){for(var d=
0;d<g.length;d++)0===g[d].indexOf(b)&&c.push({proposal:g[d].substring(b.length),description:g[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,g){return g.prefix},getTemplates:function(){return this._templates},getTemplateProposals:function(b,c,g){for(var d=[],k=this.getTemplates(),m=0;m<k.length;m++){var p=k[m];p.match(b)&&(p=p.getProposal(b,c,g),this.removePrefix(b,p),
d.push(p))}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,g,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("javascript/contentAssist/templates",["orion/editor/templates"],function(b){function c(c){if(c.t)return c.t;var g=new b.Template(c.prefix,c.description,c.template,c.name);return c.t=g}var h=[{prefix:"if",name:"if",nodes:{top:!0,member:!1,prop:!1},description:" - if statement",template:"if (${condition}) {\n\t${cursor}\n}"},{prefix:"if",name:"if",nodes:{top:!0,member:!1,prop:!1},description:" - if else statement",template:"if (${condition}) {\n\t${cursor}\n} else {\n\t\n}"},{prefix:"for",name:"for",
nodes:{top:!0,member:!1,prop:!1},description:" - iterate over array",template:"for (var ${i}\x3d0; ${i}\x3c${array}.length; ${i}++) {\n\t${cursor}\n}"},{prefix:"for",name:"for",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},description:" - switch case statement",template:"switch (${expression}) {\n\tcase ${value1}:\n\t\t${cursor}\n\t\tbreak;\n\tdefault:\n}"},{prefix:"case",name:"case",
nodes:{top:!0,member:!1,prop:!1,swtch:!0},description:" - case statement",template:"case ${value}:\n\t${cursor}\n\tbreak;"},{prefix:"try",name:"try",nodes:{top:!0,member:!1,prop:!1},description:" - try..catch statement",template:"try {\n\t${cursor}\n} catch (${err}) {\n}"},{prefix:"try",name:"try",nodes:{top:!0,member:!1,prop:!1},description:" - try..catch statement with finally block",template:"try {\n\t${cursor}\n} catch (${err}) {\n} finally {\n}"},{prefix:"typeof",name:"typeof",nodes:{top:!0,
member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},description:" - instanceof statement",template:"${object} instanceof ${type}"},{prefix:"with",name:"with",nodes:{top:!0,member:!1,prop:!1},description:" - with statement",template:"with (${object}) {\n\t${cursor}\n}"},
{prefix:"function",name:"function",nodes:{top:!0,member:!1,prop:!1},description:" - function declaration",template:"/**\n * @name ${name}\n * @param ${parameter}\n */\nfunction ${name} (${parameter}) {\n\t${cursor}\n}"},{prefix:"function",name:"function",nodes:{top:!1,member:!1,prop:!1,obj:!0},description:" - member function expression",template:"/**\n * @name ${name}\n * @function\n * @param ${parameter}\n */\n${name}: function(${parameter}) {\n\t${cursor}\n}"},{prefix:"function",name:"function",
nodes:{top:!1,member:!1,prop:!0,obj:!1},description:" - member function expression",template:"function(${parameter}) {\n\t${cursor}\n}"},{prefix:"define",name:"define",nodes:{top:!0,member:!1,prop:!1},description:" - define function call",template:"/* global define */\ndefine('${name}',[\n'${import}'\n], function(${importname}) {\n\t${cursor}\n});"},{prefix:"nls",name:"nls",nodes:{top:!0,member:!1,prop:!1},description:" - non NLS string",template:"${cursor} //$NON-NLS-${0}$"},{prefix:"log",name:"log",
nodes:{top:!0,member:!1,prop:!1},description:" - console log",template:"console.log(${object});"},{prefix:"mongodb",name:"mongodb",nodes:{top:!0,member:!1,prop:!1},description:" - Node.js require statement for MongoDB",template:"var ${name} \x3d require('mongodb');\n"},{prefix:"mongodb",name:"mongodb client",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},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",
nodes:{top:!0,member:!1,prop:!1},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)",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},description:" - create a MongoDB database collection",template:"${db}.collection(${id}, function(${error}, collection) {\n\t${cursor}\n});"},{prefix:"mongodb",name:"mongodb strict collection",nodes:{top:!0,member:!1,prop:!1},description:" - create a MongoDB database strict collection",template:"${db}.collection(${id}, {strict:true}, function(${error}, collection) {\n\t${cursor}\n});"},{prefix:"redis",name:"redis",nodes:{top:!0,
member:!1,prop:!1},description:" - Node.js require statement for Redis",template:"var ${name} \x3d require('redis');\n"},{prefix:"redis",name:"redis client",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},description:" - create a new Redis client set call",template:"client.set(${key}, ${value});\n"},{prefix:"redis",name:"redis get",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},description:" - create a new Redis client event handler",template:"client.on(${event}, function(${arg}) {\n\t${cursor}});\n"},
{prefix:"pg",name:"postgres",nodes:{top:!0,member:!1,prop:!1},description:" - Node.js require statement for Postgres DB",template:"var pg \x3d require('pg');\n"},{prefix:"pg",name:"postgres client",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},description:" - create a new Postgres DB query statement",template:"${client}.query(${sql}, function(error, result) {\n\t${cursor}\n});\n"},{prefix:"mysql",name:"mysql",nodes:{top:!0,member:!1,prop:!1},description:" - Node.js require statement for MySQL DB",
template:"var mysql \x3d require('mysql');\n"},{prefix:"mysql",name:"mysql connection",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,
member:!1,prop:!1},description:" - create an Express app configure statement",template:"app.configure(function() {\n\tapp.set(${id}, ${value});\n});"},{prefix:"express",name:"express specific configure",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},description:" - create a new Express app set call",template:"app.set(${id}, ${value});\n"},{prefix:"express",name:"express app use",nodes:{top:!0,member:!1,prop:!1},description:" - create a new Express app use statement",template:"app.use(${fnOrObject});\n"},{prefix:"express",name:"express app engine",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},description:" - Node.js require statement for AMQP framework",
template:"var amqp \x3d require('amqp');\n"},{prefix:"amqp",name:"amqp connection",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},description:" - create a new AMQP connection on statement",template:"${connection}.on(${event}, function() {\n\t${cursor}\n});\n"},
{prefix:"amqp",name:"amqp queue",nodes:{top:!0,member:!1,prop:!1},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",nodes:{top:!0,member:!1,prop:!1},description:" - create a new AMQP connection exchange",template:"var exchange \x3d ${connection}.exchange(${id}, {type: 'topic'}, function(exchange) {\n\t${cursor}\n});\n"}];
return{getTemplatesForKind:function(b){for(var g=[],d=h.length,k=0;k<d;k++){var m=h[k];m.nodes&&m.nodes[b]&&g.push(m)}return g.map(c,this)}}});
(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,e;for(d in a)a.hasOwnProperty(d)&&(e=a[d],b[d]="object"===typeof e&&null!==e?c(e):e);return b}function h(a,b){var d,c,e,f;c=a.length;for(e=0;c;)d=c>>>1,f=e+d,b(a[f])?c=d:(e=f+1,c-=d+1);return e}function f(a,b){this.parent=a;this.key=b}function g(a,b,d,c){this.node=a;this.path=b;this.wrap=d;this.ref=c}function d(){}
function k(a,b){return(new d).traverse(a,b)}function m(a,b){var d;d=h(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 p,u,a,l,e,z;p={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)});l={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"]};e={};z={};a={Break:e,Skip:z};f.prototype.replace=function(a){this.parent[this.key]=a};d.prototype.path=function(){function a(b,d){if(u(d)){c=0;for(e=d.length;c<e;++c)b.push(d[c])}else b.push(d)}var b,d,c,e,f,g;if(!this.__current.path)return null;f=[];b=2;for(d=this.__leavelist.length;b<d;++b)g=this.__leavelist[b],a(f,g.path);a(f,this.__current.path);return f};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(z)};d.prototype["break"]=function(){this.notify(e)};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,f,k,m,h,F,C,R,w,K;this.__initialize(a,b);K={};d=this.__worklist;c=this.__leavelist;d.push(new g(a,null,null,null));for(c.push(new g(null,null,null,null));d.length;)if(f=d.pop(),f===K){if(f=c.pop(),k=this.__execute(b.leave,f),this.__state===e||k===e)break}else if(f.node){k=this.__execute(b.enter,f);if(this.__state===e||k===e)break;d.push(K);c.push(f);
if(!(this.__state===z||k===z)){k=f.node;m=f.wrap||k.type;R=l[m];for(F=R.length;0<=(F-=1);)if(h=R[F],w=k[h])if(u(w))for(C=w.length;0<=(C-=1);)w[C]&&(f=(m===p.ObjectExpression||m===p.ObjectPattern)&&"properties"===R[F]?new g(w[C],[h,C],"Property",null):new g(w[C],[h,C],null,null),d.push(f));else d.push(new g(w,h,null,null))}}};d.prototype.replace=function(a,b){var d,c,k,q,m,h,F,C,R,w,K,W;this.__initialize(a,b);w={};d=this.__worklist;c=this.__leavelist;K={root:a};m=new g(a,null,null,new f(K,"root"));
d.push(m);for(c.push(m);d.length;)if(m=d.pop(),m===w){if(m=c.pop(),q=this.__execute(b.leave,m),void 0!==q&&(q!==e&&q!==z)&&m.ref.replace(q),this.__state===e||q===e)break}else{q=this.__execute(b.enter,m);void 0!==q&&(q!==e&&q!==z)&&(m.ref.replace(q),m.node=q);if(this.__state===e||q===e)break;if(k=m.node)if(d.push(w),c.push(m),!(this.__state===z||q===z)){q=m.wrap||k.type;C=l[q];for(h=C.length;0<=(h-=1);)if(W=C[h],R=k[W])if(u(R))for(F=R.length;0<=(F-=1);)R[F]&&(m=q===p.ObjectExpression&&"properties"===
C[h]?new g(R[F],[W,F],"Property",new f(R,F)):new g(R[F],[W,F],null,new f(R,F)),d.push(m));else d.push(new g(R,W,null,new f(k,W)))}}return K.root};b.version="1.3.3-dev";b.Syntax=p;b.traverse=k;b.replace=function(a,b){return(new d).replace(a,b)};b.attachComments=function(b,d,e){var f=[],g,q,h;if(!b.range)throw Error("attachComments needs range information");if(!e.length){if(d.length){q=0;for(g=d.length;q<g;q+=1)e=c(d[q]),e.extendedRange=[0,b.range[0]],f.push(e);b.leadingComments=f}return b}q=0;for(g=
d.length;q<g;q+=1)f.push(m(c(d[q]),e));h=0;k(b,{enter:function(b){for(var d;h<f.length;){d=f[h];if(d.extendedRange[1]>b.range[0])break;d.extendedRange[1]===b.range[0]?(b.leadingComments||(b.leadingComments=[]),b.leadingComments.push(d),f.splice(h,1)):h+=1}if(h===f.length)return a.Break;if(f[h].extendedRange[0]>b.range[1])return a.Skip}});h=0;k(b,{leave:function(b){for(var d;h<f.length;){d=f[h];if(b.range[1]<d.extendedRange[0])break;b.range[1]===d.extendedRange[0]?(b.trailingComments||(b.trailingComments=
[]),b.trailingComments.push(d),f.splice(h,1)):h+=1}if(h===f.length)return a.Break;if(f[h].extendedRange[0]>b.range[1])return a.Skip}});return b};b.VisitorKeys=l;b.VisitorOption=a;b.Controller=d});
define("javascript/contentAssist/indexer",["javascript/contentAssist/indexFiles/nodeIndex","javascript/contentAssist/typesFromIndexFile","javascript/contentAssist/typeUtils","orion/objects"],function(b,c,h,f){function g(){this.catalog=null}f.mixin(g.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 g=c.getGlobalsAndTypes("node",b),p;-1!==d.indexOf(".")||-1!==d.indexOf("/")?p=null:(p=h.convertToSimpleTypeName(h.ensureTypeObject(d)),p=g.types[p]?!0:!1);if(p)return{provided:d,types:g.types}}return Object.prototype.hasOwnProperty.call(this.catalog,d)?(g=c.getGlobalsAndTypes(d,this.catalog[d]),{provided:d,types:g.types}):null}});return g});
define("javascript/contentAssist/contentAssist","javascript/contentAssist/typeEnvironment javascript/contentAssist/typeInference javascript/contentAssist/typeUtils javascript/contentAssist/proposalUtils orion/editor/templates orion/editor/stylers/application_javascript/syntax javascript/contentAssist/templates orion/Deferred orion/objects estraverse javascript/contentAssist/indexer".split(" "),function(b,c,h,f,g,d,k,m,p,u,a){function l(){}function e(b,d){this.astManager=b;this.indexer=new a;this.lintOptions=
d;this.provider=new l}l.prototype=new g.TemplateContentAssist(d.keywords,[]);p.mixin(l.prototype,{uninterestingChars:":!@#$^\x26*.?\x3c\x3e",isValid:function(a,b,d){a=b.charAt(d-a.length-1);return!a||-1===this.uninterestingChars.indexOf(a)},getKeywordProposals:function(a,b){var d=[];switch(b.kind){case "top":d=this._createKeywordProposals(this._keywords,a);break;case "prop":d=this._createKeywordProposals("false function new null this true typeof undefined".split(" "),a)}0<d.length&&d.splice(0,0,{proposal:"",
description:"Keywords",style:"noemphasis_title_keywords",unselectable:!0});return d},_createKeywordProposals:function(a,b){for(var d=[],c=a.length,e=0;e<c;e++)a[e].slice(0,b.length)===b&&d.push({proposal:a[e].slice(b.length),description:a[e],style:"noemphasis_keyword"});return d},getTemplateProposals:function(a,b,d,c){var e=[];c=k.getTemplatesForKind(c.kind);for(var f=0;f<c.length;f++){var g=c[f];g.match(a)&&(g=g.getProposal(a,b,d),this.removePrefix(a,g),e.push(g))}0<e.length&&(e.sort(function(a,
b){return a.name<b.name?-1:a.name>b.name?1:0}),e.splice(0,0,{proposal:"",description:"Templates",style:"noemphasis_title",unselectable:!0}));return e}});p.mixin(e.prototype,{browserRegExp:/browser\s*:\s*true/,nodeRegExp:/node\s*:\s*true/,amdRegExp:/amd\s*:\s*true/,initialize:function(){},computeContentAssist:function(a,b){var d=this;return m.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 m).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=m.all(e).then(function(a){d.indexer.setIndexData(a);return d.indexData})}return this.indexDataPromise},_computeProposalsFromAST:function(a,d,e){if(!a||e.selection&&e.selection.start!==e.selection.end)return this._noProposals();var g=e.offset,k=this._getCompletionContext(a,g,d);if(k){var m=this;
return b.createEnvironment({buffer:d,uid:"local",offset:g,indexer:m.indexer,globalObjName:m._findGlobalObject(a.comments,m.lintOptions),comments:a.comments}).then(function(b){b.defer=k.toDefer;b.defer&&(b.deferredComments=f.extractDocComments(b.comments,b.defer.range));var h=c.inferTypes(a,b,m.lintOptions),l={};m._createInferredProposals(h,b,k.kind,e.prefix,g-e.prefix.length,l);return[].concat(m._filterAndSortProposals(l),m._createTemplateProposals(e,k,d),m._createKeywordProposals(e,k,d))})}return this._noProposals()},
_noProposals:function(){var a=new m;a.resolve([]);return a.promise},_createKeywordProposals:function(a,b,d){return("undefined"===typeof a.keyword||a.keyword)&&this.provider.isValid(a.prefix,d,a.offset,a)?this.provider.getKeywordProposals(a.prefix,b):[]},_createTemplateProposals:function(a,b,d){return("undefined"===typeof a.template||a.template)&&this.provider.isValid(a.prefix,d,a.offset,a)?this.provider.getTemplateProposals(a.prefix,a.offset,a,b):[]},_createInferredProposals:function(a,b,d,c,e,g,
k,m){var h,l,p;a=b.lookupQualifiedType(a);var u=a.$$proto;k||(k=100);u&&(l=!1,m?m[u.typeObj.name]&&(l=!0):m={},l||(m[u.typeObj.name]=!0,this._createInferredProposals(u.typeObj.name,b,d,c,e,g,k-10,m)));g["---dummy"+k]={proposal:"",name:"",description:"---------------------------------",relevance:k-1,style:"hr",unselectable:!0};var w=Object.getPrototypeOf(a),K=!Object.getPrototypeOf(w);for(h in a)if((a.hasOwnProperty(h)||!K&&w.hasOwnProperty(h))&&!("$"===h.charAt(0)&&"$"===h.charAt(1)))l=!u&&0===h.indexOf("$_$")?
h.substring(3):h,!("this"===l&&"member"===d)&&(a[h].typeObj&&f.looselyMatches(c,l))&&(m=a[h].typeObj,b._allTypes[m.name]&&b._allTypes[m.name].$$fntype&&(m=b._allTypes[m.name].$$fntype),"FunctionType"===m.type?(p=this._calculateFunctionProposal(l,m,e-1),g["$"+l]={proposal:p.completion,name:p.completion,description:this._createProposalDescription(m,b),positions:p.positions,escapePosition:e+p.completion.length,relevance:k+5,style:"emphasis",overwrite:!0}):g["$"+l]={proposal:l,relevance:k,name:l,description:this._createProposalDescription(m,
b),style:"emphasis",overwrite:!0})},_calculateFunctionProposal:function(a,b,d){b=b.params||[];var c=[];a+="(";for(var e=b.length,f=0;f<e;f++)if(!("new"===b[f].name||"this"===b[f].name)){0<f&&(a+=", ");var g=b[f],k,m;"OptionalType"===g.type&&(g=g.expression,k=!0);"RestType"===g.type&&(g=g.expression,m=!0);g=g.name||"arg"+f;m&&(g="..."+g);k&&(g="["+g+"]");c.push({offset:d+a.length+1,length:g.length});a+=g}return{completion:a+")",positions:0===c.length?null:c}},_createProposalDescription:function(a,
b){switch(a.type){case "FunctionType":if(a.result&&"UndefinedLiteral"===a.result.type)return""}return" : "+h.createReadableType(a,b)},_filterAndSortProposals:function(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},_findGlobalObject:function(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(this.browserRegExp)||c.value.match(this.amdRegExp)?"Window":c.value.match(this.nodeRegExp)?"Module":"Global"}if(b&&b.options){if(!0===b.options.browser)return"Window";
if(!0===b.options.node)return"Module"}return"Global"},_getCompletionContext:function(a,b,d){var c=[];u.traverse(a,{skipped:!1,enter:function(a){this.skipped=!1;a.extras||(a.extras={});if(a.range&&f.inRange(b-1,a.range)||a.type===u.Syntax.Program){if(a.type===u.Syntax.Identifier)return u.VisitorOption.Break;c.push(a);if((a.type===u.Syntax.FunctionDeclaration||a.type===u.Syntax.FunctionExpression)&&a.body&&f.isBefore(b,a.body.range)||a.type===u.Syntax.MemberExpression&&!a.property&&f.afterDot(b,a,d))return u.VisitorOption.Break}else return this.skipped=
!0,u.VisitorOption.Skip},leave:function(a){if(!this.skipped){if(a.type===u.Syntax.Program||a.type===u.Syntax.BlockStatement&&f.inRange(b,a.range))return u.VisitorOption.Break;c.pop()}}});var e;if(c&&c.length){a=c.pop();for(var g=c.length-1;0<=g;g--)if((c[g].type===u.Syntax.FunctionDeclaration||c[g].type===u.Syntax.FunctionExpression)&&(!c[g].id||!f.inRange(b,c[g].id.range,!0))){e=c[g];break}switch(a.type){case u.Syntax.MemberExpression:if(a.property&&f.inRange(b-1,a.property.range)||f.inRange(b-1,
a.range)&&f.afterDot(b,a,d))return{kind:"member",toDefer:e};break;case u.Syntax.VariableDeclarator:if(!a.init||f.isBefore(b,a.init.range))return null;break;case u.Syntax.FunctionDeclaration:case u.Syntax.FunctionExpression:if(f.isBefore(b,a.body.range))return!0;break;case u.Syntax.Property:return f.inRange(b-1,a.value.range)?{kind:"prop",toDefer:e}:null;case u.Syntax.SwitchStatement:return{kind:"swtch",toDefer:e}}}return{kind:"top",toDefer:e}}});return{JSContentAssist:e}});
(function(b,c){function h(b,c){var d,k,m,h;m=b.split(".");d=0;for(k=m.length;d<k;++d)h=m[d],c=c.hasOwnProperty(h)?c[h]:c[h]={};return c}"function"===typeof define&&define.amd?define("escope",["exports","estraverse"],function(f,g){b(f,c,g)}):"undefined"!==typeof exports?b(exports,c,require("estraverse")):b(h("escope",c),c,c.estraverse)})(function(b,c,h){function f(a,b){if(!a)throw Error(b);}function g(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])?g(a[c],e):a[c]=g({},e):a[c]=e);return a}function d(a,b,d,c,e){this.identifier=a;this.from=b;this.tainted=!1;this.resolved=null;this.flag=d;this.isWrite()&&(this.writeExpr=c);this.__maybeImplicitGlobal=e}function k(a,b){this.name=a;this.identifiers=[];this.references=[];this.defs=[];this.tainted=!1;this.stack=!0;this.scope=b}function m(b,d){var c,e,f,g;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(x.directive){e=0;for(f=c.body.length;e<f;++e){g=c.body[e];if("DirectiveStatement"!==g.type)break;if('"use strict"'===g.raw||"'use strict'"===g.raw)return!0}}else{e=0;for(f=c.body.length;e<f;++e){g=c.body[e];if(g.type!==a.ExpressionStatement)break;g=g.expression;if(g.type!==a.Literal||"string"!==typeof g.value)break;if(null!=g.raw){if('"use strict"'===g.raw||"'use strict'"===g.raw)return!0}else if("use strict"===g.value)return!0}}return!1}function p(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 l;this.taints=new l;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:e.variableScope;this.thisFound=this.directCallToEvalScope=this.functionExpressionScope=!1;d.naming?(this.__define(b.id,{type:k.FunctionName,name:b.id,node:b}),this.functionExpressionScope=
!0):("function"===this.type&&(c=new k("arguments",this),this.taints.set("arguments",!0),this.set.set("arguments",c),this.variables.push(c)),b.type===a.FunctionExpression&&b.id&&new p(b,{naming:!0}));this.upper=e;this.isStrict=m(this,b);this.childScopes=[];e&&e.childScopes.push(this);e=this;"global"===this.type&&(z=this,z.implicit={set:new l,variables:[]});s.push(this)}function u(a){this.scopes=a;this.attached=!1}var a,l,e,z,s,x;a=h.Syntax;"undefined"!==typeof c.Map?l=c.Map:(l=function(){this.__data=
{}},l.prototype.get=function(a){a="$"+a;if(this.__data.hasOwnProperty(a))return this.__data[a]},l.prototype.has=function(a){return this.__data.hasOwnProperty("$"+a)},l.prototype.set=function(a,b){this.__data["$"+a]=b},l.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};k.CatchClause="CatchClause";k.Parameter="Parameter";k.FunctionName="FunctionName";k.Variable="Variable";k.ImplicitGlobalVariable="ImplicitGlobalVariable";p.prototype.__close=function(){var a,b,d,c;if(!this.dynamic||x.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:k.ImplicitGlobalVariable,name:d.left,node:d})}this.left=
null;e=this.upper};p.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};p.prototype.__delegateToUpperScope=function(a){this.upper&&this.upper.left.push(a);this.through.push(a)};p.prototype.__defineImplicit=function(b,d){var c,e;b&&b.type===a.Identifier&&(c=b.name,this.implicit.set.has(c)?(e=this.implicit.set.get(c),
e.identifiers.push(b),e.defs.push(d)):(e=new k(c,this),e.identifiers.push(b),e.defs.push(d),this.implicit.set.set(c,e),this.implicit.variables.push(e)))};p.prototype.__define=function(b,d){var c,e;b&&b.type===a.Identifier&&(c=b.name,this.set.has(c)?(e=this.set.get(c),e.identifiers.push(b),e.defs.push(d)):(e=new k(c,this),e.identifiers.push(b),e.defs.push(d),this.set.set(c,e),this.variables.push(e)))};p.prototype.__referencing=function(b,c,e,f){b&&b.type===a.Identifier&&(b=new d(b,this,c||d.READ,e,
f),this.references.push(b),this.left.push(b))};p.prototype.__detectEval=function(){var a;a=this;this.directCallToEvalScope=!0;do a.dynamic=!0,a=a.upper;while(a)};p.prototype.__detectThis=function(){this.thisFound=!0};p.prototype.__isClosed=function(){return null===this.left};p.prototype.resolve=function(b){var d,c,e;f(this.__isClosed(),"scope should be closed");f(b.type===a.Identifier,"target should be identifier");c=0;for(e=this.references.length;c<e;++c)if(d=this.references[c],d.identifier===b)return d;
return null};p.prototype.isStatic=function(){return!this.dynamic};p.prototype.isArgumentsMaterialized=function(){var a;if("function"!==this.type||!this.isStatic())return!0;a=this.set.get("arguments");f(a,"always have arguments variable");return a.tainted||0!==a.references.length};p.prototype.isThisMaterialized=function(){return"function"!==this.type||!this.isStatic()?!0:this.thisFound};p.mangledName="__$escope$__";p.prototype.attach=function(){this.functionExpressionScope||(this.block[p.mangledName]=
this)};p.prototype.detach=function(){this.functionExpressionScope||delete this.block[p.mangledName]};p.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[p.mangledName]||null;if(p.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};p.isScopeRequired=function(b){return p.isVariableScopeRequired(b)||b.type===a.WithStatement||b.type===
a.CatchClause};p.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=k;b.Scope=p;b.ScopeManager=u;b.analyze=function(b,c){var m;x=g({optimistic:!1,directive:!1},c);m=s=[];z=e=null;h.traverse(b,{enter:function(b){var c,f,g;p.isScopeRequired(b)&&new p(b,{});switch(b.type){case a.AssignmentExpression:"\x3d"===b.operator?e.__referencing(b.left,d.WRITE,b.right,!e.isStrict&&null!=b.left.name&&
b):e.__referencing(b.left,d.RW,b.right);e.__referencing(b.right);break;case a.ArrayExpression:c=0;for(f=b.elements.length;c<f;++c)e.__referencing(b.elements[c]);break;case a.BinaryExpression:e.__referencing(b.left);e.__referencing(b.right);break;case a.CallExpression:e.__referencing(b.callee);c=0;for(f=b.arguments.length;c<f;++c)e.__referencing(b.arguments[c]);!x.ignoreEval&&(b.callee.type===a.Identifier&&"eval"===b.callee.name)&&e.variableScope.__detectEval();break;case a.CatchClause:e.__define(b.param,
{type:k.CatchClause,name:b.param,node:b});break;case a.ConditionalExpression:e.__referencing(b.test);e.__referencing(b.consequent);e.__referencing(b.alternate);break;case a.DoWhileStatement:e.__referencing(b.test);break;case a.ExpressionStatement:e.__referencing(b.expression);break;case a.ForStatement:e.__referencing(b.init);e.__referencing(b.test);e.__referencing(b.update);break;case a.ForInStatement:b.left.type===a.VariableDeclaration?e.__referencing(b.left.declarations[0].id,d.WRITE,null,!1):e.__referencing(b.left,
d.WRITE,null,!e.isStrict&&null!=b.left.name&&b);e.__referencing(b.right);break;case a.FunctionDeclaration:e.upper.__define(b.id,{type:k.FunctionName,name:b.id,node:b});c=0;for(f=b.params.length;c<f;++c)e.__define(b.params[c],{type:k.Parameter,name:b.params[c],node:b,index:c});break;case a.FunctionExpression:c=0;for(f=b.params.length;c<f;++c)e.__define(b.params[c],{type:k.Parameter,name:b.params[c],node:b,index:c});break;case a.IfStatement:e.__referencing(b.test);break;case a.LogicalExpression:e.__referencing(b.left);
e.__referencing(b.right);break;case a.MemberExpression:e.__referencing(b.object);b.computed&&e.__referencing(b.property);break;case a.NewExpression:e.__referencing(b.callee);c=0;for(f=b.arguments.length;c<f;++c)e.__referencing(b.arguments[c]);break;case a.Property:e.__referencing(b.value);break;case a.ReturnStatement:e.__referencing(b.argument);break;case a.SequenceExpression:c=0;for(f=b.expressions.length;c<f;++c)e.__referencing(b.expressions[c]);break;case a.SwitchStatement:e.__referencing(b.discriminant);
break;case a.SwitchCase:e.__referencing(b.test);break;case a.ThisExpression:e.variableScope.__detectThis();break;case a.ThrowStatement:e.__referencing(b.argument);break;case a.UnaryExpression:e.__referencing(b.argument);break;case a.UpdateExpression:e.__referencing(b.argument,d.RW,null);break;case a.VariableDeclaration:c=0;for(f=b.declarations.length;c<f;++c)g=b.declarations[c],e.variableScope.__define(g.id,{type:k.Variable,name:g.id,node:g,index:c,parent:b}),g.init&&(e.__referencing(g.id,d.WRITE,
g.init,!1),e.__referencing(g.init));break;case a.WhileStatement:e.__referencing(b.test);break;case a.WithStatement:e.upper.__referencing(b.object)}},leave:function(a){for(;e&&a===e.block;)e.__close()}});f(null===e);x=s=z=null;return new u(m)}},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,h){h.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,ArrayBuffer:!1,DataView:!1,Float32Array:!1,Float64Array:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1,JSON:!1},browser:{globals:{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:{globals:{__filename:!1,__dirname:!1,Buffer:!1,DataView:!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},rules:{"no-catch-shadow":0,"no-console":0,"no-global-strict":0,"no-mixed-requires":2,"no-path-concat":2,"no-process-exit":2}},amd:{globals:{require:!1,define:!1}},mocha:{globals:{describe:!1,it:!1,
before:!1,after:!1,beforeEach:!1,afterEach:!1}}};return h.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,h){h.exports=function(b){function c(d){try{"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])}catch(g){console.log(g)}}return{IfStatement:c,WhileStatement:c,ForStatement:c,ForInStatement:c}};return h.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,h){function f(b,c){for(var f=b.getTokens(c),g=f.length,h=c.operator,a=0;a<g;a++){var l=f[a];if(l.value===h)return l}return null}function g(b){return b&&b.type?"Literal"===b.type&&null==b.value||"Identifier"===b.type&&"undefined"===b.name:!1}
h.exports=function(b){return{BinaryExpression:function(c){try{if(!g(c.left)&&!g(c.right)){var m=c.operator;"\x3d\x3d"===m?b.report(c,"Expected '\x3d\x3d\x3d' and instead saw '\x3d\x3d'.",null,f(b,c)):"!\x3d"===m&&b.report(c,"Expected '!\x3d\x3d' and instead saw '!\x3d'.",null,f(b,c))}}catch(h){console.log(h)}}}};return h.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,h){h.exports=function(b){function c(g){try{if(m||h){var a,k;switch(g.type){case "Property":if(h&&(g.value&&"FunctionExpression"===g.value.type)&&(a=b.getComments(g),!a||1>a.leading.length)){switch(g.key.type){case "Identifier":k=g.key.name;
break;case "Literal":k=g.key.value}d(g.key,k,"expr")}break;case "FunctionDeclaration":m&&(a=b.getComments(g),(!a||1>a.leading.length)&&d(g.id,g.id.name,"decl"));break;case "ExpressionStatement":if(h&&g.expression&&"AssignmentExpression"===g.expression.type){var e=g.expression;if(e.right&&("FunctionExpression"===e.right.type&&e.left&&"MemberExpression"===e.left.type)&&(a=b.getComments(g),!a||1>a.leading.length))k=!0===e.left.computed?e.left.property.value:e.left.property.name,d(e.left.property,k,"expr")}}}}catch(z){console.log(z)}}
function d(d,a,c){b.report(d,"Missing documentation for function '{{name}}'",{name:a},{type:c})}var k=b.options&&b.options[0]||{},m=0<Number(k.decl),h=0<Number(k.expr);return{Property:c,FunctionDeclaration:c,ExpressionStatement:c}};return h.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,h){h.exports=function(b){return{NewExpression:function(c){try{if(c.callee){var d=b.getTokens(c.callee,0,1);if(d&&0<d.length){var k=d[d.length-1];("Punctuator"!==k.type||"("!==k.value)&&b.report(c.callee,"Missing parentheses invoking constructor.",
null,d[0])}}}catch(m){console.log(m)}}}};return h.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,h){h.exports=function(b){return{DebuggerStatement:function(c){try{b.report(c,"'debugger' statement use is discouraged.",null,b.getTokens(c)[0])}catch(d){console.log(d)}}}};return h.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,h){h.exports=function(b){return{ObjectExpression:function(c){try{var d=c.properties;if(d&&0<d.length){var k=d.length,m=Object.create(null);for(c=0;c<k;c++){var h=d[c];if("init"===h.kind){var u=h.key.name?h.key.name:h.key.value;Object.prototype.hasOwnProperty.call(m,
u)?b.report(h,"Duplicate object key '{{key}}'",{key:u},b.getTokens(h)[0]):m[u]=1}}}}catch(a){console.log(a)}}}};return h.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,h){c.mixin=function(b,c){Object.keys(c).forEach(function(d){b[d]=c[d]})};c.mergeConfigs=function g(b,c){Object.keys(c).forEach(function(m){var h=c[m];Array.isArray(b[m])&&!Array.isArray(h)&&"number"===typeof h?b[m][0]=c[m]:"object"===typeof h&&!Array.isArray(h)?
b[m]=g(b[m]||{},c[m]):b[m]=c[m]});return b};c.getDeclaration=function(b,d){for(var c=d;;){if(!c)return null;var m=b.name?b.name:b.identifier.name,h;c.variables.some(function(b){return b.name===m?(h=b,!0):!1});if(h)return h;c=c.upper}};c.returnableStatement=function(b){switch(b.type){case "ReturnStatement":case "ThrowStatement":case "ContinueStatement":case "BreakStatement":return!0}return!1};c.createNewBuiltinRule=function(b,d,k){function m(a,b){return b.variables.some(function(b){return a===b.name&&
!!b.defs.length})}var h=Array.isArray(b)?b:[b],u="string"===typeof d?d:null,a=u?null:d;return{NewExpression:function(b){b=b.callee;var d;if(b&&-1!==(d=h.indexOf(b.name))){d=h[d];var g=c.getDeclaration(b,k.getScope());g&&("global"===g.scope.type&&!m(b.name,g.scope))&&(u?k.report(b,u):a(k,b,d))}}}};return h.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,h,f){h.exports=function(b){return{CallExpression:function(d){try{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){var m=d.arguments[0];if("Literal"===m.type)b.report(d.callee,"Implicit 'eval' function calls are discouraged.",null,b.getTokens(d.callee)[0]);else if("Identifier"===m.type){var h=b.getScope(),u=f.getDeclaration(m,h);if(u&&u.defs&&u.defs.length){var a=u.defs[0],l=a.node;"Variable"===a.type&&(l&&"VariableDeclarator"===l.type&&l.init&&"Literal"===l.init.type)&&b.report(d.callee,"Implicit 'eval' function calls are discouraged.",null,b.getTokens(d.callee)[0])}}}}catch(e){console.log(e)}}}};
return h.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,h){h.exports=function(b){return{EmptyStatement:function(c){try{var d=b.getTokens(c),k=d[d.length-1];k&&("Punctuator"===k.type&&";"===k.value)&&b.report(c,"Unnecessary semicolon.",null,k)}catch(m){console.log(m)}}}};return h.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module,require("../util")):"function"===typeof define&&define.amd?define("eslint/rules/no-new-array",["require","exports","module","../util"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,h,f){h.exports=function(b){return f.createNewBuiltinRule("Array","Use the array literal notation '[]'.",b)};return h.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module,require("../util")):"function"===typeof define&&define.amd?define("eslint/rules/no-new-func",["require","exports","module","../util"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,h,f){h.exports=function(b){return f.createNewBuiltinRule("Function","The Function constructor is eval.",b)};return h.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module,require("../util")):"function"===typeof define&&define.amd?define("eslint/rules/no-new-object",["require","exports","module","../util"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,h,f){h.exports=function(b){return f.createNewBuiltinRule("Object","Use the object literal notation '{}'.",b)};return h.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module,require("../util")):"function"===typeof define&&define.amd?define("eslint/rules/no-new-wrappers",["require","exports","module","../util"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,h,f){h.exports=function(b){return f.createNewBuiltinRule(["String","Number","Math","Boolean","JSON"],function(b,c,f){b.report(c,"Do not use %s as a constructor.".replace("%s",f))},b)};return h.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,h,f){f.exports=function(c){function d(a,b){c.report(a,"'{{name}}' is already defined.",{name:b})}function f(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 m(a){for(var d=a.upper,c=Object.create(null);d&&!d._namedFunctions;)d=d.upper;d&&b.mixin(c,d._namedFunctions);f(c,a);return a._namedFunctions=c}function h(a){return a.defs.some(function(a){return"Parameter"===a.type})}function u(a){try{var b=c.getScope(),e=m(b);b.variables.forEach(function(c){var f;"Program"!==a.type&&((f=e[c.name])&&f!==b&&!h(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)})})}catch(f){console.log(f)}}return{Program:u,FunctionDeclaration:u,FunctionExpression:u}};return f.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,h){function f(b){return b.defs.every(function(b){return"ImplicitGlobalVariable"===b.type})}function g(b,c){var g=null;b.variables.some(function(b){return b.name===c.identifier.name&&(!f(b)||Object.hasOwnProperty.call(b,"writeable"))?(g=b,
!0):!1});return g}h.exports=function(b){return{Program:function(){try{var c=b.getScope();c.through.forEach(function(f){var m=g(c,f),a=f.identifier.name;m?f.isWrite()&&!1===m.writeable&&b.report(f.identifier,"'{{name}}' is read only.",{name:a}):b.report(f.identifier,"'{{name}}' is not defined.",{name:a})})}catch(f){console.log(f)}}}};return h.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules/no-unused-params",["require","exports","module"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,h){h.exports=function(b){function c(d){try{var g=b.getScope(),m=g.childScopes;g.functionExpressionScope&&(m&&m.length)&&(g=m[0]);g.variables.forEach(function(d){if(d.defs.length&&"Parameter"===d.defs[0].type){var a=d.defs[0].name;
d.references.length||b.report(a,"Parameter '{{name}}' is never used.",{name:a.name})}})}catch(h){console.log(h)}}return{FunctionDeclaration:c,FunctionExpression:c}};return h.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,h){h.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 k(k){try{var h=b.getScope();
h.variables.forEach(function(a){if(a.defs.length&&"Parameter"!==a.defs[0].type){var k=d(h,a);a=a.defs[0].node.id;k.length?k.some(c)||b.report(a,"'{{name}}' is never read.",{name:a.name}):b.report(a,"'{{name}}' is never used.",{name:a.name})}})}catch(u){console.log(u)}}return{Program:k,FunctionDeclaration:k,FunctionExpression:k}};return h.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,h,f){h.exports=function(b){function d(d){try{var a=b.getScope();a.references.forEach(function(d){var c=f.getDeclaration(d,a);d=d.identifier;var k=d.name,l;if(c&&(l=c.defs).length&&d.range[0]<
l[0].node.range[0])c=l[0].type,!h&&"FunctionName"===c||!m&&"Variable"===c||b.report(d,"'{{name}}' was used before it was defined.",{name:k})})}catch(c){console.log(c)}}var c=b.options,m="boolean"===typeof c[0]?c[0]:!0,h="boolean"===typeof c[1]?c[1]:!1;return{Program:d,FunctionExpression:d,FunctionDeclaration:d}};return h.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,h){h.exports=function(b){function c(d){try{var g=b.getTokens(d),m=g[g.length-1];(!m||!("Punctuator"===m.type&&";"===m.value))&&b.report(d,"Missing semicolon.",null,m)}catch(h){console.log(h)}}return{VariableDeclaration:function(d){try{var k=
b.getAncestors(d),m=k[k.length-1],h=m.type;"ForStatement"===h&&m.init===d||"ForInStatement"===h&&m.left===d||c(d)}catch(u){console.log(u)}},ExpressionStatement:c,ReturnStatement:c}};return h.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,h){h.exports=function(b){return{BinaryExpression:function(c){try{"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)}catch(d){console.log(d)}}}};return h.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require("../util"),require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules/no-unreachable",["eslint/util","require","exports","module"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,h,f){f.exports=function(c){function d(d){var f=0;for(f;f<d.length&&!b.returnableStatement(d[f]);f++);for(f++;f<d.length;f++){var h=d[f],u;a:{switch(h.type){case "FunctionDeclaration":case "VariableDeclaration":u=
!0;break a}u=!1}!u&&"EmptyStatement"!==h.type&&c.report(h,"Unreachable code.")}}return{BlockStatement:function(b){d(b.body)},SwitchCase:function(b){d(b.consequent)}}};return f.exports});
(function(b,c){"object"===typeof exports?module.exports=c(require("../util"),require,exports,module):"function"===typeof define&&define.amd?define("eslint/rules/no-fallthrough",["eslint/util","require","exports","module"],c):b.rules.noundef=c(function(c){return b[c]},b,{exports:b})})(this,function(b,c,h,f){f.exports=function(c){function d(d){if(d.consequent){d=d.consequent;0<d.length&&"BlockStatement"===d[0].type&&(d=d[0].body);if(1>d.length)return!1;for(var c=null,f=0;f<d.length;f++)if(c=d[f],b.returnableStatement(c))return!1;
return!0}return!1}return{SwitchStatement:function(b){if(b.cases&&1<b.cases.length){var f=b.cases.length,h=0;a:for(;h<f&&h+1!==f;h++)if(d(b.cases[h])){var u=b.cases[h+1];if(u.test)u.range[1]=u.test.range[1];else{var a=c.getTokens(u);a&&0<a.length&&(u.range[1]=a[0].range[1])}a=u.leadingComments?u.leadingComments.length:0;if(0<a)for(var l=null,e=0;e<a;e++)if(l=u.leadingComments[e],/\s*\$FALLTHROUGH\$\s*/.test(l.value))continue a;c.report(u,"Switch case may be entered by falling through the previous case.")}}}}};
return f.exports});
define("eslint/load-rules-async","eslint/rules/curly eslint/rules/eqeqeq eslint/rules/missing-doc eslint/rules/new-parens eslint/rules/no-debugger eslint/rules/no-dupe-keys eslint/rules/no-eval eslint/rules/no-extra-semi eslint/rules/no-new-array eslint/rules/no-new-func eslint/rules/no-new-object eslint/rules/no-new-wrappers eslint/rules/no-redeclare eslint/rules/no-undef eslint/rules/no-unused-params eslint/rules/no-unused-vars eslint/rules/no-use-before-define eslint/rules/semi eslint/rules/use-isnan eslint/rules/no-unreachable eslint/rules/no-fallthrough".split(" "),function(b,
c,h,f,g,d,k,m,p,u,a,l,e,z,s,x,M,J,A,q,ba){return function(){return{curly:b,eqeqeq:c,"missing-doc":h,"new-parens":f,"no-debugger":g,"no-dupe-keys":d,"no-eval":k,"no-extra-semi":m,"no-new-array":p,"no-new-func":u,"no-new-object":a,"no-new-wrappers":l,"no-redeclare":e,"no-undef":z,"no-unused-params":s,"no-unused-vars":x,"no-use-before-define":M,semi:J,"use-isnan":A,"no-unreachable":q,"no-fallthrough":ba}}});
(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,h,f){function g(c){var f=b(c);Object.keys(f).forEach(function(b){d[b]=f[b]})}var d=Object.create(null);h.load=g;h.get=function(b){return d[b]};h.testClear=function(){d=Object.create(null)};h.define=
function(b,c){d[b]=c};g();return h});
(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,h){function f(b,c,f){Object.defineProperty(this,"id",{value:b});Object.defineProperty(this,"options",{value:f});g.forEach(function(b){this[b]=function(){return c[b].apply(c,arguments)}},this);this.report=function(f,g,a,m){c.report(b,f,g,a,m)}}
var g="getSource getTokens getComments getAncestors getScope getJSDocComment".split(" ");f.prototype={constructor:f};h.exports=f;return h.exports});
define("orion/EventTarget",[],function(){function b(){this._namedListeners={}}b.prototype={dispatchEvent:function(b){if(!b.type)throw Error("unspecified type");var h=this._namedListeners[b.type];h&&h.forEach(function(f){try{"function"===typeof f?f(b):f.handleEvent(b)}catch(g){"undefined"!==typeof console&&console.log(g)}});return!b.defaultPrevented},addEventListener:function(b,h){if("function"===typeof h||h.handleEvent)this._namedListeners[b]=this._namedListeners[b]||[],this._namedListeners[b].push(h)},
removeEventListener:function(b,h){var f=this._namedListeners[b];if(f)for(var g=0;g<f.length;g++)if(f[g]===h){1===f.length?delete this._namedListeners[b]:f.splice(g,1);break}}};b.prototype.constructor=b;b.attach=function(c){var h=new b;c.dispatchEvent=h.dispatchEvent.bind(h);c.addEventListener=h.addEventListener.bind(h);c.removeEventListener=h.removeEventListener.bind(h)};return b});
define("eslint/events",["orion/EventTarget","orion/objects"],function(b,c){function h(){this._eventTarget=new b}function f(b,c){if("function"!==typeof c)throw Error("addListener only takes instances of Function");var f="undefined"!==typeof this._maxListeners?this._maxListeners:g,p;0!==f&&(p=h.listenerCount(this,b)>=f)&&"undefined"!==typeof console&&console.error("Possible EventEmitter memory leak: "+p+" listeners added.");this.emit("newListener",c);this._eventTarget.addEventListener(b,c);return this}
var g=10;h.prototype.constructor=h;c.mixin(h.prototype,{_maxListeners:10,addListener:f,on:f,once:function(b,c){var f=this,g=function(h){try{c.apply(this,Array.prototype.slice.call(arguments))}finally{f.removeListener(b,g)}};this.addListener(b,g);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,
f=this,g=function(b){var a=c[b];a&&(a.forEach(f.emit.bind(f,"removeListener")),delete c[b])};"undefined"===typeof b?Object.keys(c).forEach(g):g(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 f=Array.prototype.slice.call(arguments,1),g=this;c.forEach(function(b){b.apply(g,f)});return!0}});h.listenerCount=function(b,c){var f=b._eventTarget._namedListeners[c];return f?f.length:0};return{EventEmitter:h}});
(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,h,f,g,d,k,m,p,u,a){function l(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 e(a,b){if("Block"!==a.type)return!1;var c=a.value,e;if(e=/^\s*(globals?)/.exec(c))return l(c.substring(e.index+e[1].length),function(a,d){b[a]="true"===d}),!0;(e=/^\s*(js[lh]int)/.exec(c))&&
l(c.substring(e.index+e[1].length),function(a,c){"true"===c&&Object.hasOwnProperty.call(f,a)&&d.mixin(b,f[a].globals)})}function z(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={},g=f.builtin;Object.keys(g).forEach(function(a){c[a]=g[a]});d.env&&Object.keys(d.env).forEach(function(a){var b=f[a].globals;d.env[a]&&b&&Object.keys(b).forEach(function(a){c[a]=b[a]})});a.comments.forEach(function(a){e(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=z(b,a);d||(d=new h.Variable(a,b),b.variables.push(d));d.writeable=c[a]})}function x(a,b){var c={};a.comments.forEach(function(a){if("Block"===a.type&&(a=a.value.trim(),0===a.indexOf("eslint"))){a=a.substr(6,a.length-6);a=a.replace(/([a-z0-9\-]+):/g,'"$1":').replace(/(\]|[0-9])\s+(?=")/,"$1,");var b={};try{b=JSON.parse("{"+a+"}")}catch(d){return}Object.keys(b).forEach(function(a){var d=
b[a];if("number"===typeof d||Array.isArray(d)&&"number"===typeof d[0])c[a]=d})}});return d.mergeConfigs(b.rules,c)}var M=m.EventEmitter;a.exports=function(){var a=Object.create(new M),d=[],e=!0,f=null,m=null,l=null,u=null,z=null;a.setMaxListeners(0);a.reset=function(){this.removeAllListeners();d=[];e=!0;z=u=l=f=m=null};a.verify=function(e,p,q){q||this.reset();if(e&&"object"===typeof e)q=e;else{var w;try{w=b.parse(e,{loc:!0,range:!0,raw:!0,tokens:!0,comment:!0,attachComment:!0})}catch(G){d.push({fatal:!0,
message:G.message.substring(G.message.indexOf(":")+1).trim(),line:G.lineNumber,column:G.column}),w=null}q=w}if(w=q)p.rules=x(w,p),Object.keys(p.rules).filter(function(a){if("number"===typeof p.rules[a])return 0<p.rules[a];if(Array.isArray(p.rules[a]))return 0<p.rules[a][0]}).forEach(function(b){var d=g.get(b),c=[],e;Array.isArray(p.rules[b])&&(c=p.rules[b].slice(1));if(d)try{e=d(new k(b,a,c)),Object.keys(e).forEach(function(b){a.on(b,e[b])})}catch(f){throw f.message="Error while loading rule '"+b+
"': "+f.message,f;}else throw Error("Definition for rule '"+b+"' was not found.");}),m=p,f=e&&"string"===typeof e?e:null,z=new c.Controller,u=h.analyze(w,{ignoreEval:!0}).scopes,l=[],w.tokens.forEach(function(a){l[a.range[0]]=a}),s(w,u[0],m),z.traverse(w,{enter:function(b,d){var c=a.getComments(b),e=c.leading,c=c.trailing;e&&e.forEach(function(b){a.emit(b.type+"Comment",b)});b.parent=d;a.emit(b.type,b);c&&c.forEach(function(b){a.emit(b.type+"Comment",b)})},leave:function(b){var d=a.getComments(b),
c=d.leading;(d=d.trailing)&&d.forEach(function(b){a.emit(b.type+"Comment:exit",b)});a.emit(b.type+":exit",b);c&&c.forEach(function(b){a.emit(b.type+"Comment:exit",b)})}});return d};a.report=function(b,c,e,f,g){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 g?g:null})};a.getSource=function(a,b,d){return a?null!==f?f.slice(a.range[0]-(b||0),a.range[1]+(d||0)):null:f};a.getComments=function(a){var b=z.root;e||(c.attachComments(b,b.comments,b.tokens),e=!0);return{leading:a.leadingComments||[],trailing:a.trailingComments||[]}};a.getJSDocComment=function(a){function b(a){if(a)for(var d=a.length-1;0<=d;d--)if("Block"===a[d].type&&"*"===a[d].value.charAt(0)){if(1>=c-a[d].loc.end.line)return a[d];break}return null}var d=a.parent,c=a.loc.start.line;switch(a.type){case "FunctionDeclaration":return b((a.leadingComments?
a:d).leadingComments);case "FunctionExpression":if("CallExpression"!==d.type||d.callee!==a){for(;d&&!d.leadingComments;)d=d.parent;return d?b(d.leadingComments):null}default:return null}};a.getTokens=function(a,b,d){var c=[],e=[],f=[],g;for(g=a.range[0]-1;0<b&&0<=g;)l[g]&&(c.unshift(l[g]),--b),--g;for(g=a.range[0];g<a.range[1];)l[g]?(e.push(l[g]),g=l[g].range[1]):++g;for(g=a.range[1];0<d&&g<l.length;)l[g]?(f.push(l[g]),--d,g=l[g].range[1]):++g;return c.concat(e,f)};a.getAncestors=function(){return z.parents()};
a.getScope=function(){var a=z.parents().reverse(),b=null;if(a.length){var d=z.current();("FunctionDeclaration"===d.type||"FunctionExpression"===d.type)&&a.splice(0,0,d);for(d=0;d<a.length;d++)if(h.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 w=a.defineRule=function(a,b){g.define(a,b)};a.defineRules=function(a){Object.getOwnPropertyNames(a).forEach(function(b){w(b,
a[b])})};a.defaults=function(){return p("../conf/eslint.json")};return a}();return a.exports});define("eslint",["eslint/eslint"],function(b){return b});
define("javascript/finder",["estraverse","orion/objects"],function(b,c){function h(){}c.mixin(h.prototype,{occurrences:[],scopes:[],context:null,thisCheck:!1,objectPropCheck:!1,enter:function(c){var g,d;switch(c.type){case b.Syntax.Program:this.occurrences=[];this.scopes=[{range:c.range,occurrences:[],kind:"p"}];this.defscope=this.defnode=null;break;case b.Syntax.FunctionDeclaration:this.checkId(c.id,!0);this._enterScope(c);if(c.params){g=c.params.length;for(d=0;d<g;d++)if(this.checkId(c.params[d],
!0))return b.VisitorOption.Skip}break;case b.Syntax.FunctionExpression:this.checkId(c.id,!0);if(c.params){if(this._enterScope(c))return b.VisitorOption.Skip;g=c.params.length;for(d=0;d<g;d++)if(this.checkId(c.params[d],!0))return b.VisitorOption.Skip}break;case b.Syntax.AssignmentExpression:this.checkId(c.left);this.checkId(c.right);break;case b.Syntax.ArrayExpression:if(c.elements){g=c.elements.length;for(d=0;d<g;d++)this.checkId(c.elements[d])}break;case b.Syntax.MemberExpression:this.checkId(c.object);
c.computed?this.checkId(c.property):c.object.type===b.Syntax.ThisExpression&&this.checkId(c.property,!1,!0);break;case b.Syntax.BinaryExpression:this.checkId(c.left);this.checkId(c.right);break;case b.Syntax.UnaryExpression:this.checkId(c.argument);break;case b.Syntax.SwitchStatement:this.checkId(c.discriminant);break;case b.Syntax.UpdateExpression:this.checkId(c.argument);break;case b.Syntax.ConditionalExpression:this.checkId(c.test);this.checkId(c.consequent);this.checkId(c.alternate);break;case b.Syntax.CallExpression:this.checkId(c.callee,
!1);if(c.arguments){g=c.arguments.length;for(d=0;d<g;d++)this.checkId(c.arguments[d])}break;case b.Syntax.ReturnStatement:this.checkId(c.argument);break;case b.Syntax.ObjectExpression:if(this._enterScope(c))return b.VisitorOption.Skip;if(c.properties){g=c.properties.length;for(d=0;d<g;d++){var k=c.properties[d];this.thisCheck&&(k.value&&k.value.type===b.Syntax.FunctionExpression)&&(k.value.isprop=!0);this.checkId(k.key,!0,!0);this.checkId(k.value)}}break;case b.Syntax.VariableDeclarator:this.checkId(c.id,
!0);this.checkId(c.init);break;case b.Syntax.NewExpression:this.checkId(c.callee,!1);if(c.arguments){g=c.arguments.length;for(d=0;d<g;d++)this.checkId(c.arguments[d])}break;case b.Syntax.LogicalExpression:this.checkId(c.left);this.checkId(c.right);break;case b.Syntax.ThisExpression:this.thisCheck&&(g=this.scopes[this.scopes.length-1],g.occurrences.push({start:c.range[0],end:c.range[1]}),c.range[0]===this.context.token.range[0]&&(this.defscope=g));break;case b.Syntax.IfStatement:case b.Syntax.DoWhileStatement:case b.Syntax.WhileStatement:this.checkId(c.test);
break;case b.Syntax.ForStatement:this.checkId(c.init);break;case b.Syntax.ForInStatement:this.checkId(c.left);this.checkId(c.right);break;case b.Syntax.WithStatement:this.checkId(c.object)}},_enterScope:function(c){if(this.thisCheck)switch(c.type){case b.Syntax.ObjectExpression:this.scopes.push({range:c.range,occurrences:[],kind:"o"});if(this.defscope)return!0;break;case b.Syntax.FunctionExpression:if(!c.isprop&&(this.scopes.push({range:c.range,occurrences:[],kind:"fe"}),this.defscope))return!0}else if(this.objectPropCheck)switch(c.type){case b.Syntax.ObjectExpression:if(this.scopes.push({range:c.range,
occurrences:[],kind:"o"}),c.range[0]>this.context.start||c.range[1]<this.context.end)return!0}else{var g;switch(c.type){case b.Syntax.FunctionDeclaration:g="fd";break;case b.Syntax.FunctionExpression:g="fe"}g&&this.scopes.push({range:c.range,occurrences:[],kind:g})}return!1},leave:function(c){if(this.thisCheck)switch(c.type){case b.Syntax.FunctionExpression:if(c.isprop){delete c.isprop;break}case b.Syntax.ObjectExpression:case b.Syntax.Program:if(this._popScope())return b.VisitorOption.Break}else if(this.objectPropCheck)switch(c.type){case b.Syntax.ObjectExpression:case b.Syntax.Program:if(this._popScope())return b.VisitorOption.Break}else switch(c.type){case b.Syntax.FunctionExpression:case b.Syntax.FunctionDeclaration:case b.Syntax.Program:if(this._popScope())return b.VisitorOption.Break}},
_popScope:function(){var b=this.scopes.pop(),c=b.occurrences.length,d;if(this.defscope){for(d=0;d<c;d++)this.occurrences.push(b.occurrences[d]);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(c,g,d){if(!this.thisCheck&&(!d&&!this.objectPropCheck||d&&this.objectPropCheck)&&c&&c.type===b.Syntax.Identifier&&c.name===this.context.word){d=this.scopes[this.scopes.length-1];if(g){if(this.defscope){if(c.range[0]>
this.context.start)return!0;this.occurrences=[];d.occurrences=[]}d&&(d.range[0]<=this.context.start&&d.range[1]>=this.context.end)&&(this.defscope=d)}d.occurrences.push({start:c.range[0],end:c.range[1]})}return!1}});h.prototype.constructor=h;return{visitor:null,punc:"\n\t\r (){}[]:;,.+\x3d-*^\x26@!%~`'\"/\\",findWord:function(b,c){if(b&&c){for(var d=-1<this.punc.indexOf(b.charAt(c)),k=d?c-1:c;0<=k&&!(-1<this.punc.indexOf(b.charAt(k)));)k--;for(var m=k,k=c;k<=b.length&&!(-1<this.punc.indexOf(b.charAt(k)));)k++;
if(!((m===c||d&&m===c-1)&&k===c))return m===c?b.substring(m,k):b.substring(m+1,k)}return null},findNode:function(c,g,d){var k=null,m=d&&d.parents?[]:null;null!=c&&(-1<c&&g)&&b.traverse(g,{enter:function(d){if(d.type&&d.range)if(d.range[0]<=c)k=d,m&&m.push(d);else return b.VisitorOption.Break},leave:function(b){m&&c>=b.range[1]&&m.pop()}});k&&(m&&0<m.length)&&(g=m[m.length-1],"Program"!==g.type&&(g.range[0]===k.range[0]&&g.range[1]===k.range[1])&&m.pop(),k.parents=m);return k},findToken:function(b,
c){if(null!=b&&-1<b&&c&&0<c.length){var d=0,k=c.length-1,m,h=0;m=c[0];if(b>=m.range[0]&&b<m.range[1])return m.index=b,m;m=c[k];if(b>=m.range[0])return m.index=k,m;for(;d<=k;){h=Math.floor((d+k)/2);m=c[h];if(b<m.range[0])k=h-1;else if(b>m.range[1])d=h+1;else if(b===m.range[1])if(c[h+1].range[0]===m.range[1])d=h+1;else return m.index=h,m;else if(b>=m.range[0]&&b<m.range[1])return m.index=h,m;if(d===k){m=c[d];if(b>=m.range[0]&&b<=m.range[1])return m.index=d,m;break}}}return null},findComment:function(b,
c){if(c.comments){for(var d=c.comments,h=d.length,m=0;m<h;m++){var p=d[m];if(p.range[0]<=b&&p.range[1]>b)return p;if(p.range[0]>b)break}return null}},findScriptBlocks:function(b,c){var d=[],h=null,m=/<\s*script(?:(type|language)(?:\s*)=(?:\s*)"([^"]*)"|[^>]|\n)*>((?:.|\r?\n)*?)<\s*\/script(?:[^>]|\n)*>/ig,p=this.findHtmlCommentBlocks(b,c);a:for(;null!=(h=m.exec(b));){var u=h[1],a=h[2];if(u&&a&&("language"===u&&(a="text/"+a),!/^(application|text)\/(ecmascript|javascript(\d.\d)?|livescript|jscript|x\-ecmascript|x\-javascript)$/ig.test(a)))continue;
u=h[3];if(!(1>u.length)&&(h=h.index+h[0].indexOf("\x3e")+1,null==c||h<=c&&h+u.length>=c)){for(a=0;a<p.length;a++)if(p[a].start<=h&&p[a].end>=h)continue a;d.push({text:u,offset:h})}}return d},findHtmlCommentBlocks:function(b,c){for(var d=[],h=null,m=/\x3c!--((?:.|\r?\n)*?)--\x3e/ig;null!=(h=m.exec(b));){var p=h[1];1>p.length||(null==c||h.index<=c&&h.index+p.length>=h.index)&&d.push({text:p,start:h.index,end:h.index+p.length})}return d},findOccurrences:function(c,g){if(c&&g){var d=this._getToken(g.selection.start,
c);if(d){var h=this.findNode(g.selection.start,c,{parents:!0});if(d.range[0]>=h.range[0]&&d.range[1]<=h.range[1]&&!this._skip(h))return d={start:g.selection.start,end:g.selection.end,word:this._nameFromNode(h),token:h},d=this._getVisitor(d),b.traverse(c,d),d.occurrences}}return[]},_skip:function(c){return!c?!0:c.type===b.Syntax.ThisExpression?!1:c.type!==b.Syntax.Identifier},_getToken:function(b,c){if(c.tokens&&0<c.tokens.length){var d=this.findToken(b,c.tokens);if(d){if("Punctuator"===d.type){var h=
d.index;if(b===d.range[0]&&null!=h&&0<h){h=c.tokens[h-1];if(h.range[1]!==d.range[0])return null;d=h}}if("Identifier"===d.type||"Keyword"===d.type&&"this"===d.value)return d}}return null},_nameFromNode:function(c){switch(c.type){case b.Syntax.Identifier:return c.name;case b.Syntax.ThisExpression:return"this"}},_getVisitor:function(c){this.visitor||(this.visitor=new h,this.visitor.enter=this.visitor.enter.bind(this.visitor),this.visitor.leave=this.visitor.leave.bind(this.visitor));this.visitor.thisCheck=
c.token&&c.token.type===b.Syntax.ThisExpression;this.visitor.objectPropCheck=!1;var g=c.token.parent?c.token.parent:c.token.parents&&0<c.token.parents.length?c.token.parents[c.token.parents.length-1]:null;g&&g.type===b.Syntax.Property?this.visitor.objectPropCheck=c.token===g.key:g&&(g.type===b.Syntax.MemberExpression&&g.object&&g.object.type===b.Syntax.ThisExpression)&&(this.visitor.objectPropCheck=!0);this.visitor.context=c;return this.visitor}}});
define("javascript/validator",["eslint","orion/objects","javascript/astManager","javascript/finder"],function(b,c,h,f){function g(b){this.astManager=b}function d(b){var c=b.start,d=b.end;b.node&&(c=b.node.range[0],d=b.node.range[1],b.related&&b.related.range&&(d=b.related,c=d.range[0],d=d.range[1]));var a=b.message;a:{var f=2,f=k.rules[b.ruleId];if(Array.isArray(f))var e=b.related,e=e&&e.type,f="missing-doc"===b.ruleId&&void 0!==f[1][e]?f[1][e]:f[0];switch(f){case 1:b="warning";break a;case 2:b="error";
break a}b="error"}return{description:a,severity:b,start:c,end:d}}var k={rules:{curly:0,eqeqeq:1,"missing-doc":[1,{decl:0,expr:0}],"new-parens":1,"no-debugger":1,"no-dupe-keys":2,"no-eval":0,"no-extra-semi":1,"no-new-array":1,"no-new-func":1,"no-new-object":1,"no-new-wrappers":1,"no-redeclare":1,"no-undef":2,"no-unused-params":1,"no-unused-vars":1,"no-use-before-define":1,semi:1,"use-isnan":2,"no-unreachable":2,"no-fallthrough":2},setOption:function(b,c,d){"number"===typeof c&&(Array.isArray(this.rules[b])?
(b=this.rules[b],d?(b[1]=b[1]||{},b[1][d]=c):b[0]=c):this.rules[b]=c)}};c.mixin(g.prototype,{_extractParseErrors:function(b){var c=[],d=Object.create(null),a=b.errors;if(a)for(var g=a.length,e=0;e<g;e++){var k=a[e],s=null;k.end&&k.token?s={range:[k.index,k.end],value:k.token}:0<b.tokens.length&&(s=f.findToken(k.index,b.tokens));if(s){var x=k.message;if(d[k.index]!==x){d[k.index]=x;if(k.type)switch(k.type){case h.ErrorTypes.Unexpected:k.message="Syntax error on token '"+s.value+"', delete this token.";
break;case h.ErrorTypes.EndOfInput:k.message="Syntax error, incomplete statement."}k.node=s;c.push(k)}}}return c},computeProblems:function(b,c){var d=this;switch(c.contentType){case "text/html":return b.getText().then(function(a){a=f.findScriptBlocks(a);for(var b=a.length,c=[],g=0;g<b;g++){for(var h=a[g],k=d.astManager.parse(h.text),k=d._validateAst(k).problems,m=k.length,p=0;p<m;p++)k[p].start+=h.offset,k[p].end+=h.offset;c=c.concat(k)}return{problems:c}});case "application/javascript":return this.astManager.getAST(b).then(function(a){return d._validateAst(a)})}},
_validateAst:function(c){var f=[],g=this._extractParseErrors(c);try{f=b.verify(c,k)}catch(a){1>g.length&&f.push({start:0,message:"ESLint failed to validate this file because an error occurred: "+a.toString(),severity:"error"})}return{problems:this._filterProblems(g,f).map(d)}},_filterProblems:function(b,c){var d=b.length;if(1>d)return c;var a=[].concat(b),f=c.length,e=0;a:for(;e<f;e++){for(var g=c[e],h=0;h<d;h++){var k=b[h],M=g.node;if(M&&M.range[0]>=k.index&&M.range[0]<=k.end)continue a}a.push(g)}return a},
updated:function(b){b&&(k.setOption("curly",b.validate_curly),k.setOption("eqeqeq",b.validate_eqeqeq),k.setOption("missing-doc",b.validate_func_decl,"decl"),k.setOption("missing-doc",b.validate_func_expr,"expr"),k.setOption("new-parens",b.validate_new_parens),k.setOption("no-debugger",b.validate_debugger),k.setOption("no-dupe-keys",b.validate_dupe_obj_keys),k.setOption("no-eval",b.validate_eval),k.setOption("no-extra-semi",b.validate_unnecessary_semi),k.setOption("no-new-array",b["no-new-array"]),
k.setOption("no-new-func",b["no-new-func"]),k.setOption("no-new-object",b["no-new-object"]),k.setOption("no-new-wrappers",b["no-new-wrappers"]),k.setOption("no-redeclare",b.validate_no_redeclare),k.setOption("no-undef",b.validate_no_undef),k.setOption("no-unused-params",b.validate_unused_params),k.setOption("no-unused-vars",b.validate_no_unused_vars),k.setOption("no-use-before-define",b.validate_use_before_define),k.setOption("semi",b.validate_missing_semi),k.setOption("use-isnan",b.validate_use_isnan),
k.setOption("no-unreachable",b.validate_no_unreachable),k.setOption("no-fallthrough",b.validate_no_fallthrough))}});return g});
define("javascript/occurrences",["orion/objects","javascript/finder"],function(b,c){function h(b){this.astManager=b}b.mixin(h.prototype,{computeOccurrences:function(b,g){var d=this;switch(g.contentType){case "text/html":return b.getText().then(function(b){b=c.findScriptBlocks(b,g.selection.start);if(0<b.length){b=b[0];for(var f=d.astManager.parse(b.text),f=c.findOccurrences(f,{selection:{start:g.selection.start-b.offset,end:g.selection.end-b.offset}}),h=f.length,u=0;u<h;u++)f[u].start+=b.offset,f[u].end+=
b.offset}return f});case "application/javascript":return this.astManager.getAST(b).then(function(b){return c.findOccurrences(b,g)})}}});h.prototype.contructor=h;return{JavaScriptOccurrences:h}});
define("javascript/signatures",[],function(){return{computeSignature:function(b){if(b){if(b.sig)return b.sig;var c=this.getNameFrom(b);return{sig:c.name,details:c.details,range:this.getSignatureSourceRangeFrom(b)}}return null},getParamsFrom:function(b){if(b&&(b=b.params)&&0<b.length){for(var c=b.length,h="",f=0;f<c;f++)h=b[f].name?h+b[f].name:h+"Object",f<c-1&&(h+=", ");return h}},getPropertyListFrom:function(b,c){c||(c=50);0>c&&(c=0);if(b){var h=b.properties;if(h&&0<h.length){for(var f=h.length,
g,d="{",k=0;k<f;k++)if(g=h[k].key&&h[k].key.name?h[k].key.name:"Object",d.length+g.length>c+1){d+="...";break}else d+=g,k<f-1&&(d+=", ");return d+"}"}}return"{...}"},getNameFrom:function(b){var c="Anonyous "+b.type,h;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 ",h=this.getPropertyListFrom(b);
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+" "),h=this.getPropertyListFrom(b.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 ",h=this.getPropertyListFrom(b.init)):"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 f="ObjectExpression"===b.right.type;if(f||"FunctionExpression"===b.right.type)b.left.name?c=b.left.name:"MemberExpression"===b.left.type&&(c=this.expandMemberExpression(b.left,"")),c?f?(c+=" ",h=this.getPropertyListFrom(b.right)):
(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 ",h=this.getPropertyListFrom(b.argument);return{name:c,details:h}},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,h){function f(){}function g(b){this.astManager=b}b.mixin(f.prototype,{outline:[],scope:[],enter:function(b){var f,g=this;if(b.type===h.Syntax.FunctionDeclaration)(f=this.addElement(c.computeSignature(b)))&&this.scope.push(f);else if(b.type===h.Syntax.FunctionExpression)(f=this.addElement(c.computeSignature(b)))&&this.scope.push(f),delete b.sig;else if(b.type===h.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===h.Syntax.FunctionExpression||b.value.type===h.Syntax.ObjectExpression?b.value.sig=c.computeSignature(b):g.addElement(c.computeSignature(b)))});else if(b.type===h.Syntax.VariableDeclaration)b.declarations&&b.declarations.forEach(function(b){b.init&&b.init.type===h.Syntax.ObjectExpression&&(b.init.sig=c.computeSignature(b))});else if(b.type===h.Syntax.AssignmentExpression){if(b.left&&b.right&&(b.right.type===
h.Syntax.ObjectExpression||b.right.type===h.Syntax.FunctionExpression))b.right.sig=c.computeSignature(b)}else if(b.type===h.Syntax.ReturnStatement&&b.argument&&(b.argument.type===h.Syntax.ObjectExpression||b.argument.type===h.Syntax.FunctionExpression))b.argument.sig=c.computeSignature(b)},leave:function(b){(b.type===h.Syntax.ObjectExpression||b.type===h.Syntax.FunctionDeclaration||b.type===h.Syntax.FunctionExpression)&&this.scope.pop()},addElement:function(b){if(b){b={label:b.sig,labelPost:b.details,
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}}});f.prototype.constructor=f;b.mixin(g.prototype,{visitor:null,getVisitor:function(){this.visitor||(this.visitor=new f,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();h.traverse(b,c);return c.outline}return[]})}});g.prototype.contructor=g;return{JSOutliner:g}});
(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(h){function f(a){z&&("undefined"===typeof ArrayBuffer&&(a=JSON.stringify(a)),z===self?z.postMessage(a):z.postMessage(a,"*"))}function g(){var a=[];Object.keys(ba).forEach(function(b){var c=
ba[b];a.push({serviceId:b,names:c.names,methods:c.methods,properties:c.properties})});return{headers:l||{},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 k(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 m(a){if(!z)return(new b).reject(Error("plugin not connected"));a.id=String(s++);
var d=new b;A[a.id]=d;d.then(null,function(b){e&&(b instanceof Error&&"Cancel"===b.name)&&V({requestId:a.id,method:"cancel",params:b.message?[b.message]:[]})});var f=Object.prototype.toString;a.params.forEach(function(b,e){if("[object Object]"===f.call(b)&&!(b instanceof c)){var g,h;for(g in b)"[object Function]"===f.call(b[g])&&(h=h||[],h.push(g));if(h){var k=x++;q[k]=b;g=function(){delete q[k]};d.then(g,g);a.params[e]=new c(k,h)}}});V(a);return d.promise}function p(a,b){a||0===a?V({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 m({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?(J[a]=f,f.then(function(b){delete J[a];e.result=b;V(e)},function(b){J[a]&&(delete J[a],e.error=k(b),V(e))},function(){V({responseId:a,
method:"progress",params:Array.prototype.slice.call(arguments)})})):(e.result=f,V(e)))}catch(g){e&&(e.error=k(g),V(e))}}function a(a){if(!(a.source!==z&&"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=ba[a.serviceId];d||p(a.id,"service not found");d=d.implementation;b in d?u(a.id,d,d[b],c):p(a.id,"method not found")}else if("objectId"in a){var e=q[a.objectId];e||p(a.id,"object not found");!b in
e?u(a.id,e,e[b],c):p(a.id,"method not found")}else if("requestId"in a){var f=J[a.requestId];f&&("cancel"===b&&f.cancel)&&f.cancel.apply(f,c)}else if("responseId"in a){var g=A[a.responseId];g&&("progress"===b&&g.progress)&&g.progress.apply(g,c)}else throw Error("Bad method: "+a.method);}else{var h=A[String(a.id)];delete A[String(a.id)];a.error?h.reject(a.error):h.resolve(a.result)}}catch(k){console.log("Plugin._messageHandler "+k)}}}var l=h,e=!1,z=null,s=0,x=0,M=0,J={},A={},q={},ba={},V=f;this.updateHeaders=
function(a){if(e)throw Error("Cannot update headers. Plugin Provider is connected");l=a};this.registerServiceProvider=this.registerService=function(a,b,c){if(e)throw Error("Cannot register service. Plugin Provider is connected");"string"===typeof a?a=[a]:Array.isArray(a)||(a=[]);var d=null,f=[];for(d in b)"function"===typeof b[d]&&f.push(d);ba[M++]={names:a,methods:f,implementation:b,properties:c||{},listeners:{}}};this.connect=function(b,c){if(!e){if("undefined"===typeof window)z=self;else if(window!==
window.parent)z=window.parent;else if(null!==window.opener)z=window.opener;else{c&&c("No valid plugin target");return}addEventListener("message",a,!1);var d={method:"plugin",params:[g()]};f(d);e=!0}b&&b()};this.disconnect=function(){e&&(removeEventListener("message",a),z=null,e=!1)}}});
define("orion/util",[],function(){var b=navigator.userAgent,c=-1!==b.indexOf("MSIE")||-1!==b.indexOf("Trident")?document.documentMode:void 0,h=parseFloat(b.split("Firefox/")[1]||b.split("Minefield/")[1])||void 0,f=-1!==b.indexOf("Opera")?parseFloat(b.split("Version/")[1]):void 0,g=parseFloat(b.split("Chrome/")[1])||void 0,d=-1!==b.indexOf("Safari")&&!g,k=parseFloat(b.split("WebKit/")[1])||void 0,m=-1!==b.indexOf("Android"),p=-1!==b.indexOf("iPad"),b=-1!==b.indexOf("iPhone"),u=p||b,a=-1!==navigator.platform.indexOf("Mac"),
l=-1!==navigator.platform.indexOf("Win"),e=-1!==navigator.platform.indexOf("Linux"),z="undefined"!==typeof document&&"ontouchstart"in document.createElement("input");return{formatMessage:function(a){var b=arguments;return a.replace(/\$\{([^\}]+)\}/g,function(a,c){return b[(c<<0)+1]})},createElement:function(a,b){return a.createElementNS?a.createElementNS("http://www.w3.org/1999/xhtml",b):a.createElement(b)},isIE:c,isFirefox:h,isOpera:f,isChrome:g,isSafari:d,isWebkit:k,isAndroid:m,isIPad:p,isIPhone:b,
isIOS:u,isMac:a,isWindows:l,isLinux:e,isTouch:z,platformDelimiter:l?"\r\n":"\n"}});
define("javascript/commands/generateDocCommand",["orion/objects","javascript/finder","javascript/signatures","orion/Deferred"],function(b,c,h,f){function g(b){this.astManager=b}b.mixin(g.prototype,{execute:function(b,g){var m=this;return f.all([this.astManager.getAST(b),b.getText(),b.getCaretOffset()]).then(function(g){var k=c.findNode(g[2],g[0],{parents:!0});if(k){var a=g[1];if(k=m._resolveParent(k)){var l,e=k.range[0];if("FunctionDeclaration"===k.type)l=m._genTemplate(k.id.name,k.params,!1,k.range[0],
a);else if("Property"===k.type)l=m._genTemplate(k.key.name?k.key.name:k.key.value,k.value.params,!0,k.range[0],a);else if("VariableDeclarator"===k.type){e=k.range[0];if(k.decl){if(k.decl.leadingComments)return;k.decl.declarations&&1===k.decl.declarations.length&&(e=k.decl.range[0])}l=m._genTemplate(k.id.name,k.init.params,!0,e,a)}else"AssignmentExpression"===k.type&&(l=m._genTemplate(h.expandMemberExpression(k.left,""),k.right.params,!0,k.range[0],a))}if(l)return f.all([b.setText(l,e,e),b.setCaretOffset(g[2]+
l.length)])}})},_genTemplate:function(b,c,f,g,h){for(var a=h[--g],l="";" "===a||"\t"===a;)l+=a,a=h[--g];g=[];g.push("/**\n"+l+" * @name "+b+"\n");g.push(l+" * @description description\n");f&&g.push(l+" * @function\n");"_"===b.charAt(0)&&g.push(l+" * @private\n");if(c){b=c.length;for(f=0;f<b;f++)g.push(l+" * @param "+c[f].name+"\n")}g.push(l+" * @returns returns\n"+l+" */\n"+l);return g.join("")},_resolveParent:function(b){if(!b.parents||1>b.parents.length)return null;switch(b.type){case "FunctionDeclaration":return b;
case "Property":return b.value&&"FunctionExpression"===b.value.type?b:null;case "VariableDeclarator":return b.init&&"FunctionExpression"===b.init.type?(b.decl=b.parents[b.parents.length-1],b):null;case "VariableDeclaration":if(b.declarations&&1===b.declarations.length){var c=b.declarations[0];if(c.init&&"FunctionExpression"===c.init.type)return b.parents.push(b),c.parents=b.parents,this._resolveParent(c)}case "AssignmentExpression":if(b.left&&"MemberExpression"===b.left.type&&b.right&&"FunctionExpression"===
b.right.type)return b}var c=b.parents.length-1,f=b.parents[c];f.parents=b.parents.slice(0,c);return this._resolveParent(f)}});return{GenerateDocCommand:g}});
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,h){b=b.grammars.concat(c.grammars).concat(h.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("javascript/plugins/javascriptPlugin","esprima 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/validator javascript/occurrences javascript/outliner orion/plugin orion/util javascript/commands/generateDocCommand 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,h,f,g,d,k,m,p,u,a,l,e,z,s,x,M,J,A){e=new e({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."});e.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","pref"],imageClass:"file-sprite-javascript modelDecorationSprite"},{id:"application/x-ejs","extends":"text/plain",name:"Embedded Javascript",extension:["ejs"],imageClass:"file-sprite-javascript modelDecorationSprite"}]});b=new c.ASTManager(b);e.registerService("orion.edit.model",{onModelChanging:b.updated.bind(b),onDestroy:b.updated.bind(b)},{contentType:["application/javascript"],types:["ModelChanging","Destroy"]});e.registerServiceProvider("orion.edit.command",new s.GenerateDocCommand(b),
{nameKey:"generateDocName",tooltipKey:"generateDocTooltip",id:"generate.js.doc.comment",nls:"javascript/nls/messages",key:["j",!1,!0,!z.isMac,z.isMac],contentType:["application/javascript"]});e.registerService("orion.edit.outliner",new l.JSOutliner(b),{contentType:["application/javascript"],nls:"javascript/nls/messages",nameKey:"sourceOutline",titleKey:"sourceOutlineTitle",id:"orion.javascript.outliner.source"});e.registerService("orion.edit.occurrences",new a.JavaScriptOccurrences(b),{contentType:["application/javascript",
"text/html"]});e.registerService("orion.edit.contentassist",new p.JSContentAssist(b),{contentType:["application/javascript"],nls:"javascript/nls/messages",name:"contentAssist",id:"orion.edit.contentassist.javascript",charTriggers:"[.]",excludedStyles:"(comment.*|string.*)"});e.registerService(["orion.edit.validator","orion.cm.managedservice"],new u(b),{contentType:["application/javascript","text/html"],pid:"eslint.config"});p=[{labelKey:"ignore",value:0},{labelKey:"warning",value:1},{labelKey:"error",
value:2}];e.registerService("orion.core.setting",{},{settings:[{pid:"eslint.config",nls:"javascript/nls/messages",nameKey:"eslintValidator",tags:["validation","javascript","js","eslint"],category:"validation",properties:[{id:"no-new-array",nameKey:"no-new-array",type:"number",defaultValue:1,options:p},{id:"no-new-func",nameKey:"no-new-func",type:"number",defaultValue:1,options:p},{id:"no-new-object",nameKey:"no-new-object",type:"number",defaultValue:1,options:p},{id:"no-new-wrappers",nameKey:"no-new-wrappers",
type:"number",defaultValue:1,options:p},{id:"validate_eqeqeq",nameKey:"eqeqeq",type:"number",defaultValue:1,options:p},{id:"validate_debugger",nameKey:"noDebugger",type:"number",defaultValue:1,options:p},{id:"validate_eval",nameKey:"noEval",type:"number",defaultValue:0,options:p},{id:"validate_dupe_obj_keys",nameKey:"noDupeKeys",type:"number",defaultValue:2,options:p},{id:"validate_use_before_define",nameKey:"useBeforeDefine",type:"number",defaultValue:1,options:p},{id:"validate_new_parens",nameKey:"newParens",
type:"number",defaultValue:2,options:p},{id:"validate_use_isnan",nameKey:"useIsNaN",type:"number",defaultValue:2,options:p},{id:"validate_func_decl",nameKey:"docFuncDecl",type:"number",defaultValue:0,options:p},{id:"validate_func_expr",nameKey:"docFuncExpr",type:"number",defaultValue:0,options:p},{id:"validate_curly",nameKey:"curly",type:"number",defaultValue:0,options:p},{id:"validate_no_fallthrough",nameKey:"noFallthrough",type:"number",defaultValue:2,options:p},{id:"validate_no_undef",nameKey:"undefMember",
type:"number",defaultValue:2,options:p},{id:"validate_no_unused_vars",nameKey:"unusedVars",type:"number",defaultValue:1,options:p},{id:"validate_unnecessary_semi",nameKey:"unnecessarySemis",type:"number",defaultValue:1,options:p},{id:"validate_unused_params",nameKey:"unusedParams",type:"number",defaultValue:1,options:p},{id:"validate_no_unreachable",nameKey:"noUnreachable",type:"number",defaultValue:2,options:p},{id:"validate_no_redeclare",nameKey:"varRedecl",type:"number",defaultValue:1,options:p}]}]});
var q={};x.grammars.forEach(function(a){q[a.id]=a});M.grammars.forEach(function(a){q[a.id]=a});J.grammars.forEach(function(a){q[a.id]=a});A.grammars.forEach(function(a){q[a.id]=a});for(var ba in q)q.hasOwnProperty(ba)&&e.registerService("orion.edit.highlighter",{},q[ba]);e.registerService("orion.core.typedef",{},{id:"node.redis",type:"tern",defs:d});e.registerService("orion.core.typedef",{},{id:"node.mysql",type:"tern",defs:f});e.registerService("orion.core.typedef",{},{id:"node.postgres",type:"tern",
defs:g});e.registerService("orion.core.typedef",{},{id:"node.mongodb",type:"tern",defs:h});e.registerService("orion.core.typedef",{},{id:"node.express",type:"tern",defs:k});e.registerService("orion.core.typedef",{},{id:"node.amqp",type:"tern",defs:m});e.connect()});
//@ sourceMappingURL=javascriptPlugin.js.map