@smartbit4all/ng-client 4.0.57 → 4.0.58

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.
@@ -80,11 +80,11 @@ export class UiActionFileUploadDialogComponent {
80
80
  this.service.cancel();
81
81
  }
82
82
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionFileUploadDialogComponent, deps: [{ token: 'fileUploadDialogService' }, { token: COMPONENT_LIBRARY }, { token: i1.UiActionDescriptorService }], target: i0.ɵɵFactoryTarget.Component }); }
83
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionFileUploadDialogComponent, selector: "lib-ui-action-file-upload-dialog", ngImport: i0, template: "<div class=\"folderNameDialogContainer\">\r\n <div class=\"headerContainer\">\r\n <h3 class=\"color-accent-700\">\r\n {{ getTitle() }}\r\n </h3>\r\n @if(compLib === componentLibrary.MATERIAL) {\r\n <button mat-icon-button title=\"close\" (click)=\"cancel()\">\r\n <smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\r\n </button>\r\n }@else {\r\n <p-button icon=\"pi pi-times\" [rounded]=\"true\" [text]=\"true\" title=\"close\" (click)=\"cancel()\" />\r\n }\r\n </div>\r\n <p>\r\n {{ getText() }}\r\n </p>\r\n @if(compLib === componentLibrary.PRIMENG) {\r\n\r\n <p-fileUpload\r\n name=\"files[]\"\r\n url=\"\"\r\n (onSend)=\"uploadFiles($event)\"\r\n (onSelect)=\"onSelect($event)\"\r\n (onRemove)=\"onRemove($event)\"\r\n [multiple]=\"isMultiple\"\r\n [accept]=\"fileFormats?.join(',')\"\r\n [maxFileSize]=\"maxSizeMb\"\r\n uploadLabel=\"Felt\u00F6lt\u00E9s\"\r\n cancelLabel=\"M\u00E9gsem\"\r\n chooseLabel=\"V\u00E1laszt\u00E1s\"\r\n >\r\n <ng-template pTemplate=\"content\"> </ng-template>\r\n </p-fileUpload>\r\n }@else{\r\n <smartfileuploader\r\n [i18n]=\"i18n\"\r\n [fileFormats]=\"fileFormats\"\r\n [maxSizeMb]=\"maxSizeMb\"\r\n [uploadCallback]=\"upload.bind(this)\"\r\n [isMultiple]=\"isMultiple\"\r\n ></smartfileuploader>\r\n\r\n }\r\n\r\n <div class=\"folderNameDialogButtonsContainer\">\r\n <button mat-button color=\"accent\" [color]=\"getCancelButtonColor()\" (click)=\"cancel()\">\r\n {{ getCancelButtonLabel() }}\r\n </button>\r\n <!-- <button mat-raised-button [color]=\"getActionButtonColor()\" (click)=\"upload()\">\r\n {{ getActionButtonLabel() }}\r\n </button> -->\r\n </div>\r\n</div>\r\n", styles: [".folderNameDialogContainer{width:25rem;display:flex;flex-direction:column;gap:1rem}.headerContainer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-top:1rem}.headerContainer h3{margin:0}.folderNameDialogButtonsContainer{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i5.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { kind: "component", type: i6.FileUpload, selector: "p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "component", type: i7.SmartfileuploaderComponent, selector: "smartfileuploader", inputs: ["uploadCallback", "fileFormats", "maxSizeMb", "i18n", "useIconButton", "isMultiple"] }] }); }
83
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionFileUploadDialogComponent, selector: "lib-ui-action-file-upload-dialog", ngImport: i0, template: "<div class=\"folderNameDialogContainer\">\r\n <div class=\"headerContainer\">\r\n <h3 class=\"color-accent-700\">\r\n {{ getTitle() }}\r\n </h3>\r\n @if(compLib === componentLibrary.MATERIAL) {\r\n <button mat-icon-button title=\"close\" (click)=\"cancel()\">\r\n <smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\r\n </button>\r\n }@else {\r\n <p-button icon=\"pi pi-times\" [rounded]=\"true\" [text]=\"true\" title=\"close\" (click)=\"cancel()\" />\r\n }\r\n </div>\r\n <p>\r\n {{ getText() }}\r\n </p>\r\n @if(compLib === componentLibrary.PRIMENG) {\r\n\r\n <p-fileUpload\r\n name=\"files[]\"\r\n url=\"\"\r\n (onSend)=\"uploadFiles($event)\"\r\n (onSelect)=\"onSelect($event)\"\r\n (onRemove)=\"onRemove($event)\"\r\n [multiple]=\"isMultiple\"\r\n [accept]=\"fileFormats?.join(',')\"\r\n [maxFileSize]=\"maxSizeMb * 1024 * 1024\"\r\n uploadLabel=\"Felt\u00F6lt\u00E9s\"\r\n cancelLabel=\"M\u00E9gsem\"\r\n chooseLabel=\"V\u00E1laszt\u00E1s\"\r\n >\r\n <ng-template pTemplate=\"content\"> </ng-template>\r\n </p-fileUpload>\r\n }@else{\r\n <smartfileuploader\r\n [i18n]=\"i18n\"\r\n [fileFormats]=\"fileFormats\"\r\n [maxSizeMb]=\"maxSizeMb\"\r\n [uploadCallback]=\"upload.bind(this)\"\r\n [isMultiple]=\"isMultiple\"\r\n ></smartfileuploader>\r\n\r\n }\r\n\r\n <div class=\"folderNameDialogButtonsContainer\">\r\n <button mat-button color=\"accent\" [color]=\"getCancelButtonColor()\" (click)=\"cancel()\">\r\n {{ getCancelButtonLabel() }}\r\n </button>\r\n <!-- <button mat-raised-button [color]=\"getActionButtonColor()\" (click)=\"upload()\">\r\n {{ getActionButtonLabel() }}\r\n </button> -->\r\n </div>\r\n</div>\r\n", styles: [".folderNameDialogContainer{width:25rem;display:flex;flex-direction:column;gap:1rem}.headerContainer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-top:1rem}.headerContainer h3{margin:0}.folderNameDialogButtonsContainer{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i5.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color"] }, { kind: "component", type: i6.FileUpload, selector: "p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "component", type: i7.SmartfileuploaderComponent, selector: "smartfileuploader", inputs: ["uploadCallback", "fileFormats", "maxSizeMb", "i18n", "useIconButton", "isMultiple"] }] }); }
84
84
  }
85
85
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionFileUploadDialogComponent, decorators: [{
86
86
  type: Component,
87
- args: [{ selector: 'lib-ui-action-file-upload-dialog', template: "<div class=\"folderNameDialogContainer\">\r\n <div class=\"headerContainer\">\r\n <h3 class=\"color-accent-700\">\r\n {{ getTitle() }}\r\n </h3>\r\n @if(compLib === componentLibrary.MATERIAL) {\r\n <button mat-icon-button title=\"close\" (click)=\"cancel()\">\r\n <smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\r\n </button>\r\n }@else {\r\n <p-button icon=\"pi pi-times\" [rounded]=\"true\" [text]=\"true\" title=\"close\" (click)=\"cancel()\" />\r\n }\r\n </div>\r\n <p>\r\n {{ getText() }}\r\n </p>\r\n @if(compLib === componentLibrary.PRIMENG) {\r\n\r\n <p-fileUpload\r\n name=\"files[]\"\r\n url=\"\"\r\n (onSend)=\"uploadFiles($event)\"\r\n (onSelect)=\"onSelect($event)\"\r\n (onRemove)=\"onRemove($event)\"\r\n [multiple]=\"isMultiple\"\r\n [accept]=\"fileFormats?.join(',')\"\r\n [maxFileSize]=\"maxSizeMb\"\r\n uploadLabel=\"Felt\u00F6lt\u00E9s\"\r\n cancelLabel=\"M\u00E9gsem\"\r\n chooseLabel=\"V\u00E1laszt\u00E1s\"\r\n >\r\n <ng-template pTemplate=\"content\"> </ng-template>\r\n </p-fileUpload>\r\n }@else{\r\n <smartfileuploader\r\n [i18n]=\"i18n\"\r\n [fileFormats]=\"fileFormats\"\r\n [maxSizeMb]=\"maxSizeMb\"\r\n [uploadCallback]=\"upload.bind(this)\"\r\n [isMultiple]=\"isMultiple\"\r\n ></smartfileuploader>\r\n\r\n }\r\n\r\n <div class=\"folderNameDialogButtonsContainer\">\r\n <button mat-button color=\"accent\" [color]=\"getCancelButtonColor()\" (click)=\"cancel()\">\r\n {{ getCancelButtonLabel() }}\r\n </button>\r\n <!-- <button mat-raised-button [color]=\"getActionButtonColor()\" (click)=\"upload()\">\r\n {{ getActionButtonLabel() }}\r\n </button> -->\r\n </div>\r\n</div>\r\n", styles: [".folderNameDialogContainer{width:25rem;display:flex;flex-direction:column;gap:1rem}.headerContainer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-top:1rem}.headerContainer h3{margin:0}.folderNameDialogButtonsContainer{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}\n"] }]
87
+ args: [{ selector: 'lib-ui-action-file-upload-dialog', template: "<div class=\"folderNameDialogContainer\">\r\n <div class=\"headerContainer\">\r\n <h3 class=\"color-accent-700\">\r\n {{ getTitle() }}\r\n </h3>\r\n @if(compLib === componentLibrary.MATERIAL) {\r\n <button mat-icon-button title=\"close\" (click)=\"cancel()\">\r\n <smart-icon [color]=\"'primary'\" [icon]=\"'X'\"></smart-icon>\r\n </button>\r\n }@else {\r\n <p-button icon=\"pi pi-times\" [rounded]=\"true\" [text]=\"true\" title=\"close\" (click)=\"cancel()\" />\r\n }\r\n </div>\r\n <p>\r\n {{ getText() }}\r\n </p>\r\n @if(compLib === componentLibrary.PRIMENG) {\r\n\r\n <p-fileUpload\r\n name=\"files[]\"\r\n url=\"\"\r\n (onSend)=\"uploadFiles($event)\"\r\n (onSelect)=\"onSelect($event)\"\r\n (onRemove)=\"onRemove($event)\"\r\n [multiple]=\"isMultiple\"\r\n [accept]=\"fileFormats?.join(',')\"\r\n [maxFileSize]=\"maxSizeMb * 1024 * 1024\"\r\n uploadLabel=\"Felt\u00F6lt\u00E9s\"\r\n cancelLabel=\"M\u00E9gsem\"\r\n chooseLabel=\"V\u00E1laszt\u00E1s\"\r\n >\r\n <ng-template pTemplate=\"content\"> </ng-template>\r\n </p-fileUpload>\r\n }@else{\r\n <smartfileuploader\r\n [i18n]=\"i18n\"\r\n [fileFormats]=\"fileFormats\"\r\n [maxSizeMb]=\"maxSizeMb\"\r\n [uploadCallback]=\"upload.bind(this)\"\r\n [isMultiple]=\"isMultiple\"\r\n ></smartfileuploader>\r\n\r\n }\r\n\r\n <div class=\"folderNameDialogButtonsContainer\">\r\n <button mat-button color=\"accent\" [color]=\"getCancelButtonColor()\" (click)=\"cancel()\">\r\n {{ getCancelButtonLabel() }}\r\n </button>\r\n <!-- <button mat-raised-button [color]=\"getActionButtonColor()\" (click)=\"upload()\">\r\n {{ getActionButtonLabel() }}\r\n </button> -->\r\n </div>\r\n</div>\r\n", styles: [".folderNameDialogContainer{width:25rem;display:flex;flex-direction:column;gap:1rem}.headerContainer{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding-top:1rem}.headerContainer h3{margin:0}.folderNameDialogButtonsContainer{display:flex;flex-direction:row;justify-content:flex-end;gap:.5rem}\n"] }]
88
88
  }], ctorParameters: () => [{ type: i8.UiActionFileUploadDialogService, decorators: [{
89
89
  type: Inject,
90
90
  args: ['fileUploadDialogService']
@@ -92,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
92
92
  type: Inject,
93
93
  args: [COMPONENT_LIBRARY]
94
94
  }] }, { type: i1.UiActionDescriptorService }] });
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWZpbGUtdXBsb2FkLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2RpYWxvZ3MvdWktYWN0aW9uLWZpbGUtdXBsb2FkLWRpYWxvZy91aS1hY3Rpb24tZmlsZS11cGxvYWQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vZGlhbG9ncy91aS1hY3Rpb24tZmlsZS11cGxvYWQtZGlhbG9nL3VpLWFjdGlvbi1maWxlLXVwbG9hZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFLN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7O0FBT3hFLE1BQU0sT0FBTyxpQ0FBaUM7SUFZNUMsWUFDNkMsT0FBd0MsRUFDakQsT0FBeUIsRUFDbkQsT0FBa0M7UUFGQyxZQUFPLEdBQVAsT0FBTyxDQUFpQztRQUNqRCxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUNuRCxZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQVQ1QyxxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUVwQyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBNkR2QixrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQXBEeEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFLLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2Ys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QUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0F2RlUsaUNBQWlDLGtCQWFsQyx5QkFBeUIsYUFDekIsaUJBQWlCO21HQWRoQixpQ0FBaUMsd0VDWjlDLHN0REFxREE7OzRGRHpDYSxpQ0FBaUM7a0JBTDdDLFNBQVM7K0JBQ0Usa0NBQWtDOzswQkFpQnpDLE1BQU07MkJBQUMseUJBQXlCOzswQkFDaEMsTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVpQWN0aW9uRGVzY3JpcHRvciB9IGZyb20gJy4uLy4uLy4uL2FwaSc7XHJcbmltcG9ydCB7IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi91aS1hY3Rpb24uZGVzY3JpcHRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVWlBY3Rpb25GaWxlVXBsb2FkRGlhbG9nU2VydmljZSB9IGZyb20gJy4vdWktYWN0aW9uLWZpbGUtdXBsb2FkLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnRGaWxlVXBsb2FkZXJJMThuIH0gZnJvbSAnLi4vLi4vLi4vLi4vc21hcnQtZm9ybS9zbWFydGZpbGV1cGxvYWRlci9zbWFydGZpbGV1cGxvYWRlci5tb2RlbCc7XHJcbmltcG9ydCB7IENPTVBPTkVOVF9MSUJSQVJZLCBDb21wb25lbnRMaWJyYXJ5IH0gZnJvbSAnLi4vLi4vLi4vcHJvamVjdHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdWktYWN0aW9uLWZpbGUtdXBsb2FkLWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VpLWFjdGlvbi1maWxlLXVwbG9hZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VpLWFjdGlvbi1maWxlLXVwbG9hZC1kaWFsb2cuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25GaWxlVXBsb2FkRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBjb2RlITogc3RyaW5nO1xyXG5cclxuICBkaWFsb2dUeXBlITogJ2RpYWxvZycgfCAnaW5wdXREaWFsb2cnIHwgJ2lucHV0MkRpYWxvZyc7XHJcblxyXG4gIGRlc2NyaXB0b3I/OiBVaUFjdGlvbkRlc2NyaXB0b3I7XHJcbiAgY29tcG9uZW50TGlicmFyeSA9IENvbXBvbmVudExpYnJhcnk7XHJcbiAgaTE4bj86IFNtYXJ0RmlsZVVwbG9hZGVySTE4bjtcclxuICBtYXhTaXplTWI6IG51bWJlciA9IDI1O1xyXG4gIGZpbGVGb3JtYXRzPzogc3RyaW5nW107XHJcbiAgaXNNdWx0aXBsZT86IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdCgnZmlsZVVwbG9hZERpYWxvZ1NlcnZpY2UnKSBwcml2YXRlIHNlcnZpY2U6IFVpQWN0aW9uRmlsZVVwbG9hZERpYWxvZ1NlcnZpY2UsXHJcbiAgICBASW5qZWN0KENPTVBPTkVOVF9MSUJSQVJZKSBwdWJsaWMgY29tcExpYjogQ29tcG9uZW50TGlicmFyeSxcclxuICAgIHByaXZhdGUgbWFuYWdlcjogVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5jb2RlID0gdGhpcy5zZXJ2aWNlLmFjdGlvbi5jb2RlITtcclxuICAgIHRoaXMuc2V0VXAoKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuY2FuY2VsKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzZXRVcCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuZGVzY3JpcHRvciA9IGF3YWl0IHRoaXMubWFuYWdlci5nZXRBY3Rpb25EZXNjcmlwdG9yKHRoaXMuc2VydmljZS5hY3Rpb24pO1xyXG5cclxuICAgIHRoaXMuaXNNdWx0aXBsZSA9IHRoaXMuc2VydmljZS5pc011bHRpcGxlO1xyXG5cclxuICAgIHRoaXMuaTE4biA9IHtcclxuICAgICAgYWRkRmlsZTogdGhpcy5kZXNjcmlwdG9yLnVwbG9hZD8udGl0bGUgPz8gJ2Rva3VtZW50dW0gaG96esOhYWTDoXNhJyxcclxuICAgICAgYnJvd3NlT3JEcmFnOiB0aGlzLmRlc2NyaXB0b3IudXBsb2FkPy5kZXNjcmlwdGlvbiA/PyAndGFsbMOzesOhcyB2YWd5IGJlaMO6esOhcycsXHJcbiAgICAgIGZvcm1hdHM6IHRoaXMuZGVzY3JpcHRvci51cGxvYWQ/LmZvcm1hdHMgPz8gJycsXHJcbiAgICAgIG1heFNpemU6IHRoaXMuZGVzY3JpcHRvci51cGxvYWQ/Lm1heFNpemUgPz8gJycsXHJcbiAgICAgIHVwbG9hZDogdGhpcy5kZXNjcmlwdG9yLnVwbG9hZD8udXBsb2FkQnV0dG9uVGl0bGUsXHJcbiAgICB9O1xyXG5cclxuICAgIC8vIFRPRE8gc2V0IG1heCBzaXplIGFuZCBmaWxlIGZvcm1hdHMgYnkgVWlBY3Rpb24ucGFyYW1zXHJcblxyXG4gICAgaWYgKHRoaXMuZGVzY3JpcHRvclt0aGlzLnNlcnZpY2UuaW5wdXRUeXBlTmFtZV0pIHtcclxuICAgICAgdGhpcy5kaWFsb2dUeXBlID0gdGhpcy5zZXJ2aWNlLmlucHV0VHlwZU5hbWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRpYWxvZ1R5cGUgPSB0aGlzLmRlc2NyaXB0b3IuaW5wdXREaWFsb2cgPyAnaW5wdXREaWFsb2cnIDogJ2RpYWxvZyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUaXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEudGl0bGU7XHJcbiAgfVxyXG4gIGdldFRleHQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0hLnRleHQgPz8gJyc7XHJcbiAgfVxyXG4gIGdldEFjdGlvbkJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yIVt0aGlzLmRpYWxvZ1R5cGVdIS5hY3Rpb25CdXR0b24uY2FwdGlvbjtcclxuICB9XHJcbiAgZ2V0QWN0aW9uQnV0dG9uQ29sb3IoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0hLmFjdGlvbkJ1dHRvbi5jb2xvcjtcclxuICB9XHJcbiAgZ2V0Q2FuY2VsQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0hLmNhbmNlbEJ1dHRvbi5jYXB0aW9uO1xyXG4gIH1cclxuICBnZXRDYW5jZWxCdXR0b25Db2xvcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEuY2FuY2VsQnV0dG9uLmNvbG9yO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkKGZpbGVzOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLm9uU2F2ZShmaWxlcyk7XHJcbiAgfVxyXG4gIHVwbG9hZGVkRmlsZXM6IGFueVtdID0gW107XHJcbiAgb25TZWxlY3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy51cGxvYWRlZEZpbGVzID0gW107XHJcbiAgICBmb3IgKGxldCBmaWxlIG9mIGV2ZW50LmZpbGVzKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkZWRGaWxlcy5wdXNoKGZpbGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25SZW1vdmUoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy51cGxvYWRlZEZpbGVzID0gW107XHJcbiAgfVxyXG5cclxuICB1cGxvYWRGaWxlcyhldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2Uub25TYXZlKHRoaXMudXBsb2FkZWRGaWxlcyk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuY2FuY2VsKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb2xkZXJOYW1lRGlhbG9nQ29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlckNvbnRhaW5lclwiPlxyXG4gICAgPGgzIGNsYXNzPVwiY29sb3ItYWNjZW50LTcwMFwiPlxyXG4gICAgICB7eyBnZXRUaXRsZSgpIH19XHJcbiAgICA8L2gzPlxyXG4gICAgQGlmKGNvbXBMaWIgPT09IGNvbXBvbmVudExpYnJhcnkuTUFURVJJQUwpIHtcclxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHRpdGxlPVwiY2xvc2VcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cclxuICAgICAgPHNtYXJ0LWljb24gW2NvbG9yXT1cIidwcmltYXJ5J1wiIFtpY29uXT1cIidYJ1wiPjwvc21hcnQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgfUBlbHNlIHtcclxuICAgIDxwLWJ1dHRvbiBpY29uPVwicGkgcGktdGltZXNcIiBbcm91bmRlZF09XCJ0cnVlXCIgW3RleHRdPVwidHJ1ZVwiIHRpdGxlPVwiY2xvc2VcIiAoY2xpY2spPVwiY2FuY2VsKClcIiAvPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIDxwPlxyXG4gICAge3sgZ2V0VGV4dCgpIH19XHJcbiAgPC9wPlxyXG4gIEBpZihjb21wTGliID09PSBjb21wb25lbnRMaWJyYXJ5LlBSSU1FTkcpIHtcclxuXHJcbiAgPHAtZmlsZVVwbG9hZFxyXG4gICAgbmFtZT1cImZpbGVzW11cIlxyXG4gICAgdXJsPVwiXCJcclxuICAgIChvblNlbmQpPVwidXBsb2FkRmlsZXMoJGV2ZW50KVwiXHJcbiAgICAob25TZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiXHJcbiAgICAob25SZW1vdmUpPVwib25SZW1vdmUoJGV2ZW50KVwiXHJcbiAgICBbbXVsdGlwbGVdPVwiaXNNdWx0aXBsZVwiXHJcbiAgICBbYWNjZXB0XT1cImZpbGVGb3JtYXRzPy5qb2luKCcsJylcIlxyXG4gICAgW21heEZpbGVTaXplXT1cIm1heFNpemVNYlwiXHJcbiAgICB1cGxvYWRMYWJlbD1cIkZlbHTDtmx0w6lzXCJcclxuICAgIGNhbmNlbExhYmVsPVwiTcOpZ3NlbVwiXHJcbiAgICBjaG9vc2VMYWJlbD1cIlbDoWxhc3p0w6FzXCJcclxuICA+XHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiY29udGVudFwiPiA8L25nLXRlbXBsYXRlPlxyXG4gIDwvcC1maWxlVXBsb2FkPlxyXG4gIH1AZWxzZXtcclxuICA8c21hcnRmaWxldXBsb2FkZXJcclxuICAgIFtpMThuXT1cImkxOG5cIlxyXG4gICAgW2ZpbGVGb3JtYXRzXT1cImZpbGVGb3JtYXRzXCJcclxuICAgIFttYXhTaXplTWJdPVwibWF4U2l6ZU1iXCJcclxuICAgIFt1cGxvYWRDYWxsYmFja109XCJ1cGxvYWQuYmluZCh0aGlzKVwiXHJcbiAgICBbaXNNdWx0aXBsZV09XCJpc011bHRpcGxlXCJcclxuICA+PC9zbWFydGZpbGV1cGxvYWRlcj5cclxuXHJcbiAgfVxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZm9sZGVyTmFtZURpYWxvZ0J1dHRvbnNDb250YWluZXJcIj5cclxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIFtjb2xvcl09XCJnZXRDYW5jZWxCdXR0b25Db2xvcigpXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+XHJcbiAgICAgIHt7IGdldENhbmNlbEJ1dHRvbkxhYmVsKCkgfX1cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPCEtLSA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIFtjb2xvcl09XCJnZXRBY3Rpb25CdXR0b25Db2xvcigpXCIgKGNsaWNrKT1cInVwbG9hZCgpXCI+XHJcbiAgICAgIHt7IGdldEFjdGlvbkJ1dHRvbkxhYmVsKCkgfX1cclxuICAgIDwvYnV0dG9uPiAtLT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWZpbGUtdXBsb2FkLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL2RpYWxvZ3MvdWktYWN0aW9uLWZpbGUtdXBsb2FkLWRpYWxvZy91aS1hY3Rpb24tZmlsZS11cGxvYWQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vZGlhbG9ncy91aS1hY3Rpb24tZmlsZS11cGxvYWQtZGlhbG9nL3VpLWFjdGlvbi1maWxlLXVwbG9hZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFLN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7Ozs7O0FBT3hFLE1BQU0sT0FBTyxpQ0FBaUM7SUFZNUMsWUFDNkMsT0FBd0MsRUFDakQsT0FBeUIsRUFDbkQsT0FBa0M7UUFGQyxZQUFPLEdBQVAsT0FBTyxDQUFpQztRQUNqRCxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUNuRCxZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQVQ1QyxxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUVwQyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBNkR2QixrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQXBEeEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFLLENBQUM7UUFDdEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2Ys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QUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0F2RlUsaUNBQWlDLGtCQWFsQyx5QkFBeUIsYUFDekIsaUJBQWlCO21HQWRoQixpQ0FBaUMsd0VDWjlDLG91REFxREE7OzRGRHpDYSxpQ0FBaUM7a0JBTDdDLFNBQVM7K0JBQ0Usa0NBQWtDOzswQkFpQnpDLE1BQU07MkJBQUMseUJBQXlCOzswQkFDaEMsTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVpQWN0aW9uRGVzY3JpcHRvciB9IGZyb20gJy4uLy4uLy4uL2FwaSc7XHJcbmltcG9ydCB7IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi91aS1hY3Rpb24uZGVzY3JpcHRvci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVWlBY3Rpb25GaWxlVXBsb2FkRGlhbG9nU2VydmljZSB9IGZyb20gJy4vdWktYWN0aW9uLWZpbGUtdXBsb2FkLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU21hcnRGaWxlVXBsb2FkZXJJMThuIH0gZnJvbSAnLi4vLi4vLi4vLi4vc21hcnQtZm9ybS9zbWFydGZpbGV1cGxvYWRlci9zbWFydGZpbGV1cGxvYWRlci5tb2RlbCc7XHJcbmltcG9ydCB7IENPTVBPTkVOVF9MSUJSQVJZLCBDb21wb25lbnRMaWJyYXJ5IH0gZnJvbSAnLi4vLi4vLi4vcHJvamVjdHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdWktYWN0aW9uLWZpbGUtdXBsb2FkLWRpYWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VpLWFjdGlvbi1maWxlLXVwbG9hZC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VpLWFjdGlvbi1maWxlLXVwbG9hZC1kaWFsb2cuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25GaWxlVXBsb2FkRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBjb2RlITogc3RyaW5nO1xyXG5cclxuICBkaWFsb2dUeXBlITogJ2RpYWxvZycgfCAnaW5wdXREaWFsb2cnIHwgJ2lucHV0MkRpYWxvZyc7XHJcblxyXG4gIGRlc2NyaXB0b3I/OiBVaUFjdGlvbkRlc2NyaXB0b3I7XHJcbiAgY29tcG9uZW50TGlicmFyeSA9IENvbXBvbmVudExpYnJhcnk7XHJcbiAgaTE4bj86IFNtYXJ0RmlsZVVwbG9hZGVySTE4bjtcclxuICBtYXhTaXplTWI6IG51bWJlciA9IDI1O1xyXG4gIGZpbGVGb3JtYXRzPzogc3RyaW5nW107XHJcbiAgaXNNdWx0aXBsZT86IGJvb2xlYW47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdCgnZmlsZVVwbG9hZERpYWxvZ1NlcnZpY2UnKSBwcml2YXRlIHNlcnZpY2U6IFVpQWN0aW9uRmlsZVVwbG9hZERpYWxvZ1NlcnZpY2UsXHJcbiAgICBASW5qZWN0KENPTVBPTkVOVF9MSUJSQVJZKSBwdWJsaWMgY29tcExpYjogQ29tcG9uZW50TGlicmFyeSxcclxuICAgIHByaXZhdGUgbWFuYWdlcjogVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5jb2RlID0gdGhpcy5zZXJ2aWNlLmFjdGlvbi5jb2RlITtcclxuICAgIHRoaXMuc2V0VXAoKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuY2FuY2VsKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBzZXRVcCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuZGVzY3JpcHRvciA9IGF3YWl0IHRoaXMubWFuYWdlci5nZXRBY3Rpb25EZXNjcmlwdG9yKHRoaXMuc2VydmljZS5hY3Rpb24pO1xyXG5cclxuICAgIHRoaXMuaXNNdWx0aXBsZSA9IHRoaXMuc2VydmljZS5pc011bHRpcGxlO1xyXG5cclxuICAgIHRoaXMuaTE4biA9IHtcclxuICAgICAgYWRkRmlsZTogdGhpcy5kZXNjcmlwdG9yLnVwbG9hZD8udGl0bGUgPz8gJ2Rva3VtZW50dW0gaG96esOhYWTDoXNhJyxcclxuICAgICAgYnJvd3NlT3JEcmFnOiB0aGlzLmRlc2NyaXB0b3IudXBsb2FkPy5kZXNjcmlwdGlvbiA/PyAndGFsbMOzesOhcyB2YWd5IGJlaMO6esOhcycsXHJcbiAgICAgIGZvcm1hdHM6IHRoaXMuZGVzY3JpcHRvci51cGxvYWQ/LmZvcm1hdHMgPz8gJycsXHJcbiAgICAgIG1heFNpemU6IHRoaXMuZGVzY3JpcHRvci51cGxvYWQ/Lm1heFNpemUgPz8gJycsXHJcbiAgICAgIHVwbG9hZDogdGhpcy5kZXNjcmlwdG9yLnVwbG9hZD8udXBsb2FkQnV0dG9uVGl0bGUsXHJcbiAgICB9O1xyXG5cclxuICAgIC8vIFRPRE8gc2V0IG1heCBzaXplIGFuZCBmaWxlIGZvcm1hdHMgYnkgVWlBY3Rpb24ucGFyYW1zXHJcblxyXG4gICAgaWYgKHRoaXMuZGVzY3JpcHRvclt0aGlzLnNlcnZpY2UuaW5wdXRUeXBlTmFtZV0pIHtcclxuICAgICAgdGhpcy5kaWFsb2dUeXBlID0gdGhpcy5zZXJ2aWNlLmlucHV0VHlwZU5hbWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRpYWxvZ1R5cGUgPSB0aGlzLmRlc2NyaXB0b3IuaW5wdXREaWFsb2cgPyAnaW5wdXREaWFsb2cnIDogJ2RpYWxvZyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUaXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEudGl0bGU7XHJcbiAgfVxyXG4gIGdldFRleHQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0hLnRleHQgPz8gJyc7XHJcbiAgfVxyXG4gIGdldEFjdGlvbkJ1dHRvbkxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5kZXNjcmlwdG9yIVt0aGlzLmRpYWxvZ1R5cGVdIS5hY3Rpb25CdXR0b24uY2FwdGlvbjtcclxuICB9XHJcbiAgZ2V0QWN0aW9uQnV0dG9uQ29sb3IoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0hLmFjdGlvbkJ1dHRvbi5jb2xvcjtcclxuICB9XHJcbiAgZ2V0Q2FuY2VsQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmRlc2NyaXB0b3IhW3RoaXMuZGlhbG9nVHlwZV0hLmNhbmNlbEJ1dHRvbi5jYXB0aW9uO1xyXG4gIH1cclxuICBnZXRDYW5jZWxCdXR0b25Db2xvcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuZGVzY3JpcHRvciFbdGhpcy5kaWFsb2dUeXBlXSEuY2FuY2VsQnV0dG9uLmNvbG9yO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkKGZpbGVzOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXJ2aWNlLm9uU2F2ZShmaWxlcyk7XHJcbiAgfVxyXG4gIHVwbG9hZGVkRmlsZXM6IGFueVtdID0gW107XHJcbiAgb25TZWxlY3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy51cGxvYWRlZEZpbGVzID0gW107XHJcbiAgICBmb3IgKGxldCBmaWxlIG9mIGV2ZW50LmZpbGVzKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkZWRGaWxlcy5wdXNoKGZpbGUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25SZW1vdmUoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy51cGxvYWRlZEZpbGVzID0gW107XHJcbiAgfVxyXG5cclxuICB1cGxvYWRGaWxlcyhldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2Uub25TYXZlKHRoaXMudXBsb2FkZWRGaWxlcyk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuY2FuY2VsKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmb2xkZXJOYW1lRGlhbG9nQ29udGFpbmVyXCI+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlckNvbnRhaW5lclwiPlxyXG4gICAgPGgzIGNsYXNzPVwiY29sb3ItYWNjZW50LTcwMFwiPlxyXG4gICAgICB7eyBnZXRUaXRsZSgpIH19XHJcbiAgICA8L2gzPlxyXG4gICAgQGlmKGNvbXBMaWIgPT09IGNvbXBvbmVudExpYnJhcnkuTUFURVJJQUwpIHtcclxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHRpdGxlPVwiY2xvc2VcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cclxuICAgICAgPHNtYXJ0LWljb24gW2NvbG9yXT1cIidwcmltYXJ5J1wiIFtpY29uXT1cIidYJ1wiPjwvc21hcnQtaWNvbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgfUBlbHNlIHtcclxuICAgIDxwLWJ1dHRvbiBpY29uPVwicGkgcGktdGltZXNcIiBbcm91bmRlZF09XCJ0cnVlXCIgW3RleHRdPVwidHJ1ZVwiIHRpdGxlPVwiY2xvc2VcIiAoY2xpY2spPVwiY2FuY2VsKClcIiAvPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIDxwPlxyXG4gICAge3sgZ2V0VGV4dCgpIH19XHJcbiAgPC9wPlxyXG4gIEBpZihjb21wTGliID09PSBjb21wb25lbnRMaWJyYXJ5LlBSSU1FTkcpIHtcclxuXHJcbiAgPHAtZmlsZVVwbG9hZFxyXG4gICAgbmFtZT1cImZpbGVzW11cIlxyXG4gICAgdXJsPVwiXCJcclxuICAgIChvblNlbmQpPVwidXBsb2FkRmlsZXMoJGV2ZW50KVwiXHJcbiAgICAob25TZWxlY3QpPVwib25TZWxlY3QoJGV2ZW50KVwiXHJcbiAgICAob25SZW1vdmUpPVwib25SZW1vdmUoJGV2ZW50KVwiXHJcbiAgICBbbXVsdGlwbGVdPVwiaXNNdWx0aXBsZVwiXHJcbiAgICBbYWNjZXB0XT1cImZpbGVGb3JtYXRzPy5qb2luKCcsJylcIlxyXG4gICAgW21heEZpbGVTaXplXT1cIm1heFNpemVNYiAqIDEwMjQgKiAxMDI0XCJcclxuICAgIHVwbG9hZExhYmVsPVwiRmVsdMO2bHTDqXNcIlxyXG4gICAgY2FuY2VsTGFiZWw9XCJNw6lnc2VtXCJcclxuICAgIGNob29zZUxhYmVsPVwiVsOhbGFzenTDoXNcIlxyXG4gID5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJjb250ZW50XCI+IDwvbmctdGVtcGxhdGU+XHJcbiAgPC9wLWZpbGVVcGxvYWQ+XHJcbiAgfUBlbHNle1xyXG4gIDxzbWFydGZpbGV1cGxvYWRlclxyXG4gICAgW2kxOG5dPVwiaTE4blwiXHJcbiAgICBbZmlsZUZvcm1hdHNdPVwiZmlsZUZvcm1hdHNcIlxyXG4gICAgW21heFNpemVNYl09XCJtYXhTaXplTWJcIlxyXG4gICAgW3VwbG9hZENhbGxiYWNrXT1cInVwbG9hZC5iaW5kKHRoaXMpXCJcclxuICAgIFtpc011bHRpcGxlXT1cImlzTXVsdGlwbGVcIlxyXG4gID48L3NtYXJ0ZmlsZXVwbG9hZGVyPlxyXG5cclxuICB9XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJmb2xkZXJOYW1lRGlhbG9nQnV0dG9uc0NvbnRhaW5lclwiPlxyXG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgW2NvbG9yXT1cImdldENhbmNlbEJ1dHRvbkNvbG9yKClcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5cclxuICAgICAge3sgZ2V0Q2FuY2VsQnV0dG9uTGFiZWwoKSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8IS0tIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gW2NvbG9yXT1cImdldEFjdGlvbkJ1dHRvbkNvbG9yKClcIiAoY2xpY2spPVwidXBsb2FkKClcIj5cclxuICAgICAge3sgZ2V0QWN0aW9uQnV0dG9uTGFiZWwoKSB9fVxyXG4gICAgPC9idXR0b24+IC0tPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19