ngx-snotifire 1.0.2 → 15.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -16,12 +16,12 @@ export class ButtonsComponent {
16
16
  this.service.remove(this.toast.id);
17
17
  }
18
18
  }
19
- ButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ButtonsComponent, deps: [{ token: i1.SnotifireService }], target: i0.ɵɵFactoryTarget.Component });
20
- ButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ButtonsComponent, selector: "notifire-button", inputs: { toast: "toast" }, ngImport: i0, template: "<div class=\"notifire-toast__buttons\">\n <ng-container *ngIf=\"toast.config\">\n <button\n type=\"button\"\n *ngFor=\"let button of toast.config.buttons\"\n [ngClass]=\"{ 'notifire-toast__buttons--bold': button.bold }\"\n (click)=\"button.action ? button.action(toast) : remove()\"\n >\n {{ button.text }}\n </button>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ButtonsComponent, decorators: [{
19
+ ButtonsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: ButtonsComponent, deps: [{ token: i1.SnotifireService }], target: i0.ɵɵFactoryTarget.Component });
20
+ ButtonsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.1", type: ButtonsComponent, selector: "notifire-button", inputs: { toast: "toast" }, ngImport: i0, template: "<div class=\"notifire-toast__buttons\">\n <ng-container *ngIf=\"toast.config\">\n <button\n type=\"button\"\n *ngFor=\"let button of toast.config.buttons\"\n [ngClass]=\"{ 'notifire-toast__buttons--bold': button.bold }\"\n (click)=\"button.action ? button.action(toast) : remove()\"\n >\n {{ button.text }}\n </button>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: ButtonsComponent, decorators: [{
22
22
  type: Component,
23
23
  args: [{ selector: 'notifire-button', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"notifire-toast__buttons\">\n <ng-container *ngIf=\"toast.config\">\n <button\n type=\"button\"\n *ngFor=\"let button of toast.config.buttons\"\n [ngClass]=\"{ 'notifire-toast__buttons--bold': button.bold }\"\n (click)=\"button.action ? button.action(toast) : remove()\"\n >\n {{ button.text }}\n </button>\n </ng-container>\n</div>\n" }]
24
24
  }], ctorParameters: function () { return [{ type: i1.SnotifireService }]; }, propDecorators: { toast: [{
25
25
  type: Input
26
26
  }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc25vdGlmaXJlL3NyYy9saWIvY29tcG9uZW50cy9idXR0b25zL2J1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9ucy9idXR0b25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFFTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7Ozs7QUFVdkI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBTTNCLFlBQTZCLE9BQXlCO1FBQXpCLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBQUcsQ0FBQztJQUUxRDs7T0FFRztJQUNILE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7OzhHQWJVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLG1GQ25CN0IsOGFBWUE7NEZET2EsZ0JBQWdCO2tCQVQ1QixTQUFTOytCQUNFLGlCQUFpQixtQkFFVix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJO3VHQVM1QixLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTbm90aWZpcmVUb2FzdE1vZGVsIH0gZnJvbSAnLi4vdG9hc3Qvbm90aWZpcmUtdG9hc3QubW9kZWwnO1xuaW1wb3J0IHsgU25vdGlmaXJlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbm90aWZpcmUtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG4vKipcbiAqIEJ1dHRvbnMgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBCdXR0b25zQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIEdldCBidXR0b25zIEFycmF5XG4gICAqL1xuICBASW5wdXQoKSB0b2FzdCE6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBTbm90aWZpcmVTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiByZW1vdmUgdG9hc3RcbiAgICovXG4gIHJlbW92ZSgpIHtcbiAgICB0aGlzLnNlcnZpY2UucmVtb3ZlKHRoaXMudG9hc3QuaWQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibm90aWZpcmUtdG9hc3RfX2J1dHRvbnNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9hc3QuY29uZmlnXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiB0b2FzdC5jb25maWcuYnV0dG9uc1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdub3RpZmlyZS10b2FzdF9fYnV0dG9ucy0tYm9sZCc6IGJ1dHRvbi5ib2xkIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImJ1dHRvbi5hY3Rpb24gPyBidXR0b24uYWN0aW9uKHRvYXN0KSA6IHJlbW92ZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgYnV0dG9uLnRleHQgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc25vdGlmaXJlL3NyYy9saWIvY29tcG9uZW50cy9idXR0b25zL2J1dHRvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9ucy9idXR0b25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULEtBQUssRUFFTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7Ozs7QUFVdkI7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBTTNCLFlBQTZCLE9BQXlCO1FBQXpCLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBQUcsQ0FBQztJQUUxRDs7T0FFRztJQUNILE1BQU07UUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7OzZHQWJVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLG1GQ25CN0IsOGFBWUE7MkZET2EsZ0JBQWdCO2tCQVQ1QixTQUFTOytCQUNFLGlCQUFpQixtQkFFVix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJO3VHQVM1QixLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTbm90aWZpcmVUb2FzdE1vZGVsIH0gZnJvbSAnLi4vdG9hc3Qvbm90aWZpcmUtdG9hc3QubW9kZWwnO1xuaW1wb3J0IHsgU25vdGlmaXJlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbm90aWZpcmUtYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG4vKipcbiAqIEJ1dHRvbnMgY29tcG9uZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBCdXR0b25zQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIEdldCBidXR0b25zIEFycmF5XG4gICAqL1xuICBASW5wdXQoKSB0b2FzdCE6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBTbm90aWZpcmVTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiByZW1vdmUgdG9hc3RcbiAgICovXG4gIHJlbW92ZSgpIHtcbiAgICB0aGlzLnNlcnZpY2UucmVtb3ZlKHRoaXMudG9hc3QuaWQpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibm90aWZpcmUtdG9hc3RfX2J1dHRvbnNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidG9hc3QuY29uZmlnXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGJ1dHRvbiBvZiB0b2FzdC5jb25maWcuYnV0dG9uc1wiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdub3RpZmlyZS10b2FzdF9fYnV0dG9ucy0tYm9sZCc6IGJ1dHRvbi5ib2xkIH1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImJ1dHRvbi5hY3Rpb24gPyBidXR0b24uYWN0aW9uKHRvYXN0KSA6IHJlbW92ZSgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAge3sgYnV0dG9uLnRleHQgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -121,10 +121,10 @@ export class NgxSnotifireComponent {
121
121
  this.unsubscribe$.complete();
122
122
  }
123
123
  }
124
- NgxSnotifireComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: NgxSnotifireComponent, deps: [{ token: i1.SnotifireService }], target: i0.ɵɵFactoryTarget.Component });
125
- NgxSnotifireComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: NgxSnotifireComponent, selector: "ngx-snotifire", ngImport: i0, template: "<div\n class=\"snotifire-backdrop\"\n *ngIf=\"backdrop && backdrop >= 0\"\n [style.opacity]=\"backdrop\"\n></div>\n\n<div\n *ngFor=\"let position of notifications | keys\"\n class=\"snotify snotify-{{ position }}\"\n>\n <ngx-toast\n *ngFor=\"let notification of getNotificationArray(notifications, position) | slice: blockSizeA:blockSizeB\"\n [toast]=\"notification\"\n (stateChanged)=\"stateChanged($event)\"\n >\n </ngx-toast>\n\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ToastComponent, selector: "ngx-toast", inputs: ["toast"], outputs: ["stateChanged"] }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }, { kind: "pipe", type: i4.KeysPipe, name: "keys" }], encapsulation: i0.ViewEncapsulation.None });
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: NgxSnotifireComponent, decorators: [{
124
+ NgxSnotifireComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: NgxSnotifireComponent, deps: [{ token: i1.SnotifireService }], target: i0.ɵɵFactoryTarget.Component });
125
+ NgxSnotifireComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.1", type: NgxSnotifireComponent, selector: "ngx-snotifire", ngImport: i0, template: "<div\n class=\"snotifire-backdrop\"\n *ngIf=\"backdrop && backdrop >= 0\"\n [style.opacity]=\"backdrop\"\n></div>\n\n<div\n *ngFor=\"let position of notifications | keys\"\n class=\"snotify snotify-{{ position }}\"\n>\n <ngx-toast\n *ngFor=\"let notification of getNotificationArray(notifications, position) | slice: blockSizeA:blockSizeB\"\n [toast]=\"notification\"\n (stateChanged)=\"stateChanged($event)\"\n >\n </ngx-toast>\n\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ToastComponent, selector: "ngx-toast", inputs: ["toast"], outputs: ["stateChanged"] }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }, { kind: "pipe", type: i4.KeysPipe, name: "keys" }], encapsulation: i0.ViewEncapsulation.None });
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: NgxSnotifireComponent, decorators: [{
127
127
  type: Component,
128
128
  args: [{ selector: 'ngx-snotifire', encapsulation: ViewEncapsulation.None, template: "<div\n class=\"snotifire-backdrop\"\n *ngIf=\"backdrop && backdrop >= 0\"\n [style.opacity]=\"backdrop\"\n></div>\n\n<div\n *ngFor=\"let position of notifications | keys\"\n class=\"snotify snotify-{{ position }}\"\n>\n <ngx-toast\n *ngFor=\"let notification of getNotificationArray(notifications, position) | slice: blockSizeA:blockSizeB\"\n [toast]=\"notification\"\n (stateChanged)=\"stateChanged($event)\"\n >\n </ngx-toast>\n\n</div>\n" }]
129
129
  }], ctorParameters: function () { return [{ type: i1.SnotifireService }]; } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNub3RpZmlyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc25vdGlmaXJlL3NyYy9saWIvY29tcG9uZW50cy9uZ3gtbm90aWZpcmUvbmd4LXNub3RpZmlyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc25vdGlmaXJlL3NyYy9saWIvY29tcG9uZW50cy9uZ3gtbm90aWZpcmUvbmd4LXNub3RpZmlyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUdULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7QUFVN0UsTUFBTSxPQUFPLHFCQUFxQjtJQW1DaEMsWUFBcUIsT0FBeUI7UUFBekIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFsQzdCLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQXlCcEQ7O1dBRUc7UUFDSCxhQUFRLEdBQXVCLENBQUMsQ0FBQyxDQUFDO1FBQ2xDOztXQUVHO1FBQ0gsaUJBQVksR0FBMEIsRUFBRSxDQUFDO0lBRVEsQ0FBQztJQUNsRCxlQUFlLEtBQVUsQ0FBQztJQUUxQixRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO2FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2xDLFNBQVMsQ0FBQyxDQUFDLE1BQTZCLEVBQUUsRUFBRTtZQUMzQyxJQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYTtnQkFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTTtn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SyxRQUFRO2dCQUNYLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO29CQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUNwQjtnQkFDRCxNQUFNO1NBQ1Q7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDOzttSEFuS1UscUJBQXFCO3VHQUFyQixxQkFBcUIscURDbEJsQyx1ZUFrQkE7NEZEQWEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWUsaUJBRVYsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTbm90aWZpcmVFdmVudFR5cGUsIFNub3RpZmljYXRpb25Qb3NpdGlvblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgU25vdGlmaXJlTm90aWZpY2F0aW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy9zbm90aWZpcmUtbm90aWZpY2F0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU25vdGlmaXJlVG9hc3RNb2RlbCB9IGZyb20gJy4uL3RvYXN0L25vdGlmaXJlLXRvYXN0Lm1vZGVsJztcbmltcG9ydCB7IFNub3RpZmlyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1zbm90aWZpcmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmd4LXNub3RpZmlyZS5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE5neFNub3RpZmlyZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAvKipcbiAgICogVG9hc3RzIGFycmF5XG4gICAqL1xuICBub3RpZmljYXRpb25zITogU25vdGlmaXJlTm90aWZpY2F0aW9ucztcbiAgLyoqXG4gICAqIFRvYXN0cyBlbWl0dGVyXG4gICAqL1xuICBlbWl0dGVyITogU3Vic2NyaXB0aW9uO1xuICAvKipcbiAgICogSGVscGVyIGZvciBzbGljZSBwaXBlIChtYXhPblNjcmVlbilcbiAgICovXG4gIGRvY2tTaXplQSE6IG51bWJlcjtcbiAgLyoqXG4gICAqIEhlbHBlciBmb3Igc2xpY2UgcGlwZSAobWF4T25TY3JlZW4pXG4gICAqL1xuICBkb2NrU2l6ZUIhOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBIZWxwZXIgZm9yIHNsaWNlIHBpcGUgKG1heEF0UG9zaXRpb24pXG4gICAqL1xuICBibG9ja1NpemVBITogbnVtYmVyO1xuICAvKipcbiAgICogSGVscGVyIGZvciBzbGljZSBwaXBlIChtYXhBdFBvc2l0aW9uKVxuICAgKi9cbiAgYmxvY2tTaXplQiE6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIEJhY2tkcm9wIE9wYWNpdHlcbiAgICovXG4gIGJhY2tkcm9wOiBudW1iZXIgfCB1bmRlZmluZWQgPSAtMTtcbiAgLyoqXG4gICAqIEhvdyBtYW55IHRvYXN0cyB3aXRoIGJhY2tkcm9wIGluIGN1cnJlbnQgcXVldWVcbiAgICovXG4gIHdpdGhCYWNrZHJvcDogU25vdGlmaXJlVG9hc3RNb2RlbFtdID0gW107XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgc2VydmljZTogU25vdGlmaXJlU2VydmljZSkge31cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UuZW1pdHRlclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHRvYXN0czogU25vdGlmaXJlVG9hc3RNb2RlbFtdKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZGVmYXVsdENvbmZpZyAmJlxuICAgICAgICAgIHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbCAmJlxuICAgICAgICAgIHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbC5uZXdPblRvcFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmRvY2tTaXplQSA9IHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbC5tYXhPblNjcmVlblxuICAgICAgICAgICAgPyAtdGhpcy5zZXJ2aWNlLmRlZmF1bHRDb25maWcuZ2xvYmFsLm1heE9uU2NyZWVuXG4gICAgICAgICAgICA6IDY7XG4gICAgICAgICAgdGhpcy5kb2NrU2l6ZUIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgdGhpcy5ibG9ja1NpemVBID0gdGhpcy5zZXJ2aWNlLmRlZmF1bHRDb25maWcuZ2xvYmFsLm1heEF0UG9zaXRpb25cbiAgICAgICAgICAgID8gLXRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbC5tYXhBdFBvc2l0aW9uXG4gICAgICAgICAgICA6IDQ7XG4gICAgICAgICAgdGhpcy5ibG9ja1NpemVCID0gdW5kZWZpbmVkO1xuICAgICAgICAgIHRoaXMud2l0aEJhY2tkcm9wID0gdG9hc3RzLmZpbHRlcihcbiAgICAgICAgICAgICh0b2FzdCkgPT5cbiAgICAgICAgICAgICAgdG9hc3QuY29uZmlnICYmXG4gICAgICAgICAgICAgIHRvYXN0LmNvbmZpZy5iYWNrZHJvcCAmJlxuICAgICAgICAgICAgICB0b2FzdC5jb25maWcuYmFja2Ryb3AgPj0gMFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kb2NrU2l6ZUEgPSAwO1xuICAgICAgICAgIHRoaXMuZG9ja1NpemVCID1cbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbCAmJlxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmRlZmF1bHRDb25maWcuZ2xvYmFsLm1heE9uU2NyZWVuO1xuICAgICAgICAgIHRoaXMuYmxvY2tTaXplQSA9IDA7XG4gICAgICAgICAgdGhpcy5ibG9ja1NpemVCID1cbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbCAmJlxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmRlZmF1bHRDb25maWcuZ2xvYmFsLm1heEF0UG9zaXRpb247XG4gICAgICAgICAgdGhpcy53aXRoQmFja2Ryb3AgPSB0b2FzdHNcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICh0b2FzdCkgPT5cbiAgICAgICAgICAgICAgICB0b2FzdC5jb25maWcgJiZcbiAgICAgICAgICAgICAgICB0b2FzdC5jb25maWcuYmFja2Ryb3AgJiZcbiAgICAgICAgICAgICAgICB0b2FzdC5jb25maWcuYmFja2Ryb3AgPj0gMFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnJldmVyc2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSB0aGlzLnNwbGl0VG9hc3RzKFxuICAgICAgICAgIHRvYXN0cy5zbGljZSh0aGlzLmRvY2tTaXplQSwgdGhpcy5kb2NrU2l6ZUIpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VkKFNub3RpZmlyZUV2ZW50VHlwZS5NT1VOVEVEKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0IHRvYXN0cyB0b2FzdHMgaW50byBkaWZmZXJlbnQgb2JqZWN0c1xuICAgKiBAcGFyYW0gdG9hc3RzIG5vdGlmaXJlLXRvYXN0W11cbiAgICogQHJldHVybnMgU25vdGlmeU5vdGlmaWNhdGlvbnNcbiAgICovXG4gIHNwbGl0VG9hc3RzKHRvYXN0czogU25vdGlmaXJlVG9hc3RNb2RlbFtdKTogU25vdGlmaXJlTm90aWZpY2F0aW9ucyB7XG4gICAgY29uc3QgcmVzdWx0OiBTbm90aWZpcmVOb3RpZmljYXRpb25zID0ge307XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIFNub3RpZmljYXRpb25Qb3NpdGlvblR5cGUpIHtcbiAgICAgIGlmIChTbm90aWZpY2F0aW9uUG9zaXRpb25UeXBlLmhhc093blByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgICAgICByZXN1bHRbXG4gICAgICAgICAgU25vdGlmaWNhdGlvblBvc2l0aW9uVHlwZVtcbiAgICAgICAgICAgIHByb3BlcnR5IGFzIGtleW9mIHR5cGVvZiBTbm90aWZpY2F0aW9uUG9zaXRpb25UeXBlXG4gICAgICAgICAgXVxuICAgICAgICBdID0gW107XG4gICAgICB9XG4gICAgfVxuXG4gICAgdG9hc3RzLmZvckVhY2goKHRvYXN0OiBTbm90aWZpcmVUb2FzdE1vZGVsKSA9PiB7XG4gICAgICBpZiAodG9hc3QuY29uZmlnLnBvc2l0aW9uKSB7XG4gICAgICAgIGNvbnN0IGtleUluZGV4ID0gT2JqZWN0LmtleXMoU25vdGlmaWNhdGlvblBvc2l0aW9uVHlwZSkuaW5kZXhPZihcbiAgICAgICAgICB0b2FzdC5jb25maWcucG9zaXRpb25cbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc2VhcmNoZWRTdHJpbmcgPSBPYmplY3QudmFsdWVzKFNub3RpZmljYXRpb25Qb3NpdGlvblR5cGUpW1xuICAgICAgICAgIGtleUluZGV4XG4gICAgICAgIF07XG4gICAgICAgIHJlc3VsdFtzZWFyY2hlZFN0cmluZ10/LnB1c2godG9hc3QpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldE5vdGlmaWNhdGlvbkFycmF5KFxuICAgIG5vdGlmaWNhdGlvbnM6IFNub3RpZmlyZU5vdGlmaWNhdGlvbnMsXG4gICAgcG9zaXRpb246IFNub3RpZmljYXRpb25Qb3NpdGlvblR5cGVcbiAgKTogU25vdGlmaXJlVG9hc3RNb2RlbFtdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gbm90aWZpY2F0aW9uc1twb3NpdGlvbl07XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlcyB0aGUgYmFja2Ryb3Agb3BhY2l0eVxuICAgKiBAcGFyYW0gZXZlbnQgTm90aWZpY2F0aW9uRXZlbnRUeXBlXG4gICAqL1xuICBzdGF0ZUNoYW5nZWQoZXZlbnQ6IFNub3RpZmlyZUV2ZW50VHlwZSkge1xuICAgIGlmICghdGhpcy53aXRoQmFja2Ryb3AubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5iYWNrZHJvcCAmJiB0aGlzLmJhY2tkcm9wID49IDApIHtcbiAgICAgICAgdGhpcy5iYWNrZHJvcCA9IC0xO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzd2l0Y2ggKGV2ZW50KSB7XG4gICAgICBjYXNlICdtb3VudGVkJzpcbiAgICAgICAgaWYgKHRoaXMuYmFja2Ryb3AgJiYgdGhpcy5iYWNrZHJvcCA8IDApIHtcbiAgICAgICAgICB0aGlzLmJhY2tkcm9wID0gMDtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JlZm9yZVNob3cnOlxuICAgICAgICB0aGlzLmJhY2tkcm9wID1cbiAgICAgICAgICB0aGlzLndpdGhCYWNrZHJvcFt0aGlzLndpdGhCYWNrZHJvcC5sZW5ndGggLSAxXS5jb25maWc/LmJhY2tkcm9wO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JlZm9yZUhpZGUnOlxuICAgICAgICBpZiAodGhpcy53aXRoQmFja2Ryb3AubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgdGhpcy5iYWNrZHJvcCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdoaWRkZW4nOlxuICAgICAgICBpZiAodGhpcy53aXRoQmFja2Ryb3AubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgdGhpcy5iYWNrZHJvcCA9IC0xO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJzbm90aWZpcmUtYmFja2Ryb3BcIlxuICAgICpuZ0lmPVwiYmFja2Ryb3AgJiYgYmFja2Ryb3AgPj0gMFwiXG4gICAgW3N0eWxlLm9wYWNpdHldPVwiYmFja2Ryb3BcIlxuPjwvZGl2PlxuXG48ZGl2XG4gICAgKm5nRm9yPVwibGV0IHBvc2l0aW9uIG9mIG5vdGlmaWNhdGlvbnMgfCBrZXlzXCJcbiAgICBjbGFzcz1cInNub3RpZnkgc25vdGlmeS17eyBwb3NpdGlvbiB9fVwiXG4+XG4gICAgPG5neC10b2FzdFxuICAgICAgICAqbmdGb3I9XCJsZXQgbm90aWZpY2F0aW9uIG9mIGdldE5vdGlmaWNhdGlvbkFycmF5KG5vdGlmaWNhdGlvbnMsIHBvc2l0aW9uKSB8IHNsaWNlOiBibG9ja1NpemVBOmJsb2NrU2l6ZUJcIlxuICAgICAgICBbdG9hc3RdPVwibm90aWZpY2F0aW9uXCJcbiAgICAgICAgKHN0YXRlQ2hhbmdlZCk9XCJzdGF0ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvbmd4LXRvYXN0PlxuXG48L2Rpdj5cbiJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNub3RpZmlyZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc25vdGlmaXJlL3NyYy9saWIvY29tcG9uZW50cy9uZ3gtbm90aWZpcmUvbmd4LXNub3RpZmlyZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc25vdGlmaXJlL3NyYy9saWIvY29tcG9uZW50cy9uZ3gtbm90aWZpcmUvbmd4LXNub3RpZmlyZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUdULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7QUFVN0UsTUFBTSxPQUFPLHFCQUFxQjtJQW1DaEMsWUFBcUIsT0FBeUI7UUFBekIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUFsQzdCLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQXlCcEQ7O1dBRUc7UUFDSCxhQUFRLEdBQXVCLENBQUMsQ0FBQyxDQUFDO1FBQ2xDOztXQUVHO1FBQ0gsaUJBQVksR0FBMEIsRUFBRSxDQUFDO0lBRVEsQ0FBQztJQUNsRCxlQUFlLEtBQVUsQ0FBQztJQUUxQixRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPO2FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2xDLFNBQVMsQ0FBQyxDQUFDLE1BQTZCLEVBQUUsRUFBRTtZQUMzQyxJQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYTtnQkFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTTtn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SyxRQUFRO2dCQUNYLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO29CQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUNwQjtnQkFDRCxNQUFNO1NBQ1Q7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDOztrSEFuS1UscUJBQXFCO3NHQUFyQixxQkFBcUIscURDbEJsQyx1ZUFrQkE7MkZEQWEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWUsaUJBRVYsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTbm90aWZpcmVFdmVudFR5cGUsIFNub3RpZmljYXRpb25Qb3NpdGlvblR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgU25vdGlmaXJlTm90aWZpY2F0aW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy9zbm90aWZpcmUtbm90aWZpY2F0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU25vdGlmaXJlVG9hc3RNb2RlbCB9IGZyb20gJy4uL3RvYXN0L25vdGlmaXJlLXRvYXN0Lm1vZGVsJztcbmltcG9ydCB7IFNub3RpZmlyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC1zbm90aWZpcmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmd4LXNub3RpZmlyZS5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE5neFNub3RpZmlyZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAvKipcbiAgICogVG9hc3RzIGFycmF5XG4gICAqL1xuICBub3RpZmljYXRpb25zITogU25vdGlmaXJlTm90aWZpY2F0aW9ucztcbiAgLyoqXG4gICAqIFRvYXN0cyBlbWl0dGVyXG4gICAqL1xuICBlbWl0dGVyITogU3Vic2NyaXB0aW9uO1xuICAvKipcbiAgICogSGVscGVyIGZvciBzbGljZSBwaXBlIChtYXhPblNjcmVlbilcbiAgICovXG4gIGRvY2tTaXplQSE6IG51bWJlcjtcbiAgLyoqXG4gICAqIEhlbHBlciBmb3Igc2xpY2UgcGlwZSAobWF4T25TY3JlZW4pXG4gICAqL1xuICBkb2NrU2l6ZUIhOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIC8qKlxuICAgKiBIZWxwZXIgZm9yIHNsaWNlIHBpcGUgKG1heEF0UG9zaXRpb24pXG4gICAqL1xuICBibG9ja1NpemVBITogbnVtYmVyO1xuICAvKipcbiAgICogSGVscGVyIGZvciBzbGljZSBwaXBlIChtYXhBdFBvc2l0aW9uKVxuICAgKi9cbiAgYmxvY2tTaXplQiE6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgLyoqXG4gICAqIEJhY2tkcm9wIE9wYWNpdHlcbiAgICovXG4gIGJhY2tkcm9wOiBudW1iZXIgfCB1bmRlZmluZWQgPSAtMTtcbiAgLyoqXG4gICAqIEhvdyBtYW55IHRvYXN0cyB3aXRoIGJhY2tkcm9wIGluIGN1cnJlbnQgcXVldWVcbiAgICovXG4gIHdpdGhCYWNrZHJvcDogU25vdGlmaXJlVG9hc3RNb2RlbFtdID0gW107XG5cbiAgY29uc3RydWN0b3IocmVhZG9ubHkgc2VydmljZTogU25vdGlmaXJlU2VydmljZSkge31cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UuZW1pdHRlclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHRvYXN0czogU25vdGlmaXJlVG9hc3RNb2RlbFtdKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZGVmYXVsdENvbmZpZyAmJlxuICAgICAgICAgIHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbCAmJlxuICAgICAgICAgIHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbC5uZXdPblRvcFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLmRvY2tTaXplQSA9IHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbC5tYXhPblNjcmVlblxuICAgICAgICAgICAgPyAtdGhpcy5zZXJ2aWNlLmRlZmF1bHRDb25maWcuZ2xvYmFsLm1heE9uU2NyZWVuXG4gICAgICAgICAgICA6IDY7XG4gICAgICAgICAgdGhpcy5kb2NrU2l6ZUIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgdGhpcy5ibG9ja1NpemVBID0gdGhpcy5zZXJ2aWNlLmRlZmF1bHRDb25maWcuZ2xvYmFsLm1heEF0UG9zaXRpb25cbiAgICAgICAgICAgID8gLXRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbC5tYXhBdFBvc2l0aW9uXG4gICAgICAgICAgICA6IDQ7XG4gICAgICAgICAgdGhpcy5ibG9ja1NpemVCID0gdW5kZWZpbmVkO1xuICAgICAgICAgIHRoaXMud2l0aEJhY2tkcm9wID0gdG9hc3RzLmZpbHRlcihcbiAgICAgICAgICAgICh0b2FzdCkgPT5cbiAgICAgICAgICAgICAgdG9hc3QuY29uZmlnICYmXG4gICAgICAgICAgICAgIHRvYXN0LmNvbmZpZy5iYWNrZHJvcCAmJlxuICAgICAgICAgICAgICB0b2FzdC5jb25maWcuYmFja2Ryb3AgPj0gMFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5kb2NrU2l6ZUEgPSAwO1xuICAgICAgICAgIHRoaXMuZG9ja1NpemVCID1cbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbCAmJlxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmRlZmF1bHRDb25maWcuZ2xvYmFsLm1heE9uU2NyZWVuO1xuICAgICAgICAgIHRoaXMuYmxvY2tTaXplQSA9IDA7XG4gICAgICAgICAgdGhpcy5ibG9ja1NpemVCID1cbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5kZWZhdWx0Q29uZmlnLmdsb2JhbCAmJlxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmRlZmF1bHRDb25maWcuZ2xvYmFsLm1heEF0UG9zaXRpb247XG4gICAgICAgICAgdGhpcy53aXRoQmFja2Ryb3AgPSB0b2FzdHNcbiAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICh0b2FzdCkgPT5cbiAgICAgICAgICAgICAgICB0b2FzdC5jb25maWcgJiZcbiAgICAgICAgICAgICAgICB0b2FzdC5jb25maWcuYmFja2Ryb3AgJiZcbiAgICAgICAgICAgICAgICB0b2FzdC5jb25maWcuYmFja2Ryb3AgPj0gMFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnJldmVyc2UoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSB0aGlzLnNwbGl0VG9hc3RzKFxuICAgICAgICAgIHRvYXN0cy5zbGljZSh0aGlzLmRvY2tTaXplQSwgdGhpcy5kb2NrU2l6ZUIpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VkKFNub3RpZmlyZUV2ZW50VHlwZS5NT1VOVEVEKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0IHRvYXN0cyB0b2FzdHMgaW50byBkaWZmZXJlbnQgb2JqZWN0c1xuICAgKiBAcGFyYW0gdG9hc3RzIG5vdGlmaXJlLXRvYXN0W11cbiAgICogQHJldHVybnMgU25vdGlmeU5vdGlmaWNhdGlvbnNcbiAgICovXG4gIHNwbGl0VG9hc3RzKHRvYXN0czogU25vdGlmaXJlVG9hc3RNb2RlbFtdKTogU25vdGlmaXJlTm90aWZpY2F0aW9ucyB7XG4gICAgY29uc3QgcmVzdWx0OiBTbm90aWZpcmVOb3RpZmljYXRpb25zID0ge307XG5cbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIFNub3RpZmljYXRpb25Qb3NpdGlvblR5cGUpIHtcbiAgICAgIGlmIChTbm90aWZpY2F0aW9uUG9zaXRpb25UeXBlLmhhc093blByb3BlcnR5KHByb3BlcnR5KSkge1xuICAgICAgICByZXN1bHRbXG4gICAgICAgICAgU25vdGlmaWNhdGlvblBvc2l0aW9uVHlwZVtcbiAgICAgICAgICAgIHByb3BlcnR5IGFzIGtleW9mIHR5cGVvZiBTbm90aWZpY2F0aW9uUG9zaXRpb25UeXBlXG4gICAgICAgICAgXVxuICAgICAgICBdID0gW107XG4gICAgICB9XG4gICAgfVxuXG4gICAgdG9hc3RzLmZvckVhY2goKHRvYXN0OiBTbm90aWZpcmVUb2FzdE1vZGVsKSA9PiB7XG4gICAgICBpZiAodG9hc3QuY29uZmlnLnBvc2l0aW9uKSB7XG4gICAgICAgIGNvbnN0IGtleUluZGV4ID0gT2JqZWN0LmtleXMoU25vdGlmaWNhdGlvblBvc2l0aW9uVHlwZSkuaW5kZXhPZihcbiAgICAgICAgICB0b2FzdC5jb25maWcucG9zaXRpb25cbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc2VhcmNoZWRTdHJpbmcgPSBPYmplY3QudmFsdWVzKFNub3RpZmljYXRpb25Qb3NpdGlvblR5cGUpW1xuICAgICAgICAgIGtleUluZGV4XG4gICAgICAgIF07XG4gICAgICAgIHJlc3VsdFtzZWFyY2hlZFN0cmluZ10/LnB1c2godG9hc3QpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnNvbGUubG9nKHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldE5vdGlmaWNhdGlvbkFycmF5KFxuICAgIG5vdGlmaWNhdGlvbnM6IFNub3RpZmlyZU5vdGlmaWNhdGlvbnMsXG4gICAgcG9zaXRpb246IFNub3RpZmljYXRpb25Qb3NpdGlvblR5cGVcbiAgKTogU25vdGlmaXJlVG9hc3RNb2RlbFtdIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gbm90aWZpY2F0aW9uc1twb3NpdGlvbl07XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlcyB0aGUgYmFja2Ryb3Agb3BhY2l0eVxuICAgKiBAcGFyYW0gZXZlbnQgTm90aWZpY2F0aW9uRXZlbnRUeXBlXG4gICAqL1xuICBzdGF0ZUNoYW5nZWQoZXZlbnQ6IFNub3RpZmlyZUV2ZW50VHlwZSkge1xuICAgIGlmICghdGhpcy53aXRoQmFja2Ryb3AubGVuZ3RoKSB7XG4gICAgICBpZiAodGhpcy5iYWNrZHJvcCAmJiB0aGlzLmJhY2tkcm9wID49IDApIHtcbiAgICAgICAgdGhpcy5iYWNrZHJvcCA9IC0xO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBzd2l0Y2ggKGV2ZW50KSB7XG4gICAgICBjYXNlICdtb3VudGVkJzpcbiAgICAgICAgaWYgKHRoaXMuYmFja2Ryb3AgJiYgdGhpcy5iYWNrZHJvcCA8IDApIHtcbiAgICAgICAgICB0aGlzLmJhY2tkcm9wID0gMDtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JlZm9yZVNob3cnOlxuICAgICAgICB0aGlzLmJhY2tkcm9wID1cbiAgICAgICAgICB0aGlzLndpdGhCYWNrZHJvcFt0aGlzLndpdGhCYWNrZHJvcC5sZW5ndGggLSAxXS5jb25maWc/LmJhY2tkcm9wO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JlZm9yZUhpZGUnOlxuICAgICAgICBpZiAodGhpcy53aXRoQmFja2Ryb3AubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgdGhpcy5iYWNrZHJvcCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdoaWRkZW4nOlxuICAgICAgICBpZiAodGhpcy53aXRoQmFja2Ryb3AubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgdGhpcy5iYWNrZHJvcCA9IC0xO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJzbm90aWZpcmUtYmFja2Ryb3BcIlxuICAgICpuZ0lmPVwiYmFja2Ryb3AgJiYgYmFja2Ryb3AgPj0gMFwiXG4gICAgW3N0eWxlLm9wYWNpdHldPVwiYmFja2Ryb3BcIlxuPjwvZGl2PlxuXG48ZGl2XG4gICAgKm5nRm9yPVwibGV0IHBvc2l0aW9uIG9mIG5vdGlmaWNhdGlvbnMgfCBrZXlzXCJcbiAgICBjbGFzcz1cInNub3RpZnkgc25vdGlmeS17eyBwb3NpdGlvbiB9fVwiXG4+XG4gICAgPG5neC10b2FzdFxuICAgICAgICAqbmdGb3I9XCJsZXQgbm90aWZpY2F0aW9uIG9mIGdldE5vdGlmaWNhdGlvbkFycmF5KG5vdGlmaWNhdGlvbnMsIHBvc2l0aW9uKSB8IHNsaWNlOiBibG9ja1NpemVBOmJsb2NrU2l6ZUJcIlxuICAgICAgICBbdG9hc3RdPVwibm90aWZpY2F0aW9uXCJcbiAgICAgICAgKHN0YXRlQ2hhbmdlZCk9XCJzdGF0ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvbmd4LXRvYXN0PlxuXG48L2Rpdj5cbiJdfQ==
@@ -15,12 +15,12 @@ export class PromptComponent {
15
15
  return $event.target.value;
16
16
  }
17
17
  }
18
- PromptComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: PromptComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- PromptComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: PromptComponent, selector: "ngx-snotify-prompt", inputs: { toast: "toast" }, ngImport: i0, template: "<span\n class=\"notifire-toast__input\"\n [ngClass]=\"{ 'notifire-toast__input--filled': isPromptFocused }\"\n>\n <input\n (input)=\"toast.value = getValue($event); toast.eventEmitter.next(inputType)\"\n autofocus\n class=\"notifire-toast__input__field\"\n type=\"text\"\n [id]=\"toast.id\"\n (focus)=\"isPromptFocused = true\"\n (blur)=\"isPromptFocused = !!toast.value && !!toast.value.length\"\n >\n <label\n class=\"notifire-toast__input__label\"\n [for]=\"toast.id\"\n >\n <span\n class=\"notifire-toast__input__labelContent\"\n *ngIf=\"toast.config && toast.config.placeholder \"\n >\n {{ toast.config.placeholder | truncate }}\n </span>\n </label>\n</span>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TruncatePipe, name: "truncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: PromptComponent, decorators: [{
18
+ PromptComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: PromptComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ PromptComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.1", type: PromptComponent, selector: "ngx-snotify-prompt", inputs: { toast: "toast" }, ngImport: i0, template: "<span\n class=\"notifire-toast__input\"\n [ngClass]=\"{ 'notifire-toast__input--filled': isPromptFocused }\"\n>\n <input\n (input)=\"toast.value = getValue($event); toast.eventEmitter.next(inputType)\"\n autofocus\n class=\"notifire-toast__input__field\"\n type=\"text\"\n [id]=\"toast.id\"\n (focus)=\"isPromptFocused = true\"\n (blur)=\"isPromptFocused = !!toast.value && !!toast.value.length\"\n >\n <label\n class=\"notifire-toast__input__label\"\n [for]=\"toast.id\"\n >\n <span\n class=\"notifire-toast__input__labelContent\"\n *ngIf=\"toast.config && toast.config.placeholder \"\n >\n {{ toast.config.placeholder | truncate }}\n </span>\n </label>\n</span>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TruncatePipe, name: "truncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: PromptComponent, decorators: [{
21
21
  type: Component,
22
22
  args: [{ selector: 'ngx-snotify-prompt', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<span\n class=\"notifire-toast__input\"\n [ngClass]=\"{ 'notifire-toast__input--filled': isPromptFocused }\"\n>\n <input\n (input)=\"toast.value = getValue($event); toast.eventEmitter.next(inputType)\"\n autofocus\n class=\"notifire-toast__input__field\"\n type=\"text\"\n [id]=\"toast.id\"\n (focus)=\"isPromptFocused = true\"\n (blur)=\"isPromptFocused = !!toast.value && !!toast.value.length\"\n >\n <label\n class=\"notifire-toast__input__label\"\n [for]=\"toast.id\"\n >\n <span\n class=\"notifire-toast__input__labelContent\"\n *ngIf=\"toast.config && toast.config.placeholder \"\n >\n {{ toast.config.placeholder | truncate }}\n </span>\n </label>\n</span>\n" }]
23
23
  }], propDecorators: { toast: [{
24
24
  type: Input
25
25
  }] } });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbm90aWZpcmUvc3JjL2xpYi9jb21wb25lbnRzL3Byb21wdC9wcm9tcHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL2NvbXBvbmVudHMvcHJvbXB0L3Byb21wdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBRUwsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQVNsRCxNQUFNLE9BQU8sZUFBZTtJQU41QjtRQU9FLGNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFLckM7O1dBRUc7UUFDSCxvQkFBZSxHQUFHLEtBQUssQ0FBQztLQUt6QjtJQUhDLFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDN0IsQ0FBQzs7NkdBYlUsZUFBZTtpR0FBZixlQUFlLHNGQ2hCNUIscXlCQXlCQTs0RkRUYSxlQUFlO2tCQU4zQixTQUFTOytCQUNFLG9CQUFvQixtQkFFYix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzhCQU81QixLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTbm90aWZpcmVFdmVudFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgU25vdGlmaXJlVG9hc3RNb2RlbCB9IGZyb20gJy4uL3RvYXN0L25vdGlmaXJlLXRvYXN0Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXNub3RpZnktcHJvbXB0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb21wdC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9tcHRDb21wb25lbnQge1xuICBpbnB1dFR5cGUgPSBTbm90aWZpcmVFdmVudFR5cGUuSU5QVVQ7XG4gIC8qKlxuICAgKiBHZXQgUFJPTVBUIHBsYWNlaG9sZGVyXG4gICAqL1xuICBASW5wdXQoKSB0b2FzdCE6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBJcyBQUk9NUFQgZm9jdXNlZFxuICAgKi9cbiAgaXNQcm9tcHRGb2N1c2VkID0gZmFsc2U7XG5cbiAgZ2V0VmFsdWUoJGV2ZW50OiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiAkZXZlbnQudGFyZ2V0LnZhbHVlO1xuICB9XG59XG4iLCI8c3BhblxuICAgIGNsYXNzPVwibm90aWZpcmUtdG9hc3RfX2lucHV0XCJcbiAgICBbbmdDbGFzc109XCJ7ICdub3RpZmlyZS10b2FzdF9faW5wdXQtLWZpbGxlZCc6IGlzUHJvbXB0Rm9jdXNlZCB9XCJcbj5cbiAgICA8aW5wdXRcbiAgICAgICAgKGlucHV0KT1cInRvYXN0LnZhbHVlID0gZ2V0VmFsdWUoJGV2ZW50KTsgdG9hc3QuZXZlbnRFbWl0dGVyLm5leHQoaW5wdXRUeXBlKVwiXG4gICAgICAgIGF1dG9mb2N1c1xuICAgICAgICBjbGFzcz1cIm5vdGlmaXJlLXRvYXN0X19pbnB1dF9fZmllbGRcIlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFtpZF09XCJ0b2FzdC5pZFwiXG4gICAgICAgIChmb2N1cyk9XCJpc1Byb21wdEZvY3VzZWQgPSB0cnVlXCJcbiAgICAgICAgKGJsdXIpPVwiaXNQcm9tcHRGb2N1c2VkID0gISF0b2FzdC52YWx1ZSAmJiAhIXRvYXN0LnZhbHVlLmxlbmd0aFwiXG4gICAgPlxuICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cIm5vdGlmaXJlLXRvYXN0X19pbnB1dF9fbGFiZWxcIlxuICAgICAgICBbZm9yXT1cInRvYXN0LmlkXCJcbiAgICA+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cIm5vdGlmaXJlLXRvYXN0X19pbnB1dF9fbGFiZWxDb250ZW50XCJcbiAgICAgICAgICAgICpuZ0lmPVwidG9hc3QuY29uZmlnICYmIHRvYXN0LmNvbmZpZy5wbGFjZWhvbGRlciBcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyB0b2FzdC5jb25maWcucGxhY2Vob2xkZXIgfCB0cnVuY2F0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9sYWJlbD5cbjwvc3Bhbj5cbiJdfQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbm90aWZpcmUvc3JjL2xpYi9jb21wb25lbnRzL3Byb21wdC9wcm9tcHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL2NvbXBvbmVudHMvcHJvbXB0L3Byb21wdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxLQUFLLEVBRUwsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQVNsRCxNQUFNLE9BQU8sZUFBZTtJQU41QjtRQU9FLGNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFLckM7O1dBRUc7UUFDSCxvQkFBZSxHQUFHLEtBQUssQ0FBQztLQUt6QjtJQUhDLFFBQVEsQ0FBQyxNQUFXO1FBQ2xCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDN0IsQ0FBQzs7NEdBYlUsZUFBZTtnR0FBZixlQUFlLHNGQ2hCNUIscXlCQXlCQTsyRkRUYSxlQUFlO2tCQU4zQixTQUFTOytCQUNFLG9CQUFvQixtQkFFYix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzhCQU81QixLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTbm90aWZpcmVFdmVudFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgU25vdGlmaXJlVG9hc3RNb2RlbCB9IGZyb20gJy4uL3RvYXN0L25vdGlmaXJlLXRvYXN0Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXNub3RpZnktcHJvbXB0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb21wdC5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9tcHRDb21wb25lbnQge1xuICBpbnB1dFR5cGUgPSBTbm90aWZpcmVFdmVudFR5cGUuSU5QVVQ7XG4gIC8qKlxuICAgKiBHZXQgUFJPTVBUIHBsYWNlaG9sZGVyXG4gICAqL1xuICBASW5wdXQoKSB0b2FzdCE6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBJcyBQUk9NUFQgZm9jdXNlZFxuICAgKi9cbiAgaXNQcm9tcHRGb2N1c2VkID0gZmFsc2U7XG5cbiAgZ2V0VmFsdWUoJGV2ZW50OiBhbnkpOiBzdHJpbmcge1xuICAgIHJldHVybiAkZXZlbnQudGFyZ2V0LnZhbHVlO1xuICB9XG59XG4iLCI8c3BhblxuICAgIGNsYXNzPVwibm90aWZpcmUtdG9hc3RfX2lucHV0XCJcbiAgICBbbmdDbGFzc109XCJ7ICdub3RpZmlyZS10b2FzdF9faW5wdXQtLWZpbGxlZCc6IGlzUHJvbXB0Rm9jdXNlZCB9XCJcbj5cbiAgICA8aW5wdXRcbiAgICAgICAgKGlucHV0KT1cInRvYXN0LnZhbHVlID0gZ2V0VmFsdWUoJGV2ZW50KTsgdG9hc3QuZXZlbnRFbWl0dGVyLm5leHQoaW5wdXRUeXBlKVwiXG4gICAgICAgIGF1dG9mb2N1c1xuICAgICAgICBjbGFzcz1cIm5vdGlmaXJlLXRvYXN0X19pbnB1dF9fZmllbGRcIlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIFtpZF09XCJ0b2FzdC5pZFwiXG4gICAgICAgIChmb2N1cyk9XCJpc1Byb21wdEZvY3VzZWQgPSB0cnVlXCJcbiAgICAgICAgKGJsdXIpPVwiaXNQcm9tcHRGb2N1c2VkID0gISF0b2FzdC52YWx1ZSAmJiAhIXRvYXN0LnZhbHVlLmxlbmd0aFwiXG4gICAgPlxuICAgIDxsYWJlbFxuICAgICAgICBjbGFzcz1cIm5vdGlmaXJlLXRvYXN0X19pbnB1dF9fbGFiZWxcIlxuICAgICAgICBbZm9yXT1cInRvYXN0LmlkXCJcbiAgICA+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cIm5vdGlmaXJlLXRvYXN0X19pbnB1dF9fbGFiZWxDb250ZW50XCJcbiAgICAgICAgICAgICpuZ0lmPVwidG9hc3QuY29uZmlnICYmIHRvYXN0LmNvbmZpZy5wbGFjZWhvbGRlciBcIlxuICAgICAgICA+XG4gICAgICAgICAgICB7eyB0b2FzdC5jb25maWcucGxhY2Vob2xkZXIgfCB0cnVuY2F0ZSB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgPC9sYWJlbD5cbjwvc3Bhbj5cbiJdfQ==
@@ -173,9 +173,9 @@ export class ToastComponent {
173
173
  this.unsubscribe$.complete();
174
174
  }
175
175
  }
176
- ToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ToastComponent, deps: [{ token: i1.SnotifireService }], target: i0.ɵɵFactoryTarget.Component });
177
- ToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ToastComponent, selector: "ngx-toast", inputs: { toast: "toast" }, outputs: { stateChanged: "stateChanged" }, ngImport: i0, template: "<ng-container *ngIf=\"toast && toast.config\">\n <div\n [attr.role]=\"toast.config.type === state.promptType ? 'dialog' : 'alert'\"\n [attr.aria-labelledby]=\"'snotify_' + toast.id\"\n [attr.aria-modal]=\"toast.config.type === state.promptType\"\n [ngClass]=\"[\n 'notifire-toast animated',\n 'snotify-' + toast.config.type,\n state.animation, toast.valid === undefined ? '' : toast.valid ? 'snotifyToast--valid' : 'snotifyToast--invalid'\n]\"\n [ngStyle]=\"{\n '-webkit-transition': toast.config.animation && toast.config.animation.time + 'ms',\n transition: toast.config.animation && toast.config.animation.time + 'ms',\n '-webkit-animation-duration': toast.config.animation && toast.config.animation.time + 'ms',\n 'animation-duration': toast.config.animation && toast.config.animation.time + 'ms'\n}\"\n (animationend)=\"onExitTransitionEnd()\"\n (click)=\"onClick()\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <div\n class=\"notifire-toast__progressBar\"\n *ngIf=\"toast.config.showProgressBar\"\n >\n <span\n class=\"notifire-toast__progressBar__percentage\"\n [ngStyle]=\"{ width: state.progress * 100 + '%' }\"\n ></span>\n </div>\n <div\n class=\"notifire-toast__inner\"\n *ngIf=\"!toast.config.html; else toastHTML\"\n >\n <div\n class=\"notifire-toast__title\"\n [attr.id]=\"'snotify_' + toast.id\"\n *ngIf=\"toast.title\"\n >\n {{ toast.title | truncate: toast.config.titleMaxLength }}\n </div>\n <div\n class=\"notifire-toast__body\"\n *ngIf=\"toast.body\"\n >\n {{ toast.body | truncate: toast.config.bodyMaxLength }}\n </div>\n <ngx-snotify-prompt\n *ngIf=\"toast.config.type === state.promptType\"\n [toast]=\"toast\"\n >\n </ngx-snotify-prompt>\n <div\n *ngIf=\"!toast.config.icon; else elseBlock\"\n [ngClass]=\"['snotifire-icon', toast.config.iconClass || 'snotifire-icon--' + toast.config.type]\"\n ></div>\n <ng-template #elseBlock>\n <img\n class=\"snotifire-icon\"\n [src]=\"toast.config.icon\"\n >\n </ng-template>\n </div>\n <ng-template #toastHTML>\n <div\n class=\"notifire-toast__inner\"\n [innerHTML]=\"toast.config.html\"\n ></div>\n </ng-template>\n <notifire-button\n *ngIf=\"toast.config.buttons\"\n [toast]=\"toast\"\n ></notifire-button>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.PromptComponent, selector: "ngx-snotify-prompt", inputs: ["toast"] }, { kind: "component", type: i4.ButtonsComponent, selector: "notifire-button", inputs: ["toast"] }, { kind: "pipe", type: i5.TruncatePipe, name: "truncate" }], encapsulation: i0.ViewEncapsulation.None });
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ToastComponent, decorators: [{
176
+ ToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: ToastComponent, deps: [{ token: i1.SnotifireService }], target: i0.ɵɵFactoryTarget.Component });
177
+ ToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.1", type: ToastComponent, selector: "ngx-toast", inputs: { toast: "toast" }, outputs: { stateChanged: "stateChanged" }, ngImport: i0, template: "<ng-container *ngIf=\"toast && toast.config\">\n <div\n [attr.role]=\"toast.config.type === state.promptType ? 'dialog' : 'alert'\"\n [attr.aria-labelledby]=\"'snotify_' + toast.id\"\n [attr.aria-modal]=\"toast.config.type === state.promptType\"\n [ngClass]=\"[\n 'notifire-toast animated',\n 'snotify-' + toast.config.type,\n state.animation, toast.valid === undefined ? '' : toast.valid ? 'snotifyToast--valid' : 'snotifyToast--invalid'\n]\"\n [ngStyle]=\"{\n '-webkit-transition': toast.config.animation && toast.config.animation.time + 'ms',\n transition: toast.config.animation && toast.config.animation.time + 'ms',\n '-webkit-animation-duration': toast.config.animation && toast.config.animation.time + 'ms',\n 'animation-duration': toast.config.animation && toast.config.animation.time + 'ms'\n}\"\n (animationend)=\"onExitTransitionEnd()\"\n (click)=\"onClick()\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <div\n class=\"notifire-toast__progressBar\"\n *ngIf=\"toast.config.showProgressBar\"\n >\n <span\n class=\"notifire-toast__progressBar__percentage\"\n [ngStyle]=\"{ width: state.progress * 100 + '%' }\"\n ></span>\n </div>\n <div\n class=\"notifire-toast__inner\"\n *ngIf=\"!toast.config.html; else toastHTML\"\n >\n <div\n class=\"notifire-toast__title\"\n [attr.id]=\"'snotify_' + toast.id\"\n *ngIf=\"toast.title\"\n >\n {{ toast.title | truncate: toast.config.titleMaxLength }}\n </div>\n <div\n class=\"notifire-toast__body\"\n *ngIf=\"toast.body\"\n >\n {{ toast.body | truncate: toast.config.bodyMaxLength }}\n </div>\n <ngx-snotify-prompt\n *ngIf=\"toast.config.type === state.promptType\"\n [toast]=\"toast\"\n >\n </ngx-snotify-prompt>\n <div\n *ngIf=\"!toast.config.icon; else elseBlock\"\n [ngClass]=\"['snotifire-icon', toast.config.iconClass || 'snotifire-icon--' + toast.config.type]\"\n ></div>\n <ng-template #elseBlock>\n <img\n class=\"snotifire-icon\"\n [src]=\"toast.config.icon\"\n >\n </ng-template>\n </div>\n <ng-template #toastHTML>\n <div\n class=\"notifire-toast__inner\"\n [innerHTML]=\"toast.config.html\"\n ></div>\n </ng-template>\n <notifire-button\n *ngIf=\"toast.config.buttons\"\n [toast]=\"toast\"\n ></notifire-button>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.PromptComponent, selector: "ngx-snotify-prompt", inputs: ["toast"] }, { kind: "component", type: i4.ButtonsComponent, selector: "notifire-button", inputs: ["toast"] }, { kind: "pipe", type: i5.TruncatePipe, name: "truncate" }], encapsulation: i0.ViewEncapsulation.None });
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: ToastComponent, decorators: [{
179
179
  type: Component,
180
180
  args: [{ selector: 'ngx-toast', encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"toast && toast.config\">\n <div\n [attr.role]=\"toast.config.type === state.promptType ? 'dialog' : 'alert'\"\n [attr.aria-labelledby]=\"'snotify_' + toast.id\"\n [attr.aria-modal]=\"toast.config.type === state.promptType\"\n [ngClass]=\"[\n 'notifire-toast animated',\n 'snotify-' + toast.config.type,\n state.animation, toast.valid === undefined ? '' : toast.valid ? 'snotifyToast--valid' : 'snotifyToast--invalid'\n]\"\n [ngStyle]=\"{\n '-webkit-transition': toast.config.animation && toast.config.animation.time + 'ms',\n transition: toast.config.animation && toast.config.animation.time + 'ms',\n '-webkit-animation-duration': toast.config.animation && toast.config.animation.time + 'ms',\n 'animation-duration': toast.config.animation && toast.config.animation.time + 'ms'\n}\"\n (animationend)=\"onExitTransitionEnd()\"\n (click)=\"onClick()\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n >\n <div\n class=\"notifire-toast__progressBar\"\n *ngIf=\"toast.config.showProgressBar\"\n >\n <span\n class=\"notifire-toast__progressBar__percentage\"\n [ngStyle]=\"{ width: state.progress * 100 + '%' }\"\n ></span>\n </div>\n <div\n class=\"notifire-toast__inner\"\n *ngIf=\"!toast.config.html; else toastHTML\"\n >\n <div\n class=\"notifire-toast__title\"\n [attr.id]=\"'snotify_' + toast.id\"\n *ngIf=\"toast.title\"\n >\n {{ toast.title | truncate: toast.config.titleMaxLength }}\n </div>\n <div\n class=\"notifire-toast__body\"\n *ngIf=\"toast.body\"\n >\n {{ toast.body | truncate: toast.config.bodyMaxLength }}\n </div>\n <ngx-snotify-prompt\n *ngIf=\"toast.config.type === state.promptType\"\n [toast]=\"toast\"\n >\n </ngx-snotify-prompt>\n <div\n *ngIf=\"!toast.config.icon; else elseBlock\"\n [ngClass]=\"['snotifire-icon', toast.config.iconClass || 'snotifire-icon--' + toast.config.type]\"\n ></div>\n <ng-template #elseBlock>\n <img\n class=\"snotifire-icon\"\n [src]=\"toast.config.icon\"\n >\n </ng-template>\n </div>\n <ng-template #toastHTML>\n <div\n class=\"notifire-toast__inner\"\n [innerHTML]=\"toast.config.html\"\n ></div>\n </ng-template>\n <notifire-button\n *ngIf=\"toast.config.buttons\"\n [toast]=\"toast\"\n ></notifire-button>\n </div>\n</ng-container>\n" }]
181
181
  }], ctorParameters: function () { return [{ type: i1.SnotifireService }]; }, propDecorators: { toast: [{
@@ -183,4 +183,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
183
183
  }], stateChanged: [{
184
184
  type: Output
185
185
  }] } });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQVNqRSxNQUFNLE9BQU8sY0FBYztJQXlCekIsWUFBNkIsT0FBeUI7UUFBekIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUF4QjlDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU1qQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBT2hFOztXQUVHO1FBQ0gsVUFBSyxHQUFHO1lBQ04sTUFBTSxFQUFFLEtBQUs7WUFDYixRQUFRLEVBQUUsQ0FBQztZQUNYLFNBQVMsRUFBRSxFQUFFO1lBQ2IsWUFBWSxFQUFFLEtBQUs7WUFDbkIsVUFBVSxFQUFFLGFBQWEsQ0FBQyxNQUFNO1NBQ2pDLENBQUM7SUFFdUQsQ0FBQztJQUUxRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO2FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2xDLFNBQVMsQ0FBQyxDQUFDLEtBQTBCLEVBQUUsRUFBRTtZQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ2xCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVk7YUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDbEMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDaEIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNqQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ2pFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7U0FDM0M7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsb0JBQW9CLENBQUM7SUFDOUMsQ0FBQztJQUNELGtCQUFrQjtRQUNoQixJQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGVBQWU7WUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFDcEQ7WUFDQSxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzdELElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztvQkFDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO3dCQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO3dCQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsS0FBSzt3QkFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLO3dCQUNuQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1gsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMseURBQXlEO1NBQzdIO0lBQ0gsQ0FBQztJQUNEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO1lBQ2xCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO2dCQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO2dCQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNuQyxFQUFFLENBQUM7UUFDTCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUM7WUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3hELFVBQVUsQ0FDUixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFDOUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO2dCQUNmLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7Z0JBQzNCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUN2QyxDQUFDO1FBQ0osQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFDRDs7T0FFRztJQUNILE9BQU87UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTtZQUNyRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUNEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3RCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFO1lBQ3JFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVk7UUFDVixJQUNFLElBQUksQ0FBQyxLQUFLO1lBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVk7WUFDOUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUN6QjtZQUNBLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFDRDs7T0FFRztJQUNILG1CQUFtQjtRQUNqQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFO1lBQzNCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVEOztPQUVHO0lBRUg7OztPQUdHO0lBQ0gsU0FBUztRQUNQLElBQ0UsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDM0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87WUFDM0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDVjtZQUNBLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBQ0Q7OztPQUdHO0lBQ0gsWUFBWSxDQUFDLFlBQW9CLENBQUM7UUFDaEMsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRTtZQUNyQixJQUFJLENBQUMsY0FBYyxHQUFHLHFCQUFxQixDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ3hELE1BQU0sT0FBTyxHQUFHLFNBQVMsR0FBRyxTQUFTLEdBQUcsS0FBSyxDQUFDO2dCQUM5QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUN2QixPQUFPO29CQUNMLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO3dCQUMzRCxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTzt3QkFDM0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNSLENBQUMsQ0FDRixDQUFDO2dCQUNGLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7b0JBQ3JCLG9CQUFvQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztpQkFDM0M7cUJBQU0sSUFDTCxPQUFPO29CQUNQLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPO3dCQUMzRCxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTzt3QkFDM0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNOO29CQUNBLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztvQkFDL0IsU0FBUyxFQUFFLENBQUM7aUJBQ2I7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO29CQUN4QixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3BDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFDRixTQUFTLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7OzRHQWpNVSxjQUFjO2dHQUFkLGNBQWMsd0hDbkIzQix1M0ZBMkVBOzRGRHhEYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFdBQVcsaUJBRU4saUJBQWlCLENBQUMsSUFBSTt1R0FRNUIsS0FBSztzQkFBYixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU25vdGlmaXJlRXZlbnRUeXBlLCBTbm90aWZpcmVUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFNub3RpZmlyZVRvYXN0TW9kZWwgfSBmcm9tICcuL25vdGlmaXJlLXRvYXN0Lm1vZGVsJztcbmltcG9ydCB7IFNub3RpZmlyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC10b2FzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90b2FzdC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEdldCB0b2FzdCBmcm9tIG5vdGlmaWNhdGlvbnMgYXJyYXlcbiAgICovXG4gIEBJbnB1dCgpIHRvYXN0ITogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgQE91dHB1dCgpIHN0YXRlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U25vdGlmaXJlRXZlbnRUeXBlPigpO1xuXG4gIC8qKlxuICAgKiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgaWRcbiAgICovXG4gIGFuaW1hdGlvbkZyYW1lITogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUb2FzdCBzdGF0ZVxuICAgKi9cbiAgc3RhdGUgPSB7XG4gICAgcGF1c2VkOiBmYWxzZSxcbiAgICBwcm9ncmVzczogMCxcbiAgICBhbmltYXRpb246ICcnLFxuICAgIGlzRGVzdHJveWluZzogZmFsc2UsXG4gICAgcHJvbXB0VHlwZTogU25vdGlmaXJlVHlwZS5QUk9NUFQsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBTbm90aWZpcmVTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS50b2FzdENoYW5nZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKCh0b2FzdDogU25vdGlmaXJlVG9hc3RNb2RlbCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygndG9hc3QnKTtcbiAgICAgICAgaWYgKHRoaXMudG9hc3QuaWQgPT09IHRvYXN0LmlkKSB7XG4gICAgICAgICAgdGhpcy5pbml0VG9hc3QoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnNlcnZpY2UudG9hc3REZWxldGVkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoaWQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMudG9hc3QuaWQgPT09IGlkKSB7XG4gICAgICAgICAgdGhpcy5vblJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICBpZiAodGhpcy50b2FzdCAmJiB0aGlzLnRvYXN0LmNvbmZpZyAmJiAhdGhpcy50b2FzdC5jb25maWcudGltZW91dCkge1xuICAgICAgdGhpcy50b2FzdC5jb25maWcuc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy50b2FzdC5ldmVudEVtaXR0ZXIubmV4dChTbm90aWZpcmVFdmVudFR5cGUuTU9VTlRFRCk7XG4gICAgdGhpcy5zdGF0ZS5hbmltYXRpb24gPSAnbm90aWZpcmUtdG9hc3QtLWluJztcbiAgfVxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5zZXJ2aWNlLmRlZmF1bHRDb25maWcuc25vdGlmaXJlQ29uZmlnICYmXG4gICAgICB0aGlzLnNlcnZpY2UuZGVmYXVsdENvbmZpZy5zbm90aWZpcmVDb25maWcuYW5pbWF0aW9uXG4gICAgKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZWQuZW1pdChTbm90aWZpcmVFdmVudFR5cGUuQkVGT1JFX1NIT1cpO1xuICAgICAgICB0aGlzLnRvYXN0LmV2ZW50RW1pdHRlci5uZXh0KFNub3RpZmlyZUV2ZW50VHlwZS5CRUZPUkVfU0hPVyk7XG4gICAgICAgIHRoaXMuc3RhdGUuYW5pbWF0aW9uID1cbiAgICAgICAgICB0aGlzLnRvYXN0LmNvbmZpZyAmJlxuICAgICAgICAgIHRoaXMudG9hc3QuY29uZmlnLmFuaW1hdGlvbiAmJlxuICAgICAgICAgIHRoaXMudG9hc3QuY29uZmlnLmFuaW1hdGlvbi5lbnRlclxuICAgICAgICAgICAgPyB0aGlzLnRvYXN0LmNvbmZpZy5hbmltYXRpb24uZW50ZXJcbiAgICAgICAgICAgIDogJyc7XG4gICAgICB9LCB0aGlzLnNlcnZpY2UuZGVmYXVsdENvbmZpZy5zbm90aWZpcmVDb25maWcuYW5pbWF0aW9uLnRpbWUgLyA1KTsgLy8gdGltZSB0byBzaG93IHRvYXN0IHB1c2ggYW5pbWF0aW9uIChub3RpZmlyZS10b2FzdC0taW4pXG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBUcmlnZ2VyIGJlZm9yZURlc3Ryb3kgbGlmZWN5Y2xlLiBSZW1vdmVzIHRvYXN0XG4gICAqL1xuICBvblJlbW92ZSgpIHtcbiAgICB0aGlzLnN0YXRlLmlzRGVzdHJveWluZyA9IHRydWU7XG4gICAgdGhpcy50b2FzdC5ldmVudEVtaXR0ZXIubmV4dChTbm90aWZpcmVFdmVudFR5cGUuQkVGT1JFX0hJREUpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VkLmVtaXQoU25vdGlmaXJlRXZlbnRUeXBlLkJFRk9SRV9ISURFKTtcbiAgICB0aGlzLnN0YXRlLmFuaW1hdGlvbiA9XG4gICAgICAodGhpcy50b2FzdC5jb25maWcgJiZcbiAgICAgICAgdGhpcy50b2FzdC5jb25maWcuYW5pbWF0aW9uICYmXG4gICAgICAgIHRoaXMudG9hc3QuY29uZmlnLmFuaW1hdGlvbi5leGl0KSB8fFxuICAgICAgJyc7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlZC5lbWl0KFNub3RpZmlyZUV2ZW50VHlwZS5ISURERU4pO1xuICAgICAgdGhpcy5zdGF0ZS5hbmltYXRpb24gPSAnbm90aWZpcmUtdG9hc3QtLW91dCc7XG4gICAgICB0aGlzLnRvYXN0LmV2ZW50RW1pdHRlci5uZXh0KFNub3RpZmlyZUV2ZW50VHlwZS5ISURERU4pO1xuICAgICAgc2V0VGltZW91dChcbiAgICAgICAgKCkgPT4gdGhpcy5zZXJ2aWNlLnJlbW92ZSh0aGlzLnRvYXN0LmlkLCB0cnVlKSxcbiAgICAgICAgdGhpcy50b2FzdC5jb25maWcgJiZcbiAgICAgICAgICB0aGlzLnRvYXN0LmNvbmZpZy5hbmltYXRpb24gJiZcbiAgICAgICAgICB0aGlzLnRvYXN0LmNvbmZpZy5hbmltYXRpb24udGltZSAvIDJcbiAgICAgICk7XG4gICAgfSwgdGhpcy50b2FzdC5jb25maWcgJiYgdGhpcy50b2FzdC5jb25maWcuYW5pbWF0aW9uICYmIHRoaXMudG9hc3QuY29uZmlnLmFuaW1hdGlvbi50aW1lIC8gMik7XG4gIH1cbiAgLyoqXG4gICAqIFRyaWdnZXIgT25DbGljayBsaWZlY3ljbGVcbiAgICovXG4gIG9uQ2xpY2soKSB7XG4gICAgdGhpcy50b2FzdC5ldmVudEVtaXR0ZXIubmV4dChTbm90aWZpcmVFdmVudFR5cGUuQ0xJQ0spO1xuICAgIGlmICh0aGlzLnRvYXN0ICYmIHRoaXMudG9hc3QuY29uZmlnICYmIHRoaXMudG9hc3QuY29uZmlnLmNsb3NlT25DbGljaykge1xuICAgICAgdGhpcy5zZXJ2aWNlLnJlbW92ZSh0aGlzLnRvYXN0LmlkKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFRyaWdnZXIgb25Ib3ZlckVudGVyIGxpZmVjeWNsZVxuICAgKi9cbiAgb25Nb3VzZUVudGVyKCkge1xuICAgIHRoaXMudG9hc3QuZXZlbnRFbWl0dGVyLm5leHQoU25vdGlmaXJlRXZlbnRUeXBlLk1PVVNFX0VOVEVSKTtcbiAgICBpZiAodGhpcy50b2FzdCAmJiB0aGlzLnRvYXN0LmNvbmZpZyAmJiB0aGlzLnRvYXN0LmNvbmZpZy5wYXVzZU9uSG92ZXIpIHtcbiAgICAgIHRoaXMuc3RhdGUucGF1c2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlciBvbkhvdmVyTGVhdmUgbGlmZWN5Y2xlXG4gICAqL1xuICBvbk1vdXNlTGVhdmUoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy50b2FzdCAmJlxuICAgICAgdGhpcy50b2FzdC5jb25maWcgJiZcbiAgICAgIHRoaXMudG9hc3QuY29uZmlnLnBhdXNlT25Ib3ZlciAmJlxuICAgICAgdGhpcy50b2FzdC5jb25maWcudGltZW91dFxuICAgICkge1xuICAgICAgdGhpcy5zdGF0ZS5wYXVzZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc3RhcnRUaW1lb3V0KHRoaXMudG9hc3QuY29uZmlnLnRpbWVvdXQgKiB0aGlzLnN0YXRlLnByb2dyZXNzKTtcbiAgICB9XG4gICAgdGhpcy50b2FzdC5ldmVudEVtaXR0ZXIubmV4dChTbm90aWZpcmVFdmVudFR5cGUuTU9VU0VfTEVBVkUpO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmUgdG9hc3QgY29tcGxldGVseSBhZnRlciBhbmltYXRpb25cbiAgICovXG4gIG9uRXhpdFRyYW5zaXRpb25FbmQoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUuaXNEZXN0cm95aW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5pdFRvYXN0KCk7XG4gICAgdGhpcy50b2FzdC5ldmVudEVtaXR0ZXIubmV4dChTbm90aWZpcmVFdmVudFR5cGUuU0hPV04pO1xuICB9XG5cbiAgLypcbiAgIENvbW1vblxuICAgKi9cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSBiYXNlIHRvYXN0IGNvbmZpZ1xuICAgKlxuICAgKi9cbiAgaW5pdFRvYXN0KCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICh0aGlzLnRvYXN0ICYmIHRoaXMudG9hc3QuY29uZmlnICYmIHRoaXMudG9hc3QuY29uZmlnLnRpbWVvdXRcbiAgICAgICAgPyB0aGlzLnRvYXN0LmNvbmZpZy50aW1lb3V0XG4gICAgICAgIDogMCkgPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLnN0YXJ0VGltZW91dCgwKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFN0YXJ0IHByb2dyZXNzIGJhclxuICAgKiBAcGFyYW0gc3RhcnRUaW1lIG51bWJlclxuICAgKi9cbiAgc3RhcnRUaW1lb3V0KHN0YXJ0VGltZTogbnVtYmVyID0gMCkge1xuICAgIGNvbnN0IHN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgY29uc3QgY2FsY3VsYXRlID0gKCkgPT4ge1xuICAgICAgdGhpcy5hbmltYXRpb25GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgodGltZXN0YW1wKSA9PiB7XG4gICAgICAgIGNvbnN0IHJ1bnRpbWUgPSB0aW1lc3RhbXAgKyBzdGFydFRpbWUgLSBzdGFydDtcbiAgICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBNYXRoLm1pbihcbiAgICAgICAgICBydW50aW1lIC9cbiAgICAgICAgICAgICh0aGlzLnRvYXN0ICYmIHRoaXMudG9hc3QuY29uZmlnICYmIHRoaXMudG9hc3QuY29uZmlnLnRpbWVvdXRcbiAgICAgICAgICAgICAgPyB0aGlzLnRvYXN0LmNvbmZpZy50aW1lb3V0XG4gICAgICAgICAgICAgIDogMSksXG4gICAgICAgICAgMVxuICAgICAgICApO1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS5wYXVzZWQpIHtcbiAgICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1hdGlvbkZyYW1lKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBydW50aW1lIDxcbiAgICAgICAgICAodGhpcy50b2FzdCAmJiB0aGlzLnRvYXN0LmNvbmZpZyAmJiB0aGlzLnRvYXN0LmNvbmZpZy50aW1lb3V0XG4gICAgICAgICAgICA/IHRoaXMudG9hc3QuY29uZmlnLnRpbWVvdXRcbiAgICAgICAgICAgIDogMSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5zdGF0ZS5wcm9ncmVzcyA9IHByb2dyZXNzO1xuICAgICAgICAgIGNhbGN1bGF0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc3RhdGUucHJvZ3Jlc3MgPSAxO1xuICAgICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuYW5pbWF0aW9uRnJhbWUpO1xuICAgICAgICAgIHRoaXMuc2VydmljZS5yZW1vdmUodGhpcy50b2FzdC5pZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gICAgY2FsY3VsYXRlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvYXN0ICYmIHRvYXN0LmNvbmZpZ1wiPlxuICAgIDxkaXZcbiAgICAgICAgW2F0dHIucm9sZV09XCJ0b2FzdC5jb25maWcudHlwZSA9PT0gc3RhdGUucHJvbXB0VHlwZSA/ICdkaWFsb2cnIDogJ2FsZXJ0J1wiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInc25vdGlmeV8nICsgdG9hc3QuaWRcIlxuICAgICAgICBbYXR0ci5hcmlhLW1vZGFsXT1cInRvYXN0LmNvbmZpZy50eXBlID09PSBzdGF0ZS5wcm9tcHRUeXBlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiW1xuICAnbm90aWZpcmUtdG9hc3QgYW5pbWF0ZWQnLFxuICAnc25vdGlmeS0nICsgdG9hc3QuY29uZmlnLnR5cGUsXG4gIHN0YXRlLmFuaW1hdGlvbiwgIHRvYXN0LnZhbGlkID09PSB1bmRlZmluZWQgPyAnJyA6IHRvYXN0LnZhbGlkID8gJ3Nub3RpZnlUb2FzdC0tdmFsaWQnIDogJ3Nub3RpZnlUb2FzdC0taW52YWxpZCdcbl1cIlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICctd2Via2l0LXRyYW5zaXRpb24nOiB0b2FzdC5jb25maWcuYW5pbWF0aW9uICYmIHRvYXN0LmNvbmZpZy5hbmltYXRpb24udGltZSAgKyAnbXMnLFxuICB0cmFuc2l0aW9uOiAgdG9hc3QuY29uZmlnLmFuaW1hdGlvbiAmJiB0b2FzdC5jb25maWcuYW5pbWF0aW9uLnRpbWUgKyAnbXMnLFxuICAnLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb24nOiAgdG9hc3QuY29uZmlnLmFuaW1hdGlvbiAmJiAgdG9hc3QuY29uZmlnLmFuaW1hdGlvbi50aW1lICsgJ21zJyxcbiAgJ2FuaW1hdGlvbi1kdXJhdGlvbic6ICB0b2FzdC5jb25maWcuYW5pbWF0aW9uICYmIHRvYXN0LmNvbmZpZy5hbmltYXRpb24udGltZSArICdtcydcbn1cIlxuICAgICAgICAoYW5pbWF0aW9uZW5kKT1cIm9uRXhpdFRyYW5zaXRpb25FbmQoKVwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgICAgICAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoKVwiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cIm9uTW91c2VMZWF2ZSgpXCJcbiAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibm90aWZpcmUtdG9hc3RfX3Byb2dyZXNzQmFyXCJcbiAgICAgICAgICAgICpuZ0lmPVwidG9hc3QuY29uZmlnLnNob3dQcm9ncmVzc0JhclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJub3RpZmlyZS10b2FzdF9fcHJvZ3Jlc3NCYXJfX3BlcmNlbnRhZ2VcIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgd2lkdGg6IHN0YXRlLnByb2dyZXNzICogMTAwICsgJyUnIH1cIlxuICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibm90aWZpcmUtdG9hc3RfX2lubmVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiIXRvYXN0LmNvbmZpZy5odG1sOyBlbHNlIHRvYXN0SFRNTFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5vdGlmaXJlLXRvYXN0X190aXRsZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiJ3Nub3RpZnlfJyArIHRvYXN0LmlkXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInRvYXN0LnRpdGxlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyB0b2FzdC50aXRsZSB8IHRydW5jYXRlOiB0b2FzdC5jb25maWcudGl0bGVNYXhMZW5ndGggfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibm90aWZpcmUtdG9hc3RfX2JvZHlcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidG9hc3QuYm9keVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdG9hc3QuYm9keSB8IHRydW5jYXRlOiB0b2FzdC5jb25maWcuYm9keU1heExlbmd0aCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmd4LXNub3RpZnktcHJvbXB0XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ0b2FzdC5jb25maWcudHlwZSA9PT0gc3RhdGUucHJvbXB0VHlwZVwiXG4gICAgICAgICAgICAgICAgW3RvYXN0XT1cInRvYXN0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmd4LXNub3RpZnktcHJvbXB0PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXRvYXN0LmNvbmZpZy5pY29uOyBlbHNlIGVsc2VCbG9ja1wiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiWydzbm90aWZpcmUtaWNvbicsIHRvYXN0LmNvbmZpZy5pY29uQ2xhc3MgfHwgJ3Nub3RpZmlyZS1pY29uLS0nICsgdG9hc3QuY29uZmlnLnR5cGVdXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZUJsb2NrPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbm90aWZpcmUtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwidG9hc3QuY29uZmlnLmljb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI3RvYXN0SFRNTD5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5vdGlmaXJlLXRvYXN0X19pbm5lclwiXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJ0b2FzdC5jb25maWcuaHRtbFwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxub3RpZmlyZS1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwidG9hc3QuY29uZmlnLmJ1dHRvbnNcIlxuICAgICAgICAgICAgW3RvYXN0XT1cInRvYXN0XCJcbiAgICAgICAgPjwvbm90aWZpcmUtYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL2NvbXBvbmVudHMvdG9hc3QvdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQVNqRSxNQUFNLE9BQU8sY0FBYztJQXlCekIsWUFBNkIsT0FBeUI7UUFBekIsWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUF4QjlDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU1qQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBT2hFOztXQUVHO1FBQ0gsVUFBSyxHQUFHO1lBQ04sTUFBTSxFQUFFLEtBQUs7WUFDYixRQUFRLEVBQUUsQ0FBQztZQUNYLFNBQVMsRUFBRSxFQUFFO1lBQ2IsWUFBWSxFQUFFLEtBQUs7WUFDbkIsVUFBVSxFQUFFLGFBQWEsQ0FBQyxNQUFNO1NBQ2pDLENBQUM7SUFFdUQsQ0FBQztJQUUxRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO2FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ2xDLFNBQVMsQ0FBQyxDQUFDLEtBQTBCLEVBQUUsRUFBRTtZQUN4QyxP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QyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztvQkFDL0IsU0FBUyxFQUFFLENBQUM7aUJBQ2I7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO29CQUN4QixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7b0JBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3BDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFDRixTQUFTLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7OzJHQWpNVSxjQUFjOytGQUFkLGNBQWMsd0hDbkIzQix1M0ZBMkVBOzJGRHhEYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFdBQVcsaUJBRU4saUJBQWlCLENBQUMsSUFBSTt1R0FRNUIsS0FBSztzQkFBYixLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU25vdGlmaXJlRXZlbnRUeXBlLCBTbm90aWZpcmVUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFNub3RpZmlyZVRvYXN0TW9kZWwgfSBmcm9tICcuL25vdGlmaXJlLXRvYXN0Lm1vZGVsJztcbmltcG9ydCB7IFNub3RpZmlyZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25neC10b2FzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90b2FzdC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFRvYXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgLyoqXG4gICAqIEdldCB0b2FzdCBmcm9tIG5vdGlmaWNhdGlvbnMgYXJyYXlcbiAgICovXG4gIEBJbnB1dCgpIHRvYXN0ITogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgQE91dHB1dCgpIHN0YXRlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8U25vdGlmaXJlRXZlbnRUeXBlPigpO1xuXG4gIC8qKlxuICAgKiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgaWRcbiAgICovXG4gIGFuaW1hdGlvbkZyYW1lITogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUb2FzdCBzdGF0ZVxuICAgKi9cbiAgc3RhdGUgPSB7XG4gICAgcGF1c2VkOiBmYWxzZSxcbiAgICBwcm9ncmVzczogMCxcbiAgICBhbmltYXRpb246ICcnLFxuICAgIGlzRGVzdHJveWluZzogZmFsc2UsXG4gICAgcHJvbXB0VHlwZTogU25vdGlmaXJlVHlwZS5QUk9NUFQsXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlOiBTbm90aWZpcmVTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS50b2FzdENoYW5nZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKCh0b2FzdDogU25vdGlmaXJlVG9hc3RNb2RlbCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZygndG9hc3QnKTtcbiAgICAgICAgaWYgKHRoaXMudG9hc3QuaWQgPT09IHRvYXN0LmlkKSB7XG4gICAgICAgICAgdGhpcy5pbml0VG9hc3QoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICB0aGlzLnNlcnZpY2UudG9hc3REZWxldGVkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoaWQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMudG9hc3QuaWQgPT09IGlkKSB7XG4gICAgICAgICAgdGhpcy5vblJlbW92ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICBpZiAodGhpcy50b2FzdCAmJiB0aGlzLnRvYXN0LmNvbmZpZyAmJiAhdGhpcy50b2FzdC5jb25maWcudGltZW91dCkge1xuICAgICAgdGhpcy50b2FzdC5jb25maWcuc2hvd1Byb2dyZXNzQmFyID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy50b2FzdC5ldmVudEVtaXR0ZXIubmV4dChTbm90aWZpcmVFdmVudFR5cGUuTU9VTlRFRCk7XG4gICAgdGhpcy5zdGF0ZS5hbmltYXRpb24gPSAnbm90aWZpcmUtdG9hc3QtLWluJztcbiAgfVxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5zZXJ2aWNlLmRlZmF1bHRDb25maWcuc25vdGlmaXJlQ29uZmlnICYmXG4gICAgICB0aGlzLnNlcnZpY2UuZGVmYXVsdENvbmZpZy5zbm90aWZpcmVDb25maWcuYW5pbWF0aW9uXG4gICAgKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZWQuZW1pdChTbm90aWZpcmVFdmVudFR5cGUuQkVGT1JFX1NIT1cpO1xuICAgICAgICB0aGlzLnRvYXN0LmV2ZW50RW1pdHRlci5uZXh0KFNub3RpZmlyZUV2ZW50VHlwZS5CRUZPUkVfU0hPVyk7XG4gICAgICAgIHRoaXMuc3RhdGUuYW5pbWF0aW9uID1cbiAgICAgICAgICB0aGlzLnRvYXN0LmNvbmZpZyAmJlxuICAgICAgICAgIHRoaXMudG9hc3QuY29uZmlnLmFuaW1hdGlvbiAmJlxuICAgICAgICAgIHRoaXMudG9hc3QuY29uZmlnLmFuaW1hdGlvbi5lbnRlclxuICAgICAgICAgICAgPyB0aGlzLnRvYXN0LmNvbmZpZy5hbmltYXRpb24uZW50ZXJcbiAgICAgICAgICAgIDogJyc7XG4gICAgICB9LCB0aGlzLnNlcnZpY2UuZGVmYXVsdENvbmZpZy5zbm90aWZpcmVDb25maWcuYW5pbWF0aW9uLnRpbWUgLyA1KTsgLy8gdGltZSB0byBzaG93IHRvYXN0IHB1c2ggYW5pbWF0aW9uIChub3RpZmlyZS10b2FzdC0taW4pXG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBUcmlnZ2VyIGJlZm9yZURlc3Ryb3kgbGlmZWN5Y2xlLiBSZW1vdmVzIHRvYXN0XG4gICAqL1xuICBvblJlbW92ZSgpIHtcbiAgICB0aGlzLnN0YXRlLmlzRGVzdHJveWluZyA9IHRydWU7XG4gICAgdGhpcy50b2FzdC5ldmVudEVtaXR0ZXIubmV4dChTbm90aWZpcmVFdmVudFR5cGUuQkVGT1JFX0hJREUpO1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VkLmVtaXQoU25vdGlmaXJlRXZlbnRUeXBlLkJFRk9SRV9ISURFKTtcbiAgICB0aGlzLnN0YXRlLmFuaW1hdGlvbiA9XG4gICAgICAodGhpcy50b2FzdC5jb25maWcgJiZcbiAgICAgICAgdGhpcy50b2FzdC5jb25maWcuYW5pbWF0aW9uICYmXG4gICAgICAgIHRoaXMudG9hc3QuY29uZmlnLmFuaW1hdGlvbi5leGl0KSB8fFxuICAgICAgJyc7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlZC5lbWl0KFNub3RpZmlyZUV2ZW50VHlwZS5ISURERU4pO1xuICAgICAgdGhpcy5zdGF0ZS5hbmltYXRpb24gPSAnbm90aWZpcmUtdG9hc3QtLW91dCc7XG4gICAgICB0aGlzLnRvYXN0LmV2ZW50RW1pdHRlci5uZXh0KFNub3RpZmlyZUV2ZW50VHlwZS5ISURERU4pO1xuICAgICAgc2V0VGltZW91dChcbiAgICAgICAgKCkgPT4gdGhpcy5zZXJ2aWNlLnJlbW92ZSh0aGlzLnRvYXN0LmlkLCB0cnVlKSxcbiAgICAgICAgdGhpcy50b2FzdC5jb25maWcgJiZcbiAgICAgICAgICB0aGlzLnRvYXN0LmNvbmZpZy5hbmltYXRpb24gJiZcbiAgICAgICAgICB0aGlzLnRvYXN0LmNvbmZpZy5hbmltYXRpb24udGltZSAvIDJcbiAgICAgICk7XG4gICAgfSwgdGhpcy50b2FzdC5jb25maWcgJiYgdGhpcy50b2FzdC5jb25maWcuYW5pbWF0aW9uICYmIHRoaXMudG9hc3QuY29uZmlnLmFuaW1hdGlvbi50aW1lIC8gMik7XG4gIH1cbiAgLyoqXG4gICAqIFRyaWdnZXIgT25DbGljayBsaWZlY3ljbGVcbiAgICovXG4gIG9uQ2xpY2soKSB7XG4gICAgdGhpcy50b2FzdC5ldmVudEVtaXR0ZXIubmV4dChTbm90aWZpcmVFdmVudFR5cGUuQ0xJQ0spO1xuICAgIGlmICh0aGlzLnRvYXN0ICYmIHRoaXMudG9hc3QuY29uZmlnICYmIHRoaXMudG9hc3QuY29uZmlnLmNsb3NlT25DbGljaykge1xuICAgICAgdGhpcy5zZXJ2aWNlLnJlbW92ZSh0aGlzLnRvYXN0LmlkKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFRyaWdnZXIgb25Ib3ZlckVudGVyIGxpZmVjeWNsZVxuICAgKi9cbiAgb25Nb3VzZUVudGVyKCkge1xuICAgIHRoaXMudG9hc3QuZXZlbnRFbWl0dGVyLm5leHQoU25vdGlmaXJlRXZlbnRUeXBlLk1PVVNFX0VOVEVSKTtcbiAgICBpZiAodGhpcy50b2FzdCAmJiB0aGlzLnRvYXN0LmNvbmZpZyAmJiB0aGlzLnRvYXN0LmNvbmZpZy5wYXVzZU9uSG92ZXIpIHtcbiAgICAgIHRoaXMuc3RhdGUucGF1c2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlciBvbkhvdmVyTGVhdmUgbGlmZWN5Y2xlXG4gICAqL1xuICBvbk1vdXNlTGVhdmUoKSB7XG4gICAgaWYgKFxuICAgICAgdGhpcy50b2FzdCAmJlxuICAgICAgdGhpcy50b2FzdC5jb25maWcgJiZcbiAgICAgIHRoaXMudG9hc3QuY29uZmlnLnBhdXNlT25Ib3ZlciAmJlxuICAgICAgdGhpcy50b2FzdC5jb25maWcudGltZW91dFxuICAgICkge1xuICAgICAgdGhpcy5zdGF0ZS5wYXVzZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuc3RhcnRUaW1lb3V0KHRoaXMudG9hc3QuY29uZmlnLnRpbWVvdXQgKiB0aGlzLnN0YXRlLnByb2dyZXNzKTtcbiAgICB9XG4gICAgdGhpcy50b2FzdC5ldmVudEVtaXR0ZXIubmV4dChTbm90aWZpcmVFdmVudFR5cGUuTU9VU0VfTEVBVkUpO1xuICB9XG4gIC8qKlxuICAgKiBSZW1vdmUgdG9hc3QgY29tcGxldGVseSBhZnRlciBhbmltYXRpb25cbiAgICovXG4gIG9uRXhpdFRyYW5zaXRpb25FbmQoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUuaXNEZXN0cm95aW5nKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW5pdFRvYXN0KCk7XG4gICAgdGhpcy50b2FzdC5ldmVudEVtaXR0ZXIubmV4dChTbm90aWZpcmVFdmVudFR5cGUuU0hPV04pO1xuICB9XG5cbiAgLypcbiAgIENvbW1vblxuICAgKi9cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSBiYXNlIHRvYXN0IGNvbmZpZ1xuICAgKlxuICAgKi9cbiAgaW5pdFRvYXN0KCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICh0aGlzLnRvYXN0ICYmIHRoaXMudG9hc3QuY29uZmlnICYmIHRoaXMudG9hc3QuY29uZmlnLnRpbWVvdXRcbiAgICAgICAgPyB0aGlzLnRvYXN0LmNvbmZpZy50aW1lb3V0XG4gICAgICAgIDogMCkgPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLnN0YXJ0VGltZW91dCgwKTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIFN0YXJ0IHByb2dyZXNzIGJhclxuICAgKiBAcGFyYW0gc3RhcnRUaW1lIG51bWJlclxuICAgKi9cbiAgc3RhcnRUaW1lb3V0KHN0YXJ0VGltZTogbnVtYmVyID0gMCkge1xuICAgIGNvbnN0IHN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgY29uc3QgY2FsY3VsYXRlID0gKCkgPT4ge1xuICAgICAgdGhpcy5hbmltYXRpb25GcmFtZSA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgodGltZXN0YW1wKSA9PiB7XG4gICAgICAgIGNvbnN0IHJ1bnRpbWUgPSB0aW1lc3RhbXAgKyBzdGFydFRpbWUgLSBzdGFydDtcbiAgICAgICAgY29uc3QgcHJvZ3Jlc3MgPSBNYXRoLm1pbihcbiAgICAgICAgICBydW50aW1lIC9cbiAgICAgICAgICAgICh0aGlzLnRvYXN0ICYmIHRoaXMudG9hc3QuY29uZmlnICYmIHRoaXMudG9hc3QuY29uZmlnLnRpbWVvdXRcbiAgICAgICAgICAgICAgPyB0aGlzLnRvYXN0LmNvbmZpZy50aW1lb3V0XG4gICAgICAgICAgICAgIDogMSksXG4gICAgICAgICAgMVxuICAgICAgICApO1xuICAgICAgICBpZiAodGhpcy5zdGF0ZS5wYXVzZWQpIHtcbiAgICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLmFuaW1hdGlvbkZyYW1lKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBydW50aW1lIDxcbiAgICAgICAgICAodGhpcy50b2FzdCAmJiB0aGlzLnRvYXN0LmNvbmZpZyAmJiB0aGlzLnRvYXN0LmNvbmZpZy50aW1lb3V0XG4gICAgICAgICAgICA/IHRoaXMudG9hc3QuY29uZmlnLnRpbWVvdXRcbiAgICAgICAgICAgIDogMSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5zdGF0ZS5wcm9ncmVzcyA9IHByb2dyZXNzO1xuICAgICAgICAgIGNhbGN1bGF0ZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc3RhdGUucHJvZ3Jlc3MgPSAxO1xuICAgICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMuYW5pbWF0aW9uRnJhbWUpO1xuICAgICAgICAgIHRoaXMuc2VydmljZS5yZW1vdmUodGhpcy50b2FzdC5pZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH07XG4gICAgY2FsY3VsYXRlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cInRvYXN0ICYmIHRvYXN0LmNvbmZpZ1wiPlxuICAgIDxkaXZcbiAgICAgICAgW2F0dHIucm9sZV09XCJ0b2FzdC5jb25maWcudHlwZSA9PT0gc3RhdGUucHJvbXB0VHlwZSA/ICdkaWFsb2cnIDogJ2FsZXJ0J1wiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInc25vdGlmeV8nICsgdG9hc3QuaWRcIlxuICAgICAgICBbYXR0ci5hcmlhLW1vZGFsXT1cInRvYXN0LmNvbmZpZy50eXBlID09PSBzdGF0ZS5wcm9tcHRUeXBlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwiW1xuICAnbm90aWZpcmUtdG9hc3QgYW5pbWF0ZWQnLFxuICAnc25vdGlmeS0nICsgdG9hc3QuY29uZmlnLnR5cGUsXG4gIHN0YXRlLmFuaW1hdGlvbiwgIHRvYXN0LnZhbGlkID09PSB1bmRlZmluZWQgPyAnJyA6IHRvYXN0LnZhbGlkID8gJ3Nub3RpZnlUb2FzdC0tdmFsaWQnIDogJ3Nub3RpZnlUb2FzdC0taW52YWxpZCdcbl1cIlxuICAgICAgICBbbmdTdHlsZV09XCJ7XG4gICctd2Via2l0LXRyYW5zaXRpb24nOiB0b2FzdC5jb25maWcuYW5pbWF0aW9uICYmIHRvYXN0LmNvbmZpZy5hbmltYXRpb24udGltZSAgKyAnbXMnLFxuICB0cmFuc2l0aW9uOiAgdG9hc3QuY29uZmlnLmFuaW1hdGlvbiAmJiB0b2FzdC5jb25maWcuYW5pbWF0aW9uLnRpbWUgKyAnbXMnLFxuICAnLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb24nOiAgdG9hc3QuY29uZmlnLmFuaW1hdGlvbiAmJiAgdG9hc3QuY29uZmlnLmFuaW1hdGlvbi50aW1lICsgJ21zJyxcbiAgJ2FuaW1hdGlvbi1kdXJhdGlvbic6ICB0b2FzdC5jb25maWcuYW5pbWF0aW9uICYmIHRvYXN0LmNvbmZpZy5hbmltYXRpb24udGltZSArICdtcydcbn1cIlxuICAgICAgICAoYW5pbWF0aW9uZW5kKT1cIm9uRXhpdFRyYW5zaXRpb25FbmQoKVwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgICAgICAobW91c2VlbnRlcik9XCJvbk1vdXNlRW50ZXIoKVwiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cIm9uTW91c2VMZWF2ZSgpXCJcbiAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibm90aWZpcmUtdG9hc3RfX3Byb2dyZXNzQmFyXCJcbiAgICAgICAgICAgICpuZ0lmPVwidG9hc3QuY29uZmlnLnNob3dQcm9ncmVzc0JhclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJub3RpZmlyZS10b2FzdF9fcHJvZ3Jlc3NCYXJfX3BlcmNlbnRhZ2VcIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgd2lkdGg6IHN0YXRlLnByb2dyZXNzICogMTAwICsgJyUnIH1cIlxuICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibm90aWZpcmUtdG9hc3RfX2lubmVyXCJcbiAgICAgICAgICAgICpuZ0lmPVwiIXRvYXN0LmNvbmZpZy5odG1sOyBlbHNlIHRvYXN0SFRNTFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5vdGlmaXJlLXRvYXN0X190aXRsZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiJ3Nub3RpZnlfJyArIHRvYXN0LmlkXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cInRvYXN0LnRpdGxlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyB0b2FzdC50aXRsZSB8IHRydW5jYXRlOiB0b2FzdC5jb25maWcudGl0bGVNYXhMZW5ndGggfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibm90aWZpcmUtdG9hc3RfX2JvZHlcIlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidG9hc3QuYm9keVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3sgdG9hc3QuYm9keSB8IHRydW5jYXRlOiB0b2FzdC5jb25maWcuYm9keU1heExlbmd0aCB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8bmd4LXNub3RpZnktcHJvbXB0XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJ0b2FzdC5jb25maWcudHlwZSA9PT0gc3RhdGUucHJvbXB0VHlwZVwiXG4gICAgICAgICAgICAgICAgW3RvYXN0XT1cInRvYXN0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmd4LXNub3RpZnktcHJvbXB0PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXRvYXN0LmNvbmZpZy5pY29uOyBlbHNlIGVsc2VCbG9ja1wiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiWydzbm90aWZpcmUtaWNvbicsIHRvYXN0LmNvbmZpZy5pY29uQ2xhc3MgfHwgJ3Nub3RpZmlyZS1pY29uLS0nICsgdG9hc3QuY29uZmlnLnR5cGVdXCJcbiAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZWxzZUJsb2NrPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzbm90aWZpcmUtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwidG9hc3QuY29uZmlnLmljb25cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bmctdGVtcGxhdGUgI3RvYXN0SFRNTD5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5vdGlmaXJlLXRvYXN0X19pbm5lclwiXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJ0b2FzdC5jb25maWcuaHRtbFwiXG4gICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxub3RpZmlyZS1idXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwidG9hc3QuY29uZmlnLmJ1dHRvbnNcIlxuICAgICAgICAgICAgW3RvYXN0XT1cInRvYXN0XCJcbiAgICAgICAgPjwvbm90aWZpcmUtYnV0dG9uPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -12,15 +12,15 @@ export class NgxSnotifireModule {
12
12
  };
13
13
  }
14
14
  }
15
- NgxSnotifireModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: NgxSnotifireModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
- NgxSnotifireModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: NgxSnotifireModule, declarations: [PromptComponent,
15
+ NgxSnotifireModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: NgxSnotifireModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
16
+ NgxSnotifireModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.1", ngImport: i0, type: NgxSnotifireModule, declarations: [PromptComponent,
17
17
  ToastComponent,
18
18
  ButtonsComponent,
19
19
  TruncatePipe,
20
20
  KeysPipe,
21
21
  NgxSnotifireComponent], imports: [CommonModule], exports: [NgxSnotifireComponent] });
22
- NgxSnotifireModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: NgxSnotifireModule, imports: [CommonModule] });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: NgxSnotifireModule, decorators: [{
22
+ NgxSnotifireModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: NgxSnotifireModule, imports: [CommonModule] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: NgxSnotifireModule, decorators: [{
24
24
  type: NgModule,
25
25
  args: [{
26
26
  declarations: [
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
35
35
  exports: [NgxSnotifireComponent],
36
36
  }]
37
37
  }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNub3RpZmlyZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc25vdGlmaXJlL3NyYy9saWIvbmd4LXNub3RpZmlyZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLGVBQWUsRUFDZixjQUFjLEdBQ2YsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDOztBQWM5QyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7U0FDOUIsQ0FBQztJQUNKLENBQUM7O2dIQU5VLGtCQUFrQjtpSEFBbEIsa0JBQWtCLGlCQVYzQixlQUFlO1FBQ2YsY0FBYztRQUNkLGdCQUFnQjtRQUNoQixZQUFZO1FBQ1osUUFBUTtRQUNSLHFCQUFxQixhQUViLFlBQVksYUFDWixxQkFBcUI7aUhBRXBCLGtCQUFrQixZQUhuQixZQUFZOzRGQUdYLGtCQUFrQjtrQkFaOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZUFBZTt3QkFDZixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixRQUFRO3dCQUNSLHFCQUFxQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJ1dHRvbnNDb21wb25lbnQsXG4gIE5neFNub3RpZmlyZUNvbXBvbmVudCxcbiAgUHJvbXB0Q29tcG9uZW50LFxuICBUb2FzdENvbXBvbmVudCxcbn0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEtleXNQaXBlLCBUcnVuY2F0ZVBpcGUgfSBmcm9tICcuL3BpcGVzJztcbmltcG9ydCB7IFNub3RpZmlyZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUHJvbXB0Q29tcG9uZW50LFxuICAgIFRvYXN0Q29tcG9uZW50LFxuICAgIEJ1dHRvbnNDb21wb25lbnQsXG4gICAgVHJ1bmNhdGVQaXBlLFxuICAgIEtleXNQaXBlLFxuICAgIE5neFNub3RpZmlyZUNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtOZ3hTbm90aWZpcmVDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hTbm90aWZpcmVNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neFNub3RpZmlyZU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd4U25vdGlmaXJlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbU25vdGlmaXJlU2VydmljZV0sXG4gICAgfTtcbiAgfVxufVxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXNub3RpZmlyZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc25vdGlmaXJlL3NyYy9saWIvbmd4LXNub3RpZmlyZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLGVBQWUsRUFDZixjQUFjLEdBQ2YsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDOztBQWM5QyxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7U0FDOUIsQ0FBQztJQUNKLENBQUM7OytHQU5VLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQVYzQixlQUFlO1FBQ2YsY0FBYztRQUNkLGdCQUFnQjtRQUNoQixZQUFZO1FBQ1osUUFBUTtRQUNSLHFCQUFxQixhQUViLFlBQVksYUFDWixxQkFBcUI7Z0hBRXBCLGtCQUFrQixZQUhuQixZQUFZOzJGQUdYLGtCQUFrQjtrQkFaOUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osZUFBZTt3QkFDZixjQUFjO3dCQUNkLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixRQUFRO3dCQUNSLHFCQUFxQjtxQkFDdEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJ1dHRvbnNDb21wb25lbnQsXG4gIE5neFNub3RpZmlyZUNvbXBvbmVudCxcbiAgUHJvbXB0Q29tcG9uZW50LFxuICBUb2FzdENvbXBvbmVudCxcbn0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEtleXNQaXBlLCBUcnVuY2F0ZVBpcGUgfSBmcm9tICcuL3BpcGVzJztcbmltcG9ydCB7IFNub3RpZmlyZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgUHJvbXB0Q29tcG9uZW50LFxuICAgIFRvYXN0Q29tcG9uZW50LFxuICAgIEJ1dHRvbnNDb21wb25lbnQsXG4gICAgVHJ1bmNhdGVQaXBlLFxuICAgIEtleXNQaXBlLFxuICAgIE5neFNub3RpZmlyZUNvbXBvbmVudCxcbiAgXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtOZ3hTbm90aWZpcmVDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3hTbm90aWZpcmVNb2R1bGUge1xuICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neFNub3RpZmlyZU1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd4U25vdGlmaXJlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbU25vdGlmaXJlU2VydmljZV0sXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -11,13 +11,13 @@ export class KeysPipe {
11
11
  return Object.keys(value);
12
12
  }
13
13
  }
14
- KeysPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: KeysPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
15
- KeysPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: KeysPipe, name: "keys", pure: false });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: KeysPipe, decorators: [{
14
+ KeysPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: KeysPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
15
+ KeysPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.1", ngImport: i0, type: KeysPipe, name: "keys", pure: false });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: KeysPipe, decorators: [{
17
17
  type: Pipe,
18
18
  args: [{
19
19
  name: 'keys',
20
20
  pure: false,
21
21
  }]
22
22
  }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL3BpcGVzL2tleXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFNcEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQUNuQixTQUFTLENBQUMsS0FBVTtRQUNsQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOztzR0FOVSxRQUFRO29HQUFSLFFBQVE7NEZBQVIsUUFBUTtrQkFQcEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsTUFBTTtvQkFDWixJQUFJLEVBQUUsS0FBSztpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAna2V5cycsXG4gIHB1cmU6IGZhbHNlLFxufSlcbi8qKlxuICogRXh0cmFjdCBvYmplY3Qga2V5cyBwaXBlXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXlzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsdWU6IGFueSk6IGFueSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LmtleXModmFsdWUpO1xuICB9XG59XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNub3RpZmlyZS9zcmMvbGliL3BpcGVzL2tleXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFNcEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQUNuQixTQUFTLENBQUMsS0FBVTtRQUNsQixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDOztxR0FOVSxRQUFRO21HQUFSLFFBQVE7MkZBQVIsUUFBUTtrQkFQcEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsTUFBTTtvQkFDWixJQUFJLEVBQUUsS0FBSztpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQFBpcGUoe1xuICBuYW1lOiAna2V5cycsXG4gIHB1cmU6IGZhbHNlLFxufSlcbi8qKlxuICogRXh0cmFjdCBvYmplY3Qga2V5cyBwaXBlXG4gKi9cbmV4cG9ydCBjbGFzcyBLZXlzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsdWU6IGFueSk6IGFueSB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LmtleXModmFsdWUpO1xuICB9XG59XG4iXX0=
@@ -16,12 +16,12 @@ export class TruncatePipe {
16
16
  : value;
17
17
  }
18
18
  }
19
- TruncatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: TruncatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
20
- TruncatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.10", ngImport: i0, type: TruncatePipe, name: "truncate" });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: TruncatePipe, decorators: [{
19
+ TruncatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: TruncatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
20
+ TruncatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.0.1", ngImport: i0, type: TruncatePipe, name: "truncate" });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: TruncatePipe, decorators: [{
22
22
  type: Pipe,
23
23
  args: [{
24
24
  name: 'truncate',
25
25
  }]
26
26
  }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbm90aWZpcmUvc3JjL2xpYi9waXBlcy90cnVuY2F0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU1wRDs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBUHpCO1FBUW1CLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0tBU3hDO0lBUkMsU0FBUyxDQUFDLEtBQWEsRUFBRSxHQUFHLElBQWdCO1FBQzFDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRTNFLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLO1lBQ3pCLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7Z0JBQ3ZCLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNwRCxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ1osQ0FBQzs7MEdBVlUsWUFBWTt3R0FBWixZQUFZOzRGQUFaLFlBQVk7a0JBUHhCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFVBQVU7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd0cnVuY2F0ZScsXG59KVxuXG4vKipcbiAqIFRydW5jYXRlIHRvYXN0IHRleHQgcGlwZVxuICovXG5leHBvcnQgY2xhc3MgVHJ1bmNhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9MSU1JVCA9IDQwO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfVFJBSUwgPSAnLi4uJztcbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcsIC4uLmFyZ3M6IEFycmF5PGFueT4pOiBhbnkge1xuICAgIGNvbnN0IGxpbWl0ID0gYXJncy5sZW5ndGggPiAwID8gcGFyc2VJbnQoYXJnc1swXSwgMTApIDogdGhpcy5ERUZBVUxUX0xJTUlUO1xuXG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+IGxpbWl0XG4gICAgICA/IHZhbHVlLnN1YnN0cmluZygwLCBsaW1pdCkgK1xuICAgICAgICAgIChhcmdzLmxlbmd0aCA+IDEgPyBhcmdzWzFdIDogdGhpcy5ERUZBVUxUX1RSQUlMKVxuICAgICAgOiB2YWx1ZTtcbiAgfVxufVxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zbm90aWZpcmUvc3JjL2xpYi9waXBlcy90cnVuY2F0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU1wRDs7R0FFRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBUHpCO1FBUW1CLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0tBU3hDO0lBUkMsU0FBUyxDQUFDLEtBQWEsRUFBRSxHQUFHLElBQWdCO1FBQzFDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBRTNFLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxLQUFLO1lBQ3pCLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7Z0JBQ3ZCLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNwRCxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ1osQ0FBQzs7eUdBVlUsWUFBWTt1R0FBWixZQUFZOzJGQUFaLFlBQVk7a0JBUHhCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFVBQVU7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd0cnVuY2F0ZScsXG59KVxuXG4vKipcbiAqIFRydW5jYXRlIHRvYXN0IHRleHQgcGlwZVxuICovXG5leHBvcnQgY2xhc3MgVHJ1bmNhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9MSU1JVCA9IDQwO1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfVFJBSUwgPSAnLi4uJztcbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcsIC4uLmFyZ3M6IEFycmF5PGFueT4pOiBhbnkge1xuICAgIGNvbnN0IGxpbWl0ID0gYXJncy5sZW5ndGggPiAwID8gcGFyc2VJbnQoYXJnc1swXSwgMTApIDogdGhpcy5ERUZBVUxUX0xJTUlUO1xuXG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+IGxpbWl0XG4gICAgICA/IHZhbHVlLnN1YnN0cmluZygwLCBsaW1pdCkgK1xuICAgICAgICAgIChhcmdzLmxlbmd0aCA+IDEgPyBhcmdzWzFdIDogdGhpcy5ERUZBVUxUX1RSQUlMKVxuICAgICAgOiB2YWx1ZTtcbiAgfVxufVxuIl19
@@ -215,8 +215,8 @@ export class SnotifireService {
215
215
  return (this.notifications && this.notifications.find((toast) => toast.id === id));
216
216
  }
217
217
  }
218
- SnotifireService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: SnotifireService, deps: [{ token: 'snotifireConfig' }], target: i0.ɵɵFactoryTarget.Injectable });
219
- SnotifireService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: SnotifireService });
218
+ SnotifireService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: SnotifireService, deps: [{ token: 'snotifireConfig' }], target: i0.ɵɵFactoryTarget.Injectable });
219
+ SnotifireService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: SnotifireService });
220
220
  __decorate([
221
221
  TransformArgument
222
222
  /**
@@ -273,10 +273,10 @@ __decorate([
273
273
  ,
274
274
  SetToastType
275
275
  ], SnotifireService.prototype, "async", null);
276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: SnotifireService, decorators: [{
276
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.1", ngImport: i0, type: SnotifireService, decorators: [{
277
277
  type: Injectable
278
278
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
279
279
  type: Inject,
280
280
  args: ['snotifireConfig']
281
281
  }] }]; }, propDecorators: { success: [], error: [], info: [], warning: [], confirm: [], prompt: [], async: [] } });
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc25vdGlmaXJlL3NyYy9saWIvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxJQUFJLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0UsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFnQjNCLFlBQ29DLGFBQWdDO1FBQWhDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQWhCcEU7O1dBRUc7UUFDYyx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFFN0M7O1dBRUc7UUFDTSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQXlCLENBQUM7UUFFL0MsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ3JDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7UUFFM0Qsa0JBQWEsR0FBK0IsRUFBRSxDQUFDO0lBSTVDLENBQUM7SUFFSjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQXFCO1FBQzFCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFB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QUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxFQUFVO1FBQ1osT0FBTyxDQUNMLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQzFFLENBQUM7SUFDSixDQUFDOzs4R0FuaEJVLGdCQUFnQixrQkFpQmpCLGlCQUFpQjtrSEFqQmhCLGdCQUFnQjs7SUFxTDFCLGlCQUFpQjtJQUNsQjs7T0FFRzs7SUFDRixZQUFZOytDQU1aOztJQXFDQSxpQkFBaUI7SUFDbEI7O09BRUc7O0lBQ0YsWUFBWTs2Q0FHWjs7SUFxQ0EsaUJBQWlCO0lBQ2xCOztPQUVHOztJQUNGLFlBQVk7NENBR1o7O0lBcUNBLGlCQUFpQjtJQUNsQjs7T0FFRzs7SUFDRixZQUFZOytDQUdaOztJQXFDQSxpQkFBaUI7SUFDbEI7O09BRUc7O0lBQ0YsWUFBWTsrQ0FHWjs7SUFxQ0EsaUJBQWlCO0lBQ2xCOztPQUVHOztJQUNGLFlBQVk7OENBR1o7O0lBcURBLGlCQUFpQjtJQUNsQjs7T0FFRzs7SUFDRixZQUFZOzZDQTRCWjs0RkFoZlUsZ0JBQWdCO2tCQUQ1QixVQUFVOzswQkFrQk4sTUFBTTsyQkFBQyxpQkFBaUI7NENBeUszQixPQUFPLE1BK0NQLEtBQUssTUE0Q0wsSUFBSSxNQTRDSixPQUFPLE1BNENQLE9BQU8sTUE0Q1AsTUFBTSxNQTRETixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZXRUb2FzdFR5cGUgfSBmcm9tICcuLi9kZWNvcmF0b3JzL3NldC10b2FzdC10eXBlLmRlY29yYXRvcic7XG5pbXBvcnQgeyBUcmFuc2Zvcm1Bcmd1bWVudCB9IGZyb20gJy4uL2RlY29yYXRvcnMvdHJhbnNmb3JtLWFyZ3VtZW50LmRlY29yYXRvcic7XG5pbXBvcnQgeyBTbm90aWZpcmVDb25maWcsIFNub3RpZmlyZUV2ZW50VHlwZSwgU25vdGlmaXJlVHlwZSB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBTbm90aWZpcmVEZWZhdWx0cyB9IGZyb20gJy4uL2RlZmF1bHRzL2RlZmF1bHRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTbm90aWZpcmVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9zbm90aWZpcmUubW9kZWwnO1xuaW1wb3J0IHsgU25vdGlmaXJlVG9hc3RNb2RlbCB9IGZyb20gJy4uL2NvbXBvbmVudHMvdG9hc3Qvbm90aWZpcmUtdG9hc3QubW9kZWwnO1xuaW1wb3J0IHsgbWVyZ2VEZWVwLCB1dWlkIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU25vdGlmaXJlU2VydmljZSB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIGRpc3BsYXkgdGltZSBvZiB0aGUgbm90aWZpY2F0aW9uIG1lc3NhZ2VcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgbWluaW11bURpc3BsYXllZFRpbWUgPSAzMDAwO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBOb3RpZmlyZSBOb3RpZmljYXRpb25zXG4gICAqL1xuICByZWFkb25seSBlbWl0dGVyID0gbmV3IFN1YmplY3Q8U25vdGlmaXJlVG9hc3RNb2RlbFtdPigpO1xuXG4gIHJlYWRvbmx5IHRvYXN0RGVsZXRlZCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgdG9hc3RDaGFuZ2VkID0gbmV3IFN1YmplY3Q8U25vdGlmaXJlVG9hc3RNb2RlbD4oKTtcblxuICBub3RpZmljYXRpb25zOiBBcnJheTxTbm90aWZpcmVUb2FzdE1vZGVsPiA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ3Nub3RpZmlyZUNvbmZpZycpIHB1YmxpYyBkZWZhdWx0Q29uZmlnOiBTbm90aWZpcmVEZWZhdWx0c1xuICApIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdG9hc3QgYW5kIGFkZCBpdCB0byBhcnJheSwgcmV0dXJucyB0b2FzdCBpZFxuICAgKiBAcGFyYW0gTm90aWZpY2F0aW9uTW9kZWwgTm90aWZpY2F0aW9uTW9kZWxcbiAgICogQHJldHVybiBudW1iZXJcbiAgICovXG4gIGNyZWF0ZShub3RpZjogU25vdGlmaXJlTW9kZWwpOiBTbm90aWZpcmVUb2FzdE1vZGVsIHtcbiAgICBpZiAodGhpcy5kZWZhdWx0Q29uZmlnLnR5cGUgJiYgbm90aWYuY29uZmlnICYmIG5vdGlmLmNvbmZpZy50eXBlKSB7XG4gICAgICBjb25zdCBjb25maWcgPSBtZXJnZURlZXAoXG4gICAgICAgIHRoaXMuZGVmYXVsdENvbmZpZy5zbm90aWZpcmVDb25maWcsXG4gICAgICAgIHRoaXMuZGVmYXVsdENvbmZpZy50eXBlW25vdGlmLmNvbmZpZy50eXBlXSxcbiAgICAgICAgbm90aWYuY29uZmlnXG4gICAgICApO1xuICAgICAgY29uc3QgdG9hc3QgPSBuZXcgU25vdGlmaXJlVG9hc3RNb2RlbChcbiAgICAgICAgdXVpZCgpLFxuICAgICAgICBub3RpZi50aXRsZSA/IG5vdGlmLnRpdGxlIDogJycsXG4gICAgICAgIG5vdGlmLmJvZHkgPyBub3RpZi5ib2R5IDogJycsXG4gICAgICAgIGNvbmZpZ1xuICAgICAgKTtcbiAgICAgIHRoaXMuYWRkKHRvYXN0KTtcbiAgICAgIHJldHVybiB0b2FzdDtcbiAgICB9XG4gICAgY29uc3QgY29uZmlnID0gbWVyZ2VEZWVwKHRoaXMuZGVmYXVsdENvbmZpZy5zbm90aWZpcmVDb25maWcsIG5vdGlmLmNvbmZpZyk7XG4gICAgY29uc3QgZGVmYXVsVG9hc3QgPSBuZXcgU25vdGlmaXJlVG9hc3RNb2RlbChcbiAgICAgIHV1aWQoKSxcbiAgICAgIG5vdGlmLnRpdGxlID8gbm90aWYudGl0bGUgOiAnJyxcbiAgICAgIG5vdGlmLmJvZHkgPyBub3RpZi5ib2R5IDogJycsXG4gICAgICBjb25maWdcbiAgICApO1xuICAgIHRoaXMuYWRkKGRlZmF1bFRvYXN0KTtcbiAgICByZXR1cm4gZGVmYXVsVG9hc3Q7XG4gIH1cbiAgLyoqXG4gICAqIElmIElEIHBhc3NlZCwgZW1pdHMgdG9hc3QgYW5pbWF0aW9uIHJlbW92ZSwgaWYgSUQgJiBSRU1PVkUgcGFzc2VkLCByZW1vdmVzIHRvYXN0IGZyb20gbm90aWZpY2F0aW9ucyBhcnJheVxuICAgKiBAcGFyYW0gaWQgbnVtYmVyXG4gICAqIEBwYXJhbSByZW1vdmUgYm9vbGVhblxuICAgKi9cbiAgcmVtb3ZlKGlkOiBudW1iZXIsIHJlbW92ZT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoIWlkKSB7XG4gICAgICByZXR1cm4gdGhpcy5jbGVhcigpO1xuICAgIH1cbiAgICBpZiAocmVtb3ZlKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSB0aGlzLm5vdGlmaWNhdGlvbnMuZmlsdGVyKFxuICAgICAgICAodG9hc3QpID0+IHRvYXN0LmlkICE9PSBpZFxuICAgICAgKTtcbiAgICAgIHJldHVybiB0aGlzLmVtaXQoKTtcbiAgICB9XG4gICAgdGhpcy50b2FzdERlbGV0ZWQubmV4dChpZCk7XG4gIH1cblxuICBzZXREZWZhdWx0cyhkZWZhdWx0czogU25vdGlmaXJlRGVmYXVsdHMpOiBTbm90aWZpcmVEZWZhdWx0cyB7XG4gICAgY29uc3QgbWVyZ2VkQ29uZmlnID0gKHRoaXMuZGVmYXVsdENvbmZpZyA9IG1lcmdlRGVlcChcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyxcbiAgICAgIGRlZmF1bHRzXG4gICAgKSBhcyBTbm90aWZpcmVEZWZhdWx0cyk7XG4gICAgcmV0dXJuIG1lcmdlZENvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBub3RpZmljYXRpb25zIGFycmF5XG4gICAqL1xuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLm5vdGlmaWNhdGlvbnMgPSBbXTtcbiAgICB0aGlzLmVtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhZGQgTm90aWZpcmVUb2FzdCB0byBub3RpZmljYXRpb25zIGFycmF5XG4gICAqIEBwYXJhbSB0b2FzdCBOb3RpZmlyZVRvYXN0XG4gICAqL1xuICBwcml2YXRlIGFkZCh0b2FzdDogU25vdGlmaXJlVG9hc3RNb2RlbCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyAmJlxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnLmdsb2JhbCAmJlxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnLmdsb2JhbC5maWx0ZXJEdXBsaWNhdGVzICYmXG4gICAgICB0aGlzLmNvbnRhaW5zVG9hc3QodG9hc3QpXG4gICAgKSB7XG4gICAgICBpZiAoIXRoaXMuZGVmYXVsdENvbmZpZy5nbG9iYWwuZmlsdGVyRHVwbGljYXRlcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgZ2xvYmFsIGNvbmZpZycpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgJiZcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZy5nbG9iYWwgJiZcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZy5nbG9iYWwubmV3T25Ub3BcbiAgICApIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9ucy51bnNoaWZ0KHRvYXN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25zLnB1c2godG9hc3QpO1xuICAgIH1cbiAgICB0aGlzLmVtaXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBlbWl0IGNoYW5nZXMgaW4gbm90aWZpY2F0aW9ucyBhcnJheVxuICAgKi9cbiAgcHJpdmF0ZSBlbWl0KCk6IHZvaWQge1xuICAgIHRoaXMuZW1pdHRlci5uZXh0KHRoaXMubm90aWZpY2F0aW9ucy5zbGljZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVja3MgaWYgdGhlIHRvYXN0IGlzIGluIHRoZSBjb2xsZWN0aW9uLlxuICAgKiBAcGFyYW0gaW5Ub2FzdCBOb3RpZmlyZVRvYXN0XG4gICAqIEByZXR1cm5zIGJvb2xlYW5cbiAgICovXG4gIHByaXZhdGUgY29udGFpbnNUb2FzdChpblRvYXN0OiBTbm90aWZpcmVUb2FzdE1vZGVsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubm90aWZpY2F0aW9ucy5zb21lKCh0b2FzdCkgPT4gdG9hc3QuZXF1YWxzKGluVG9hc3QpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGVtcHR5IHRvYXN0IHdpdGggaHRtbCBzdHJpbmcgaW5zaWRlXG4gICAqIEBwYXJhbSBodG1sIHN0cmluZyB8IFNhZmVIdG1sXG4gICAqIEBwYXJhbSBjb25maWcgTm90aWZpcmVDb25maWdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBodG1sKGh0bWw6IHN0cmluZyB8IFNhZmVIdG1sLCBjb25maWc/OiBTbm90aWZpcmVDb25maWcpOiBTbm90aWZpcmVUb2FzdE1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoe1xuICAgICAgdGl0bGU6IHVuZGVmaW5lZCxcbiAgICAgIGJvZHk6IHVuZGVmaW5lZCxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICAuLi5jb25maWcsXG4gICAgICAgIC4uLnsgaHRtbCB9LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggc3VjY2VzcyBzdHlsZSByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBzdWNjZXNzKGJvZHk6IHN0cmluZyk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBDcmVhdGUgdG9hc3Qgd2l0aCBzdWNjZXNzIHN0eWxlIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBib2R5IHN0cmluZ1xuICAgKiBAcGFyYW0gdGl0bGUgc3RyaW5nXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgc3VjY2Vzcyhib2R5OiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggc3VjY2VzcyBzdHlsZSByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHBhcmFtIGNvbmZpZyBOb3RpZmljYXRpb25Db25maWdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBzdWNjZXNzKGJvZHk6IHN0cmluZywgY29uZmlnOiBTbm90aWZpcmVDb25maWcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggc3VjY2VzcyBzdHlsZSAgcmV0dXJucyB0b2FzdCBpZDtcbiAgICogQHBhcmFtIFtib2R5XSBzdHJpbmdcbiAgICogQHBhcmFtIFt0aXRsZV0gc3RyaW5nXG4gICAqIEBwYXJhbSBbY29uZmlnXSBOb3RpZmljYXRpb25Db25maWdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBzdWNjZXNzKFxuICAgIGJvZHk6IHN0cmluZyxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGNvbmZpZzogU25vdGlmaXJlQ29uZmlnXG4gICk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB0b2FzdCBhcmd1bWVudHMgaW50byBOb3RpZmljYXRpb25Nb2RlbCBvYmplY3RcbiAgICovXG4gIEBUcmFuc2Zvcm1Bcmd1bWVudFxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBjdXJyZW50IHRvYXN0IHR5cGUgYW5kIGNvbGxlY3RzIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgQFNldFRvYXN0VHlwZVxuICBzdWNjZXNzKGFyZ3M6IGFueSk6IFNub3RpZmlyZVRvYXN0TW9kZWwge1xuICAgIGlmICghYXJncy5jb25maWcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBjb25maWcsIHBsZWFzZSBjb25maWd1cmUgc2VydmljZSBhY2NvcmRpbmdseScpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggZXJyb3Igc3R5bGUgcmV0dXJucyB0b2FzdCBpZDtcbiAgICogQHBhcmFtIGJvZHkgc3RyaW5nXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgZXJyb3IoYm9keTogc3RyaW5nKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIGVycm9yIHN0eWxlIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBib2R5IHN0cmluZ1xuICAgKiBAcGFyYW0gdGl0bGUgc3RyaW5nXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgZXJyb3IoYm9keTogc3RyaW5nLCB0aXRsZTogc3RyaW5nKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIGVycm9yIHN0eWxlIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBib2R5IHN0cmluZ1xuICAgKiBAcGFyYW0gY29uZmlnIE5vdGlmaWNhdGlvbkNvbmZpZ1xuICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICovXG4gIGVycm9yKGJvZHk6IHN0cmluZywgY29uZmlnOiBTbm90aWZpcmVDb25maWcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggZXJyb3Igc3R5bGUgIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBbYm9keV0gc3RyaW5nXG4gICAqIEBwYXJhbSBbdGl0bGVdIHN0cmluZ1xuICAgKiBAcGFyYW0gW2NvbmZpZ10gTm90aWZpY2F0aW9uQ29uZmlnXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgZXJyb3IoXG4gICAgYm9keTogc3RyaW5nLFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgY29uZmlnOiBTbm90aWZpcmVDb25maWdcbiAgKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB0b2FzdCBhcmd1bWVudHMgaW50byBOb3RpZmljYXRpb25Nb2RlbCBvYmplY3RcbiAgICovXG4gIEBUcmFuc2Zvcm1Bcmd1bWVudFxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBjdXJyZW50IHRvYXN0IHR5cGUgYW5kIGNvbGxlY3RzIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgQFNldFRvYXN0VHlwZVxuICBlcnJvcihhcmdzOiBhbnkpOiBTbm90aWZpcmVUb2FzdE1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggaW5mbyBzdHlsZSByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBpbmZvKGJvZHk6IHN0cmluZyk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBDcmVhdGUgdG9hc3Qgd2l0aCBpbmZvIHN0eWxlIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBib2R5IHN0cmluZ1xuICAgKiBAcGFyYW0gdGl0bGUgc3RyaW5nXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgaW5mbyhib2R5OiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggaW5mbyBzdHlsZSByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHBhcmFtIGNvbmZpZyBOb3RpZmljYXRpb25Db25maWdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBpbmZvKGJvZHk6IHN0cmluZywgY29uZmlnOiBTbm90aWZpcmVDb25maWcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggaW5mbyBzdHlsZSAgcmV0dXJucyB0b2FzdCBpZDtcbiAgICogQHBhcmFtIFtib2R5XSBzdHJpbmdcbiAgICogQHBhcmFtIFt0aXRsZV0gc3RyaW5nXG4gICAqIEBwYXJhbSBbY29uZmlnXSBOb3RpZmljYXRpb25Db25maWdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBpbmZvKFxuICAgIGJvZHk6IHN0cmluZyxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGNvbmZpZzogU25vdGlmaXJlQ29uZmlnXG4gICk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdG9hc3QgYXJndW1lbnRzIGludG8gTm90aWZpY2F0aW9uTW9kZWwgb2JqZWN0XG4gICAqL1xuICBAVHJhbnNmb3JtQXJndW1lbnRcbiAgLyoqXG4gICAqIERldGVybWluZXMgY3VycmVudCB0b2FzdCB0eXBlIGFuZCBjb2xsZWN0cyBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIEBTZXRUb2FzdFR5cGVcbiAgaW5mbyhhcmdzOiBhbnkpOiBTbm90aWZpcmVUb2FzdE1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggd2FybmluZyBzdHlsZSByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICB3YXJuaW5nKGJvZHk6IHN0cmluZyk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBDcmVhdGUgdG9hc3Qgd2l0aCB3YXJuaW5nIHN0eWxlIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBib2R5IHN0cmluZ1xuICAgKiBAcGFyYW0gdGl0bGUgc3RyaW5nXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgd2FybmluZyhib2R5OiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggd2FybmluZyBzdHlsZSByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHBhcmFtIGNvbmZpZyBOb3RpZmljYXRpb25Db25maWdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICB3YXJuaW5nKGJvZHk6IHN0cmluZywgY29uZmlnOiBTbm90aWZpcmVDb25maWcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggd2FybmluZyBzdHlsZSAgcmV0dXJucyB0b2FzdCBpZDtcbiAgICogQHBhcmFtIFtib2R5XSBzdHJpbmdcbiAgICogQHBhcmFtIFt0aXRsZV0gc3RyaW5nXG4gICAqIEBwYXJhbSBbY29uZmlnXSBOb3RpZmljYXRpb25Db25maWdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICB3YXJuaW5nKFxuICAgIGJvZHk6IHN0cmluZyxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGNvbmZpZzogU25vdGlmaXJlQ29uZmlnXG4gICk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdG9hc3QgYXJndW1lbnRzIGludG8gTm90aWZpY2F0aW9uTW9kZWwgb2JqZWN0XG4gICAqL1xuICBAVHJhbnNmb3JtQXJndW1lbnRcbiAgLyoqXG4gICAqIERldGVybWluZXMgY3VycmVudCB0b2FzdCB0eXBlIGFuZCBjb2xsZWN0cyBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIEBTZXRUb2FzdFR5cGVcbiAgd2FybmluZyhhcmdzOiBhbnkpOiBTbm90aWZpcmVUb2FzdE1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggY29uZmlybSBzdHlsZSByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBjb25maXJtKGJvZHk6IHN0cmluZyk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBDcmVhdGUgdG9hc3Qgd2l0aCBjb25maXJtIHN0eWxlIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBib2R5IHN0cmluZ1xuICAgKiBAcGFyYW0gdGl0bGUgc3RyaW5nXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgY29uZmlybShib2R5OiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggY29uZmlybSBzdHlsZSByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHBhcmFtIGNvbmZpZyBOb3RpZmljYXRpb25Db25maWdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBjb25maXJtKGJvZHk6IHN0cmluZywgY29uZmlnOiBTbm90aWZpcmVDb25maWcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggY29uZmlybSBzdHlsZSAgcmV0dXJucyB0b2FzdCBpZDtcbiAgICogQHBhcmFtIFtib2R5XSBzdHJpbmdcbiAgICogQHBhcmFtIFt0aXRsZV0gc3RyaW5nXG4gICAqIEBwYXJhbSBbY29uZmlnXSBOb3RpZmljYXRpb25Db25maWdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBjb25maXJtKFxuICAgIGJvZHk6IHN0cmluZyxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGNvbmZpZzogU25vdGlmaXJlQ29uZmlnXG4gICk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdG9hc3QgYXJndW1lbnRzIGludG8gTm90aWZpY2F0aW9uTW9kZWwgb2JqZWN0XG4gICAqL1xuICBAVHJhbnNmb3JtQXJndW1lbnRcbiAgLyoqXG4gICAqIERldGVybWluZXMgY3VycmVudCB0b2FzdCB0eXBlIGFuZCBjb2xsZWN0cyBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIEBTZXRUb2FzdFR5cGVcbiAgY29uZmlybShhcmdzOiBhbnkpOiBTbm90aWZpcmVUb2FzdE1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggUHJvbXB0IHN0eWxlIHdpdGggdHdvIGJ1dHRvbnMsIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBib2R5IHN0cmluZ1xuICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICovXG4gIHByb21wdChib2R5OiBzdHJpbmcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggUHJvbXB0IHN0eWxlIHdpdGggdHdvIGJ1dHRvbnMsIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBib2R5IHN0cmluZ1xuICAgKiBAcGFyYW0gdGl0bGUgc3RyaW5nXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgcHJvbXB0KGJvZHk6IHN0cmluZywgdGl0bGU6IHN0cmluZyk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBDcmVhdGUgdG9hc3Qgd2l0aCBQcm9tcHQgc3R5bGUgd2l0aCB0d28gYnV0dG9ucywgcmV0dXJucyB0b2FzdCBpZDtcbiAgICogQHBhcmFtIGJvZHkgc3RyaW5nXG4gICAqIEBwYXJhbSBjb25maWcgTm90aWZpY2F0aW9uQ29uZmlnXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgcHJvbXB0KGJvZHk6IHN0cmluZywgY29uZmlnOiBTbm90aWZpcmVDb25maWcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggUHJvbXB0IHN0eWxlIHdpdGggdHdvIGJ1dHRvbnMsIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBbYm9keV0gc3RyaW5nXG4gICAqIEBwYXJhbSBbdGl0bGVdIHN0cmluZ1xuICAgKiBAcGFyYW0gW2NvbmZpZ10gTm90aWZpY2F0aW9uQ29uZmlnXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgcHJvbXB0KFxuICAgIGJvZHk6IHN0cmluZyxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGNvbmZpZzogU25vdGlmaXJlQ29uZmlnXG4gICk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdG9hc3QgYXJndW1lbnRzIGludG8gTm90aWZpY2F0aW9uTW9kZWwgb2JqZWN0XG4gICAqL1xuICBAVHJhbnNmb3JtQXJndW1lbnRcbiAgLyoqXG4gICAqIERldGVybWluZXMgY3VycmVudCB0b2FzdCB0eXBlIGFuZCBjb2xsZWN0cyBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIEBTZXRUb2FzdFR5cGVcbiAgcHJvbXB0KGFyZ3M6IGFueSk6IFNub3RpZmlyZVRvYXN0TW9kZWwge1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZShhcmdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFzeW5jIHRvYXN0IHdpdGggSW5mbyBzdHlsZS4gUGFzcyBhY3Rpb24sIGFuZCByZXNvbHZlIG9yIHJlamVjdCBpdC5cbiAgICogQHBhcmFtIGJvZHkgc3RyaW5nXG4gICAqIEBwYXJhbSBhY3Rpb24gUHJvbWlzZTxOb3RpZmljYXRpb25Nb2RlbD4gfCBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbk1vZGVsPlxuICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICovXG4gIGFzeW5jKFxuICAgIGJvZHk6IHN0cmluZyxcbiAgICBhY3Rpb246IFByb21pc2U8U25vdGlmaXJlTW9kZWw+IHwgT2JzZXJ2YWJsZTxTbm90aWZpcmVNb2RlbD5cbiAgKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYXN5bmMgdG9hc3Qgd2l0aCBJbmZvIHN0eWxlLiBQYXNzIGFjdGlvbiwgYW5kIHJlc29sdmUgb3IgcmVqZWN0IGl0LlxuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHBhcmFtIHRpdGxlIHN0cmluZ1xuICAgKiBAcGFyYW0gYWN0aW9uIFByb21pc2U8Tm90aWZpY2F0aW9uTW9kZWw+IHwgT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25Nb2RlbD5cbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBhc3luYyhcbiAgICBib2R5OiBzdHJpbmcsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBhY3Rpb246IFByb21pc2U8U25vdGlmaXJlTW9kZWw+IHwgT2JzZXJ2YWJsZTxTbm90aWZpcmVNb2RlbD5cbiAgKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYXN5bmMgdG9hc3Qgd2l0aCBJbmZvIHN0eWxlLiBQYXNzIGFjdGlvbiwgYW5kIHJlc29sdmUgb3IgcmVqZWN0IGl0LlxuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHBhcmFtIGFjdGlvbiBQcm9taXNlPE5vdGlmaWNhdGlvbk1vZGVsPiB8IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uTW9kZWw+XG4gICAqIEBwYXJhbSBbY29uZmlnXSBOb3RpZmljYXRpb25Db25maWdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBhc3luYyhcbiAgICBib2R5OiBzdHJpbmcsXG4gICAgYWN0aW9uOiBQcm9taXNlPFNub3RpZmlyZU1vZGVsPiB8IE9ic2VydmFibGU8U25vdGlmaXJlTW9kZWw+LFxuICAgIGNvbmZpZzogU25vdGlmaXJlQ29uZmlnXG4gICk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGFzeW5jIHRvYXN0IHdpdGggSW5mbyBzdHlsZS4gUGFzcyBhY3Rpb24sIGFuZCByZXNvbHZlIG9yIHJlamVjdCBpdC5cbiAgICogQHBhcmFtIGJvZHkgc3RyaW5nXG4gICAqIEBwYXJhbSB0aXRsZSBzdHJpbmdcbiAgICogQHBhcmFtIGFjdGlvbiBQcm9taXNlPE5vdGlmaWNhdGlvbk1vZGVsPiB8IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uTW9kZWw+XG4gICAqIEBwYXJhbSBbY29uZmlnXSBOb3RpZmljYXRpb25Db25maWdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBhc3luYyhcbiAgICBib2R5OiBzdHJpbmcsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBhY3Rpb246IFByb21pc2U8U25vdGlmaXJlTW9kZWw+IHwgT2JzZXJ2YWJsZTxTbm90aWZpcmVNb2RlbD4sXG4gICAgY29uZmlnOiBTbm90aWZpcmVDb25maWdcbiAgKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIFRyYW5zZm9ybSB0b2FzdCBhcmd1bWVudHMgaW50byBOb3RpZmljYXRpb25Nb2RlbCBvYmplY3RcbiAgICovXG4gIEBUcmFuc2Zvcm1Bcmd1bWVudFxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBjdXJyZW50IHRvYXN0IHR5cGUgYW5kIGNvbGxlY3RzIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgQFNldFRvYXN0VHlwZVxuICBhc3luYyhhcmdzOiBhbnkpOiBTbm90aWZpcmVUb2FzdE1vZGVsIHtcbiAgICBsZXQgYXN5bmM6IE9ic2VydmFibGU8YW55PjtcbiAgICBpZiAoYXJncy5hY3Rpb24gaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICBhc3luYyA9IGZyb20oYXJncy5hY3Rpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICBhc3luYyA9IGFyZ3MuYWN0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHRvYXN0ID0gdGhpcy5jcmVhdGUoYXJncyk7XG5cbiAgICB0b2FzdC5vbihTbm90aWZpcmVFdmVudFR5cGUuTU9VTlRFRCwgKCkgPT4ge1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBhc3luYy5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAobmV4dD86IFNub3RpZmlyZU1vZGVsKSA9PiB7XG4gICAgICAgICAgdGhpcy5tZXJnZVRvYXN0KHRvYXN0LCBuZXh0KTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcj86IFNub3RpZmlyZU1vZGVsKSA9PiB7XG4gICAgICAgICAgdGhpcy5tZXJnZVRvYXN0KHRvYXN0LCBlcnJvciwgU25vdGlmaXJlVHlwZS5FUlJPUik7XG4gICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tZXJnZVRvYXN0KHRvYXN0LCB7fSwgU25vdGlmaXJlVHlwZS5TVUNDRVNTKTtcbiAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRvYXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBtZXJnZVRvYXN0KHRvYXN0OiBhbnksIG5leHQ6IGFueSwgdHlwZT86IFNub3RpZmlyZVR5cGUpIHtcbiAgICBpZiAobmV4dC5ib2R5KSB7XG4gICAgICB0b2FzdC5ib2R5ID0gbmV4dC5ib2R5O1xuICAgIH1cbiAgICBpZiAobmV4dC50aXRsZSkge1xuICAgICAgdG9hc3QudGl0bGUgPSBuZXh0LnRpdGxlO1xuICAgIH1cbiAgICBpZiAodHlwZSAmJiB0aGlzLmRlZmF1bHRDb25maWcpIHtcbiAgICAgIHRvYXN0LmNvbmZpZyA9IG1lcmdlRGVlcChcbiAgICAgICAgdG9hc3QuY29uZmlnLFxuICAgICAgICB0aGlzLmRlZmF1bHRDb25maWcuZ2xvYmFsLFxuICAgICAgICB0aGlzLmRlZmF1bHRDb25maWcuc25vdGlmaXJlQ29uZmlnPy50eXBlLFxuICAgICAgICB7IHR5cGUgfSxcbiAgICAgICAgbmV4dC5jb25maWdcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRvYXN0LmNvbmZpZyA9IG1lcmdlRGVlcCh0b2FzdC5jb25maWcsIG5leHQuY29uZmlnKTtcbiAgICB9XG4gICAgaWYgKG5leHQuaHRtbCkge1xuICAgICAgdG9hc3QuY29uZmlnLmh0bWwgPSBuZXh0Lmh0bWw7XG4gICAgfVxuICAgIHRoaXMuZW1pdCgpO1xuICAgIHRoaXMudG9hc3RDaGFuZ2VkLm5leHQodG9hc3QpO1xuICB9XG4gIC8qKlxuICAgKiByZXR1cm5zIFNub3RpZnlUb2FzdCBvYmplY3RcbiAgICogQHBhcmFtIGlkIE51bWJlclxuICAgKiBAcmV0dXJuIFNub3RpZnlUb2FzdHx1bmRlZmluZWRcbiAgICovXG4gIGdldChpZDogbnVtYmVyKTogU25vdGlmaXJlVG9hc3RNb2RlbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMubm90aWZpY2F0aW9ucyAmJiB0aGlzLm5vdGlmaWNhdGlvbnMuZmluZCgodG9hc3QpID0+IHRvYXN0LmlkID09PSBpZClcbiAgICApO1xuICB9XG59XG4iXX0=
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc25vdGlmaXJlL3NyYy9saWIvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxJQUFJLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0UsT0FBTyxFQUFtQixrQkFBa0IsRUFBRSxhQUFhLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFHL0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFnQjNCLFlBQ29DLGFBQWdDO1FBQWhDLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQWhCcEU7O1dBRUc7UUFDYyx5QkFBb0IsR0FBRyxJQUFJLENBQUM7UUFFN0M7O1dBRUc7UUFDTSxZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQXlCLENBQUM7UUFFL0MsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ3JDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQXVCLENBQUM7UUFFM0Qsa0JBQWEsR0FBK0IsRUFBRSxDQUFDO0lBSTVDLENBQUM7SUFFSjs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQXFCO1FBQzFCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsTUFB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QUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxFQUFVO1FBQ1osT0FBTyxDQUNMLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQzFFLENBQUM7SUFDSixDQUFDOzs2R0FuaEJVLGdCQUFnQixrQkFpQmpCLGlCQUFpQjtpSEFqQmhCLGdCQUFnQjtBQTBMM0I7SUFMQyxpQkFBaUI7SUFDbEI7O09BRUc7O0lBQ0YsWUFBWTsrQ0FNWjtBQTBDRDtJQUxDLGlCQUFpQjtJQUNsQjs7T0FFRzs7SUFDRixZQUFZOzZDQUdaO0FBMENEO0lBTEMsaUJBQWlCO0lBQ2xCOztPQUVHOztJQUNGLFlBQVk7NENBR1o7QUEwQ0Q7SUFMQyxpQkFBaUI7SUFDbEI7O09BRUc7O0lBQ0YsWUFBWTsrQ0FHWjtBQTBDRDtJQUxDLGlCQUFpQjtJQUNsQjs7T0FFRzs7SUFDRixZQUFZOytDQUdaO0FBMENEO0lBTEMsaUJBQWlCO0lBQ2xCOztPQUVHOztJQUNGLFlBQVk7OENBR1o7QUEwREQ7SUFMQyxpQkFBaUI7SUFDbEI7O09BRUc7O0lBQ0YsWUFBWTs2Q0E0Qlo7MkZBaGZVLGdCQUFnQjtrQkFENUIsVUFBVTs7MEJBa0JOLE1BQU07MkJBQUMsaUJBQWlCOzRDQXlLM0IsT0FBTyxNQStDUCxLQUFLLE1BNENMLElBQUksTUE0Q0osT0FBTyxNQTRDUCxPQUFPLE1BNENQLE1BQU0sTUE0RE4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU2V0VG9hc3RUeXBlIH0gZnJvbSAnLi4vZGVjb3JhdG9ycy9zZXQtdG9hc3QtdHlwZS5kZWNvcmF0b3InO1xuaW1wb3J0IHsgVHJhbnNmb3JtQXJndW1lbnQgfSBmcm9tICcuLi9kZWNvcmF0b3JzL3RyYW5zZm9ybS1hcmd1bWVudC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgU25vdGlmaXJlQ29uZmlnLCBTbm90aWZpcmVFdmVudFR5cGUsIFNub3RpZmlyZVR5cGUgfSBmcm9tICcuLi9tb2RlbHMnO1xuaW1wb3J0IHsgU25vdGlmaXJlRGVmYXVsdHMgfSBmcm9tICcuLi9kZWZhdWx0cy9kZWZhdWx0cy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU25vdGlmaXJlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvc25vdGlmaXJlLm1vZGVsJztcbmltcG9ydCB7IFNub3RpZmlyZVRvYXN0TW9kZWwgfSBmcm9tICcuLi9jb21wb25lbnRzL3RvYXN0L25vdGlmaXJlLXRvYXN0Lm1vZGVsJztcbmltcG9ydCB7IG1lcmdlRGVlcCwgdXVpZCB9IGZyb20gJy4uL3V0aWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNub3RpZmlyZVNlcnZpY2Uge1xuICAvKipcbiAgICogTWluaW11bSBkaXNwbGF5IHRpbWUgb2YgdGhlIG5vdGlmaWNhdGlvbiBtZXNzYWdlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IG1pbmltdW1EaXNwbGF5ZWRUaW1lID0gMzAwMDtcblxuICAvKipcbiAgICogRW1pdHMgTm90aWZpcmUgTm90aWZpY2F0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgZW1pdHRlciA9IG5ldyBTdWJqZWN0PFNub3RpZmlyZVRvYXN0TW9kZWxbXT4oKTtcblxuICByZWFkb25seSB0b2FzdERlbGV0ZWQgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IHRvYXN0Q2hhbmdlZCA9IG5ldyBTdWJqZWN0PFNub3RpZmlyZVRvYXN0TW9kZWw+KCk7XG5cbiAgbm90aWZpY2F0aW9uczogQXJyYXk8U25vdGlmaXJlVG9hc3RNb2RlbD4gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdzbm90aWZpcmVDb25maWcnKSBwdWJsaWMgZGVmYXVsdENvbmZpZzogU25vdGlmaXJlRGVmYXVsdHNcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRvYXN0IGFuZCBhZGQgaXQgdG8gYXJyYXksIHJldHVybnMgdG9hc3QgaWRcbiAgICogQHBhcmFtIE5vdGlmaWNhdGlvbk1vZGVsIE5vdGlmaWNhdGlvbk1vZGVsXG4gICAqIEByZXR1cm4gbnVtYmVyXG4gICAqL1xuICBjcmVhdGUobm90aWY6IFNub3RpZmlyZU1vZGVsKTogU25vdGlmaXJlVG9hc3RNb2RlbCB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdENvbmZpZy50eXBlICYmIG5vdGlmLmNvbmZpZyAmJiBub3RpZi5jb25maWcudHlwZSkge1xuICAgICAgY29uc3QgY29uZmlnID0gbWVyZ2VEZWVwKFxuICAgICAgICB0aGlzLmRlZmF1bHRDb25maWcuc25vdGlmaXJlQ29uZmlnLFxuICAgICAgICB0aGlzLmRlZmF1bHRDb25maWcudHlwZVtub3RpZi5jb25maWcudHlwZV0sXG4gICAgICAgIG5vdGlmLmNvbmZpZ1xuICAgICAgKTtcbiAgICAgIGNvbnN0IHRvYXN0ID0gbmV3IFNub3RpZmlyZVRvYXN0TW9kZWwoXG4gICAgICAgIHV1aWQoKSxcbiAgICAgICAgbm90aWYudGl0bGUgPyBub3RpZi50aXRsZSA6ICcnLFxuICAgICAgICBub3RpZi5ib2R5ID8gbm90aWYuYm9keSA6ICcnLFxuICAgICAgICBjb25maWdcbiAgICAgICk7XG4gICAgICB0aGlzLmFkZCh0b2FzdCk7XG4gICAgICByZXR1cm4gdG9hc3Q7XG4gICAgfVxuICAgIGNvbnN0IGNvbmZpZyA9IG1lcmdlRGVlcCh0aGlzLmRlZmF1bHRDb25maWcuc25vdGlmaXJlQ29uZmlnLCBub3RpZi5jb25maWcpO1xuICAgIGNvbnN0IGRlZmF1bFRvYXN0ID0gbmV3IFNub3RpZmlyZVRvYXN0TW9kZWwoXG4gICAgICB1dWlkKCksXG4gICAgICBub3RpZi50aXRsZSA/IG5vdGlmLnRpdGxlIDogJycsXG4gICAgICBub3RpZi5ib2R5ID8gbm90aWYuYm9keSA6ICcnLFxuICAgICAgY29uZmlnXG4gICAgKTtcbiAgICB0aGlzLmFkZChkZWZhdWxUb2FzdCk7XG4gICAgcmV0dXJuIGRlZmF1bFRvYXN0O1xuICB9XG4gIC8qKlxuICAgKiBJZiBJRCBwYXNzZWQsIGVtaXRzIHRvYXN0IGFuaW1hdGlvbiByZW1vdmUsIGlmIElEICYgUkVNT1ZFIHBhc3NlZCwgcmVtb3ZlcyB0b2FzdCBmcm9tIG5vdGlmaWNhdGlvbnMgYXJyYXlcbiAgICogQHBhcmFtIGlkIG51bWJlclxuICAgKiBAcGFyYW0gcmVtb3ZlIGJvb2xlYW5cbiAgICovXG4gIHJlbW92ZShpZDogbnVtYmVyLCByZW1vdmU/OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuIHRoaXMuY2xlYXIoKTtcbiAgICB9XG4gICAgaWYgKHJlbW92ZSkge1xuICAgICAgdGhpcy5ub3RpZmljYXRpb25zID0gdGhpcy5ub3RpZmljYXRpb25zLmZpbHRlcihcbiAgICAgICAgKHRvYXN0KSA9PiB0b2FzdC5pZCAhPT0gaWRcbiAgICAgICk7XG4gICAgICByZXR1cm4gdGhpcy5lbWl0KCk7XG4gICAgfVxuICAgIHRoaXMudG9hc3REZWxldGVkLm5leHQoaWQpO1xuICB9XG5cbiAgc2V0RGVmYXVsdHMoZGVmYXVsdHM6IFNub3RpZmlyZURlZmF1bHRzKTogU25vdGlmaXJlRGVmYXVsdHMge1xuICAgIGNvbnN0IG1lcmdlZENvbmZpZyA9ICh0aGlzLmRlZmF1bHRDb25maWcgPSBtZXJnZURlZXAoXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcsXG4gICAgICBkZWZhdWx0c1xuICAgICkgYXMgU25vdGlmaXJlRGVmYXVsdHMpO1xuICAgIHJldHVybiBtZXJnZWRDb25maWc7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXIgbm90aWZpY2F0aW9ucyBhcnJheVxuICAgKi9cbiAgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5ub3RpZmljYXRpb25zID0gW107XG4gICAgdGhpcy5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICogYWRkIE5vdGlmaXJlVG9hc3QgdG8gbm90aWZpY2F0aW9ucyBhcnJheVxuICAgKiBAcGFyYW0gdG9hc3QgTm90aWZpcmVUb2FzdFxuICAgKi9cbiAgcHJpdmF0ZSBhZGQodG9hc3Q6IFNub3RpZmlyZVRvYXN0TW9kZWwpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgJiZcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZy5nbG9iYWwgJiZcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZy5nbG9iYWwuZmlsdGVyRHVwbGljYXRlcyAmJlxuICAgICAgdGhpcy5jb250YWluc1RvYXN0KHRvYXN0KVxuICAgICkge1xuICAgICAgaWYgKCF0aGlzLmRlZmF1bHRDb25maWcuZ2xvYmFsLmZpbHRlckR1cGxpY2F0ZXMpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGdsb2JhbCBjb25maWcnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnICYmXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcuZ2xvYmFsICYmXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcuZ2xvYmFsLm5ld09uVG9wXG4gICAgKSB7XG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnMudW5zaGlmdCh0b2FzdCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubm90aWZpY2F0aW9ucy5wdXNoKHRvYXN0KTtcbiAgICB9XG4gICAgdGhpcy5lbWl0KCk7XG4gIH1cblxuICAvKipcbiAgICogZW1pdCBjaGFuZ2VzIGluIG5vdGlmaWNhdGlvbnMgYXJyYXlcbiAgICovXG4gIHByaXZhdGUgZW1pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXR0ZXIubmV4dCh0aGlzLm5vdGlmaWNhdGlvbnMuc2xpY2UoKSk7XG4gIH1cblxuICAvKipcbiAgICogY2hlY2tzIGlmIHRoZSB0b2FzdCBpcyBpbiB0aGUgY29sbGVjdGlvbi5cbiAgICogQHBhcmFtIGluVG9hc3QgTm90aWZpcmVUb2FzdFxuICAgKiBAcmV0dXJucyBib29sZWFuXG4gICAqL1xuICBwcml2YXRlIGNvbnRhaW5zVG9hc3QoaW5Ub2FzdDogU25vdGlmaXJlVG9hc3RNb2RlbCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5vdGlmaWNhdGlvbnMuc29tZSgodG9hc3QpID0+IHRvYXN0LmVxdWFscyhpblRvYXN0KSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBlbXB0eSB0b2FzdCB3aXRoIGh0bWwgc3RyaW5nIGluc2lkZVxuICAgKiBAcGFyYW0gaHRtbCBzdHJpbmcgfCBTYWZlSHRtbFxuICAgKiBAcGFyYW0gY29uZmlnIE5vdGlmaXJlQ29uZmlnXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgaHRtbChodG1sOiBzdHJpbmcgfCBTYWZlSHRtbCwgY29uZmlnPzogU25vdGlmaXJlQ29uZmlnKTogU25vdGlmaXJlVG9hc3RNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKHtcbiAgICAgIHRpdGxlOiB1bmRlZmluZWQsXG4gICAgICBib2R5OiB1bmRlZmluZWQsXG4gICAgICBjb25maWc6IHtcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAuLi57IGh0bWwgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIHN1Y2Nlc3Mgc3R5bGUgcmV0dXJucyB0b2FzdCBpZDtcbiAgICogQHBhcmFtIGJvZHkgc3RyaW5nXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgc3VjY2Vzcyhib2R5OiBzdHJpbmcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggc3VjY2VzcyBzdHlsZSByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHBhcmFtIHRpdGxlIHN0cmluZ1xuICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICovXG4gIHN1Y2Nlc3MoYm9keTogc3RyaW5nLCB0aXRsZTogc3RyaW5nKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIHN1Y2Nlc3Mgc3R5bGUgcmV0dXJucyB0b2FzdCBpZDtcbiAgICogQHBhcmFtIGJvZHkgc3RyaW5nXG4gICAqIEBwYXJhbSBjb25maWcgTm90aWZpY2F0aW9uQ29uZmlnXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgc3VjY2Vzcyhib2R5OiBzdHJpbmcsIGNvbmZpZzogU25vdGlmaXJlQ29uZmlnKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIHN1Y2Nlc3Mgc3R5bGUgIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBbYm9keV0gc3RyaW5nXG4gICAqIEBwYXJhbSBbdGl0bGVdIHN0cmluZ1xuICAgKiBAcGFyYW0gW2NvbmZpZ10gTm90aWZpY2F0aW9uQ29uZmlnXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgc3VjY2VzcyhcbiAgICBib2R5OiBzdHJpbmcsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBjb25maWc6IFNub3RpZmlyZUNvbmZpZ1xuICApOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuXG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdG9hc3QgYXJndW1lbnRzIGludG8gTm90aWZpY2F0aW9uTW9kZWwgb2JqZWN0XG4gICAqL1xuICBAVHJhbnNmb3JtQXJndW1lbnRcbiAgLyoqXG4gICAqIERldGVybWluZXMgY3VycmVudCB0b2FzdCB0eXBlIGFuZCBjb2xsZWN0cyBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIEBTZXRUb2FzdFR5cGVcbiAgc3VjY2VzcyhhcmdzOiBhbnkpOiBTbm90aWZpcmVUb2FzdE1vZGVsIHtcbiAgICBpZiAoIWFyZ3MuY29uZmlnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgY29uZmlnLCBwbGVhc2UgY29uZmlndXJlIHNlcnZpY2UgYWNjb3JkaW5nbHknKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKGFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIGVycm9yIHN0eWxlIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBib2R5IHN0cmluZ1xuICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICovXG4gIGVycm9yKGJvZHk6IHN0cmluZyk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBDcmVhdGUgdG9hc3Qgd2l0aCBlcnJvciBzdHlsZSByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHBhcmFtIHRpdGxlIHN0cmluZ1xuICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICovXG4gIGVycm9yKGJvZHk6IHN0cmluZywgdGl0bGU6IHN0cmluZyk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBDcmVhdGUgdG9hc3Qgd2l0aCBlcnJvciBzdHlsZSByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHBhcmFtIGNvbmZpZyBOb3RpZmljYXRpb25Db25maWdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBlcnJvcihib2R5OiBzdHJpbmcsIGNvbmZpZzogU25vdGlmaXJlQ29uZmlnKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIGVycm9yIHN0eWxlICByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gW2JvZHldIHN0cmluZ1xuICAgKiBAcGFyYW0gW3RpdGxlXSBzdHJpbmdcbiAgICogQHBhcmFtIFtjb25maWddIE5vdGlmaWNhdGlvbkNvbmZpZ1xuICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICovXG4gIGVycm9yKFxuICAgIGJvZHk6IHN0cmluZyxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGNvbmZpZzogU25vdGlmaXJlQ29uZmlnXG4gICk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdG9hc3QgYXJndW1lbnRzIGludG8gTm90aWZpY2F0aW9uTW9kZWwgb2JqZWN0XG4gICAqL1xuICBAVHJhbnNmb3JtQXJndW1lbnRcbiAgLyoqXG4gICAqIERldGVybWluZXMgY3VycmVudCB0b2FzdCB0eXBlIGFuZCBjb2xsZWN0cyBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIEBTZXRUb2FzdFR5cGVcbiAgZXJyb3IoYXJnczogYW55KTogU25vdGlmaXJlVG9hc3RNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKGFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIGluZm8gc3R5bGUgcmV0dXJucyB0b2FzdCBpZDtcbiAgICogQHBhcmFtIGJvZHkgc3RyaW5nXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgaW5mbyhib2R5OiBzdHJpbmcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggaW5mbyBzdHlsZSByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHBhcmFtIHRpdGxlIHN0cmluZ1xuICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICovXG4gIGluZm8oYm9keTogc3RyaW5nLCB0aXRsZTogc3RyaW5nKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIGluZm8gc3R5bGUgcmV0dXJucyB0b2FzdCBpZDtcbiAgICogQHBhcmFtIGJvZHkgc3RyaW5nXG4gICAqIEBwYXJhbSBjb25maWcgTm90aWZpY2F0aW9uQ29uZmlnXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgaW5mbyhib2R5OiBzdHJpbmcsIGNvbmZpZzogU25vdGlmaXJlQ29uZmlnKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIGluZm8gc3R5bGUgIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBbYm9keV0gc3RyaW5nXG4gICAqIEBwYXJhbSBbdGl0bGVdIHN0cmluZ1xuICAgKiBAcGFyYW0gW2NvbmZpZ10gTm90aWZpY2F0aW9uQ29uZmlnXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgaW5mbyhcbiAgICBib2R5OiBzdHJpbmcsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBjb25maWc6IFNub3RpZmlyZUNvbmZpZ1xuICApOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogVHJhbnNmb3JtIHRvYXN0IGFyZ3VtZW50cyBpbnRvIE5vdGlmaWNhdGlvbk1vZGVsIG9iamVjdFxuICAgKi9cbiAgQFRyYW5zZm9ybUFyZ3VtZW50XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGN1cnJlbnQgdG9hc3QgdHlwZSBhbmQgY29sbGVjdHMgZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gICAqL1xuICBAU2V0VG9hc3RUeXBlXG4gIGluZm8oYXJnczogYW55KTogU25vdGlmaXJlVG9hc3RNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKGFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIHdhcm5pbmcgc3R5bGUgcmV0dXJucyB0b2FzdCBpZDtcbiAgICogQHBhcmFtIGJvZHkgc3RyaW5nXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgd2FybmluZyhib2R5OiBzdHJpbmcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggd2FybmluZyBzdHlsZSByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHBhcmFtIHRpdGxlIHN0cmluZ1xuICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICovXG4gIHdhcm5pbmcoYm9keTogc3RyaW5nLCB0aXRsZTogc3RyaW5nKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIHdhcm5pbmcgc3R5bGUgcmV0dXJucyB0b2FzdCBpZDtcbiAgICogQHBhcmFtIGJvZHkgc3RyaW5nXG4gICAqIEBwYXJhbSBjb25maWcgTm90aWZpY2F0aW9uQ29uZmlnXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgd2FybmluZyhib2R5OiBzdHJpbmcsIGNvbmZpZzogU25vdGlmaXJlQ29uZmlnKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIHdhcm5pbmcgc3R5bGUgIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBbYm9keV0gc3RyaW5nXG4gICAqIEBwYXJhbSBbdGl0bGVdIHN0cmluZ1xuICAgKiBAcGFyYW0gW2NvbmZpZ10gTm90aWZpY2F0aW9uQ29uZmlnXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgd2FybmluZyhcbiAgICBib2R5OiBzdHJpbmcsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBjb25maWc6IFNub3RpZmlyZUNvbmZpZ1xuICApOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogVHJhbnNmb3JtIHRvYXN0IGFyZ3VtZW50cyBpbnRvIE5vdGlmaWNhdGlvbk1vZGVsIG9iamVjdFxuICAgKi9cbiAgQFRyYW5zZm9ybUFyZ3VtZW50XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGN1cnJlbnQgdG9hc3QgdHlwZSBhbmQgY29sbGVjdHMgZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gICAqL1xuICBAU2V0VG9hc3RUeXBlXG4gIHdhcm5pbmcoYXJnczogYW55KTogU25vdGlmaXJlVG9hc3RNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKGFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIGNvbmZpcm0gc3R5bGUgcmV0dXJucyB0b2FzdCBpZDtcbiAgICogQHBhcmFtIGJvZHkgc3RyaW5nXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgY29uZmlybShib2R5OiBzdHJpbmcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggY29uZmlybSBzdHlsZSByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHBhcmFtIHRpdGxlIHN0cmluZ1xuICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICovXG4gIGNvbmZpcm0oYm9keTogc3RyaW5nLCB0aXRsZTogc3RyaW5nKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIGNvbmZpcm0gc3R5bGUgcmV0dXJucyB0b2FzdCBpZDtcbiAgICogQHBhcmFtIGJvZHkgc3RyaW5nXG4gICAqIEBwYXJhbSBjb25maWcgTm90aWZpY2F0aW9uQ29uZmlnXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgY29uZmlybShib2R5OiBzdHJpbmcsIGNvbmZpZzogU25vdGlmaXJlQ29uZmlnKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIGNvbmZpcm0gc3R5bGUgIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBbYm9keV0gc3RyaW5nXG4gICAqIEBwYXJhbSBbdGl0bGVdIHN0cmluZ1xuICAgKiBAcGFyYW0gW2NvbmZpZ10gTm90aWZpY2F0aW9uQ29uZmlnXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgY29uZmlybShcbiAgICBib2R5OiBzdHJpbmcsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBjb25maWc6IFNub3RpZmlyZUNvbmZpZ1xuICApOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogVHJhbnNmb3JtIHRvYXN0IGFyZ3VtZW50cyBpbnRvIE5vdGlmaWNhdGlvbk1vZGVsIG9iamVjdFxuICAgKi9cbiAgQFRyYW5zZm9ybUFyZ3VtZW50XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGN1cnJlbnQgdG9hc3QgdHlwZSBhbmQgY29sbGVjdHMgZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gICAqL1xuICBAU2V0VG9hc3RUeXBlXG4gIGNvbmZpcm0oYXJnczogYW55KTogU25vdGlmaXJlVG9hc3RNb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlKGFyZ3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIFByb21wdCBzdHlsZSB3aXRoIHR3byBidXR0b25zLCByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBwcm9tcHQoYm9keTogc3RyaW5nKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIFByb21wdCBzdHlsZSB3aXRoIHR3byBidXR0b25zLCByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gYm9keSBzdHJpbmdcbiAgICogQHBhcmFtIHRpdGxlIHN0cmluZ1xuICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICovXG4gIHByb21wdChib2R5OiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcpOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlIHRvYXN0IHdpdGggUHJvbXB0IHN0eWxlIHdpdGggdHdvIGJ1dHRvbnMsIHJldHVybnMgdG9hc3QgaWQ7XG4gICAqIEBwYXJhbSBib2R5IHN0cmluZ1xuICAgKiBAcGFyYW0gY29uZmlnIE5vdGlmaWNhdGlvbkNvbmZpZ1xuICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICovXG4gIHByb21wdChib2R5OiBzdHJpbmcsIGNvbmZpZzogU25vdGlmaXJlQ29uZmlnKTogU25vdGlmaXJlVG9hc3RNb2RlbDtcbiAgLyoqXG4gICAqIENyZWF0ZSB0b2FzdCB3aXRoIFByb21wdCBzdHlsZSB3aXRoIHR3byBidXR0b25zLCByZXR1cm5zIHRvYXN0IGlkO1xuICAgKiBAcGFyYW0gW2JvZHldIHN0cmluZ1xuICAgKiBAcGFyYW0gW3RpdGxlXSBzdHJpbmdcbiAgICogQHBhcmFtIFtjb25maWddIE5vdGlmaWNhdGlvbkNvbmZpZ1xuICAgKiBAcmV0dXJucyBudW1iZXJcbiAgICovXG4gIHByb21wdChcbiAgICBib2R5OiBzdHJpbmcsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBjb25maWc6IFNub3RpZmlyZUNvbmZpZ1xuICApOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogVHJhbnNmb3JtIHRvYXN0IGFyZ3VtZW50cyBpbnRvIE5vdGlmaWNhdGlvbk1vZGVsIG9iamVjdFxuICAgKi9cbiAgQFRyYW5zZm9ybUFyZ3VtZW50XG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGN1cnJlbnQgdG9hc3QgdHlwZSBhbmQgY29sbGVjdHMgZGVmYXVsdCBjb25maWd1cmF0aW9uXG4gICAqL1xuICBAU2V0VG9hc3RUeXBlXG4gIHByb21wdChhcmdzOiBhbnkpOiBTbm90aWZpcmVUb2FzdE1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5jcmVhdGUoYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhc3luYyB0b2FzdCB3aXRoIEluZm8gc3R5bGUuIFBhc3MgYWN0aW9uLCBhbmQgcmVzb2x2ZSBvciByZWplY3QgaXQuXG4gICAqIEBwYXJhbSBib2R5IHN0cmluZ1xuICAgKiBAcGFyYW0gYWN0aW9uIFByb21pc2U8Tm90aWZpY2F0aW9uTW9kZWw+IHwgT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25Nb2RlbD5cbiAgICogQHJldHVybnMgbnVtYmVyXG4gICAqL1xuICBhc3luYyhcbiAgICBib2R5OiBzdHJpbmcsXG4gICAgYWN0aW9uOiBQcm9taXNlPFNub3RpZmlyZU1vZGVsPiB8IE9ic2VydmFibGU8U25vdGlmaXJlTW9kZWw+XG4gICk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGFzeW5jIHRvYXN0IHdpdGggSW5mbyBzdHlsZS4gUGFzcyBhY3Rpb24sIGFuZCByZXNvbHZlIG9yIHJlamVjdCBpdC5cbiAgICogQHBhcmFtIGJvZHkgc3RyaW5nXG4gICAqIEBwYXJhbSB0aXRsZSBzdHJpbmdcbiAgICogQHBhcmFtIGFjdGlvbiBQcm9taXNlPE5vdGlmaWNhdGlvbk1vZGVsPiB8IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uTW9kZWw+XG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgYXN5bmMoXG4gICAgYm9keTogc3RyaW5nLFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgYWN0aW9uOiBQcm9taXNlPFNub3RpZmlyZU1vZGVsPiB8IE9ic2VydmFibGU8U25vdGlmaXJlTW9kZWw+XG4gICk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGFzeW5jIHRvYXN0IHdpdGggSW5mbyBzdHlsZS4gUGFzcyBhY3Rpb24sIGFuZCByZXNvbHZlIG9yIHJlamVjdCBpdC5cbiAgICogQHBhcmFtIGJvZHkgc3RyaW5nXG4gICAqIEBwYXJhbSBhY3Rpb24gUHJvbWlzZTxOb3RpZmljYXRpb25Nb2RlbD4gfCBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbk1vZGVsPlxuICAgKiBAcGFyYW0gW2NvbmZpZ10gTm90aWZpY2F0aW9uQ29uZmlnXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgYXN5bmMoXG4gICAgYm9keTogc3RyaW5nLFxuICAgIGFjdGlvbjogUHJvbWlzZTxTbm90aWZpcmVNb2RlbD4gfCBPYnNlcnZhYmxlPFNub3RpZmlyZU1vZGVsPixcbiAgICBjb25maWc6IFNub3RpZmlyZUNvbmZpZ1xuICApOiBTbm90aWZpcmVUb2FzdE1vZGVsO1xuICAvKipcbiAgICogQ3JlYXRlcyBhc3luYyB0b2FzdCB3aXRoIEluZm8gc3R5bGUuIFBhc3MgYWN0aW9uLCBhbmQgcmVzb2x2ZSBvciByZWplY3QgaXQuXG4gICAqIEBwYXJhbSBib2R5IHN0cmluZ1xuICAgKiBAcGFyYW0gdGl0bGUgc3RyaW5nXG4gICAqIEBwYXJhbSBhY3Rpb24gUHJvbWlzZTxOb3RpZmljYXRpb25Nb2RlbD4gfCBPYnNlcnZhYmxlPE5vdGlmaWNhdGlvbk1vZGVsPlxuICAgKiBAcGFyYW0gW2NvbmZpZ10gTm90aWZpY2F0aW9uQ29uZmlnXG4gICAqIEByZXR1cm5zIG51bWJlclxuICAgKi9cbiAgYXN5bmMoXG4gICAgYm9keTogc3RyaW5nLFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgYWN0aW9uOiBQcm9taXNlPFNub3RpZmlyZU1vZGVsPiB8IE9ic2VydmFibGU8U25vdGlmaXJlTW9kZWw+LFxuICAgIGNvbmZpZzogU25vdGlmaXJlQ29uZmlnXG4gICk6IFNub3RpZmlyZVRvYXN0TW9kZWw7XG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdG9hc3QgYXJndW1lbnRzIGludG8gTm90aWZpY2F0aW9uTW9kZWwgb2JqZWN0XG4gICAqL1xuICBAVHJhbnNmb3JtQXJndW1lbnRcbiAgLyoqXG4gICAqIERldGVybWluZXMgY3VycmVudCB0b2FzdCB0eXBlIGFuZCBjb2xsZWN0cyBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIEBTZXRUb2FzdFR5cGVcbiAgYXN5bmMoYXJnczogYW55KTogU25vdGlmaXJlVG9hc3RNb2RlbCB7XG4gICAgbGV0IGFzeW5jOiBPYnNlcnZhYmxlPGFueT47XG4gICAgaWYgKGFyZ3MuYWN0aW9uIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgYXN5bmMgPSBmcm9tKGFyZ3MuYWN0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXN5bmMgPSBhcmdzLmFjdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCB0b2FzdCA9IHRoaXMuY3JlYXRlKGFyZ3MpO1xuXG4gICAgdG9hc3Qub24oU25vdGlmaXJlRXZlbnRUeXBlLk1PVU5URUQsICgpID0+IHtcbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gYXN5bmMuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKG5leHQ/OiBTbm90aWZpcmVNb2RlbCkgPT4ge1xuICAgICAgICAgIHRoaXMubWVyZ2VUb2FzdCh0b2FzdCwgbmV4dCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyb3I/OiBTbm90aWZpcmVNb2RlbCkgPT4ge1xuICAgICAgICAgIHRoaXMubWVyZ2VUb2FzdCh0b2FzdCwgZXJyb3IsIFNub3RpZmlyZVR5cGUuRVJST1IpO1xuICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgIHRoaXMubWVyZ2VUb2FzdCh0b2FzdCwge30sIFNub3RpZmlyZVR5cGUuU1VDQ0VTUyk7XG4gICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiB0b2FzdDtcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VUb2FzdCh0b2FzdDogYW55LCBuZXh0OiBhbnksIHR5cGU/OiBTbm90aWZpcmVUeXBlKSB7XG4gICAgaWYgKG5leHQuYm9keSkge1xuICAgICAgdG9hc3QuYm9keSA9IG5leHQuYm9keTtcbiAgICB9XG4gICAgaWYgKG5leHQudGl0bGUpIHtcbiAgICAgIHRvYXN0LnRpdGxlID0gbmV4dC50aXRsZTtcbiAgICB9XG4gICAgaWYgKHR5cGUgJiYgdGhpcy5kZWZhdWx0Q29uZmlnKSB7XG4gICAgICB0b2FzdC5jb25maWcgPSBtZXJnZURlZXAoXG4gICAgICAgIHRvYXN0LmNvbmZpZyxcbiAgICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnLmdsb2JhbCxcbiAgICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnLnNub3RpZmlyZUNvbmZpZz8udHlwZSxcbiAgICAgICAgeyB0eXBlIH0sXG4gICAgICAgIG5leHQuY29uZmlnXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0b2FzdC5jb25maWcgPSBtZXJnZURlZXAodG9hc3QuY29uZmlnLCBuZXh0LmNvbmZpZyk7XG4gICAgfVxuICAgIGlmIChuZXh0Lmh0bWwpIHtcbiAgICAgIHRvYXN0LmNvbmZpZy5odG1sID0gbmV4dC5odG1sO1xuICAgIH1cbiAgICB0aGlzLmVtaXQoKTtcbiAgICB0aGlzLnRvYXN0Q2hhbmdlZC5uZXh0KHRvYXN0KTtcbiAgfVxuICAvKipcbiAgICogcmV0dXJucyBTbm90aWZ5VG9hc3Qgb2JqZWN0XG4gICAqIEBwYXJhbSBpZCBOdW1iZXJcbiAgICogQHJldHVybiBTbm90aWZ5VG9hc3R8dW5kZWZpbmVkXG4gICAqL1xuICBnZXQoaWQ6IG51bWJlcik6IFNub3RpZmlyZVRvYXN0TW9kZWwgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLm5vdGlmaWNhdGlvbnMgJiYgdGhpcy5ub3RpZmljYXRpb25zLmZpbmQoKHRvYXN0KSA9PiB0b2FzdC5pZCA9PT0gaWQpXG4gICAgKTtcbiAgfVxufVxuIl19