@angular/language-service 9.0.0-rc.6 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/symbols.d.ts CHANGED
@@ -7,6 +7,7 @@
7
7
  */
8
8
  /// <amd-module name="@angular/language-service/src/symbols" />
9
9
  import { StaticSymbol } from '@angular/compiler';
10
+ import * as ts from 'typescript';
10
11
  /**
11
12
  * The range of a span of text in a source file.
12
13
  *
@@ -81,6 +82,10 @@ export interface Symbol {
81
82
  * `true` if the symbol is a type that is nullable (can be null or undefined).
82
83
  */
83
84
  readonly nullable: boolean;
85
+ /**
86
+ * Documentation comment on the Symbol, if any.
87
+ */
88
+ readonly documentation: ts.SymbolDisplayPart[];
84
89
  /**
85
90
  * A table of the members of the symbol; that is, the members that can appear
86
91
  * after a `.` in an Angular expression.
@@ -105,6 +110,10 @@ export interface Symbol {
105
110
  * If the symbol cannot be indexed, this method should return `undefined`.
106
111
  */
107
112
  indexed(argument: Symbol, key?: any): Symbol | undefined;
113
+ /**
114
+ * Returns the type arguments of a Symbol, if any.
115
+ */
116
+ typeArguments(): Symbol[] | undefined;
108
117
  }
109
118
  /**
110
119
  * A table of `Symbol`s accessible by name.
package/src/symbols.js CHANGED
@@ -57,4 +57,4 @@
57
57
  BuiltinType[BuiltinType["Other"] = 7] = "Other";
58
58
  })(BuiltinType = exports.BuiltinType || (exports.BuiltinType = {}));
59
59
  });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xhbmd1YWdlLXNlcnZpY2Uvc3JjL3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7SUF1S0g7Ozs7T0FJRztJQUNILElBQVksV0F3Q1g7SUF4Q0QsV0FBWSxXQUFXO1FBQ3JCOztXQUVHO1FBQ0gsMkNBQUcsQ0FBQTtRQUVIOztXQUVHO1FBQ0gsaURBQU0sQ0FBQTtRQUVOOztXQUVHO1FBQ0gsaURBQU0sQ0FBQTtRQUVOOztXQUVHO1FBQ0gsbURBQU8sQ0FBQTtRQUVQOztXQUVHO1FBQ0gsdURBQVMsQ0FBQTtRQUVUOztXQUVHO1FBQ0gsNkNBQUksQ0FBQTtRQUVKOztXQUVHO1FBQ0gsbURBQU8sQ0FBQTtRQUVQOztXQUVHO1FBQ0gsK0NBQUssQ0FBQTtJQUNQLENBQUMsRUF4Q1csV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUF3Q3RCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1N0YXRpY1N5bWJvbH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuXG4vKipcbiAqIFRoZSByYW5nZSBvZiBhIHNwYW4gb2YgdGV4dCBpbiBhIHNvdXJjZSBmaWxlLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGFuIHtcbiAgLyoqXG4gICAqIFRoZSBmaXJzdCBjb2RlLXBvaW50IG9mIHRoZSBzcGFuIGFzIGFuIG9mZnNldCByZWxhdGl2ZSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBzb3VyY2UgYXNzdW1pbmdcbiAgICogYSBVVEYtMTYgZW5jb2RpbmcuXG4gICAqL1xuICBzdGFydDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgZmlyc3QgY29kZS1wb2ludCBhZnRlciB0aGUgc3BhbiBhcyBhbiBvZmZzZXQgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgc291cmNlXG4gICAqIGFzc3VtaW5nIGEgVVRGLTE2IGVuY29kaW5nLlxuICAgKi9cbiAgZW5kOiBudW1iZXI7XG59XG5cbi8qKlxuICogQSBmaWxlIGFuZCBzcGFuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uIHtcbiAgZmlsZU5hbWU6IHN0cmluZztcbiAgc3BhbjogU3Bhbjtcbn1cblxuLyoqXG4gKiBBIGRlZm5pdGlvbiBsb2NhdGlvbihzKS5cbiAqL1xuZXhwb3J0IHR5cGUgRGVmaW5pdGlvbiA9IExvY2F0aW9uW10gfCB1bmRlZmluZWQ7XG5cbi8qKlxuICogQSBzeW1ib2wgZGVzY3JpYmluZyBhIGxhbmd1YWdlIGVsZW1lbnQgdGhhdCBjYW4gYmUgcmVmZXJlbmNlZCBieSBleHByZXNzaW9uc1xuICogaW4gYW4gQW5ndWxhciB0ZW1wbGF0ZS5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3ltYm9sIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzeW1ib2wgYXMgaXQgd291bGQgYmUgcmVmZXJlbmNlZCBpbiBhbiBBbmd1bGFyIGV4cHJlc3Npb24uXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBraW5kIG9mIGNvbXBsZXRpb24gdGhpcyBzeW1ib2wgc2hvdWxkIGdlbmVyYXRlIGlmIGluY2x1ZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkga2luZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFuZ3VhZ2Ugb2YgdGhlIHNvdXJjZSB0aGF0IGRlZmluZXMgdGhlIHN5bWJvbC4gKGUuZy4gdHlwZXNjcmlwdCBmb3IgVHlwZVNjcmlwdCxcbiAgICogbmctdGVtcGxhdGUgZm9yIGFuIEFuZ3VsYXIgdGVtcGxhdGUsIGV0Yy4pXG4gICAqL1xuICByZWFkb25seSBsYW5ndWFnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHN5bWJvbCByZXByZXNlbnRpbmcgdHlwZSBvZiB0aGUgc3ltYm9sLlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogU3ltYm9sfHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQSBzeW1ib2wgZm9yIHRoZSBjb250YWluZXIgb2YgdGhpcyBzeW1ib2wuIEZvciBleGFtcGxlLCBpZiB0aGlzIGlzIGEgbWV0aG9kLCB0aGUgY29udGFpbmVyXG4gICAqIGlzIHRoZSBjbGFzcyBvciBpbnRlcmZhY2Ugb2YgdGhlIG1ldGhvZC4gSWYgbm8gY29udGFpbmVyIGlzIGFwcHJvcHJpYXRlLCB1bmRlZmluZWQgaXNcbiAgICogcmV0dXJuZWQuXG4gICAqL1xuICByZWFkb25seSBjb250YWluZXI6IFN5bWJvbHx1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBzeW1ib2wgaXMgcHVibGljIGluIHRoZSBjb250YWluZXIuXG4gICAqL1xuICByZWFkb25seSBwdWJsaWM6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIGB0cnVlYCBpZiB0aGUgc3ltYm9sIGNhbiBiZSB0aGUgdGFyZ2V0IG9mIGEgY2FsbC5cbiAgICovXG4gIHJlYWRvbmx5IGNhbGxhYmxlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbG9jYXRpb24gb2YgdGhlIGRlZmluaXRpb24gb2YgdGhlIHN5bWJvbFxuICAgKi9cbiAgcmVhZG9ubHkgZGVmaW5pdGlvbjogRGVmaW5pdGlvbnx1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIGB0cnVlYCBpZiB0aGUgc3ltYm9sIGlzIGEgdHlwZSB0aGF0IGlzIG51bGxhYmxlIChjYW4gYmUgbnVsbCBvciB1bmRlZmluZWQpLlxuICAgKi9cbiAgcmVhZG9ubHkgbnVsbGFibGU6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEEgdGFibGUgb2YgdGhlIG1lbWJlcnMgb2YgdGhlIHN5bWJvbDsgdGhhdCBpcywgdGhlIG1lbWJlcnMgdGhhdCBjYW4gYXBwZWFyXG4gICAqIGFmdGVyIGEgYC5gIGluIGFuIEFuZ3VsYXIgZXhwcmVzc2lvbi5cbiAgICovXG4gIG1lbWJlcnMoKTogU3ltYm9sVGFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIG92ZXJsb2FkZWQgc2lnbmF0dXJlcyB0aGF0IGNhbiBiZSB1c2VkIGlmIHRoZSBzeW1ib2wgaXMgdGhlXG4gICAqIHRhcmdldCBvZiBhIGNhbGwuXG4gICAqL1xuICBzaWduYXR1cmVzKCk6IFNpZ25hdHVyZVtdO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2hpY2ggc2lnbmF0dXJlIG9mIHJldHVybmVkIGJ5IGBzaWduYXR1cmVzKClgIHdvdWxkIGJlIHVzZWQgc2VsZWN0ZWRcbiAgICogZ2l2ZW4gdGhlIGB0eXBlc2Agc3VwcGxpZWQuIElmIG5vIHNpZ25hdHVyZSB3b3VsZCBtYXRjaCwgdGhpcyBtZXRob2Qgc2hvdWxkXG4gICAqIHJldHVybiBgdW5kZWZpbmVkYC5cbiAgICovXG4gIHNlbGVjdFNpZ25hdHVyZSh0eXBlczogU3ltYm9sW10pOiBTaWduYXR1cmV8dW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHR5cGUgb2YgdGhlIGV4cHJlc3Npb24gaWYgdGhpcyBzeW1ib2wgaXMgaW5kZXhlZCBieSBgYXJndW1lbnRgLlxuICAgKiBTb21ldGltZXMgd2UgbmVlZCB0aGUga2V5IG9mIGFyZ3VtZW50cyB0byBnZXQgdGhlIHR5cGUgb2YgdGhlIGV4cHJlc3Npb24sIGZvciBleGFtcGxlXG4gICAqIGluIHRoZSBjYXNlIG9mIHR1cGxlcyAoYHR5cGUgRXhhbXBsZSA9IFtzdHJpbmcsIG51bWJlcl1gKS5cbiAgICogW3N0cmluZywgbnVtYmVyXSkuXG4gICAqIElmIHRoZSBzeW1ib2wgY2Fubm90IGJlIGluZGV4ZWQsIHRoaXMgbWV0aG9kIHNob3VsZCByZXR1cm4gYHVuZGVmaW5lZGAuXG4gICAqL1xuICBpbmRleGVkKGFyZ3VtZW50OiBTeW1ib2wsIGtleT86IGFueSk6IFN5bWJvbHx1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQSB0YWJsZSBvZiBgU3ltYm9sYHMgYWNjZXNzaWJsZSBieSBuYW1lLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTeW1ib2xUYWJsZSB7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHN5bWJvbHMgaW4gdGhlIHRhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2l6ZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHN5bWJvbCBjb3JyZXNwb25kaW5nIHRvIGBrZXlgIG9yIGB1bmRlZmluZWRgIGlmIHRoZXJlIGlzIG5vIHN5bWJvbCBpbiB0aGVcbiAgICogdGFibGUgYnkgdGhlIG5hbWUgYGtleWAuXG4gICAqL1xuICBnZXQoa2V5OiBzdHJpbmcpOiBTeW1ib2x8dW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGB0cnVlYCBpZiB0aGUgdGFibGUgY29udGFpbnMgYSBgU3ltYm9sYCB3aXRoIHRoZSBuYW1lIGBrZXlgLlxuICAgKi9cbiAgaGFzKGtleTogc3RyaW5nKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmV0dXJucyBhbGwgdGhlIGBTeW1ib2xgcyBpbiB0aGUgdGFibGUuIFRoZSBvcmRlciBzaG91bGQgYmUsIGJ1dCBpcyBub3QgcmVxdWlyZWQgdG8gYmUsXG4gICAqIGluIGRlY2xhcmF0aW9uIG9yZGVyLlxuICAgKi9cbiAgdmFsdWVzKCk6IFN5bWJvbFtdO1xufVxuXG4vKipcbiAqIEEgZGVzY3JpcHRpb24gb2YgYSBmdW5jdGlvbiBvciBtZXRob2Qgc2lnbmF0dXJlLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmUge1xuICAvKipcbiAgICogVGhlIGFyZ3VtZW50cyBvZiB0aGUgc2lnbnR1cmUuIFRoZSBvcmRlciBvZiBgYXJndW1lbnRzLnN5bWJvbHMoKWAgbXVzdCBiZSBpbiB0aGUgb3JkZXJcbiAgICogb2YgYXJndW1lbnQgZGVjbGFyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBhcmd1bWVudHM6IFN5bWJvbFRhYmxlO1xuXG4gIC8qKlxuICAgKiBUaGUgc3ltYm9sIG9mIHRoZSBzaWduYXR1cmUgcmVzdWx0IHR5cGUuXG4gICAqL1xuICByZWFkb25seSByZXN1bHQ6IFN5bWJvbDtcbn1cblxuLyoqXG4gKiBBbiBlbnVtZXJhdGlvbiBvZiBiYXNpYyB0eXBlcy5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBlbnVtIEJ1aWx0aW5UeXBlIHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIGlzIGEgdHlwZSB0aGF0IGNhbiBob2xkIGFueSBvdGhlciB0eXBlLlxuICAgKi9cbiAgQW55LFxuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBhIHN0cmluZyBsaXRlcmFsLlxuICAgKi9cbiAgU3RyaW5nLFxuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBhIG51bWVyaWMgbGl0ZXJhbC5cbiAgICovXG4gIE51bWJlcixcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIGB0cnVlYCBhbmQgYGZhbHNlYCBsaXRlcmFscy5cbiAgICovXG4gIEJvb2xlYW4sXG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBgdW5kZWZpbmVkYCBsaXRlcmFsLlxuICAgKi9cbiAgVW5kZWZpbmVkLFxuXG4gIC8qKlxuICAgKiB0aGUgdHlwZSBvZiB0aGUgYG51bGxgIGxpdGVyYWwuXG4gICAqL1xuICBOdWxsLFxuXG4gIC8qKlxuICAgKiB0aGUgdHlwZSBpcyBhbiB1bmJvdW5kIHR5cGUgcGFyYW1ldGVyLlxuICAgKi9cbiAgVW5ib3VuZCxcblxuICAvKipcbiAgICogTm90IGEgYnVpbHQtaW4gdHlwZS5cbiAgICovXG4gIE90aGVyXG59XG5cbi8qKlxuICogVGhlIGtpbmRzIG9mIGRlZmluaXRpb24uXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgdHlwZSBEZWNsYXJhdGlvbktpbmQgPSAnYXR0cmlidXRlJyB8ICdodG1sIGF0dHJpYnV0ZScgfCAnY29tcG9uZW50JyB8ICdlbGVtZW50JyB8ICdlbnRpdHknIHxcbiAgICAna2V5JyB8ICdtZXRob2QnIHwgJ3BpcGUnIHwgJ3Byb3BlcnR5JyB8ICd0eXBlJyB8ICdyZWZlcmVuY2UnIHwgJ3ZhcmlhYmxlJztcblxuLyoqXG4gKiBEZXNjcmliZXMgYSBzeW1ib2wgdG8gdHlwZSBiaW5kaW5nIHVzZWQgdG8gYnVpbGQgYSBzeW1ib2wgdGFibGUuXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN5bWJvbERlY2xhcmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzeW1ib2wgaW4gdGFibGUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBraW5kIG9mIHN5bWJvbCB0byBkZWNsYXJlLlxuICAgKi9cbiAgcmVhZG9ubHkga2luZDogRGVjbGFyYXRpb25LaW5kO1xuXG4gIC8qKlxuICAgKiBUeXBlIG9mIHRoZSBzeW1ib2wuIFRoZSB0eXBlIHN5bWJvbCBzaG91bGQgcmVmZXIgdG8gYSBzeW1ib2wgZm9yIGEgdHlwZS5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IFN5bWJvbDtcblxuICAvKipcbiAgICogVGhlIGRlZmluaW9uIG9mIHRoZSBzeW1ib2wgaWYgb25lIGV4aXN0cy5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmluaXRpb24/OiBEZWZpbml0aW9uO1xufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBwaXBlcyB0aGF0IGFyZSBhdmFpbGFibGUgZm9yIHVzZSBpbiBhIHRlbXBsYXRlLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcGlwZS5cbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHN0YXRpYyBzeW1ib2wgZm9yIHRoZSBwaXBlJ3MgY29uc3RydWN0b3IuXG4gICAqL1xuICBzeW1ib2w6IFN0YXRpY1N5bWJvbDtcbn1cblxuLyoqXG4gKiBBIHNlcXVlbmNlIG9mIHBpcGUgaW5mb3JtYXRpb24uXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgdHlwZSBQaXBlcyA9IFBpcGVJbmZvW10gfCB1bmRlZmluZWQ7XG5cbi8qKlxuICogRGVzY3JpYmVzIHRoZSBsYW5ndWFnZSBjb250ZXh0IGluIHdoaWNoIGFuIEFuZ3VsYXIgZXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQuXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN5bWJvbFF1ZXJ5IHtcbiAgLyoqXG4gICAqIFJldHVybiB0aGUgYnVpbHQtaW4gdHlwZSB0aGlzIHN5bWJvbCByZXByZXNlbnRzIG9yIE90aGVyIGlmIGl0IGlzIG5vdCBhIGJ1aWx0LWluIHR5cGUuXG4gICAqL1xuICBnZXRUeXBlS2luZChzeW1ib2w6IFN5bWJvbCk6IEJ1aWx0aW5UeXBlO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBzeW1ib2wgcmVwcmVzZW50aW5nIHRoZSBnaXZlbiBidWlsdC1pbiB0eXBlLlxuICAgKi9cbiAgZ2V0QnVpbHRpblR5cGUoa2luZDogQnVpbHRpblR5cGUpOiBTeW1ib2w7XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgc3ltYm9sIGZvciBhIHR5cGUgdGhhdCByZXByZXNlbnRzIHRoZSB1bmlvbiBvZiBhbGwgdGhlIHR5cGVzIGdpdmVuLiBBbnkgdmFsdWVcbiAgICogb2Ygb25lIG9mIHRoZSB0eXBlcyBnaXZlbiBzaG91bGQgYmUgYXNzaWduYWJsZSB0byB0aGUgcmV0dXJuZWQgdHlwZS4gSWYgbm8gb25lIHR5cGUgY2FuXG4gICAqIGJlIGNvbnN0cnVjdGVkIHRoZW4gdGhpcyBzaG91bGQgYmUgdGhlIEFueSB0eXBlLlxuICAgKi9cbiAgZ2V0VHlwZVVuaW9uKC4uLnR5cGVzOiBTeW1ib2xbXSk6IFN5bWJvbDtcblxuICAvKipcbiAgICogUmV0dXJuIGEgc3ltYm9sIGZvciBhbiBhcnJheSB0eXBlIHRoYXQgaGFzIHRoZSBgdHlwZWAgYXMgaXRzIGVsZW1lbnQgdHlwZS5cbiAgICovXG4gIGdldEFycmF5VHlwZSh0eXBlOiBTeW1ib2wpOiBTeW1ib2w7XG5cbiAgLyoqXG4gICAqIFJldHVybiBlbGVtZW50IHR5cGUgc3ltYm9sIGZvciBhbiBhcnJheSB0eXBlIGlmIHRoZSBgdHlwZWAgaXMgYW4gYXJyYXkgdHlwZS4gT3RoZXJ3aXNlIHJldHVyblxuICAgKiB1bmRlZmluZWQuXG4gICAqL1xuICBnZXRFbGVtZW50VHlwZSh0eXBlOiBTeW1ib2wpOiBTeW1ib2x8dW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSB0eXBlIHRoYXQgaXMgdGhlIG5vbi1udWxsYWJsZSB2ZXJzaW9uIG9mIHRoZSBnaXZlbiB0eXBlLiBJZiBgdHlwZWAgaXMgYWxyZWFkeVxuICAgKiBub24tbnVsbGFibGUsIHJldHVybiBgdHlwZWAuXG4gICAqL1xuICBnZXROb25OdWxsYWJsZVR5cGUodHlwZTogU3ltYm9sKTogU3ltYm9sO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBzeW1ib2wgdGFibGUgZm9yIHRoZSBwaXBlcyB0aGF0IGFyZSBpbiBzY29wZS5cbiAgICovXG4gIGdldFBpcGVzKCk6IFN5bWJvbFRhYmxlO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHR5cGUgc3ltYm9sIGZvciB0aGUgZ2l2ZW4gc3RhdGljIHN5bWJvbC5cbiAgICovXG4gIGdldFR5cGVTeW1ib2wodHlwZTogU3RhdGljU3ltYm9sKTogU3ltYm9sfHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBtZW1iZXJzIHRoYXQgYXJlIGluIHRoZSBjb250ZXh0IG9mIGEgdHlwZSdzIHRlbXBsYXRlIHJlZmVyZW5jZS5cbiAgICovXG4gIGdldFRlbXBsYXRlQ29udGV4dCh0eXBlOiBTdGF0aWNTeW1ib2wpOiBTeW1ib2xUYWJsZXx1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFByb2R1Y2UgYSBzeW1ib2wgdGFibGUgd2l0aCB0aGUgZ2l2ZW4gc3ltYm9scy4gVXNlZCB0byBwcm9kdWNlIGEgc3ltYm9sIHRhYmxlXG4gICAqIGZvciB1c2Ugd2l0aCBtZXJnZVN5bWJvbFRhYmxlcygpLlxuICAgKi9cbiAgY3JlYXRlU3ltYm9sVGFibGUoc3ltYm9sczogU3ltYm9sRGVjbGFyYXRpb25bXSk6IFN5bWJvbFRhYmxlO1xuXG4gIC8qKlxuICAgKiBQcm9kdWNlIGEgbWVyZ2VkIHN5bWJvbCB0YWJsZS4gSWYgdGhlIHN5bWJvbCB0YWJsZXMgY29udGFpbiBkdXBsaWNhdGUgZW50cmllc1xuICAgKiB0aGUgZW50cmllcyBvZiB0aGUgbGF0dGVyIHN5bWJvbCB0YWJsZXMgd2lsbCBvYnNjdXJlIHRoZSBlbnRyaWVzIGluIHRoZSBwcmlvclxuICAgKiBzeW1ib2wgdGFibGVzLlxuICAgKlxuICAgKiBUaGUgc3ltYm9sIHRhYmxlcyBwYXNzZWQgdG8gdGhpcyByb3V0aW5lIE1VU1QgYmUgcHJvZHVjZXMgYnkgdGhlIHNhbWUgaW5zdGFuY2VcbiAgICogb2YgU3ltYm9sUXVlcnkgdGhhdCBpcyBiZWluZyBjYWxsZWQuXG4gICAqL1xuICBtZXJnZVN5bWJvbFRhYmxlKHN5bWJvbFRhYmxlczogU3ltYm9sVGFibGVbXSk6IFN5bWJvbFRhYmxlO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHNwYW4gb2YgdGhlIG5hcnJvd2VzdCBub24tdG9rZW4gbm9kZSBhdCB0aGUgZ2l2ZW4gbG9jYXRpb24uXG4gICAqL1xuICBnZXRTcGFuQXQobGluZTogbnVtYmVyLCBjb2x1bW46IG51bWJlcik6IFNwYW58dW5kZWZpbmVkO1xufVxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2xhbmd1YWdlLXNlcnZpY2Uvc3JjL3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7Ozs7SUFtTEg7Ozs7T0FJRztJQUNILElBQVksV0F3Q1g7SUF4Q0QsV0FBWSxXQUFXO1FBQ3JCOztXQUVHO1FBQ0gsMkNBQUcsQ0FBQTtRQUVIOztXQUVHO1FBQ0gsaURBQU0sQ0FBQTtRQUVOOztXQUVHO1FBQ0gsaURBQU0sQ0FBQTtRQUVOOztXQUVHO1FBQ0gsbURBQU8sQ0FBQTtRQUVQOztXQUVHO1FBQ0gsdURBQVMsQ0FBQTtRQUVUOztXQUVHO1FBQ0gsNkNBQUksQ0FBQTtRQUVKOztXQUVHO1FBQ0gsbURBQU8sQ0FBQTtRQUVQOztXQUVHO1FBQ0gsK0NBQUssQ0FBQTtJQUNQLENBQUMsRUF4Q1csV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUF3Q3RCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1N0YXRpY1N5bWJvbH0gZnJvbSAnQGFuZ3VsYXIvY29tcGlsZXInO1xuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cblxuLyoqXG4gKiBUaGUgcmFuZ2Ugb2YgYSBzcGFuIG9mIHRleHQgaW4gYSBzb3VyY2UgZmlsZS5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhbiB7XG4gIC8qKlxuICAgKiBUaGUgZmlyc3QgY29kZS1wb2ludCBvZiB0aGUgc3BhbiBhcyBhbiBvZmZzZXQgcmVsYXRpdmUgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgc291cmNlIGFzc3VtaW5nXG4gICAqIGEgVVRGLTE2IGVuY29kaW5nLlxuICAgKi9cbiAgc3RhcnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIGZpcnN0IGNvZGUtcG9pbnQgYWZ0ZXIgdGhlIHNwYW4gYXMgYW4gb2Zmc2V0IHJlbGF0aXZlIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHNvdXJjZVxuICAgKiBhc3N1bWluZyBhIFVURi0xNiBlbmNvZGluZy5cbiAgICovXG4gIGVuZDogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgZmlsZSBhbmQgc3Bhbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvbiB7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIHNwYW46IFNwYW47XG59XG5cbi8qKlxuICogQSBkZWZuaXRpb24gbG9jYXRpb24ocykuXG4gKi9cbmV4cG9ydCB0eXBlIERlZmluaXRpb24gPSBMb2NhdGlvbltdIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIEEgc3ltYm9sIGRlc2NyaWJpbmcgYSBsYW5ndWFnZSBlbGVtZW50IHRoYXQgY2FuIGJlIHJlZmVyZW5jZWQgYnkgZXhwcmVzc2lvbnNcbiAqIGluIGFuIEFuZ3VsYXIgdGVtcGxhdGUuXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN5bWJvbCB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3ltYm9sIGFzIGl0IHdvdWxkIGJlIHJlZmVyZW5jZWQgaW4gYW4gQW5ndWxhciBleHByZXNzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUga2luZCBvZiBjb21wbGV0aW9uIHRoaXMgc3ltYm9sIHNob3VsZCBnZW5lcmF0ZSBpZiBpbmNsdWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGtpbmQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxhbmd1YWdlIG9mIHRoZSBzb3VyY2UgdGhhdCBkZWZpbmVzIHRoZSBzeW1ib2wuIChlLmcuIHR5cGVzY3JpcHQgZm9yIFR5cGVTY3JpcHQsXG4gICAqIG5nLXRlbXBsYXRlIGZvciBhbiBBbmd1bGFyIHRlbXBsYXRlLCBldGMuKVxuICAgKi9cbiAgcmVhZG9ubHkgbGFuZ3VhZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogQSBzeW1ib2wgcmVwcmVzZW50aW5nIHR5cGUgb2YgdGhlIHN5bWJvbC5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IFN5bWJvbHx1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEEgc3ltYm9sIGZvciB0aGUgY29udGFpbmVyIG9mIHRoaXMgc3ltYm9sLiBGb3IgZXhhbXBsZSwgaWYgdGhpcyBpcyBhIG1ldGhvZCwgdGhlIGNvbnRhaW5lclxuICAgKiBpcyB0aGUgY2xhc3Mgb3IgaW50ZXJmYWNlIG9mIHRoZSBtZXRob2QuIElmIG5vIGNvbnRhaW5lciBpcyBhcHByb3ByaWF0ZSwgdW5kZWZpbmVkIGlzXG4gICAqIHJldHVybmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbmVyOiBTeW1ib2x8dW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgc3ltYm9sIGlzIHB1YmxpYyBpbiB0aGUgY29udGFpbmVyLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgaWYgdGhlIHN5bWJvbCBjYW4gYmUgdGhlIHRhcmdldCBvZiBhIGNhbGwuXG4gICAqL1xuICByZWFkb25seSBjYWxsYWJsZTogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGxvY2F0aW9uIG9mIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBzeW1ib2xcbiAgICovXG4gIHJlYWRvbmx5IGRlZmluaXRpb246IERlZmluaXRpb258dW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBgdHJ1ZWAgaWYgdGhlIHN5bWJvbCBpcyBhIHR5cGUgdGhhdCBpcyBudWxsYWJsZSAoY2FuIGJlIG51bGwgb3IgdW5kZWZpbmVkKS5cbiAgICovXG4gIHJlYWRvbmx5IG51bGxhYmxlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEb2N1bWVudGF0aW9uIGNvbW1lbnQgb24gdGhlIFN5bWJvbCwgaWYgYW55LlxuICAgKi9cbiAgcmVhZG9ubHkgZG9jdW1lbnRhdGlvbjogdHMuU3ltYm9sRGlzcGxheVBhcnRbXTtcblxuICAvKipcbiAgICogQSB0YWJsZSBvZiB0aGUgbWVtYmVycyBvZiB0aGUgc3ltYm9sOyB0aGF0IGlzLCB0aGUgbWVtYmVycyB0aGF0IGNhbiBhcHBlYXJcbiAgICogYWZ0ZXIgYSBgLmAgaW4gYW4gQW5ndWxhciBleHByZXNzaW9uLlxuICAgKi9cbiAgbWVtYmVycygpOiBTeW1ib2xUYWJsZTtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2Ygb3ZlcmxvYWRlZCBzaWduYXR1cmVzIHRoYXQgY2FuIGJlIHVzZWQgaWYgdGhlIHN5bWJvbCBpcyB0aGVcbiAgICogdGFyZ2V0IG9mIGEgY2FsbC5cbiAgICovXG4gIHNpZ25hdHVyZXMoKTogU2lnbmF0dXJlW107XG5cbiAgLyoqXG4gICAqIFJldHVybiB3aGljaCBzaWduYXR1cmUgb2YgcmV0dXJuZWQgYnkgYHNpZ25hdHVyZXMoKWAgd291bGQgYmUgdXNlZCBzZWxlY3RlZFxuICAgKiBnaXZlbiB0aGUgYHR5cGVzYCBzdXBwbGllZC4gSWYgbm8gc2lnbmF0dXJlIHdvdWxkIG1hdGNoLCB0aGlzIG1ldGhvZCBzaG91bGRcbiAgICogcmV0dXJuIGB1bmRlZmluZWRgLlxuICAgKi9cbiAgc2VsZWN0U2lnbmF0dXJlKHR5cGVzOiBTeW1ib2xbXSk6IFNpZ25hdHVyZXx1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgdHlwZSBvZiB0aGUgZXhwcmVzc2lvbiBpZiB0aGlzIHN5bWJvbCBpcyBpbmRleGVkIGJ5IGBhcmd1bWVudGAuXG4gICAqIFNvbWV0aW1lcyB3ZSBuZWVkIHRoZSBrZXkgb2YgYXJndW1lbnRzIHRvIGdldCB0aGUgdHlwZSBvZiB0aGUgZXhwcmVzc2lvbiwgZm9yIGV4YW1wbGVcbiAgICogaW4gdGhlIGNhc2Ugb2YgdHVwbGVzIChgdHlwZSBFeGFtcGxlID0gW3N0cmluZywgbnVtYmVyXWApLlxuICAgKiBbc3RyaW5nLCBudW1iZXJdKS5cbiAgICogSWYgdGhlIHN5bWJvbCBjYW5ub3QgYmUgaW5kZXhlZCwgdGhpcyBtZXRob2Qgc2hvdWxkIHJldHVybiBgdW5kZWZpbmVkYC5cbiAgICovXG4gIGluZGV4ZWQoYXJndW1lbnQ6IFN5bWJvbCwga2V5PzogYW55KTogU3ltYm9sfHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdHlwZSBhcmd1bWVudHMgb2YgYSBTeW1ib2wsIGlmIGFueS5cbiAgICovXG4gIHR5cGVBcmd1bWVudHMoKTogU3ltYm9sW118dW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEEgdGFibGUgb2YgYFN5bWJvbGBzIGFjY2Vzc2libGUgYnkgbmFtZS5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3ltYm9sVGFibGUge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzeW1ib2xzIGluIHRoZSB0YWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IHNpemU6IG51bWJlcjtcblxuICAvKipcbiAgICogR2V0IHRoZSBzeW1ib2wgY29ycmVzcG9uZGluZyB0byBga2V5YCBvciBgdW5kZWZpbmVkYCBpZiB0aGVyZSBpcyBubyBzeW1ib2wgaW4gdGhlXG4gICAqIHRhYmxlIGJ5IHRoZSBuYW1lIGBrZXlgLlxuICAgKi9cbiAgZ2V0KGtleTogc3RyaW5nKTogU3ltYm9sfHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHRhYmxlIGNvbnRhaW5zIGEgYFN5bWJvbGAgd2l0aCB0aGUgbmFtZSBga2V5YC5cbiAgICovXG4gIGhhcyhrZXk6IHN0cmluZyk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHRoZSBgU3ltYm9sYHMgaW4gdGhlIHRhYmxlLiBUaGUgb3JkZXIgc2hvdWxkIGJlLCBidXQgaXMgbm90IHJlcXVpcmVkIHRvIGJlLFxuICAgKiBpbiBkZWNsYXJhdGlvbiBvcmRlci5cbiAgICovXG4gIHZhbHVlcygpOiBTeW1ib2xbXTtcbn1cblxuLyoqXG4gKiBBIGRlc2NyaXB0aW9uIG9mIGEgZnVuY3Rpb24gb3IgbWV0aG9kIHNpZ25hdHVyZS5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlIHtcbiAgLyoqXG4gICAqIFRoZSBhcmd1bWVudHMgb2YgdGhlIHNpZ250dXJlLiBUaGUgb3JkZXIgb2YgYGFyZ3VtZW50cy5zeW1ib2xzKClgIG11c3QgYmUgaW4gdGhlIG9yZGVyXG4gICAqIG9mIGFyZ3VtZW50IGRlY2xhcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYXJndW1lbnRzOiBTeW1ib2xUYWJsZTtcblxuICAvKipcbiAgICogVGhlIHN5bWJvbCBvZiB0aGUgc2lnbmF0dXJlIHJlc3VsdCB0eXBlLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzdWx0OiBTeW1ib2w7XG59XG5cbi8qKlxuICogQW4gZW51bWVyYXRpb24gb2YgYmFzaWMgdHlwZXMuXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgZW51bSBCdWlsdGluVHlwZSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBpcyBhIHR5cGUgdGhhdCBjYW4gaG9sZCBhbnkgb3RoZXIgdHlwZS5cbiAgICovXG4gIEFueSxcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgYSBzdHJpbmcgbGl0ZXJhbC5cbiAgICovXG4gIFN0cmluZyxcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgYSBudW1lcmljIGxpdGVyYWwuXG4gICAqL1xuICBOdW1iZXIsXG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBgdHJ1ZWAgYW5kIGBmYWxzZWAgbGl0ZXJhbHMuXG4gICAqL1xuICBCb29sZWFuLFxuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgYHVuZGVmaW5lZGAgbGl0ZXJhbC5cbiAgICovXG4gIFVuZGVmaW5lZCxcblxuICAvKipcbiAgICogdGhlIHR5cGUgb2YgdGhlIGBudWxsYCBsaXRlcmFsLlxuICAgKi9cbiAgTnVsbCxcblxuICAvKipcbiAgICogdGhlIHR5cGUgaXMgYW4gdW5ib3VuZCB0eXBlIHBhcmFtZXRlci5cbiAgICovXG4gIFVuYm91bmQsXG5cbiAgLyoqXG4gICAqIE5vdCBhIGJ1aWx0LWluIHR5cGUuXG4gICAqL1xuICBPdGhlclxufVxuXG4vKipcbiAqIFRoZSBraW5kcyBvZiBkZWZpbml0aW9uLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IHR5cGUgRGVjbGFyYXRpb25LaW5kID0gJ2F0dHJpYnV0ZScgfCAnaHRtbCBhdHRyaWJ1dGUnIHwgJ2NvbXBvbmVudCcgfCAnZWxlbWVudCcgfCAnZW50aXR5JyB8XG4gICAgJ2tleScgfCAnbWV0aG9kJyB8ICdwaXBlJyB8ICdwcm9wZXJ0eScgfCAndHlwZScgfCAncmVmZXJlbmNlJyB8ICd2YXJpYWJsZSc7XG5cbi8qKlxuICogRGVzY3JpYmVzIGEgc3ltYm9sIHRvIHR5cGUgYmluZGluZyB1c2VkIHRvIGJ1aWxkIGEgc3ltYm9sIHRhYmxlLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTeW1ib2xEZWNsYXJhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3ltYm9sIGluIHRhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUga2luZCBvZiBzeW1ib2wgdG8gZGVjbGFyZS5cbiAgICovXG4gIHJlYWRvbmx5IGtpbmQ6IERlY2xhcmF0aW9uS2luZDtcblxuICAvKipcbiAgICogVHlwZSBvZiB0aGUgc3ltYm9sLiBUaGUgdHlwZSBzeW1ib2wgc2hvdWxkIHJlZmVyIHRvIGEgc3ltYm9sIGZvciBhIHR5cGUuXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBTeW1ib2w7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZpbmlvbiBvZiB0aGUgc3ltYm9sIGlmIG9uZSBleGlzdHMuXG4gICAqL1xuICByZWFkb25seSBkZWZpbml0aW9uPzogRGVmaW5pdGlvbjtcbn1cblxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgcGlwZXMgdGhhdCBhcmUgYXZhaWxhYmxlIGZvciB1c2UgaW4gYSB0ZW1wbGF0ZS5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZUluZm8ge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBpcGUuXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGF0aWMgc3ltYm9sIGZvciB0aGUgcGlwZSdzIGNvbnN0cnVjdG9yLlxuICAgKi9cbiAgc3ltYm9sOiBTdGF0aWNTeW1ib2w7XG59XG5cbi8qKlxuICogQSBzZXF1ZW5jZSBvZiBwaXBlIGluZm9ybWF0aW9uLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IHR5cGUgUGlwZXMgPSBQaXBlSW5mb1tdIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgbGFuZ3VhZ2UgY29udGV4dCBpbiB3aGljaCBhbiBBbmd1bGFyIGV4cHJlc3Npb24gaXMgZXZhbHVhdGVkLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTeW1ib2xRdWVyeSB7XG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGJ1aWx0LWluIHR5cGUgdGhpcyBzeW1ib2wgcmVwcmVzZW50cyBvciBPdGhlciBpZiBpdCBpcyBub3QgYSBidWlsdC1pbiB0eXBlLlxuICAgKi9cbiAgZ2V0VHlwZUtpbmQoc3ltYm9sOiBTeW1ib2wpOiBCdWlsdGluVHlwZTtcblxuICAvKipcbiAgICogUmV0dXJuIGEgc3ltYm9sIHJlcHJlc2VudGluZyB0aGUgZ2l2ZW4gYnVpbHQtaW4gdHlwZS5cbiAgICovXG4gIGdldEJ1aWx0aW5UeXBlKGtpbmQ6IEJ1aWx0aW5UeXBlKTogU3ltYm9sO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHN5bWJvbCBmb3IgYSB0eXBlIHRoYXQgcmVwcmVzZW50cyB0aGUgdW5pb24gb2YgYWxsIHRoZSB0eXBlcyBnaXZlbi4gQW55IHZhbHVlXG4gICAqIG9mIG9uZSBvZiB0aGUgdHlwZXMgZ2l2ZW4gc2hvdWxkIGJlIGFzc2lnbmFibGUgdG8gdGhlIHJldHVybmVkIHR5cGUuIElmIG5vIG9uZSB0eXBlIGNhblxuICAgKiBiZSBjb25zdHJ1Y3RlZCB0aGVuIHRoaXMgc2hvdWxkIGJlIHRoZSBBbnkgdHlwZS5cbiAgICovXG4gIGdldFR5cGVVbmlvbiguLi50eXBlczogU3ltYm9sW10pOiBTeW1ib2w7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHN5bWJvbCBmb3IgYW4gYXJyYXkgdHlwZSB0aGF0IGhhcyB0aGUgYHR5cGVgIGFzIGl0cyBlbGVtZW50IHR5cGUuXG4gICAqL1xuICBnZXRBcnJheVR5cGUodHlwZTogU3ltYm9sKTogU3ltYm9sO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gZWxlbWVudCB0eXBlIHN5bWJvbCBmb3IgYW4gYXJyYXkgdHlwZSBpZiB0aGUgYHR5cGVgIGlzIGFuIGFycmF5IHR5cGUuIE90aGVyd2lzZSByZXR1cm5cbiAgICogdW5kZWZpbmVkLlxuICAgKi9cbiAgZ2V0RWxlbWVudFR5cGUodHlwZTogU3ltYm9sKTogU3ltYm9sfHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogUmV0dXJuIGEgdHlwZSB0aGF0IGlzIHRoZSBub24tbnVsbGFibGUgdmVyc2lvbiBvZiB0aGUgZ2l2ZW4gdHlwZS4gSWYgYHR5cGVgIGlzIGFscmVhZHlcbiAgICogbm9uLW51bGxhYmxlLCByZXR1cm4gYHR5cGVgLlxuICAgKi9cbiAgZ2V0Tm9uTnVsbGFibGVUeXBlKHR5cGU6IFN5bWJvbCk6IFN5bWJvbDtcblxuICAvKipcbiAgICogUmV0dXJuIGEgc3ltYm9sIHRhYmxlIGZvciB0aGUgcGlwZXMgdGhhdCBhcmUgaW4gc2NvcGUuXG4gICAqL1xuICBnZXRQaXBlcygpOiBTeW1ib2xUYWJsZTtcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSB0eXBlIHN5bWJvbCBmb3IgdGhlIGdpdmVuIHN0YXRpYyBzeW1ib2wuXG4gICAqL1xuICBnZXRUeXBlU3ltYm9sKHR5cGU6IFN0YXRpY1N5bWJvbCk6IFN5bWJvbHx1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgbWVtYmVycyB0aGF0IGFyZSBpbiB0aGUgY29udGV4dCBvZiBhIHR5cGUncyB0ZW1wbGF0ZSByZWZlcmVuY2UuXG4gICAqL1xuICBnZXRUZW1wbGF0ZUNvbnRleHQodHlwZTogU3RhdGljU3ltYm9sKTogU3ltYm9sVGFibGV8dW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBQcm9kdWNlIGEgc3ltYm9sIHRhYmxlIHdpdGggdGhlIGdpdmVuIHN5bWJvbHMuIFVzZWQgdG8gcHJvZHVjZSBhIHN5bWJvbCB0YWJsZVxuICAgKiBmb3IgdXNlIHdpdGggbWVyZ2VTeW1ib2xUYWJsZXMoKS5cbiAgICovXG4gIGNyZWF0ZVN5bWJvbFRhYmxlKHN5bWJvbHM6IFN5bWJvbERlY2xhcmF0aW9uW10pOiBTeW1ib2xUYWJsZTtcblxuICAvKipcbiAgICogUHJvZHVjZSBhIG1lcmdlZCBzeW1ib2wgdGFibGUuIElmIHRoZSBzeW1ib2wgdGFibGVzIGNvbnRhaW4gZHVwbGljYXRlIGVudHJpZXNcbiAgICogdGhlIGVudHJpZXMgb2YgdGhlIGxhdHRlciBzeW1ib2wgdGFibGVzIHdpbGwgb2JzY3VyZSB0aGUgZW50cmllcyBpbiB0aGUgcHJpb3JcbiAgICogc3ltYm9sIHRhYmxlcy5cbiAgICpcbiAgICogVGhlIHN5bWJvbCB0YWJsZXMgcGFzc2VkIHRvIHRoaXMgcm91dGluZSBNVVNUIGJlIHByb2R1Y2VzIGJ5IHRoZSBzYW1lIGluc3RhbmNlXG4gICAqIG9mIFN5bWJvbFF1ZXJ5IHRoYXQgaXMgYmVpbmcgY2FsbGVkLlxuICAgKi9cbiAgbWVyZ2VTeW1ib2xUYWJsZShzeW1ib2xUYWJsZXM6IFN5bWJvbFRhYmxlW10pOiBTeW1ib2xUYWJsZTtcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBzcGFuIG9mIHRoZSBuYXJyb3dlc3Qgbm9uLXRva2VuIG5vZGUgYXQgdGhlIGdpdmVuIGxvY2F0aW9uLlxuICAgKi9cbiAgZ2V0U3BhbkF0KGxpbmU6IG51bWJlciwgY29sdW1uOiBudW1iZXIpOiBTcGFufHVuZGVmaW5lZDtcbn1cbiJdfQ==
package/src/template.d.ts CHANGED
@@ -23,23 +23,23 @@ declare abstract class BaseTemplate implements ng.TemplateSource {
23
23
  private membersTable;
24
24
  private queryCache;
25
25
  constructor(host: TypeScriptServiceHost, classDeclNode: ts.ClassDeclaration, classSymbol: ng.StaticSymbol);
26
- abstract readonly span: ng.Span;
27
- abstract readonly fileName: string;
28
- abstract readonly source: string;
26
+ abstract get span(): ng.Span;
27
+ abstract get fileName(): string;
28
+ abstract get source(): string;
29
29
  /**
30
30
  * Return the Angular StaticSymbol for the class that contains this template.
31
31
  */
32
- readonly type: ng.StaticSymbol;
32
+ get type(): ng.StaticSymbol;
33
33
  /**
34
34
  * Return a Map-like data structure that allows users to retrieve some or all
35
35
  * top-level declarations in the associated component class.
36
36
  */
37
- readonly members: ng.SymbolTable;
37
+ get members(): ng.SymbolTable;
38
38
  /**
39
39
  * Return an engine that provides more information about symbols in the
40
40
  * template.
41
41
  */
42
- readonly query: ng.SymbolQuery;
42
+ get query(): ng.SymbolQuery;
43
43
  }
44
44
  /**
45
45
  * An InlineTemplate represents template defined in a TS file through the
package/src/template.js CHANGED
@@ -101,7 +101,9 @@
101
101
  throw new Error("Inline template and component class should belong to the same source file");
102
102
  }
103
103
  _this.fileName = sourceFile.fileName;
104
- _this.source = templateNode.text;
104
+ // node.text returns the TS internal representation of the normalized text,
105
+ // and all CR characters are stripped. node.getText() returns the raw text.
106
+ _this.source = templateNode.getText().slice(1, -1); // strip leading and trailing quotes
105
107
  _this.span = {
106
108
  // TS string literal includes surrounding quotes in the start/end offsets.
107
109
  start: templateNode.getStart() + 1,
@@ -193,4 +195,4 @@
193
195
  }
194
196
  exports.isClassDecoratorProperty = isClassDecoratorProperty;
195
197
  });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYW5ndWFnZS1zZXJ2aWNlL3NyYy90ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFFSCwrQkFBaUM7SUFFakMsK0VBQXlEO0lBR3pELHVGQUFtRztJQUduRzs7Ozs7T0FLRztJQUNIO1FBS0Usc0JBQ3FCLElBQTJCLEVBQzNCLGFBQWtDLEVBQ2xDLFdBQTRCO1lBRjVCLFNBQUksR0FBSixJQUFJLENBQXVCO1lBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtZQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7WUFDL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzlCLENBQUM7UUFTRCxzQkFBSSw4QkFBSTtZQUhSOztlQUVHO2lCQUNILGNBQWEsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzs7O1dBQUE7UUFNdkMsc0JBQUksaUNBQU87WUFKWDs7O2VBR0c7aUJBQ0g7Z0JBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ3RCLElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ2xELElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQzt3QkFDOUMsd0NBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzt3QkFDbkMsbURBQThCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUM7cUJBQzFGLENBQUMsQ0FBQztpQkFDSjtnQkFDRCxPQUFPLElBQUksQ0FB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TUFBTSxDQUFDO0lBQ3RCLENBQUM7SUFMRCx3RUFLQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNILFNBQWdCLDZCQUE2QixDQUFDLFlBQW1DO1FBRS9FLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5RSxPQUFPO1NBQ1I7UUFDRCxJQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6RSxPQUFPO1NBQ1I7UUFDRCxJQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDO1FBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDaEUsT0FBTztTQUNSO1FBQ0QsSUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUN0QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDakUsT0FBTztTQUNSO1FBQ0QsSUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUN2QyxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBbkJELHNFQW1CQztJQUVEOzs7Ozs7T0FNRztJQUNILFNBQWdCLHdCQUF3QixDQUFDLFFBQStCO1FBQ3RFLE9BQU8sQ0FBQyxDQUFDLDZCQUE2QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFGRCw0REFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0ICogYXMgdHMgZnJvbSAndHlwZXNjcmlwdCc7XG5cbmltcG9ydCB7Y3JlYXRlR2xvYmFsU3ltYm9sVGFibGV9IGZyb20gJy4vZ2xvYmFsX3N5bWJvbHMnO1xuaW1wb3J0ICogYXMgbmcgZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge1R5cGVTY3JpcHRTZXJ2aWNlSG9zdH0gZnJvbSAnLi90eXBlc2NyaXB0X2hvc3QnO1xuaW1wb3J0IHtnZXRDbGFzc01lbWJlcnNGcm9tRGVjbGFyYXRpb24sIGdldFBpcGVzVGFibGUsIGdldFN5bWJvbFF1ZXJ5fSBmcm9tICcuL3R5cGVzY3JpcHRfc3ltYm9scyc7XG5cblxuLyoqXG4gKiBBIGJhc2UgY2xhc3MgdG8gcmVwcmVzZW50IGEgdGVtcGxhdGUgYW5kIHdoaWNoIGNvbXBvbmVudCBjbGFzcyBpdCBpc1xuICogYXNzb2NpYXRlZCB3aXRoLiBBIHRlbXBsYXRlIHNvdXJjZSBjb3VsZCBhbnN3ZXIgYmFzaWMgcXVlc3Rpb25zIGFib3V0XG4gKiB0b3AtbGV2ZWwgZGVjbGFyYXRpb25zIG9mIGl0cyBjbGFzcyB0aHJvdWdoIHRoZSBtZW1iZXJzKCkgYW5kIHF1ZXJ5KClcbiAqIG1ldGhvZHMuXG4gKi9cbmFic3RyYWN0IGNsYXNzIEJhc2VUZW1wbGF0ZSBpbXBsZW1lbnRzIG5nLlRlbXBsYXRlU291cmNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9ncmFtOiB0cy5Qcm9ncmFtO1xuICBwcml2YXRlIG1lbWJlcnNUYWJsZTogbmcuU3ltYm9sVGFibGV8dW5kZWZpbmVkO1xuICBwcml2YXRlIHF1ZXJ5Q2FjaGU6IG5nLlN5bWJvbFF1ZXJ5fHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdDogVHlwZVNjcmlwdFNlcnZpY2VIb3N0LFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBjbGFzc0RlY2xOb2RlOiB0cy5DbGFzc0RlY2xhcmF0aW9uLFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBjbGFzc1N5bWJvbDogbmcuU3RhdGljU3ltYm9sKSB7XG4gICAgdGhpcy5wcm9ncmFtID0gaG9zdC5wcm9ncmFtO1xuICB9XG5cbiAgYWJzdHJhY3QgZ2V0IHNwYW4oKTogbmcuU3BhbjtcbiAgYWJzdHJhY3QgZ2V0IGZpbGVOYW1lKCk6IHN0cmluZztcbiAgYWJzdHJhY3QgZ2V0IHNvdXJjZSgpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgQW5ndWxhciBTdGF0aWNTeW1ib2wgZm9yIHRoZSBjbGFzcyB0aGF0IGNvbnRhaW5zIHRoaXMgdGVtcGxhdGUuXG4gICAqL1xuICBnZXQgdHlwZSgpIHsgcmV0dXJuIHRoaXMuY2xhc3NTeW1ib2w7IH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgTWFwLWxpa2UgZGF0YSBzdHJ1Y3R1cmUgdGhhdCBhbGxvd3MgdXNlcnMgdG8gcmV0cmlldmUgc29tZSBvciBhbGxcbiAgICogdG9wLWxldmVsIGRlY2xhcmF0aW9ucyBpbiB0aGUgYXNzb2NpYXRlZCBjb21wb25lbnQgY2xhc3MuXG4gICAqL1xuICBnZXQgbWVtYmVycygpIHtcbiAgICBpZiAoIXRoaXMubWVtYmVyc1RhYmxlKSB7XG4gICAgICBjb25zdCB0eXBlQ2hlY2tlciA9IHRoaXMucHJvZ3JhbS5nZXRUeXBlQ2hlY2tlcigpO1xuICAgICAgY29uc3Qgc291cmNlRmlsZSA9IHRoaXMuY2xhc3NEZWNsTm9kZS5nZXRTb3VyY2VGaWxlKCk7XG4gICAgICB0aGlzLm1lbWJlcnNUYWJsZSA9IHRoaXMucXVlcnkubWVyZ2VTeW1ib2xUYWJsZShbXG4gICAgICAgIGNyZWF0ZUdsb2JhbFN5bWJvbFRhYmxlKHRoaXMucXVlcnkpLFxuICAgICAgICBnZXRDbGFzc01lbWJlcnNGcm9tRGVjbGFyYXRpb24odGhpcy5wcm9ncmFtLCB0eXBlQ2hlY2tlciwgc291cmNlRmlsZSwgdGhpcy5jbGFzc0RlY2xOb2RlKSxcbiAgICAgIF0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5tZW1iZXJzVGFibGU7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGVuZ2luZSB0aGF0IHByb3ZpZGVzIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgc3ltYm9scyBpbiB0aGVcbiAgICogdGVtcGxhdGUuXG4gICAqL1xuICBnZXQgcXVlcnkoKSB7XG4gICAgaWYgKCF0aGlzLnF1ZXJ5Q2FjaGUpIHtcbiAgICAgIGNvbnN0IHByb2dyYW0gPSB0aGlzLnByb2dyYW07XG4gICAgICBjb25zdCB0eXBlQ2hlY2tlciA9IHByb2dyYW0uZ2V0VHlwZUNoZWNrZXIoKTtcbiAgICAgIGNvbnN0IHNvdXJjZUZpbGUgPSB0aGlzLmNsYXNzRGVjbE5vZGUuZ2V0U291cmNlRmlsZSgpO1xuICAgICAgdGhpcy5xdWVyeUNhY2hlID0gZ2V0U3ltYm9sUXVlcnkocHJvZ3JhbSwgdHlwZUNoZWNrZXIsIHNvdXJjZUZpbGUsICgpID0+IHtcbiAgICAgICAgLy8gQ29tcHV0aW5nIHRoZSBhc3QgaXMgcmVsYXRpdmVseSBleHBlbnNpdmUuIERvIGl0IG9ubHkgd2hlbiBhYnNvbHV0ZWx5XG4gICAgICAgIC8vIG5lY2Vzc2FyeS5cbiAgICAgICAgLy8gVE9ETzogVGhlcmUgaXMgY2lyY3VsYXIgZGVwZW5kZW5jeSBoZXJlIGJldHdlZW4gVGVtcGxhdGVTb3VyY2UgYW5kXG4gICAgICAgIC8vIFR5cGVTY3JpcHRIb3N0LiBDb25zaWRlciByZWZhY3RvcmluZyB0aGUgY29kZSB0byBicmVhayB0aGlzIGN5Y2xlLlxuICAgICAgICBjb25zdCBhc3QgPSB0aGlzLmhvc3QuZ2V0VGVtcGxhdGVBc3QodGhpcyk7XG4gICAgICAgIGNvbnN0IHBpcGVzID0gKGFzdCAmJiBhc3QucGlwZXMpIHx8IFtdO1xuICAgICAgICByZXR1cm4gZ2V0UGlwZXNUYWJsZShzb3VyY2VGaWxlLCBwcm9ncmFtLCB0eXBlQ2hlY2tlciwgcGlwZXMpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnF1ZXJ5Q2FjaGU7XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBJbmxpbmVUZW1wbGF0ZSByZXByZXNlbnRzIHRlbXBsYXRlIGRlZmluZWQgaW4gYSBUUyBmaWxlIHRocm91Z2ggdGhlXG4gKiBgdGVtcGxhdGVgIGF0dHJpYnV0ZSBpbiB0aGUgZGVjb3JhdG9yLlxuICovXG5leHBvcnQgY2xhc3MgSW5saW5lVGVtcGxhdGUgZXh0ZW5kcyBCYXNlVGVtcGxhdGUge1xuICBwdWJsaWMgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgc3BhbjogbmcuU3BhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHRlbXBsYXRlTm9kZTogdHMuU3RyaW5nTGl0ZXJhbExpa2UsIGNsYXNzRGVjbE5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24sXG4gICAgICBjbGFzc1N5bWJvbDogbmcuU3RhdGljU3ltYm9sLCBob3N0OiBUeXBlU2NyaXB0U2VydmljZUhvc3QpIHtcbiAgICBzdXBlcihob3N0LCBjbGFzc0RlY2xOb2RlLCBjbGFzc1N5bWJvbCk7XG4gICAgY29uc3Qgc291cmNlRmlsZSA9IHRlbXBsYXRlTm9kZS5nZXRTb3VyY2VGaWxlKCk7XG4gICAgaWYgKHNvdXJjZUZpbGUgIT09IGNsYXNzRGVjbE5vZGUuZ2V0U291cmNlRmlsZSgpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYElubGluZSB0ZW1wbGF0ZSBhbmQgY29tcG9uZW50IGNsYXNzIHNob3VsZCBiZWxvbmcgdG8gdGhlIHNhbWUgc291cmNlIGZpbGVgKTtcbiAgICB9XG4gICAgdGhpcy5maWxlTmFtZSA9IHNvdXJjZUZpbGUuZmlsZU5hbWU7XG4gICAgdGhpcy5zb3VyY2UgPSB0ZW1wbGF0ZU5vZGUudGV4dDtcbiAgICB0aGlzLnNwYW4gPSB7XG4gICAgICAvLyBUUyBzdHJpbmcgbGl0ZXJhbCBpbmNsdWRlcyBzdXJyb3VuZGluZyBxdW90ZXMgaW4gdGhlIHN0YXJ0L2VuZCBvZmZzZXRzLlxuICAgICAgc3RhcnQ6IHRlbXBsYXRlTm9kZS5nZXRTdGFydCgpICsgMSxcbiAgICAgIGVuZDogdGVtcGxhdGVOb2RlLmdldEVuZCgpIC0gMSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogQW4gRXh0ZXJuYWxUZW1wbGF0ZSByZXByZXNlbnRzIHRlbXBsYXRlIGRlZmluZWQgaW4gYW4gZXh0ZXJuYWwgKG1vc3QgbGlrZWx5XG4gKiBIVE1MLCBidXQgbm90IG5lY2Vzc2FyaWx5KSBmaWxlIHRocm91Z2ggdGhlIGB0ZW1wbGF0ZVVybGAgYXR0cmlidXRlIGluIHRoZVxuICogZGVjb3JhdG9yLlxuICogTm90ZSB0aGF0IHRoZXJlIGlzIG5vIHRzLk5vZGUgYXNzb2NpYXRlZCB3aXRoIHRoZSB0ZW1wbGF0ZSBiZWNhdXNlIGl0J3Mgbm90XG4gKiBhIFRTIGZpbGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBFeHRlcm5hbFRlbXBsYXRlIGV4dGVuZHMgQmFzZVRlbXBsYXRlIHtcbiAgcHVibGljIHJlYWRvbmx5IHNwYW46IG5nLlNwYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBzdHJpbmcsIHB1YmxpYyByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nLFxuICAgICAgY2xhc3NEZWNsTm9kZTogdHMuQ2xhc3NEZWNsYXJhdGlvbiwgY2xhc3NTeW1ib2w6IG5nLlN0YXRpY1N5bWJvbCxcbiAgICAgIGhvc3Q6IFR5cGVTY3JpcHRTZXJ2aWNlSG9zdCkge1xuICAgIHN1cGVyKGhvc3QsIGNsYXNzRGVjbE5vZGUsIGNsYXNzU3ltYm9sKTtcbiAgICB0aGlzLnNwYW4gPSB7XG4gICAgICBzdGFydDogMCxcbiAgICAgIGVuZDogc291cmNlLmxlbmd0aCxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyBhIHByb3BlcnR5IGFzc2lnbm1lbnQgZnJvbSB0aGUgYXNzaWdubWVudCB2YWx1ZSwgb3IgYHVuZGVmaW5lZGAgaWYgdGhlcmUgaXMgbm9cbiAqIGFzc2lnbm1lbnQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9wZXJ0eUFzc2lnbm1lbnRGcm9tVmFsdWUodmFsdWU6IHRzLk5vZGUpOiB0cy5Qcm9wZXJ0eUFzc2lnbm1lbnR8dW5kZWZpbmVkIHtcbiAgaWYgKCF2YWx1ZS5wYXJlbnQgfHwgIXRzLmlzUHJvcGVydHlBc3NpZ25tZW50KHZhbHVlLnBhcmVudCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgcmV0dXJuIHZhbHVlLnBhcmVudDtcbn1cblxuLyoqXG4gKiBHaXZlbiBhIGRlY29yYXRvciBwcm9wZXJ0eSBhc3NpZ25tZW50LCByZXR1cm4gdGhlIENsYXNzRGVjbGFyYXRpb24gbm9kZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZVxuICogZGlyZWN0aXZlIGNsYXNzIHRoZSBwcm9wZXJ0eSBhcHBsaWVzIHRvLlxuICogSWYgdGhlIHByb3BlcnR5IGFzc2lnbm1lbnQgaXMgbm90IG9uIGEgY2xhc3MgZGVjb3JhdG9yLCBubyBkZWNsYXJhdGlvbiBpcyByZXR1cm5lZC5cbiAqXG4gKiBGb3IgZXhhbXBsZSxcbiAqXG4gKiBAQ29tcG9uZW50KHtcbiAqICAgdGVtcGxhdGU6ICc8ZGl2PjwvZGl2PidcbiAqICAgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4tLS0tIHByb3BlcnR5IGFzc2lnbm1lbnRcbiAqIH0pXG4gKiBjbGFzcyBBcHBDb21wb25lbnQge31cbiAqICAgICAgICAgICBeLS0tLSBjbGFzcyBkZWNsYXJhdGlvbiBub2RlXG4gKlxuICogQHBhcmFtIHByb3BBc2duIHByb3BlcnR5IGFzc2lnbm1lbnRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENsYXNzRGVjbEZyb21EZWNvcmF0b3JQcm9wKHByb3BBc2duTm9kZTogdHMuUHJvcGVydHlBc3NpZ25tZW50KTpcbiAgICB0cy5DbGFzc0RlY2xhcmF0aW9ufHVuZGVmaW5lZCB7XG4gIGlmICghcHJvcEFzZ25Ob2RlLnBhcmVudCB8fCAhdHMuaXNPYmplY3RMaXRlcmFsRXhwcmVzc2lvbihwcm9wQXNnbk5vZGUucGFyZW50KSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBvYmpMaXRFeHByTm9kZSA9IHByb3BBc2duTm9kZS5wYXJlbnQ7XG4gIGlmICghb2JqTGl0RXhwck5vZGUucGFyZW50IHx8ICF0cy5pc0NhbGxFeHByZXNzaW9uKG9iakxpdEV4cHJOb2RlLnBhcmVudCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgY2FsbEV4cHJOb2RlID0gb2JqTGl0RXhwck5vZGUucGFyZW50O1xuICBpZiAoIWNhbGxFeHByTm9kZS5wYXJlbnQgfHwgIXRzLmlzRGVjb3JhdG9yKGNhbGxFeHByTm9kZS5wYXJlbnQpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGRlY29yYXRvciA9IGNhbGxFeHByTm9kZS5wYXJlbnQ7XG4gIGlmICghZGVjb3JhdG9yLnBhcmVudCB8fCAhdHMuaXNDbGFzc0RlY2xhcmF0aW9uKGRlY29yYXRvci5wYXJlbnQpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGNsYXNzRGVjbE5vZGUgPSBkZWNvcmF0b3IucGFyZW50O1xuICByZXR1cm4gY2xhc3NEZWNsTm9kZTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGEgcHJvcGVydHkgYXNzaWdubWVudCBpcyBvbiBhIGNsYXNzIGRlY29yYXRvci5cbiAqIFNlZSBgZ2V0Q2xhc3NEZWNsRnJvbURlY29yYXRvclByb3BlcnR5YCwgd2hpY2ggZ2V0cyB0aGUgY2xhc3MgdGhlIGRlY29yYXRvciBpcyBhcHBsaWVkIHRvLCBmb3JcbiAqIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAcGFyYW0gcHJvcCBwcm9wZXJ0eSBhc3NpZ25tZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NsYXNzRGVjb3JhdG9yUHJvcGVydHkocHJvcEFzZ246IHRzLlByb3BlcnR5QXNzaWdubWVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gISFnZXRDbGFzc0RlY2xGcm9tRGVjb3JhdG9yUHJvcChwcm9wQXNnbik7XG59XG4iXX0=
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYW5ndWFnZS1zZXJ2aWNlL3NyYy90ZW1wbGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7Ozs7SUFFSCwrQkFBaUM7SUFFakMsK0VBQXlEO0lBR3pELHVGQUFtRztJQUduRzs7Ozs7T0FLRztJQUNIO1FBS0Usc0JBQ3FCLElBQTJCLEVBQzNCLGFBQWtDLEVBQ2xDLFdBQTRCO1lBRjVCLFNBQUksR0FBSixJQUFJLENBQXVCO1lBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtZQUNsQyxnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7WUFDL0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzlCLENBQUM7UUFTRCxzQkFBSSw4QkFBSTtZQUhSOztlQUVHO2lCQUNILGNBQWEsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzs7O1dBQUE7UUFNdkMsc0JBQUksaUNBQU87WUFKWDs7O2VBR0c7aUJBQ0g7Z0JBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ3RCLElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ2xELElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQ3RELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQzt3QkFDOUMsd0NBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzt3QkFDbkMsbURBQThCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUM7cUJBQzFGLENBQUMsQ0FBQztpQkFDSjtnQkFDRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7WUFDM0IsQ0FBQzs7O1dBQUE7UUFNRCxzQkFBSSwrQkFBSztZQUpUOzs7ZUFHRztpQkFDSDtnQkFBQSxpQkFnQkM7Z0JBZkMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQ3BCLElBQU0sU0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7b0JBQzdCLElBQU0sYUFBVyxHQUFHLFNBQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDN0MsSUFBTSxZQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDdEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxtQ0FBYyxDQUFDLFNBQU8sRUFBRSxhQUFXLEVBQUUsWUFBVSxFQUFFO3dCQUNqRSx3RUFBd0U7d0JBQ3hFLGFBQWE7d0JBQ2IscUVBQXFFO3dCQUNyRSxxRUFBcUU7d0JBQ3JFLElBQU0sR0FBRyxHQUFHLEtBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUksQ0FBQyxDQUFDO3dCQUMzQyxJQUFNLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO3dCQUN2QyxPQUFPLGtDQUFhLENBQUMsWUFBVSxFQUFFLFNBQU8sRUFBRSxhQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ2hFLENBQUMsQ0FBQyxDQUFDO2lCQUNKO2dCQUNELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUN6QixDQUFDOzs7V0FBQTtRQUNILG1CQUFDO0lBQUQsQ0FBQyxBQTFERCxJQTBEQztJQUVEOzs7T0FHRztJQUNIO1FBQW9DLDBDQUFZO1FBSzlDLHdCQUNJLFlBQWtDLEVBQUUsYUFBa0MsRUFDdEUsV0FBNEIsRUFBRSxJQUEyQjtZQUY3RCxZQUdFLGtCQUFNLElBQUksRUFBRSxhQUFhLEVBQUUsV0FBVyxDQUFDLFNBY3hDO1lBYkMsSUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2hELElBQUksVUFBVSxLQUFLLGFBQWEsQ0FBQyxhQUFhLEVBQUUsRUFBRTtnQkFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQywyRUFBMkUsQ0FBQyxDQUFDO2FBQzlGO1lBQ0QsS0FBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3BDLDJFQUEyRTtZQUMzRSwyRUFBMkU7WUFDM0UsS0FBSSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsb0NBQW9DO1lBQ3hGLEtBQUksQ0FBQyxJQUFJLEdBQUc7Z0JBQ1YsMEVBQTBFO2dCQUMxRSxLQUFLLEVBQUUsWUFBWSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUM7Z0JBQ2xDLEdBQUcsRUFBRSxZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQzthQUMvQixDQUFDOztRQUNKLENBQUM7UUFDSCxxQkFBQztJQUFELENBQUMsQUF2QkQsQ0FBb0MsWUFBWSxHQXVCL0M7SUF2Qlksd0NBQWM7SUF5QjNCOzs7Ozs7T0FNRztJQUNIO1FBQXNDLDRDQUFZO1FBR2hELDBCQUNvQixNQUFjLEVBQWtCLFFBQWdCLEVBQ2hFLGFBQWtDLEVBQUUsV0FBNEIsRUFDaEUsSUFBMkI7WUFIL0IsWUFJRSxrQkFBTSxJQUFJLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxTQUt4QztZQVJtQixZQUFNLEdBQU4sTUFBTSxDQUFRO1lBQWtCLGNBQVEsR0FBUixRQUFRLENBQVE7WUFJbEUsS0FBSSxDQUFDLElBQUksR0FBRztnQkFDVixLQUFLLEVBQUUsQ0FBQztnQkFDUixHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU07YUFDbkIsQ0FBQzs7UUFDSixDQUFDO1FBQ0gsdUJBQUM7SUFBRCxDQUFDLEFBYkQsQ0FBc0MsWUFBWSxHQWFqRDtJQWJZLDRDQUFnQjtJQWU3Qjs7O09BR0c7SUFDSCxTQUFnQiw4QkFBOEIsQ0FBQyxLQUFjO1FBQzNELElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMzRCxPQUFPO1NBQ1I7UUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDdEIsQ0FBQztJQUxELHdFQUtDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7OztPQWVHO0lBQ0gsU0FBZ0IsNkJBQTZCLENBQUMsWUFBbUM7UUFFL0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMseUJBQXlCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlFLE9BQU87U0FDUjtRQUNELElBQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pFLE9BQU87U0FDUjtRQUNELElBQU0sWUFBWSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDM0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoRSxPQUFPO1NBQ1I7UUFDRCxJQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqRSxPQUFPO1NBQ1I7UUFDRCxJQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ3ZDLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFuQkQsc0VBbUJDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsU0FBZ0Isd0JBQXdCLENBQUMsUUFBK0I7UUFDdEUsT0FBTyxDQUFDLENBQUMsNkJBQTZCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUZELDREQUVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcblxuaW1wb3J0IHtjcmVhdGVHbG9iYWxTeW1ib2xUYWJsZX0gZnJvbSAnLi9nbG9iYWxfc3ltYm9scyc7XG5pbXBvcnQgKiBhcyBuZyBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7VHlwZVNjcmlwdFNlcnZpY2VIb3N0fSBmcm9tICcuL3R5cGVzY3JpcHRfaG9zdCc7XG5pbXBvcnQge2dldENsYXNzTWVtYmVyc0Zyb21EZWNsYXJhdGlvbiwgZ2V0UGlwZXNUYWJsZSwgZ2V0U3ltYm9sUXVlcnl9IGZyb20gJy4vdHlwZXNjcmlwdF9zeW1ib2xzJztcblxuXG4vKipcbiAqIEEgYmFzZSBjbGFzcyB0byByZXByZXNlbnQgYSB0ZW1wbGF0ZSBhbmQgd2hpY2ggY29tcG9uZW50IGNsYXNzIGl0IGlzXG4gKiBhc3NvY2lhdGVkIHdpdGguIEEgdGVtcGxhdGUgc291cmNlIGNvdWxkIGFuc3dlciBiYXNpYyBxdWVzdGlvbnMgYWJvdXRcbiAqIHRvcC1sZXZlbCBkZWNsYXJhdGlvbnMgb2YgaXRzIGNsYXNzIHRocm91Z2ggdGhlIG1lbWJlcnMoKSBhbmQgcXVlcnkoKVxuICogbWV0aG9kcy5cbiAqL1xuYWJzdHJhY3QgY2xhc3MgQmFzZVRlbXBsYXRlIGltcGxlbWVudHMgbmcuVGVtcGxhdGVTb3VyY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHByb2dyYW06IHRzLlByb2dyYW07XG4gIHByaXZhdGUgbWVtYmVyc1RhYmxlOiBuZy5TeW1ib2xUYWJsZXx1bmRlZmluZWQ7XG4gIHByaXZhdGUgcXVlcnlDYWNoZTogbmcuU3ltYm9sUXVlcnl8dW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBob3N0OiBUeXBlU2NyaXB0U2VydmljZUhvc3QsXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGNsYXNzRGVjbE5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24sXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGNsYXNzU3ltYm9sOiBuZy5TdGF0aWNTeW1ib2wpIHtcbiAgICB0aGlzLnByb2dyYW0gPSBob3N0LnByb2dyYW07XG4gIH1cblxuICBhYnN0cmFjdCBnZXQgc3BhbigpOiBuZy5TcGFuO1xuICBhYnN0cmFjdCBnZXQgZmlsZU5hbWUoKTogc3RyaW5nO1xuICBhYnN0cmFjdCBnZXQgc291cmNlKCk6IHN0cmluZztcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBBbmd1bGFyIFN0YXRpY1N5bWJvbCBmb3IgdGhlIGNsYXNzIHRoYXQgY29udGFpbnMgdGhpcyB0ZW1wbGF0ZS5cbiAgICovXG4gIGdldCB0eXBlKCkgeyByZXR1cm4gdGhpcy5jbGFzc1N5bWJvbDsgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBNYXAtbGlrZSBkYXRhIHN0cnVjdHVyZSB0aGF0IGFsbG93cyB1c2VycyB0byByZXRyaWV2ZSBzb21lIG9yIGFsbFxuICAgKiB0b3AtbGV2ZWwgZGVjbGFyYXRpb25zIGluIHRoZSBhc3NvY2lhdGVkIGNvbXBvbmVudCBjbGFzcy5cbiAgICovXG4gIGdldCBtZW1iZXJzKCkge1xuICAgIGlmICghdGhpcy5tZW1iZXJzVGFibGUpIHtcbiAgICAgIGNvbnN0IHR5cGVDaGVja2VyID0gdGhpcy5wcm9ncmFtLmdldFR5cGVDaGVja2VyKCk7XG4gICAgICBjb25zdCBzb3VyY2VGaWxlID0gdGhpcy5jbGFzc0RlY2xOb2RlLmdldFNvdXJjZUZpbGUoKTtcbiAgICAgIHRoaXMubWVtYmVyc1RhYmxlID0gdGhpcy5xdWVyeS5tZXJnZVN5bWJvbFRhYmxlKFtcbiAgICAgICAgY3JlYXRlR2xvYmFsU3ltYm9sVGFibGUodGhpcy5xdWVyeSksXG4gICAgICAgIGdldENsYXNzTWVtYmVyc0Zyb21EZWNsYXJhdGlvbih0aGlzLnByb2dyYW0sIHR5cGVDaGVja2VyLCBzb3VyY2VGaWxlLCB0aGlzLmNsYXNzRGVjbE5vZGUpLFxuICAgICAgXSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLm1lbWJlcnNUYWJsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gZW5naW5lIHRoYXQgcHJvdmlkZXMgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBzeW1ib2xzIGluIHRoZVxuICAgKiB0ZW1wbGF0ZS5cbiAgICovXG4gIGdldCBxdWVyeSgpIHtcbiAgICBpZiAoIXRoaXMucXVlcnlDYWNoZSkge1xuICAgICAgY29uc3QgcHJvZ3JhbSA9IHRoaXMucHJvZ3JhbTtcbiAgICAgIGNvbnN0IHR5cGVDaGVja2VyID0gcHJvZ3JhbS5nZXRUeXBlQ2hlY2tlcigpO1xuICAgICAgY29uc3Qgc291cmNlRmlsZSA9IHRoaXMuY2xhc3NEZWNsTm9kZS5nZXRTb3VyY2VGaWxlKCk7XG4gICAgICB0aGlzLnF1ZXJ5Q2FjaGUgPSBnZXRTeW1ib2xRdWVyeShwcm9ncmFtLCB0eXBlQ2hlY2tlciwgc291cmNlRmlsZSwgKCkgPT4ge1xuICAgICAgICAvLyBDb21wdXRpbmcgdGhlIGFzdCBpcyByZWxhdGl2ZWx5IGV4cGVuc2l2ZS4gRG8gaXQgb25seSB3aGVuIGFic29sdXRlbHlcbiAgICAgICAgLy8gbmVjZXNzYXJ5LlxuICAgICAgICAvLyBUT0RPOiBUaGVyZSBpcyBjaXJjdWxhciBkZXBlbmRlbmN5IGhlcmUgYmV0d2VlbiBUZW1wbGF0ZVNvdXJjZSBhbmRcbiAgICAgICAgLy8gVHlwZVNjcmlwdEhvc3QuIENvbnNpZGVyIHJlZmFjdG9yaW5nIHRoZSBjb2RlIHRvIGJyZWFrIHRoaXMgY3ljbGUuXG4gICAgICAgIGNvbnN0IGFzdCA9IHRoaXMuaG9zdC5nZXRUZW1wbGF0ZUFzdCh0aGlzKTtcbiAgICAgICAgY29uc3QgcGlwZXMgPSAoYXN0ICYmIGFzdC5waXBlcykgfHwgW107XG4gICAgICAgIHJldHVybiBnZXRQaXBlc1RhYmxlKHNvdXJjZUZpbGUsIHByb2dyYW0sIHR5cGVDaGVja2VyLCBwaXBlcyk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucXVlcnlDYWNoZTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIElubGluZVRlbXBsYXRlIHJlcHJlc2VudHMgdGVtcGxhdGUgZGVmaW5lZCBpbiBhIFRTIGZpbGUgdGhyb3VnaCB0aGVcbiAqIGB0ZW1wbGF0ZWAgYXR0cmlidXRlIGluIHRoZSBkZWNvcmF0b3IuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbmxpbmVUZW1wbGF0ZSBleHRlbmRzIEJhc2VUZW1wbGF0ZSB7XG4gIHB1YmxpYyByZWFkb25seSBmaWxlTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBzcGFuOiBuZy5TcGFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgdGVtcGxhdGVOb2RlOiB0cy5TdHJpbmdMaXRlcmFsTGlrZSwgY2xhc3NEZWNsTm9kZTogdHMuQ2xhc3NEZWNsYXJhdGlvbixcbiAgICAgIGNsYXNzU3ltYm9sOiBuZy5TdGF0aWNTeW1ib2wsIGhvc3Q6IFR5cGVTY3JpcHRTZXJ2aWNlSG9zdCkge1xuICAgIHN1cGVyKGhvc3QsIGNsYXNzRGVjbE5vZGUsIGNsYXNzU3ltYm9sKTtcbiAgICBjb25zdCBzb3VyY2VGaWxlID0gdGVtcGxhdGVOb2RlLmdldFNvdXJjZUZpbGUoKTtcbiAgICBpZiAoc291cmNlRmlsZSAhPT0gY2xhc3NEZWNsTm9kZS5nZXRTb3VyY2VGaWxlKCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW5saW5lIHRlbXBsYXRlIGFuZCBjb21wb25lbnQgY2xhc3Mgc2hvdWxkIGJlbG9uZyB0byB0aGUgc2FtZSBzb3VyY2UgZmlsZWApO1xuICAgIH1cbiAgICB0aGlzLmZpbGVOYW1lID0gc291cmNlRmlsZS5maWxlTmFtZTtcbiAgICAvLyBub2RlLnRleHQgcmV0dXJucyB0aGUgVFMgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIG5vcm1hbGl6ZWQgdGV4dCxcbiAgICAvLyBhbmQgYWxsIENSIGNoYXJhY3RlcnMgYXJlIHN0cmlwcGVkLiBub2RlLmdldFRleHQoKSByZXR1cm5zIHRoZSByYXcgdGV4dC5cbiAgICB0aGlzLnNvdXJjZSA9IHRlbXBsYXRlTm9kZS5nZXRUZXh0KCkuc2xpY2UoMSwgLTEpOyAgLy8gc3RyaXAgbGVhZGluZyBhbmQgdHJhaWxpbmcgcXVvdGVzXG4gICAgdGhpcy5zcGFuID0ge1xuICAgICAgLy8gVFMgc3RyaW5nIGxpdGVyYWwgaW5jbHVkZXMgc3Vycm91bmRpbmcgcXVvdGVzIGluIHRoZSBzdGFydC9lbmQgb2Zmc2V0cy5cbiAgICAgIHN0YXJ0OiB0ZW1wbGF0ZU5vZGUuZ2V0U3RhcnQoKSArIDEsXG4gICAgICBlbmQ6IHRlbXBsYXRlTm9kZS5nZXRFbmQoKSAtIDEsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEFuIEV4dGVybmFsVGVtcGxhdGUgcmVwcmVzZW50cyB0ZW1wbGF0ZSBkZWZpbmVkIGluIGFuIGV4dGVybmFsIChtb3N0IGxpa2VseVxuICogSFRNTCwgYnV0IG5vdCBuZWNlc3NhcmlseSkgZmlsZSB0aHJvdWdoIHRoZSBgdGVtcGxhdGVVcmxgIGF0dHJpYnV0ZSBpbiB0aGVcbiAqIGRlY29yYXRvci5cbiAqIE5vdGUgdGhhdCB0aGVyZSBpcyBubyB0cy5Ob2RlIGFzc29jaWF0ZWQgd2l0aCB0aGUgdGVtcGxhdGUgYmVjYXVzZSBpdCdzIG5vdFxuICogYSBUUyBmaWxlLlxuICovXG5leHBvcnQgY2xhc3MgRXh0ZXJuYWxUZW1wbGF0ZSBleHRlbmRzIEJhc2VUZW1wbGF0ZSB7XG4gIHB1YmxpYyByZWFkb25seSBzcGFuOiBuZy5TcGFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHVibGljIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nLCBwdWJsaWMgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZyxcbiAgICAgIGNsYXNzRGVjbE5vZGU6IHRzLkNsYXNzRGVjbGFyYXRpb24sIGNsYXNzU3ltYm9sOiBuZy5TdGF0aWNTeW1ib2wsXG4gICAgICBob3N0OiBUeXBlU2NyaXB0U2VydmljZUhvc3QpIHtcbiAgICBzdXBlcihob3N0LCBjbGFzc0RlY2xOb2RlLCBjbGFzc1N5bWJvbCk7XG4gICAgdGhpcy5zcGFuID0ge1xuICAgICAgc3RhcnQ6IDAsXG4gICAgICBlbmQ6IHNvdXJjZS5sZW5ndGgsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgYSBwcm9wZXJ0eSBhc3NpZ25tZW50IGZyb20gdGhlIGFzc2lnbm1lbnQgdmFsdWUsIG9yIGB1bmRlZmluZWRgIGlmIHRoZXJlIGlzIG5vXG4gKiBhc3NpZ25tZW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvcGVydHlBc3NpZ25tZW50RnJvbVZhbHVlKHZhbHVlOiB0cy5Ob2RlKTogdHMuUHJvcGVydHlBc3NpZ25tZW50fHVuZGVmaW5lZCB7XG4gIGlmICghdmFsdWUucGFyZW50IHx8ICF0cy5pc1Byb3BlcnR5QXNzaWdubWVudCh2YWx1ZS5wYXJlbnQpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIHJldHVybiB2YWx1ZS5wYXJlbnQ7XG59XG5cbi8qKlxuICogR2l2ZW4gYSBkZWNvcmF0b3IgcHJvcGVydHkgYXNzaWdubWVudCwgcmV0dXJuIHRoZSBDbGFzc0RlY2xhcmF0aW9uIG5vZGUgdGhhdCBjb3JyZXNwb25kcyB0byB0aGVcbiAqIGRpcmVjdGl2ZSBjbGFzcyB0aGUgcHJvcGVydHkgYXBwbGllcyB0by5cbiAqIElmIHRoZSBwcm9wZXJ0eSBhc3NpZ25tZW50IGlzIG5vdCBvbiBhIGNsYXNzIGRlY29yYXRvciwgbm8gZGVjbGFyYXRpb24gaXMgcmV0dXJuZWQuXG4gKlxuICogRm9yIGV4YW1wbGUsXG4gKlxuICogQENvbXBvbmVudCh7XG4gKiAgIHRlbXBsYXRlOiAnPGRpdj48L2Rpdj4nXG4gKiAgIF5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eLS0tLSBwcm9wZXJ0eSBhc3NpZ25tZW50XG4gKiB9KVxuICogY2xhc3MgQXBwQ29tcG9uZW50IHt9XG4gKiAgICAgICAgICAgXi0tLS0gY2xhc3MgZGVjbGFyYXRpb24gbm9kZVxuICpcbiAqIEBwYXJhbSBwcm9wQXNnbiBwcm9wZXJ0eSBhc3NpZ25tZW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDbGFzc0RlY2xGcm9tRGVjb3JhdG9yUHJvcChwcm9wQXNnbk5vZGU6IHRzLlByb3BlcnR5QXNzaWdubWVudCk6XG4gICAgdHMuQ2xhc3NEZWNsYXJhdGlvbnx1bmRlZmluZWQge1xuICBpZiAoIXByb3BBc2duTm9kZS5wYXJlbnQgfHwgIXRzLmlzT2JqZWN0TGl0ZXJhbEV4cHJlc3Npb24ocHJvcEFzZ25Ob2RlLnBhcmVudCkpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3Qgb2JqTGl0RXhwck5vZGUgPSBwcm9wQXNnbk5vZGUucGFyZW50O1xuICBpZiAoIW9iakxpdEV4cHJOb2RlLnBhcmVudCB8fCAhdHMuaXNDYWxsRXhwcmVzc2lvbihvYmpMaXRFeHByTm9kZS5wYXJlbnQpKSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGNvbnN0IGNhbGxFeHByTm9kZSA9IG9iakxpdEV4cHJOb2RlLnBhcmVudDtcbiAgaWYgKCFjYWxsRXhwck5vZGUucGFyZW50IHx8ICF0cy5pc0RlY29yYXRvcihjYWxsRXhwck5vZGUucGFyZW50KSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBkZWNvcmF0b3IgPSBjYWxsRXhwck5vZGUucGFyZW50O1xuICBpZiAoIWRlY29yYXRvci5wYXJlbnQgfHwgIXRzLmlzQ2xhc3NEZWNsYXJhdGlvbihkZWNvcmF0b3IucGFyZW50KSkge1xuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBjbGFzc0RlY2xOb2RlID0gZGVjb3JhdG9yLnBhcmVudDtcbiAgcmV0dXJuIGNsYXNzRGVjbE5vZGU7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIHByb3BlcnR5IGFzc2lnbm1lbnQgaXMgb24gYSBjbGFzcyBkZWNvcmF0b3IuXG4gKiBTZWUgYGdldENsYXNzRGVjbEZyb21EZWNvcmF0b3JQcm9wZXJ0eWAsIHdoaWNoIGdldHMgdGhlIGNsYXNzIHRoZSBkZWNvcmF0b3IgaXMgYXBwbGllZCB0bywgZm9yXG4gKiBtb3JlIGRldGFpbHMuXG4gKlxuICogQHBhcmFtIHByb3AgcHJvcGVydHkgYXNzaWdubWVudFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDbGFzc0RlY29yYXRvclByb3BlcnR5KHByb3BBc2duOiB0cy5Qcm9wZXJ0eUFzc2lnbm1lbnQpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhZ2V0Q2xhc3NEZWNsRnJvbURlY29yYXRvclByb3AocHJvcEFzZ24pO1xufVxuIl19
package/src/ts_plugin.js CHANGED
@@ -41,7 +41,7 @@
41
41
  return results;
42
42
  }
43
43
  }
44
- return ngLS.getCompletionsAt(fileName, position);
44
+ return ngLS.getCompletionsAtPosition(fileName, position, options);
45
45
  }
46
46
  function getQuickInfoAtPosition(fileName, position) {
47
47
  if (!angularOnly) {
@@ -51,7 +51,7 @@
51
51
  return result;
52
52
  }
53
53
  }
54
- return ngLS.getHoverAt(fileName, position);
54
+ return ngLS.getQuickInfoAtPosition(fileName, position);
55
55
  }
56
56
  function getSemanticDiagnostics(fileName) {
57
57
  var results = [];
@@ -59,7 +59,7 @@
59
59
  results.push.apply(results, tslib_1.__spread(tsLS.getSemanticDiagnostics(fileName)));
60
60
  }
61
61
  // For semantic diagnostics we need to combine both TS + Angular results
62
- results.push.apply(results, tslib_1.__spread(ngLS.getDiagnostics(fileName)));
62
+ results.push.apply(results, tslib_1.__spread(ngLS.getSemanticDiagnostics(fileName)));
63
63
  return results;
64
64
  }
65
65
  function getDefinitionAtPosition(fileName, position) {
@@ -70,7 +70,7 @@
70
70
  return results;
71
71
  }
72
72
  }
73
- var result = ngLS.getDefinitionAt(fileName, position);
73
+ var result = ngLS.getDefinitionAndBoundSpan(fileName, position);
74
74
  if (!result || !result.definitions || !result.definitions.length) {
75
75
  return;
76
76
  }
@@ -84,7 +84,7 @@
84
84
  return result;
85
85
  }
86
86
  }
87
- return ngLS.getDefinitionAt(fileName, position);
87
+ return ngLS.getDefinitionAndBoundSpan(fileName, position);
88
88
  }
89
89
  var proxy = Object.assign(
90
90
  // First clone the original TS language service
@@ -98,4 +98,4 @@
98
98
  }
99
99
  exports.create = create;
100
100
  });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNfcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbGFuZ3VhZ2Utc2VydmljZS9zcmMvdHNfcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQUlILG1GQUF5RDtJQUN6RCxpRkFBd0Q7SUFFeEQsU0FBZ0IsTUFBTSxDQUFDLElBQWlDO1FBQy9DLElBQUEsMkJBQXFCLEVBQUUsbUNBQTZCLEVBQUUsb0JBQU0sQ0FBUztRQUM1RSx1REFBdUQ7UUFDdkQsa0JBQWtCO1FBQ2xCLHVFQUF1RTtRQUN2RSwyRUFBMkU7UUFDM0UsMkRBQTJEO1FBQzNELGtCQUFrQjtRQUNsQiwrRUFBK0U7UUFDL0UsNEVBQTRFO1FBQzVFLGVBQWU7UUFDZixJQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDakUsSUFBTSxRQUFRLEdBQUcsSUFBSSx1Q0FBcUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0QsSUFBTSxJQUFJLEdBQUcsd0NBQXFCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFN0MsU0FBUyx3QkFBd0IsQ0FDN0IsUUFBZ0IsRUFBRSxRQUFnQixFQUNsQyxPQUF3RDtZQUMxRCxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNoQixJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDM0UsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7b0JBQ3JDLGlFQUFpRTtvQkFDakUsT0FBTyxPQUFPLENBQUM7aUJBQ2hCO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUVELFNBQVMsc0JBQXNCLENBQUMsUUFBZ0IsRUFBRSxRQUFnQjtZQUNoRSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNoQixJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLE1BQU0sRUFBRTtvQkFDVixpRUFBaUU7b0JBQ2pFLE9BQU8sTUFBTSxDQUFDO2lCQUNmO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxTQUFTLHNCQUFzQixDQUFDLFFBQWdCO1lBQzlDLElBQU0sT0FBTyxHQUFxQixFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDaEIsT0FBTyxDQUFDLElBQUksT0FBWixPQUFPLG1CQUFTLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsR0FBRTthQUN4RDtZQUNELHdFQUF3RTtZQUN4RSxPQUFPLENBQUMsSUFBSSxPQUFaLE9BQU8sbUJBQVMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRTtZQUMvQyxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsU0FBUyx1QkFBdUIsQ0FDNUIsUUFBZ0IsRUFBRSxRQUFnQjtZQUNwQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNoQixJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLE9BQU8sRUFBRTtvQkFDWCxpRUFBaUU7b0JBQ2pFLE9BQU8sT0FBTyxDQUFDO2lCQUNoQjthQUNGO1lBQ0QsSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtnQkFDaEUsT0FBTzthQUNSO1lBQ0QsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQzVCLENBQUM7UUFFRCxTQUFTLHlCQUF5QixDQUM5QixRQUFnQixFQUFFLFFBQWdCO1lBQ3BDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2hCLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ2xFLElBQUksTUFBTSxFQUFFO29CQUNWLGlFQUFpRTtvQkFDakUsT0FBTyxNQUFNLENBQUM7aUJBQ2Y7YUFDRjtZQUNELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUVELElBQU0sS0FBSyxHQUF3QixNQUFNLENBQUMsTUFBTTtRQUM1QywrQ0FBK0M7UUFDL0MsRUFBRSxFQUFFLElBQUk7UUFDUixrRUFBa0U7UUFDbEU7WUFDSSx3QkFBd0IsMEJBQUEsRUFBRSxzQkFBc0Isd0JBQUEsRUFBRSxzQkFBc0Isd0JBQUE7WUFDeEUsdUJBQXVCLHlCQUFBLEVBQUUseUJBQXlCLDJCQUFBO1NBQ3JELENBQUMsQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQXRGRCx3QkFzRkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzcyBmcm9tICd0eXBlc2NyaXB0L2xpYi90c3NlcnZlcmxpYnJhcnknO1xuXG5pbXBvcnQge2NyZWF0ZUxhbmd1YWdlU2VydmljZX0gZnJvbSAnLi9sYW5ndWFnZV9zZXJ2aWNlJztcbmltcG9ydCB7VHlwZVNjcmlwdFNlcnZpY2VIb3N0fSBmcm9tICcuL3R5cGVzY3JpcHRfaG9zdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoaW5mbzogdHNzLnNlcnZlci5QbHVnaW5DcmVhdGVJbmZvKTogdHNzLkxhbmd1YWdlU2VydmljZSB7XG4gIGNvbnN0IHtsYW5ndWFnZVNlcnZpY2U6IHRzTFMsIGxhbmd1YWdlU2VydmljZUhvc3Q6IHRzTFNIb3N0LCBjb25maWd9ID0gaW5mbztcbiAgLy8gVGhpcyBwbHVnaW4gY291bGQgb3BlcmF0ZSB1bmRlciB0d28gZGlmZmVyZW50IG1vZGVzOlxuICAvLyAxLiBUUyArIEFuZ3VsYXJcbiAgLy8gICAgUGx1Z2luIGF1Z21lbnRzIFRTIGxhbmd1YWdlIHNlcnZpY2UgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIEFuZ3VsYXJcbiAgLy8gICAgaW5mb3JtYXRpb24uIFRoaXMgb25seSB3b3JrcyB3aXRoIGlubGluZSB0ZW1wbGF0ZXMgYW5kIGlzIG1lYW50IHRvIGJlXG4gIC8vICAgIHVzZWQgYXMgYSBsb2NhbCBwbHVnaW4gKGNvbmZpZ3VyZWQgdmlhIHRzY29uZmlnLmpzb24pXG4gIC8vIDIuIEFuZ3VsYXIgb25seVxuICAvLyAgICBQbHVnaW4gb25seSBwcm92aWRlcyBpbmZvcm1hdGlvbiBvbiBBbmd1bGFyIHRlbXBsYXRlcywgbm8gVFMgaW5mbyBhdCBhbGwuXG4gIC8vICAgIFRoaXMgZWZmZWN0aXZlbHkgZGlzYWJsZXMgbmF0aXZlIFRTIGZlYXR1cmVzIGFuZCBpcyBtZWFudCBmb3IgaW50ZXJuYWxcbiAgLy8gICAgdXNlIG9ubHkuXG4gIGNvbnN0IGFuZ3VsYXJPbmx5ID0gY29uZmlnID8gY29uZmlnLmFuZ3VsYXJPbmx5ID09PSB0cnVlIDogZmFsc2U7XG4gIGNvbnN0IG5nTFNIb3N0ID0gbmV3IFR5cGVTY3JpcHRTZXJ2aWNlSG9zdCh0c0xTSG9zdCwgdHNMUyk7XG4gIGNvbnN0IG5nTFMgPSBjcmVhdGVMYW5ndWFnZVNlcnZpY2UobmdMU0hvc3QpO1xuXG4gIGZ1bmN0aW9uIGdldENvbXBsZXRpb25zQXRQb3NpdGlvbihcbiAgICAgIGZpbGVOYW1lOiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIsXG4gICAgICBvcHRpb25zOiB0c3MuR2V0Q29tcGxldGlvbnNBdFBvc2l0aW9uT3B0aW9ucyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghYW5ndWxhck9ubHkpIHtcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSB0c0xTLmdldENvbXBsZXRpb25zQXRQb3NpdGlvbihmaWxlTmFtZSwgcG9zaXRpb24sIG9wdGlvbnMpO1xuICAgICAgaWYgKHJlc3VsdHMgJiYgcmVzdWx0cy5lbnRyaWVzLmxlbmd0aCkge1xuICAgICAgICAvLyBJZiBUUyBjb3VsZCBhbnN3ZXIgdGhlIHF1ZXJ5LCB0aGVuIHJldHVybiByZXN1bHRzIGltbWVkaWF0ZWx5LlxuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5nTFMuZ2V0Q29tcGxldGlvbnNBdChmaWxlTmFtZSwgcG9zaXRpb24pO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0UXVpY2tJbmZvQXRQb3NpdGlvbihmaWxlTmFtZTogc3RyaW5nLCBwb3NpdGlvbjogbnVtYmVyKTogdHNzLlF1aWNrSW5mb3x1bmRlZmluZWQge1xuICAgIGlmICghYW5ndWxhck9ubHkpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRzTFMuZ2V0UXVpY2tJbmZvQXRQb3NpdGlvbihmaWxlTmFtZSwgcG9zaXRpb24pO1xuICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAvLyBJZiBUUyBjb3VsZCBhbnN3ZXIgdGhlIHF1ZXJ5LCB0aGVuIHJldHVybiByZXN1bHRzIGltbWVkaWF0ZWx5LlxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmdMUy5nZXRIb3ZlckF0KGZpbGVOYW1lLCBwb3NpdGlvbik7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRTZW1hbnRpY0RpYWdub3N0aWNzKGZpbGVOYW1lOiBzdHJpbmcpOiB0c3MuRGlhZ25vc3RpY1tdIHtcbiAgICBjb25zdCByZXN1bHRzOiB0c3MuRGlhZ25vc3RpY1tdID0gW107XG4gICAgaWYgKCFhbmd1bGFyT25seSkge1xuICAgICAgcmVzdWx0cy5wdXNoKC4uLnRzTFMuZ2V0U2VtYW50aWNEaWFnbm9zdGljcyhmaWxlTmFtZSkpO1xuICAgIH1cbiAgICAvLyBGb3Igc2VtYW50aWMgZGlhZ25vc3RpY3Mgd2UgbmVlZCB0byBjb21iaW5lIGJvdGggVFMgKyBBbmd1bGFyIHJlc3VsdHNcbiAgICByZXN1bHRzLnB1c2goLi4ubmdMUy5nZXREaWFnbm9zdGljcyhmaWxlTmFtZSkpO1xuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0RGVmaW5pdGlvbkF0UG9zaXRpb24oXG4gICAgICBmaWxlTmFtZTogc3RyaW5nLCBwb3NpdGlvbjogbnVtYmVyKTogUmVhZG9ubHlBcnJheTx0c3MuRGVmaW5pdGlvbkluZm8+fHVuZGVmaW5lZCB7XG4gICAgaWYgKCFhbmd1bGFyT25seSkge1xuICAgICAgY29uc3QgcmVzdWx0cyA9IHRzTFMuZ2V0RGVmaW5pdGlvbkF0UG9zaXRpb24oZmlsZU5hbWUsIHBvc2l0aW9uKTtcbiAgICAgIGlmIChyZXN1bHRzKSB7XG4gICAgICAgIC8vIElmIFRTIGNvdWxkIGFuc3dlciB0aGUgcXVlcnksIHRoZW4gcmV0dXJuIHJlc3VsdHMgaW1tZWRpYXRlbHkuXG4gICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBuZ0xTLmdldERlZmluaXRpb25BdChmaWxlTmFtZSwgcG9zaXRpb24pO1xuICAgIGlmICghcmVzdWx0IHx8ICFyZXN1bHQuZGVmaW5pdGlvbnMgfHwgIXJlc3VsdC5kZWZpbml0aW9ucy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdC5kZWZpbml0aW9ucztcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldERlZmluaXRpb25BbmRCb3VuZFNwYW4oXG4gICAgICBmaWxlTmFtZTogc3RyaW5nLCBwb3NpdGlvbjogbnVtYmVyKTogdHNzLkRlZmluaXRpb25JbmZvQW5kQm91bmRTcGFufHVuZGVmaW5lZCB7XG4gICAgaWYgKCFhbmd1bGFyT25seSkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gdHNMUy5nZXREZWZpbml0aW9uQW5kQm91bmRTcGFuKGZpbGVOYW1lLCBwb3NpdGlvbik7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIC8vIElmIFRTIGNvdWxkIGFuc3dlciB0aGUgcXVlcnksIHRoZW4gcmV0dXJuIHJlc3VsdHMgaW1tZWRpYXRlbHkuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZ0xTLmdldERlZmluaXRpb25BdChmaWxlTmFtZSwgcG9zaXRpb24pO1xuICB9XG5cbiAgY29uc3QgcHJveHk6IHRzcy5MYW5ndWFnZVNlcnZpY2UgPSBPYmplY3QuYXNzaWduKFxuICAgICAgLy8gRmlyc3QgY2xvbmUgdGhlIG9yaWdpbmFsIFRTIGxhbmd1YWdlIHNlcnZpY2VcbiAgICAgIHt9LCB0c0xTLFxuICAgICAgLy8gVGhlbiBvdmVycmlkZSB0aGUgbWV0aG9kcyBzdXBwb3J0ZWQgYnkgQW5ndWxhciBsYW5ndWFnZSBzZXJ2aWNlXG4gICAgICB7XG4gICAgICAgICAgZ2V0Q29tcGxldGlvbnNBdFBvc2l0aW9uLCBnZXRRdWlja0luZm9BdFBvc2l0aW9uLCBnZXRTZW1hbnRpY0RpYWdub3N0aWNzLFxuICAgICAgICAgIGdldERlZmluaXRpb25BdFBvc2l0aW9uLCBnZXREZWZpbml0aW9uQW5kQm91bmRTcGFuLFxuICAgICAgfSk7XG4gIHJldHVybiBwcm94eTtcbn1cbiJdfQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHNfcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbGFuZ3VhZ2Utc2VydmljZS9zcmMvdHNfcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7OztJQUlILG1GQUF5RDtJQUN6RCxpRkFBd0Q7SUFFeEQsU0FBZ0IsTUFBTSxDQUFDLElBQWlDO1FBQy9DLElBQUEsMkJBQXFCLEVBQUUsbUNBQTZCLEVBQUUsb0JBQU0sQ0FBUztRQUM1RSx1REFBdUQ7UUFDdkQsa0JBQWtCO1FBQ2xCLHVFQUF1RTtRQUN2RSwyRUFBMkU7UUFDM0UsMkRBQTJEO1FBQzNELGtCQUFrQjtRQUNsQiwrRUFBK0U7UUFDL0UsNEVBQTRFO1FBQzVFLGVBQWU7UUFDZixJQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDakUsSUFBTSxRQUFRLEdBQUcsSUFBSSx1Q0FBcUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0QsSUFBTSxJQUFJLEdBQUcsd0NBQXFCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFN0MsU0FBUyx3QkFBd0IsQ0FDN0IsUUFBZ0IsRUFBRSxRQUFnQixFQUNsQyxPQUF3RDtZQUMxRCxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNoQixJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDM0UsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7b0JBQ3JDLGlFQUFpRTtvQkFDakUsT0FBTyxPQUFPLENBQUM7aUJBQ2hCO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFFRCxTQUFTLHNCQUFzQixDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7WUFDaEUsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDaEIsSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxNQUFNLEVBQUU7b0JBQ1YsaUVBQWlFO29CQUNqRSxPQUFPLE1BQU0sQ0FBQztpQkFDZjthQUNGO1lBQ0QsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxTQUFTLHNCQUFzQixDQUFDLFFBQWdCO1lBQzlDLElBQU0sT0FBTyxHQUFxQixFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDaEIsT0FBTyxDQUFDLElBQUksT0FBWixPQUFPLG1CQUFTLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsR0FBRTthQUN4RDtZQUNELHdFQUF3RTtZQUN4RSxPQUFPLENBQUMsSUFBSSxPQUFaLE9BQU8sbUJBQVMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxHQUFFO1lBQ3ZELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUM7UUFFRCxTQUFTLHVCQUF1QixDQUM1QixRQUFnQixFQUFFLFFBQWdCO1lBQ3BDLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2hCLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ2pFLElBQUksT0FBTyxFQUFFO29CQUNYLGlFQUFpRTtvQkFDakUsT0FBTyxPQUFPLENBQUM7aUJBQ2hCO2FBQ0Y7WUFDRCxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2hFLE9BQU87YUFDUjtZQUNELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUM1QixDQUFDO1FBRUQsU0FBUyx5QkFBeUIsQ0FDOUIsUUFBZ0IsRUFBRSxRQUFnQjtZQUNwQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNoQixJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNsRSxJQUFJLE1BQU0sRUFBRTtvQkFDVixpRUFBaUU7b0JBQ2pFLE9BQU8sTUFBTSxDQUFDO2lCQUNmO2FBQ0Y7WUFDRCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUVELElBQU0sS0FBSyxHQUF3QixNQUFNLENBQUMsTUFBTTtRQUM1QywrQ0FBK0M7UUFDL0MsRUFBRSxFQUFFLElBQUk7UUFDUixrRUFBa0U7UUFDbEU7WUFDSSx3QkFBd0IsMEJBQUEsRUFBRSxzQkFBc0Isd0JBQUEsRUFBRSxzQkFBc0Isd0JBQUE7WUFDeEUsdUJBQXVCLHlCQUFBLEVBQUUseUJBQXlCLDJCQUFBO1NBQ3JELENBQUMsQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQXRGRCx3QkFzRkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIHRzcyBmcm9tICd0eXBlc2NyaXB0L2xpYi90c3NlcnZlcmxpYnJhcnknO1xuXG5pbXBvcnQge2NyZWF0ZUxhbmd1YWdlU2VydmljZX0gZnJvbSAnLi9sYW5ndWFnZV9zZXJ2aWNlJztcbmltcG9ydCB7VHlwZVNjcmlwdFNlcnZpY2VIb3N0fSBmcm9tICcuL3R5cGVzY3JpcHRfaG9zdCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGUoaW5mbzogdHNzLnNlcnZlci5QbHVnaW5DcmVhdGVJbmZvKTogdHNzLkxhbmd1YWdlU2VydmljZSB7XG4gIGNvbnN0IHtsYW5ndWFnZVNlcnZpY2U6IHRzTFMsIGxhbmd1YWdlU2VydmljZUhvc3Q6IHRzTFNIb3N0LCBjb25maWd9ID0gaW5mbztcbiAgLy8gVGhpcyBwbHVnaW4gY291bGQgb3BlcmF0ZSB1bmRlciB0d28gZGlmZmVyZW50IG1vZGVzOlxuICAvLyAxLiBUUyArIEFuZ3VsYXJcbiAgLy8gICAgUGx1Z2luIGF1Z21lbnRzIFRTIGxhbmd1YWdlIHNlcnZpY2UgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIEFuZ3VsYXJcbiAgLy8gICAgaW5mb3JtYXRpb24uIFRoaXMgb25seSB3b3JrcyB3aXRoIGlubGluZSB0ZW1wbGF0ZXMgYW5kIGlzIG1lYW50IHRvIGJlXG4gIC8vICAgIHVzZWQgYXMgYSBsb2NhbCBwbHVnaW4gKGNvbmZpZ3VyZWQgdmlhIHRzY29uZmlnLmpzb24pXG4gIC8vIDIuIEFuZ3VsYXIgb25seVxuICAvLyAgICBQbHVnaW4gb25seSBwcm92aWRlcyBpbmZvcm1hdGlvbiBvbiBBbmd1bGFyIHRlbXBsYXRlcywgbm8gVFMgaW5mbyBhdCBhbGwuXG4gIC8vICAgIFRoaXMgZWZmZWN0aXZlbHkgZGlzYWJsZXMgbmF0aXZlIFRTIGZlYXR1cmVzIGFuZCBpcyBtZWFudCBmb3IgaW50ZXJuYWxcbiAgLy8gICAgdXNlIG9ubHkuXG4gIGNvbnN0IGFuZ3VsYXJPbmx5ID0gY29uZmlnID8gY29uZmlnLmFuZ3VsYXJPbmx5ID09PSB0cnVlIDogZmFsc2U7XG4gIGNvbnN0IG5nTFNIb3N0ID0gbmV3IFR5cGVTY3JpcHRTZXJ2aWNlSG9zdCh0c0xTSG9zdCwgdHNMUyk7XG4gIGNvbnN0IG5nTFMgPSBjcmVhdGVMYW5ndWFnZVNlcnZpY2UobmdMU0hvc3QpO1xuXG4gIGZ1bmN0aW9uIGdldENvbXBsZXRpb25zQXRQb3NpdGlvbihcbiAgICAgIGZpbGVOYW1lOiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIsXG4gICAgICBvcHRpb25zOiB0c3MuR2V0Q29tcGxldGlvbnNBdFBvc2l0aW9uT3B0aW9ucyB8IHVuZGVmaW5lZCkge1xuICAgIGlmICghYW5ndWxhck9ubHkpIHtcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSB0c0xTLmdldENvbXBsZXRpb25zQXRQb3NpdGlvbihmaWxlTmFtZSwgcG9zaXRpb24sIG9wdGlvbnMpO1xuICAgICAgaWYgKHJlc3VsdHMgJiYgcmVzdWx0cy5lbnRyaWVzLmxlbmd0aCkge1xuICAgICAgICAvLyBJZiBUUyBjb3VsZCBhbnN3ZXIgdGhlIHF1ZXJ5LCB0aGVuIHJldHVybiByZXN1bHRzIGltbWVkaWF0ZWx5LlxuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5nTFMuZ2V0Q29tcGxldGlvbnNBdFBvc2l0aW9uKGZpbGVOYW1lLCBwb3NpdGlvbiwgb3B0aW9ucyk7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRRdWlja0luZm9BdFBvc2l0aW9uKGZpbGVOYW1lOiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIpOiB0c3MuUXVpY2tJbmZvfHVuZGVmaW5lZCB7XG4gICAgaWYgKCFhbmd1bGFyT25seSkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gdHNMUy5nZXRRdWlja0luZm9BdFBvc2l0aW9uKGZpbGVOYW1lLCBwb3NpdGlvbik7XG4gICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgIC8vIElmIFRTIGNvdWxkIGFuc3dlciB0aGUgcXVlcnksIHRoZW4gcmV0dXJuIHJlc3VsdHMgaW1tZWRpYXRlbHkuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZ0xTLmdldFF1aWNrSW5mb0F0UG9zaXRpb24oZmlsZU5hbWUsIHBvc2l0aW9uKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldFNlbWFudGljRGlhZ25vc3RpY3MoZmlsZU5hbWU6IHN0cmluZyk6IHRzcy5EaWFnbm9zdGljW10ge1xuICAgIGNvbnN0IHJlc3VsdHM6IHRzcy5EaWFnbm9zdGljW10gPSBbXTtcbiAgICBpZiAoIWFuZ3VsYXJPbmx5KSB7XG4gICAgICByZXN1bHRzLnB1c2goLi4udHNMUy5nZXRTZW1hbnRpY0RpYWdub3N0aWNzKGZpbGVOYW1lKSk7XG4gICAgfVxuICAgIC8vIEZvciBzZW1hbnRpYyBkaWFnbm9zdGljcyB3ZSBuZWVkIHRvIGNvbWJpbmUgYm90aCBUUyArIEFuZ3VsYXIgcmVzdWx0c1xuICAgIHJlc3VsdHMucHVzaCguLi5uZ0xTLmdldFNlbWFudGljRGlhZ25vc3RpY3MoZmlsZU5hbWUpKTtcbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldERlZmluaXRpb25BdFBvc2l0aW9uKFxuICAgICAgZmlsZU5hbWU6IHN0cmluZywgcG9zaXRpb246IG51bWJlcik6IFJlYWRvbmx5QXJyYXk8dHNzLkRlZmluaXRpb25JbmZvPnx1bmRlZmluZWQge1xuICAgIGlmICghYW5ndWxhck9ubHkpIHtcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSB0c0xTLmdldERlZmluaXRpb25BdFBvc2l0aW9uKGZpbGVOYW1lLCBwb3NpdGlvbik7XG4gICAgICBpZiAocmVzdWx0cykge1xuICAgICAgICAvLyBJZiBUUyBjb3VsZCBhbnN3ZXIgdGhlIHF1ZXJ5LCB0aGVuIHJldHVybiByZXN1bHRzIGltbWVkaWF0ZWx5LlxuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gbmdMUy5nZXREZWZpbml0aW9uQW5kQm91bmRTcGFuKGZpbGVOYW1lLCBwb3NpdGlvbik7XG4gICAgaWYgKCFyZXN1bHQgfHwgIXJlc3VsdC5kZWZpbml0aW9ucyB8fCAhcmVzdWx0LmRlZmluaXRpb25zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0LmRlZmluaXRpb25zO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0RGVmaW5pdGlvbkFuZEJvdW5kU3BhbihcbiAgICAgIGZpbGVOYW1lOiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIpOiB0c3MuRGVmaW5pdGlvbkluZm9BbmRCb3VuZFNwYW58dW5kZWZpbmVkIHtcbiAgICBpZiAoIWFuZ3VsYXJPbmx5KSB7XG4gICAgICBjb25zdCByZXN1bHQgPSB0c0xTLmdldERlZmluaXRpb25BbmRCb3VuZFNwYW4oZmlsZU5hbWUsIHBvc2l0aW9uKTtcbiAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgLy8gSWYgVFMgY291bGQgYW5zd2VyIHRoZSBxdWVyeSwgdGhlbiByZXR1cm4gcmVzdWx0cyBpbW1lZGlhdGVseS5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5nTFMuZ2V0RGVmaW5pdGlvbkFuZEJvdW5kU3BhbihmaWxlTmFtZSwgcG9zaXRpb24pO1xuICB9XG5cbiAgY29uc3QgcHJveHk6IHRzcy5MYW5ndWFnZVNlcnZpY2UgPSBPYmplY3QuYXNzaWduKFxuICAgICAgLy8gRmlyc3QgY2xvbmUgdGhlIG9yaWdpbmFsIFRTIGxhbmd1YWdlIHNlcnZpY2VcbiAgICAgIHt9LCB0c0xTLFxuICAgICAgLy8gVGhlbiBvdmVycmlkZSB0aGUgbWV0aG9kcyBzdXBwb3J0ZWQgYnkgQW5ndWxhciBsYW5ndWFnZSBzZXJ2aWNlXG4gICAgICB7XG4gICAgICAgICAgZ2V0Q29tcGxldGlvbnNBdFBvc2l0aW9uLCBnZXRRdWlja0luZm9BdFBvc2l0aW9uLCBnZXRTZW1hbnRpY0RpYWdub3N0aWNzLFxuICAgICAgICAgIGdldERlZmluaXRpb25BdFBvc2l0aW9uLCBnZXREZWZpbml0aW9uQW5kQm91bmRTcGFuLFxuICAgICAgfSk7XG4gIHJldHVybiBwcm94eTtcbn1cbiJdfQ==
package/src/types.d.ts CHANGED
@@ -7,6 +7,7 @@
7
7
  */
8
8
  /// <amd-module name="@angular/language-service/src/types" />
9
9
  import { CompileDirectiveMetadata, NgAnalyzedModules, StaticSymbol } from '@angular/compiler';
10
+ import * as ts from 'typescript';
10
11
  import { AstResult } from './common';
11
12
  import { BuiltinType, DeclarationKind, Definition, PipeInfo, Pipes, Signature, Span, Symbol, SymbolDeclaration, SymbolQuery, SymbolTable } from './symbols';
12
13
  export { BuiltinType, DeclarationKind, Definition, PipeInfo, Pipes, Signature, Span, StaticSymbol, Symbol, SymbolDeclaration, SymbolQuery, SymbolTable };
@@ -96,7 +97,7 @@ export interface Declaration {
96
97
  /**
97
98
  * Reference to the compiler directive metadata for the declaration.
98
99
  */
99
- readonly metadata?: CompileDirectiveMetadata;
100
+ readonly metadata: CompileDirectiveMetadata;
100
101
  /**
101
102
  * Error reported trying to get the metadata.
102
103
  */
@@ -300,45 +301,10 @@ export interface Hover {
300
301
  /**
301
302
  * An instance of an Angular language service created by `createLanguageService()`.
302
303
  *
303
- * The language service returns information about Angular templates that are included in a project
304
- * as defined by the `LanguageServiceHost`.
305
- *
306
- * When a method expects a `fileName` this file can either be source file in the project that
307
- * contains a template in a string literal or a template file referenced by the project returned
308
- * by `getTemplateReference()`. All other files will cause the method to return `undefined`.
309
- *
310
- * If a method takes a `position`, it is the offset of the UTF-16 code-point relative to the
311
- * beginning of the file reference by `fileName`.
312
- *
313
- * This interface and all interfaces and types marked as `LanguageService` types, describe a
314
- * particular implementation of the Angular language service and is not intended to be
315
- * implemented. Adding members to the interface will not be considered a breaking change as
316
- * defined by SemVer.
317
- *
318
- * Removing a member or making a member optional, changing a method parameters, or changing a
319
- * member's type will all be considered a breaking change.
320
- *
321
- * While an interface is marked as experimental breaking-changes will be allowed between minor
322
- * releases. After an interface is marked as stable breaking-changes will only be allowed between
323
- * major releases. No breaking changes are allowed between patch releases.
304
+ * The Angular language service implements a subset of methods defined in
305
+ * The Angular language service implements a subset of methods defined by
306
+ * the TypeScript language service.
324
307
  *
325
308
  * @publicApi
326
309
  */
327
- export interface LanguageService {
328
- /**
329
- * Returns a list of all error for all templates in the given file.
330
- */
331
- getDiagnostics(fileName: string): ts.Diagnostic[];
332
- /**
333
- * Return the completions at the given position.
334
- */
335
- getCompletionsAt(fileName: string, position: number): ts.CompletionInfo | undefined;
336
- /**
337
- * Return the definition location for the symbol at position.
338
- */
339
- getDefinitionAt(fileName: string, position: number): ts.DefinitionInfoAndBoundSpan | undefined;
340
- /**
341
- * Return the hover information for the symbol at position.
342
- */
343
- getHoverAt(fileName: string, position: number): ts.QuickInfo | undefined;
344
- }
310
+ export declare type LanguageService = Pick<ts.LanguageService, 'getCompletionsAtPosition' | 'getDefinitionAndBoundSpan' | 'getQuickInfoAtPosition' | 'getSemanticDiagnostics'>;
package/src/types.js CHANGED
@@ -50,4 +50,4 @@
50
50
  CompletionKind["VARIABLE"] = "variable";
51
51
  })(CompletionKind = exports.CompletionKind || (exports.CompletionKind = {}));
52
52
  });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYW5ndWFnZS1zZXJ2aWNlL3NyYy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7OztJQUVILDhDQUE0RjtJQWExRix1QkFibUQsdUJBQVksQ0FhbkQ7SUFWZCxpRUFBMEo7SUFHeEosc0JBSE0scUJBQVcsQ0FHTjtJQStOYjs7T0FFRztJQUNILElBQVksYUFJWDtJQUpELFdBQVksYUFBYTtRQUN2Qix3Q0FBdUIsQ0FBQTtRQUN2Qix3Q0FBdUIsQ0FBQTtRQUN2QixnQ0FBZSxDQUFBO0lBQ2pCLENBQUMsRUFKVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQUl4QjtJQUVEOztPQUVHO0lBQ0gsSUFBWSxjQWVYO0lBZkQsV0FBWSxjQUFjO1FBQ3hCLHFEQUFtQyxDQUFBO1FBQ25DLHlDQUF1QixDQUFBO1FBQ3ZCLHlDQUF1QixDQUFBO1FBQ3ZCLHFDQUFtQixDQUFBO1FBQ25CLG1DQUFpQixDQUFBO1FBQ2pCLG1EQUFpQyxDQUFBO1FBQ2pDLCtDQUE2QixDQUFBO1FBQzdCLDZCQUFXLENBQUE7UUFDWCxtQ0FBaUIsQ0FBQTtRQUNqQiwrQkFBYSxDQUFBO1FBQ2IsdUNBQXFCLENBQUE7UUFDckIseUNBQXVCLENBQUE7UUFDdkIsK0JBQWEsQ0FBQTtRQUNiLHVDQUFxQixDQUFBO0lBQ3ZCLENBQUMsRUFmVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQWV6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtDb21waWxlRGlyZWN0aXZlTWV0YWRhdGEsIE5nQW5hbHl6ZWRNb2R1bGVzLCBTdGF0aWNTeW1ib2x9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcblxuaW1wb3J0IHtBc3RSZXN1bHR9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7QnVpbHRpblR5cGUsIERlY2xhcmF0aW9uS2luZCwgRGVmaW5pdGlvbiwgUGlwZUluZm8sIFBpcGVzLCBTaWduYXR1cmUsIFNwYW4sIFN5bWJvbCwgU3ltYm9sRGVjbGFyYXRpb24sIFN5bWJvbFF1ZXJ5LCBTeW1ib2xUYWJsZX0gZnJvbSAnLi9zeW1ib2xzJztcblxuZXhwb3J0IHtcbiAgQnVpbHRpblR5cGUsXG4gIERlY2xhcmF0aW9uS2luZCxcbiAgRGVmaW5pdGlvbixcbiAgUGlwZUluZm8sXG4gIFBpcGVzLFxuICBTaWduYXR1cmUsXG4gIFNwYW4sXG4gIFN0YXRpY1N5bWJvbCxcbiAgU3ltYm9sLFxuICBTeW1ib2xEZWNsYXJhdGlvbixcbiAgU3ltYm9sUXVlcnksXG4gIFN5bWJvbFRhYmxlXG59O1xuXG5cbi8qKlxuICogVGhlIGluZm9ybWF0aW9uIGBMYW5ndWFnZVNlcnZpY2VgIG5lZWRzIGZyb20gdGhlIGBMYW5ndWFnZVNlcnZpY2VIb3N0YCB0byBkZXNjcmliZSB0aGUgY29udGVudCBvZlxuICogYSB0ZW1wbGF0ZSBhbmQgdGhlIGxhbmd1YWdlIGNvbnRleHQgdGhlIHRlbXBsYXRlIGlzIGluLlxuICpcbiAqIEEgaG9zdCBpbnRlcmZhY2U7IHNlZSBgTGFuZ3VhZ2VTZXJ2aWNlSG9zdGAuXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlU291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBzb3VyY2Ugb2YgdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzcGFuIG9mIHRoZSB0ZW1wbGF0ZSB3aXRoaW4gdGhlIHNvdXJjZSBmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3BhbjogU3BhbjtcblxuICAvKipcbiAgICogQSBzdGF0aWMgc3ltYm9sIGZvciB0aGUgdGVtcGxhdGUncyBjb21wb25lbnQuXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBTdGF0aWNTeW1ib2w7XG5cbiAgLyoqXG4gICAqIFRoZSBgU3ltYm9sVGFibGVgIGZvciB0aGUgbWVtYmVycyBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgbWVtYmVyczogU3ltYm9sVGFibGU7XG5cbiAgLyoqXG4gICAqIEEgYFN5bWJvbFF1ZXJ5YCBmb3IgdGhlIGNvbnRleHQgb2YgdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgcXVlcnk6IFN5bWJvbFF1ZXJ5O1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBmaWxlIHRoYXQgY29udGFpbnMgdGhlIHRlbXBsYXRlLiBDb3VsZCBiZSBgLmh0bWxgIG9yIGAudHNgLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHNlcXVlbmNlIG9mIHRlbXBsYXRlIHNvdXJjZXMuXG4gKlxuICogQSBob3N0IHR5cGU7IHNlZSBgTGFuZ3VhZ2VTZXJ2aWNlSG9zdGAuXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgdHlwZSBUZW1wbGF0ZVNvdXJjZXMgPSBUZW1wbGF0ZVNvdXJjZVtdIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIEVycm9yIGluZm9ybWF0aW9uIGZvdW5kIGdldHRpbmcgZGVjbGFyYXRpb24gaW5mb3JtYXRpb25cbiAqXG4gKiBBIGhvc3QgdHlwZTsgc2VlIGBMYW5ndWFnZVNlcnZpY2VIb3N0YC5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVjbGFyYXRpb25FcnJvciB7XG4gIC8qKlxuICAgKiBUaGUgc3BhbiBvZiB0aGUgZXJyb3IgaW4gdGhlIGRlY2xhcmF0aW9uJ3MgbW9kdWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3BhbjogU3BhbjtcblxuICAvKipcbiAgICogVGhlIG1lc3NhZ2UgdG8gZGlzcGxheSBkZXNjcmliaW5nIHRoZSBlcnJvciBvciBhIGNoYWluXG4gICAqIG9mIG1lc3NhZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nfERpYWdub3N0aWNNZXNzYWdlQ2hhaW47XG59XG5cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbXBvbmVudCBkZWNsYXJhdGlvbnMuXG4gKlxuICogQSBmaWxlIG1pZ2h0IGNvbnRhaW4gYSBkZWNsYXJhdGlvbiB3aXRob3V0IGEgdGVtcGxhdGUgYmVjYXVzZSB0aGUgZmlsZSBjb250YWlucyBvbmx5XG4gKiB0ZW1wbGF0ZVVybCByZWZlcmVuY2VzLiBIb3dldmVyLCB0aGUgY29tcG9uZW50IGRlY2xhcmF0aW9uIG1pZ2h0IGNvbnRhaW4gZXJyb3JzIHRoYXRcbiAqIG5lZWQgdG8gYmUgcmVwb3J0ZWQgc3VjaCBhcyB0aGUgdGVtcGxhdGUgc3RyaW5nIGlzIG1pc3Npbmcgb3IgdGhlIGNvbXBvbmVudCBpcyBub3RcbiAqIGRlY2xhcmVkIGluIGEgbW9kdWxlLiBUaGVzZSBlcnJvciBzaG91bGQgYmUgcmVwb3J0ZWQgb24gdGhlIGRlY2xhcmF0aW9uLCBub3QgdGhlXG4gKiB0ZW1wbGF0ZS5cbiAqXG4gKiBBIGhvc3QgdHlwZTsgc2VlIGBMYW5ndWFnZVNlcnZpY2VIb3N0YC5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVjbGFyYXRpb24ge1xuICAvKipcbiAgICogVGhlIHN0YXRpYyBzeW1ib2wgb2YgdGhlIGNvbXBwb25lbnQgYmVpbmcgZGVjbGFyZWQuXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBTdGF0aWNTeW1ib2w7XG5cbiAgLyoqXG4gICAqIFRoZSBzcGFuIG9mIHRoZSBkZWNsYXJhdGlvbiBhbm5vdGF0aW9uIHJlZmVyZW5jZSAoZS5nLiB0aGUgJ0NvbXBvbmVudCcgb3IgJ0RpcmVjdGl2ZSdcbiAgICogcmVmZXJlbmNlKS5cbiAgICovXG4gIHJlYWRvbmx5IGRlY2xhcmF0aW9uU3BhbjogU3BhbjtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBjb21waWxlciBkaXJlY3RpdmUgbWV0YWRhdGEgZm9yIHRoZSBkZWNsYXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogQ29tcGlsZURpcmVjdGl2ZU1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBFcnJvciByZXBvcnRlZCB0cnlpbmcgdG8gZ2V0IHRoZSBtZXRhZGF0YS5cbiAgICovXG4gIHJlYWRvbmx5IGVycm9yczogRGVjbGFyYXRpb25FcnJvcltdO1xufVxuXG4vKipcbiAqIEEgc2VxdWVuY2Ugb2YgZGVjbGFyYXRpb25zLlxuICpcbiAqIEEgaG9zdCB0eXBlOyBzZWUgYExhbmd1YWdlU2VydmljZUhvc3RgLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IHR5cGUgRGVjbGFyYXRpb25zID0gRGVjbGFyYXRpb25bXTtcblxuLyoqXG4gKiBUaGUgaG9zdCBmb3IgYSBgTGFuZ3VhZ2VTZXJ2aWNlYC4gVGhpcyBwcm92aWRlcyBhbGwgdGhlIGBMYW5ndWFnZVNlcnZpY2VgIHJlcXVpcmVzIHRvIHJlc3BvbmRcbiAqIHRvIHRoZSBgTGFuZ3VhZ2VTZXJ2aWNlYCByZXF1ZXN0cy5cbiAqXG4gKiBUaGlzIGludGVyZmFjZSBkZXNjcmliZXMgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGUgYExhbmd1YWdlU2VydmljZWAgb24gaXRzIGhvc3QuXG4gKlxuICogVGhlIGhvc3QgaW50ZXJmYWNlIGlzIGhvc3QgbGFuZ3VhZ2UgYWdub3N0aWMuXG4gKlxuICogQWRkaW5nIG9wdGlvbmFsIG1lbWJlciB0byB0aGlzIGludGVyZmFjZSBvciBhbnkgaW50ZXJmYWNlIHRoYXQgaXMgZGVzY3JpYmVkIGFzIGFcbiAqIGBMYW5ndWFnZVNlcnZpY2VIb3N0YCBpbnRlcmZhY2UgaXMgbm90IGNvbnNpZGVyZWQgYSBicmVha2luZyBjaGFuZ2UgYXMgZGVmaW5lZCBieSBTZW1WZXIuXG4gKiBSZW1vdmluZyBhIG1ldGhvZCBvciBjaGFuZ2luZyBhIG1lbWJlciBmcm9tIHJlcXVpcmVkIHRvIG9wdGlvbmFsIHdpbGwgYWxzbyBub3QgYmUgY29uc2lkZXJlZCBhXG4gKiBicmVha2luZyBjaGFuZ2UuXG4gKlxuICogSWYgYSBtZW1iZXIgaXMgZGVwcmVjYXRlZCBpdCB3aWxsIGJlIGNoYW5nZWQgdG8gb3B0aW9uYWwgaW4gYSBtaW5vciByZWxlYXNlIGJlZm9yZSBpdCBpc1xuICogcmVtb3ZlZCBpbiBhIG1ham9yIHJlbGVhc2UuXG4gKlxuICogQWRkaW5nIGEgcmVxdWlyZWQgbWVtYmVyIG9yIGNoYW5naW5nIGEgbWV0aG9kJ3MgcGFyYW1ldGVycywgaXMgY29uc2lkZXJlZCBhIGJyZWFraW5nIGNoYW5nZSBhbmRcbiAqIHdpbGwgb25seSBiZSBkb25lIHdoZW4gYnJlYWtpbmcgY2hhbmdlcyBhcmUgYWxsb3dlZC4gV2hlbiBwb3NzaWJsZSwgYSBuZXcgb3B0aW9uYWwgbWVtYmVyIHdpbGxcbiAqIGJlIGFkZGVkIGFuZCB0aGUgb2xkIG1lbWJlciB3aWxsIGJlIGRlcHJlY2F0ZWQuIFRoZSBuZXcgbWVtYmVyIHdpbGwgdGhlbiBiZSBtYWRlIHJlcXVpcmVkIGluXG4gKiBhbmQgdGhlIG9sZCBtZW1iZXIgd2lsbCBiZSByZW1vdmVkIG9ubHkgd2hlbiBicmVha2luZyBjaGFuZ2VzIGFyZSBhbGxvd2VkLlxuICpcbiAqIFdoaWxlIGFuIGludGVyZmFjZSBpcyBtYXJrZWQgYXMgZXhwZXJpbWVudGFsIGJyZWFraW5nLWNoYW5nZXMgd2lsbCBiZSBhbGxvd2VkIGJldHdlZW4gbWlub3JcbiAqIHJlbGVhc2VzLiBBZnRlciBhbiBpbnRlcmZhY2UgaXMgbWFya2VkIGFzIHN0YWJsZSBicmVha2luZy1jaGFuZ2VzIHdpbGwgb25seSBiZSBhbGxvd2VkIGJldHdlZW5cbiAqIG1ham9yIHJlbGVhc2VzLiBObyBicmVha2luZyBjaGFuZ2VzIGFyZSBhbGxvd2VkIGJldHdlZW4gcGF0Y2ggcmVsZWFzZXMuXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbmd1YWdlU2VydmljZUhvc3Qge1xuICAvKipcbiAgICogUmV0dXJuIHRoZSB0ZW1wbGF0ZSBzb3VyY2UgaW5mb3JtYXRpb24gZm9yIGFsbCB0ZW1wbGF0ZXMgaW4gYGZpbGVOYW1lYCBvciBmb3IgYGZpbGVOYW1lYCBpZlxuICAgKiBpdCBpcyBhIHRlbXBsYXRlIGZpbGUuXG4gICAqL1xuICBnZXRUZW1wbGF0ZXMoZmlsZU5hbWU6IHN0cmluZyk6IFRlbXBsYXRlU291cmNlW107XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIEFuZ3VsYXIgZGVjbGFyYXRpb25zIGluIHRoZSBnaXZlbiBmaWxlLlxuICAgKi9cbiAgZ2V0RGVjbGFyYXRpb25zKGZpbGVOYW1lOiBzdHJpbmcpOiBEZWNsYXJhdGlvbnM7XG5cbiAgLyoqXG4gICAqIFJldHVybiBhIHN1bW1hcnkgb2YgYWxsIEFuZ3VsYXIgbW9kdWxlcyBpbiB0aGUgcHJvamVjdC5cbiAgICovXG4gIGdldEFuYWx5emVkTW9kdWxlcygpOiBOZ0FuYWx5emVkTW9kdWxlcztcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBBU1QgZm9yIGJvdGggSFRNTCBhbmQgdGVtcGxhdGUgZm9yIHRoZSBjb250ZXh0RmlsZS5cbiAgICovXG4gIGdldFRlbXBsYXRlQXN0KHRlbXBsYXRlOiBUZW1wbGF0ZVNvdXJjZSk6IEFzdFJlc3VsdHx1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgdGVtcGxhdGUgQVNUIGZvciB0aGUgbm9kZSB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBwb3NpdGlvbi5cbiAgICovXG4gIGdldFRlbXBsYXRlQXN0QXRQb3NpdGlvbihmaWxlTmFtZTogc3RyaW5nLCBwb3NpdGlvbjogbnVtYmVyKTogQXN0UmVzdWx0fHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBBbiBpdGVtIG9mIHRoZSBjb21wbGV0aW9uIHJlc3VsdCB0byBiZSBkaXNwbGF5ZWQgYnkgYW4gZWRpdG9yLlxuICpcbiAqIEEgYExhbmd1YWdlU2VydmljZWAgaW50ZXJmYWNlLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21wbGV0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBraW5kIG9mIGNvbXBsZXRpb24uXG4gICAqL1xuICBraW5kOiBEZWNsYXJhdGlvbktpbmQ7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBjb21wbGV0aW9uIHRvIGJlIGRpc3BsYXllZFxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUga2V5IHRvIHVzZSB0byBzb3J0IHRoZSBjb21wbGV0aW9ucyBmb3IgZGlzcGxheS5cbiAgICovXG4gIHNvcnQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHNlcXVlbmNlIG9mIGNvbXBsZXRpb25zLlxuICpcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCB0eXBlIENvbXBsZXRpb25zID0gQ29tcGxldGlvbltdO1xuXG4vKipcbiAqIEEgZmlsZSBhbmQgc3Bhbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvbiB7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIHNwYW46IFNwYW47XG59XG5cbi8qKlxuICogVGhlIHR5cGUgb2YgQW5ndWxhciBkaXJlY3RpdmUuIFVzZWQgZm9yIFF1aWNrSW5mbyBpbiB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGVudW0gRGlyZWN0aXZlS2luZCB7XG4gIENPTVBPTkVOVCA9ICdjb21wb25lbnQnLFxuICBESVJFQ1RJVkUgPSAnZGlyZWN0aXZlJyxcbiAgRVZFTlQgPSAnZXZlbnQnLFxufVxuXG4vKipcbiAqIFNjcmlwdEVsZW1lbnRLaW5kIGZvciBjb21wbGV0aW9uLlxuICovXG5leHBvcnQgZW51bSBDb21wbGV0aW9uS2luZCB7XG4gIEFOR1VMQVJfRUxFTUVOVCA9ICdhbmd1bGFyIGVsZW1lbnQnLFxuICBBVFRSSUJVVEUgPSAnYXR0cmlidXRlJyxcbiAgQ09NUE9ORU5UID0gJ2NvbXBvbmVudCcsXG4gIEVMRU1FTlQgPSAnZWxlbWVudCcsXG4gIEVOVElUWSA9ICdlbnRpdHknLFxuICBIVE1MX0FUVFJJQlVURSA9ICdodG1sIGF0dHJpYnV0ZScsXG4gIEhUTUxfRUxFTUVOVCA9ICdodG1sIGVsZW1lbnQnLFxuICBLRVkgPSAna2V5JyxcbiAgTUVUSE9EID0gJ21ldGhvZCcsXG4gIFBJUEUgPSAncGlwZScsXG4gIFBST1BFUlRZID0gJ3Byb3BlcnR5JyxcbiAgUkVGRVJFTkNFID0gJ3JlZmVyZW5jZScsXG4gIFRZUEUgPSAndHlwZScsXG4gIFZBUklBQkxFID0gJ3ZhcmlhYmxlJyxcbn1cblxuZXhwb3J0IHR5cGUgQ29tcGxldGlvbkVudHJ5ID0gT21pdDx0cy5Db21wbGV0aW9uRW50cnksICdraW5kJz4mIHtcbiAga2luZDogQ29tcGxldGlvbktpbmQsXG59O1xuXG4vKipcbiAqIEEgdGVtcGxhdGUgZGlhZ25vc3RpY3MgbWVzc2FnZSBjaGFpbi4gVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSBUeXBlU2NyaXB0XG4gKiBEaWFnbm9zdGljTWVzc2FnZUNoYWluLiBUaGUgbWVzc2FnZXMgYXJlIGludGVuZGVkIHRvIGJlIGZvcm1hdHRlZCBhcyBzZXBhcmF0ZVxuICogc2VudGVuY2UgZnJhZ21lbnRzIGFuZCBpbmRlbnRlZC5cbiAqXG4gKiBGb3IgY29tcGF0aWJpbGl0eSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiwgdGhlIHZhbHVlcyBhcmUgZXhwZWN0ZWQgdG8gb3ZlcnJpZGVcbiAqIHRvU3RyaW5nKCkgdG8gcmV0dXJuIGEgZm9ybWF0dGVkIG1lc3NhZ2UuXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgaW50ZXJmYWNlIERpYWdub3N0aWNNZXNzYWdlQ2hhaW4ge1xuICAvKipcbiAgICogVGhlIHRleHQgb2YgdGhlIGRpYWdub3N0aWMgbWVzc2FnZSB0byBkaXNwbGF5LlxuICAgKi9cbiAgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmV4dCBtZXNzYWdlIGluIHRoZSBjaGFpbi5cbiAgICovXG4gIG5leHQ/OiBEaWFnbm9zdGljTWVzc2FnZUNoYWluW107XG59XG5cbi8qKlxuICogQW4gdGVtcGxhdGUgZGlhZ25vc3RpYyBtZXNzYWdlIHRvIGRpc3BsYXkuXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgaW50ZXJmYWNlIERpYWdub3N0aWMge1xuICAvKipcbiAgICogVGhlIGtpbmQgb2YgZGlhZ25vc3RpYyBtZXNzYWdlXG4gICAqL1xuICBraW5kOiB0cy5EaWFnbm9zdGljQ2F0ZWdvcnk7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2Ugc3BhbiB0aGF0IHNob3VsZCBiZSBoaWdobGlnaHRlZC5cbiAgICovXG4gIHNwYW46IFNwYW47XG5cbiAgLyoqXG4gICAqIFRoZSB0ZXh0IG9mIHRoZSBkaWFnbm9zdGljIG1lc3NhZ2UgdG8gZGlzcGxheSBvciBhIGNoYWluIG9mIG1lc3NhZ2VzLlxuICAgKi9cbiAgbWVzc2FnZTogc3RyaW5nfERpYWdub3N0aWNNZXNzYWdlQ2hhaW47XG59XG5cbi8qKlxuICogQSBzZXF1ZW5jZSBvZiBkaWFnbm9zdGljIG1lc3NhZ2UuXG4gKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IHR5cGUgRGlhZ25vc3RpY3MgPSBEaWFnbm9zdGljW107XG5cbi8qKlxuICogQSBzZWN0aW9uIG9mIGhvdmVyIHRleHQuIElmIHRoZSB0ZXh0IGlzIGNvZGUgdGhlbiBsYW5ndWFnZSBzaG91bGQgYmUgcHJvdmlkZWQuXG4gKiBPdGhlcndpc2UgdGhlIHRleHQgaXMgYXNzdW1lZCB0byBiZSBNYXJrZG93biB0ZXh0IHRoYXQgd2lsbCBiZSBzYW5pdGl6ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG92ZXJUZXh0U2VjdGlvbiB7XG4gIC8qKlxuICAgKiBTb3VyY2UgY29kZSBvciBtYXJrZG93biB0ZXh0IGRlc2NyaWJpbmcgdGhlIHN5bWJvbCBhIHRoZSBob3ZlciBsb2NhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHRleHQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGxhbmd1YWdlIG9mIHRoZSBzb3VyY2UgaWYgYHRleHRgIGlzIGEgc291cmNlIGNvZGUgZnJhZ21lbnQuXG4gICAqL1xuICByZWFkb25seSBsYW5ndWFnZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBIb3ZlciBpbmZvcm1hdGlvbiBmb3IgYSBzeW1ib2wgYXQgdGhlIGhvdmVyIGxvY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvdmVyIHtcbiAgLyoqXG4gICAqIFRoZSBob3ZlciB0ZXh0IHRvIGRpc3BsYXkgZm9yIHRoZSBzeW1ib2wgYXQgdGhlIGhvdmVyIGxvY2F0aW9uLiBJZiB0aGUgdGV4dCBpbmNsdWRlc1xuICAgKiBzb3VyY2UgY29kZSwgdGhlIHNlY3Rpb24gd2lsbCBzcGVjaWZ5IHdoaWNoIGxhbmd1YWdlIGl0IHNob3VsZCBiZSBpbnRlcnByZXRlZCBhcy5cbiAgICovXG4gIHJlYWRvbmx5IHRleHQ6IEhvdmVyVGV4dFNlY3Rpb25bXTtcblxuICAvKipcbiAgICogVGhlIHNwYW4gb2Ygc291cmNlIHRoZSBob3ZlciBjb3ZlcnMuXG4gICAqL1xuICByZWFkb25seSBzcGFuOiBTcGFuO1xufVxuXG4vKipcbiAqIEFuIGluc3RhbmNlIG9mIGFuIEFuZ3VsYXIgbGFuZ3VhZ2Ugc2VydmljZSBjcmVhdGVkIGJ5IGBjcmVhdGVMYW5ndWFnZVNlcnZpY2UoKWAuXG4gKlxuICogVGhlIGxhbmd1YWdlIHNlcnZpY2UgcmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBBbmd1bGFyIHRlbXBsYXRlcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiBhIHByb2plY3RcbiAqIGFzIGRlZmluZWQgYnkgdGhlIGBMYW5ndWFnZVNlcnZpY2VIb3N0YC5cbiAqXG4gKiBXaGVuIGEgbWV0aG9kIGV4cGVjdHMgYSBgZmlsZU5hbWVgIHRoaXMgZmlsZSBjYW4gZWl0aGVyIGJlIHNvdXJjZSBmaWxlIGluIHRoZSBwcm9qZWN0IHRoYXRcbiAqIGNvbnRhaW5zIGEgdGVtcGxhdGUgaW4gYSBzdHJpbmcgbGl0ZXJhbCBvciBhIHRlbXBsYXRlIGZpbGUgcmVmZXJlbmNlZCBieSB0aGUgcHJvamVjdCByZXR1cm5lZFxuICogYnkgYGdldFRlbXBsYXRlUmVmZXJlbmNlKClgLiBBbGwgb3RoZXIgZmlsZXMgd2lsbCBjYXVzZSB0aGUgbWV0aG9kIHRvIHJldHVybiBgdW5kZWZpbmVkYC5cbiAqXG4gKiBJZiBhIG1ldGhvZCB0YWtlcyBhIGBwb3NpdGlvbmAsIGl0IGlzIHRoZSBvZmZzZXQgb2YgdGhlIFVURi0xNiBjb2RlLXBvaW50IHJlbGF0aXZlIHRvIHRoZVxuICogYmVnaW5uaW5nIG9mIHRoZSBmaWxlIHJlZmVyZW5jZSBieSBgZmlsZU5hbWVgLlxuICpcbiAqIFRoaXMgaW50ZXJmYWNlIGFuZCBhbGwgaW50ZXJmYWNlcyBhbmQgdHlwZXMgbWFya2VkIGFzIGBMYW5ndWFnZVNlcnZpY2VgIHR5cGVzLCBkZXNjcmliZSAgYVxuICogcGFydGljdWxhciBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgQW5ndWxhciBsYW5ndWFnZSBzZXJ2aWNlIGFuZCBpcyBub3QgaW50ZW5kZWQgdG8gYmVcbiAqIGltcGxlbWVudGVkLiBBZGRpbmcgbWVtYmVycyB0byB0aGUgaW50ZXJmYWNlIHdpbGwgbm90IGJlIGNvbnNpZGVyZWQgYSBicmVha2luZyBjaGFuZ2UgYXNcbiAqIGRlZmluZWQgYnkgU2VtVmVyLlxuICpcbiAqIFJlbW92aW5nIGEgbWVtYmVyIG9yIG1ha2luZyBhIG1lbWJlciBvcHRpb25hbCwgY2hhbmdpbmcgYSBtZXRob2QgcGFyYW1ldGVycywgb3IgY2hhbmdpbmcgYVxuICogbWVtYmVyJ3MgdHlwZSB3aWxsIGFsbCBiZSBjb25zaWRlcmVkIGEgYnJlYWtpbmcgY2hhbmdlLlxuICpcbiAqIFdoaWxlIGFuIGludGVyZmFjZSBpcyBtYXJrZWQgYXMgZXhwZXJpbWVudGFsIGJyZWFraW5nLWNoYW5nZXMgd2lsbCBiZSBhbGxvd2VkIGJldHdlZW4gbWlub3JcbiAqIHJlbGVhc2VzLiBBZnRlciBhbiBpbnRlcmZhY2UgaXMgbWFya2VkIGFzIHN0YWJsZSBicmVha2luZy1jaGFuZ2VzIHdpbGwgb25seSBiZSBhbGxvd2VkIGJldHdlZW5cbiAqIG1ham9yIHJlbGVhc2VzLiBObyBicmVha2luZyBjaGFuZ2VzIGFyZSBhbGxvd2VkIGJldHdlZW4gcGF0Y2ggcmVsZWFzZXMuXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgaW50ZXJmYWNlIExhbmd1YWdlU2VydmljZSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgbGlzdCBvZiBhbGwgZXJyb3IgZm9yIGFsbCB0ZW1wbGF0ZXMgaW4gdGhlIGdpdmVuIGZpbGUuXG4gICAqL1xuICBnZXREaWFnbm9zdGljcyhmaWxlTmFtZTogc3RyaW5nKTogdHMuRGlhZ25vc3RpY1tdO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIGNvbXBsZXRpb25zIGF0IHRoZSBnaXZlbiBwb3NpdGlvbi5cbiAgICovXG4gIGdldENvbXBsZXRpb25zQXQoZmlsZU5hbWU6IHN0cmluZywgcG9zaXRpb246IG51bWJlcik6IHRzLkNvbXBsZXRpb25JbmZvfHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBkZWZpbml0aW9uIGxvY2F0aW9uIGZvciB0aGUgc3ltYm9sIGF0IHBvc2l0aW9uLlxuICAgKi9cbiAgZ2V0RGVmaW5pdGlvbkF0KGZpbGVOYW1lOiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIpOiB0cy5EZWZpbml0aW9uSW5mb0FuZEJvdW5kU3Bhbnx1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgaG92ZXIgaW5mb3JtYXRpb24gZm9yIHRoZSBzeW1ib2wgYXQgcG9zaXRpb24uXG4gICAqL1xuICBnZXRIb3ZlckF0KGZpbGVOYW1lOiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIpOiB0cy5RdWlja0luZm98dW5kZWZpbmVkO1xufVxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9sYW5ndWFnZS1zZXJ2aWNlL3NyYy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7OztJQUVILDhDQUE0RjtJQWExRix1QkFibUQsdUJBQVksQ0FhbkQ7SUFWZCxpRUFBMEo7SUFHeEosc0JBSE0scUJBQVcsQ0FHTjtJQStOYjs7T0FFRztJQUNILElBQVksYUFJWDtJQUpELFdBQVksYUFBYTtRQUN2Qix3Q0FBdUIsQ0FBQTtRQUN2Qix3Q0FBdUIsQ0FBQTtRQUN2QixnQ0FBZSxDQUFBO0lBQ2pCLENBQUMsRUFKVyxhQUFhLEdBQWIscUJBQWEsS0FBYixxQkFBYSxRQUl4QjtJQUVEOztPQUVHO0lBQ0gsSUFBWSxjQWVYO0lBZkQsV0FBWSxjQUFjO1FBQ3hCLHFEQUFtQyxDQUFBO1FBQ25DLHlDQUF1QixDQUFBO1FBQ3ZCLHlDQUF1QixDQUFBO1FBQ3ZCLHFDQUFtQixDQUFBO1FBQ25CLG1DQUFpQixDQUFBO1FBQ2pCLG1EQUFpQyxDQUFBO1FBQ2pDLCtDQUE2QixDQUFBO1FBQzdCLDZCQUFXLENBQUE7UUFDWCxtQ0FBaUIsQ0FBQTtRQUNqQiwrQkFBYSxDQUFBO1FBQ2IsdUNBQXFCLENBQUE7UUFDckIseUNBQXVCLENBQUE7UUFDdkIsK0JBQWEsQ0FBQTtRQUNiLHVDQUFxQixDQUFBO0lBQ3ZCLENBQUMsRUFmVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQWV6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtDb21waWxlRGlyZWN0aXZlTWV0YWRhdGEsIE5nQW5hbHl6ZWRNb2R1bGVzLCBTdGF0aWNTeW1ib2x9IGZyb20gJ0Bhbmd1bGFyL2NvbXBpbGVyJztcbmltcG9ydCAqIGFzIHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHtBc3RSZXN1bHR9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7QnVpbHRpblR5cGUsIERlY2xhcmF0aW9uS2luZCwgRGVmaW5pdGlvbiwgUGlwZUluZm8sIFBpcGVzLCBTaWduYXR1cmUsIFNwYW4sIFN5bWJvbCwgU3ltYm9sRGVjbGFyYXRpb24sIFN5bWJvbFF1ZXJ5LCBTeW1ib2xUYWJsZX0gZnJvbSAnLi9zeW1ib2xzJztcblxuZXhwb3J0IHtcbiAgQnVpbHRpblR5cGUsXG4gIERlY2xhcmF0aW9uS2luZCxcbiAgRGVmaW5pdGlvbixcbiAgUGlwZUluZm8sXG4gIFBpcGVzLFxuICBTaWduYXR1cmUsXG4gIFNwYW4sXG4gIFN0YXRpY1N5bWJvbCxcbiAgU3ltYm9sLFxuICBTeW1ib2xEZWNsYXJhdGlvbixcbiAgU3ltYm9sUXVlcnksXG4gIFN5bWJvbFRhYmxlXG59O1xuXG5cbi8qKlxuICogVGhlIGluZm9ybWF0aW9uIGBMYW5ndWFnZVNlcnZpY2VgIG5lZWRzIGZyb20gdGhlIGBMYW5ndWFnZVNlcnZpY2VIb3N0YCB0byBkZXNjcmliZSB0aGUgY29udGVudCBvZlxuICogYSB0ZW1wbGF0ZSBhbmQgdGhlIGxhbmd1YWdlIGNvbnRleHQgdGhlIHRlbXBsYXRlIGlzIGluLlxuICpcbiAqIEEgaG9zdCBpbnRlcmZhY2U7IHNlZSBgTGFuZ3VhZ2VTZXJ2aWNlSG9zdGAuXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlU291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBzb3VyY2Ugb2YgdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzcGFuIG9mIHRoZSB0ZW1wbGF0ZSB3aXRoaW4gdGhlIHNvdXJjZSBmaWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3BhbjogU3BhbjtcblxuICAvKipcbiAgICogQSBzdGF0aWMgc3ltYm9sIGZvciB0aGUgdGVtcGxhdGUncyBjb21wb25lbnQuXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBTdGF0aWNTeW1ib2w7XG5cbiAgLyoqXG4gICAqIFRoZSBgU3ltYm9sVGFibGVgIGZvciB0aGUgbWVtYmVycyBvZiB0aGUgY29tcG9uZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgbWVtYmVyczogU3ltYm9sVGFibGU7XG5cbiAgLyoqXG4gICAqIEEgYFN5bWJvbFF1ZXJ5YCBmb3IgdGhlIGNvbnRleHQgb2YgdGhlIHRlbXBsYXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgcXVlcnk6IFN5bWJvbFF1ZXJ5O1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBmaWxlIHRoYXQgY29udGFpbnMgdGhlIHRlbXBsYXRlLiBDb3VsZCBiZSBgLmh0bWxgIG9yIGAudHNgLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZU5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIHNlcXVlbmNlIG9mIHRlbXBsYXRlIHNvdXJjZXMuXG4gKlxuICogQSBob3N0IHR5cGU7IHNlZSBgTGFuZ3VhZ2VTZXJ2aWNlSG9zdGAuXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgdHlwZSBUZW1wbGF0ZVNvdXJjZXMgPSBUZW1wbGF0ZVNvdXJjZVtdIHwgdW5kZWZpbmVkO1xuXG4vKipcbiAqIEVycm9yIGluZm9ybWF0aW9uIGZvdW5kIGdldHRpbmcgZGVjbGFyYXRpb24gaW5mb3JtYXRpb25cbiAqXG4gKiBBIGhvc3QgdHlwZTsgc2VlIGBMYW5ndWFnZVNlcnZpY2VIb3N0YC5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVjbGFyYXRpb25FcnJvciB7XG4gIC8qKlxuICAgKiBUaGUgc3BhbiBvZiB0aGUgZXJyb3IgaW4gdGhlIGRlY2xhcmF0aW9uJ3MgbW9kdWxlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3BhbjogU3BhbjtcblxuICAvKipcbiAgICogVGhlIG1lc3NhZ2UgdG8gZGlzcGxheSBkZXNjcmliaW5nIHRoZSBlcnJvciBvciBhIGNoYWluXG4gICAqIG9mIG1lc3NhZ2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nfERpYWdub3N0aWNNZXNzYWdlQ2hhaW47XG59XG5cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbXBvbmVudCBkZWNsYXJhdGlvbnMuXG4gKlxuICogQSBmaWxlIG1pZ2h0IGNvbnRhaW4gYSBkZWNsYXJhdGlvbiB3aXRob3V0IGEgdGVtcGxhdGUgYmVjYXVzZSB0aGUgZmlsZSBjb250YWlucyBvbmx5XG4gKiB0ZW1wbGF0ZVVybCByZWZlcmVuY2VzLiBIb3dldmVyLCB0aGUgY29tcG9uZW50IGRlY2xhcmF0aW9uIG1pZ2h0IGNvbnRhaW4gZXJyb3JzIHRoYXRcbiAqIG5lZWQgdG8gYmUgcmVwb3J0ZWQgc3VjaCBhcyB0aGUgdGVtcGxhdGUgc3RyaW5nIGlzIG1pc3Npbmcgb3IgdGhlIGNvbXBvbmVudCBpcyBub3RcbiAqIGRlY2xhcmVkIGluIGEgbW9kdWxlLiBUaGVzZSBlcnJvciBzaG91bGQgYmUgcmVwb3J0ZWQgb24gdGhlIGRlY2xhcmF0aW9uLCBub3QgdGhlXG4gKiB0ZW1wbGF0ZS5cbiAqXG4gKiBBIGhvc3QgdHlwZTsgc2VlIGBMYW5ndWFnZVNlcnZpY2VIb3N0YC5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVjbGFyYXRpb24ge1xuICAvKipcbiAgICogVGhlIHN0YXRpYyBzeW1ib2wgb2YgdGhlIGNvbXBwb25lbnQgYmVpbmcgZGVjbGFyZWQuXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBTdGF0aWNTeW1ib2w7XG5cbiAgLyoqXG4gICAqIFRoZSBzcGFuIG9mIHRoZSBkZWNsYXJhdGlvbiBhbm5vdGF0aW9uIHJlZmVyZW5jZSAoZS5nLiB0aGUgJ0NvbXBvbmVudCcgb3IgJ0RpcmVjdGl2ZSdcbiAgICogcmVmZXJlbmNlKS5cbiAgICovXG4gIHJlYWRvbmx5IGRlY2xhcmF0aW9uU3BhbjogU3BhbjtcblxuICAvKipcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBjb21waWxlciBkaXJlY3RpdmUgbWV0YWRhdGEgZm9yIHRoZSBkZWNsYXJhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhOiBDb21waWxlRGlyZWN0aXZlTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEVycm9yIHJlcG9ydGVkIHRyeWluZyB0byBnZXQgdGhlIG1ldGFkYXRhLlxuICAgKi9cbiAgcmVhZG9ubHkgZXJyb3JzOiBEZWNsYXJhdGlvbkVycm9yW107XG59XG5cbi8qKlxuICogQSBzZXF1ZW5jZSBvZiBkZWNsYXJhdGlvbnMuXG4gKlxuICogQSBob3N0IHR5cGU7IHNlZSBgTGFuZ3VhZ2VTZXJ2aWNlSG9zdGAuXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgdHlwZSBEZWNsYXJhdGlvbnMgPSBEZWNsYXJhdGlvbltdO1xuXG4vKipcbiAqIFRoZSBob3N0IGZvciBhIGBMYW5ndWFnZVNlcnZpY2VgLiBUaGlzIHByb3ZpZGVzIGFsbCB0aGUgYExhbmd1YWdlU2VydmljZWAgcmVxdWlyZXMgdG8gcmVzcG9uZFxuICogdG8gdGhlIGBMYW5ndWFnZVNlcnZpY2VgIHJlcXVlc3RzLlxuICpcbiAqIFRoaXMgaW50ZXJmYWNlIGRlc2NyaWJlcyB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoZSBgTGFuZ3VhZ2VTZXJ2aWNlYCBvbiBpdHMgaG9zdC5cbiAqXG4gKiBUaGUgaG9zdCBpbnRlcmZhY2UgaXMgaG9zdCBsYW5ndWFnZSBhZ25vc3RpYy5cbiAqXG4gKiBBZGRpbmcgb3B0aW9uYWwgbWVtYmVyIHRvIHRoaXMgaW50ZXJmYWNlIG9yIGFueSBpbnRlcmZhY2UgdGhhdCBpcyBkZXNjcmliZWQgYXMgYVxuICogYExhbmd1YWdlU2VydmljZUhvc3RgIGludGVyZmFjZSBpcyBub3QgY29uc2lkZXJlZCBhIGJyZWFraW5nIGNoYW5nZSBhcyBkZWZpbmVkIGJ5IFNlbVZlci5cbiAqIFJlbW92aW5nIGEgbWV0aG9kIG9yIGNoYW5naW5nIGEgbWVtYmVyIGZyb20gcmVxdWlyZWQgdG8gb3B0aW9uYWwgd2lsbCBhbHNvIG5vdCBiZSBjb25zaWRlcmVkIGFcbiAqIGJyZWFraW5nIGNoYW5nZS5cbiAqXG4gKiBJZiBhIG1lbWJlciBpcyBkZXByZWNhdGVkIGl0IHdpbGwgYmUgY2hhbmdlZCB0byBvcHRpb25hbCBpbiBhIG1pbm9yIHJlbGVhc2UgYmVmb3JlIGl0IGlzXG4gKiByZW1vdmVkIGluIGEgbWFqb3IgcmVsZWFzZS5cbiAqXG4gKiBBZGRpbmcgYSByZXF1aXJlZCBtZW1iZXIgb3IgY2hhbmdpbmcgYSBtZXRob2QncyBwYXJhbWV0ZXJzLCBpcyBjb25zaWRlcmVkIGEgYnJlYWtpbmcgY2hhbmdlIGFuZFxuICogd2lsbCBvbmx5IGJlIGRvbmUgd2hlbiBicmVha2luZyBjaGFuZ2VzIGFyZSBhbGxvd2VkLiBXaGVuIHBvc3NpYmxlLCBhIG5ldyBvcHRpb25hbCBtZW1iZXIgd2lsbFxuICogYmUgYWRkZWQgYW5kIHRoZSBvbGQgbWVtYmVyIHdpbGwgYmUgZGVwcmVjYXRlZC4gVGhlIG5ldyBtZW1iZXIgd2lsbCB0aGVuIGJlIG1hZGUgcmVxdWlyZWQgaW5cbiAqIGFuZCB0aGUgb2xkIG1lbWJlciB3aWxsIGJlIHJlbW92ZWQgb25seSB3aGVuIGJyZWFraW5nIGNoYW5nZXMgYXJlIGFsbG93ZWQuXG4gKlxuICogV2hpbGUgYW4gaW50ZXJmYWNlIGlzIG1hcmtlZCBhcyBleHBlcmltZW50YWwgYnJlYWtpbmctY2hhbmdlcyB3aWxsIGJlIGFsbG93ZWQgYmV0d2VlbiBtaW5vclxuICogcmVsZWFzZXMuIEFmdGVyIGFuIGludGVyZmFjZSBpcyBtYXJrZWQgYXMgc3RhYmxlIGJyZWFraW5nLWNoYW5nZXMgd2lsbCBvbmx5IGJlIGFsbG93ZWQgYmV0d2VlblxuICogbWFqb3IgcmVsZWFzZXMuIE5vIGJyZWFraW5nIGNoYW5nZXMgYXJlIGFsbG93ZWQgYmV0d2VlbiBwYXRjaCByZWxlYXNlcy5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFuZ3VhZ2VTZXJ2aWNlSG9zdCB7XG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIHRlbXBsYXRlIHNvdXJjZSBpbmZvcm1hdGlvbiBmb3IgYWxsIHRlbXBsYXRlcyBpbiBgZmlsZU5hbWVgIG9yIGZvciBgZmlsZU5hbWVgIGlmXG4gICAqIGl0IGlzIGEgdGVtcGxhdGUgZmlsZS5cbiAgICovXG4gIGdldFRlbXBsYXRlcyhmaWxlTmFtZTogc3RyaW5nKTogVGVtcGxhdGVTb3VyY2VbXTtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgQW5ndWxhciBkZWNsYXJhdGlvbnMgaW4gdGhlIGdpdmVuIGZpbGUuXG4gICAqL1xuICBnZXREZWNsYXJhdGlvbnMoZmlsZU5hbWU6IHN0cmluZyk6IERlY2xhcmF0aW9ucztcblxuICAvKipcbiAgICogUmV0dXJuIGEgc3VtbWFyeSBvZiBhbGwgQW5ndWxhciBtb2R1bGVzIGluIHRoZSBwcm9qZWN0LlxuICAgKi9cbiAgZ2V0QW5hbHl6ZWRNb2R1bGVzKCk6IE5nQW5hbHl6ZWRNb2R1bGVzO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gdGhlIEFTVCBmb3IgYm90aCBIVE1MIGFuZCB0ZW1wbGF0ZSBmb3IgdGhlIGNvbnRleHRGaWxlLlxuICAgKi9cbiAgZ2V0VGVtcGxhdGVBc3QodGVtcGxhdGU6IFRlbXBsYXRlU291cmNlKTogQXN0UmVzdWx0fHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogUmV0dXJuIHRoZSB0ZW1wbGF0ZSBBU1QgZm9yIHRoZSBub2RlIHRoYXQgY29ycmVzcG9uZHMgdG8gdGhlIHBvc2l0aW9uLlxuICAgKi9cbiAgZ2V0VGVtcGxhdGVBc3RBdFBvc2l0aW9uKGZpbGVOYW1lOiBzdHJpbmcsIHBvc2l0aW9uOiBudW1iZXIpOiBBc3RSZXN1bHR8dW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIEFuIGl0ZW0gb2YgdGhlIGNvbXBsZXRpb24gcmVzdWx0IHRvIGJlIGRpc3BsYXllZCBieSBhbiBlZGl0b3IuXG4gKlxuICogQSBgTGFuZ3VhZ2VTZXJ2aWNlYCBpbnRlcmZhY2UuXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBsZXRpb24ge1xuICAvKipcbiAgICogVGhlIGtpbmQgb2YgY29tcGxldGlvbi5cbiAgICovXG4gIGtpbmQ6IERlY2xhcmF0aW9uS2luZDtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNvbXBsZXRpb24gdG8gYmUgZGlzcGxheWVkXG4gICAqL1xuICBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBrZXkgdG8gdXNlIHRvIHNvcnQgdGhlIGNvbXBsZXRpb25zIGZvciBkaXNwbGF5LlxuICAgKi9cbiAgc29ydDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgc2VxdWVuY2Ugb2YgY29tcGxldGlvbnMuXG4gKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IHR5cGUgQ29tcGxldGlvbnMgPSBDb21wbGV0aW9uW107XG5cbi8qKlxuICogQSBmaWxlIGFuZCBzcGFuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvY2F0aW9uIHtcbiAgZmlsZU5hbWU6IHN0cmluZztcbiAgc3BhbjogU3Bhbjtcbn1cblxuLyoqXG4gKiBUaGUgdHlwZSBvZiBBbmd1bGFyIGRpcmVjdGl2ZS4gVXNlZCBmb3IgUXVpY2tJbmZvIGluIHRlbXBsYXRlLlxuICovXG5leHBvcnQgZW51bSBEaXJlY3RpdmVLaW5kIHtcbiAgQ09NUE9ORU5UID0gJ2NvbXBvbmVudCcsXG4gIERJUkVDVElWRSA9ICdkaXJlY3RpdmUnLFxuICBFVkVOVCA9ICdldmVudCcsXG59XG5cbi8qKlxuICogU2NyaXB0RWxlbWVudEtpbmQgZm9yIGNvbXBsZXRpb24uXG4gKi9cbmV4cG9ydCBlbnVtIENvbXBsZXRpb25LaW5kIHtcbiAgQU5HVUxBUl9FTEVNRU5UID0gJ2FuZ3VsYXIgZWxlbWVudCcsXG4gIEFUVFJJQlVURSA9ICdhdHRyaWJ1dGUnLFxuICBDT01QT05FTlQgPSAnY29tcG9uZW50JyxcbiAgRUxFTUVOVCA9ICdlbGVtZW50JyxcbiAgRU5USVRZID0gJ2VudGl0eScsXG4gIEhUTUxfQVRUUklCVVRFID0gJ2h0bWwgYXR0cmlidXRlJyxcbiAgSFRNTF9FTEVNRU5UID0gJ2h0bWwgZWxlbWVudCcsXG4gIEtFWSA9ICdrZXknLFxuICBNRVRIT0QgPSAnbWV0aG9kJyxcbiAgUElQRSA9ICdwaXBlJyxcbiAgUFJPUEVSVFkgPSAncHJvcGVydHknLFxuICBSRUZFUkVOQ0UgPSAncmVmZXJlbmNlJyxcbiAgVFlQRSA9ICd0eXBlJyxcbiAgVkFSSUFCTEUgPSAndmFyaWFibGUnLFxufVxuXG5leHBvcnQgdHlwZSBDb21wbGV0aW9uRW50cnkgPSBPbWl0PHRzLkNvbXBsZXRpb25FbnRyeSwgJ2tpbmQnPiYge1xuICBraW5kOiBDb21wbGV0aW9uS2luZCxcbn07XG5cbi8qKlxuICogQSB0ZW1wbGF0ZSBkaWFnbm9zdGljcyBtZXNzYWdlIGNoYWluLiBUaGlzIGlzIHNpbWlsYXIgdG8gdGhlIFR5cGVTY3JpcHRcbiAqIERpYWdub3N0aWNNZXNzYWdlQ2hhaW4uIFRoZSBtZXNzYWdlcyBhcmUgaW50ZW5kZWQgdG8gYmUgZm9ybWF0dGVkIGFzIHNlcGFyYXRlXG4gKiBzZW50ZW5jZSBmcmFnbWVudHMgYW5kIGluZGVudGVkLlxuICpcbiAqIEZvciBjb21wYXRpYmlsaXR5IHByZXZpb3VzIGltcGxlbWVudGF0aW9uLCB0aGUgdmFsdWVzIGFyZSBleHBlY3RlZCB0byBvdmVycmlkZVxuICogdG9TdHJpbmcoKSB0byByZXR1cm4gYSBmb3JtYXR0ZWQgbWVzc2FnZS5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlhZ25vc3RpY01lc3NhZ2VDaGFpbiB7XG4gIC8qKlxuICAgKiBUaGUgdGV4dCBvZiB0aGUgZGlhZ25vc3RpYyBtZXNzYWdlIHRvIGRpc3BsYXkuXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuZXh0IG1lc3NhZ2UgaW4gdGhlIGNoYWluLlxuICAgKi9cbiAgbmV4dD86IERpYWdub3N0aWNNZXNzYWdlQ2hhaW5bXTtcbn1cblxuLyoqXG4gKiBBbiB0ZW1wbGF0ZSBkaWFnbm9zdGljIG1lc3NhZ2UgdG8gZGlzcGxheS5cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlhZ25vc3RpYyB7XG4gIC8qKlxuICAgKiBUaGUga2luZCBvZiBkaWFnbm9zdGljIG1lc3NhZ2VcbiAgICovXG4gIGtpbmQ6IHRzLkRpYWdub3N0aWNDYXRlZ29yeTtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBzcGFuIHRoYXQgc2hvdWxkIGJlIGhpZ2hsaWdodGVkLlxuICAgKi9cbiAgc3BhbjogU3BhbjtcblxuICAvKipcbiAgICogVGhlIHRleHQgb2YgdGhlIGRpYWdub3N0aWMgbWVzc2FnZSB0byBkaXNwbGF5IG9yIGEgY2hhaW4gb2YgbWVzc2FnZXMuXG4gICAqL1xuICBtZXNzYWdlOiBzdHJpbmd8RGlhZ25vc3RpY01lc3NhZ2VDaGFpbjtcbn1cblxuLyoqXG4gKiBBIHNlcXVlbmNlIG9mIGRpYWdub3N0aWMgbWVzc2FnZS5cbiAqXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgdHlwZSBEaWFnbm9zdGljcyA9IERpYWdub3N0aWNbXTtcblxuLyoqXG4gKiBBIHNlY3Rpb24gb2YgaG92ZXIgdGV4dC4gSWYgdGhlIHRleHQgaXMgY29kZSB0aGVuIGxhbmd1YWdlIHNob3VsZCBiZSBwcm92aWRlZC5cbiAqIE90aGVyd2lzZSB0aGUgdGV4dCBpcyBhc3N1bWVkIHRvIGJlIE1hcmtkb3duIHRleHQgdGhhdCB3aWxsIGJlIHNhbml0aXplZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3ZlclRleHRTZWN0aW9uIHtcbiAgLyoqXG4gICAqIFNvdXJjZSBjb2RlIG9yIG1hcmtkb3duIHRleHQgZGVzY3JpYmluZyB0aGUgc3ltYm9sIGEgdGhlIGhvdmVyIGxvY2F0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdGV4dDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGFuZ3VhZ2Ugb2YgdGhlIHNvdXJjZSBpZiBgdGV4dGAgaXMgYSBzb3VyY2UgY29kZSBmcmFnbWVudC5cbiAgICovXG4gIHJlYWRvbmx5IGxhbmd1YWdlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEhvdmVyIGluZm9ybWF0aW9uIGZvciBhIHN5bWJvbCBhdCB0aGUgaG92ZXIgbG9jYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG92ZXIge1xuICAvKipcbiAgICogVGhlIGhvdmVyIHRleHQgdG8gZGlzcGxheSBmb3IgdGhlIHN5bWJvbCBhdCB0aGUgaG92ZXIgbG9jYXRpb24uIElmIHRoZSB0ZXh0IGluY2x1ZGVzXG4gICAqIHNvdXJjZSBjb2RlLCB0aGUgc2VjdGlvbiB3aWxsIHNwZWNpZnkgd2hpY2ggbGFuZ3VhZ2UgaXQgc2hvdWxkIGJlIGludGVycHJldGVkIGFzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGV4dDogSG92ZXJUZXh0U2VjdGlvbltdO1xuXG4gIC8qKlxuICAgKiBUaGUgc3BhbiBvZiBzb3VyY2UgdGhlIGhvdmVyIGNvdmVycy5cbiAgICovXG4gIHJlYWRvbmx5IHNwYW46IFNwYW47XG59XG5cbi8qKlxuICogQW4gaW5zdGFuY2Ugb2YgYW4gQW5ndWxhciBsYW5ndWFnZSBzZXJ2aWNlIGNyZWF0ZWQgYnkgYGNyZWF0ZUxhbmd1YWdlU2VydmljZSgpYC5cbiAqXG4gKiBUaGUgQW5ndWxhciBsYW5ndWFnZSBzZXJ2aWNlIGltcGxlbWVudHMgYSBzdWJzZXQgb2YgbWV0aG9kcyBkZWZpbmVkIGluXG4gKiBUaGUgQW5ndWxhciBsYW5ndWFnZSBzZXJ2aWNlIGltcGxlbWVudHMgYSBzdWJzZXQgb2YgbWV0aG9kcyBkZWZpbmVkIGJ5XG4gKiB0aGUgVHlwZVNjcmlwdCBsYW5ndWFnZSBzZXJ2aWNlLlxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IHR5cGUgTGFuZ3VhZ2VTZXJ2aWNlID0gUGljazxcbiAgICB0cy5MYW5ndWFnZVNlcnZpY2UsICdnZXRDb21wbGV0aW9uc0F0UG9zaXRpb24nfCdnZXREZWZpbml0aW9uQW5kQm91bmRTcGFuJ3xcbiAgICAnZ2V0UXVpY2tJbmZvQXRQb3NpdGlvbid8J2dldFNlbWFudGljRGlhZ25vc3RpY3MnPjtcbiJdfQ==
@@ -6,7 +6,7 @@
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
8
  /// <amd-module name="@angular/language-service/src/typescript_host" />
9
- import { HtmlParser, NgAnalyzedModules, ParseTreeResult, ResourceLoader, StaticSymbol } from '@angular/compiler';
9
+ import { HtmlParser, NgAnalyzedModules, ParseTreeResult, ResourceLoader } from '@angular/compiler';
10
10
  import * as tss from 'typescript/lib/tsserverlibrary';
11
11
  import { AstResult } from './common';
12
12
  import { Declaration, LanguageService, LanguageServiceHost, TemplateSource } from './types';
@@ -54,24 +54,20 @@ export declare class TypeScriptServiceHost implements LanguageServiceHost {
54
54
  /**
55
55
  * Return the singleton instance of the MetadataResolver.
56
56
  */
57
- private readonly resolver;
57
+ private get resolver();
58
58
  /**
59
59
  * Return the singleton instance of the StaticReflector hosted in the
60
60
  * MetadataResolver.
61
61
  */
62
- private readonly reflector;
62
+ private get reflector();
63
63
  /**
64
64
  * Checks whether the program has changed and returns all analyzed modules.
65
65
  * If program has changed, invalidate all caches and update fileToComponent
66
66
  * and templateReferences.
67
67
  * In addition to returning information about NgModules, this method plays the
68
68
  * same role as 'synchronizeHostData' in tsserver.
69
- * @param ensureSynchronized whether or not the Language Service should make sure analyzedModules
70
- * are synced to the last update of the project. If false, returns the set of analyzedModules
71
- * that is already cached. This is useful if the project must not be reanalyzed, even if its
72
- * file watchers (which are disjoint from the TypeScriptServiceHost) detect an update.
73
69
  */
74
- getAnalyzedModules(ensureSynchronized?: boolean): NgAnalyzedModules;
70
+ getAnalyzedModules(): NgAnalyzedModules;
75
71
  /**
76
72
  * Checks whether the program has changed, and invalidate static symbols in
77
73
  * the source files that have changed.
@@ -93,7 +89,7 @@ export declare class TypeScriptServiceHost implements LanguageServiceHost {
93
89
  */
94
90
  getDeclarations(fileName: string): Declaration[];
95
91
  getSourceFile(fileName: string): tss.SourceFile | undefined;
96
- readonly program: tss.Program;
92
+ get program(): tss.Program;
97
93
  /**
98
94
  * Return the TemplateSource if `node` is a template node.
99
95
  *
@@ -121,11 +117,6 @@ export declare class TypeScriptServiceHost implements LanguageServiceHost {
121
117
  * @param position Position of the template in the TS file, otherwise ignored.
122
118
  */
123
119
  getTemplateAstAtPosition(fileName: string, position: number): AstResult | undefined;
124
- /**
125
- * Gets a StaticSymbol from a file and symbol name.
126
- * @return Angular StaticSymbol matching the file and name, if any
127
- */
128
- getStaticSymbol(file: string, name: string): StaticSymbol | undefined;
129
120
  /**
130
121
  * Find the NgModule which the directive associated with the `classSymbol`
131
122
  * belongs to, then return its schema and transitive directives and pipes.