@skyux/lookup 6.3.3 → 6.4.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.
@@ -1,3 +1,5 @@
1
+ var _SkyAutocompleteAdapterService_coreAdapterService, _SkyAutocompleteAdapterService_renderer;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { Injectable, RendererFactory2, } from '@angular/core';
2
4
  import { SkyCoreAdapterService } from '@skyux/core';
3
5
  import * as i0 from "@angular/core";
@@ -7,9 +9,10 @@ import * as i1 from "@skyux/core";
7
9
  */
8
10
  export class SkyAutocompleteAdapterService {
9
11
  constructor(coreAdapterService, rendererFactory) {
10
- this.coreAdapterService = coreAdapterService;
11
- this.rendererFactory = rendererFactory;
12
- this.renderer = this.rendererFactory.createRenderer(undefined, undefined);
12
+ _SkyAutocompleteAdapterService_coreAdapterService.set(this, void 0);
13
+ _SkyAutocompleteAdapterService_renderer.set(this, void 0);
14
+ __classPrivateFieldSet(this, _SkyAutocompleteAdapterService_coreAdapterService, coreAdapterService, "f");
15
+ __classPrivateFieldSet(this, _SkyAutocompleteAdapterService_renderer, rendererFactory.createRenderer(undefined, null), "f");
13
16
  }
14
17
  /**
15
18
  * Adds the className for the provided element.
@@ -18,11 +21,11 @@ export class SkyAutocompleteAdapterService {
18
21
  /* Sanity check */
19
22
  /* istanbul ignore else */
20
23
  if (element) {
21
- this.renderer.addClass(element, className);
24
+ __classPrivateFieldGet(this, _SkyAutocompleteAdapterService_renderer, "f").addClass(element, className);
22
25
  }
23
26
  }
24
27
  getOverlayFocusableElements(overlay) {
25
- return this.coreAdapterService.getFocusableChildren(
28
+ return __classPrivateFieldGet(this, _SkyAutocompleteAdapterService_coreAdapterService, "f").getFocusableChildren(
26
29
  /* Sanity check - calling function also has null check */
27
30
  /* istanbul ignore next */
28
31
  overlay?.componentRef.location.nativeElement, { ignoreTabIndex: true });
@@ -34,7 +37,7 @@ export class SkyAutocompleteAdapterService {
34
37
  /* Sanity check */
35
38
  /* istanbul ignore else */
36
39
  if (element) {
37
- this.renderer.removeClass(element, className);
40
+ __classPrivateFieldGet(this, _SkyAutocompleteAdapterService_renderer, "f").removeClass(element, className);
38
41
  }
39
42
  }
40
43
  setDropdownWidth(elementRef, dropdownRef, isInputBox) {
@@ -43,7 +46,7 @@ export class SkyAutocompleteAdapterService {
43
46
  : elementRef.nativeElement;
44
47
  if (parentElement) {
45
48
  const width = parentElement.getBoundingClientRect().width;
46
- this.renderer.setStyle(dropdownRef.nativeElement, 'width', `${width}px`);
49
+ __classPrivateFieldGet(this, _SkyAutocompleteAdapterService_renderer, "f").setStyle(dropdownRef.nativeElement, 'width', `${width}px`);
47
50
  }
48
51
  }
49
52
  /**
@@ -53,9 +56,10 @@ export class SkyAutocompleteAdapterService {
53
56
  element.tabIndex = tabIndex;
54
57
  }
55
58
  }
59
+ _SkyAutocompleteAdapterService_coreAdapterService = new WeakMap(), _SkyAutocompleteAdapterService_renderer = new WeakMap();
56
60
  SkyAutocompleteAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutocompleteAdapterService, deps: [{ token: i1.SkyCoreAdapterService }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable });
57
61
  SkyAutocompleteAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutocompleteAdapterService });
58
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutocompleteAdapterService, decorators: [{
59
63
  type: Injectable
60
64
  }], ctorParameters: function () { return [{ type: i1.SkyCoreAdapterService }, { type: i0.RendererFactory2 }]; } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sb29rdXAvc3JjL2xpYi9tb2R1bGVzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxVQUFVLEVBRVYsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBc0IsTUFBTSxhQUFhLENBQUM7OztBQUV4RTs7R0FFRztBQUVILE1BQU0sT0FBTyw2QkFBNkI7SUFHeEMsWUFDVSxrQkFBeUMsRUFDekMsZUFBaUM7UUFEakMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUF1QjtRQUN6QyxvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFFekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLE9BQW9CLEVBQUUsU0FBaUI7UUFDeEQsa0JBQWtCO1FBQ2xCLDBCQUEwQjtRQUMxQixJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUM1QztJQUNILENBQUM7SUFFTSwyQkFBMkIsQ0FDaEMsT0FBMkI7UUFFM0IsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CO1FBQ2pELHlEQUF5RDtRQUN6RCwwQkFBMEI7UUFDMUIsT0FBTyxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUM1QyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWMsQ0FBQyxPQUFvQixFQUFFLFNBQWlCO1FBQzNELGtCQUFrQjtRQUNsQiwwQkFBMEI7UUFDMUIsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQ3JCLFVBQXNCLEVBQ3RCLFdBQXVCLEVBQ3ZCLFVBQW1CO1FBRW5CLE1BQU0sYUFBYSxHQUFHLFVBQVU7WUFDOUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1lBQ3BELENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQzdCLElBQUksYUFBYSxFQUFFO1lBQ2pCLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUMxRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUM7U0FDMUU7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXLENBQUMsT0FBb0IsRUFBRSxRQUFnQjtRQUN2RCxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM5QixDQUFDOzswSEE5RFUsNkJBQTZCOzhIQUE3Qiw2QkFBNkI7MkZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdGFibGUsXG4gIFJlbmRlcmVyMixcbiAgUmVuZGVyZXJGYWN0b3J5Mixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lDb3JlQWRhcHRlclNlcnZpY2UsIFNreU92ZXJsYXlJbnN0YW5jZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUF1dG9jb21wbGV0ZUFkYXB0ZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY29yZUFkYXB0ZXJTZXJ2aWNlOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTJcbiAgKSB7XG4gICAgdGhpcy5yZW5kZXJlciA9IHRoaXMucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoZSBjbGFzc05hbWUgZm9yIHRoZSBwcm92aWRlZCBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGFkZENTU0NsYXNzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIC8qIFNhbml0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0T3ZlcmxheUZvY3VzYWJsZUVsZW1lbnRzKFxuICAgIG92ZXJsYXk6IFNreU92ZXJsYXlJbnN0YW5jZVxuICApOiBIVE1MRWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5jb3JlQWRhcHRlclNlcnZpY2UuZ2V0Rm9jdXNhYmxlQ2hpbGRyZW4oXG4gICAgICAvKiBTYW5pdHkgY2hlY2sgLSBjYWxsaW5nIGZ1bmN0aW9uIGFsc28gaGFzIG51bGwgY2hlY2sgKi9cbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBvdmVybGF5Py5jb21wb25lbnRSZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudCxcbiAgICAgIHsgaWdub3JlVGFiSW5kZXg6IHRydWUgfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyB0aGUgY2xhc3NOYW1lIGZvciB0aGUgcHJvdmlkZWQgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyByZW1vdmVDU1NDbGFzcyhlbGVtZW50OiBIVE1MRWxlbWVudCwgY2xhc3NOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvKiBTYW5pdHkgY2hlY2sgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldERyb3Bkb3duV2lkdGgoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBkcm9wZG93blJlZjogRWxlbWVudFJlZixcbiAgICBpc0lucHV0Qm94OiBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBpc0lucHV0Qm94XG4gICAgICA/IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbG9zZXN0KCcuc2t5LWlucHV0LWJveCcpXG4gICAgICA6IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBpZiAocGFyZW50RWxlbWVudCkge1xuICAgICAgY29uc3Qgd2lkdGggPSBwYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcm9wZG93blJlZi5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCBgJHt3aWR0aH1weGApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBgdGFiSW5kZXhgIG9mIHRoZSBgZWxlbWVudGAgdG8gdGhlIHByb3ZpZGVkIGB0YWJJbmRleGAuXG4gICAqL1xuICBwdWJsaWMgc2V0VGFiSW5kZXgoZWxlbWVudDogSFRNTEVsZW1lbnQsIHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBlbGVtZW50LnRhYkluZGV4ID0gdGFiSW5kZXg7XG4gIH1cbn1cbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sb29rdXAvc3JjL2xpYi9tb2R1bGVzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUVMLFVBQVUsRUFFVixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFzQixNQUFNLGFBQWEsQ0FBQzs7O0FBRXhFOztHQUVHO0FBRUgsTUFBTSxPQUFPLDZCQUE2QjtJQUt4QyxZQUNFLGtCQUF5QyxFQUN6QyxlQUFpQztRQU5uQyxvRUFBMkM7UUFFM0MsMERBQXFCO1FBTW5CLHVCQUFBLElBQUkscURBQXVCLGtCQUFrQixNQUFBLENBQUM7UUFDOUMsdUJBQUEsSUFBSSwyQ0FBYSxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBQSxDQUFDO0lBQ25FLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxPQUFvQixFQUFFLFNBQWlCO1FBQ3hELGtCQUFrQjtRQUNsQiwwQkFBMEI7UUFDMUIsSUFBSSxPQUFPLEVBQUU7WUFDWCx1QkFBQSxJQUFJLCtDQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUM7SUFFTSwyQkFBMkIsQ0FDaEMsT0FBMkI7UUFFM0IsT0FBTyx1QkFBQSxJQUFJLHlEQUFvQixDQUFDLG9CQUFvQjtRQUNsRCx5REFBeUQ7UUFDekQsMEJBQTBCO1FBQzFCLE9BQU8sRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFDNUMsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQ3pCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSSxjQUFjLENBQUMsT0FBb0IsRUFBRSxTQUFpQjtRQUMzRCxrQkFBa0I7UUFDbEIsMEJBQTBCO1FBQzFCLElBQUksT0FBTyxFQUFFO1lBQ1gsdUJBQUEsSUFBSSwrQ0FBVSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDaEQ7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQ3JCLFVBQXNCLEVBQ3RCLFdBQXVCLEVBQ3ZCLFVBQW1CO1FBRW5CLE1BQU0sYUFBYSxHQUFHLFVBQVU7WUFDOUIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1lBQ3BELENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQzdCLElBQUksYUFBYSxFQUFFO1lBQ2pCLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUMxRCx1QkFBQSxJQUFJLCtDQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQztTQUMzRTtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxPQUFvQixFQUFFLFFBQWdCO1FBQ3ZELE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzlCLENBQUM7OzswSEFqRVUsNkJBQTZCOzhIQUE3Qiw2QkFBNkI7MkZBQTdCLDZCQUE2QjtrQkFEekMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdGFibGUsXG4gIFJlbmRlcmVyMixcbiAgUmVuZGVyZXJGYWN0b3J5Mixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lDb3JlQWRhcHRlclNlcnZpY2UsIFNreU92ZXJsYXlJbnN0YW5jZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreUF1dG9jb21wbGV0ZUFkYXB0ZXJTZXJ2aWNlIHtcbiAgI2NvcmVBZGFwdGVyU2VydmljZTogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlO1xuXG4gICNyZW5kZXJlcjogUmVuZGVyZXIyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvcmVBZGFwdGVyU2VydmljZTogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlLFxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MlxuICApIHtcbiAgICB0aGlzLiNjb3JlQWRhcHRlclNlcnZpY2UgPSBjb3JlQWRhcHRlclNlcnZpY2U7XG4gICAgdGhpcy4jcmVuZGVyZXIgPSByZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIodW5kZWZpbmVkLCBudWxsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIHRoZSBjbGFzc05hbWUgZm9yIHRoZSBwcm92aWRlZCBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGFkZENTU0NsYXNzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIC8qIFNhbml0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLmFkZENsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldE92ZXJsYXlGb2N1c2FibGVFbGVtZW50cyhcbiAgICBvdmVybGF5OiBTa3lPdmVybGF5SW5zdGFuY2VcbiAgKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuI2NvcmVBZGFwdGVyU2VydmljZS5nZXRGb2N1c2FibGVDaGlsZHJlbihcbiAgICAgIC8qIFNhbml0eSBjaGVjayAtIGNhbGxpbmcgZnVuY3Rpb24gYWxzbyBoYXMgbnVsbCBjaGVjayAqL1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIG92ZXJsYXk/LmNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LFxuICAgICAgeyBpZ25vcmVUYWJJbmRleDogdHJ1ZSB9XG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIHRoZSBjbGFzc05hbWUgZm9yIHRoZSBwcm92aWRlZCBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIHJlbW92ZUNTU0NsYXNzKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIC8qIFNhbml0eSBjaGVjayAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldERyb3Bkb3duV2lkdGgoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBkcm9wZG93blJlZjogRWxlbWVudFJlZixcbiAgICBpc0lucHV0Qm94OiBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmVudEVsZW1lbnQgPSBpc0lucHV0Qm94XG4gICAgICA/IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbG9zZXN0KCcuc2t5LWlucHV0LWJveCcpXG4gICAgICA6IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICBpZiAocGFyZW50RWxlbWVudCkge1xuICAgICAgY29uc3Qgd2lkdGggPSBwYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgdGhpcy4jcmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd25SZWYubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7d2lkdGh9cHhgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgYHRhYkluZGV4YCBvZiB0aGUgYGVsZW1lbnRgIHRvIHRoZSBwcm92aWRlZCBgdGFiSW5kZXhgLlxuICAgKi9cbiAgcHVibGljIHNldFRhYkluZGV4KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB0YWJJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZWxlbWVudC50YWJJbmRleCA9IHRhYkluZGV4O1xuICB9XG59XG4iXX0=
@@ -36,4 +36,4 @@ export function skyAutocompleteDefaultSearchFunction(options) {
36
36
  };
37
37
  return search;
38
38
  }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWRlZmF1bHQtc2VhcmNoLWZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvb2t1cC9zcmMvbGliL21vZHVsZXMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1kZWZhdWx0LXNlYXJjaC1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQU94RSxNQUFNLFVBQVUsb0NBQW9DLENBQ2xELE9BQW9EO0lBRXBELE1BQU0sVUFBVSxHQUFHLFVBQVUsVUFBa0IsRUFBRSxJQUFXO1FBQzFELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7Z0JBQzNELE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCx1RUFBdUU7WUFDdkUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQzdDLENBQUMsTUFBMkMsRUFBRSxFQUFFO2dCQUM5QyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVDLENBQUMsQ0FDRixDQUFDO1lBRUYsT0FBTyxZQUFZLEtBQUssU0FBUyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsTUFBTSxNQUFNLEdBQUcsVUFDYixVQUFrQixFQUNsQixJQUFXO1FBRVgsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBRW5CLDZFQUE2RTtRQUM3RSx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBRUQsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUzRSxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWxELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkQsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9CLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUU7Z0JBQ25FLElBQUksS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoRCxLQUFLLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN0QjtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZURpYWNyaXRpY3MgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWxvb2t1cC1zdHJpbmctdXRpbHMnO1xuXG5pbXBvcnQgeyBTa3lBdXRvY29tcGxldGVEZWZhdWx0U2VhcmNoRnVuY3Rpb25PcHRpb25zIH0gZnJvbSAnLi90eXBlcy9hdXRvY29tcGxldGUtZGVmYXVsdC1zZWFyY2gtZnVuY3Rpb24tb3B0aW9ucyc7XG5pbXBvcnQgeyBTa3lBdXRvY29tcGxldGVTZWFyY2hGdW5jdGlvbiB9IGZyb20gJy4vdHlwZXMvYXV0b2NvbXBsZXRlLXNlYXJjaC1mdW5jdGlvbic7XG5pbXBvcnQgeyBTa3lBdXRvY29tcGxldGVTZWFyY2hGdW5jdGlvbkZpbHRlciB9IGZyb20gJy4vdHlwZXMvYXV0b2NvbXBsZXRlLXNlYXJjaC1mdW5jdGlvbi1maWx0ZXInO1xuaW1wb3J0IHsgU2t5QXV0b2NvbXBsZXRlU2VhcmNoRnVuY3Rpb25SZXNwb25zZSB9IGZyb20gJy4vdHlwZXMvYXV0b2NvbXBsZXRlLXNlYXJjaC1mdW5jdGlvbi1yZXNwb25zZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBza3lBdXRvY29tcGxldGVEZWZhdWx0U2VhcmNoRnVuY3Rpb24oXG4gIG9wdGlvbnM6IFNreUF1dG9jb21wbGV0ZURlZmF1bHRTZWFyY2hGdW5jdGlvbk9wdGlvbnNcbik6IFNreUF1dG9jb21wbGV0ZVNlYXJjaEZ1bmN0aW9uIHtcbiAgY29uc3QgZmlsdGVyRGF0YSA9IGZ1bmN0aW9uIChzZWFyY2hUZXh0OiBzdHJpbmcsIGRhdGE6IGFueVtdKTogYW55W10ge1xuICAgIHJldHVybiBkYXRhLmZpbHRlcigoaXRlbTogYW55KSA9PiB7XG4gICAgICBpZiAoIW9wdGlvbnMuc2VhcmNoRmlsdGVycyB8fCAhb3B0aW9ucy5zZWFyY2hGaWx0ZXJzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gRmluZCB0aGUgZmlyc3QgZmFpbGluZyBmaWx0ZXIgKHdlIGNhbiBza2lwIHRoZSBvdGhlcnMgaWYgb25lIGZhaWxzKS5cbiAgICAgIGNvbnN0IGZhaWxlZEZpbHRlciA9IG9wdGlvbnMuc2VhcmNoRmlsdGVycy5maW5kKFxuICAgICAgICAoZmlsdGVyOiBTa3lBdXRvY29tcGxldGVTZWFyY2hGdW5jdGlvbkZpbHRlcikgPT4ge1xuICAgICAgICAgIHJldHVybiAhZmlsdGVyLmNhbGwoe30sIHNlYXJjaFRleHQsIGl0ZW0pO1xuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICByZXR1cm4gZmFpbGVkRmlsdGVyID09PSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3Qgc2VhcmNoID0gZnVuY3Rpb24gKFxuICAgIHNlYXJjaFRleHQ6IHN0cmluZyxcbiAgICBkYXRhOiBhbnlbXVxuICApOiBTa3lBdXRvY29tcGxldGVTZWFyY2hGdW5jdGlvblJlc3BvbnNlIHtcbiAgICBjb25zdCByZXN1bHRzID0gW107XG5cbiAgICAvKiBTYW5pdHkgY2hlY2sgLSBhdXRvY29tcGxldGUgd2lsbCBub3QgY2FsbCBzZWFyY2ggd2l0aCBlbXB0eSBzZWFyY2ggdGV4dCAqL1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghc2VhcmNoVGV4dCkge1xuICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VhcmNoVGV4dE5vcm1hbGl6ZWQgPSBub3JtYWxpemVEaWFjcml0aWNzKHNlYXJjaFRleHQpLnRvVXBwZXJDYXNlKCk7XG5cbiAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSBmaWx0ZXJEYXRhKHNlYXJjaFRleHQsIGRhdGEpO1xuXG4gICAgZm9yIChsZXQgaSA9IDAsIG4gPSBmaWx0ZXJlZERhdGEubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBmaWx0ZXJlZERhdGFbaV07XG4gICAgICBjb25zdCBpc01hdGNoID0gb3B0aW9ucy5wcm9wZXJ0aWVzVG9TZWFyY2guZmluZCgocHJvcGVydHk6IHN0cmluZykgPT4ge1xuICAgICAgICBsZXQgdmFsdWUgPSAocmVzdWx0W3Byb3BlcnR5XSB8fCAnJykudG9TdHJpbmcoKTtcbiAgICAgICAgdmFsdWUgPSBub3JtYWxpemVEaWFjcml0aWNzKHZhbHVlKS50b1VwcGVyQ2FzZSgpO1xuICAgICAgICByZXR1cm4gdmFsdWUuaW5kZXhPZihzZWFyY2hUZXh0Tm9ybWFsaXplZCkgPiAtMTtcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoaXNNYXRjaCkge1xuICAgICAgICByZXN1bHRzLnB1c2gocmVzdWx0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfTtcblxuICByZXR1cm4gc2VhcmNoO1xufVxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWRlZmF1bHQtc2VhcmNoLWZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xvb2t1cC9zcmMvbGliL21vZHVsZXMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS1kZWZhdWx0LXNlYXJjaC1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQU94RSxNQUFNLFVBQVUsb0NBQW9DLENBQ2xELE9BQW9EO0lBRXBELE1BQU0sVUFBVSxHQUFHLFVBQVUsVUFBa0IsRUFBRSxJQUFXO1FBQzFELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUU7Z0JBQzNELE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCx1RUFBdUU7WUFDdkUsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQzdDLENBQUMsTUFBMkMsRUFBRSxFQUFFO2dCQUM5QyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVDLENBQUMsQ0FDRixDQUFDO1lBRUYsT0FBTyxZQUFZLEtBQUssU0FBUyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsTUFBTSxNQUFNLEdBQUcsVUFDYixVQUFrQixFQUNsQixJQUFXO1FBRVgsTUFBTSxPQUFPLEdBQVUsRUFBRSxDQUFDO1FBRTFCLDZFQUE2RTtRQUM3RSx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNmLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBRUQsTUFBTSxvQkFBb0IsR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUUzRSxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRWxELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbkQsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9CLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxrQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFnQixFQUFFLEVBQUU7Z0JBQ3BFLElBQUksS0FBSyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNoRCxLQUFLLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxPQUFPLEVBQUU7Z0JBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN0QjtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZURpYWNyaXRpY3MgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWxvb2t1cC1zdHJpbmctdXRpbHMnO1xuXG5pbXBvcnQgeyBTa3lBdXRvY29tcGxldGVEZWZhdWx0U2VhcmNoRnVuY3Rpb25PcHRpb25zIH0gZnJvbSAnLi90eXBlcy9hdXRvY29tcGxldGUtZGVmYXVsdC1zZWFyY2gtZnVuY3Rpb24tb3B0aW9ucyc7XG5pbXBvcnQgeyBTa3lBdXRvY29tcGxldGVTZWFyY2hGdW5jdGlvbiB9IGZyb20gJy4vdHlwZXMvYXV0b2NvbXBsZXRlLXNlYXJjaC1mdW5jdGlvbic7XG5pbXBvcnQgeyBTa3lBdXRvY29tcGxldGVTZWFyY2hGdW5jdGlvbkZpbHRlciB9IGZyb20gJy4vdHlwZXMvYXV0b2NvbXBsZXRlLXNlYXJjaC1mdW5jdGlvbi1maWx0ZXInO1xuaW1wb3J0IHsgU2t5QXV0b2NvbXBsZXRlU2VhcmNoRnVuY3Rpb25SZXNwb25zZSB9IGZyb20gJy4vdHlwZXMvYXV0b2NvbXBsZXRlLXNlYXJjaC1mdW5jdGlvbi1yZXNwb25zZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBza3lBdXRvY29tcGxldGVEZWZhdWx0U2VhcmNoRnVuY3Rpb24oXG4gIG9wdGlvbnM6IFNreUF1dG9jb21wbGV0ZURlZmF1bHRTZWFyY2hGdW5jdGlvbk9wdGlvbnNcbik6IFNreUF1dG9jb21wbGV0ZVNlYXJjaEZ1bmN0aW9uIHtcbiAgY29uc3QgZmlsdGVyRGF0YSA9IGZ1bmN0aW9uIChzZWFyY2hUZXh0OiBzdHJpbmcsIGRhdGE6IGFueVtdKTogYW55W10ge1xuICAgIHJldHVybiBkYXRhLmZpbHRlcigoaXRlbTogYW55KSA9PiB7XG4gICAgICBpZiAoIW9wdGlvbnMuc2VhcmNoRmlsdGVycyB8fCAhb3B0aW9ucy5zZWFyY2hGaWx0ZXJzLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cblxuICAgICAgLy8gRmluZCB0aGUgZmlyc3QgZmFpbGluZyBmaWx0ZXIgKHdlIGNhbiBza2lwIHRoZSBvdGhlcnMgaWYgb25lIGZhaWxzKS5cbiAgICAgIGNvbnN0IGZhaWxlZEZpbHRlciA9IG9wdGlvbnMuc2VhcmNoRmlsdGVycy5maW5kKFxuICAgICAgICAoZmlsdGVyOiBTa3lBdXRvY29tcGxldGVTZWFyY2hGdW5jdGlvbkZpbHRlcikgPT4ge1xuICAgICAgICAgIHJldHVybiAhZmlsdGVyLmNhbGwoe30sIHNlYXJjaFRleHQsIGl0ZW0pO1xuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICByZXR1cm4gZmFpbGVkRmlsdGVyID09PSB1bmRlZmluZWQ7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3Qgc2VhcmNoID0gZnVuY3Rpb24gKFxuICAgIHNlYXJjaFRleHQ6IHN0cmluZyxcbiAgICBkYXRhOiBhbnlbXVxuICApOiBTa3lBdXRvY29tcGxldGVTZWFyY2hGdW5jdGlvblJlc3BvbnNlIHtcbiAgICBjb25zdCByZXN1bHRzOiBhbnlbXSA9IFtdO1xuXG4gICAgLyogU2FuaXR5IGNoZWNrIC0gYXV0b2NvbXBsZXRlIHdpbGwgbm90IGNhbGwgc2VhcmNoIHdpdGggZW1wdHkgc2VhcmNoIHRleHQgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIXNlYXJjaFRleHQpIHtcbiAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH1cblxuICAgIGNvbnN0IHNlYXJjaFRleHROb3JtYWxpemVkID0gbm9ybWFsaXplRGlhY3JpdGljcyhzZWFyY2hUZXh0KS50b1VwcGVyQ2FzZSgpO1xuXG4gICAgY29uc3QgZmlsdGVyZWREYXRhID0gZmlsdGVyRGF0YShzZWFyY2hUZXh0LCBkYXRhKTtcblxuICAgIGZvciAobGV0IGkgPSAwLCBuID0gZmlsdGVyZWREYXRhLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgY29uc3QgcmVzdWx0ID0gZmlsdGVyZWREYXRhW2ldO1xuICAgICAgY29uc3QgaXNNYXRjaCA9IG9wdGlvbnMucHJvcGVydGllc1RvU2VhcmNoIS5maW5kKChwcm9wZXJ0eTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGxldCB2YWx1ZSA9IChyZXN1bHRbcHJvcGVydHldIHx8ICcnKS50b1N0cmluZygpO1xuICAgICAgICB2YWx1ZSA9IG5vcm1hbGl6ZURpYWNyaXRpY3ModmFsdWUpLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIHJldHVybiB2YWx1ZS5pbmRleE9mKHNlYXJjaFRleHROb3JtYWxpemVkKSA+IC0xO1xuICAgICAgfSk7XG5cbiAgICAgIGlmIChpc01hdGNoKSB7XG4gICAgICAgIHJlc3VsdHMucHVzaChyZXN1bHQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHRzO1xuICB9O1xuXG4gIHJldHVybiBzZWFyY2g7XG59XG4iXX0=
@@ -1,3 +1,5 @@
1
+ var _SkyAutocompleteInputDirective_instances, _SkyAutocompleteInputDirective_blur, _SkyAutocompleteInputDirective_control, _SkyAutocompleteInputDirective_elementRef, _SkyAutocompleteInputDirective_focus, _SkyAutocompleteInputDirective_isFirstChange, _SkyAutocompleteInputDirective_ngUnsubscribe, _SkyAutocompleteInputDirective_renderer, _SkyAutocompleteInputDirective_textChanges, _SkyAutocompleteInputDirective__autocompleteAttribute, _SkyAutocompleteInputDirective__blurObs, _SkyAutocompleteInputDirective__disabled, _SkyAutocompleteInputDirective__displayWith, _SkyAutocompleteInputDirective__focusObs, _SkyAutocompleteInputDirective__textChangesObs, _SkyAutocompleteInputDirective__value, _SkyAutocompleteInputDirective_setAttributes, _SkyAutocompleteInputDirective_getValueByKey;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
1
3
  import { Directive, ElementRef, Input, Renderer2, forwardRef, } from '@angular/core';
2
4
  import { NG_VALIDATORS, NG_VALUE_ACCESSOR, } from '@angular/forms';
3
5
  import { Subject, fromEvent as observableFromEvent } from 'rxjs';
@@ -15,17 +17,33 @@ const SKY_AUTOCOMPLETE_VALIDATOR = {
15
17
  };
16
18
  export class SkyAutocompleteInputDirective {
17
19
  constructor(elementRef, renderer) {
18
- this.elementRef = elementRef;
19
- this.renderer = renderer;
20
- this.isFirstChange = true;
21
- this.ngUnsubscribe = new Subject();
22
- this._blur = new Subject();
23
- this._disabled = false;
24
- this._focus = new Subject();
25
- this._textChanges = new Subject();
20
+ _SkyAutocompleteInputDirective_instances.add(this);
21
+ _SkyAutocompleteInputDirective_blur.set(this, void 0);
22
+ _SkyAutocompleteInputDirective_control.set(this, void 0);
23
+ _SkyAutocompleteInputDirective_elementRef.set(this, void 0);
24
+ _SkyAutocompleteInputDirective_focus.set(this, void 0);
25
+ _SkyAutocompleteInputDirective_isFirstChange.set(this, true);
26
+ _SkyAutocompleteInputDirective_ngUnsubscribe.set(this, new Subject());
27
+ _SkyAutocompleteInputDirective_renderer.set(this, void 0);
28
+ _SkyAutocompleteInputDirective_textChanges.set(this, void 0);
29
+ _SkyAutocompleteInputDirective__autocompleteAttribute.set(this, void 0);
30
+ _SkyAutocompleteInputDirective__blurObs.set(this, void 0);
31
+ _SkyAutocompleteInputDirective__disabled.set(this, false);
32
+ _SkyAutocompleteInputDirective__displayWith.set(this, '');
33
+ _SkyAutocompleteInputDirective__focusObs.set(this, void 0);
34
+ _SkyAutocompleteInputDirective__textChangesObs.set(this, void 0);
35
+ _SkyAutocompleteInputDirective__value.set(this, void 0);
26
36
  // istanbul ignore next
27
37
  // eslint-disable-next-line @typescript-eslint/no-empty-function
28
38
  this.onValidatorChange = () => { };
39
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_elementRef, elementRef, "f");
40
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_renderer, renderer, "f");
41
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_blur, new Subject(), "f");
42
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_focus, new Subject(), "f");
43
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_textChanges, new Subject(), "f");
44
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective__blurObs, __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_blur, "f").asObservable(), "f");
45
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective__focusObs, __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_focus, "f").asObservable(), "f");
46
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective__textChangesObs, __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_textChanges, "f").asObservable(), "f");
29
47
  }
30
48
  /**
31
49
  * Specifies the value for the `autocomplete` attribute on the form input.
@@ -33,114 +51,109 @@ export class SkyAutocompleteInputDirective {
33
51
  */
34
52
  set autocompleteAttribute(value) {
35
53
  if (!value) {
36
- this._autocompleteAttribute = 'off';
54
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective__autocompleteAttribute, 'off', "f");
37
55
  }
38
56
  else {
39
- this._autocompleteAttribute = value;
57
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective__autocompleteAttribute, value, "f");
40
58
  }
41
- this.renderer.setAttribute(this.elementRef.nativeElement, 'autocomplete', this.autocompleteAttribute);
59
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").setAttribute(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement, 'autocomplete', this.autocompleteAttribute);
42
60
  }
43
61
  get autocompleteAttribute() {
44
- return this._autocompleteAttribute || 'off';
62
+ return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__autocompleteAttribute, "f") || 'off';
45
63
  }
46
64
  /**
47
65
  * Indicates whether to disable the autocomplete field.
48
66
  * @default false
49
67
  */
50
68
  set disabled(value) {
51
- this._disabled = value;
52
- this.renderer.setProperty(this.elementRef.nativeElement, 'disabled', value);
69
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective__disabled, value, "f");
70
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").setProperty(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement, 'disabled', value);
53
71
  }
54
72
  get disabled() {
55
- return this._disabled;
73
+ return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__disabled, "f");
56
74
  }
57
75
  get blur() {
58
- return this._blur.asObservable();
76
+ return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__blurObs, "f");
59
77
  }
60
78
  get displayWith() {
61
- return this._displayWith;
79
+ return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__displayWith, "f");
62
80
  }
63
81
  set displayWith(value) {
64
- this._displayWith = value;
65
- this.inputTextValue = this.getValueByKey();
82
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective__displayWith, value, "f");
83
+ this.inputTextValue = __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_instances, "m", _SkyAutocompleteInputDirective_getValueByKey).call(this);
66
84
  }
67
85
  get focus() {
68
- return this._focus.asObservable();
86
+ return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__focusObs, "f");
69
87
  }
70
88
  get inputTextValue() {
71
- return this.elementRef.nativeElement.value;
89
+ return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement.value;
72
90
  }
73
91
  set inputTextValue(value) {
74
- this.elementRef.nativeElement.value = value || '';
92
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement.value = value || '';
75
93
  }
76
94
  get textChanges() {
77
- return this._textChanges.asObservable();
95
+ return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__textChangesObs, "f");
78
96
  }
79
97
  get value() {
80
- return this._value;
98
+ return __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__value, "f");
81
99
  }
82
100
  set value(value) {
83
- const isNewValue = value !== this._value;
101
+ const isNewValue = value !== __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__value, "f");
84
102
  /* istanbul ignore else */
85
103
  if (isNewValue) {
86
- this._value = value;
87
- this.inputTextValue = this.getValueByKey();
88
- this.onChange(this._value);
104
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective__value, value, "f");
105
+ this.inputTextValue = __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_instances, "m", _SkyAutocompleteInputDirective_getValueByKey).call(this);
106
+ this.onChange(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective__value, "f"));
89
107
  // Do not mark the field as "dirty"
90
108
  // if the field has been initialized with a value.
91
- if (this.isFirstChange && this.control) {
92
- this.control.markAsPristine();
109
+ if (__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_isFirstChange, "f") && __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_control, "f")) {
110
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_control, "f").markAsPristine();
93
111
  }
94
- if (this.isFirstChange && this._value) {
95
- this.isFirstChange = false;
112
+ if (__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_isFirstChange, "f") && __classPrivateFieldGet(this, _SkyAutocompleteInputDirective__value, "f")) {
113
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_isFirstChange, false, "f");
96
114
  }
97
115
  }
98
116
  }
99
117
  ngOnInit() {
100
- const element = this.elementRef.nativeElement;
101
- this.setAttributes(element);
118
+ const element = __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement;
119
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_instances, "m", _SkyAutocompleteInputDirective_setAttributes).call(this, __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f"));
102
120
  observableFromEvent(element, 'input')
103
- .pipe(takeUntil(this.ngUnsubscribe))
121
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_ngUnsubscribe, "f")))
104
122
  .subscribe(() => {
105
- /** Sanity check */
106
123
  if (!this.disabled) {
107
- this._textChanges.next({
108
- value: this.elementRef.nativeElement.value,
124
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_textChanges, "f").next({
125
+ value: __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement.value,
109
126
  });
110
127
  }
111
128
  });
112
129
  observableFromEvent(element, 'blur')
113
- .pipe(takeUntil(this.ngUnsubscribe))
130
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_ngUnsubscribe, "f")))
114
131
  .subscribe(() => {
115
- /** Sanity check */
116
132
  if (!this.disabled) {
117
- this._blur.next();
133
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_blur, "f").next();
118
134
  }
119
135
  });
120
136
  observableFromEvent(element, 'focus')
121
- .pipe(takeUntil(this.ngUnsubscribe))
137
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_ngUnsubscribe, "f")))
122
138
  .subscribe(() => {
123
- /** Sanity check */
124
139
  if (!this.disabled) {
125
- this._focus.next();
140
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_focus, "f").next();
126
141
  }
127
142
  });
128
143
  observableFromEvent(element, 'change')
129
- .pipe(takeUntil(this.ngUnsubscribe))
144
+ .pipe(takeUntil(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_ngUnsubscribe, "f")))
130
145
  .subscribe(() => {
131
- /** Sanity check */
132
146
  /* istanbul ignore else */
133
147
  if (!this.disabled) {
134
- this.isFirstChange = false;
148
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_isFirstChange, false, "f");
135
149
  }
136
150
  });
137
151
  }
138
152
  ngOnDestroy() {
139
- this._blur.complete();
140
- this._textChanges.complete();
141
- this.ngUnsubscribe.next();
142
- this.ngUnsubscribe.complete();
143
- this._blur = this._textChanges = this.ngUnsubscribe = undefined;
153
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_blur, "f").complete();
154
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_textChanges, "f").complete();
155
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_ngUnsubscribe, "f").next();
156
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_ngUnsubscribe, "f").complete();
144
157
  }
145
158
  writeValue(value) {
146
159
  this.value = value;
@@ -155,7 +168,7 @@ export class SkyAutocompleteInputDirective {
155
168
  this.onValidatorChange = fn;
156
169
  }
157
170
  restoreInputTextValueToPreviousState() {
158
- const modelValue = this.getValueByKey();
171
+ const modelValue = __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_instances, "m", _SkyAutocompleteInputDirective_getValueByKey).call(this);
159
172
  // If the search field contains text, make sure that the value
160
173
  // matches the selected descriptor key.
161
174
  if (this.inputTextValue !== modelValue) {
@@ -167,18 +180,18 @@ export class SkyAutocompleteInputDirective {
167
180
  this.disabled = disabled;
168
181
  }
169
182
  validate(control) {
170
- if (!this.control) {
171
- this.control = control;
183
+ if (!__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_control, "f")) {
184
+ __classPrivateFieldSet(this, _SkyAutocompleteInputDirective_control, control, "f");
172
185
  }
173
- return;
186
+ return null;
174
187
  }
175
188
  // See: https://www.w3.org/TR/wai-aria-practices/#kbd_focus_activedescendant
176
189
  setActiveDescendant(descendantId) {
177
190
  if (descendantId) {
178
- this.renderer.setAttribute(this.elementRef.nativeElement, 'aria-activedescendant', descendantId);
191
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").setAttribute(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement, 'aria-activedescendant', descendantId);
179
192
  }
180
193
  else {
181
- this.renderer.removeAttribute(this.elementRef.nativeElement, 'aria-activedescendant');
194
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").removeAttribute(__classPrivateFieldGet(this, _SkyAutocompleteInputDirective_elementRef, "f").nativeElement, 'aria-activedescendant');
182
195
  }
183
196
  }
184
197
  // Angular automatically constructs these methods.
@@ -186,17 +199,17 @@ export class SkyAutocompleteInputDirective {
186
199
  onChange(value) { }
187
200
  // eslint-disable-next-line @typescript-eslint/no-empty-function
188
201
  onTouched() { }
189
- setAttributes(element) {
190
- this.renderer.setAttribute(element, 'autocomplete', this.autocompleteAttribute);
191
- this.renderer.setAttribute(element, 'autocapitalize', 'none');
192
- this.renderer.setAttribute(element, 'autocorrect', 'off');
193
- this.renderer.setAttribute(element, 'spellcheck', 'false');
194
- this.renderer.addClass(element, 'sky-form-control');
195
- }
196
- getValueByKey() {
197
- return this.value ? this.value[this.displayWith] : undefined;
198
- }
199
202
  }
203
+ _SkyAutocompleteInputDirective_blur = new WeakMap(), _SkyAutocompleteInputDirective_control = new WeakMap(), _SkyAutocompleteInputDirective_elementRef = new WeakMap(), _SkyAutocompleteInputDirective_focus = new WeakMap(), _SkyAutocompleteInputDirective_isFirstChange = new WeakMap(), _SkyAutocompleteInputDirective_ngUnsubscribe = new WeakMap(), _SkyAutocompleteInputDirective_renderer = new WeakMap(), _SkyAutocompleteInputDirective_textChanges = new WeakMap(), _SkyAutocompleteInputDirective__autocompleteAttribute = new WeakMap(), _SkyAutocompleteInputDirective__blurObs = new WeakMap(), _SkyAutocompleteInputDirective__disabled = new WeakMap(), _SkyAutocompleteInputDirective__displayWith = new WeakMap(), _SkyAutocompleteInputDirective__focusObs = new WeakMap(), _SkyAutocompleteInputDirective__textChangesObs = new WeakMap(), _SkyAutocompleteInputDirective__value = new WeakMap(), _SkyAutocompleteInputDirective_instances = new WeakSet(), _SkyAutocompleteInputDirective_setAttributes = function _SkyAutocompleteInputDirective_setAttributes(elementRef) {
204
+ const element = elementRef.nativeElement;
205
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").setAttribute(element, 'autocomplete', this.autocompleteAttribute);
206
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").setAttribute(element, 'autocapitalize', 'none');
207
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").setAttribute(element, 'autocorrect', 'off');
208
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").setAttribute(element, 'spellcheck', 'false');
209
+ __classPrivateFieldGet(this, _SkyAutocompleteInputDirective_renderer, "f").addClass(element, 'sky-form-control');
210
+ }, _SkyAutocompleteInputDirective_getValueByKey = function _SkyAutocompleteInputDirective_getValueByKey() {
211
+ return this.value ? this.value[this.displayWith] : undefined;
212
+ };
200
213
  SkyAutocompleteInputDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutocompleteInputDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
201
214
  SkyAutocompleteInputDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: SkyAutocompleteInputDirective, selector: "input[skyAutocomplete], textarea[skyAutocomplete]", inputs: { autocompleteAttribute: "autocompleteAttribute", disabled: "disabled" }, providers: [SKY_AUTOCOMPLETE_VALUE_ACCESSOR, SKY_AUTOCOMPLETE_VALIDATOR], ngImport: i0 });
202
215
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: SkyAutocompleteInputDirective, decorators: [{
@@ -210,4 +223,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
210
223
  }], disabled: [{
211
224
  type: Input
212
225
  }] } });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sb29rdXAvc3JjL2xpYi9tb2R1bGVzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFHTCxTQUFTLEVBQ1QsVUFBVSxHQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCxhQUFhLEVBQ2IsaUJBQWlCLEdBR2xCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFjLE9BQU8sRUFBRSxTQUFTLElBQUksbUJBQW1CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUkzQyxNQUFNLCtCQUErQixHQUFHO0lBQ3RDLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztJQUM1RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFFRixNQUFNLDBCQUEwQixHQUFHO0lBQ2pDLE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUM7SUFDNUQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBTUYsTUFBTSxPQUFPLDZCQUE2QjtJQWtIeEMsWUFBb0IsVUFBc0IsRUFBVSxRQUFtQjtRQUFuRCxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWxCL0Qsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFckIsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBSXBDLFVBQUssR0FBRyxJ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RSxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU8sYUFBYTtRQUNuQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDL0QsQ0FBQzs7MEhBelBVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLDhKQUY3QixDQUFDLCtCQUErQixFQUFFLDBCQUEwQixDQUFDOzJGQUU3RCw2QkFBNkI7a0JBSnpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1EQUFtRDtvQkFDN0QsU0FBUyxFQUFFLENBQUMsK0JBQStCLEVBQUUsMEJBQTBCLENBQUM7aUJBQ3pFO3lIQVNZLHFCQUFxQjtzQkFEL0IsS0FBSztnQkF3QkssUUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBmcm9tRXZlbnQgYXMgb2JzZXJ2YWJsZUZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lBdXRvY29tcGxldGVJbnB1dFRleHRDaGFuZ2UgfSBmcm9tICcuL3R5cGVzL2F1dG9jb21wbGV0ZS1pbnB1dC10ZXh0LWNoYW5nZSc7XG5cbmNvbnN0IFNLWV9BVVRPQ09NUExFVEVfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuY29uc3QgU0tZX0FVVE9DT01QTEVURV9WQUxJREFUT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreUF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpbnB1dFtza3lBdXRvY29tcGxldGVdLCB0ZXh0YXJlYVtza3lBdXRvY29tcGxldGVdJyxcbiAgcHJvdmlkZXJzOiBbU0tZX0FVVE9DT01QTEVURV9WQUxVRV9BQ0NFU1NPUiwgU0tZX0FVVE9DT01QTEVURV9WQUxJREFUT1JdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yXG57XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHZhbHVlIGZvciB0aGUgYGF1dG9jb21wbGV0ZWAgYXR0cmlidXRlIG9uIHRoZSBmb3JtIGlucHV0LlxuICAgKiBAZGVmYXVsdCBcIm9mZlwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGF1dG9jb21wbGV0ZUF0dHJpYnV0ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5fYXV0b2NvbXBsZXRlQXR0cmlidXRlID0gJ29mZic7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2F1dG9jb21wbGV0ZUF0dHJpYnV0ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAnYXV0b2NvbXBsZXRlJyxcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQXR0cmlidXRlXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXV0b2NvbXBsZXRlQXR0cmlidXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2F1dG9jb21wbGV0ZUF0dHJpYnV0ZSB8fCAnb2ZmJztcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSBhdXRvY29tcGxldGUgZmllbGQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCB2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYmx1cigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fYmx1ci5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlzcGxheVdpdGgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzcGxheVdpdGg7XG4gIH1cblxuICBwdWJsaWMgc2V0IGRpc3BsYXlXaXRoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9kaXNwbGF5V2l0aCA9IHZhbHVlO1xuICAgIHRoaXMuaW5wdXRUZXh0VmFsdWUgPSB0aGlzLmdldFZhbHVlQnlLZXkoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZm9jdXMoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZvY3VzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBpbnB1dFRleHRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgaW5wdXRUZXh0VmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWUgfHwgJyc7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRleHRDaGFuZ2VzKCk6IE9ic2VydmFibGU8U2t5QXV0b2NvbXBsZXRlSW5wdXRUZXh0Q2hhbmdlPiB7XG4gICAgcmV0dXJuIHRoaXMuX3RleHRDaGFuZ2VzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGNvbnN0IGlzTmV3VmFsdWUgPSB2YWx1ZSAhPT0gdGhpcy5fdmFsdWU7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChpc05ld1ZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5pbnB1dFRleHRWYWx1ZSA9IHRoaXMuZ2V0VmFsdWVCeUtleSgpO1xuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLl92YWx1ZSk7XG5cbiAgICAgIC8vIERvIG5vdCBtYXJrIHRoZSBmaWVsZCBhcyBcImRpcnR5XCJcbiAgICAgIC8vIGlmIHRoZSBmaWVsZCBoYXMgYmVlbiBpbml0aWFsaXplZCB3aXRoIGEgdmFsdWUuXG4gICAgICBpZiAodGhpcy5pc0ZpcnN0Q2hhbmdlICYmIHRoaXMuY29udHJvbCkge1xuICAgICAgICB0aGlzLmNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuaXNGaXJzdENoYW5nZSAmJiB0aGlzLl92YWx1ZSkge1xuICAgICAgICB0aGlzLmlzRmlyc3RDaGFuZ2UgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDtcblxuICBwcml2YXRlIGlzRmlyc3RDaGFuZ2UgPSB0cnVlO1xuXG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBfYXV0b2NvbXBsZXRlQXR0cmlidXRlOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfYmx1ciA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9kaXNwbGF5V2l0aDogc3RyaW5nO1xuXG4gIHByaXZhdGUgX2ZvY3VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF90ZXh0Q2hhbmdlcyA9IG5ldyBTdWJqZWN0PFNreUF1dG9jb21wbGV0ZUlucHV0VGV4dENoYW5nZT4oKTtcblxuICBwcml2YXRlIF92YWx1ZTogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0aGlzLnNldEF0dHJpYnV0ZXMoZWxlbWVudCk7XG5cbiAgICBvYnNlcnZhYmxlRnJvbUV2ZW50KGVsZW1lbnQsICdpbnB1dCcpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvKiogU2FuaXR5IGNoZWNrICovXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgIHRoaXMuX3RleHRDaGFuZ2VzLm5leHQoe1xuICAgICAgICAgICAgdmFsdWU6IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIG9ic2VydmFibGVGcm9tRXZlbnQoZWxlbWVudCwgJ2JsdXInKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLyoqIFNhbml0eSBjaGVjayAqL1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLl9ibHVyLm5leHQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBvYnNlcnZhYmxlRnJvbUV2ZW50KGVsZW1lbnQsICdmb2N1cycpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvKiogU2FuaXR5IGNoZWNrICovXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgIHRoaXMuX2ZvY3VzLm5leHQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBvYnNlcnZhYmxlRnJvbUV2ZW50KGVsZW1lbnQsICdjaGFuZ2UnKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLyoqIFNhbml0eSBjaGVjayAqL1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLmlzRmlyc3RDaGFuZ2UgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYmx1ci5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3RleHRDaGFuZ2VzLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy5fYmx1ciA9IHRoaXMuX3RleHRDaGFuZ2VzID0gdGhpcy5uZ1Vuc3Vic2NyaWJlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZXN0b3JlSW5wdXRUZXh0VmFsdWVUb1ByZXZpb3VzU3RhdGUoKTogdm9pZCB7XG4gICAgY29uc3QgbW9kZWxWYWx1ZSA9IHRoaXMuZ2V0VmFsdWVCeUtleSgpO1xuXG4gICAgLy8gSWYgdGhlIHNlYXJjaCBmaWVsZCBjb250YWlucyB0ZXh0LCBtYWtlIHN1cmUgdGhhdCB0aGUgdmFsdWVcbiAgICAvLyBtYXRjaGVzIHRoZSBzZWxlY3RlZCBkZXNjcmlwdG9yIGtleS5cbiAgICBpZiAodGhpcy5pbnB1dFRleHRWYWx1ZSAhPT0gbW9kZWxWYWx1ZSkge1xuICAgICAgdGhpcy5pbnB1dFRleHRWYWx1ZSA9IG1vZGVsVmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgIGlmICghdGhpcy5jb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSBjb250cm9sO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cblxuICAvLyBTZWU6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMvI2tiZF9mb2N1c19hY3RpdmVkZXNjZW5kYW50XG4gIHB1YmxpYyBzZXRBY3RpdmVEZXNjZW5kYW50KGRlc2NlbmRhbnRJZDogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChkZXNjZW5kYW50SWQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCcsXG4gICAgICAgIGRlc2NlbmRhbnRJZFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUoXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYXJpYS1hY3RpdmVkZXNjZW5kYW50J1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvLyBBbmd1bGFyIGF1dG9tYXRpY2FsbHkgY29uc3RydWN0cyB0aGVzZSBtZXRob2RzLlxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHB1YmxpYyBvbkNoYW5nZSh2YWx1ZTogYW55KTogdm9pZCB7fVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHB1YmxpYyBvblRvdWNoZWQoKTogdm9pZCB7fVxuICAvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHB1YmxpYyBvblZhbGlkYXRvckNoYW5nZSA9ICgpID0+IHt9O1xuXG4gIHByaXZhdGUgc2V0QXR0cmlidXRlcyhlbGVtZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgIGVsZW1lbnQsXG4gICAgICAnYXV0b2NvbXBsZXRlJyxcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQXR0cmlidXRlXG4gICAgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnYXV0b2NhcGl0YWxpemUnLCAnbm9uZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGVsZW1lbnQsICdhdXRvY29ycmVjdCcsICdvZmYnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnc3BlbGxjaGVjaycsICdmYWxzZScpO1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZWxlbWVudCwgJ3NreS1mb3JtLWNvbnRyb2wnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFsdWVCeUtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZVt0aGlzLmRpc3BsYXlXaXRoXSA6IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWlucHV0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9sb29rdXAvc3JjL2xpYi9tb2R1bGVzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUtaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUdMLFNBQVMsRUFDVCxVQUFVLEdBQ1gsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLGFBQWEsRUFDYixpQkFBaUIsR0FHbEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSTNDLE1BQU0sK0JBQStCLEdBQUc7SUFDdEMsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDZCQUE2QixDQUFDO0lBQzVELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQUVGLE1BQU0sMEJBQTBCLEdBQUc7SUFDakMsT0FBTyxFQUFFLGFBQWE7SUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztJQUM1RCxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUM7QUFNRixNQUFNLE9BQU8sNkJBQTZCO0lBZ0l4QyxZQUFZLFVBQXNCLEVBQUUsUUFBbUI7O1FBOUJ2RCxzREFBcUI7UUFFckIseURBQXNDO1FBRXRDLDREQUF3QjtRQUV4Qix1REFBc0I7UUFFdEIsdURBQWlCLElBQUksRUFBQztRQUV0Qix1REFBaUIsSUFBSSxPQUFPLEVBQVEsRUFBQztRQUVyQywwREFBcUI7UUFFckIsNkRB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LENBQUM7aUJBQ3pFO3lIQVNZLHFCQUFxQjtzQkFEL0IsS0FBSztnQkF3QkssUUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG4gIGZvcndhcmRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBmcm9tRXZlbnQgYXMgb2JzZXJ2YWJsZUZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lBdXRvY29tcGxldGVJbnB1dFRleHRDaGFuZ2UgfSBmcm9tICcuL3R5cGVzL2F1dG9jb21wbGV0ZS1pbnB1dC10ZXh0LWNoYW5nZSc7XG5cbmNvbnN0IFNLWV9BVVRPQ09NUExFVEVfVkFMVUVfQUNDRVNTT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZSksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuY29uc3QgU0tZX0FVVE9DT01QTEVURV9WQUxJREFUT1IgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNreUF1dG9jb21wbGV0ZUlucHV0RGlyZWN0aXZlKSxcbiAgbXVsdGk6IHRydWUsXG59O1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdpbnB1dFtza3lBdXRvY29tcGxldGVdLCB0ZXh0YXJlYVtza3lBdXRvY29tcGxldGVdJyxcbiAgcHJvdmlkZXJzOiBbU0tZX0FVVE9DT01QTEVURV9WQUxVRV9BQ0NFU1NPUiwgU0tZX0FVVE9DT01QTEVURV9WQUxJREFUT1JdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBdXRvY29tcGxldGVJbnB1dERpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yXG57XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHZhbHVlIGZvciB0aGUgYGF1dG9jb21wbGV0ZWAgYXR0cmlidXRlIG9uIHRoZSBmb3JtIGlucHV0LlxuICAgKiBAZGVmYXVsdCBcIm9mZlwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGF1dG9jb21wbGV0ZUF0dHJpYnV0ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy4jX2F1dG9jb21wbGV0ZUF0dHJpYnV0ZSA9ICdvZmYnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNfYXV0b2NvbXBsZXRlQXR0cmlidXRlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgdGhpcy4jcmVuZGVyZXIuc2V0QXR0cmlidXRlKFxuICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgJ2F1dG9jb21wbGV0ZScsXG4gICAgICB0aGlzLmF1dG9jb21wbGV0ZUF0dHJpYnV0ZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGF1dG9jb21wbGV0ZUF0dHJpYnV0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfYXV0b2NvbXBsZXRlQXR0cmlidXRlIHx8ICdvZmYnO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGRpc2FibGUgdGhlIGF1dG9jb21wbGV0ZSBmaWVsZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNfZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLiNyZW5kZXJlci5zZXRQcm9wZXJ0eShcbiAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICdkaXNhYmxlZCcsXG4gICAgICB2YWx1ZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfZGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGJsdXIoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuI19ibHVyT2JzO1xuICB9XG5cbiAgcHVibGljIGdldCBkaXNwbGF5V2l0aCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNfZGlzcGxheVdpdGg7XG4gIH1cblxuICBwdWJsaWMgc2V0IGRpc3BsYXlXaXRoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNfZGlzcGxheVdpdGggPSB2YWx1ZTtcbiAgICB0aGlzLmlucHV0VGV4dFZhbHVlID0gdGhpcy4jZ2V0VmFsdWVCeUtleSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBmb2N1cygpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy4jX2ZvY3VzT2JzO1xuICB9XG5cbiAgcHVibGljIGdldCBpbnB1dFRleHRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGlucHV0VGV4dFZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZSB8fCAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdGV4dENoYW5nZXMoKTogT2JzZXJ2YWJsZTxTa3lBdXRvY29tcGxldGVJbnB1dFRleHRDaGFuZ2U+IHtcbiAgICByZXR1cm4gdGhpcy4jX3RleHRDaGFuZ2VzT2JzO1xuICB9XG5cbiAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLiNfdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBpc05ld1ZhbHVlID0gdmFsdWUgIT09IHRoaXMuI192YWx1ZTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGlzTmV3VmFsdWUpIHtcbiAgICAgIHRoaXMuI192YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5pbnB1dFRleHRWYWx1ZSA9IHRoaXMuI2dldFZhbHVlQnlLZXkoKTtcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy4jX3ZhbHVlKTtcblxuICAgICAgLy8gRG8gbm90IG1hcmsgdGhlIGZpZWxkIGFzIFwiZGlydHlcIlxuICAgICAgLy8gaWYgdGhlIGZpZWxkIGhhcyBiZWVuIGluaXRpYWxpemVkIHdpdGggYSB2YWx1ZS5cbiAgICAgIGlmICh0aGlzLiNpc0ZpcnN0Q2hhbmdlICYmIHRoaXMuI2NvbnRyb2wpIHtcbiAgICAgICAgdGhpcy4jY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy4jaXNGaXJzdENoYW5nZSAmJiB0aGlzLiNfdmFsdWUpIHtcbiAgICAgICAgdGhpcy4jaXNGaXJzdENoYW5nZSA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNibHVyOiBTdWJqZWN0PHZvaWQ+O1xuXG4gICNjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCB1bmRlZmluZWQ7XG5cbiAgI2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgI2ZvY3VzOiBTdWJqZWN0PHZvaWQ+O1xuXG4gICNpc0ZpcnN0Q2hhbmdlID0gdHJ1ZTtcblxuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI3JlbmRlcmVyOiBSZW5kZXJlcjI7XG5cbiAgI3RleHRDaGFuZ2VzOiBTdWJqZWN0PFNreUF1dG9jb21wbGV0ZUlucHV0VGV4dENoYW5nZT47XG5cbiAgI19hdXRvY29tcGxldGVBdHRyaWJ1dGU6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAjX2JsdXJPYnM6IE9ic2VydmFibGU8dm9pZD47XG5cbiAgI19kaXNhYmxlZCA9IGZhbHNlO1xuXG4gICNfZGlzcGxheVdpdGggPSAnJztcblxuICAjX2ZvY3VzT2JzOiBPYnNlcnZhYmxlPHZvaWQ+O1xuXG4gICNfdGV4dENoYW5nZXNPYnM6IE9ic2VydmFibGU8U2t5QXV0b2NvbXBsZXRlSW5wdXRUZXh0Q2hhbmdlPjtcblxuICAjX3ZhbHVlOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIHRoaXMuI2VsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xuICAgIHRoaXMuI3JlbmRlcmVyID0gcmVuZGVyZXI7XG5cbiAgICB0aGlzLiNibHVyID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICB0aGlzLiNmb2N1cyA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgdGhpcy4jdGV4dENoYW5nZXMgPSBuZXcgU3ViamVjdDxTa3lBdXRvY29tcGxldGVJbnB1dFRleHRDaGFuZ2U+KCk7XG5cbiAgICB0aGlzLiNfYmx1ck9icyA9IHRoaXMuI2JsdXIuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy4jX2ZvY3VzT2JzID0gdGhpcy4jZm9jdXMuYXNPYnNlcnZhYmxlKCk7XG4gICAgdGhpcy4jX3RleHRDaGFuZ2VzT2JzID0gdGhpcy4jdGV4dENoYW5nZXMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIHRoaXMuI3NldEF0dHJpYnV0ZXModGhpcy4jZWxlbWVudFJlZik7XG5cbiAgICBvYnNlcnZhYmxlRnJvbUV2ZW50KGVsZW1lbnQsICdpbnB1dCcpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgdGhpcy4jdGV4dENoYW5nZXMubmV4dCh7XG4gICAgICAgICAgICB2YWx1ZTogdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnZhbHVlLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIG9ic2VydmFibGVGcm9tRXZlbnQoZWxlbWVudCwgJ2JsdXInKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgIHRoaXMuI2JsdXIubmV4dCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIG9ic2VydmFibGVGcm9tRXZlbnQoZWxlbWVudCwgJ2ZvY3VzJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLiNmb2N1cy5uZXh0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgb2JzZXJ2YWJsZUZyb21FdmVudChlbGVtZW50LCAnY2hhbmdlJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLiNpc0ZpcnN0Q2hhbmdlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI2JsdXIuY29tcGxldGUoKTtcbiAgICB0aGlzLiN0ZXh0Q2hhbmdlcy5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy4jbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZXN0b3JlSW5wdXRUZXh0VmFsdWVUb1ByZXZpb3VzU3RhdGUoKTogdm9pZCB7XG4gICAgY29uc3QgbW9kZWxWYWx1ZSA9IHRoaXMuI2dldFZhbHVlQnlLZXkoKTtcblxuICAgIC8vIElmIHRoZSBzZWFyY2ggZmllbGQgY29udGFpbnMgdGV4dCwgbWFrZSBzdXJlIHRoYXQgdGhlIHZhbHVlXG4gICAgLy8gbWF0Y2hlcyB0aGUgc2VsZWN0ZWQgZGVzY3JpcHRvciBrZXkuXG4gICAgaWYgKHRoaXMuaW5wdXRUZXh0VmFsdWUgIT09IG1vZGVsVmFsdWUpIHtcbiAgICAgIHRoaXMuaW5wdXRUZXh0VmFsdWUgPSBtb2RlbFZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLiNjb250cm9sKSB7XG4gICAgICB0aGlzLiNjb250cm9sID0gY29udHJvbDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBTZWU6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi93YWktYXJpYS1wcmFjdGljZXMvI2tiZF9mb2N1c19hY3RpdmVkZXNjZW5kYW50XG4gIHB1YmxpYyBzZXRBY3RpdmVEZXNjZW5kYW50KGRlc2NlbmRhbnRJZDogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChkZXNjZW5kYW50SWQpIHtcbiAgICAgIHRoaXMuI3JlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgICAgdGhpcy4jZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAnYXJpYS1hY3RpdmVkZXNjZW5kYW50JyxcbiAgICAgICAgZGVzY2VuZGFudElkXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNyZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUoXG4gICAgICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgJ2FyaWEtYWN0aXZlZGVzY2VuZGFudCdcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gQW5ndWxhciBhdXRvbWF0aWNhbGx5IGNvbnN0cnVjdHMgdGhlc2UgbWV0aG9kcy5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwdWJsaWMgb25DaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQge31cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwdWJsaWMgb25Ub3VjaGVkKCk6IHZvaWQge31cbiAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBwdWJsaWMgb25WYWxpZGF0b3JDaGFuZ2UgPSAoKSA9PiB7fTtcblxuICAjc2V0QXR0cmlidXRlcyhlbGVtZW50UmVmOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIHRoaXMuI3JlbmRlcmVyLnNldEF0dHJpYnV0ZShcbiAgICAgIGVsZW1lbnQsXG4gICAgICAnYXV0b2NvbXBsZXRlJyxcbiAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQXR0cmlidXRlXG4gICAgKTtcbiAgICB0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ2F1dG9jYXBpdGFsaXplJywgJ25vbmUnKTtcbiAgICB0aGlzLiNyZW5kZXJlci5zZXRBdHRyaWJ1dGUoZWxlbWVudCwgJ2F1dG9jb3JyZWN0JywgJ29mZicpO1xuICAgIHRoaXMuI3JlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCAnc3BlbGxjaGVjaycsICdmYWxzZScpO1xuICAgIHRoaXMuI3JlbmRlcmVyLmFkZENsYXNzKGVsZW1lbnQsICdza3ktZm9ybS1jb250cm9sJyk7XG4gIH1cblxuICAjZ2V0VmFsdWVCeUtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZVt0aGlzLmRpc3BsYXlXaXRoXSA6IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19