@seniorsistemas/angular-components 17.17.10 → 17.17.12

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,18 +1,24 @@
1
- import { __decorate, __values } from "tslib";
2
- import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, OnInit, ViewChild, forwardRef } from "@angular/core";
1
+ import { __decorate, __param, __values } from "tslib";
2
+ import { DomPortalOutlet, TemplatePortal } from "@angular/cdk/portal";
3
+ import { isPlatformBrowser } from "@angular/common";
4
+ import { Component, ElementRef, EventEmitter, forwardRef, HostBinding, HostListener, Inject, Input, OnInit, Output, PLATFORM_ID, TemplateRef, ViewChild, ViewContainerRef, } from "@angular/core";
3
5
  import { FormControl, NG_VALUE_ACCESSOR } from "@angular/forms";
4
6
  import { TranslateService } from "@ngx-translate/core";
5
- import { Ordination } from "./models";
7
+ import { isNullOrUndefined } from "../utils";
6
8
  import { CountryPhonePickerService } from "./country-phone-picker.service";
9
+ import { Ordination } from "./models";
7
10
  var CountryPhonePickerComponent = /** @class */ (function () {
8
- function CountryPhonePickerComponent(countryPhonePickerService, translate, eRef) {
11
+ function CountryPhonePickerComponent(_countryPhonePickerService, _translate, _eRef, platformId) {
9
12
  var _this = this;
10
- this.countryPhonePickerService = countryPhonePickerService;
11
- this.translate = translate;
12
- this.eRef = eRef;
13
+ this._countryPhonePickerService = _countryPhonePickerService;
14
+ this._translate = _translate;
15
+ this._eRef = _eRef;
16
+ this.platformId = platformId;
13
17
  this.currentItemIndex = 0;
14
18
  this.phone = new FormControl("");
15
19
  this.filter = new FormControl("");
20
+ this.dropTop = 0;
21
+ this.dropLeft = 0;
16
22
  this._open = false;
17
23
  this.offsetTop = 0;
18
24
  this.ordination = Ordination.NO;
@@ -29,7 +35,7 @@ var CountryPhonePickerComponent = /** @class */ (function () {
29
35
  }
30
36
  else {
31
37
  _this.filteredCountriesList = _this._countriesList.filter(function (country) {
32
- var countryName = _this.translate.instant("platform.angular_components.country_name_" + country.id);
38
+ var countryName = _this._translate.instant("platform.angular_components.country_name_" + country.id);
33
39
  return countryName.toLowerCase().includes(value.toLowerCase());
34
40
  });
35
41
  }
@@ -69,7 +75,7 @@ var CountryPhonePickerComponent = /** @class */ (function () {
69
75
  this._onTouched = onTouched;
70
76
  };
71
77
  CountryPhonePickerComponent.prototype.onClickout = function (event) {
72
- if (!this.eRef.nativeElement.contains(event.target)) {
78
+ if (!this._eRef.nativeElement.contains(event.target)) {
73
79
  if (this.open) {
74
80
  this.open = false;
75
81
  }
@@ -78,7 +84,7 @@ var CountryPhonePickerComponent = /** @class */ (function () {
78
84
  CountryPhonePickerComponent.prototype.ngOnInit = function () {
79
85
  var _this = this;
80
86
  var _a;
81
- var countries = this.countryPhonePickerService.getCountries(this.ordination);
87
+ var countries = this._countryPhonePickerService.getCountries(this.ordination);
82
88
  this.filter.valueChanges.subscribe(this._filterCountries);
83
89
  if ((_a = this.countries) === null || _a === void 0 ? void 0 : _a.length) {
84
90
  this._countriesList = countries.filter(function (country) { return _this.countries.includes(country.id); });
@@ -125,7 +131,13 @@ var CountryPhonePickerComponent = /** @class */ (function () {
125
131
  },
126
132
  set: function (open) {
127
133
  this._open = open;
128
- if (!open) {
134
+ if (open) {
135
+ this._createDropdownPortal();
136
+ }
137
+ else {
138
+ if (this._portalHost && this._portalHost.hasAttached()) {
139
+ this._portalHost.detach();
140
+ }
129
141
  this.phoneInput.nativeElement.focus();
130
142
  }
131
143
  },
@@ -200,9 +212,7 @@ var CountryPhonePickerComponent = /** @class */ (function () {
200
212
  var mask;
201
213
  if (Array.isArray(this.selectedItem.mask)) {
202
214
  var rawMask = this.selectedItem.mask[0].replace(/[^0]/g, "");
203
- mask = value.length <= rawMask.length
204
- ? this.selectedItem.mask[0] + "\0"
205
- : this.selectedItem.mask[1] + "\0";
215
+ mask = value.length <= rawMask.length ? this.selectedItem.mask[0] + "\0" : this.selectedItem.mask[1] + "\0";
206
216
  }
207
217
  else {
208
218
  mask = this.selectedItem.mask + "\0";
@@ -239,12 +249,36 @@ var CountryPhonePickerComponent = /** @class */ (function () {
239
249
  tokens = "^" + tokens + "*";
240
250
  return this.phone.value.replace(new RegExp(tokens), replace);
241
251
  };
252
+ CountryPhonePickerComponent.prototype._createDropdownPortal = function () {
253
+ if (!isPlatformBrowser(this.platformId) || isNullOrUndefined(this.dropElement))
254
+ return;
255
+ var bodyElement = document.body;
256
+ var dropElementRect = this.dropElement.nativeElement.getBoundingClientRect();
257
+ this.dropTop = dropElementRect.bottom + window.scrollY;
258
+ this.dropLeft = dropElementRect.left + window.scrollX;
259
+ this._portalHost = new DomPortalOutlet(bodyElement, null, null, null);
260
+ var portal = new TemplatePortal(this.dropdownTemplate, this.viewContainerRef);
261
+ this._portalHost.attach(portal);
262
+ };
242
263
  var CountryPhonePickerComponent_1;
243
264
  CountryPhonePickerComponent.ctorParameters = function () { return [
244
265
  { type: CountryPhonePickerService },
245
266
  { type: TranslateService },
246
- { type: ElementRef }
267
+ { type: ElementRef },
268
+ { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }
247
269
  ]; };
270
+ __decorate([
271
+ ViewChild("dropdownTemplate")
272
+ ], CountryPhonePickerComponent.prototype, "dropdownTemplate", void 0);
273
+ __decorate([
274
+ ViewChild("dropElement", { read: ViewContainerRef })
275
+ ], CountryPhonePickerComponent.prototype, "viewContainerRef", void 0);
276
+ __decorate([
277
+ ViewChild("dropElement", { read: ElementRef })
278
+ ], CountryPhonePickerComponent.prototype, "dropElement", void 0);
279
+ __decorate([
280
+ ViewChild("#dropdownContainer", { read: ElementRef })
281
+ ], CountryPhonePickerComponent.prototype, "dropdownContainer", void 0);
248
282
  __decorate([
249
283
  Input()
250
284
  ], CountryPhonePickerComponent.prototype, "countries", void 0);
@@ -275,16 +309,19 @@ var CountryPhonePickerComponent = /** @class */ (function () {
275
309
  CountryPhonePickerComponent = CountryPhonePickerComponent_1 = __decorate([
276
310
  Component({
277
311
  selector: "s-country-phone-picker",
278
- template: "<div class=\"country-phone-picker\">\n <div class=\"phone-input\">\n <div class=\"drop\" (click)=\"open = !open\">\n <span class=\"drop-flag\" [ngClass]=\"'fi fi-' + selectedItem.id\">\n </span>\n <span class=\"drop-icon fas fa-caret-down\"></span>\n </div>\n <p class=\"phone-ddi\">{{ selectedItem.ddi }}</p>\n <input\n #phoneInput\n type=\"tel\"\n autofocus\n [mask]=\"mask\" \n [placeholder]=\"getPlaceholder()\"\n [formControl]=\"phone\"\n (focus)=\"onPhoneInputFocus()\" \n (blur)=\"onBlur(value)\"\n />\n </div>\n <div *ngIf=\"open\" class=\"dropdown\">\n <div class=\"search\">\n <input\n class=\"search-field\"\n type=\"text\"\n [formControl]=\"filter\">\n <span class=\"search-icon fas fa-search\"></span>\n <span\n class=\"search-clear fa fa-times\"\n (click)=\"onCleanFilter()\"></span>\n </div>\n <ul class=\"select-list\">\n <li\n *ngFor=\"let country of filteredCountriesList; let i = index;\"\n class=\"select-option\"\n [ngClass]=\"{ 'select-option--focused': i == currentItemIndex }\"\n (click)=\"onSelectItem(country)\">\n <span\n class=\"select-option__flag\"\n [ngClass]=\"'fi fi-' + country.id\">\n </span>\n <span class=\"select-option__name\">\n {{ \"platform.angular_components.country_name_\" + country.id | translate }}\n </span>\n <span class=\"select-option__ddi\">\n {{ country.ddi }}\n </span>\n </li>\n </ul>\n </div>\n</div>",
279
- providers: [{
312
+ template: "<div class=\"country-phone-picker\">\n <div #dropElement class=\"phone-input\">\n <div class=\"drop\" (click)=\"open = !open\">\n <span class=\"drop-flag\" [ngClass]=\"'fi fi-' + selectedItem.id\"> </span>\n <span class=\"drop-icon fas fa-caret-down\"></span>\n </div>\n <p class=\"phone-ddi\">{{ selectedItem.ddi }}</p>\n <input\n #phoneInput\n type=\"tel\"\n autofocus\n [mask]=\"mask\"\n [placeholder]=\"getPlaceholder()\"\n [formControl]=\"phone\"\n (focus)=\"onPhoneInputFocus()\"\n (blur)=\"onBlur(value)\"\n />\n </div>\n <ng-template #dropdownTemplate>\n <div\n #dropdownContainer\n *ngIf=\"open\"\n class=\"dropdown\"\n [ngStyle]=\"{\n position: 'absolute',\n top: dropTop + 'px',\n left: dropLeft + 'px'\n }\"\n >\n <div class=\"search\">\n <input class=\"search-field\" type=\"text\" [formControl]=\"filter\" />\n <span class=\"search-icon fas fa-search\"></span>\n <span class=\"search-clear fa fa-times\" (click)=\"onCleanFilter()\"></span>\n </div>\n <ul class=\"select-list\">\n <li\n *ngFor=\"let country of filteredCountriesList; let i = index\"\n class=\"select-option\"\n [ngClass]=\"{ 'select-option--focused': i == currentItemIndex }\"\n (click)=\"onSelectItem(country)\"\n >\n <span class=\"select-option__flag\" [ngClass]=\"'fi fi-' + country.id\"> </span>\n <span class=\"select-option__name\">\n {{ \"platform.angular_components.country_name_\" + country.id | translate }}\n </span>\n <span class=\"select-option__ddi\">\n {{ country.ddi }}\n </span>\n </li>\n </ul>\n </div>\n </ng-template>\n</div>\n",
313
+ providers: [
314
+ {
280
315
  provide: NG_VALUE_ACCESSOR,
281
316
  useExisting: forwardRef(function () { return CountryPhonePickerComponent_1; }),
282
317
  multi: true,
283
- }],
284
- styles: [".country-phone-picker .phone-input{background-color:#fff;border:1px solid #d8d8d8;border-radius:4px;display:-ms-flexbox;display:flex;line-height:normal;overflow:hidden}.country-phone-picker .phone-input .drop{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox;display:flex}.country-phone-picker .phone-input .drop .drop-flag{margin-left:12px}.country-phone-picker .phone-input .drop .drop-icon{font-size:12px;margin:0 8px}.country-phone-picker .phone-input .phone-ddi{margin:8px 0}.country-phone-picker .phone-input input{border:none;-ms-flex-positive:1;flex-grow:1;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;line-height:150%;margin-left:8px}.country-phone-picker .phone-input input:focus{color:#697882;outline:0}.country-phone-picker .dropdown{background-color:#fff;border-radius:4px;box-shadow:0 4px 5px #00000033;padding:4px 0;position:absolute;margin:2px 0;z-index:999999}.country-phone-picker .dropdown .search{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;padding:8px 12px}.country-phone-picker .dropdown .search .search-field{border:1px solid #d8d8d8;border-radius:4px;-ms-flex-positive:1;flex-grow:1;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;height:36px;line-height:150%;padding:0 32px 0 8px}.country-phone-picker .dropdown .search .search-icon{color:#333;font-size:12px;position:relative;right:24px}.country-phone-picker .dropdown .search .search-clear{color:#333;cursor:pointer;font-size:1rem}.country-phone-picker .dropdown .select-list{list-style:none;max-height:234px;min-width:360px;max-width:100vw;overflow:scroll;padding:0}.country-phone-picker .dropdown .select-list .select-option{cursor:pointer;display:-ms-flexbox;display:flex;padding:12px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.country-phone-picker .dropdown .select-list .select-option .select-option__flag{margin-right:12px}.country-phone-picker .dropdown .select-list .select-option .select-option__name{margin-right:.5rem;max-width:100%;overflow:hidden;text-overflow:ellipsis}.country-phone-picker .dropdown .select-list .select-option .select-option__ddi{color:#697882;font-size:14px;font-family:\"Open Sans\",sans-serif;font-weight:400;line-height:150%}.country-phone-picker .dropdown .select-list .select-option--focused,.country-phone-picker .dropdown .select-list .select-option:hover{background-color:#e5eaea}"]
285
- })
318
+ },
319
+ ],
320
+ styles: [".country-phone-picker .phone-input{background-color:#fff;border:1px solid #d8d8d8;border-radius:4px;display:-ms-flexbox;display:flex;line-height:normal;overflow:hidden}.country-phone-picker .phone-input .drop{-ms-flex-align:center;align-items:center;cursor:pointer;display:-ms-flexbox;display:flex}.country-phone-picker .phone-input .drop .drop-flag{margin-left:12px}.country-phone-picker .phone-input .drop .drop-icon{font-size:12px;margin:0 8px}.country-phone-picker .phone-input .phone-ddi{margin:8px 0}.country-phone-picker .phone-input input{border:none;-ms-flex-positive:1;flex-grow:1;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;line-height:150%;margin-left:8px}.country-phone-picker .phone-input input:focus{color:#697882;outline:0}.dropdown{background-color:#fff;border-radius:4px;box-shadow:0 4px 5px #00000033;padding:4px 0;position:absolute;margin:2px 0;z-index:999999}.dropdown .search{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;padding:8px 12px}.dropdown .search .search-field{border:1px solid #d8d8d8;border-radius:4px;-ms-flex-positive:1;flex-grow:1;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;height:36px;line-height:150%;padding:0 32px 0 8px}.dropdown .search .search-icon{color:#333;font-size:12px;position:relative;right:24px}.dropdown .search .search-clear{color:#333;cursor:pointer;font-size:1rem}.dropdown .select-list{list-style:none;max-height:234px;min-width:360px;max-width:100vw;overflow:scroll;padding:0}.dropdown .select-list .select-option{cursor:pointer;display:-ms-flexbox;display:flex;padding:12px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.dropdown .select-list .select-option .select-option__flag{margin-right:12px}.dropdown .select-list .select-option .select-option__name{margin-right:.5rem;max-width:100%;overflow:hidden;text-overflow:ellipsis}.dropdown .select-list .select-option .select-option__ddi{color:#697882;font-size:14px;font-family:\"Open Sans\",sans-serif;font-weight:400;line-height:150%}.dropdown .select-list .select-option--focused,.dropdown .select-list .select-option:hover{background-color:#e5eaea}"]
321
+ }),
322
+ __param(3, Inject(PLATFORM_ID))
286
323
  ], CountryPhonePickerComponent);
287
324
  return CountryPhonePickerComponent;
288
325
  }());
289
326
  export { CountryPhonePickerComponent };
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1waG9uZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY291bnRyeS1waG9uZS1waWNrZXIvY291bnRyeS1waG9uZS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdJLE9BQU8sRUFBRSxXQUFXLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdkQsT0FBTyxFQUFvQixVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFZM0U7SUFlRyxxQ0FDb0IseUJBQW9ELEVBQ3BELFNBQTJCLEVBQzNCLElBQWdCO1FBSHBDLGlCQUlLO1FBSGUsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQUNwRCxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUMzQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBZjdCLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUVyQixVQUFLLEdBQUcsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUIsV0FBTSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBTTVCLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBNENmLGVBQVUsR0FBZSxVQUFVLENBQUMsRUFBRSxDQUFDO1FBR3ZDLGFBQVEsR0FBbUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVyRTs7V0FFRztRQUVJLFNBQUksR0FBcUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUc1RCxjQUFTLEdBQXFDLElBQUksWUFBWSxFQUFFLENBQUM7UUF5Q2pFLGFBQVEsR0FBRyxDQUFDLENBQUM7UUE4RVoscUJBQWdCLEdBQUcsVUFBQyxLQUFhO1lBQ3RDLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1QsS0FBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUksQ0FBQyxjQUFjLENBQUM7YUFDbkQ7aUJBQU07Z0JBQ0osS0FBSSxDQUFDLHFCQUFxQixHQUFHLEtBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFVBQUMsT0FBTztvQkFDN0QsSUFBTSxXQUFXLEdBQUcsS0FBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsOENBQTRDLE9BQU8sQ0FBQyxFQUFJLENBQVcsQ0FBQztvQkFDL0csT0FBTyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2dCQUNsRSxDQUFDLENBQUMsQ0FBQzthQUNMO1FBQ0osQ0FBQyxDQUFBO0lBbExHLENBQUM7b0NBbkJLLDJCQUEyQjtJQXFCckMsc0JBQVcsOENBQUs7YUFBaEI7WUFDRyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdEIsQ0FBQzthQUVELFVBQWlCLEtBQXlCO1lBQ3ZDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzlCLENBQUM7OztPQUxBO0lBT00sZ0RBQVUsR0FBakIsVUFBa0IsS0FBeUI7UUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBSSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsRUFBRSxFQUFFO1lBQ1osSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsVUFBQyxFQUFNO29CQUFKLFVBQUU7Z0JBQU8sT0FBQSxFQUFFLElBQUksS0FBSyxDQUFDLEVBQUU7WUFBZCxDQUFjLENBQUMsQ0FBQztZQUN2RSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDaEM7U0FDSDtRQUVELElBQUksS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFFBQVEsRUFBRTtZQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEM7SUFDSixDQUFDO0lBRU0sc0RBQWdCLEdBQXZCLFVBQXdCLFFBQTZDO1FBQ2xFLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7SUFFTSx1REFBaUIsR0FBeEIsVUFBeUIsU0FBOEM7UUFDcEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztJQXdCTSxnREFBVSxHQUFqQixVQUFrQixLQUFpQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNsRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7YUFDcEI7U0FDSDtJQUNKLENBQUM7SUFFTSw4Q0FBUSxHQUFmO1FBQUEsaUJBd0JDOztRQXZCRSxJQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFMUQsVUFBSSxJQUFJLENBQUMsU0FBUywwQ0FBRSxNQUFNLEVBQUU7WUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQUMsT0FBTyxJQUFLLE9BQUEsS0FBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFuQyxDQUFtQyxDQUFDLENBQUM7U0FDM0Y7YUFBTTtZQUNKLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO1NBQ2xDO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDakQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsVUFBQyxLQUFLO1lBQ3JDLEtBQUksQ0FBQyxLQUFLLEdBQUc7Z0JBQ1YsRUFBRSxFQUFFLEtBQUksQ0FBQyxZQUFZLENBQUMsRUFBRTtnQkFDeEIsR0FBRyxFQUFFLEtBQUksQ0FBQyxZQUFZLENBQUMsR0FBRztnQkFDMUIsUUFBUSxFQUFFLEtBQUssYUFBTCxLQUFLLGNBQUwsS0FBSyxHQUFJLEVBQUU7Z0JBQ3JCLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUcsS0FBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTthQUNqRCxDQUFDO1lBQ0YsSUFBSSxLQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNqQixLQUFJLENBQUMsU0FBUyxDQUFDLEtBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM3QjtRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQU1NLCtDQUFTLEdBQWhCLFVBQWlCLEtBQW9CO1FBQ2xDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUU7WUFDN0MsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNaLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3hDO1lBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDekI7YUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1NBQ3BCO2FBQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFdBQVcsRUFBRTtZQUNuQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDckI7YUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNuQjtJQUNKLENBQUM7SUFFRCxzQkFBVyw2Q0FBSTthQUFmO1lBQ0csT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3JCLENBQUM7YUFFRCxVQUFnQixJQUFhO1lBQzFCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBRWxCLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDeEM7UUFDSixDQUFDOzs7T0FSQTtJQVVNLGtEQUFZLEdBQW5CLFVBQW9CLE9BQXlCO1FBQzFDLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxtREFBYSxHQUFwQjtRQUNHLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFTSx1REFBaUIsR0FBeEI7UUFDRyxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRU0sNkNBQU8sR0FBZDs7UUFDRyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztRQUVwQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdEIsT0FBTyxRQUFDLElBQUksQ0FBQyxLQUFLLDBDQUFFLFFBQVEsQ0FBQSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNO2dCQUM5RixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87Z0JBQ2pCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVO1NBQzFCO2FBQU07WUFDSixPQUFPLElBQUksQ0FBQztTQUNkO0lBQ0osQ0FBQztJQUVNLG9EQUFjLEdBQXJCO1FBQ0csT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVNLDRDQUFNLEdBQWIsVUFBYyxLQUF5QjtRQUNwQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU8sZ0VBQTBCLEdBQWxDO1FBQ0csSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztTQUN2QztRQUVELElBQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFVBQUMsT0FBeUIsSUFBSyxPQUFBLE9BQU8sQ0FBQyxFQUFFLEtBQUssSUFBSSxFQUFuQixDQUFtQixDQUFDLENBQUM7UUFFcEcsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDeEUsQ0FBQztJQWFPLCtDQUFTLEdBQWpCO1FBQ0csSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxFQUFFO1lBQzdCLE9BQU87U0FDVDtRQUVELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhCLElBQU0sVUFBVSxHQUFRLFFBQVEsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0QsSUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV4RCxJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzFELElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1lBQ3JCLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN6QztJQUNKLENBQUM7SUFFTyxpREFBVyxHQUFuQjtRQUNHLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMxRCxPQUFPO1NBQ1Q7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUV4QixJQUFNLFVBQVUsR0FBUSxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQy9ELElBQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFeEQsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLEVBQUU7WUFDL0QsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7WUFDckIsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0osQ0FBQztJQUVPLGdEQUFVLEdBQWxCLFVBQW1CLEtBQWE7O1FBQzdCLElBQUksSUFBSSxDQUFDO1FBRVQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEMsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvRCxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTTtnQkFDbEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUk7Z0JBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDeEM7YUFBTTtZQUNKLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7U0FDdkM7UUFFRCxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7O1lBRWpCLEtBQW9CLElBQUEsU0FBQSxTQUFBLElBQUksQ0FBQSwwQkFBQSw0Q0FBRTtnQkFBckIsSUFBTSxLQUFLLGlCQUFBO2dCQUNiLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO29CQUN6QixJQUFJLFVBQVUsRUFBRTt3QkFDYixNQUFNLElBQUksVUFBUSxVQUFVLE9BQUksQ0FBQzt3QkFDakMsT0FBTyxJQUFJLE1BQUksRUFBRSxRQUFVLENBQUM7d0JBQzVCLFVBQVUsR0FBRyxDQUFDLENBQUM7cUJBQ2pCO29CQUVELElBQUksS0FBSyxLQUFLLElBQUksRUFBRTt3QkFDakIsT0FBTyxJQUFJLEtBQUssQ0FBQztxQkFDbkI7aUJBQ0g7cUJBQU07b0JBQ0osVUFBVSxFQUFFLENBQUM7aUJBQ2Y7YUFDSDs7Ozs7Ozs7O1FBRUQsTUFBTSxHQUFHLE1BQUksTUFBTSxNQUFHLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7O2dCQTFQOEMseUJBQXlCO2dCQUN6QyxnQkFBZ0I7Z0JBQ3JCLFVBQVU7O0lBb0NwQztRQURDLEtBQUssRUFBRTtrRUFDbUI7SUFHM0I7UUFEQyxLQUFLLEVBQUU7bUVBQ3NDO0lBRzlDO1FBREMsTUFBTSxFQUFFO2lFQUM0RDtJQU1yRTtRQURDLE1BQU0sRUFBRTs2REFDMEQ7SUFHbkU7UUFEQyxNQUFNLEVBQUU7a0VBQytEO0lBR3hFO1FBREMsU0FBUyxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQzttRUFDWjtJQUc5QjtRQURDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lFQU8xQztJQTZCRDtRQURDLFdBQVcsQ0FBQyxlQUFlLENBQUM7aUVBQ1Q7SUFHcEI7UUFEQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7Z0VBZW5DO0lBL0hTLDJCQUEyQjtRQVZ2QyxTQUFTLENBQUM7WUFDUixRQUFRLEVBQUUsd0JBQXdCO1lBQ2xDLG12REFBb0Q7WUFFcEQsU0FBUyxFQUFFLENBQUM7b0JBQ1QsT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUFNLE9BQUEsNkJBQTJCLEVBQTNCLENBQTJCLENBQUM7b0JBQzFELEtBQUssRUFBRSxJQUFJO2lCQUNiLENBQUM7O1NBQ0osQ0FBQztPQUNXLDJCQUEyQixDQTJRdkM7SUFBRCxrQ0FBQztDQUFBLEFBM1FELElBMlFDO1NBM1FZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBPbkluaXQsIFZpZXdDaGlsZCwgZm9yd2FyZFJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuXG5pbXBvcnQgeyBQaG9uZVNlbGVjdGlvbkRhdGEgfSBmcm9tIFwiLi9tb2RlbHMvcGhvbmUtc2VsZWN0aW9uLWRhdGFcIjtcbmltcG9ydCB7IENvdW50cnlQaG9uZURhdGEsIE9yZGluYXRpb24gfSBmcm9tIFwiLi9tb2RlbHNcIjtcbmltcG9ydCB7IENvdW50cnlQaG9uZVBpY2tlclNlcnZpY2UgfSBmcm9tIFwiLi9jb3VudHJ5LXBob25lLXBpY2tlci5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICAgc2VsZWN0b3I6IFwicy1jb3VudHJ5LXBob25lLXBpY2tlclwiLFxuICAgdGVtcGxhdGVVcmw6IFwiLi9jb3VudHJ5LXBob25lLXBpY2tlci5jb21wb25lbnQuaHRtbFwiLFxuICAgc3R5bGVVcmxzOiBbXCIuL2NvdW50cnktcGhvbmUtcGlja2VyLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgcHJvdmlkZXJzOiBbe1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDb3VudHJ5UGhvbmVQaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICB9XSxcbn0pXG5leHBvcnQgY2xhc3MgQ291bnRyeVBob25lUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICBwdWJsaWMgbWFzazogc3RyaW5nO1xuICAgcHVibGljIHNlbGVjdGVkSXRlbTogQ291bnRyeVBob25lRGF0YTtcbiAgIHB1YmxpYyBjdXJyZW50SXRlbUluZGV4ID0gMDtcbiAgIHB1YmxpYyBmaWx0ZXJlZENvdW50cmllc0xpc3Q6IENvdW50cnlQaG9uZURhdGFbXTtcbiAgIHB1YmxpYyBwaG9uZSA9IG5ldyBGb3JtQ29udHJvbChcIlwiKTtcbiAgIHB1YmxpYyBmaWx0ZXIgPSBuZXcgRm9ybUNvbnRyb2woXCJcIik7XG5cbiAgIHByaXZhdGUgX3ZhbHVlOiBQaG9uZVNlbGVjdGlvbkRhdGE7ICAgXG4gICBwcml2YXRlIF9vbkNoYW5nZTogKHZhbHVlOiBQaG9uZVNlbGVjdGlvbkRhdGEpID0+IHZvaWQ7XG4gICBwcml2YXRlIF9vblRvdWNoZWQ6ICh2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhKSA9PiB2b2lkO1xuICAgcHJpdmF0ZSBfY291bnRyaWVzTGlzdDogQ291bnRyeVBob25lRGF0YVtdO1xuICAgcHJpdmF0ZSBfb3BlbiA9IGZhbHNlO1xuICAgcHJpdmF0ZSBvZmZzZXRUb3AgPSAwO1xuXG4gICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgY291bnRyeVBob25lUGlja2VyU2VydmljZTogQ291bnRyeVBob25lUGlja2VyU2VydmljZSxcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBlUmVmOiBFbGVtZW50UmVmLFxuICAgKSB7IH1cblxuICAgcHVibGljIGdldCB2YWx1ZSgpIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgIH1cblxuICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5tYXNrID0gdGhpcy5nZXRNYXNrKCk7XG4gICB9XG5cbiAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBQaG9uZVNlbGVjdGlvbkRhdGEpOiB2b2lkIHtcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgICAgaWYgKHZhbHVlPy5pZCkge1xuICAgICAgICAgY29uc3QgY291bnRyeSA9IHRoaXMuX2NvdW50cmllc0xpc3QuZmlsdGVyKCh7IGlkIH0pID0+IGlkID09IHZhbHVlLmlkKTtcbiAgICAgICAgIGlmIChjb3VudHJ5Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5vblNlbGVjdEl0ZW0oY291bnRyeVswXSk7XG4gICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZT8ucmF3VmFsdWUpIHtcbiAgICAgICAgIHRoaXMucGhvbmUuc2V0VmFsdWUodmFsdWUucmF3VmFsdWUpO1xuICAgICAgfVxuICAgfVxuXG4gICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogKHZhbHVlOiBQaG9uZVNlbGVjdGlvbkRhdGEpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgIHRoaXMuX29uQ2hhbmdlID0gb25DaGFuZ2U7XG4gICB9XG5cbiAgIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6ICh2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICB0aGlzLl9vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gICB9XG5cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgY291bnRyaWVzOiBzdHJpbmdbXTtcblxuICAgQElucHV0KClcbiAgIHB1YmxpYyBvcmRpbmF0aW9uOiBPcmRpbmF0aW9uID0gT3JkaW5hdGlvbi5OTztcblxuICAgQE91dHB1dCgpXG4gICBwdWJsaWMgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDb3VudHJ5UGhvbmVEYXRhPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgLyoqXG4gICAgKiBAZGVwcmVjYXRlZCBVc2UgZm9jdXNMb3N0IGV2ZW50IGluc3RlYWQuXG4gICAgKi9cbiAgIEBPdXRwdXQoKVxuICAgcHVibGljIGJsdXI6IEV2ZW50RW1pdHRlcjxQaG9uZVNlbGVjdGlvbkRhdGE+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICBAT3V0cHV0KClcbiAgIHB1YmxpYyBmb2N1c0xvc3Q6IEV2ZW50RW1pdHRlcjxQaG9uZVNlbGVjdGlvbkRhdGE+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICBAVmlld0NoaWxkKFwicGhvbmVJbnB1dFwiLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgcHVibGljIHBob25lSW5wdXQ6IEVsZW1lbnRSZWY7XG5cbiAgIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDpjbGlja1wiLCBbXCIkZXZlbnRcIl0pXG4gICBwdWJsaWMgb25DbGlja291dChldmVudDogTW91c2VFdmVudCkge1xuICAgICAgaWYgKCF0aGlzLmVSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQpKSB7XG4gICAgICAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgIH1cbiAgICAgIH1cbiAgIH1cblxuICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQgeyAgICAgIFxuICAgICAgY29uc3QgY291bnRyaWVzID0gdGhpcy5jb3VudHJ5UGhvbmVQaWNrZXJTZXJ2aWNlLmdldENvdW50cmllcyh0aGlzLm9yZGluYXRpb24pO1xuICAgICAgdGhpcy5maWx0ZXIudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh0aGlzLl9maWx0ZXJDb3VudHJpZXMpO1xuICAgICAgXG4gICAgICBpZiAodGhpcy5jb3VudHJpZXM/Lmxlbmd0aCkge1xuICAgICAgICAgdGhpcy5fY291bnRyaWVzTGlzdCA9IGNvdW50cmllcy5maWx0ZXIoKGNvdW50cnkpID0+IHRoaXMuY291bnRyaWVzLmluY2x1ZGVzKGNvdW50cnkuaWQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICB0aGlzLl9jb3VudHJpZXNMaXN0ID0gY291bnRyaWVzO1xuICAgICAgfVxuICAgICAgdGhpcy5maWx0ZXJlZENvdW50cmllc0xpc3QgPSB0aGlzLl9jb3VudHJpZXNMaXN0O1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLl9nZXRTZWxlY3RlZENvdW50cnlEZWZhdWx0KCk7XG4gICAgICB0aGlzLm1hc2sgPSB0aGlzLmdldE1hc2soKTtcblxuICAgICAgdGhpcy5waG9uZS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgdGhpcy52YWx1ZSA9IHtcbiAgICAgICAgICAgIGlkOiB0aGlzLnNlbGVjdGVkSXRlbS5pZCxcbiAgICAgICAgICAgIGRkaTogdGhpcy5zZWxlY3RlZEl0ZW0uZGRpLFxuICAgICAgICAgICAgcmF3VmFsdWU6IHZhbHVlID8/IFwiXCIsXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUgPyBgJHt0aGlzLl9hcHBseU1hc2sodmFsdWUpfWAgOiBcIlwiLFxuICAgICAgICAgfTtcbiAgICAgICAgIGlmICh0aGlzLl9vbkNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICAgICB9XG4gICAgICB9KTtcbiAgIH1cblxuICAgQEhvc3RCaW5kaW5nKFwiYXR0ci50YWJpbmRleFwiKVxuICAgcHVibGljIHRhYmluZGV4ID0gMDtcblxuICAgQEhvc3RMaXN0ZW5lcihcImtleWRvd25cIiwgW1wiJGV2ZW50XCJdKVxuICAgcHVibGljIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8IGV2ZW50LmtleSA9PT0gXCIgXCIpIHtcbiAgICAgICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gdGhpcy5fY291bnRyaWVzTGlzdFt0aGlzLmN1cnJlbnRJdGVtSW5kZXhdO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtKTtcbiAgICAgICAgIH1cbiAgICAgICAgIHRoaXMub3BlbiA9ICF0aGlzLm9wZW47XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gXCJFc2NhcGVcIikge1xuICAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xuICAgICAgICAgdGhpcy5fbW92ZVRvRG93bigpO1xuICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IFwiQXJyb3dVcFwiKSB7XG4gICAgICAgICB0aGlzLl9tb3ZlVG9VcCgpO1xuICAgICAgfVxuICAgfVxuXG4gICBwdWJsaWMgZ2V0IG9wZW4oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fb3BlbjtcbiAgIH1cblxuICAgcHVibGljIHNldCBvcGVuKG9wZW46IGJvb2xlYW4pIHtcbiAgICAgIHRoaXMuX29wZW4gPSBvcGVuO1xuXG4gICAgICBpZiAoIW9wZW4pIHtcbiAgICAgICAgIHRoaXMucGhvbmVJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9XG4gICB9XG5cbiAgIHB1YmxpYyBvblNlbGVjdEl0ZW0oY291bnRyeTogQ291bnRyeVBob25lRGF0YSkge1xuICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGNvdW50cnk7XG4gICAgICB0aGlzLnBob25lLnNldFZhbHVlKFwiXCIpO1xuICAgICAgdGhpcy5jdXJyZW50SXRlbUluZGV4ID0gdGhpcy5fY291bnRyaWVzTGlzdC5pbmRleE9mKHRoaXMuc2VsZWN0ZWRJdGVtKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbSk7XG4gICB9XG5cbiAgIHB1YmxpYyBvbkNsZWFuRmlsdGVyKCkge1xuICAgICAgdGhpcy5maWx0ZXIuc2V0VmFsdWUoXCJcIik7XG4gICB9XG5cbiAgIHB1YmxpYyBvblBob25lSW5wdXRGb2N1cygpIHtcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgfVxuXG4gICBwdWJsaWMgZ2V0TWFzaygpIHtcbiAgICAgIGNvbnN0IG1hc2sgPSB0aGlzLnNlbGVjdGVkSXRlbS5tYXNrO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShtYXNrKSkge1xuICAgICAgICAgcmV0dXJuICF0aGlzLnZhbHVlPy5yYXdWYWx1ZSB8fCB0aGlzLnZhbHVlLnJhd1ZhbHVlLmxlbmd0aCA8PSBtYXNrWzBdLnJlcGxhY2UoL1teMF0vZywgXCJcIikubGVuZ3RoXG4gICAgICAgICAgICA/IG1hc2tbMF0gLy8gZml4b1xuICAgICAgICAgICAgOiBtYXNrWzFdOyAvLyBjZWx1bGFyXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAgcmV0dXJuIG1hc2s7XG4gICAgICB9XG4gICB9XG5cbiAgIHB1YmxpYyBnZXRQbGFjZWhvbGRlcigpIHtcbiAgICAgIHJldHVybiB0aGlzLm1hc2sucmVwbGFjZSgvOS9nLCBcIlwiKTtcbiAgIH1cblxuICAgcHVibGljIG9uQmx1cih2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhICkge1xuICAgICAgdGhpcy5ibHVyLmVtaXQodmFsdWUpO1xuICAgICAgdGhpcy5mb2N1c0xvc3QuZW1pdCh2YWx1ZSk7XG4gICB9XG5cbiAgIHByaXZhdGUgX2dldFNlbGVjdGVkQ291bnRyeURlZmF1bHQoKSB7XG4gICAgICBpZiAoIXRoaXMuX2NvdW50cmllc0xpc3QubGVuZ3RoKSB7XG4gICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyBjb3VudHJ5IGxvYWRlZFwiKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZmlsdGVyZWRCeUJyID0gdGhpcy5fY291bnRyaWVzTGlzdC5maWx0ZXIoKGNvdW50cnk6IENvdW50cnlQaG9uZURhdGEpID0+IGNvdW50cnkuaWQgPT09IFwiYnJcIik7XG5cbiAgICAgIHJldHVybiBmaWx0ZXJlZEJ5QnIubGVuZ3RoID8gZmlsdGVyZWRCeUJyWzBdIDogdGhpcy5fY291bnRyaWVzTGlzdFswXVxuICAgfVxuXG4gICBwcml2YXRlIF9maWx0ZXJDb3VudHJpZXMgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgdGhpcy5maWx0ZXJlZENvdW50cmllc0xpc3QgPSB0aGlzLl9jb3VudHJpZXNMaXN0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgIHRoaXMuZmlsdGVyZWRDb3VudHJpZXNMaXN0ID0gdGhpcy5fY291bnRyaWVzTGlzdC5maWx0ZXIoKGNvdW50cnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50cnlOYW1lID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChgcGxhdGZvcm0uYW5ndWxhcl9jb21wb25lbnRzLmNvdW50cnlfbmFtZV8ke2NvdW50cnkuaWR9YCkgYXMgc3RyaW5nO1xuICAgICAgICAgICAgcmV0dXJuIGNvdW50cnlOYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsdWUudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICB9KTtcbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSBfbW92ZVRvVXAoKSB7XG4gICAgICBpZiAodGhpcy5jdXJyZW50SXRlbUluZGV4ID09IDApIHtcbiAgICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jdXJyZW50SXRlbUluZGV4LS07XG5cbiAgICAgIGNvbnN0IHNlbGVjdExpc3Q6IGFueSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuc2VsZWN0LWxpc3RcIik7XG4gICAgICBjb25zdCBpdGVtID0gc2VsZWN0TGlzdC5jaGlsZHJlblt0aGlzLmN1cnJlbnRJdGVtSW5kZXhdO1xuXG4gICAgICBpZiAoaXRlbS5vZmZzZXRUb3AgLSBzZWxlY3RMaXN0Lm9mZnNldFRvcCA8PSB0aGlzLm9mZnNldFRvcCkge1xuICAgICAgICAgdGhpcy5vZmZzZXRUb3AgLT0gNDU7XG4gICAgICAgICBzZWxlY3RMaXN0LnNjcm9sbFRvKDAsIHRoaXMub2Zmc2V0VG9wKTtcbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSBfbW92ZVRvRG93bigpIHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRJdGVtSW5kZXggPj0gdGhpcy5fY291bnRyaWVzTGlzdC5sZW5ndGggLSAxKSB7XG4gICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleCsrO1xuXG4gICAgICBjb25zdCBzZWxlY3RMaXN0OiBhbnkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnNlbGVjdC1saXN0XCIpO1xuICAgICAgY29uc3QgaXRlbSA9IHNlbGVjdExpc3QuY2hpbGRyZW5bdGhpcy5jdXJyZW50SXRlbUluZGV4XTtcblxuICAgICAgaWYgKGl0ZW0ub2Zmc2V0VG9wIC0gc2VsZWN0TGlzdC5vZmZzZXRUb3AgPiB0aGlzLm9mZnNldFRvcCArIDE4MCkge1xuICAgICAgICAgdGhpcy5vZmZzZXRUb3AgKz0gNDU7XG4gICAgICAgICBzZWxlY3RMaXN0LnNjcm9sbFRvKDAsIHRoaXMub2Zmc2V0VG9wKTtcbiAgICAgIH1cbiAgIH1cblxuICAgcHJpdmF0ZSBfYXBwbHlNYXNrKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgIGxldCBtYXNrO1xuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnNlbGVjdGVkSXRlbS5tYXNrKSkge1xuICAgICAgICAgY29uc3QgcmF3TWFzayA9IHRoaXMuc2VsZWN0ZWRJdGVtLm1hc2tbMF0ucmVwbGFjZSgvW14wXS9nLCBcIlwiKTtcbiAgICAgICAgIG1hc2sgPSB2YWx1ZS5sZW5ndGggPD0gcmF3TWFzay5sZW5ndGhcbiAgICAgICAgICAgID8gdGhpcy5zZWxlY3RlZEl0ZW0ubWFza1swXSArIFwiXFwwXCJcbiAgICAgICAgICAgIDogdGhpcy5zZWxlY3RlZEl0ZW0ubWFza1sxXSArIFwiXFwwXCI7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAgbWFzayA9IHRoaXMuc2VsZWN0ZWRJdGVtLm1hc2sgKyBcIlxcMFwiO1xuICAgICAgfVxuXG4gICAgICBsZXQgdG9rZW5zID0gXCJcIjtcbiAgICAgIGxldCByZXBsYWNlID0gXCJcIjtcbiAgICAgIGxldCBhY3VtdWxhZG9yID0gMDtcbiAgICAgIGxldCBjb250YWRvciA9IDA7XG5cbiAgICAgIGZvciAoY29uc3QgdG9rZW4gb2YgbWFzaykge1xuICAgICAgICAgaWYgKGlzTmFOKHBhcnNlSW50KHRva2VuKSkpIHtcbiAgICAgICAgICAgIGlmIChhY3VtdWxhZG9yKSB7XG4gICAgICAgICAgICAgICB0b2tlbnMgKz0gYChcXFxcZHske2FjdW11bGFkb3J9fSlgO1xuICAgICAgICAgICAgICAgcmVwbGFjZSArPSBgJCR7Kytjb250YWRvcn1gO1xuICAgICAgICAgICAgICAgYWN1bXVsYWRvciA9IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0b2tlbiAhPT0gXCJcXDBcIikge1xuICAgICAgICAgICAgICAgcmVwbGFjZSArPSB0b2tlbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBhY3VtdWxhZG9yKys7XG4gICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHRva2VucyA9IGBeJHt0b2tlbnN9KmA7XG4gICAgICByZXR1cm4gdGhpcy5waG9uZS52YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAodG9rZW5zKSwgcmVwbGFjZSk7XG4gICB9XG59XG4iXX0=
327
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1waG9uZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY291bnRyeS1waG9uZS1waWNrZXIvY291bnRyeS1waG9uZS1waWNrZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sV0FBVyxFQUNYLFdBQVcsRUFDWCxTQUFTLEVBQ1QsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBb0IsVUFBVSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBZXhEO0lBbUJJLHFDQUNxQiwwQkFBcUQsRUFDckQsVUFBNEIsRUFDNUIsS0FBaUIsRUFDTCxVQUFrQjtRQUpuRCxpQkFLSTtRQUppQiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQTJCO1FBQ3JELGVBQVUsR0FBVixVQUFVLENBQWtCO1FBQzVCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDTCxlQUFVLEdBQVYsVUFBVSxDQUFR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LENBQUM7MEVBQ2pCO0lBbUNyQztRQURDLEtBQUssRUFBRTtrRUFDbUI7SUFHM0I7UUFEQyxLQUFLLEVBQUU7bUVBQ3NDO0lBRzlDO1FBREMsTUFBTSxFQUFFO2lFQUM0RDtJQU1yRTtRQURDLE1BQU0sRUFBRTs2REFDMEQ7SUFHbkU7UUFEQyxNQUFNLEVBQUU7a0VBQytEO0lBR3hFO1FBREMsU0FBUyxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQzttRUFDWjtJQUc5QjtRQURDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lFQU8xQztJQTZCRDtRQURDLFdBQVcsQ0FBQyxlQUFlLENBQUM7aUVBQ1Q7SUFHcEI7UUFEQyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7Z0VBZW5DO0lBaEpRLDJCQUEyQjtRQVp2QyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsd0JBQXdCO1lBQ2xDLHduRUFBb0Q7WUFFcEQsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLDZCQUEyQixFQUEzQixDQUEyQixDQUFDO29CQUMxRCxLQUFLLEVBQUUsSUFBSTtpQkFDZDthQUNKOztTQUNKLENBQUM7UUF3Qk8sV0FBQSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7T0F2QmYsMkJBQTJCLENBNlN2QztJQUFELGtDQUFDO0NBQUEsQUE3U0QsSUE2U0M7U0E3U1ksMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRG9tUG9ydGFsT3V0bGV0LCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFBMQVRGT1JNX0lELFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcblxuaW1wb3J0IHsgaXNOdWxsT3JVbmRlZmluZWQgfSBmcm9tIFwiLi4vdXRpbHNcIjtcbmltcG9ydCB7IENvdW50cnlQaG9uZVBpY2tlclNlcnZpY2UgfSBmcm9tIFwiLi9jb3VudHJ5LXBob25lLXBpY2tlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBDb3VudHJ5UGhvbmVEYXRhLCBPcmRpbmF0aW9uIH0gZnJvbSBcIi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBQaG9uZVNlbGVjdGlvbkRhdGEgfSBmcm9tIFwiLi9tb2RlbHMvcGhvbmUtc2VsZWN0aW9uLWRhdGFcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1jb3VudHJ5LXBob25lLXBpY2tlclwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vY291bnRyeS1waG9uZS1waWNrZXIuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vY291bnRyeS1waG9uZS1waWNrZXIuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ291bnRyeVBob25lUGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvdW50cnlQaG9uZVBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICAgIHB1YmxpYyBtYXNrOiBzdHJpbmc7XG4gICAgcHVibGljIHNlbGVjdGVkSXRlbTogQ291bnRyeVBob25lRGF0YTtcbiAgICBwdWJsaWMgY3VycmVudEl0ZW1JbmRleCA9IDA7XG4gICAgcHVibGljIGZpbHRlcmVkQ291bnRyaWVzTGlzdDogQ291bnRyeVBob25lRGF0YVtdO1xuICAgIHB1YmxpYyBwaG9uZSA9IG5ldyBGb3JtQ29udHJvbChcIlwiKTtcbiAgICBwdWJsaWMgZmlsdGVyID0gbmV3IEZvcm1Db250cm9sKFwiXCIpO1xuICAgIHB1YmxpYyBkcm9wVG9wID0gMDtcbiAgICBwdWJsaWMgZHJvcExlZnQgPSAwO1xuXG4gICAgcHJpdmF0ZSBfdmFsdWU6IFBob25lU2VsZWN0aW9uRGF0YTtcbiAgICBwcml2YXRlIF9vbkNoYW5nZTogKHZhbHVlOiBQaG9uZVNlbGVjdGlvbkRhdGEpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBfb25Ub3VjaGVkOiAodmFsdWU6IFBob25lU2VsZWN0aW9uRGF0YSkgPT4gdm9pZDtcbiAgICBwcml2YXRlIF9jb3VudHJpZXNMaXN0OiBDb3VudHJ5UGhvbmVEYXRhW107XG4gICAgcHJpdmF0ZSBfb3BlbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgb2Zmc2V0VG9wID0gMDtcbiAgICBwcml2YXRlIF9wb3J0YWxIb3N0OiBEb21Qb3J0YWxPdXRsZXQ7XG5cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9jb3VudHJ5UGhvbmVQaWNrZXJTZXJ2aWNlOiBDb3VudHJ5UGhvbmVQaWNrZXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2VSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogT2JqZWN0LFxuICAgICkge31cblxuICAgIEBWaWV3Q2hpbGQoXCJkcm9wZG93blRlbXBsYXRlXCIpXG4gICAgcHVibGljIGRyb3Bkb3duVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBAVmlld0NoaWxkKFwiZHJvcEVsZW1lbnRcIiwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXG4gICAgcHVibGljIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICBAVmlld0NoaWxkKFwiZHJvcEVsZW1lbnRcIiwgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgcHVibGljIGRyb3BFbGVtZW50OiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZChcIiNkcm9wZG93bkNvbnRhaW5lclwiLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBwdWJsaWMgZHJvcGRvd25Db250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMubWFzayA9IHRoaXMuZ2V0TWFzaygpO1xuICAgIH1cblxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBQaG9uZVNlbGVjdGlvbkRhdGEpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuXG4gICAgICAgIGlmICh2YWx1ZT8uaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50cnkgPSB0aGlzLl9jb3VudHJpZXNMaXN0LmZpbHRlcigoeyBpZCB9KSA9PiBpZCA9PSB2YWx1ZS5pZCk7XG4gICAgICAgICAgICBpZiAoY291bnRyeS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uU2VsZWN0SXRlbShjb3VudHJ5WzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZT8ucmF3VmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMucGhvbmUuc2V0VmFsdWUodmFsdWUucmF3VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6ICh2YWx1ZTogUGhvbmVTZWxlY3Rpb25EYXRhKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gb25DaGFuZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKHZhbHVlOiBQaG9uZVNlbGVjdGlvbkRhdGEpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fb25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvdW50cmllczogc3RyaW5nW107XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvcmRpbmF0aW9uOiBPcmRpbmF0aW9uID0gT3JkaW5hdGlvbi5OTztcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBzZWxlY3RlZDogRXZlbnRFbWl0dGVyPENvdW50cnlQaG9uZURhdGE+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgVXNlIGZvY3VzTG9zdCBldmVudCBpbnN0ZWFkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBibHVyOiBFdmVudEVtaXR0ZXI8UGhvbmVTZWxlY3Rpb25EYXRhPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBmb2N1c0xvc3Q6IEV2ZW50RW1pdHRlcjxQaG9uZVNlbGVjdGlvbkRhdGE+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQFZpZXdDaGlsZChcInBob25lSW5wdXRcIiwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgcGhvbmVJbnB1dDogRWxlbWVudFJlZjtcblxuICAgIEBIb3N0TGlzdGVuZXIoXCJkb2N1bWVudDpjbGlja1wiLCBbXCIkZXZlbnRcIl0pXG4gICAgcHVibGljIG9uQ2xpY2tvdXQoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9lUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgICAgICAgaWYgKHRoaXMub3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb3VudHJpZXMgPSB0aGlzLl9jb3VudHJ5UGhvbmVQaWNrZXJTZXJ2aWNlLmdldENvdW50cmllcyh0aGlzLm9yZGluYXRpb24pO1xuICAgICAgICB0aGlzLmZpbHRlci52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHRoaXMuX2ZpbHRlckNvdW50cmllcyk7XG5cbiAgICAgICAgaWYgKHRoaXMuY291bnRyaWVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvdW50cmllc0xpc3QgPSBjb3VudHJpZXMuZmlsdGVyKChjb3VudHJ5KSA9PiB0aGlzLmNvdW50cmllcy5pbmNsdWRlcyhjb3VudHJ5LmlkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9jb3VudHJpZXNMaXN0ID0gY291bnRyaWVzO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsdGVyZWRDb3VudHJpZXNMaXN0ID0gdGhpcy5fY291bnRyaWVzTGlzdDtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLl9nZXRTZWxlY3RlZENvdW50cnlEZWZhdWx0KCk7XG4gICAgICAgIHRoaXMubWFzayA9IHRoaXMuZ2V0TWFzaygpO1xuXG4gICAgICAgIHRoaXMucGhvbmUudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB7XG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWRJdGVtLmlkLFxuICAgICAgICAgICAgICAgIGRkaTogdGhpcy5zZWxlY3RlZEl0ZW0uZGRpLFxuICAgICAgICAgICAgICAgIHJhd1ZhbHVlOiB2YWx1ZSA/PyBcIlwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSA/IGAke3RoaXMuX2FwcGx5TWFzayh2YWx1ZSl9YCA6IFwiXCIsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKHRoaXMuX29uQ2hhbmdlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZyhcImF0dHIudGFiaW5kZXhcIilcbiAgICBwdWJsaWMgdGFiaW5kZXggPSAwO1xuXG4gICAgQEhvc3RMaXN0ZW5lcihcImtleWRvd25cIiwgW1wiJGV2ZW50XCJdKVxuICAgIHB1YmxpYyBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8IGV2ZW50LmtleSA9PT0gXCIgXCIpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMuX2NvdW50cmllc0xpc3RbdGhpcy5jdXJyZW50SXRlbUluZGV4XTtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQodGhpcy5zZWxlY3RlZEl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcbiAgICAgICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09IFwiRXNjYXBlXCIpIHtcbiAgICAgICAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd0Rvd25cIikge1xuICAgICAgICAgICAgdGhpcy5fbW92ZVRvRG93bigpO1xuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gXCJBcnJvd1VwXCIpIHtcbiAgICAgICAgICAgIHRoaXMuX21vdmVUb1VwKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG9wZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcGVuO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgb3BlbihvcGVuOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX29wZW4gPSBvcGVuO1xuXG4gICAgICAgIGlmIChvcGVuKSB7XG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVEcm9wZG93blBvcnRhbCgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuX3BvcnRhbEhvc3QgJiYgdGhpcy5fcG9ydGFsSG9zdC5oYXNBdHRhY2hlZCgpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcG9ydGFsSG9zdC5kZXRhY2goKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucGhvbmVJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25TZWxlY3RJdGVtKGNvdW50cnk6IENvdW50cnlQaG9uZURhdGEpIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gY291bnRyeTtcbiAgICAgICAgdGhpcy5waG9uZS5zZXRWYWx1ZShcIlwiKTtcbiAgICAgICAgdGhpcy5jdXJyZW50SXRlbUluZGV4ID0gdGhpcy5fY291bnRyaWVzTGlzdC5pbmRleE9mKHRoaXMuc2VsZWN0ZWRJdGVtKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25DbGVhbkZpbHRlcigpIHtcbiAgICAgICAgdGhpcy5maWx0ZXIuc2V0VmFsdWUoXCJcIik7XG4gICAgfVxuXG4gICAgcHVibGljIG9uUGhvbmVJbnB1dEZvY3VzKCkge1xuICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TWFzaygpIHtcbiAgICAgICAgY29uc3QgbWFzayA9IHRoaXMuc2VsZWN0ZWRJdGVtLm1hc2s7XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkobWFzaykpIHtcbiAgICAgICAgICAgIHJldHVybiAhdGhpcy52YWx1ZT8ucmF3VmFsdWUgfHwgdGhpcy52YWx1ZS5yYXdWYWx1ZS5sZW5ndGggPD0gbWFza1swXS5yZXBsYWNlKC9bXjBdL2csIFwiXCIpLmxlbmd0aFxuICAgICAgICAgICAgICAgID8gbWFza1swXSAvLyBmaXhvXG4gICAgICAgICAgICAgICAgOiBtYXNrWzFdOyAvLyBjZWx1bGFyXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gbWFzaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRQbGFjZWhvbGRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFzay5yZXBsYWNlKC85L2csIFwiXCIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkJsdXIodmFsdWU6IFBob25lU2VsZWN0aW9uRGF0YSkge1xuICAgICAgICB0aGlzLmJsdXIuZW1pdCh2YWx1ZSk7XG4gICAgICAgIHRoaXMuZm9jdXNMb3N0LmVtaXQodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldFNlbGVjdGVkQ291bnRyeURlZmF1bHQoKSB7XG4gICAgICAgIGlmICghdGhpcy5fY291bnRyaWVzTGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIk5vIGNvdW50cnkgbG9hZGVkXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmlsdGVyZWRCeUJyID0gdGhpcy5fY291bnRyaWVzTGlzdC5maWx0ZXIoKGNvdW50cnk6IENvdW50cnlQaG9uZURhdGEpID0+IGNvdW50cnkuaWQgPT09IFwiYnJcIik7XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkQnlCci5sZW5ndGggPyBmaWx0ZXJlZEJ5QnJbMF0gOiB0aGlzLl9jb3VudHJpZXNMaXN0WzBdO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2ZpbHRlckNvdW50cmllcyA9ICh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRDb3VudHJpZXNMaXN0ID0gdGhpcy5fY291bnRyaWVzTGlzdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRDb3VudHJpZXNMaXN0ID0gdGhpcy5fY291bnRyaWVzTGlzdC5maWx0ZXIoKGNvdW50cnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb3VudHJ5TmFtZSA9IHRoaXMuX3RyYW5zbGF0ZS5pbnN0YW50KGBwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuY291bnRyeV9uYW1lXyR7Y291bnRyeS5pZH1gKSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50cnlOYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsdWUudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBwcml2YXRlIF9tb3ZlVG9VcCgpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEl0ZW1JbmRleCA9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmN1cnJlbnRJdGVtSW5kZXgtLTtcblxuICAgICAgICBjb25zdCBzZWxlY3RMaXN0OiBhbnkgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFwiLnNlbGVjdC1saXN0XCIpO1xuICAgICAgICBjb25zdCBpdGVtID0gc2VsZWN0TGlzdC5jaGlsZHJlblt0aGlzLmN1cnJlbnRJdGVtSW5kZXhdO1xuXG4gICAgICAgIGlmIChpdGVtLm9mZnNldFRvcCAtIHNlbGVjdExpc3Qub2Zmc2V0VG9wIDw9IHRoaXMub2Zmc2V0VG9wKSB7XG4gICAgICAgICAgICB0aGlzLm9mZnNldFRvcCAtPSA0NTtcbiAgICAgICAgICAgIHNlbGVjdExpc3Quc2Nyb2xsVG8oMCwgdGhpcy5vZmZzZXRUb3ApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbW92ZVRvRG93bigpIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEl0ZW1JbmRleCA+PSB0aGlzLl9jb3VudHJpZXNMaXN0Lmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW1JbmRleCsrO1xuXG4gICAgICAgIGNvbnN0IHNlbGVjdExpc3Q6IGFueSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuc2VsZWN0LWxpc3RcIik7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBzZWxlY3RMaXN0LmNoaWxkcmVuW3RoaXMuY3VycmVudEl0ZW1JbmRleF07XG5cbiAgICAgICAgaWYgKGl0ZW0ub2Zmc2V0VG9wIC0gc2VsZWN0TGlzdC5vZmZzZXRUb3AgPiB0aGlzLm9mZnNldFRvcCArIDE4MCkge1xuICAgICAgICAgICAgdGhpcy5vZmZzZXRUb3AgKz0gNDU7XG4gICAgICAgICAgICBzZWxlY3RMaXN0LnNjcm9sbFRvKDAsIHRoaXMub2Zmc2V0VG9wKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX2FwcGx5TWFzayh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGxldCBtYXNrO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuc2VsZWN0ZWRJdGVtLm1hc2spKSB7XG4gICAgICAgICAgICBjb25zdCByYXdNYXNrID0gdGhpcy5zZWxlY3RlZEl0ZW0ubWFza1swXS5yZXBsYWNlKC9bXjBdL2csIFwiXCIpO1xuICAgICAgICAgICAgbWFzayA9IHZhbHVlLmxlbmd0aCA8PSByYXdNYXNrLmxlbmd0aCA/IHRoaXMuc2VsZWN0ZWRJdGVtLm1hc2tbMF0gKyBcIlxcMFwiIDogdGhpcy5zZWxlY3RlZEl0ZW0ubWFza1sxXSArIFwiXFwwXCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtYXNrID0gdGhpcy5zZWxlY3RlZEl0ZW0ubWFzayArIFwiXFwwXCI7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdG9rZW5zID0gXCJcIjtcbiAgICAgICAgbGV0IHJlcGxhY2UgPSBcIlwiO1xuICAgICAgICBsZXQgYWN1bXVsYWRvciA9IDA7XG4gICAgICAgIGxldCBjb250YWRvciA9IDA7XG5cbiAgICAgICAgZm9yIChjb25zdCB0b2tlbiBvZiBtYXNrKSB7XG4gICAgICAgICAgICBpZiAoaXNOYU4ocGFyc2VJbnQodG9rZW4pKSkge1xuICAgICAgICAgICAgICAgIGlmIChhY3VtdWxhZG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHRva2VucyArPSBgKFxcXFxkeyR7YWN1bXVsYWRvcn19KWA7XG4gICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKz0gYCQkeysrY29udGFkb3J9YDtcbiAgICAgICAgICAgICAgICAgICAgYWN1bXVsYWRvciA9IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRva2VuICE9PSBcIlxcMFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcGxhY2UgKz0gdG9rZW47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBhY3VtdWxhZG9yKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0b2tlbnMgPSBgXiR7dG9rZW5zfSpgO1xuICAgICAgICByZXR1cm4gdGhpcy5waG9uZS52YWx1ZS5yZXBsYWNlKG5ldyBSZWdFeHAodG9rZW5zKSwgcmVwbGFjZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlRHJvcGRvd25Qb3J0YWwoKTogdm9pZCB7XG4gICAgICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSB8fCBpc051bGxPclVuZGVmaW5lZCh0aGlzLmRyb3BFbGVtZW50KSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IGJvZHlFbGVtZW50ID0gZG9jdW1lbnQuYm9keTtcbiAgICAgICAgY29uc3QgZHJvcEVsZW1lbnRSZWN0ID0gdGhpcy5kcm9wRWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIHRoaXMuZHJvcFRvcCA9IGRyb3BFbGVtZW50UmVjdC5ib3R0b20gKyB3aW5kb3cuc2Nyb2xsWTtcbiAgICAgICAgdGhpcy5kcm9wTGVmdCA9IGRyb3BFbGVtZW50UmVjdC5sZWZ0ICsgd2luZG93LnNjcm9sbFg7XG5cbiAgICAgICAgdGhpcy5fcG9ydGFsSG9zdCA9IG5ldyBEb21Qb3J0YWxPdXRsZXQoYm9keUVsZW1lbnQsIG51bGwsIG51bGwsIG51bGwpO1xuICAgICAgICBjb25zdCBwb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5kcm9wZG93blRlbXBsYXRlLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLl9wb3J0YWxIb3N0LmF0dGFjaChwb3J0YWwpO1xuICAgIH1cbn1cbiJdfQ==
@@ -2,6 +2,7 @@ import { __decorate } from "tslib";
2
2
  import { NgModule } from "@angular/core";
3
3
  import { CommonModule } from "@angular/common";
4
4
  import { ReactiveFormsModule } from "@angular/forms";
5
+ import { PortalModule } from "@angular/cdk/portal";
5
6
  import { TranslateModule } from "@ngx-translate/core";
6
7
  import { NgxMaskModule } from "ngx-mask";
7
8
  import { CountryPhonePickerService } from "./country-phone-picker.service";
@@ -16,6 +17,7 @@ var CountryPhonePickerModule = /** @class */ (function () {
16
17
  TranslateModule,
17
18
  ReactiveFormsModule,
18
19
  NgxMaskModule.forRoot(),
20
+ PortalModule,
19
21
  ],
20
22
  declarations: [CountryPhonePickerComponent],
21
23
  exports: [CountryPhonePickerComponent],
@@ -25,4 +27,4 @@ var CountryPhonePickerModule = /** @class */ (function () {
25
27
  return CountryPhonePickerModule;
26
28
  }());
27
29
  export { CountryPhonePickerModule };
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1waG9uZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY291bnRyeS1waG9uZS1waWNrZXIvY291bnRyeS1waG9uZS1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUV6QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQWEvRTtJQUFBO0lBQXdDLENBQUM7SUFBNUIsd0JBQXdCO1FBWHBDLFFBQVEsQ0FBQztZQUNQLE9BQU8sRUFBRTtnQkFDTixZQUFZO2dCQUNaLGVBQWU7Z0JBQ2YsbUJBQW1CO2dCQUNuQixhQUFhLENBQUMsT0FBTyxFQUFFO2FBQ3pCO1lBQ0QsWUFBWSxFQUFFLENBQUMsMkJBQTJCLENBQUM7WUFDM0MsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7WUFDdEMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7U0FDeEMsQ0FBQztPQUNXLHdCQUF3QixDQUFJO0lBQUQsK0JBQUM7Q0FBQSxBQUF6QyxJQUF5QztTQUE1Qix3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5pbXBvcnQgeyBOZ3hNYXNrTW9kdWxlIH0gZnJvbSBcIm5neC1tYXNrXCI7XG5cbmltcG9ydCB7IENvdW50cnlQaG9uZVBpY2tlclNlcnZpY2UgfSBmcm9tIFwiLi9jb3VudHJ5LXBob25lLXBpY2tlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBDb3VudHJ5UGhvbmVQaWNrZXJDb21wb25lbnQgfSBmcm9tIFwiLi9jb3VudHJ5LXBob25lLXBpY2tlci5jb21wb25lbnRcIjtcblxuQE5nTW9kdWxlKHtcbiAgIGltcG9ydHM6IFtcbiAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICBOZ3hNYXNrTW9kdWxlLmZvclJvb3QoKSxcbiAgIF0sXG4gICBkZWNsYXJhdGlvbnM6IFtDb3VudHJ5UGhvbmVQaWNrZXJDb21wb25lbnRdLFxuICAgZXhwb3J0czogW0NvdW50cnlQaG9uZVBpY2tlckNvbXBvbmVudF0sXG4gICBwcm92aWRlcnM6IFtDb3VudHJ5UGhvbmVQaWNrZXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ291bnRyeVBob25lUGlja2VyTW9kdWxlIHsgfSJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS1waG9uZS1waWNrZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY291bnRyeS1waG9uZS1waWNrZXIvY291bnRyeS1waG9uZS1waWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFekMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFjL0U7SUFBQTtJQUF3QyxDQUFDO0lBQTVCLHdCQUF3QjtRQVpwQyxRQUFRLENBQUM7WUFDUCxPQUFPLEVBQUU7Z0JBQ04sWUFBWTtnQkFDWixlQUFlO2dCQUNmLG1CQUFtQjtnQkFDbkIsYUFBYSxDQUFDLE9BQU8sRUFBRTtnQkFDdkIsWUFBWTthQUNkO1lBQ0QsWUFBWSxFQUFFLENBQUMsMkJBQTJCLENBQUM7WUFDM0MsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7WUFDdEMsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7U0FDeEMsQ0FBQztPQUNXLHdCQUF3QixDQUFJO0lBQUQsK0JBQUM7Q0FBQSxBQUF6QyxJQUF5QztTQUE1Qix3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgTmd4TWFza01vZHVsZSB9IGZyb20gXCJuZ3gtbWFza1wiO1xuXG5pbXBvcnQgeyBDb3VudHJ5UGhvbmVQaWNrZXJTZXJ2aWNlIH0gZnJvbSBcIi4vY291bnRyeS1waG9uZS1waWNrZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgQ291bnRyeVBob25lUGlja2VyQ29tcG9uZW50IH0gZnJvbSBcIi4vY291bnRyeS1waG9uZS1waWNrZXIuY29tcG9uZW50XCI7XG5cbkBOZ01vZHVsZSh7XG4gICBpbXBvcnRzOiBbXG4gICAgICBDb21tb25Nb2R1bGUsXG4gICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgTmd4TWFza01vZHVsZS5mb3JSb290KCksXG4gICAgICBQb3J0YWxNb2R1bGUsXG4gICBdLFxuICAgZGVjbGFyYXRpb25zOiBbQ291bnRyeVBob25lUGlja2VyQ29tcG9uZW50XSxcbiAgIGV4cG9ydHM6IFtDb3VudHJ5UGhvbmVQaWNrZXJDb21wb25lbnRdLFxuICAgcHJvdmlkZXJzOiBbQ291bnRyeVBob25lUGlja2VyU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIENvdW50cnlQaG9uZVBpY2tlck1vZHVsZSB7IH0iXX0=
@@ -74,11 +74,11 @@ var IAInsightCardComponent = /** @class */ (function () {
74
74
  IAInsightCardComponent = __decorate([
75
75
  Component({
76
76
  selector: "s-ia-insight-card",
77
- template: "<div class=\"ia-insight-card\" [ngClass]=\"{ 'ia-insight-card--close': !open }\">\n <div class=\"header\" (click)=\"toggle()\">\n <s-badge text=\"Insight\" iconClass=\"fal fa-lightbulb\"></s-badge>\n <span class=\"insight-title\">{{ insight.title }}</span>\n <span\n class=\"toggle-icon fas\"\n [ngClass]=\"{\n 'fa-angle-down': !open,\n 'fa-angle-up': open\n }\"\n >\n </span>\n </div>\n <div class=\"content\">\n <ng-container *ngIf=\"isLoading; then loadingBlock; else contentBlock\"></ng-container>\n <ng-template #loadingBlock>\n <s-ia-insight-card-loader></s-ia-insight-card-loader>\n </ng-template>\n <ng-template #contentBlock>\n <ng-container *ngIf=\"content; then successBlock; else errorBlock\"></ng-container>\n\n <ng-template #successBlock>\n <span class=\"text\" [innerHTML]=\"content\"></span>\n </ng-template>\n <ng-template #errorBlock>\n <span class=\"text text--error\">{{ \"platform.angular_components.error_loading_insight_alt\" | translate }}</span>\n </ng-template>\n\n <div class=\"options\">\n <button [disabled]=\"!content\" (click)=\"copyContent()\" class=\"option fal fa-copy\"></button>\n <button (click)=\"reloadContent()\" class=\"option fal fa-redo\"></button>\n <button\n *ngIf=\"insight.onLikeSelected\"\n [disabled]=\"!content\"\n (click)=\"onLikeSelected()\"\n class=\"option\"\n [ngClass]=\"{\n 'fal': !likeSelected,\n 'fas': likeSelected,\n 'fa-thumbs-up': true\n }\">\n </button>\n <button\n *ngIf=\"insight.onDislikeSelected\"\n [disabled]=\"!content\"\n (click)=\"onDislikeSelected()\"\n class=\"option\"\n [ngClass]=\"{\n 'fal': !dislikeSelected,\n 'fas': dislikeSelected,\n 'fa-thumbs-down': true\n }\">\n </button>\n </div>\n </ng-template>\n </div>\n</div>\n",
77
+ template: "<div class=\"ia-insight-card\" [ngClass]=\"{ 'ia-insight-card--close': !open }\">\n <div class=\"header\" (click)=\"toggle()\">\n <s-badge text=\"Insight\" iconClass=\"fal fa-lightbulb\"></s-badge>\n <span class=\"insight-title\">{{ insight.title }}</span>\n <span\n class=\"toggle-icon fas\"\n [ngClass]=\"{\n 'fa-angle-down': !open,\n 'fa-angle-up': open\n }\"\n >\n </span>\n </div>\n <div class=\"content\">\n <ng-container *ngIf=\"isLoading; then loadingBlock; else contentBlock\"></ng-container>\n <ng-template #loadingBlock>\n <s-ia-insight-card-loader></s-ia-insight-card-loader>\n </ng-template>\n <ng-template #contentBlock>\n <ng-container *ngIf=\"content; then successBlock; else errorBlock\"></ng-container>\n\n <ng-template #successBlock>\n <span class=\"text\" [innerHTML]=\"content\"></span>\n </ng-template>\n <ng-template #errorBlock>\n <span class=\"text text--error\">{{ \"platform.angular_components.error_loading_insight_alt\" | translate }}</span>\n </ng-template>\n\n <div class=\"options\">\n <button [disabled]=\"!content\" (click)=\"copyContent()\" class=\"option\">\n <i class=\"fal fa-copy\"></i>\n </button>\n <button (click)=\"reloadContent()\" class=\"option\">\n <i class=\"fal fa-redo\"></i>\n </button>\n <button\n *ngIf=\"insight.onLikeSelected\"\n [disabled]=\"!content\"\n (click)=\"onLikeSelected()\"\n class=\"option\"\n >\n <i [ngClass]=\"{\n 'fal': !likeSelected,\n 'fas': likeSelected,\n 'fa-thumbs-up': true\n }\"></i>\n </button>\n <button\n *ngIf=\"insight.onDislikeSelected\"\n [disabled]=\"!content\"\n (click)=\"onDislikeSelected()\"\n class=\"option\"\n >\n <i [ngClass]=\"{\n 'fal': !dislikeSelected,\n 'fas': dislikeSelected,\n 'fa-thumbs-down': true\n }\"></i>\n </button>\n </div>\n </ng-template>\n </div>\n</div>\n",
78
78
  styles: [".ia-insight-card{background-color:#fff;border:1px solid #9ecad4;border-radius:4px;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.ia-insight-card .header{-ms-flex-align:center;align-items:center;background-color:#f1f7f8;border-bottom:1px solid #9ecad4;display:-ms-flexbox;display:flex;gap:8px;min-height:60px;padding:8px 16px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.ia-insight-card .header .insight-title{color:#428bca;-ms-flex-positive:1;flex-grow:1;font-family:\"Open Sans\",sans-serif;font-size:14px;line-height:150%}.ia-insight-card .header .toggle-icon{color:#888b99;font-size:20px}.ia-insight-card .content{-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;cursor:auto;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:16px;min-height:160px;padding:24px}.ia-insight-card .content .text{color:#212533;font-family:\"Open Sans\",sans-serif;font-size:14px;width:100%}.ia-insight-card .content .text--error{text-align:center}.ia-insight-card .content .options{display:-ms-flexbox;display:flex;gap:8px}.ia-insight-card .content .options .option{background-color:transparent;border:none;color:#428bca;cursor:pointer;font-size:12px}.ia-insight-card .content .options .option:disabled{color:#c1c1cc;cursor:auto}.ia-insight-card--close{border-color:#dedce5}.ia-insight-card--close .header{background-color:#fbfafc;border:#dedce5}.ia-insight-card--close .header .insight-title{color:#888b99}.ia-insight-card--close .content{display:none}"]
79
79
  })
80
80
  ], IAInsightCardComponent);
81
81
  return IAInsightCardComponent;
82
82
  }());
83
83
  export { IAInsightCardComponent };
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWEtaW5zaWdodC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2lhLWluc2lnaHQvY29tcG9uZW50cy9pYS1pbnNpZ2h0LWNhcmQvaWEtaW5zaWdodC1jYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlqRCxJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFPakM7SUFXSSxnQ0FDcUIsU0FBb0IsRUFDcEIsY0FBOEIsRUFDOUIsZ0JBQWtDO1FBRmxDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFWaEQsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUNiLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsb0JBQWUsR0FBRyxLQUFLLENBQUM7SUFNNUIsQ0FBQztJQUVHLHVDQUFNLEdBQWI7UUFDSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUV2QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLCtDQUFjLEdBQXJCOztRQUNJLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUM3QjthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDN0IsTUFBQSxNQUFBLElBQUksQ0FBQyxPQUFPLEVBQUMsY0FBYyxtREFBSztTQUNuQztJQUNMLENBQUM7SUFFTSxrREFBaUIsR0FBeEI7O1FBQ0ksSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1NBQ2hDO2FBQU07WUFDSCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixNQUFBLE1BQUEsSUFBSSxDQUFDLE9BQU8sRUFBQyxpQkFBaUIsbURBQUs7U0FDdEM7SUFDTCxDQUFDO0lBRU0sNENBQVcsR0FBbEI7O1FBQ0ksTUFBQSxNQUFBLElBQUksQ0FBQyxPQUFPLEVBQUMsTUFBTSxtREFBRyxJQUFJLENBQUMsT0FBTyxFQUFFO1FBRXBDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO2dCQUNwQixRQUFRLEVBQUUsTUFBTTtnQkFDaEIsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsaURBQWlELENBQUM7YUFDNUYsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRU0sOENBQWEsR0FBcEI7UUFDSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGdEQUFlLEdBQXZCO1FBQUEsaUJBV0M7UUFWRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7YUFDaEIsSUFBSSxDQUNELEtBQUssRUFBRSxFQUNQLFFBQVEsQ0FBQyxjQUFNLE9BQUEsQ0FBQyxLQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxFQUF4QixDQUF3QixDQUFDLENBQzNDO2FBQ0EsU0FBUyxDQUFDLFVBQUMsT0FBZTtZQUN2QixLQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOztnQkF6RCtCLFNBQVM7Z0JBQ0osY0FBYztnQkFDWixnQkFBZ0I7O0lBWnZEO1FBREMsS0FBSyxFQUFFOzJEQUNzQjtJQUZyQixzQkFBc0I7UUFMbEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLG1CQUFtQjtZQUM3QixpNEVBQStDOztTQUVsRCxDQUFDO09BQ1csc0JBQXNCLENBc0VsQztJQUFELDZCQUFDO0NBQUEsQUF0RUQsSUFzRUM7U0F0RVksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jbGlwYm9hcmRcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgZmlyc3QgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuaW1wb3J0IHsgSUFJbnNpZ2h0SXRlbSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvaWEtaW5zaWdodC1pdGVtXCI7XG5cbmNvbnN0IG1hcmtlZCA9IHJlcXVpcmUoXCJtYXJrZWRcIik7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtaWEtaW5zaWdodC1jYXJkXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9pYS1pbnNpZ2h0LWNhcmQuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vaWEtaW5zaWdodC1jYXJkLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBJQUluc2lnaHRDYXJkQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbnNpZ2h0OiBJQUluc2lnaHRJdGVtO1xuXG4gICAgcHVibGljIG9wZW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgcHVibGljIGNvbnRlbnQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBsaWtlU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgZGlzbGlrZVNlbGVjdGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjbGlwYm9hcmQ6IENsaXBib2FyZCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuXG4gICAgICAgIHRoaXMuX3JlcXVlc3RJbnNpZ2h0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTGlrZVNlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5saWtlU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMubGlrZVNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxpa2VTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmRpc2xpa2VTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pbnNpZ2h0Lm9uTGlrZVNlbGVjdGVkPy4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkRpc2xpa2VTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzbGlrZVNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2xpa2VTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaXNsaWtlU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5saWtlU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuaW5zaWdodC5vbkRpc2xpa2VTZWxlY3RlZD8uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY29weUNvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5zaWdodC5vbkNvcHk/Lih0aGlzLmNvbnRlbnQpO1xuXG4gICAgICAgIGlmICh0aGlzLmNsaXBib2FyZC5jb3B5KHRoaXMuY29udGVudCkpIHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJpbmZvXCIsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuY29waWVkX3RvX2NsaXBib2FyZFwiKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlbG9hZENvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlcXVlc3RJbnNpZ2h0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVxdWVzdEluc2lnaHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmluc2lnaHQucmVxdWVzdCRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMuaXNMb2FkaW5nID0gZmFsc2UpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY29udGVudDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gbWFya2VkLm1hcmtlZChjb250ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWEtaW5zaWdodC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2lhLWluc2lnaHQvY29tcG9uZW50cy9pYS1pbnNpZ2h0LWNhcmQvaWEtaW5zaWdodC1jYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUlqRCxJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFPakM7SUFXSSxnQ0FDcUIsU0FBb0IsRUFDcEIsY0FBOEIsRUFDOUIsZ0JBQWtDO1FBRmxDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFWaEQsU0FBSSxHQUFHLEtBQUssQ0FBQztRQUNiLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFHbEIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsb0JBQWUsR0FBRyxLQUFLLENBQUM7SUFNNUIsQ0FBQztJQUVHLHVDQUFNLEdBQWI7UUFDSSxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUV2QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLCtDQUFjLEdBQXJCOztRQUNJLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUM3QjthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7WUFDekIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7WUFDN0IsTUFBQSxNQUFBLElBQUksQ0FBQyxPQUFPLEVBQUMsY0FBYyxtREFBSztTQUNuQztJQUNMLENBQUM7SUFFTSxrREFBaUIsR0FBeEI7O1FBQ0ksSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO1NBQ2hDO2FBQU07WUFDSCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixNQUFBLE1BQUEsSUFBSSxDQUFDLE9BQU8sRUFBQyxpQkFBaUIsbURBQUs7U0FDdEM7SUFDTCxDQUFDO0lBRU0sNENBQVcsR0FBbEI7O1FBQ0ksTUFBQSxNQUFBLElBQUksQ0FBQyxPQUFPLEVBQUMsTUFBTSxtREFBRyxJQUFJLENBQUMsT0FBTyxFQUFFO1FBRXBDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO2dCQUNwQixRQUFRLEVBQUUsTUFBTTtnQkFDaEIsT0FBTyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsaURBQWlELENBQUM7YUFDNUYsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRU0sOENBQWEsR0FBcEI7UUFDSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGdEQUFlLEdBQXZCO1FBQUEsaUJBV0M7UUFWRyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUV0QixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7YUFDaEIsSUFBSSxDQUNELEtBQUssRUFBRSxFQUNQLFFBQVEsQ0FBQyxjQUFNLE9BQUEsQ0FBQyxLQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxFQUF4QixDQUF3QixDQUFDLENBQzNDO2FBQ0EsU0FBUyxDQUFDLFVBQUMsT0FBZTtZQUN2QixLQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOztnQkF6RCtCLFNBQVM7Z0JBQ0osY0FBYztnQkFDWixnQkFBZ0I7O0lBWnZEO1FBREMsS0FBSyxFQUFFOzJEQUNzQjtJQUZyQixzQkFBc0I7UUFMbEMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLG1CQUFtQjtZQUM3QiwraUZBQStDOztTQUVsRCxDQUFDO09BQ1csc0JBQXNCLENBc0VsQztJQUFELDZCQUFDO0NBQUEsQUF0RUQsSUFzRUM7U0F0RVksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpcGJvYXJkIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9jbGlwYm9hcmRcIjtcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSBcInByaW1lbmcvYXBpXCI7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgZmlyc3QgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuaW1wb3J0IHsgSUFJbnNpZ2h0SXRlbSB9IGZyb20gXCIuLi8uLi9tb2RlbHMvaWEtaW5zaWdodC1pdGVtXCI7XG5cbmNvbnN0IG1hcmtlZCA9IHJlcXVpcmUoXCJtYXJrZWRcIik7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtaWEtaW5zaWdodC1jYXJkXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9pYS1pbnNpZ2h0LWNhcmQuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vaWEtaW5zaWdodC1jYXJkLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBJQUluc2lnaHRDYXJkQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpbnNpZ2h0OiBJQUluc2lnaHRJdGVtO1xuXG4gICAgcHVibGljIG9wZW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgcHVibGljIGNvbnRlbnQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBsaWtlU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgZGlzbGlrZVNlbGVjdGVkID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjbGlwYm9hcmQ6IENsaXBib2FyZCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICApIHt9XG5cbiAgICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuXG4gICAgICAgIHRoaXMuX3JlcXVlc3RJbnNpZ2h0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTGlrZVNlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5saWtlU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMubGlrZVNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxpa2VTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmRpc2xpa2VTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5pbnNpZ2h0Lm9uTGlrZVNlbGVjdGVkPy4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbkRpc2xpa2VTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzbGlrZVNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2xpa2VTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaXNsaWtlU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5saWtlU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuaW5zaWdodC5vbkRpc2xpa2VTZWxlY3RlZD8uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY29weUNvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5zaWdodC5vbkNvcHk/Lih0aGlzLmNvbnRlbnQpO1xuXG4gICAgICAgIGlmICh0aGlzLmNsaXBib2FyZC5jb3B5KHRoaXMuY29udGVudCkpIHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcbiAgICAgICAgICAgICAgICBzZXZlcml0eTogXCJpbmZvXCIsXG4gICAgICAgICAgICAgICAgc3VtbWFyeTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJwbGF0Zm9ybS5hbmd1bGFyX2NvbXBvbmVudHMuY29waWVkX3RvX2NsaXBib2FyZFwiKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHJlbG9hZENvbnRlbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlcXVlc3RJbnNpZ2h0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcmVxdWVzdEluc2lnaHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLmluc2lnaHQucmVxdWVzdCRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMuaXNMb2FkaW5nID0gZmFsc2UpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY29udGVudDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gbWFya2VkLm1hcmtlZChjb250ZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==