@lenne.tech/ng-base 13.26.2 → 13.26.5

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.
@@ -19,7 +19,7 @@ export declare class TagsComponent {
19
19
  *
20
20
  * @param event
21
21
  */
22
- enterKey(event: KeyboardEvent): void;
22
+ enterKey(event: any): void;
23
23
  /**
24
24
  * Add new tag
25
25
  *
@@ -249,10 +249,10 @@ export class ModelFormComponent {
249
249
  }
250
250
  }
251
251
  ModelFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ModelFormComponent, deps: [{ token: i1.GraphQLMetaService }, { token: i1.GraphQLService }, { token: i1.FormsService }, { token: i1.AuthService }], target: i0.ɵɵFactoryTarget.Component });
252
- ModelFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ModelFormComponent, selector: "base-model-form", inputs: { modelName: "modelName", label: "label", id: "id", delete: "delete", logging: "logging", config: "config" }, outputs: { finished: "finished" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"w-100\" *ngIf=\"form\">\n <h2>\n {{ label ? label : capitalizeFirstLetter(modelName) }} {{ operation === 'update' ? 'bearbeiten' : 'erstellen' }}\n </h2>\n\n <form [formGroup]=\"form\">\n <base-model-form-sub\n [fields]=\"fields\"\n [config]=\"config\"\n [form]=\"form\"\n (imageChanged)=\"submit(true)\"\n ></base-model-form-sub>\n\n <div class=\"d-flex mt-4\" [ngClass]=\"id && delete ? 'justify-content-between' : 'justify-content-end'\">\n <div *ngIf=\"id && delete\">\n <button class=\"btn btn-danger\" type=\"button\" (click)=\"deleteObject()\">L\u00F6schen</button>\n </div>\n <div>\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"submit(false)\" *ngIf=\"!loading\">\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}\n </button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}...\n </button>\n </div>\n </div>\n </form>\n</div>\n", styles: [""], components: [{ type: i2.ModelFormSubComponent, selector: "base-model-form-sub", inputs: ["fields", "form", "config"], outputs: ["imageChanged"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
252
+ ModelFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ModelFormComponent, selector: "base-model-form", inputs: { modelName: "modelName", label: "label", id: "id", delete: "delete", logging: "logging", config: "config" }, outputs: { finished: "finished" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"w-100\" *ngIf=\"form\">\n <h2>\n {{ label ? label : capitalizeFirstLetter(modelName) }} {{ operation === 'update' ? 'bearbeiten' : 'erstellen' }}\n </h2>\n\n <form [formGroup]=\"form\">\n <base-model-form-sub\n [fields]=\"fields\"\n [config]=\"config\"\n [form]=\"form\"\n (imageChanged)=\"id ? submit(true) : null\"\n ></base-model-form-sub>\n\n <div class=\"d-flex mt-4\" [ngClass]=\"id && delete ? 'justify-content-between' : 'justify-content-end'\">\n <div *ngIf=\"id && delete\">\n <button class=\"btn btn-danger\" type=\"button\" (click)=\"deleteObject()\">L\u00F6schen</button>\n </div>\n <div>\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"submit(false)\" *ngIf=\"!loading\">\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}\n </button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}...\n </button>\n </div>\n </div>\n </form>\n</div>\n", styles: [""], components: [{ type: i2.ModelFormSubComponent, selector: "base-model-form-sub", inputs: ["fields", "form", "config"], outputs: ["imageChanged"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
253
253
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ModelFormComponent, decorators: [{
254
254
  type: Component,
255
- args: [{ selector: 'base-model-form', template: "<div class=\"w-100\" *ngIf=\"form\">\n <h2>\n {{ label ? label : capitalizeFirstLetter(modelName) }} {{ operation === 'update' ? 'bearbeiten' : 'erstellen' }}\n </h2>\n\n <form [formGroup]=\"form\">\n <base-model-form-sub\n [fields]=\"fields\"\n [config]=\"config\"\n [form]=\"form\"\n (imageChanged)=\"submit(true)\"\n ></base-model-form-sub>\n\n <div class=\"d-flex mt-4\" [ngClass]=\"id && delete ? 'justify-content-between' : 'justify-content-end'\">\n <div *ngIf=\"id && delete\">\n <button class=\"btn btn-danger\" type=\"button\" (click)=\"deleteObject()\">L\u00F6schen</button>\n </div>\n <div>\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"submit(false)\" *ngIf=\"!loading\">\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}\n </button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}...\n </button>\n </div>\n </div>\n </form>\n</div>\n", styles: [""] }]
255
+ args: [{ selector: 'base-model-form', template: "<div class=\"w-100\" *ngIf=\"form\">\n <h2>\n {{ label ? label : capitalizeFirstLetter(modelName) }} {{ operation === 'update' ? 'bearbeiten' : 'erstellen' }}\n </h2>\n\n <form [formGroup]=\"form\">\n <base-model-form-sub\n [fields]=\"fields\"\n [config]=\"config\"\n [form]=\"form\"\n (imageChanged)=\"id ? submit(true) : null\"\n ></base-model-form-sub>\n\n <div class=\"d-flex mt-4\" [ngClass]=\"id && delete ? 'justify-content-between' : 'justify-content-end'\">\n <div *ngIf=\"id && delete\">\n <button class=\"btn btn-danger\" type=\"button\" (click)=\"deleteObject()\">L\u00F6schen</button>\n </div>\n <div>\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"submit(false)\" *ngIf=\"!loading\">\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}\n </button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}...\n </button>\n </div>\n </div>\n </form>\n</div>\n", styles: [""] }]
256
256
  }], ctorParameters: function () { return [{ type: i1.GraphQLMetaService }, { type: i1.GraphQLService }, { type: i1.FormsService }, { type: i1.AuthService }]; }, propDecorators: { modelName: [{
257
257
  type: Input
258
258
  }], label: [{
@@ -268,4 +268,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
268
268
  }], finished: [{
269
269
  type: Output
270
270
  }] } });
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL21vZGVsLWZvcm0vbW9kZWwtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL21vZGVsLWZvcm0vbW9kZWwtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUVMLFNBQVMsRUFJVCxrQkFBa0IsR0FFbkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQW1CLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQVFyRixNQUFNLE9BQU8sa0JBQWtCO0lBa0I3QixZQUNVLGtCQUFzQyxFQUN0QyxjQUE4QixFQUM5QixZQUEwQixFQUMxQixXQUF3QjtRQUh4Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWxCekIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUVoQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUl4QyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBR2hCLFNBQUksR0FBYSxFQUFFLENBQUM7SUFRakIsQ0FBQztJQUVKLFFBQVE7UUFDTiwyQkFBMkI7UUFDM0IsSUFBSSxDQUFD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QUs7c0JBQWIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQXV0aFNlcnZpY2UsXG4gIEJhc2ljVXNlcixcbiAgRm9ybXNTZXJ2aWNlLFxuICBHcmFwaFFMTWV0YSxcbiAgR3JhcGhRTE1ldGFTZXJ2aWNlLFxuICBHcmFwaFFMUmVxdWVzdFR5cGUsXG4gIEdyYXBoUUxTZXJ2aWNlLFxufSBmcm9tICdAbGVubmUudGVjaC9uZy1iYXNlL3NoYXJlZCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJR3JhcGhRTFR5cGVDb2xsZWN0aW9uIH0gZnJvbSAnQGxlbm5lLnRlY2gvbmctYmFzZS9zaGFyZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYXNlLW1vZGVsLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGVsLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBtb2RlbE5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgaWQ6IHN0cmluZyB8IG51bGw7XG4gIEBJbnB1dCgpIGRlbGV0ZSA9IHRydWU7XG4gIEBJbnB1dCgpIGxvZ2dpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgY29uZmlnOiBhbnkgPSB7fTtcblxuICBAT3V0cHV0KCkgZmluaXNoZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgbWV0YTogR3JhcGhRTE1ldGE7XG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgbG9hZGluZyA9IGZhbHNlO1xuICBmaWVsZHM6IGFueTtcbiAgb3BlcmF0aW9uOiBzdHJpbmc7XG4gIGtleXM6IHN0cmluZ1tdID0gW107XG4gIHVzZXI6IEJhc2ljVXNlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGdyYXBoUUxNZXRhU2VydmljZTogR3JhcGhRTE1ldGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ3JhcGhRTFNlcnZpY2U6IEdyYXBoUUxTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybXNTZXJ2aWNlOiBGb3Jtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFNldCB1c2VyIGZvciByb2xlcyBjaGVja1xuICAgIHRoaXMudXNlciA9IEJhc2ljVXNlci5tYXAodGhpcy5hdXRoU2VydmljZS5jdXJyZW50VXNlcik7XG5cbiAgICB0aGlzLmdyYXBoUUxNZXRhU2VydmljZS5nZXRNZXRhKCkuc3Vic2NyaWJlKChtZXRhKSA9PiB7XG4gICAgICB0aGlzLm1ldGEgPSBtZXRhO1xuXG4gICAgICBpZiAodGhpcy5tb2RlbE5hbWUpIHtcbiAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ21vZGVsTmFtZSddIHx8IGNoYW5nZXNbJ3ZhbHVlJ10pIHtcbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiA+IElmIHRoZSBtb2RlbCBuYW1lIGFuZCBtZXRhIGRhdGEgYXJlIHByZXNlbnQsIHNldCB0aGUgb3BlcmF0aW9uIHRvIHVwZGF0ZSBvciBjcmVhdGUsIGdldCB0aGUgZmllbGRzIGZyb20gdGhlIG1ldGFcbiAgICogZGF0YSwgY3JlYXRlIHRoZSBmb3JtLCBhbmQgaWYgdGhlIHZhbHVlIGlzIHByZXNlbnQsIHBhdGNoIHRoZSBmb3JtIHdpdGggdGhlIHZhbHVlXG4gICAqL1xuICBpbml0KCkge1xuICAgIGlmICh0aGlzLm1vZGVsTmFtZSAmJiB0aGlzLm1ldGEpIHtcbiAgICAgIHRoaXMub3BlcmF0aW9uID0gdGhpcy5pZCA/ICd1cGRhdGUnIDogJ2NyZWF0ZSc7XG4gICAgICB0aGlzLmZpZWxkcyA9IHRoaXMubWV0YS5nZXRBcmdzKHRoaXMub3BlcmF0aW9uICsgdGhpcy5jYXBpdGFsaXplRmlyc3RMZXR0ZXIodGhpcy5tb2RlbE5hbWUpLCB7XG4gICAgICAgIHR5cGU6IEdyYXBoUUxSZXF1ZXN0VHlwZS5NVVRBVElPTixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5maWVsZHMgPSB0aGlzLmZpZWxkc1snaW5wdXQnXSBhcyBhbnk7XG4gICAgICB0aGlzLmtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmZpZWxkcyk7XG5cbiAgICAgIGlmICh0aGlzLmxvZ2dpbmcpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ01vZGVsRm9ybUNvbXBvbmVudDo6aW5pdC0+ZmllbGRzJywgdGhpcy5maWVsZHMpO1xuICAgICAgICBjb25zb2xlLmxvZygnTW9kZWxGb3JtQ29tcG9uZW50Ojppbml0LT5rZXlzJywgdGhpcy5rZXlzKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5mb3JtID0gdGhpcy5jcmVhdGVGb3JtKHRoaXMuZmllbGRzKTtcblxuICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgdGhpcy5nZXRPYmplY3RCeUlkKHRoaXMuaWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldEtleXNGcm9tU3ViT2JqZWN0KGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZmllbGRzW2tleV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHRha2VzIGFuIGlkLCBhbmQgdGhlbiBjYWxscyB0aGUgZ3JhcGhRTFNlcnZpY2UgdG8gZ2V0IHRoZSBvYmplY3QgZnJvbSB0aGUgZGF0YWJhc2VcbiAgICpcbiAgICogQHBhcmFtIGlkIC0gVGhlIGlkIG9mIHRoZSBvYmplY3QgdG8gYmUgbG9hZGVkXG4gICAqL1xuICBnZXRPYmplY3RCeUlkKGlkOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5sb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZygnTW9kZWxGb3JtQ29tcG9uZW50OjpnZXRPYmplY3RCeUlkLT5pZCcsIGlkKTtcbiAgICAgIGNvbnNvbGUubG9nKCdNb2RlbEZvcm1Db21wb25lbnQ6OmdldE9iamVjdEJ5SWQtPnJlcXVlc3RGaWVsZHMnLCB0aGlzLmNyZWF0ZVJlcXVlc3RPYmplY3QodGhpcy5maWVsZHMpKTtcbiAgICB9XG5cbiAgICB0aGlzLmdyYXBoUUxTZXJ2aWNlXG4gICAgICAuZ3JhcGhRbCgnZ2V0JyArIHRoaXMuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRoaXMubW9kZWxOYW1lKSwge1xuICAgICAgICBhcmd1bWVudHM6IHsgaWQgfSxcbiAgICAgICAgZmllbGRzOiB0aGlzLmNyZWF0ZVJlcXVlc3RPYmplY3QodGhpcy5maWVsZHMpLFxuICAgICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuUVVFUlksXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmxvZ2dpbmcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdNb2RlbEZvcm1Db21wb25lbnQ6OmdldC0+dmFsdWUnLCByZXNwb25zZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyAuLi57fSwgLi4ucmVzcG9uc2UgfSk7XG5cbiAgICAgICAgICAvLyBQcm9jZXNzIHBhdGNoRmllbGRzIGZvciByZWZlcmVuY2UgaW5wdXRcbiAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmNvbmZpZykpIHtcbiAgICAgICAgICAgIC8vIElmIGl0IG5vdCBhbiBhcnJheVxuICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnW2tleV0/LnBhdGNoRmllbGQgJiYgIXRoaXMuZmllbGRzW2tleV0/LmlzTGlzdCkge1xuICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KGtleSkucGF0Y2hWYWx1ZShyZXNwb25zZVt0aGlzLmNvbmZpZ1trZXldPy5wYXRjaEZpZWxkXT8uaWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJZiB2YWx1ZSBpcyBhbiBhcnJheVxuICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnW2tleV0/LnBhdGNoRmllbGQgJiYgdGhpcy5maWVsZHNba2V5XT8uaXNMaXN0KSB7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoa2V5KS5wYXRjaFZhbHVlKHJlc3BvbnNlW3RoaXMuY29uZmlnW2tleV0/LnBhdGNoRmllbGRdPy5tYXAoKGUpID0+IGU/LmlkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMubG9nZ2luZykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ01vZGVsRm9ybUNvbXBvbmVudDo6Z2V0T2JqZWN0QnlJZC0+cGF0Y2hlZEZvcm0nLCB0aGlzLmZvcm0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBvbiBsb2FkIG9iamVjdCcsIGVycik7XG4gICAgICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHRha2VzIGEgR3JhcGhRTCB0eXBlIGNvbGxlY3Rpb24gYW5kIHJldHVybnMgYW4gYXJyYXkgb2Ygc3RyaW5ncyBhbmQgb2JqZWN0c1xuICAgKlxuICAgKiBAcGFyYW0gZmllbGRzIC0gSUdyYXBoUUxUeXBlQ29sbGVjdGlvbiAtIFRoaXMgaXMgdGhlIG9iamVjdCB0aGF0IGlzIHJldHVybmVkIGZyb20gdGhlXG4gICAqIGludHJvc3BlY3Rpb24gcXVlcnkuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHN0cmluZ3MgYW5kIG9iamVjdHMuXG4gICAqL1xuICBjcmVhdGVSZXF1ZXN0T2JqZWN0KGZpZWxkczogSUdyYXBoUUxUeXBlQ29sbGVjdGlvbikge1xuICAgIGNvbnN0IHJlcXVlc3RGaWVsZHM6IGFueSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZmllbGRzKSkge1xuICAgICAgaWYgKGZpZWxkc1trZXldPy50eXBlKSB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWdba2V5XT8ucGF0Y2hGaWVsZCkge1xuICAgICAgICAgIHJlcXVlc3RGaWVsZHMucHVzaChrZXkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcXVlc3RGaWVsZHMucHVzaCh7IFt0aGlzLmNvbmZpZ1trZXldPy5wYXRjaEZpZWxkXTogWydpZCddIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdWJrZXlzID0gdGhpcy5jcmVhdGVSZXF1ZXN0T2JqZWN0KGZpZWxkc1trZXldIGFzIElHcmFwaFFMVHlwZUNvbGxlY3Rpb24pO1xuICAgICAgICBjb25zdCByZXN1bHRPYmplY3QgPSB7fTtcbiAgICAgICAgcmVzdWx0T2JqZWN0W2tleV0gPSBzdWJrZXlzO1xuICAgICAgICByZXF1ZXN0RmllbGRzLnB1c2gocmVzdWx0T2JqZWN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5sb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZygnTW9kZWxGb3JtQ29tcG9uZW50OjpjcmVhdGVSZXF1ZXN0T2JqZWN0LT5yZXF1ZXN0RmllbGRzJywgcmVxdWVzdEZpZWxkcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcXVlc3RGaWVsZHM7XG4gIH1cblxuICAvKipcbiAgICogSXQgdGFrZXMgYSBjb2xsZWN0aW9uIG9mIEdyYXBoUUwgdHlwZXMgYW5kIGNyZWF0ZXMgYSBmb3JtIGdyb3VwIHdpdGggYSBmb3JtIGNvbnRyb2wgZm9yIGVhY2ggdHlwZVxuICAgKlxuICAgKiBAcGFyYW0gZmllbGRzIC0gSUdyYXBoUUxUeXBlQ29sbGVjdGlvblxuICAgKi9cbiAgY3JlYXRlRm9ybShmaWVsZHM6IElHcmFwaFFMVHlwZUNvbGxlY3Rpb24pIHtcbiAgICBjb25zdCBncm91cDogYW55ID0ge307XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhmaWVsZHMpKSB7XG4gICAgICBpZiAodmFsdWU/LnR5cGUpIHtcbiAgICAgICAgZ3JvdXBba2V5XSA9IG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgICB2YWx1ZT8udHlwZSA9PT0gJ0Zsb2F0JyA/IDAgOiAnJyxcbiAgICAgICAgICAodGhpcy5jb25maWdba2V5XSAmJiB0aGlzLmNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gdGhpcy5jb25maWdba2V5XT8ucmVxdWlyZWQgOiB2YWx1ZS5pc1JlcXVpcmVkKVxuICAgICAgICAgICAgPyBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICAgICAgICA6IFtdXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBncm91cFtrZXldID0gdGhpcy5jcmVhdGVGb3JtKGZpZWxkc1trZXldIGFzIElHcmFwaFFMVHlwZUNvbGxlY3Rpb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmxvZ2dpbmcpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdNb2RlbEZvcm1Db21wb25lbnQ6OmNyZWF0ZUZvcm0tPmdyb3VwJywgZ3JvdXApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKGdyb3VwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBjYWxscyB0aGUgZ3JhcGhRTFNlcnZpY2UgdG8gZGVsZXRlIHRoZSBvYmplY3Qgd2l0aCB0aGUgaWQgb2YgdGhlIG9iamVjdCB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBlZGl0ZWRcbiAgICovXG4gIGRlbGV0ZU9iamVjdCgpIHtcbiAgICBpZiAoY29uZmlybSgnTcO2Y2h0ZXN0IGR1IGRhcyBPYmpla3Qgd2lya2xpY2ggbMO2c2NoZW4/JykpIHtcbiAgICAgIHRoaXMuZ3JhcGhRTFNlcnZpY2VcbiAgICAgICAgLmdyYXBoUWwoJ2RlbGV0ZScgKyB0aGlzLmNhcGl0YWxpemVGaXJzdExldHRlcih0aGlzLm1vZGVsTmFtZSksIHtcbiAgICAgICAgICBhcmd1bWVudHM6IHsgaWQ6IHRoaXMuaWQgfSxcbiAgICAgICAgICBmaWVsZHM6IFsnaWQnXSxcbiAgICAgICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuTVVUQVRJT04sXG4gICAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KHRydWUpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIG9uIGRlbGV0ZSBvYmplY3QnLCBlcnIpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJdCB0YWtlcyBhIHN0cmluZywgY2FwaXRhbGl6ZXMgdGhlIGZpcnN0IGxldHRlciwgYW5kIHJldHVybnMgdGhlIG1vZGlmaWVkIHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgc3RyaW5nIHRvIGNhcGl0YWxpemUuXG4gICAqIEByZXR1cm5zIFRoZSBmaXJzdCBsZXR0ZXIgb2YgdGhlIHN0cmluZyBpcyBiZWluZyBjYXBpdGFsaXplZCBhbmQgdGhlIHJlc3Qgb2YgdGhlIHN0cmluZyBpcyBiZWluZyByZXR1cm5lZC5cbiAgICovXG4gIGNhcGl0YWxpemVGaXJzdExldHRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdmFsdWUuc2xpY2UoMSk7XG4gIH1cblxuICAvKipcbiAgICogSXQgdGFrZXMgYW4gQWJzdHJhY3RDb250cm9sIGFuZCByZXR1cm5zIGEgRm9ybUNvbnRyb2xcbiAgICpcbiAgICogQHBhcmFtIGNvbnRyb2wgLSBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkXG4gICAqIEByZXR1cm5zIEEgRm9ybUNvbnRyb2xcbiAgICovXG4gIHRyYW5zZm9ybVRvQ29udHJvbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICAvKipcbiAgICogSXQgdGFrZXMgdGhlIGZvcm0sIHZhbGlkYXRlcyBpdCwgYW5kIHRoZW4gc2VuZHMgaXQgdG8gdGhlIEdyYXBoUUwgc2VydmVyXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBpZCBvZiB0aGUgbmV3bHkgY3JlYXRlZCBvciB1cGRhdGVkIG9iamVjdC5cbiAgICovXG4gIHN1Ym1pdChzZWNyZXQgPSBmYWxzZSkge1xuICAgIGlmICghc2VjcmV0KSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCAmJiAhc2VjcmV0KSB7XG4gICAgICB0aGlzLmZvcm1zU2VydmljZS52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5mb3JtIGFzIGFueSk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcGVyYXRpb24gPT09ICd1cGRhdGUnICYmICF0aGlzLmlkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdJRCBpcyBtaXNzaW5nIGZvciB1cGRhdGUhJyk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5sb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZygnTW9kZWxGb3JtQ29tcG9uZW50OjpzdWJtaXQtPmZvcm1WYWx1ZScsIHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZGF0YSkpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKHRoaXMuY29uZmlnW2tleV0/LnJvbGVzID8gIXRoaXMudXNlci5oYXNBbGxSb2xlcyh0aGlzLmNvbmZpZ1trZXldPy5yb2xlcykgOiBmYWxzZSkgfHxcbiAgICAgICAgdGhpcy5jb25maWdba2V5XT8uZXhjbHVkZVxuICAgICAgKSB7XG4gICAgICAgIGRlbGV0ZSBkYXRhW2tleV07XG4gICAgICB9XG5cbiAgICAgIC8vIFNldCB0eXBlIGZvciBncmFwaHFsIG1ldGhvZFxuICAgICAgaWYgKHRoaXMuZmllbGRzW2tleV0/LnR5cGUgPT09ICdGbG9hdCcpIHtcbiAgICAgICAgZGF0YVtrZXldID0gTnVtYmVyKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmdyYXBoUUxTZXJ2aWNlXG4gICAgICAuZ3JhcGhRbCh0aGlzLm9wZXJhdGlvbiArIHRoaXMuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRoaXMubW9kZWxOYW1lKSwge1xuICAgICAgICBhcmd1bWVudHM6IHRoaXMub3BlcmF0aW9uID09PSAndXBkYXRlJyA/IHsgaWQ6IHRoaXMuaWQsIGlucHV0OiBkYXRhIH0gOiB7IGlucHV0OiBkYXRhIH0sXG4gICAgICAgIGZpZWxkczogWydpZCddLFxuICAgICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuTVVUQVRJT04sXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGlmICghc2VjcmV0KSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoZWQuZW1pdCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgaWYgKCFzZWNyZXQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCBvbiAnICsgdGhpcy5vcGVyYXRpb24sIGVycik7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInctMTAwXCIgKm5nSWY9XCJmb3JtXCI+XG4gIDxoMj5cbiAgICB7eyBsYWJlbCA/IGxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKG1vZGVsTmFtZSkgfX0ge3sgb3BlcmF0aW9uID09PSAndXBkYXRlJyA/ICdiZWFyYmVpdGVuJyA6ICdlcnN0ZWxsZW4nIH19XG4gIDwvaDI+XG5cbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPGJhc2UtbW9kZWwtZm9ybS1zdWJcbiAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICAgIFtmb3JtXT1cImZvcm1cIlxuICAgICAgKGltYWdlQ2hhbmdlZCk9XCJzdWJtaXQodHJ1ZSlcIlxuICAgID48L2Jhc2UtbW9kZWwtZm9ybS1zdWI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTRcIiBbbmdDbGFzc109XCJpZCAmJiBkZWxldGUgPyAnanVzdGlmeS1jb250ZW50LWJldHdlZW4nIDogJ2p1c3RpZnktY29udGVudC1lbmQnXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaWQgJiYgZGVsZXRlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWRhbmdlclwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZGVsZXRlT2JqZWN0KClcIj5Mw7ZzY2hlbjwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzdWJtaXQoZmFsc2UpXCIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICAgICAgICAgIHt7IG9wZXJhdGlvbiA9PT0gJ2NyZWF0ZScgPyAnRXJzdGVsbGVuJyA6ICdTcGVpY2hlcm4nIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIGRpc2FibGVkICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc21cIiByb2xlPVwic3RhdHVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgIHt7IG9wZXJhdGlvbiA9PT0gJ2NyZWF0ZScgPyAnRXJzdGVsbGVuJyA6ICdTcGVpY2hlcm4nIH19Li4uXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbjwvZGl2PlxuIl19
271
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL21vZGVsLWZvcm0vbW9kZWwtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL21vZGVsLWZvcm0vbW9kZWwtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUVMLFNBQVMsRUFJVCxrQkFBa0IsR0FFbkIsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQW1CLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQVFyRixNQUFNLE9BQU8sa0JBQWtCO0lBa0I3QixZQUNVLGtCQUFzQyxFQUN0QyxjQUE4QixFQUM5QixZQUEwQixFQUMxQixXQUF3QjtRQUh4Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQWxCekIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsV0FBTSxHQUFRLEVBQUUsQ0FBQztRQUVoQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUl4QyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBR2hCLFNBQUksR0FBYSxFQUFFLENBQUM7SUFRakIsQ0FBQztJQUVKLFFBQVE7UUFDTiwyQkFBMkI7UUFDM0IsSUFBSSxDQUFD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QUs7c0JBQWIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQXV0aFNlcnZpY2UsXG4gIEJhc2ljVXNlcixcbiAgRm9ybXNTZXJ2aWNlLFxuICBHcmFwaFFMTWV0YSxcbiAgR3JhcGhRTE1ldGFTZXJ2aWNlLFxuICBHcmFwaFFMUmVxdWVzdFR5cGUsXG4gIEdyYXBoUUxTZXJ2aWNlLFxufSBmcm9tICdAbGVubmUudGVjaC9uZy1iYXNlL3NoYXJlZCc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJR3JhcGhRTFR5cGVDb2xsZWN0aW9uIH0gZnJvbSAnQGxlbm5lLnRlY2gvbmctYmFzZS9zaGFyZWQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYXNlLW1vZGVsLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGVsLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTW9kZWxGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBtb2RlbE5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgaWQ6IHN0cmluZyB8IG51bGw7XG4gIEBJbnB1dCgpIGRlbGV0ZSA9IHRydWU7XG4gIEBJbnB1dCgpIGxvZ2dpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgY29uZmlnOiBhbnkgPSB7fTtcblxuICBAT3V0cHV0KCkgZmluaXNoZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgbWV0YTogR3JhcGhRTE1ldGE7XG4gIGZvcm06IEZvcm1Hcm91cDtcbiAgbG9hZGluZyA9IGZhbHNlO1xuICBmaWVsZHM6IGFueTtcbiAgb3BlcmF0aW9uOiBzdHJpbmc7XG4gIGtleXM6IHN0cmluZ1tdID0gW107XG4gIHVzZXI6IEJhc2ljVXNlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGdyYXBoUUxNZXRhU2VydmljZTogR3JhcGhRTE1ldGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ3JhcGhRTFNlcnZpY2U6IEdyYXBoUUxTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybXNTZXJ2aWNlOiBGb3Jtc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFNldCB1c2VyIGZvciByb2xlcyBjaGVja1xuICAgIHRoaXMudXNlciA9IEJhc2ljVXNlci5tYXAodGhpcy5hdXRoU2VydmljZS5jdXJyZW50VXNlcik7XG5cbiAgICB0aGlzLmdyYXBoUUxNZXRhU2VydmljZS5nZXRNZXRhKCkuc3Vic2NyaWJlKChtZXRhKSA9PiB7XG4gICAgICB0aGlzLm1ldGEgPSBtZXRhO1xuXG4gICAgICBpZiAodGhpcy5tb2RlbE5hbWUpIHtcbiAgICAgICAgdGhpcy5pbml0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ21vZGVsTmFtZSddIHx8IGNoYW5nZXNbJ3ZhbHVlJ10pIHtcbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiA+IElmIHRoZSBtb2RlbCBuYW1lIGFuZCBtZXRhIGRhdGEgYXJlIHByZXNlbnQsIHNldCB0aGUgb3BlcmF0aW9uIHRvIHVwZGF0ZSBvciBjcmVhdGUsIGdldCB0aGUgZmllbGRzIGZyb20gdGhlIG1ldGFcbiAgICogZGF0YSwgY3JlYXRlIHRoZSBmb3JtLCBhbmQgaWYgdGhlIHZhbHVlIGlzIHByZXNlbnQsIHBhdGNoIHRoZSBmb3JtIHdpdGggdGhlIHZhbHVlXG4gICAqL1xuICBpbml0KCkge1xuICAgIGlmICh0aGlzLm1vZGVsTmFtZSAmJiB0aGlzLm1ldGEpIHtcbiAgICAgIHRoaXMub3BlcmF0aW9uID0gdGhpcy5pZCA/ICd1cGRhdGUnIDogJ2NyZWF0ZSc7XG4gICAgICB0aGlzLmZpZWxkcyA9IHRoaXMubWV0YS5nZXRBcmdzKHRoaXMub3BlcmF0aW9uICsgdGhpcy5jYXBpdGFsaXplRmlyc3RMZXR0ZXIodGhpcy5tb2RlbE5hbWUpLCB7XG4gICAgICAgIHR5cGU6IEdyYXBoUUxSZXF1ZXN0VHlwZS5NVVRBVElPTixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5maWVsZHMgPSB0aGlzLmZpZWxkc1snaW5wdXQnXSBhcyBhbnk7XG4gICAgICB0aGlzLmtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmZpZWxkcyk7XG5cbiAgICAgIGlmICh0aGlzLmxvZ2dpbmcpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ01vZGVsRm9ybUNvbXBvbmVudDo6aW5pdC0+ZmllbGRzJywgdGhpcy5maWVsZHMpO1xuICAgICAgICBjb25zb2xlLmxvZygnTW9kZWxGb3JtQ29tcG9uZW50Ojppbml0LT5rZXlzJywgdGhpcy5rZXlzKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5mb3JtID0gdGhpcy5jcmVhdGVGb3JtKHRoaXMuZmllbGRzKTtcblxuICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgdGhpcy5nZXRPYmplY3RCeUlkKHRoaXMuaWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldEtleXNGcm9tU3ViT2JqZWN0KGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZmllbGRzW2tleV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHRha2VzIGFuIGlkLCBhbmQgdGhlbiBjYWxscyB0aGUgZ3JhcGhRTFNlcnZpY2UgdG8gZ2V0IHRoZSBvYmplY3QgZnJvbSB0aGUgZGF0YWJhc2VcbiAgICpcbiAgICogQHBhcmFtIGlkIC0gVGhlIGlkIG9mIHRoZSBvYmplY3QgdG8gYmUgbG9hZGVkXG4gICAqL1xuICBnZXRPYmplY3RCeUlkKGlkOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5sb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZygnTW9kZWxGb3JtQ29tcG9uZW50OjpnZXRPYmplY3RCeUlkLT5pZCcsIGlkKTtcbiAgICAgIGNvbnNvbGUubG9nKCdNb2RlbEZvcm1Db21wb25lbnQ6OmdldE9iamVjdEJ5SWQtPnJlcXVlc3RGaWVsZHMnLCB0aGlzLmNyZWF0ZVJlcXVlc3RPYmplY3QodGhpcy5maWVsZHMpKTtcbiAgICB9XG5cbiAgICB0aGlzLmdyYXBoUUxTZXJ2aWNlXG4gICAgICAuZ3JhcGhRbCgnZ2V0JyArIHRoaXMuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRoaXMubW9kZWxOYW1lKSwge1xuICAgICAgICBhcmd1bWVudHM6IHsgaWQgfSxcbiAgICAgICAgZmllbGRzOiB0aGlzLmNyZWF0ZVJlcXVlc3RPYmplY3QodGhpcy5maWVsZHMpLFxuICAgICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuUVVFUlksXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmxvZ2dpbmcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdNb2RlbEZvcm1Db21wb25lbnQ6OmdldC0+dmFsdWUnLCByZXNwb25zZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyAuLi57fSwgLi4ucmVzcG9uc2UgfSk7XG5cbiAgICAgICAgICAvLyBQcm9jZXNzIHBhdGNoRmllbGRzIGZvciByZWZlcmVuY2UgaW5wdXRcbiAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmNvbmZpZykpIHtcbiAgICAgICAgICAgIC8vIElmIGl0IG5vdCBhbiBhcnJheVxuICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnW2tleV0/LnBhdGNoRmllbGQgJiYgIXRoaXMuZmllbGRzW2tleV0/LmlzTGlzdCkge1xuICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KGtleSkucGF0Y2hWYWx1ZShyZXNwb25zZVt0aGlzLmNvbmZpZ1trZXldPy5wYXRjaEZpZWxkXT8uaWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBJZiB2YWx1ZSBpcyBhbiBhcnJheVxuICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnW2tleV0/LnBhdGNoRmllbGQgJiYgdGhpcy5maWVsZHNba2V5XT8uaXNMaXN0KSB7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybS5nZXQoa2V5KS5wYXRjaFZhbHVlKHJlc3BvbnNlW3RoaXMuY29uZmlnW2tleV0/LnBhdGNoRmllbGRdPy5tYXAoKGUpID0+IGU/LmlkKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMubG9nZ2luZykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ01vZGVsRm9ybUNvbXBvbmVudDo6Z2V0T2JqZWN0QnlJZC0+cGF0Y2hlZEZvcm0nLCB0aGlzLmZvcm0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBvbiBsb2FkIG9iamVjdCcsIGVycik7XG4gICAgICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHRha2VzIGEgR3JhcGhRTCB0eXBlIGNvbGxlY3Rpb24gYW5kIHJldHVybnMgYW4gYXJyYXkgb2Ygc3RyaW5ncyBhbmQgb2JqZWN0c1xuICAgKlxuICAgKiBAcGFyYW0gZmllbGRzIC0gSUdyYXBoUUxUeXBlQ29sbGVjdGlvbiAtIFRoaXMgaXMgdGhlIG9iamVjdCB0aGF0IGlzIHJldHVybmVkIGZyb20gdGhlXG4gICAqIGludHJvc3BlY3Rpb24gcXVlcnkuXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIHN0cmluZ3MgYW5kIG9iamVjdHMuXG4gICAqL1xuICBjcmVhdGVSZXF1ZXN0T2JqZWN0KGZpZWxkczogSUdyYXBoUUxUeXBlQ29sbGVjdGlvbikge1xuICAgIGNvbnN0IHJlcXVlc3RGaWVsZHM6IGFueSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZmllbGRzKSkge1xuICAgICAgaWYgKGZpZWxkc1trZXldPy50eXBlKSB7XG4gICAgICAgIGlmICghdGhpcy5jb25maWdba2V5XT8ucGF0Y2hGaWVsZCkge1xuICAgICAgICAgIHJlcXVlc3RGaWVsZHMucHVzaChrZXkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlcXVlc3RGaWVsZHMucHVzaCh7IFt0aGlzLmNvbmZpZ1trZXldPy5wYXRjaEZpZWxkXTogWydpZCddIH0pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBzdWJrZXlzID0gdGhpcy5jcmVhdGVSZXF1ZXN0T2JqZWN0KGZpZWxkc1trZXldIGFzIElHcmFwaFFMVHlwZUNvbGxlY3Rpb24pO1xuICAgICAgICBjb25zdCByZXN1bHRPYmplY3QgPSB7fTtcbiAgICAgICAgcmVzdWx0T2JqZWN0W2tleV0gPSBzdWJrZXlzO1xuICAgICAgICByZXF1ZXN0RmllbGRzLnB1c2gocmVzdWx0T2JqZWN0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5sb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZygnTW9kZWxGb3JtQ29tcG9uZW50OjpjcmVhdGVSZXF1ZXN0T2JqZWN0LT5yZXF1ZXN0RmllbGRzJywgcmVxdWVzdEZpZWxkcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcXVlc3RGaWVsZHM7XG4gIH1cblxuICAvKipcbiAgICogSXQgdGFrZXMgYSBjb2xsZWN0aW9uIG9mIEdyYXBoUUwgdHlwZXMgYW5kIGNyZWF0ZXMgYSBmb3JtIGdyb3VwIHdpdGggYSBmb3JtIGNvbnRyb2wgZm9yIGVhY2ggdHlwZVxuICAgKlxuICAgKiBAcGFyYW0gZmllbGRzIC0gSUdyYXBoUUxUeXBlQ29sbGVjdGlvblxuICAgKi9cbiAgY3JlYXRlRm9ybShmaWVsZHM6IElHcmFwaFFMVHlwZUNvbGxlY3Rpb24pIHtcbiAgICBjb25zdCBncm91cDogYW55ID0ge307XG5cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhmaWVsZHMpKSB7XG4gICAgICBpZiAodmFsdWU/LnR5cGUpIHtcbiAgICAgICAgZ3JvdXBba2V5XSA9IG5ldyBGb3JtQ29udHJvbChcbiAgICAgICAgICB2YWx1ZT8udHlwZSA9PT0gJ0Zsb2F0JyA/IDAgOiAnJyxcbiAgICAgICAgICAodGhpcy5jb25maWdba2V5XSAmJiB0aGlzLmNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gdGhpcy5jb25maWdba2V5XT8ucmVxdWlyZWQgOiB2YWx1ZS5pc1JlcXVpcmVkKVxuICAgICAgICAgICAgPyBWYWxpZGF0b3JzLnJlcXVpcmVkXG4gICAgICAgICAgICA6IFtdXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBncm91cFtrZXldID0gdGhpcy5jcmVhdGVGb3JtKGZpZWxkc1trZXldIGFzIElHcmFwaFFMVHlwZUNvbGxlY3Rpb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmxvZ2dpbmcpIHtcbiAgICAgIGNvbnNvbGUubG9nKCdNb2RlbEZvcm1Db21wb25lbnQ6OmNyZWF0ZUZvcm0tPmdyb3VwJywgZ3JvdXApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgRm9ybUdyb3VwKGdyb3VwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBjYWxscyB0aGUgZ3JhcGhRTFNlcnZpY2UgdG8gZGVsZXRlIHRoZSBvYmplY3Qgd2l0aCB0aGUgaWQgb2YgdGhlIG9iamVjdCB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBlZGl0ZWRcbiAgICovXG4gIGRlbGV0ZU9iamVjdCgpIHtcbiAgICBpZiAoY29uZmlybSgnTcO2Y2h0ZXN0IGR1IGRhcyBPYmpla3Qgd2lya2xpY2ggbMO2c2NoZW4/JykpIHtcbiAgICAgIHRoaXMuZ3JhcGhRTFNlcnZpY2VcbiAgICAgICAgLmdyYXBoUWwoJ2RlbGV0ZScgKyB0aGlzLmNhcGl0YWxpemVGaXJzdExldHRlcih0aGlzLm1vZGVsTmFtZSksIHtcbiAgICAgICAgICBhcmd1bWVudHM6IHsgaWQ6IHRoaXMuaWQgfSxcbiAgICAgICAgICBmaWVsZHM6IFsnaWQnXSxcbiAgICAgICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuTVVUQVRJT04sXG4gICAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5maW5pc2hlZC5lbWl0KHRydWUpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIG9uIGRlbGV0ZSBvYmplY3QnLCBlcnIpO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJdCB0YWtlcyBhIHN0cmluZywgY2FwaXRhbGl6ZXMgdGhlIGZpcnN0IGxldHRlciwgYW5kIHJldHVybnMgdGhlIG1vZGlmaWVkIHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgc3RyaW5nIHRvIGNhcGl0YWxpemUuXG4gICAqIEByZXR1cm5zIFRoZSBmaXJzdCBsZXR0ZXIgb2YgdGhlIHN0cmluZyBpcyBiZWluZyBjYXBpdGFsaXplZCBhbmQgdGhlIHJlc3Qgb2YgdGhlIHN0cmluZyBpcyBiZWluZyByZXR1cm5lZC5cbiAgICovXG4gIGNhcGl0YWxpemVGaXJzdExldHRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdmFsdWUuc2xpY2UoMSk7XG4gIH1cblxuICAvKipcbiAgICogSXQgdGFrZXMgYW4gQWJzdHJhY3RDb250cm9sIGFuZCByZXR1cm5zIGEgRm9ybUNvbnRyb2xcbiAgICpcbiAgICogQHBhcmFtIGNvbnRyb2wgLSBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkXG4gICAqIEByZXR1cm5zIEEgRm9ybUNvbnRyb2xcbiAgICovXG4gIHRyYW5zZm9ybVRvQ29udHJvbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XG4gIH1cblxuICAvKipcbiAgICogSXQgdGFrZXMgdGhlIGZvcm0sIHZhbGlkYXRlcyBpdCwgYW5kIHRoZW4gc2VuZHMgaXQgdG8gdGhlIEdyYXBoUUwgc2VydmVyXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBpZCBvZiB0aGUgbmV3bHkgY3JlYXRlZCBvciB1cGRhdGVkIG9iamVjdC5cbiAgICovXG4gIHN1Ym1pdChzZWNyZXQgPSBmYWxzZSkge1xuICAgIGlmICghc2VjcmV0KSB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCAmJiAhc2VjcmV0KSB7XG4gICAgICB0aGlzLmZvcm1zU2VydmljZS52YWxpZGF0ZUFsbEZvcm1GaWVsZHModGhpcy5mb3JtIGFzIGFueSk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcGVyYXRpb24gPT09ICd1cGRhdGUnICYmICF0aGlzLmlkKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdJRCBpcyBtaXNzaW5nIGZvciB1cGRhdGUhJyk7XG4gICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5sb2dnaW5nKSB7XG4gICAgICBjb25zb2xlLmxvZygnTW9kZWxGb3JtQ29tcG9uZW50OjpzdWJtaXQtPmZvcm1WYWx1ZScsIHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgZGF0YSA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuZm9ybS52YWx1ZSk7XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoZGF0YSkpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKHRoaXMuY29uZmlnW2tleV0/LnJvbGVzID8gIXRoaXMudXNlci5oYXNBbGxSb2xlcyh0aGlzLmNvbmZpZ1trZXldPy5yb2xlcykgOiBmYWxzZSkgfHxcbiAgICAgICAgdGhpcy5jb25maWdba2V5XT8uZXhjbHVkZVxuICAgICAgKSB7XG4gICAgICAgIGRlbGV0ZSBkYXRhW2tleV07XG4gICAgICB9XG5cbiAgICAgIC8vIFNldCB0eXBlIGZvciBncmFwaHFsIG1ldGhvZFxuICAgICAgaWYgKHRoaXMuZmllbGRzW2tleV0/LnR5cGUgPT09ICdGbG9hdCcpIHtcbiAgICAgICAgZGF0YVtrZXldID0gTnVtYmVyKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmdyYXBoUUxTZXJ2aWNlXG4gICAgICAuZ3JhcGhRbCh0aGlzLm9wZXJhdGlvbiArIHRoaXMuY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKHRoaXMubW9kZWxOYW1lKSwge1xuICAgICAgICBhcmd1bWVudHM6IHRoaXMub3BlcmF0aW9uID09PSAndXBkYXRlJyA/IHsgaWQ6IHRoaXMuaWQsIGlucHV0OiBkYXRhIH0gOiB7IGlucHV0OiBkYXRhIH0sXG4gICAgICAgIGZpZWxkczogWydpZCddLFxuICAgICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuTVVUQVRJT04sXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGlmICghc2VjcmV0KSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZmluaXNoZWQuZW1pdCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgaWYgKCFzZWNyZXQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCBvbiAnICsgdGhpcy5vcGVyYXRpb24sIGVycik7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInctMTAwXCIgKm5nSWY9XCJmb3JtXCI+XG4gIDxoMj5cbiAgICB7eyBsYWJlbCA/IGxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKG1vZGVsTmFtZSkgfX0ge3sgb3BlcmF0aW9uID09PSAndXBkYXRlJyA/ICdiZWFyYmVpdGVuJyA6ICdlcnN0ZWxsZW4nIH19XG4gIDwvaDI+XG5cbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgPGJhc2UtbW9kZWwtZm9ybS1zdWJcbiAgICAgIFtmaWVsZHNdPVwiZmllbGRzXCJcbiAgICAgIFtjb25maWddPVwiY29uZmlnXCJcbiAgICAgIFtmb3JtXT1cImZvcm1cIlxuICAgICAgKGltYWdlQ2hhbmdlZCk9XCJpZCA/IHN1Ym1pdCh0cnVlKSA6IG51bGxcIlxuICAgID48L2Jhc2UtbW9kZWwtZm9ybS1zdWI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTRcIiBbbmdDbGFzc109XCJpZCAmJiBkZWxldGUgPyAnanVzdGlmeS1jb250ZW50LWJldHdlZW4nIDogJ2p1c3RpZnktY29udGVudC1lbmQnXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiaWQgJiYgZGVsZXRlXCI+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWRhbmdlclwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiZGVsZXRlT2JqZWN0KClcIj5Mw7ZzY2hlbjwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzdWJtaXQoZmFsc2UpXCIgKm5nSWY9XCIhbG9hZGluZ1wiPlxuICAgICAgICAgIHt7IG9wZXJhdGlvbiA9PT0gJ2NyZWF0ZScgPyAnRXJzdGVsbGVuJyA6ICdTcGVpY2hlcm4nIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIGRpc2FibGVkICpuZ0lmPVwibG9hZGluZ1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc21cIiByb2xlPVwic3RhdHVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuICAgICAgICAgIHt7IG9wZXJhdGlvbiA9PT0gJ2NyZWF0ZScgPyAnRXJzdGVsbGVuJyA6ICdTcGVpY2hlcm4nIH19Li4uXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbjwvZGl2PlxuIl19
@@ -22,7 +22,7 @@ export class ModelFormSubComponent {
22
22
  const unsortedKeys = Object.keys(this.fields);
23
23
  // Sort keys by config order
24
24
  this.keys = unsortedKeys.sort((a, b) => {
25
- return (this.config[b]?.order ? this.config[b]?.order : 0) - (this.config[a]?.order ? this.config[a]?.order : 0);
25
+ return (this.config[a]?.order ? this.config[a]?.order : 0) - (this.config[b]?.order ? this.config[b]?.order : 0);
26
26
  });
27
27
  // Set user for roles check
28
28
  this.user = BasicUser.map(this.authService.currentUser);
@@ -79,4 +79,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
79
79
  }], imageChanged: [{
80
80
  type: Output
81
81
  }] } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZm9ybS1zdWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9iYXNlLWNvbXBvbmVudHMvY29tcG9uZW50cy9tb2RlbC1mb3JtLXN1Yi9tb2RlbC1mb3JtLXN1Yi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL21vZGVsLWZvcm0tc3ViL21vZGVsLWZvcm0tc3ViLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFlLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7OztBQU9wRSxNQUFNLE9BQU8scUJBQXFCO0lBVWhDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBUG5DLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFFaEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTVDLFNBQUksR0FBYSxFQUFFLENBQUM7SUFHMkIsQ0FBQztJQUVoRCxRQUFRO1FBQ04sV0FBVztRQUNYLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlDLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ILENBQUMsQ0FBQyxDQUFDO1FBRUgsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHFCQUFxQixDQUFDLEtBQWE7UUFDakMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILG9CQUFvQixDQUFDLE1BQWEsRUFBRSxNQUFNLEdBQUcsRUFBRTtRQUM3QyxPQUFPLE1BQU07YUFDVixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNaLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDVCxPQUFPO2dCQUNMLEtBQUssRUFBRSxDQUFDO2dCQUNSLElBQUksRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyRCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxrQkFBa0IsQ0FBQyxPQUEyQztRQUM1RCxPQUFPLE9BQXNCLENBQUM7SUFDaEMsQ0FBQzs7a0hBL0RVLHFCQUFxQjtzR0FBckIscUJBQXFCLG9LQ1RsQyxvOVBBbUxBLHFDRDFLYSxxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxxQkFBcUI7a0dBS3RCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIEJhc2ljVXNlciB9IGZyb20gJ0BsZW5uZS50ZWNoL25nLWJhc2Uvc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFzZS1tb2RlbC1mb3JtLXN1YicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC1mb3JtLXN1Yi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGVsLWZvcm0tc3ViLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsRm9ybVN1YkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGZpZWxkczogYW55O1xuICBASW5wdXQoKSBmb3JtOiBhbnk7XG4gIEBJbnB1dCgpIGNvbmZpZzogYW55ID0ge307XG5cbiAgQE91dHB1dCgpIGltYWdlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBrZXlzOiBzdHJpbmdbXSA9IFtdO1xuICB1c2VyOiBCYXNpY1VzZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gR2V0IGtleXNcbiAgICBjb25zdCB1bnNvcnRlZEtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmZpZWxkcyk7XG5cbiAgICAvLyBTb3J0IGtleXMgYnkgY29uZmlnIG9yZGVyXG4gICAgdGhpcy5rZXlzID0gdW5zb3J0ZWRLZXlzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIHJldHVybiAodGhpcy5jb25maWdbYl0/Lm9yZGVyID8gdGhpcy5jb25maWdbYl0/Lm9yZGVyIDogMCkgLSAodGhpcy5jb25maWdbYV0/Lm9yZGVyID8gdGhpcy5jb25maWdbYV0/Lm9yZGVyIDogMCk7XG4gICAgfSk7XG5cbiAgICAvLyBTZXQgdXNlciBmb3Igcm9sZXMgY2hlY2tcbiAgICB0aGlzLnVzZXIgPSBCYXNpY1VzZXIubWFwKHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFVzZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHRha2VzIGEgc3RyaW5nLCBjYXBpdGFsaXplcyB0aGUgZmlyc3QgbGV0dGVyLCBhbmQgcmV0dXJucyB0aGUgbmV3IHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgc3RyaW5nIHRoYXQgeW91IHdhbnQgdG8gY2FwaXRhbGl6ZSB0aGUgZmlyc3QgbGV0dGVyIG9mLlxuICAgKiBAcmV0dXJucyBUaGUgZmlyc3QgbGV0dGVyIG9mIHRoZSBzdHJpbmcgaXMgYmVpbmcgY2FwaXRhbGl6ZWQgYW5kIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcgaXMgYmVpbmcgcmV0dXJuZWQuXG4gICAqL1xuICBjYXBpdGFsaXplRmlyc3RMZXR0ZXIodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbHVlLnNsaWNlKDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHRha2VzIGFuIGFycmF5IG9mIHZhbHVlcyBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiBvYmplY3RzIHdpdGggYSB2YWx1ZSBhbmQgdGV4dCBwcm9wZXJ0eVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVzIC0gYW55W10gLSB0aGUgYXJyYXkgb2YgdmFsdWVzIHRoYXQgeW91IHdhbnQgdG8gY29udmVydCB0byBhIHNlbGVjdGFibGUgbGlzdFxuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCBhIHZhbHVlIGFuZCB0ZXh0IHByb3BlcnR5LlxuICAgKi9cbiAgcHJlcGFyZUVudW1Gb3JTZWxlY3QodmFsdWVzOiBhbnlbXSwgY29uZmlnID0ge30pIHtcbiAgICByZXR1cm4gdmFsdWVzXG4gICAgICAuZmlsdGVyKChpKSA9PiB7XG4gICAgICAgIHJldHVybiAhKGNvbmZpZyAmJiBjb25maWdbaV0/LnJvbGVzICYmICF0aGlzLnVzZXIuaGFzQWxsUm9sZXMoY29uZmlnW2ldPy5yb2xlcykpO1xuICAgICAgfSlcbiAgICAgIC5tYXAoKGUpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogZSxcbiAgICAgICAgICB0ZXh0OiBjb25maWcgJiYgY29uZmlnW2VdPy50ZXh0ID8gY29uZmlnW2VdLnRleHQgOiBlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSXQgdGFrZXMgYW4gQWJzdHJhY3RDb250cm9sIGFuZCByZXR1cm5zIGEgRm9ybUNvbnRyb2xcbiAgICpcbiAgICogQHBhcmFtIGNvbnRyb2wgLSBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkXG4gICAqIEByZXR1cm5zIEEgRm9ybUNvbnRyb2xcbiAgICovXG4gIHRyYW5zZm9ybVRvQ29udHJvbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nRm9yPVwibGV0IGtleSBvZiBrZXlzXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmllbGRzW2tleV0/LnR5cGUgJiYgKGNvbmZpZ1trZXldPy5yb2xlcyA/IHVzZXI/Lmhhc0FsbFJvbGVzKGNvbmZpZ1trZXldPy5yb2xlcykgOiB0cnVlKVwiPlxuICAgIDxmaWVsZHNldCBjbGFzcz1cImJvcmRlciByb3VuZGVkLTMgcC0zXCI+XG4gICAgICA8bGVnZW5kIGNsYXNzPVwiZmxvYXQtbm9uZSB3LWF1dG8gcHgtM1wiPlxuICAgICAgICB7eyBjb25maWdba2V5XT8ubGFiZWwgPyBjb25maWdba2V5XS5sYWJlbCA6IGNhcGl0YWxpemVGaXJzdExldHRlcihrZXkpIH19XG4gICAgICA8L2xlZ2VuZD5cbiAgICAgIDxiYXNlLW1vZGVsLWZvcm0tc3ViXG4gICAgICAgIFtmaWVsZHNdPVwiZmllbGRzW2tleV1cIlxuICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1trZXldPy5maWVsZHMgfHwge31cIlxuICAgICAgICBbZm9ybV09XCJmb3JtLmdldChrZXkpXCJcbiAgICAgID48L2Jhc2UtbW9kZWwtZm9ybS1zdWI+XG4gICAgPC9maWVsZHNldD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpZWxkc1trZXldPy50eXBlICYmIChjb25maWdba2V5XT8ucm9sZXMgPyB1c2VyPy5oYXNBbGxSb2xlcyhjb25maWdba2V5XT8ucm9sZXMpIDogdHJ1ZSlcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGRzW2tleV0/LmlzRW51bVwiPlxuICAgICAgPGJhc2Utc2VsZWN0XG4gICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWdba2V5XT8ucGxhY2Vob2xkZXIgfHwgJ0JpdHRlIGVpbmVuIFdlcnQgYXVzd8OkaGxlbidcIlxuICAgICAgICBbb3B0aW9uc109XCJwcmVwYXJlRW51bUZvclNlbGVjdChmaWVsZHNba2V5XT8udmFsaWRFbnVtcywgY29uZmlnW2tleV0/LmVudW1WYWx1ZXMpXCJcbiAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJjb25maWdba2V5XSAmJiBjb25maWdba2V5XT8ucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1trZXldPy5yZXF1aXJlZCA6IGZpZWxkc1trZXldLmlzUmVxdWlyZWRcIlxuICAgICAgPjwvYmFzZS1zZWxlY3Q+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZpZWxkc1trZXldPy5pc0VudW1cIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbmZpZ1trZXldPy50eXBlID8gY29uZmlnW2tleV0/LnR5cGUgOiBmaWVsZHNba2V5XT8udHlwZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInU3RyaW5nJ1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZHNba2V5XT8uaXNMaXN0ICYmICFjb25maWdba2V5XT8uZXhjbHVkZVwiPlxuICAgICAgICAgICAgPGJhc2UtdGFnc1xuICAgICAgICAgICAgICBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnW2tleV0/LnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgICBjb25maWdba2V5XSAmJiBjb25maWdba2V5XT8ucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1trZXldPy5yZXF1aXJlZCA6IGZpZWxkc1trZXldLmlzUmVxdWlyZWRcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L2Jhc2UtdGFncz5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmllbGRzW2tleV0/LmlzTGlzdCAmJiAhY29uZmlnW2tleV0/LmV4Y2x1ZGVcIj5cbiAgICAgICAgICAgIDxiYXNlLWlucHV0XG4gICAgICAgICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWdba2V5XT8ucGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIlxuICAgICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvYmFzZS1pbnB1dD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0ltYWdlJ1wiPlxuICAgICAgICAgIDxiYXNlLXVwbG9hZC1pbWFnZVxuICAgICAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICBbdXJsXT1cImNvbmZpZ1trZXldPy51cmxcIlxuICAgICAgICAgICAgW3BhdGhdPVwiY29uZmlnW2tleV0/LnBhdGggfHwgJy9maWxlcy8nXCJcbiAgICAgICAgICAgIFt1cGxvYWRQYXRoXT1cImNvbmZpZ1trZXldPy51cGxvYWRQYXRoIHx8ICcvZmlsZXMvdXBsb2FkJ1wiXG4gICAgICAgICAgICBbZGVsZXRlUGF0aF09XCJjb25maWdba2V5XT8uZGVsZXRlUGF0aCB8fCAnL2ZpbGVzLydcIlxuICAgICAgICAgICAgW3N1cHBvcnRUZXh0XT1cImNvbmZpZ1trZXldPy5zdXBwb3J0VGV4dCB8fCAnVW50ZXJzdMO8dHp0ZSBGb3JtYXRlOiBKUEVHLCBKUEcsIFBORydcIlxuICAgICAgICAgICAgW2RyYWdUZXh0XT1cImNvbmZpZ1trZXldPy5kcmFnVGV4dCB8fCAnRHJhZyAmIERyb3AnXCJcbiAgICAgICAgICAgIFt2YWxpZEV4dGVuc2lvbnNdPVwiY29uZmlnW2tleV0/LnZhbGlkRXh0ZW5zaW9ucyB8fCBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL3BuZyddXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgY29uZmlnW2tleV0gJiYgY29uZmlnW2tleV0/LnJlcXVpcmVkICE9PSB1bmRlZmluZWQgPyBjb25maWdba2V5XT8ucmVxdWlyZWQgOiBmaWVsZHNba2V5XS5pc1JlcXVpcmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGltYWdlRGVsZXRlZCk9XCJpbWFnZUNoYW5nZWQuZW1pdCgpXCJcbiAgICAgICAgICAgIChpbWFnZVVwbG9hZGVkKT1cImltYWdlQ2hhbmdlZC5lbWl0KClcIlxuICAgICAgICAgID48L2Jhc2UtdXBsb2FkLWltYWdlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInUmVmZXJlbmNlJ1wiPlxuICAgICAgICAgIDxiYXNlLXJlZmVuY2UtaW5wdXRcbiAgICAgICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgIFtpc0xpc3RdPVwiZmllbGRzW2tleV0/LmlzTGlzdFwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgIFttZXRob2RdPVwiY29uZmlnW2tleV0/Lm1ldGhvZCB8fCAnZmluZCdcIlxuICAgICAgICAgICAgW2ZpZWxkc109XCJjb25maWdba2V5XT8uZmllbGRzIHx8IFsnaWQnLCAnbmFtZSddXCJcbiAgICAgICAgICAgIFt2YWx1ZUZpZWxkXT1cImNvbmZpZ1trZXldPy52YWx1ZUZpZWxkIHx8ICdpZCdcIlxuICAgICAgICAgICAgW25hbWVGaWVsZF09XCJjb25maWdba2V5XT8ubmFtZUZpZWxkIHx8ICduYW1lJ1wiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9iYXNlLXJlZmVuY2UtaW5wdXQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidCb29sZWFuJ1wiPlxuICAgICAgICAgIDxiYXNlLWNoZWNrYm94XG4gICAgICAgICAgICBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgIFtuYW1lXT1cImtleVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgY29uZmlnW2tleV0gJiYgY29uZmlnW2tleV0/LnJlcXVpcmVkICE9PSB1bmRlZmluZWQgPyBjb25maWdba2V5XT8ucmVxdWlyZWQgOiBmaWVsZHNba2V5XS5pc1JlcXVpcmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L2Jhc2UtY2hlY2tib3g+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidMb25nVGV4dCdcIj5cbiAgICAgICAgICA8YmFzZS10ZXh0YXJlYVxuICAgICAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9iYXNlLXRleHRhcmVhPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInRmxvYXQnXCI+XG4gICAgICAgICAgPGJhc2UtaW5wdXRcbiAgICAgICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJjb25maWdba2V5XT8ubGFiZWwgPyBjb25maWdba2V5XS5sYWJlbCA6IGNhcGl0YWxpemVGaXJzdExldHRlcihrZXkpXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWdba2V5XT8ucGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9iYXNlLWlucHV0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInUGFzc3dvcmQnXCI+XG4gICAgICAgICAgPGJhc2UtaW5wdXRcbiAgICAgICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgIFt0eXBlXT1cIidwYXNzd29yZCdcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZ1trZXldPy5wbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgY29uZmlnW2tleV0gJiYgY29uZmlnW2tleV0/LnJlcXVpcmVkICE9PSB1bmRlZmluZWQgPyBjb25maWdba2V5XT8ucmVxdWlyZWQgOiBmaWVsZHNba2V5XS5pc1JlcXVpcmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L2Jhc2UtaW5wdXQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidDb2xvcidcIj5cbiAgICAgICAgICA8YmFzZS1pbnB1dFxuICAgICAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgW3R5cGVdPVwiJ2NvbG9yJ1wiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnW2tleV0/LnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIFtjb250cm9sXT1cInRyYW5zZm9ybVRvQ29udHJvbChmb3JtPy5nZXQoa2V5KSlcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cIlxuICAgICAgICAgICAgICBjb25maWdba2V5XSAmJiBjb25maWdba2V5XT8ucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1trZXldPy5yZXF1aXJlZCA6IGZpZWxkc1trZXldLmlzUmVxdWlyZWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvYmFzZS1pbnB1dD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0RhdGVUaW1lJ1wiPlxuICAgICAgICAgIDxiYXNlLWlucHV0XG4gICAgICAgICAgICBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgIFtuYW1lXT1cImtleVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnW2tleV0/LnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIFt0eXBlXT1cIidkYXRldGltZS1sb2NhbCdcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9iYXNlLWlucHV0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtZm9ybS1zdWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9iYXNlLWNvbXBvbmVudHMvY29tcG9uZW50cy9tb2RlbC1mb3JtLXN1Yi9tb2RlbC1mb3JtLXN1Yi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL21vZGVsLWZvcm0tc3ViL21vZGVsLWZvcm0tc3ViLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFlLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7OztBQU9wRSxNQUFNLE9BQU8scUJBQXFCO0lBVWhDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBUG5DLFdBQU0sR0FBUSxFQUFFLENBQUM7UUFFaEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTVDLFNBQUksR0FBYSxFQUFFLENBQUM7SUFHMkIsQ0FBQztJQUVoRCxRQUFRO1FBQ04sV0FBVztRQUNYLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlDLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25ILENBQUMsQ0FBQyxDQUFDO1FBRUgsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHFCQUFxQixDQUFDLEtBQWE7UUFDakMsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILG9CQUFvQixDQUFDLE1BQWEsRUFBRSxNQUFNLEdBQUcsRUFBRTtRQUM3QyxPQUFPLE1BQU07YUFDVixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNaLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkYsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDVCxPQUFPO2dCQUNMLEtBQUssRUFBRSxDQUFDO2dCQUNSLElBQUksRUFBRSxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNyRCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxrQkFBa0IsQ0FBQyxPQUEyQztRQUM1RCxPQUFPLE9BQXNCLENBQUM7SUFDaEMsQ0FBQzs7a0hBL0RVLHFCQUFxQjtzR0FBckIscUJBQXFCLG9LQ1RsQyxvOVBBbUxBLHFDRDFLYSxxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxxQkFBcUI7a0dBS3RCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQXV0aFNlcnZpY2UsIEJhc2ljVXNlciB9IGZyb20gJ0BsZW5uZS50ZWNoL25nLWJhc2Uvc2hhcmVkJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFzZS1tb2RlbC1mb3JtLXN1YicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC1mb3JtLXN1Yi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGVsLWZvcm0tc3ViLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsRm9ybVN1YkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGZpZWxkczogYW55O1xuICBASW5wdXQoKSBmb3JtOiBhbnk7XG4gIEBJbnB1dCgpIGNvbmZpZzogYW55ID0ge307XG5cbiAgQE91dHB1dCgpIGltYWdlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBrZXlzOiBzdHJpbmdbXSA9IFtdO1xuICB1c2VyOiBCYXNpY1VzZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gR2V0IGtleXNcbiAgICBjb25zdCB1bnNvcnRlZEtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmZpZWxkcyk7XG5cbiAgICAvLyBTb3J0IGtleXMgYnkgY29uZmlnIG9yZGVyXG4gICAgdGhpcy5rZXlzID0gdW5zb3J0ZWRLZXlzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIHJldHVybiAodGhpcy5jb25maWdbYV0/Lm9yZGVyID8gdGhpcy5jb25maWdbYV0/Lm9yZGVyIDogMCkgLSAodGhpcy5jb25maWdbYl0/Lm9yZGVyID8gdGhpcy5jb25maWdbYl0/Lm9yZGVyIDogMCk7XG4gICAgfSk7XG5cbiAgICAvLyBTZXQgdXNlciBmb3Igcm9sZXMgY2hlY2tcbiAgICB0aGlzLnVzZXIgPSBCYXNpY1VzZXIubWFwKHRoaXMuYXV0aFNlcnZpY2UuY3VycmVudFVzZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHRha2VzIGEgc3RyaW5nLCBjYXBpdGFsaXplcyB0aGUgZmlyc3QgbGV0dGVyLCBhbmQgcmV0dXJucyB0aGUgbmV3IHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgc3RyaW5nIHRoYXQgeW91IHdhbnQgdG8gY2FwaXRhbGl6ZSB0aGUgZmlyc3QgbGV0dGVyIG9mLlxuICAgKiBAcmV0dXJucyBUaGUgZmlyc3QgbGV0dGVyIG9mIHRoZSBzdHJpbmcgaXMgYmVpbmcgY2FwaXRhbGl6ZWQgYW5kIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcgaXMgYmVpbmcgcmV0dXJuZWQuXG4gICAqL1xuICBjYXBpdGFsaXplRmlyc3RMZXR0ZXIodmFsdWU6IHN0cmluZykge1xuICAgIHJldHVybiB2YWx1ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHZhbHVlLnNsaWNlKDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIEl0IHRha2VzIGFuIGFycmF5IG9mIHZhbHVlcyBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiBvYmplY3RzIHdpdGggYSB2YWx1ZSBhbmQgdGV4dCBwcm9wZXJ0eVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWVzIC0gYW55W10gLSB0aGUgYXJyYXkgb2YgdmFsdWVzIHRoYXQgeW91IHdhbnQgdG8gY29udmVydCB0byBhIHNlbGVjdGFibGUgbGlzdFxuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqIEByZXR1cm5zIEFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCBhIHZhbHVlIGFuZCB0ZXh0IHByb3BlcnR5LlxuICAgKi9cbiAgcHJlcGFyZUVudW1Gb3JTZWxlY3QodmFsdWVzOiBhbnlbXSwgY29uZmlnID0ge30pIHtcbiAgICByZXR1cm4gdmFsdWVzXG4gICAgICAuZmlsdGVyKChpKSA9PiB7XG4gICAgICAgIHJldHVybiAhKGNvbmZpZyAmJiBjb25maWdbaV0/LnJvbGVzICYmICF0aGlzLnVzZXIuaGFzQWxsUm9sZXMoY29uZmlnW2ldPy5yb2xlcykpO1xuICAgICAgfSlcbiAgICAgIC5tYXAoKGUpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogZSxcbiAgICAgICAgICB0ZXh0OiBjb25maWcgJiYgY29uZmlnW2VdPy50ZXh0ID8gY29uZmlnW2VdLnRleHQgOiBlLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSXQgdGFrZXMgYW4gQWJzdHJhY3RDb250cm9sIGFuZCByZXR1cm5zIGEgRm9ybUNvbnRyb2xcbiAgICpcbiAgICogQHBhcmFtIGNvbnRyb2wgLSBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkXG4gICAqIEByZXR1cm5zIEEgRm9ybUNvbnRyb2xcbiAgICovXG4gIHRyYW5zZm9ybVRvQ29udHJvbChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGNvbnRyb2wgYXMgRm9ybUNvbnRyb2w7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nRm9yPVwibGV0IGtleSBvZiBrZXlzXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmllbGRzW2tleV0/LnR5cGUgJiYgKGNvbmZpZ1trZXldPy5yb2xlcyA/IHVzZXI/Lmhhc0FsbFJvbGVzKGNvbmZpZ1trZXldPy5yb2xlcykgOiB0cnVlKVwiPlxuICAgIDxmaWVsZHNldCBjbGFzcz1cImJvcmRlciByb3VuZGVkLTMgcC0zXCI+XG4gICAgICA8bGVnZW5kIGNsYXNzPVwiZmxvYXQtbm9uZSB3LWF1dG8gcHgtM1wiPlxuICAgICAgICB7eyBjb25maWdba2V5XT8ubGFiZWwgPyBjb25maWdba2V5XS5sYWJlbCA6IGNhcGl0YWxpemVGaXJzdExldHRlcihrZXkpIH19XG4gICAgICA8L2xlZ2VuZD5cbiAgICAgIDxiYXNlLW1vZGVsLWZvcm0tc3ViXG4gICAgICAgIFtmaWVsZHNdPVwiZmllbGRzW2tleV1cIlxuICAgICAgICBbY29uZmlnXT1cImNvbmZpZ1trZXldPy5maWVsZHMgfHwge31cIlxuICAgICAgICBbZm9ybV09XCJmb3JtLmdldChrZXkpXCJcbiAgICAgID48L2Jhc2UtbW9kZWwtZm9ybS1zdWI+XG4gICAgPC9maWVsZHNldD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpZWxkc1trZXldPy50eXBlICYmIChjb25maWdba2V5XT8ucm9sZXMgPyB1c2VyPy5oYXNBbGxSb2xlcyhjb25maWdba2V5XT8ucm9sZXMpIDogdHJ1ZSlcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGRzW2tleV0/LmlzRW51bVwiPlxuICAgICAgPGJhc2Utc2VsZWN0XG4gICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWdba2V5XT8ucGxhY2Vob2xkZXIgfHwgJ0JpdHRlIGVpbmVuIFdlcnQgYXVzd8OkaGxlbidcIlxuICAgICAgICBbb3B0aW9uc109XCJwcmVwYXJlRW51bUZvclNlbGVjdChmaWVsZHNba2V5XT8udmFsaWRFbnVtcywgY29uZmlnW2tleV0/LmVudW1WYWx1ZXMpXCJcbiAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJjb25maWdba2V5XSAmJiBjb25maWdba2V5XT8ucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1trZXldPy5yZXF1aXJlZCA6IGZpZWxkc1trZXldLmlzUmVxdWlyZWRcIlxuICAgICAgPjwvYmFzZS1zZWxlY3Q+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWZpZWxkc1trZXldPy5pc0VudW1cIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbmZpZ1trZXldPy50eXBlID8gY29uZmlnW2tleV0/LnR5cGUgOiBmaWVsZHNba2V5XT8udHlwZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInU3RyaW5nJ1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZHNba2V5XT8uaXNMaXN0ICYmICFjb25maWdba2V5XT8uZXhjbHVkZVwiPlxuICAgICAgICAgICAgPGJhc2UtdGFnc1xuICAgICAgICAgICAgICBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnW2tleV0/LnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgICBjb25maWdba2V5XSAmJiBjb25maWdba2V5XT8ucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1trZXldPy5yZXF1aXJlZCA6IGZpZWxkc1trZXldLmlzUmVxdWlyZWRcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L2Jhc2UtdGFncz5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZmllbGRzW2tleV0/LmlzTGlzdCAmJiAhY29uZmlnW2tleV0/LmV4Y2x1ZGVcIj5cbiAgICAgICAgICAgIDxiYXNlLWlucHV0XG4gICAgICAgICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWdba2V5XT8ucGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICAgICAgICBbdHlwZV09XCIndGV4dCdcIlxuICAgICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIlxuICAgICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPjwvYmFzZS1pbnB1dD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0ltYWdlJ1wiPlxuICAgICAgICAgIDxiYXNlLXVwbG9hZC1pbWFnZVxuICAgICAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICBbdXJsXT1cImNvbmZpZ1trZXldPy51cmxcIlxuICAgICAgICAgICAgW3BhdGhdPVwiY29uZmlnW2tleV0/LnBhdGggfHwgJy9maWxlcy8nXCJcbiAgICAgICAgICAgIFt1cGxvYWRQYXRoXT1cImNvbmZpZ1trZXldPy51cGxvYWRQYXRoIHx8ICcvZmlsZXMvdXBsb2FkJ1wiXG4gICAgICAgICAgICBbZGVsZXRlUGF0aF09XCJjb25maWdba2V5XT8uZGVsZXRlUGF0aCB8fCAnL2ZpbGVzLydcIlxuICAgICAgICAgICAgW3N1cHBvcnRUZXh0XT1cImNvbmZpZ1trZXldPy5zdXBwb3J0VGV4dCB8fCAnVW50ZXJzdMO8dHp0ZSBGb3JtYXRlOiBKUEVHLCBKUEcsIFBORydcIlxuICAgICAgICAgICAgW2RyYWdUZXh0XT1cImNvbmZpZ1trZXldPy5kcmFnVGV4dCB8fCAnRHJhZyAmIERyb3AnXCJcbiAgICAgICAgICAgIFt2YWxpZEV4dGVuc2lvbnNdPVwiY29uZmlnW2tleV0/LnZhbGlkRXh0ZW5zaW9ucyB8fCBbJ2ltYWdlL2pwZWcnLCAnaW1hZ2UvanBnJywgJ2ltYWdlL3BuZyddXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgY29uZmlnW2tleV0gJiYgY29uZmlnW2tleV0/LnJlcXVpcmVkICE9PSB1bmRlZmluZWQgPyBjb25maWdba2V5XT8ucmVxdWlyZWQgOiBmaWVsZHNba2V5XS5pc1JlcXVpcmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGltYWdlRGVsZXRlZCk9XCJpbWFnZUNoYW5nZWQuZW1pdCgpXCJcbiAgICAgICAgICAgIChpbWFnZVVwbG9hZGVkKT1cImltYWdlQ2hhbmdlZC5lbWl0KClcIlxuICAgICAgICAgID48L2Jhc2UtdXBsb2FkLWltYWdlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInUmVmZXJlbmNlJ1wiPlxuICAgICAgICAgIDxiYXNlLXJlZmVuY2UtaW5wdXRcbiAgICAgICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgIFtpc0xpc3RdPVwiZmllbGRzW2tleV0/LmlzTGlzdFwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgIFttZXRob2RdPVwiY29uZmlnW2tleV0/Lm1ldGhvZCB8fCAnZmluZCdcIlxuICAgICAgICAgICAgW2ZpZWxkc109XCJjb25maWdba2V5XT8uZmllbGRzIHx8IFsnaWQnLCAnbmFtZSddXCJcbiAgICAgICAgICAgIFt2YWx1ZUZpZWxkXT1cImNvbmZpZ1trZXldPy52YWx1ZUZpZWxkIHx8ICdpZCdcIlxuICAgICAgICAgICAgW25hbWVGaWVsZF09XCJjb25maWdba2V5XT8ubmFtZUZpZWxkIHx8ICduYW1lJ1wiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9iYXNlLXJlZmVuY2UtaW5wdXQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidCb29sZWFuJ1wiPlxuICAgICAgICAgIDxiYXNlLWNoZWNrYm94XG4gICAgICAgICAgICBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgIFtuYW1lXT1cImtleVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgY29uZmlnW2tleV0gJiYgY29uZmlnW2tleV0/LnJlcXVpcmVkICE9PSB1bmRlZmluZWQgPyBjb25maWdba2V5XT8ucmVxdWlyZWQgOiBmaWVsZHNba2V5XS5pc1JlcXVpcmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L2Jhc2UtY2hlY2tib3g+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidMb25nVGV4dCdcIj5cbiAgICAgICAgICA8YmFzZS10ZXh0YXJlYVxuICAgICAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9iYXNlLXRleHRhcmVhPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInRmxvYXQnXCI+XG4gICAgICAgICAgPGJhc2UtaW5wdXRcbiAgICAgICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJjb25maWdba2V5XT8ubGFiZWwgPyBjb25maWdba2V5XS5sYWJlbCA6IGNhcGl0YWxpemVGaXJzdExldHRlcihrZXkpXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjb25maWdba2V5XT8ucGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9iYXNlLWlucHV0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInUGFzc3dvcmQnXCI+XG4gICAgICAgICAgPGJhc2UtaW5wdXRcbiAgICAgICAgICAgIFtpZF09XCJrZXlcIlxuICAgICAgICAgICAgW25hbWVdPVwia2V5XCJcbiAgICAgICAgICAgIFt0eXBlXT1cIidwYXNzd29yZCdcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpZ1trZXldPy5sYWJlbCA/IGNvbmZpZ1trZXldLmxhYmVsIDogY2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGtleSlcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImNvbmZpZ1trZXldPy5wbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgICAgICAgICBbY29udHJvbF09XCJ0cmFuc2Zvcm1Ub0NvbnRyb2woZm9ybT8uZ2V0KGtleSkpXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJcbiAgICAgICAgICAgICAgY29uZmlnW2tleV0gJiYgY29uZmlnW2tleV0/LnJlcXVpcmVkICE9PSB1bmRlZmluZWQgPyBjb25maWdba2V5XT8ucmVxdWlyZWQgOiBmaWVsZHNba2V5XS5pc1JlcXVpcmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L2Jhc2UtaW5wdXQ+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidDb2xvcidcIj5cbiAgICAgICAgICA8YmFzZS1pbnB1dFxuICAgICAgICAgICAgW2lkXT1cImtleVwiXG4gICAgICAgICAgICBbbmFtZV09XCJrZXlcIlxuICAgICAgICAgICAgW3R5cGVdPVwiJ2NvbG9yJ1wiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnW2tleV0/LnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIFtjb250cm9sXT1cInRyYW5zZm9ybVRvQ29udHJvbChmb3JtPy5nZXQoa2V5KSlcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cIlxuICAgICAgICAgICAgICBjb25maWdba2V5XSAmJiBjb25maWdba2V5XT8ucmVxdWlyZWQgIT09IHVuZGVmaW5lZCA/IGNvbmZpZ1trZXldPy5yZXF1aXJlZCA6IGZpZWxkc1trZXldLmlzUmVxdWlyZWRcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgPjwvYmFzZS1pbnB1dD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ0RhdGVUaW1lJ1wiPlxuICAgICAgICAgIDxiYXNlLWlucHV0XG4gICAgICAgICAgICBbaWRdPVwia2V5XCJcbiAgICAgICAgICAgIFtuYW1lXT1cImtleVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiY29uZmlnW2tleV0/LmxhYmVsID8gY29uZmlnW2tleV0ubGFiZWwgOiBjYXBpdGFsaXplRmlyc3RMZXR0ZXIoa2V5KVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29uZmlnW2tleV0/LnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIFt0eXBlXT1cIidkYXRldGltZS1sb2NhbCdcIlxuICAgICAgICAgICAgW2NvbnRyb2xdPVwidHJhbnNmb3JtVG9Db250cm9sKGZvcm0/LmdldChrZXkpKVwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwiXG4gICAgICAgICAgICAgIGNvbmZpZ1trZXldICYmIGNvbmZpZ1trZXldPy5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkID8gY29uZmlnW2tleV0/LnJlcXVpcmVkIDogZmllbGRzW2tleV0uaXNSZXF1aXJlZFxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9iYXNlLWlucHV0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
@@ -125,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImpor
125
125
  }], required: [{
126
126
  type: Input
127
127
  }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3RhZ3MvdGFncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3RhZ3MvdGFncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVFqRCxNQUFNLE9BQU8sYUFBYTtJQUwxQjtRQVFXLFVBQUssR0FBWSxFQUFFLENBQUM7UUFDcEIsZ0JBQVcsR0FBWSxFQUFFLENBQUM7UUFJMUIsWUFBTyxHQUFjLEVBQUUsQ0FBQztRQUN4QixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQixlQUFVLEdBQUcsRUFBRSxDQUFDO0tBNkZqQjtJQTFGQzs7OztPQUlHO0lBQ0gsUUFBUSxDQUFDLEtBQW9CO1FBQzNCLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDdEUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLE9BQU87U0FDUjthQUFNO1lBQ0wsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtnQkFDOUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDOUI7U0FDRjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gs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Q0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztTQUNyQzthQUFNO1lBQ0wsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztZQUM5QixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDVDtJQUNILENBQUM7OzBHQXhHVSxhQUFhOzhGQUFiLGFBQWEsaVNDUjFCLDB1Q0FnQ0E7MkZEeEJhLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsV0FBVzs4QkFLWixFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYXNlLXRhZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFncy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhZ3MuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFnc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlPzogc3RyaW5nO1xuICBASW5wdXQoKSB0YWJJbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgY29udHJvbDogRm9ybUNvbnRyb2wgfCBBYnN0cmFjdENvbnRyb2w7XG4gIEBJbnB1dCgpIG9wdGlvbnM/OiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBjdXN0b20gPSB0cnVlO1xuICBASW5wdXQoKSByZW1vdmVCeUtleSA9IHRydWU7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIGlucHV0VmFsdWUgPSAnJztcbiAgc2VsZWN0ZWRFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAvKipcbiAgICogTGlzdGVuIHRvIGVudGVyIGtleXNcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqL1xuICBlbnRlcktleShldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlbW92ZUJ5S2V5ICYmIGV2ZW50LmNvZGUgPT09ICdCYWNrc3BhY2UnICYmICF0aGlzLmlucHV0VmFsdWUpIHtcbiAgICAgIHRoaXMucmVtb3ZlVGFnKCk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChldmVudC5jb2RlID09PSAnQ29tbWEnIHx8IGV2ZW50LmNvZGUgPT09ICdTcGFjZScgfHwgZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xuICAgICAgICB0aGlzLmFkZFRhZyh0aGlzLmlucHV0VmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbmV3IHRhZ1xuICAgKlxuICAgKiBAcGFyYW0gdGFnXG4gICAqL1xuICBhZGRUYWcodGFnOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29udHJvbC52YWx1ZSkge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKFtdKTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQgPSBudWxsO1xuXG4gICAgaWYgKHRhZy5lbmRzV2l0aCgnLCcpIHx8IHRhZy5lbmRzV2l0aCgnICcpKSB7XG4gICAgICB0YWcgPSB0YWcuc2xpY2UoMCwgLTEpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5jdXN0b20gJiYgIXRoaXMub3B0aW9ucy5maW5kKChlKSA9PiBlID09PSB0YWcpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29udHJvbC52YWx1ZT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoW3RhZ10pO1xuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gJyc7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0YWcubGVuZ3RoID4gMCAmJiB0aGlzLmNvbnRyb2wudmFsdWUgJiYgIXRoaXMuY29udHJvbC52YWx1ZS5zb21lKChpdGVtOiBzdHJpbmcpID0+IGl0ZW0gPT09IHRhZykpIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShbLi4udGhpcy5jb250cm9sLnZhbHVlLCB0YWddKTtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRhZ1xuICAgKlxuICAgKiBAcGFyYW0gdGFnXG4gICAqL1xuICByZW1vdmVUYWcodGFnPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQgPSBudWxsO1xuICAgIGlmICh0YWcpIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLmNvbnRyb2wudmFsdWUuZmlsdGVyKChpdGVtOiBzdHJpbmcpID0+IGl0ZW0gIT09IHRhZykpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWUuc3BsaWNlKC0xKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb250cm9sLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyh7IHJlcXVpcmVkOiB0cnVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgb3B0aW9ucyBmb3IgZHJvcCBkb3duXG4gICAqL1xuICBmaWx0ZXJPcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnNcbiAgICAgID8gdGhpcy5vcHRpb25zLmZpbHRlcigoZSkgPT4gZT8uaW5jbHVkZXModGhpcy5pbnB1dFZhbHVlKSAmJiAhdGhpcy5jb250cm9sLnZhbHVlLmluY2x1ZGVzKGUpKVxuICAgICAgOiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93IGRyb3Bkb3duIGZvY3VzXG4gICAqXG4gICAqIEBwYXJhbSBldmVudFxuICAgKi9cbiAgb25Gb2N1cyhldmVudD8pIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQgPSBudWxsO1xuICAgICAgfSwgMjUwKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIHBvc2l0aW9uLXJlbGF0aXZlXCIgKm5nSWY9XCJjb250cm9sXCI+XG4gIDxsYWJlbCBbZm9yXT1cImlkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCIgW25nQ2xhc3NdPVwieyByZXF1aXJlZDogcmVxdWlyZWQgfVwiICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG5cbiAgPGRpdiBjbGFzcz1cInRhZy13cmFwcGVyXCIgKm5nSWY9XCJjb250cm9sPy52YWx1ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0YWdcIiAqbmdGb3I9XCJsZXQgdGFnIG9mIGNvbnRyb2w/LnZhbHVlXCI+XG4gICAgICB7eyB0YWcgfX1cbiAgICAgIDxzcGFuIChjbGljayk9XCJyZW1vdmVUYWcodGFnKVwiPjxpIGNsYXNzPVwiYmkgYmkteC1jaXJjbGVcIj48L2k+PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGlucHV0XG4gICAgW2lkXT1cImlkXCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBjb250cm9sPy5pbnZhbGlkICYmIGNvbnRyb2w/LnRvdWNoZWQgfVwiXG4gICAgWyhuZ01vZGVsKV09XCJpbnB1dFZhbHVlXCJcbiAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZSA/PyBudWxsXCJcbiAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXggPz8gbnVsbFwiXG4gICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwib25Gb2N1cygpXCJcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgIChrZXl1cCk9XCJlbnRlcktleSgkZXZlbnQpXCJcbiAgLz5cblxuICA8ZGl2IGNsYXNzPVwidGFnLW9wdGlvbnNcIiAqbmdJZj1cIm9wdGlvbnMgJiYgc2VsZWN0ZWRFbGVtZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cInRhZy1vcHRpb24taXRlbVwiICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyT3B0aW9ucygpXCIgKGNsaWNrKT1cImFkZFRhZyhvcHRpb24pXCI+e3sgb3B0aW9uIH19PC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrIG0tMlwiICpuZ0lmPVwiY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbD8uZGlydHkgfHwgY29udHJvbD8udG91Y2hlZClcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ3JlcXVpcmVkJ11cIj5EaWVzZXMgRmVsZCBpc3QgZWluIFBmbGljaHRmZWxkLjwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3RhZ3MvdGFncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3RhZ3MvdGFncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVFqRCxNQUFNLE9BQU8sYUFBYTtJQUwxQjtRQVFXLFVBQUssR0FBWSxFQUFFLENBQUM7UUFDcEIsZ0JBQVcsR0FBWSxFQUFFLENBQUM7UUFJMUIsWUFBTyxHQUFjLEVBQUUsQ0FBQztRQUN4QixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQixlQUFVLEdBQUcsRUFBRSxDQUFDO0tBNkZqQjtJQTFGQzs7OztPQUlHO0lBQ0gsUUFBUSxDQUFDLEtBQVU7UUFDakIsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUN0RSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsT0FBTztTQUNSO2FBQU07WUFDTCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO2dCQUM5RSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM5QjtTQUNGO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxN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QUFDLGVBQWUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1NBQ3JDO2FBQU07WUFDTCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQzlCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNUO0lBQ0gsQ0FBQzs7MEdBeEdVLGFBQWE7OEZBQWIsYUFBYSxpU0NSMUIsMHVDQWdDQTsyRkR4QmEsYUFBYTtrQkFMekIsU0FBUzsrQkFDRSxXQUFXOzhCQUtaLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Jhc2UtdGFncycsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWdzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFncy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBUYWdzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBhdXRvY29tcGxldGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRhYkluZGV4PzogbnVtYmVyO1xuICBASW5wdXQoKSBjb250cm9sOiBGb3JtQ29udHJvbCB8IEFic3RyYWN0Q29udHJvbDtcbiAgQElucHV0KCkgb3B0aW9ucz86IHN0cmluZ1tdID0gW107XG4gIEBJbnB1dCgpIGN1c3RvbSA9IHRydWU7XG4gIEBJbnB1dCgpIHJlbW92ZUJ5S2V5ID0gdHJ1ZTtcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgaW5wdXRWYWx1ZSA9ICcnO1xuICBzZWxlY3RlZEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIC8qKlxuICAgKiBMaXN0ZW4gdG8gZW50ZXIga2V5c1xuICAgKlxuICAgKiBAcGFyYW0gZXZlbnRcbiAgICovXG4gIGVudGVyS2V5KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZW1vdmVCeUtleSAmJiBldmVudC5jb2RlID09PSAnQmFja3NwYWNlJyAmJiAhdGhpcy5pbnB1dFZhbHVlKSB7XG4gICAgICB0aGlzLnJlbW92ZVRhZygpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0NvbW1hJyB8fCBldmVudC5jb2RlID09PSAnU3BhY2UnIHx8IGV2ZW50LmNvZGUgPT09ICdFbnRlcicpIHtcbiAgICAgICAgdGhpcy5hZGRUYWcodGhpcy5pbnB1dFZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIG5ldyB0YWdcbiAgICpcbiAgICogQHBhcmFtIHRhZ1xuICAgKi9cbiAgYWRkVGFnKHRhZzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbnRyb2wudmFsdWUpIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShbXSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50ID0gbnVsbDtcblxuICAgIGlmICh0YWcuZW5kc1dpdGgoJywnKSB8fCB0YWcuZW5kc1dpdGgoJyAnKSkge1xuICAgICAgdGFnID0gdGFnLnNsaWNlKDAsIC0xKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY3VzdG9tICYmICF0aGlzLm9wdGlvbnMuZmluZCgoZSkgPT4gZSA9PT0gdGFnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWU/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKFt0YWddKTtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGFnLmxlbmd0aCA+IDAgJiYgdGhpcy5jb250cm9sLnZhbHVlICYmICF0aGlzLmNvbnRyb2wudmFsdWUuc29tZSgoaXRlbTogc3RyaW5nKSA9PiBpdGVtID09PSB0YWcpKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoWy4uLnRoaXMuY29udHJvbC52YWx1ZSwgdGFnXSk7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnMobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSB0YWdcbiAgICpcbiAgICogQHBhcmFtIHRhZ1xuICAgKi9cbiAgcmVtb3ZlVGFnKHRhZz86IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50ID0gbnVsbDtcbiAgICBpZiAodGFnKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy5jb250cm9sLnZhbHVlLmZpbHRlcigoaXRlbTogc3RyaW5nKSA9PiBpdGVtICE9PSB0YWcpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250cm9sLnZhbHVlLnNwbGljZSgtMSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29udHJvbC52YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnMoeyByZXF1aXJlZDogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIG9wdGlvbnMgZm9yIGRyb3AgZG93blxuICAgKi9cbiAgZmlsdGVyT3B0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zXG4gICAgICA/IHRoaXMub3B0aW9ucy5maWx0ZXIoKGUpID0+IGU/LmluY2x1ZGVzKHRoaXMuaW5wdXRWYWx1ZSkgJiYgIXRoaXMuY29udHJvbC52YWx1ZS5pbmNsdWRlcyhlKSlcbiAgICAgIDogW107XG4gIH1cblxuICAvKipcbiAgICogU2hvdyBkcm9wZG93biBmb2N1c1xuICAgKlxuICAgKiBAcGFyYW0gZXZlbnRcbiAgICovXG4gIG9uRm9jdXMoZXZlbnQ/KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IGV2ZW50LnRhcmdldDtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50ID0gbnVsbDtcbiAgICAgIH0sIDI1MCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBwb3NpdGlvbi1yZWxhdGl2ZVwiICpuZ0lmPVwiY29udHJvbFwiPlxuICA8bGFiZWwgW2Zvcl09XCJpZFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiIFtuZ0NsYXNzXT1cInsgcmVxdWlyZWQ6IHJlcXVpcmVkIH1cIiAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuXG4gIDxkaXYgY2xhc3M9XCJ0YWctd3JhcHBlclwiICpuZ0lmPVwiY29udHJvbD8udmFsdWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGFnXCIgKm5nRm9yPVwibGV0IHRhZyBvZiBjb250cm9sPy52YWx1ZVwiPlxuICAgICAge3sgdGFnIH19XG4gICAgICA8c3BhbiAoY2xpY2spPVwicmVtb3ZlVGFnKHRhZylcIj48aSBjbGFzcz1cImJpIGJpLXgtY2lyY2xlXCI+PC9pPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxpbnB1dFxuICAgIFtpZF09XCJpZFwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogY29udHJvbD8uaW52YWxpZCAmJiBjb250cm9sPy50b3VjaGVkIH1cIlxuICAgIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXG4gICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGUgPz8gbnVsbFwiXG4gICAgW3RhYkluZGV4XT1cInRhYkluZGV4ID8/IG51bGxcIlxuICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgIChibHVyKT1cIm9uRm9jdXMoKVwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAoa2V5dXApPVwiZW50ZXJLZXkoJGV2ZW50KVwiXG4gIC8+XG5cbiAgPGRpdiBjbGFzcz1cInRhZy1vcHRpb25zXCIgKm5nSWY9XCJvcHRpb25zICYmIHNlbGVjdGVkRWxlbWVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0YWctb3B0aW9uLWl0ZW1cIiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlck9wdGlvbnMoKVwiIChjbGljayk9XCJhZGRUYWcob3B0aW9uKVwiPnt7IG9wdGlvbiB9fTwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFjayBtLTJcIiAqbmdJZj1cImNvbnRyb2w/LmludmFsaWQgJiYgKGNvbnRyb2w/LmRpcnR5IHx8IGNvbnRyb2w/LnRvdWNoZWQpXCI+XG4gICAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmVycm9ycz8uWydyZXF1aXJlZCddXCI+RGllc2VzIEZlbGQgaXN0IGVpbiBQZmxpY2h0ZmVsZC48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -8,8 +8,6 @@ export * from './src/directives/context-menu.directive';
8
8
  export * from './src/directives/lazy-load.directive';
9
9
  export * from './src/directives/match-height.directive';
10
10
  export * from './src/directives/resizable.directive';
11
- // Decorators
12
- export * from './src/decorators/debounce.decorator';
13
11
  // Factories
14
12
  export * from './src/factories/apollo-options.factory';
15
13
  // Guards
@@ -24,4 +22,4 @@ export * from './src/pipes/date-ago.pipe';
24
22
  export * from './src/services/fullscreen.service';
25
23
  export * from './src/services/seo.service';
26
24
  export * from './src/services/theme.service';
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILFNBQVM7QUFDVCxjQUFjLG1CQUFtQixDQUFDO0FBRWxDLGFBQWE7QUFDYixjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELGFBQWE7QUFDYixjQUFjLHFDQUFxQyxDQUFDO0FBRXBELFlBQVk7QUFDWixjQUFjLHdDQUF3QyxDQUFDO0FBRXZELFNBQVM7QUFDVCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxRQUFRO0FBQ1IsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsV0FBVztBQUNYLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHBvcnRzIGZvciBwdWJsaWMgQVBJXG4gKi9cblxuLy8gTW9kdWxlXG5leHBvcnQgKiBmcm9tICcuL3NyYy9iYXNlLm1vZHVsZSc7XG5cbi8vIERpcmVjdGl2ZXNcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2RpcmVjdGl2ZXMvY29udGV4dC1tZW51LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9kaXJlY3RpdmVzL2xhenktbG9hZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvZGlyZWN0aXZlcy9tYXRjaC1oZWlnaHQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2RpcmVjdGl2ZXMvcmVzaXphYmxlLmRpcmVjdGl2ZSc7XG5cbi8vIERlY29yYXRvcnNcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2RlY29yYXRvcnMvZGVib3VuY2UuZGVjb3JhdG9yJztcblxuLy8gRmFjdG9yaWVzXG5leHBvcnQgKiBmcm9tICcuL3NyYy9mYWN0b3JpZXMvYXBvbGxvLW9wdGlvbnMuZmFjdG9yeSc7XG5cbi8vIEd1YXJkc1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvZ3VhcmRzL2F1dGguZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvZ3VhcmRzL2Nhbi1kZWFjdGl2YXRlLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2d1YXJkcy9sb2dvdXQuZ3VhcmQnO1xuXG4vLyBQaXBlc1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvcGlwZXMvZWxsaXBzZXMucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9waXBlcy9zYWZlLWh0bWwucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9waXBlcy9kYXRlLWFnby5waXBlJztcblxuLy8gU2VydmljZXNcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NlcnZpY2VzL2Z1bGxzY3JlZW4uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlcy9zZW8uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlcy90aGVtZS5zZXJ2aWNlJztcbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILFNBQVM7QUFDVCxjQUFjLG1CQUFtQixDQUFDO0FBRWxDLGFBQWE7QUFDYixjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNDQUFzQyxDQUFDO0FBRXJELFlBQVk7QUFDWixjQUFjLHdDQUF3QyxDQUFDO0FBRXZELFNBQVM7QUFDVCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxRQUFRO0FBQ1IsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsV0FBVztBQUNYLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHBvcnRzIGZvciBwdWJsaWMgQVBJXG4gKi9cblxuLy8gTW9kdWxlXG5leHBvcnQgKiBmcm9tICcuL3NyYy9iYXNlLm1vZHVsZSc7XG5cbi8vIERpcmVjdGl2ZXNcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2RpcmVjdGl2ZXMvY29udGV4dC1tZW51LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9kaXJlY3RpdmVzL2xhenktbG9hZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvZGlyZWN0aXZlcy9tYXRjaC1oZWlnaHQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2RpcmVjdGl2ZXMvcmVzaXphYmxlLmRpcmVjdGl2ZSc7XG5cbi8vIEZhY3Rvcmllc1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvZmFjdG9yaWVzL2Fwb2xsby1vcHRpb25zLmZhY3RvcnknO1xuXG4vLyBHdWFyZHNcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2d1YXJkcy9hdXRoLmd1YXJkJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2d1YXJkcy9jYW4tZGVhY3RpdmF0ZS5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9ndWFyZHMvbG9nb3V0Lmd1YXJkJztcblxuLy8gUGlwZXNcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3BpcGVzL2VsbGlwc2VzLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvcGlwZXMvc2FmZS1odG1sLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvcGlwZXMvZGF0ZS1hZ28ucGlwZSc7XG5cbi8vIFNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZXJ2aWNlcy9mdWxsc2NyZWVuLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VydmljZXMvc2VvLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VydmljZXMvdGhlbWUuc2VydmljZSc7XG4iXX0=
@@ -0,0 +1,12 @@
1
+ export function debounce(delay = 300) {
2
+ return function (target, propertyKey, descriptor) {
3
+ let timeout = null;
4
+ const original = descriptor.value;
5
+ descriptor.value = function (...args) {
6
+ clearTimeout(timeout);
7
+ timeout = setTimeout(() => original.apply(this, args), delay);
8
+ };
9
+ return descriptor;
10
+ };
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvZGVjb3JhdG9ycy9kZWJvdW5jZS5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFFBQVEsQ0FBQyxRQUFnQixHQUFHO0lBQzFDLE9BQU8sVUFBVSxNQUFXLEVBQUUsV0FBbUIsRUFBRSxVQUE4QjtRQUMvRSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFbkIsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUVsQyxVQUFVLENBQUMsS0FBSyxHQUFHLFVBQVUsR0FBRyxJQUFJO1lBQ2xDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QixPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQztRQUVGLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZGVib3VuY2UoZGVsYXk6IG51bWJlciA9IDMwMCk6IE1ldGhvZERlY29yYXRvciB7XG4gIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcsIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvcikge1xuICAgIGxldCB0aW1lb3V0ID0gbnVsbDtcblxuICAgIGNvbnN0IG9yaWdpbmFsID0gZGVzY3JpcHRvci52YWx1ZTtcblxuICAgIGRlc2NyaXB0b3IudmFsdWUgPSBmdW5jdGlvbiAoLi4uYXJncykge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gb3JpZ2luYWwuYXBwbHkodGhpcywgYXJncyksIGRlbGF5KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gIH07XG59XG4iXX0=
@@ -13,6 +13,8 @@ export * from './classes/sort.class';
13
13
  // Directives
14
14
  export * from './directives/sort.directive';
15
15
  export * from './directives/back-button.directive';
16
+ // Decorators
17
+ export * from './decorators/debounce.decorator';
16
18
  // Services
17
19
  export * from './services/auth.service';
18
20
  export * from './services/graphql.service';
@@ -60,4 +62,4 @@ export * from './types/graphql-fields.type';
60
62
  export * from './validators/match.validator';
61
63
  // Functions
62
64
  export * from './functions/ws-client.function';
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxVQUFVO0FBQ1YsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGFBQWE7QUFDYixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsV0FBVztBQUNYLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxRQUFRO0FBQ1IsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsYUFBYTtBQUNiLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxRQUFRO0FBQ1IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGFBQWE7QUFDYixjQUFjLDhCQUE4QixDQUFDO0FBRTdDLFlBQVk7QUFDWixjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHBvcnRzIGZvciBwdWJsaWMgQVBJXG4gKi9cblxuLy8gQ2xhc3Nlc1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL2Jhc2ljLXVzZXIuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL2dyYXBocWwtZW51bS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvZ3JhcGhxbC1tZXRhLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy9ncmFwaHFsLXR5cGUuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL2hlbHBlci5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvc3RhbmRhcmQuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL2F1dGguY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL3NvcnQuY2xhc3MnO1xuXG4vLyBEaXJlY3RpdmVzXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvc29ydC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2JhY2stYnV0dG9uLmRpcmVjdGl2ZSc7XG5cbi8vIFNlcnZpY2VzXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2dyYXBocWwuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2dyYXBocWwtbWV0YS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZ3JhcGhxbC1wbHVzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9mb3Jtcy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvd3Muc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3VzZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2xvYWRlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvc2Nyb2xsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9pbWFnZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2JyZWFkY3J1bWIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL25hdmlnYXRpb24uc2VydmljZSc7XG5cbi8vIEVudW1zXG5leHBvcnQgKiBmcm9tICcuL2VudW1zL2NvbXBhcmlzb24tb3BlcmF0b3IuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2VudW1zL2dyYXBocWwtcmVxdWVzdC10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtcy9sb2dpY2FsLW9wZXJhdG9yLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtcy9zb3J0LW9yZGVyLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtcy90b2FzdC10eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtcy9za2VsZXRvbi10eXBlLmVudW0nO1xuXG4vLyBJbnRlcmZhY2VzXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvYmFzZS1tb2R1bGUtY29uZmlnLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvY2FuLWNvbXBvbmVudC1kZWFjdGl2YXRlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvY29tYmluZWQtZmlsdGVyLWlucHV0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvZmllbGQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9maWVsZC1vYmplY3QuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9maWx0ZXItaW5wdXQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9ncmFwaHFsLW9wdGlvbnMuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9ncmFwaHFsLXBsdXMtb3B0aW9ucy5pbnRlcmZhY2VuJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9ncmFwaHFsLXR5cGUtY29sbGVjdGlvbi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2dyYXBocWwtZmllbGRzLW9iamVjdC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3NpbmdsZS1maWx0ZXItaW5wdXQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9zb3J0LWlucHV0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvZmluZC1hcmdzLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvdGltZS1jb21wb25lbnRzLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvdG9hc3QuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9icmVhZGNydW1iLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvZ3JhcGhxbC1jcnVkLXR5cGUuaW50ZXJmYWNlJztcblxuLy8gVHlwZXNcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvc3RvcmFnZS50eXBlJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvZ3JhcGhxbC1maWVsZHMudHlwZSc7XG5cbi8vIFZhbGlkYXRvcnNcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9ycy9tYXRjaC52YWxpZGF0b3InO1xuXG4vLyBGdW5jdGlvbnNcbmV4cG9ydCAqIGZyb20gJy4vZnVuY3Rpb25zL3dzLWNsaWVudC5mdW5jdGlvbic7XG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2Uvc2hhcmVkL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxVQUFVO0FBQ1YsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLHNCQUFzQixDQUFDO0FBRXJDLGFBQWE7QUFDYixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsYUFBYTtBQUNiLGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsV0FBVztBQUNYLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxRQUFRO0FBQ1IsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsYUFBYTtBQUNiLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxRQUFRO0FBQ1IsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGFBQWE7QUFDYixjQUFjLDhCQUE4QixDQUFDO0FBRTdDLFlBQVk7QUFDWixjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHBvcnRzIGZvciBwdWJsaWMgQVBJXG4gKi9cblxuLy8gQ2xhc3Nlc1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL2Jhc2ljLXVzZXIuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL2dyYXBocWwtZW51bS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvZ3JhcGhxbC1tZXRhLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vY2xhc3Nlcy9ncmFwaHFsLXR5cGUuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL2hlbHBlci5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2NsYXNzZXMvc3RhbmRhcmQuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL2F1dGguY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jbGFzc2VzL3NvcnQuY2xhc3MnO1xuXG4vLyBEaXJlY3RpdmVzXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvc29ydC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL2JhY2stYnV0dG9uLmRpcmVjdGl2ZSc7XG5cbi8vIERlY29yYXRvcnNcbmV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9ycy9kZWJvdW5jZS5kZWNvcmF0b3InO1xuXG4vLyBTZXJ2aWNlc1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9ncmFwaHFsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9ncmFwaHFsLW1ldGEuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2dyYXBocWwtcGx1cy5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZm9ybXMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3N0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3dzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy91c2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9sb2FkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3Njcm9sbC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvaW1hZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9icmVhZGNydW1iLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuXG4vLyBFbnVtc1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtcy9jb21wYXJpc29uLW9wZXJhdG9yLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9lbnVtcy9ncmFwaHFsLXJlcXVlc3QtdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMvbG9naWNhbC1vcGVyYXRvci5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMvc29ydC1vcmRlci5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMvdG9hc3QtdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMvc2tlbGV0b24tdHlwZS5lbnVtJztcblxuLy8gSW50ZXJmYWNlc1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2Jhc2UtbW9kdWxlLWNvbmZpZy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2Nhbi1jb21wb25lbnQtZGVhY3RpdmF0ZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2NvbWJpbmVkLWZpbHRlci1pbnB1dC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2ZpZWxkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvZmllbGQtb2JqZWN0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvZmlsdGVyLWlucHV0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvZ3JhcGhxbC1vcHRpb25zLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvZ3JhcGhxbC1wbHVzLW9wdGlvbnMuaW50ZXJmYWNlbic7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvZ3JhcGhxbC10eXBlLWNvbGxlY3Rpb24uaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9ncmFwaHFsLWZpZWxkcy1vYmplY3QuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcy9zaW5nbGUtZmlsdGVyLWlucHV0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvc29ydC1pbnB1dC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2ZpbmQtYXJncy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3RpbWUtY29tcG9uZW50cy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3RvYXN0LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMvYnJlYWRjcnVtYi5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2dyYXBocWwtY3J1ZC10eXBlLmludGVyZmFjZSc7XG5cbi8vIFR5cGVzXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL3N0b3JhZ2UudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzL2dyYXBocWwtZmllbGRzLnR5cGUnO1xuXG4vLyBWYWxpZGF0b3JzXG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvcnMvbWF0Y2gudmFsaWRhdG9yJztcblxuLy8gRnVuY3Rpb25zXG5leHBvcnQgKiBmcm9tICcuL2Z1bmN0aW9ucy93cy1jbGllbnQuZnVuY3Rpb24nO1xuIl19
@@ -602,7 +602,7 @@ class ModelFormSubComponent {
602
602
  // Sort keys by config order
603
603
  this.keys = unsortedKeys.sort((a, b) => {
604
604
  var _a, _b, _c, _d;
605
- return (((_a = this.config[b]) === null || _a === void 0 ? void 0 : _a.order) ? (_b = this.config[b]) === null || _b === void 0 ? void 0 : _b.order : 0) - (((_c = this.config[a]) === null || _c === void 0 ? void 0 : _c.order) ? (_d = this.config[a]) === null || _d === void 0 ? void 0 : _d.order : 0);
605
+ return (((_a = this.config[a]) === null || _a === void 0 ? void 0 : _a.order) ? (_b = this.config[a]) === null || _b === void 0 ? void 0 : _b.order : 0) - (((_c = this.config[b]) === null || _c === void 0 ? void 0 : _c.order) ? (_d = this.config[b]) === null || _d === void 0 ? void 0 : _d.order : 0);
606
606
  });
607
607
  // Set user for roles check
608
608
  this.user = BasicUser.map(this.authService.currentUser);
@@ -909,10 +909,10 @@ class ModelFormComponent {
909
909
  }
910
910
  }
911
911
  ModelFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ModelFormComponent, deps: [{ token: i1$1.GraphQLMetaService }, { token: i1$1.GraphQLService }, { token: i1$1.FormsService }, { token: i1$1.AuthService }], target: i0.ɵɵFactoryTarget.Component });
912
- ModelFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ModelFormComponent, selector: "base-model-form", inputs: { modelName: "modelName", label: "label", id: "id", delete: "delete", logging: "logging", config: "config" }, outputs: { finished: "finished" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"w-100\" *ngIf=\"form\">\n <h2>\n {{ label ? label : capitalizeFirstLetter(modelName) }} {{ operation === 'update' ? 'bearbeiten' : 'erstellen' }}\n </h2>\n\n <form [formGroup]=\"form\">\n <base-model-form-sub\n [fields]=\"fields\"\n [config]=\"config\"\n [form]=\"form\"\n (imageChanged)=\"submit(true)\"\n ></base-model-form-sub>\n\n <div class=\"d-flex mt-4\" [ngClass]=\"id && delete ? 'justify-content-between' : 'justify-content-end'\">\n <div *ngIf=\"id && delete\">\n <button class=\"btn btn-danger\" type=\"button\" (click)=\"deleteObject()\">L\u00F6schen</button>\n </div>\n <div>\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"submit(false)\" *ngIf=\"!loading\">\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}\n </button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}...\n </button>\n </div>\n </div>\n </form>\n</div>\n", styles: [""], components: [{ type: ModelFormSubComponent, selector: "base-model-form-sub", inputs: ["fields", "form", "config"], outputs: ["imageChanged"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
912
+ ModelFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.3", type: ModelFormComponent, selector: "base-model-form", inputs: { modelName: "modelName", label: "label", id: "id", delete: "delete", logging: "logging", config: "config" }, outputs: { finished: "finished" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"w-100\" *ngIf=\"form\">\n <h2>\n {{ label ? label : capitalizeFirstLetter(modelName) }} {{ operation === 'update' ? 'bearbeiten' : 'erstellen' }}\n </h2>\n\n <form [formGroup]=\"form\">\n <base-model-form-sub\n [fields]=\"fields\"\n [config]=\"config\"\n [form]=\"form\"\n (imageChanged)=\"id ? submit(true) : null\"\n ></base-model-form-sub>\n\n <div class=\"d-flex mt-4\" [ngClass]=\"id && delete ? 'justify-content-between' : 'justify-content-end'\">\n <div *ngIf=\"id && delete\">\n <button class=\"btn btn-danger\" type=\"button\" (click)=\"deleteObject()\">L\u00F6schen</button>\n </div>\n <div>\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"submit(false)\" *ngIf=\"!loading\">\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}\n </button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}...\n </button>\n </div>\n </div>\n </form>\n</div>\n", styles: [""], components: [{ type: ModelFormSubComponent, selector: "base-model-form-sub", inputs: ["fields", "form", "config"], outputs: ["imageChanged"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
913
913
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.3", ngImport: i0, type: ModelFormComponent, decorators: [{
914
914
  type: Component,
915
- args: [{ selector: 'base-model-form', template: "<div class=\"w-100\" *ngIf=\"form\">\n <h2>\n {{ label ? label : capitalizeFirstLetter(modelName) }} {{ operation === 'update' ? 'bearbeiten' : 'erstellen' }}\n </h2>\n\n <form [formGroup]=\"form\">\n <base-model-form-sub\n [fields]=\"fields\"\n [config]=\"config\"\n [form]=\"form\"\n (imageChanged)=\"submit(true)\"\n ></base-model-form-sub>\n\n <div class=\"d-flex mt-4\" [ngClass]=\"id && delete ? 'justify-content-between' : 'justify-content-end'\">\n <div *ngIf=\"id && delete\">\n <button class=\"btn btn-danger\" type=\"button\" (click)=\"deleteObject()\">L\u00F6schen</button>\n </div>\n <div>\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"submit(false)\" *ngIf=\"!loading\">\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}\n </button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}...\n </button>\n </div>\n </div>\n </form>\n</div>\n", styles: [""] }]
915
+ args: [{ selector: 'base-model-form', template: "<div class=\"w-100\" *ngIf=\"form\">\n <h2>\n {{ label ? label : capitalizeFirstLetter(modelName) }} {{ operation === 'update' ? 'bearbeiten' : 'erstellen' }}\n </h2>\n\n <form [formGroup]=\"form\">\n <base-model-form-sub\n [fields]=\"fields\"\n [config]=\"config\"\n [form]=\"form\"\n (imageChanged)=\"id ? submit(true) : null\"\n ></base-model-form-sub>\n\n <div class=\"d-flex mt-4\" [ngClass]=\"id && delete ? 'justify-content-between' : 'justify-content-end'\">\n <div *ngIf=\"id && delete\">\n <button class=\"btn btn-danger\" type=\"button\" (click)=\"deleteObject()\">L\u00F6schen</button>\n </div>\n <div>\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"submit(false)\" *ngIf=\"!loading\">\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}\n </button>\n <button class=\"btn btn-primary\" type=\"button\" disabled *ngIf=\"loading\">\n <span class=\"spinner-border spinner-border-sm\" role=\"status\" aria-hidden=\"true\"></span>\n {{ operation === 'create' ? 'Erstellen' : 'Speichern' }}...\n </button>\n </div>\n </div>\n </form>\n</div>\n", styles: [""] }]
916
916
  }], ctorParameters: function () { return [{ type: i1$1.GraphQLMetaService }, { type: i1$1.GraphQLService }, { type: i1$1.FormsService }, { type: i1$1.AuthService }]; }, propDecorators: { modelName: [{
917
917
  type: Input
918
918
  }], label: [{