@alfresco/adf-content-services 8.1.0-15865093855 → 8.1.0-15928551305
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.
- package/esm2022/lib/aspect-list/aspect-list-dialog.component.mjs +5 -6
- package/esm2022/lib/aspect-list/aspect-list.component.mjs +5 -6
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +6 -7
- package/esm2022/lib/breadcrumb/dropdown-breadcrumb.component.mjs +4 -5
- package/esm2022/lib/category/categories-management/categories-management.component.mjs +10 -11
- package/esm2022/lib/content-metadata/components/content-metadata/content-metadata-header.component.mjs +4 -5
- package/esm2022/lib/content-metadata/components/content-metadata/content-metadata.component.mjs +6 -7
- package/esm2022/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.mjs +4 -5
- package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.mjs +8 -9
- package/esm2022/lib/content-node-selector/content-node-selector.component.mjs +6 -7
- package/esm2022/lib/content-node-selector/site-dropdown/sites-dropdown.component.mjs +4 -4
- package/esm2022/lib/content-node-share/content-node-share.dialog.mjs +11 -12
- package/esm2022/lib/content-type/content-type-dialog.component.mjs +7 -8
- package/esm2022/lib/content.module.mjs +2 -2
- package/esm2022/lib/dialogs/category-selector/category-selector.dialog.mjs +5 -6
- package/esm2022/lib/dialogs/folder/folder.dialog.mjs +7 -8
- package/esm2022/lib/dialogs/library/library.dialog.mjs +8 -9
- package/esm2022/lib/dialogs/node-lock/node-lock.dialog.mjs +9 -10
- package/esm2022/lib/directives/content-directive.module.mjs +2 -2
- package/esm2022/lib/directives/node-counter.directive.mjs +4 -5
- package/esm2022/lib/document-list/components/document-list.component.mjs +6 -7
- package/esm2022/lib/document-list/components/file-auto-download/file-auto-download.component.mjs +7 -8
- package/esm2022/lib/document-list/components/library-name-column/library-name-column.component.mjs +5 -7
- package/esm2022/lib/document-list/components/library-role-column/library-role-column.component.mjs +5 -7
- package/esm2022/lib/document-list/components/library-status-column/library-status-column.component.mjs +5 -7
- package/esm2022/lib/document-list/components/name-column/name-column.component.mjs +5 -7
- package/esm2022/lib/document-list/document-list.module.mjs +1 -5
- package/esm2022/lib/new-version-uploader/new-version-uploader.dialog.mjs +5 -6
- package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog.component.mjs +5 -6
- package/esm2022/lib/permission-manager/components/add-permission/add-permission-panel.component.mjs +7 -8
- package/esm2022/lib/permission-manager/components/add-permission/add-permission.component.mjs +4 -5
- package/esm2022/lib/permission-manager/components/permission-container/permission-container.component.mjs +6 -7
- package/esm2022/lib/permission-manager/components/permission-list/permission-list.component.mjs +5 -6
- package/esm2022/lib/permission-manager/components/user-role-column/user-role-column.component.mjs +4 -5
- package/esm2022/lib/search/components/search-check-list/search-check-list.component.mjs +6 -7
- package/esm2022/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.mjs +8 -9
- package/esm2022/lib/search/components/search-chip-list/search-chip-list.component.mjs +5 -6
- package/esm2022/lib/search/components/search-control.component.mjs +4 -5
- package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.mjs +8 -9
- package/esm2022/lib/search/components/search-datetime-range/search-datetime-range.component.mjs +4 -5
- package/esm2022/lib/search/components/search-facet-field/search-facet-field.component.mjs +6 -7
- package/esm2022/lib/search/components/search-filter/search-filter-card/search-filter-card.component.mjs +5 -6
- package/esm2022/lib/search/components/search-filter/search-filter.component.mjs +4 -5
- package/esm2022/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.mjs +5 -6
- package/esm2022/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.mjs +6 -7
- package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.mjs +6 -7
- package/esm2022/lib/search/components/search-filter-chips/search-filter-chips.component.mjs +4 -5
- package/esm2022/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.mjs +6 -7
- package/esm2022/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.mjs +6 -7
- package/esm2022/lib/search/components/search-filter-container/search-filter-container.component.mjs +5 -6
- package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tabbed.component.mjs +4 -5
- package/esm2022/lib/search/components/search-form/search-form.component.mjs +6 -7
- package/esm2022/lib/search/components/search-input/search-input.component.mjs +4 -5
- package/esm2022/lib/search/components/search-logical-filter/search-logical-filter.component.mjs +5 -6
- package/esm2022/lib/search/components/search-number-range/search-number-range.component.mjs +5 -6
- package/esm2022/lib/search/components/search-properties/search-properties.component.mjs +4 -4
- package/esm2022/lib/search/components/search-radio/search-radio.component.mjs +6 -7
- package/esm2022/lib/search/components/search-slider/search-slider.component.mjs +4 -5
- package/esm2022/lib/search/components/search-text/search-text.component.mjs +8 -9
- package/esm2022/lib/search/components/search.component.mjs +4 -5
- package/esm2022/lib/tag/tag-actions/tag-actions.component.mjs +6 -7
- package/esm2022/lib/tag/tags-creator/tags-creator.component.mjs +6 -7
- package/esm2022/lib/tree/components/tree.component.mjs +10 -11
- package/esm2022/lib/tree-view/components/tree-view.component.mjs +4 -5
- package/esm2022/lib/upload/components/file-uploading-dialog.component.mjs +6 -7
- package/esm2022/lib/upload/components/file-uploading-list-row.component.mjs +5 -6
- package/esm2022/lib/upload/components/upload-button.component.mjs +5 -6
- package/esm2022/lib/upload/components/upload-version-button.component.mjs +5 -6
- package/esm2022/lib/version-manager/version-comparison.component.mjs +4 -5
- package/esm2022/lib/version-manager/version-list.component.mjs +5 -6
- package/esm2022/lib/version-manager/version-manager.component.mjs +4 -5
- package/esm2022/lib/version-manager/version-upload.component.mjs +7 -8
- package/esm2022/lib/viewer/components/alfresco-viewer.component.mjs +6 -7
- package/fesm2022/adf-content-services.mjs +188 -192
- package/fesm2022/adf-content-services.mjs.map +1 -1
- package/package.json +4 -4
|
@@ -18,12 +18,11 @@ import { Component, Inject, ViewEncapsulation } from '@angular/core';
|
|
|
18
18
|
import { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';
|
|
19
19
|
import { CategoriesManagementComponent, CategoriesManagementMode } from '../../category';
|
|
20
20
|
import { CommonModule } from '@angular/common';
|
|
21
|
-
import {
|
|
21
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
22
22
|
import { MatButtonModule } from '@angular/material/button';
|
|
23
23
|
import * as i0 from "@angular/core";
|
|
24
24
|
import * as i1 from "@angular/material/dialog";
|
|
25
|
-
import * as i2 from "@
|
|
26
|
-
import * as i3 from "@angular/material/button";
|
|
25
|
+
import * as i2 from "@angular/material/button";
|
|
27
26
|
export class CategorySelectorDialogComponent {
|
|
28
27
|
constructor(dialog, options) {
|
|
29
28
|
this.dialog = dialog;
|
|
@@ -40,13 +39,13 @@ export class CategorySelectorDialogComponent {
|
|
|
40
39
|
this.dialog.close(true);
|
|
41
40
|
}
|
|
42
41
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CategorySelectorDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CategorySelectorDialogComponent, isStandalone: true, selector: "adf-category-selector-dialog", ngImport: i0, template: "<h1 mat-dialog-title>\n {{ 'CATEGORIES_MANAGEMENT.SELECT_EXISTING_CATEGORY' | translate }}\n</h1>\n\n<mat-dialog-content class=\"adf-dialog-content\">\n <adf-categories-management\n (categoriesChange)=\"categories = $event\"\n [categoryNameControlVisible]=\"true\"\n [managementMode]=\"categoriesManagementMode\"\n [multiSelect]=\"multiSelect\" />\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button\n data-automation-id=\"category-selector-dialog-cancel-button\"\n mat-button\n mat-dialog-close>\n {{ 'NODE_SELECTOR.CANCEL' | translate }}\n </button>\n <button\n (click)=\"selectCategories()\"\n [disabled]=\"!categories.length\"\n color=\"primary\"\n data-automation-id=\"category-selector-dialog-select-button\"\n mat-button>\n {{ 'NODE_SELECTOR.CHOOSE' | translate }}\n </button>\n</mat-dialog-actions>\n", styles: ["adf-category-selector-dialog .adf-dialog-content{height:400px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "
|
|
42
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CategorySelectorDialogComponent, isStandalone: true, selector: "adf-category-selector-dialog", ngImport: i0, template: "<h1 mat-dialog-title>\n {{ 'CATEGORIES_MANAGEMENT.SELECT_EXISTING_CATEGORY' | translate }}\n</h1>\n\n<mat-dialog-content class=\"adf-dialog-content\">\n <adf-categories-management\n (categoriesChange)=\"categories = $event\"\n [categoryNameControlVisible]=\"true\"\n [managementMode]=\"categoriesManagementMode\"\n [multiSelect]=\"multiSelect\" />\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button\n data-automation-id=\"category-selector-dialog-cancel-button\"\n mat-button\n mat-dialog-close>\n {{ 'NODE_SELECTOR.CANCEL' | translate }}\n </button>\n <button\n (click)=\"selectCategories()\"\n [disabled]=\"!categories.length\"\n color=\"primary\"\n data-automation-id=\"category-selector-dialog-select-button\"\n mat-button>\n {{ 'NODE_SELECTOR.CHOOSE' | translate }}\n </button>\n</mat-dialog-actions>\n", styles: ["adf-category-selector-dialog .adf-dialog-content{height:400px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: CategoriesManagementComponent, selector: "adf-categories-management", inputs: ["categories", "categoryNameControlVisible", "classifiableChanged", "disableRemoval", "managementMode", "parentId", "multiSelect"], outputs: ["categoriesChange", "categoryNameControlVisibleChange"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
44
43
|
}
|
|
45
44
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CategorySelectorDialogComponent, decorators: [{
|
|
46
45
|
type: Component,
|
|
47
|
-
args: [{ selector: 'adf-category-selector-dialog', standalone: true, imports: [CommonModule, MatDialogModule,
|
|
46
|
+
args: [{ selector: 'adf-category-selector-dialog', standalone: true, imports: [CommonModule, MatDialogModule, TranslatePipe, CategoriesManagementComponent, MatButtonModule], encapsulation: ViewEncapsulation.None, template: "<h1 mat-dialog-title>\n {{ 'CATEGORIES_MANAGEMENT.SELECT_EXISTING_CATEGORY' | translate }}\n</h1>\n\n<mat-dialog-content class=\"adf-dialog-content\">\n <adf-categories-management\n (categoriesChange)=\"categories = $event\"\n [categoryNameControlVisible]=\"true\"\n [managementMode]=\"categoriesManagementMode\"\n [multiSelect]=\"multiSelect\" />\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button\n data-automation-id=\"category-selector-dialog-cancel-button\"\n mat-button\n mat-dialog-close>\n {{ 'NODE_SELECTOR.CANCEL' | translate }}\n </button>\n <button\n (click)=\"selectCategories()\"\n [disabled]=\"!categories.length\"\n color=\"primary\"\n data-automation-id=\"category-selector-dialog-select-button\"\n mat-button>\n {{ 'NODE_SELECTOR.CHOOSE' | translate }}\n </button>\n</mat-dialog-actions>\n", styles: ["adf-category-selector-dialog .adf-dialog-content{height:400px}\n"] }]
|
|
48
47
|
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
49
48
|
type: Inject,
|
|
50
49
|
args: [MAT_DIALOG_DATA]
|
|
51
50
|
}] }] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktc2VsZWN0b3IuZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9kaWFsb2dzL2NhdGVnb3J5LXNlbGVjdG9yL2NhdGVnb3J5LXNlbGVjdG9yLmRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvZGlhbG9ncy9jYXRlZ29yeS1zZWxlY3Rvci9jYXRlZ29yeS1zZWxlY3Rvci5kaWFsb2cuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUcxRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQWUzRCxNQUFNLE9BQU8sK0JBQStCO0lBS3hDLFlBQ1ksTUFBOEQsRUFDckMsT0FBc0M7UUFEL0QsV0FBTSxHQUFOLE1BQU0sQ0FBd0Q7UUFDckMsWUFBTyxHQUFQLE9BQU8sQ0FBK0I7UUFOM0UsZUFBVSxHQUFlLEVBQUUsQ0FBQztRQUM1Qiw2QkFBd0IsR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLENBQUM7UUFDM0QsZ0JBQVcsR0FBRyxJQUFJLENBQUM7SUFLaEIsQ0FBQztJQUVKLFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQztJQUN4RCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDOytHQWpCUSwrQkFBK0IsOENBTzVCLGVBQWU7bUdBUGxCLCtCQUErQix3RkN2QzVDLDY5QkEyQkEseUhET2MsWUFBWSw4QkFBRSxlQUFlLDJuQkFBRSxhQUFhLGtEQUFFLDZCQUE2QixvUkFBRSxlQUFlOzs0RkFLN0YsK0JBQStCO2tCQVIzQyxTQUFTOytCQUNJLDhCQUE4QixjQUM1QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSw2QkFBNkIsRUFBRSxlQUFlLENBQUMsaUJBR3hGLGlCQUFpQixDQUFDLElBQUk7OzBCQVNoQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ01vZHVsZSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhdGVnb3J5IH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBDYXRlZ29yaWVzTWFuYWdlbWVudENvbXBvbmVudCwgQ2F0ZWdvcmllc01hbmFnZW1lbnRNb2RlIH0gZnJvbSAnLi4vLi4vY2F0ZWdvcnknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2F0ZWdvcnlTZWxlY3RvckRpYWxvZ09wdGlvbnMge1xuICAgIHNlbGVjdDogU3ViamVjdDxDYXRlZ29yeVtdPjtcbiAgICBtdWx0aVNlbGVjdD86IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWNhdGVnb3J5LXNlbGVjdG9yLWRpYWxvZycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIFRyYW5zbGF0ZVBpcGUsIENhdGVnb3JpZXNNYW5hZ2VtZW50Q29tcG9uZW50LCBNYXRCdXR0b25Nb2R1bGVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXRlZ29yeS1zZWxlY3Rvci5kaWFsb2cuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2F0ZWdvcnktc2VsZWN0b3IuZGlhbG9nLnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENhdGVnb3J5U2VsZWN0b3JEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNhdGVnb3JpZXM6IENhdGVnb3J5W10gPSBbXTtcbiAgICBjYXRlZ29yaWVzTWFuYWdlbWVudE1vZGUgPSBDYXRlZ29yaWVzTWFuYWdlbWVudE1vZGUuQVNTSUdOO1xuICAgIG11bHRpU2VsZWN0ID0gdHJ1ZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nUmVmPENhdGVnb3J5U2VsZWN0b3JEaWFsb2dDb21wb25lbnQsIGJvb2xlYW4+LFxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBvcHRpb25zOiBDYXRlZ29yeVNlbGVjdG9yRGlhbG9nT3B0aW9uc1xuICAgICkge31cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLm11bHRpU2VsZWN0ID0gdGhpcy5vcHRpb25zLm11bHRpU2VsZWN0ID8/IHRydWU7XG4gICAgfVxuXG4gICAgc2VsZWN0Q2F0ZWdvcmllcygpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLnNlbGVjdC5uZXh0KHRoaXMuY2F0ZWdvcmllcyk7XG4gICAgICAgIHRoaXMuZGlhbG9nLmNsb3NlKHRydWUpO1xuICAgIH1cbn1cbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPlxuICB7eyAnQ0FURUdPUklFU19NQU5BR0VNRU5ULlNFTEVDVF9FWElTVElOR19DQVRFR09SWScgfCB0cmFuc2xhdGUgfX1cbjwvaDE+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJhZGYtZGlhbG9nLWNvbnRlbnRcIj5cbiAgICA8YWRmLWNhdGVnb3JpZXMtbWFuYWdlbWVudFxuICAgICAgICAgICAgKGNhdGVnb3JpZXNDaGFuZ2UpPVwiY2F0ZWdvcmllcyA9ICRldmVudFwiXG4gICAgICAgICAgICBbY2F0ZWdvcnlOYW1lQ29udHJvbFZpc2libGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbbWFuYWdlbWVudE1vZGVdPVwiY2F0ZWdvcmllc01hbmFnZW1lbnRNb2RlXCJcbiAgICAgICAgICAgIFttdWx0aVNlbGVjdF09XCJtdWx0aVNlbGVjdFwiIC8+XG48L21hdC1kaWFsb2ctY29udGVudD5cbjxtYXQtZGlhbG9nLWFjdGlvbnMgYWxpZ249XCJlbmRcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJjYXRlZ29yeS1zZWxlY3Rvci1kaWFsb2ctY2FuY2VsLWJ1dHRvblwiXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICBtYXQtZGlhbG9nLWNsb3NlPlxuICAgICAgICB7eyAnTk9ERV9TRUxFQ1RPUi5DQU5DRUwnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdENhdGVnb3JpZXMoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNhdGVnb3JpZXMubGVuZ3RoXCJcbiAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJjYXRlZ29yeS1zZWxlY3Rvci1kaWFsb2ctc2VsZWN0LWJ1dHRvblwiXG4gICAgICAgICAgICBtYXQtYnV0dG9uPlxuICAgICAgICB7eyAnTk9ERV9TRUxFQ1RPUi5DSE9PU0UnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
|
|
@@ -5,7 +5,7 @@ import { TranslationService } from '@alfresco/adf-core';
|
|
|
5
5
|
import { NodesApiService } from '../../common/services/nodes-api.service';
|
|
6
6
|
import { forbidEndingDot, forbidOnlySpaces, forbidSpecialCharacters } from './folder-name.validators';
|
|
7
7
|
import { CommonModule } from '@angular/common';
|
|
8
|
-
import {
|
|
8
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
9
9
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
10
10
|
import { MatInputModule } from '@angular/material/input';
|
|
11
11
|
import { AutoFocusDirective } from '../../directives';
|
|
@@ -17,10 +17,9 @@ import * as i2 from "@angular/material/dialog";
|
|
|
17
17
|
import * as i3 from "../../common/services/nodes-api.service";
|
|
18
18
|
import * as i4 from "@alfresco/adf-core";
|
|
19
19
|
import * as i5 from "@angular/common";
|
|
20
|
-
import * as i6 from "@
|
|
21
|
-
import * as i7 from "@angular/material/
|
|
22
|
-
import * as i8 from "@angular/material/
|
|
23
|
-
import * as i9 from "@angular/material/button";
|
|
20
|
+
import * as i6 from "@angular/material/form-field";
|
|
21
|
+
import * as i7 from "@angular/material/input";
|
|
22
|
+
import * as i8 from "@angular/material/button";
|
|
24
23
|
export class FolderDialogComponent {
|
|
25
24
|
get editing() {
|
|
26
25
|
return !!this.data.folder;
|
|
@@ -120,14 +119,14 @@ export class FolderDialogComponent {
|
|
|
120
119
|
return (value || '').trim();
|
|
121
120
|
}
|
|
122
121
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FolderDialogComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.MatDialogRef }, { token: i3.NodesApiService }, { token: i4.TranslationService }, { token: MAT_DIALOG_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
123
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FolderDialogComponent, isStandalone: true, selector: "adf-folder-dialog", outputs: { error: "error", success: "success" }, host: { classAttribute: "adf-folder-dialog" }, ngImport: i0, template: "<h2 data-automation-id=\"adf-folder-dialog-title\" class=\"adf-folder-dialog-title\" mat-dialog-title>\n {{ (editing ? editTitle : createTitle) | translate }}\n</h2>\n\n<mat-dialog-content class=\"adf-folder-dialog-content\">\n <form [formGroup]=\"form\" (submit)=\"submit()\">\n <mat-form-field class=\"adf-full-width\">\n <mat-label>{{ 'CORE.FOLDER_DIALOG.FOLDER_NAME.LABEL' | translate }}</mat-label>\n <input\n id=\"adf-folder-name-input\"\n [attr.aria-label]=\"'CORE.FOLDER_DIALOG.FOLDER_NAME.LABEL' | translate\"\n matInput\n required\n [formControlName]=\"'name'\"\n adf-auto-focus\n />\n\n <mat-hint *ngIf=\"form.controls['name'].dirty\">\n <span *ngIf=\"form.controls['name'].errors?.required\">\n {{ 'CORE.FOLDER_DIALOG.FOLDER_NAME.ERRORS.REQUIRED' | translate }}\n </span>\n\n <span *ngIf=\"!form.controls['name'].errors?.required && form.controls['name'].errors?.message\">\n {{ form.controls['name'].errors?.message | translate }}\n </span>\n </mat-hint>\n </mat-form-field>\n\n <mat-form-field class=\"adf-full-width\">\n <mat-label>{{ 'CORE.FOLDER_DIALOG.FOLDER_TITLE.LABEL' | translate }}</mat-label>\n <input\n id=\"adf-folder-title-input\"\n matInput\n [attr.aria-label]=\"'CORE.FOLDER_DIALOG.FOLDER_TITLE.LABEL' | translate\"\n [formControlName]=\"'title'\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"adf-full-width\">\n <mat-label>{{ 'CORE.FOLDER_DIALOG.FOLDER_DESCRIPTION.LABEL' | translate }}</mat-label>\n <textarea\n id=\"adf-folder-description-input\"\n matInput\n [attr.aria-label]=\"'CORE.FOLDER_DIALOG.FOLDER_DESCRIPTION.LABEL' | translate\"\n rows=\"4\"\n [formControlName]=\"'description'\">\n </textarea>\n </mat-form-field>\n </form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"adf-dialog-buttons\">\n <span class=\"adf-fill-remaining-space\"></span>\n\n <button\n mat-button\n id=\"adf-folder-cancel-button\"\n mat-dialog-close>\n {{ 'CORE.FOLDER_DIALOG.CANCEL_BUTTON.LABEL' | translate }}\n </button>\n\n <button class=\"adf-dialog-action-button\"\n id=\"adf-folder-create-button\"\n mat-button\n (click)=\"submit()\"\n [disabled]=\"!form.valid || disableSubmitButton\">\n {{\n (editing\n ? 'CORE.FOLDER_DIALOG.UPDATE_BUTTON.LABEL'\n : 'CORE.FOLDER_DIALOG.CREATE_BUTTON.LABEL'\n ) | translate\n }}\n </button>\n</mat-dialog-actions>\n", styles: [".adf-folder-dialog .adf-folder-dialog-content{padding:0;overflow:unset}.adf-folder-dialog .adf-folder-dialog-content .mat-mdc-form-field-infix{padding-bottom:3.5px}.adf-folder-dialog .adf-folder-dialog-content .mat-form-field-hide-placeholder .mdc-floating-label{padding-top:20px}.adf-folder-dialog .adf-folder-dialog-content .mat-mdc-form-field-hint-wrapper{padding-left:0;margin-left:-2px;color:var(--adf-theme-foreground-secondary-text-color);font-size:10.5px}.adf-folder-dialog .adf-folder-dialog-title{display:inline-flex}.adf-fill-remaining-space{flex:1 1 auto}.adf-full-width{width:100%}.adf-dialog-buttons button{text-transform:uppercase}.adf-dialog-action-button:enabled{color:var(--theme-primary-color)}.adf-dialog-action-button:disabled>span{color:var(--adf-theme-foreground-text-color-054)}@media screen and (width <= 380px){.adf-folder-dialog-title{margin:0}.adf-dialog-buttons{padding:0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "
|
|
122
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FolderDialogComponent, isStandalone: true, selector: "adf-folder-dialog", outputs: { error: "error", success: "success" }, host: { classAttribute: "adf-folder-dialog" }, ngImport: i0, template: "<h2 data-automation-id=\"adf-folder-dialog-title\" class=\"adf-folder-dialog-title\" mat-dialog-title>\n {{ (editing ? editTitle : createTitle) | translate }}\n</h2>\n\n<mat-dialog-content class=\"adf-folder-dialog-content\">\n <form [formGroup]=\"form\" (submit)=\"submit()\">\n <mat-form-field class=\"adf-full-width\">\n <mat-label>{{ 'CORE.FOLDER_DIALOG.FOLDER_NAME.LABEL' | translate }}</mat-label>\n <input\n id=\"adf-folder-name-input\"\n [attr.aria-label]=\"'CORE.FOLDER_DIALOG.FOLDER_NAME.LABEL' | translate\"\n matInput\n required\n [formControlName]=\"'name'\"\n adf-auto-focus\n />\n\n <mat-hint *ngIf=\"form.controls['name'].dirty\">\n <span *ngIf=\"form.controls['name'].errors?.required\">\n {{ 'CORE.FOLDER_DIALOG.FOLDER_NAME.ERRORS.REQUIRED' | translate }}\n </span>\n\n <span *ngIf=\"!form.controls['name'].errors?.required && form.controls['name'].errors?.message\">\n {{ form.controls['name'].errors?.message | translate }}\n </span>\n </mat-hint>\n </mat-form-field>\n\n <mat-form-field class=\"adf-full-width\">\n <mat-label>{{ 'CORE.FOLDER_DIALOG.FOLDER_TITLE.LABEL' | translate }}</mat-label>\n <input\n id=\"adf-folder-title-input\"\n matInput\n [attr.aria-label]=\"'CORE.FOLDER_DIALOG.FOLDER_TITLE.LABEL' | translate\"\n [formControlName]=\"'title'\"\n />\n </mat-form-field>\n\n <mat-form-field class=\"adf-full-width\">\n <mat-label>{{ 'CORE.FOLDER_DIALOG.FOLDER_DESCRIPTION.LABEL' | translate }}</mat-label>\n <textarea\n id=\"adf-folder-description-input\"\n matInput\n [attr.aria-label]=\"'CORE.FOLDER_DIALOG.FOLDER_DESCRIPTION.LABEL' | translate\"\n rows=\"4\"\n [formControlName]=\"'description'\">\n </textarea>\n </mat-form-field>\n </form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"adf-dialog-buttons\">\n <span class=\"adf-fill-remaining-space\"></span>\n\n <button\n mat-button\n id=\"adf-folder-cancel-button\"\n mat-dialog-close>\n {{ 'CORE.FOLDER_DIALOG.CANCEL_BUTTON.LABEL' | translate }}\n </button>\n\n <button class=\"adf-dialog-action-button\"\n id=\"adf-folder-create-button\"\n mat-button\n (click)=\"submit()\"\n [disabled]=\"!form.valid || disableSubmitButton\">\n {{\n (editing\n ? 'CORE.FOLDER_DIALOG.UPDATE_BUTTON.LABEL'\n : 'CORE.FOLDER_DIALOG.CREATE_BUTTON.LABEL'\n ) | translate\n }}\n </button>\n</mat-dialog-actions>\n", styles: [".adf-folder-dialog .adf-folder-dialog-content{padding:0;overflow:unset}.adf-folder-dialog .adf-folder-dialog-content .mat-mdc-form-field-infix{padding-bottom:3.5px}.adf-folder-dialog .adf-folder-dialog-content .mat-form-field-hide-placeholder .mdc-floating-label{padding-top:20px}.adf-folder-dialog .adf-folder-dialog-content .mat-mdc-form-field-hint-wrapper{padding-left:0;margin-left:-2px;color:var(--adf-theme-foreground-secondary-text-color);font-size:10.5px}.adf-folder-dialog .adf-folder-dialog-title{display:inline-flex}.adf-fill-remaining-space{flex:1 1 auto}.adf-full-width{width:100%}.adf-dialog-buttons button{text-transform:uppercase}.adf-dialog-action-button:enabled{color:var(--theme-primary-color)}.adf-dialog-action-button:disabled>span{color:var(--adf-theme-foreground-text-color-054)}@media screen and (width <= 380px){.adf-folder-dialog-title{margin:0}.adf-dialog-buttons{padding:0}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: AutoFocusDirective, selector: "[adf-auto-focus]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
124
123
|
}
|
|
125
124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FolderDialogComponent, decorators: [{
|
|
126
125
|
type: Component,
|
|
127
126
|
args: [{ selector: 'adf-folder-dialog', standalone: true, imports: [
|
|
128
127
|
CommonModule,
|
|
129
128
|
MatDialogModule,
|
|
130
|
-
|
|
129
|
+
TranslatePipe,
|
|
131
130
|
ReactiveFormsModule,
|
|
132
131
|
MatFormFieldModule,
|
|
133
132
|
MatInputModule,
|
|
@@ -144,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
144
143
|
}], success: [{
|
|
145
144
|
type: Output
|
|
146
145
|
}] } });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sZGVyLmRpYWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvZGlhbG9ncy9mb2xkZXIvZm9sZGVyLmRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvZGlhbG9ncy9mb2xkZXIvZm9sZGVyLmRpYWxvZy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pJLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBb0IsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxF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eXFDQUNuQixrQkFBa0Isa1lBQ2xCLGNBQWMsMldBQ2Qsa0JBQWtCLDREQUNsQixlQUFlOzs0RkFPVixxQkFBcUI7a0JBbEJqQyxTQUFTOytCQUNJLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixlQUFlO3FCQUNsQixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFOzswQkFzRC9CLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsZUFBZTt5Q0FoRDNCLEtBQUs7c0JBREosTUFBTTtnQkFPUCxPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIEluamVjdCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dNb2R1bGUsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgTm9kZXNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL25vZGVzLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IGZvcmJpZEVuZGluZ0RvdCwgZm9yYmlkT25seVNwYWNlcywgZm9yYmlkU3BlY2lhbENoYXJhY3RlcnMgfSBmcm9tICcuL2ZvbGRlci1uYW1lLnZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IEF1dG9Gb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtZm9sZGVyLWRpYWxvZycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIEF1dG9Gb2N1c0RpcmVjdGl2ZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9sZGVyLmRpYWxvZy5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb2xkZXIuZGlhbG9nLnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtZm9sZGVyLWRpYWxvZycgfVxufSlcbmV4cG9ydCBjbGFzcyBGb2xkZXJEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgZWRpdC9jcmVhdGUgZm9sZGVyIGdpdmUgZXJyb3IgZm9yIGV4YW1wbGUgYSBmb2xkZXIgd2l0aCBzYW1lIG5hbWUgYWxyZWFkeSBleGlzdFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBlZGl0L2NyZWF0ZSBmb2xkZXIgaXMgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQvbW9kaWZpZWRcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzdWNjZXNzOiBFdmVudEVtaXR0ZXI8Tm9kZT4gPSBuZXcgRXZlbnRFbWl0dGVyPE5vZGU+KCk7XG5cbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICAgIGZvbGRlcjogTm9kZSA9IG51bGw7XG5cbiAgICBlZGl0VGl0bGUgPSAnQ09SRS5GT0xERVJfRElBTE9HLkVESVRfRk9MREVSX1RJVExFJztcbiAgICBjcmVhdGVUaXRsZSA9ICdDT1JFLkZPTERFUl9ESUFMT0cuQ1JFQVRFX0ZPTERFUl9USVRMRSc7XG4gICAgbm9kZVR5cGUgPSAnY206Zm9sZGVyJztcblxuICAgIGRpc2FibGVTdWJtaXRCdXR0b24gPSBmYWxzZTtcblxuICAgIGdldCBlZGl0aW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmRhdGEuZm9sZGVyO1xuICAgIH1cblxuICAgIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyaW1tZWRWYWx1ZSh0aGlzLmZvcm0udmFsdWUubmFtZSk7XG4gICAgfVxuXG4gICAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyaW1tZWRWYWx1ZSh0aGlzLmZvcm0udmFsdWUudGl0bGUpO1xuICAgIH1cblxuICAgIGdldCBkZXNjcmlwdGlvbigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmltbWVkVmFsdWUodGhpcy5mb3JtLnZhbHVlLmRlc2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBwcm9wZXJ0aWVzKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ2NtOnRpdGxlJzogdGhpcy50aXRsZSxcbiAgICAgICAgICAgICdjbTpkZXNjcmlwdGlvbic6IHRoaXMuZGVzY3JpcHRpb25cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nUmVmPEZvbGRlckRpYWxvZ0NvbXBvbmVudD4sXG4gICAgICAgIHByaXZhdGUgbm9kZXNBcGk6IE5vZGVzQXBpU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSlcbiAgICAgICAgcHVibGljIGRhdGE6IGFueVxuICAgICkge1xuICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5lZGl0VGl0bGUgPSBkYXRhLmVkaXRUaXRsZSB8fCB0aGlzLmVkaXRUaXRsZTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlVGl0bGUgPSBkYXRhLmNyZWF0ZVRpdGxlIHx8IHRoaXMuY3JlYXRlVGl0bGU7XG4gICAgICAgICAgICB0aGlzLm5vZGVUeXBlID0gZGF0YS5ub2RlVHlwZSB8fCB0aGlzLm5vZGVUeXBlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IHsgZm9sZGVyIH0gPSB0aGlzLmRhdGE7XG4gICAgICAgIGxldCBuYW1lID0gJyc7XG4gICAgICAgIGxldCB0aXRsZSA9ICcnO1xuICAgICAgICBsZXQgZGVzY3JpcHRpb24gPSAnJztcblxuICAgICAgICBpZiAoZm9sZGVyKSB7XG4gICAgICAgICAgICBjb25zdCB7IHByb3BlcnRpZXMgfSA9IGZvbGRlcjtcblxuICAgICAgICAgICAgbmFtZSA9IGZvbGRlci5uYW1lIHx8ICcnO1xuICAgICAgICAgICAgdGl0bGUgPSBwcm9wZXJ0aWVzPy5bJ2NtOnRpdGxlJ10gPz8gJyc7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbiA9IHByb3BlcnRpZXM/LlsnY206ZGVzY3JpcHRpb24nXSA/PyAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB7XG4gICAgICAgICAgICBuYW1lOiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgZm9yYmlkU3BlY2lhbENoYXJhY3RlcnMsIGZvcmJpZEVuZGluZ0RvdCwgZm9yYmlkT25seVNwYWNlc11cbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIG5hbWU6IFtuYW1lLCB2YWxpZGF0b3JzLm5hbWVdLFxuICAgICAgICAgICAgdGl0bGU6IFt0aXRsZV0sXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogW2Rlc2NyaXB0aW9uXVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbJ25hbWUnXS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+ICh0aGlzLmRpc2FibGVTdWJtaXRCdXR0b24gPSBmYWxzZSkpO1xuICAgIH1cblxuICAgIHN1Ym1pdCgpIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlU3VibWl0QnV0dG9uID0gdHJ1ZTtcblxuICAgICAgICAodGhpcy5lZGl0aW5nID8gdGhpcy5lZGl0KCkgOiB0aGlzLmNyZWF0ZSgpKS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAoZm9sZGVyOiBOb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQoZm9sZGVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZy5jbG9zZShmb2xkZXIpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcilcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBoYW5kbGVFcnJvcihlcnJvcjogYW55KTogYW55IHtcbiAgICAgICAgbGV0IGVycm9yTWVzc2FnZSA9ICdDT1JFLk1FU1NBR0VTLkVSUk9SUy5HRU5FUklDJztcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgIGVycm9yOiB7IHN0YXR1c0NvZGUgfVxuICAgICAgICAgICAgfSA9IEpTT04ucGFyc2UoZXJyb3IubWVzc2FnZSk7XG5cbiAgICAgICAgICAgIGlmIChzdGF0dXNDb2RlID09PSA0MDkpIHtcbiAgICAgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAnQ09SRS5NRVNTQUdFUy5FUlJPUlMuRVhJU1RFTlRfRk9MREVSJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAvKiBEbyBub3RoaW5nLCBrZWVwIHRoZSBvcmlnaW5hbCBtZXNzYWdlICovXG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVycm9yLmVtaXQodGhpcy50cmFuc2xhdGlvbi5pbnN0YW50KGVycm9yTWVzc2FnZSkpO1xuXG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZSgpOiBPYnNlcnZhYmxlPE5vZGU+IHtcbiAgICAgICAgY29uc3QgcGFyZW50Tm9kZUlkID0gdGhpcy5kYXRhLnBhcmVudE5vZGVJZDtcblxuICAgICAgICByZXR1cm4gdGhpcy5ub2Rlc0FwaS5jcmVhdGVGb2xkZXIocGFyZW50Tm9kZUlkLCB7IG5hbWU6IHRoaXMubmFtZSwgcHJvcGVydGllczogdGhpcy5wcm9wZXJ0aWVzLCBub2RlVHlwZTogdGhpcy5ub2RlVHlwZSB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVkaXQoKTogT2JzZXJ2YWJsZTxOb2RlPiB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoaXMuZGF0YS5mb2xkZXIuaWQ7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZXNBcGkudXBkYXRlTm9kZShub2RlSWQsIHsgbmFtZTogdGhpcy5uYW1lLCBwcm9wZXJ0aWVzOiB0aGlzLnByb3BlcnRpZXMgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRUcmltbWVkVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAodmFsdWUgfHwgJycpLnRyaW0oKTtcbiAgICB9XG59XG4iLCI8aDIgZGF0YS1hdXRvbWF0aW9uLWlkPVwiYWRmLWZvbGRlci1kaWFsb2ctdGl0bGVcIiBjbGFzcz1cImFkZi1mb2xkZXItZGlhbG9nLXRpdGxlXCIgbWF0LWRpYWxvZy10aXRsZT5cbiAgICB7eyAoZWRpdGluZyA/IGVkaXRUaXRsZSA6IGNyZWF0ZVRpdGxlKSB8IHRyYW5zbGF0ZSB9fVxuPC9oMj5cblxuPG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImFkZi1mb2xkZXItZGlhbG9nLWNvbnRlbnRcIj5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAoc3VibWl0KT1cInN1Ym1pdCgpXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdDT1JFLkZPTERFUl9ESUFMT0cuRk9MREVSX05BTUUuTEFCRUwnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBpZD1cImFkZi1mb2xkZXItbmFtZS1pbnB1dFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ09SRS5GT0xERVJfRElBTE9HLkZPTERFUl9OQU1FLkxBQkVMJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ25hbWUnXCJcbiAgICAgICAgICAgICAgICBhZGYtYXV0by1mb2N1c1xuICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgPG1hdC1oaW50ICpuZ0lmPVwiZm9ybS5jb250cm9sc1snbmFtZSddLmRpcnR5XCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJmb3JtLmNvbnRyb2xzWyduYW1lJ10uZXJyb3JzPy5yZXF1aXJlZFwiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnQ09SRS5GT0xERVJfRElBTE9HLkZPTERFUl9OQU1FLkVSUk9SUy5SRVFVSVJFRCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFmb3JtLmNvbnRyb2xzWyduYW1lJ10uZXJyb3JzPy5yZXF1aXJlZCAmJiBmb3JtLmNvbnRyb2xzWyduYW1lJ10uZXJyb3JzPy5tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IGZvcm0uY29udHJvbHNbJ25hbWUnXS5lcnJvcnM/Lm1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L21hdC1oaW50PlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdDT1JFLkZPTERFUl9ESUFMT0cuRk9MREVSX1RJVExFLkxBQkVMJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgaWQ9XCJhZGYtZm9sZGVyLXRpdGxlLWlucHV0XCJcbiAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NPUkUuRk9MREVSX0RJQUxPRy5GT0xERVJfVElUTEUuTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIid0aXRsZSdcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGYtZnVsbC13aWR0aFwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbD57eyAnQ09SRS5GT0xERVJfRElBTE9HLkZPTERFUl9ERVNDUklQVElPTi5MQUJFTCcgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgIGlkPVwiYWRmLWZvbGRlci1kZXNjcmlwdGlvbi1pbnB1dFwiXG4gICAgICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidDT1JFLkZPTERFUl9ESUFMT0cuRk9MREVSX0RFU0NSSVBUSU9OLkxBQkVMJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgcm93cz1cIjRcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ2Rlc2NyaXB0aW9uJ1wiPlxuICAgICAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8L2Zvcm0+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cImFkZi1kaWFsb2ctYnV0dG9uc1wiPlxuICAgIDxzcGFuIGNsYXNzPVwiYWRmLWZpbGwtcmVtYWluaW5nLXNwYWNlXCI+PC9zcGFuPlxuXG4gICAgPGJ1dHRvblxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgIGlkPVwiYWRmLWZvbGRlci1jYW5jZWwtYnV0dG9uXCJcbiAgICAgICAgbWF0LWRpYWxvZy1jbG9zZT5cbiAgICAgICAge3sgJ0NPUkUuRk9MREVSX0RJQUxPRy5DQU5DRUxfQlVUVE9OLkxBQkVMJyB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiBjbGFzcz1cImFkZi1kaWFsb2ctYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICBpZD1cImFkZi1mb2xkZXItY3JlYXRlLWJ1dHRvblwiXG4gICAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwic3VibWl0KClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFmb3JtLnZhbGlkIHx8IGRpc2FibGVTdWJtaXRCdXR0b25cIj5cbiAgICAgICAge3tcbiAgICAgICAgKGVkaXRpbmdcbiAgICAgICAgPyAnQ09SRS5GT0xERVJfRElBTE9HLlVQREFURV9CVVRUT04uTEFCRUwnXG4gICAgICAgIDogJ0NPUkUuRk9MREVSX0RJQUxPRy5DUkVBVEVfQlVUVE9OLkxBQkVMJ1xuICAgICAgICApIHwgdHJhbnNsYXRlXG4gICAgICAgIH19XG4gICAgPC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9sZGVyLmRpYWxvZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvZGlhbG9ncy9mb2xkZXIvZm9sZGVyLmRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvZGlhbG9ncy9mb2xkZXIvZm9sZGVyLmRpYWxvZy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pJLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBb0IsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkcsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7Ozs7QUFvQmhFLE1BQU0sT0FBTyxxQkFBcUI7SUFzQjlCLElBQUksT0FBTztRQUNQLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFZLFVBQVU7UUFDbEIsT0FBTztZQUNILFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSztZQUN0QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsV0FBVztTQUNyQyxDQUFDO0lBQ04sQ0FBQztJQUlELFlBQ1ksV0FBK0IsRUFDL0IsTUFBMkMsRUFDM0MsUUFBeUIsRUFDekIsV0FBK0IsRUFHaEMsSUFBUztRQU5SLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixXQUFNLEdBQU4sTUFBTSxDQUFxQztRQUMzQyxhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFHaEMsU0FBSSxHQUFKLElBQUksQ0FBSztRQXJEcEI7O1dBRUc7UUFFSCxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVoQzs7V0FFRztRQUVILFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBR25DLFdBQU0sR0FBUyxJQUFJLENBQUM7UUFFcEIsY0FBUyxHQUFHLHNDQUFzQyxDQUFDO1FBQ25ELGdCQUFXLEdBQUcsd0NBQXdDLENBQUM7UUFDdkQsYUFBUSxHQUFHLFdBQVcsQ0FBQztRQUV2Qix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUF5QlgsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQVc3QyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDbEQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDeEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDbkQsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ0osTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDN0IsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBRXJCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDVCxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxDQUFDO1lBRTlCLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN6QixLQUFLLEdBQUcsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZDLFdBQVcsR0FBRyxVQUFVLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2RCxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUc7WUFDZixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLHVCQUF1QixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQztTQUMxRixDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUMvQixJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUksQ0FBQztZQUM3QixLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDZCxXQUFXLEVBQUUsQ0FBQyxXQUFXLENBQUM7U0FDN0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMxSSxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFFaEMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FDbEQsQ0FBQyxNQUFZLEVBQUUsRUFBRTtZQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FDckMsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNsQixJQUFJLFlBQVksR0FBRyw4QkFBOEIsQ0FBQztRQUVsRCxJQUFJLENBQUM7WUFDRCxNQUFNLEVBQ0YsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQ3hCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFOUIsSUFBSSxVQUFVLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ3JCLFlBQVksR0FBRyxzQ0FBc0MsQ0FBQztZQUMxRCxDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDWCwyQ0FBMkM7UUFDL0MsQ0FBQztRQUVELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFFeEQsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVPLE1BQU07UUFDVixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUU1QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMvSCxDQUFDO0lBRU8sSUFBSTtRQUNSLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUVuQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQWE7UUFDakMsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDOytHQXhJUSxxQkFBcUIsaUpBcURsQixlQUFlO21HQXJEbEIscUJBQXFCLDZLQ25EbEMsazJGQTBFQSxpOEJEckNRLFlBQVksa0lBQ1osZUFBZSwybkJBQ2YsYUFBYSxpREFDYixtQkFBbUIseXFDQUNuQixrQkFBa0Isa1lBQ2xCLGNBQWMsMldBQ2Qsa0JBQWtCLDREQUNsQixlQUFlOzs0RkFPVixxQkFBcUI7a0JBbEJqQyxTQUFTOytCQUNJLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixlQUFlO3FCQUNsQixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFOzswQkFzRC9CLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsZUFBZTt5Q0FoRDNCLEtBQUs7c0JBREosTUFBTTtnQkFPUCxPQUFPO3NCQUROLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIEluamVjdCwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dNb2R1bGUsIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgTm9kZXNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL25vZGVzLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IGZvcmJpZEVuZGluZ0RvdCwgZm9yYmlkT25seVNwYWNlcywgZm9yYmlkU3BlY2lhbENoYXJhY3RlcnMgfSBmcm9tICcuL2ZvbGRlci1uYW1lLnZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBBdXRvRm9jdXNEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWZvbGRlci1kaWFsb2cnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlUGlwZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgICAgQXV0b0ZvY3VzRGlyZWN0aXZlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGVcbiAgICBdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2xkZXIuZGlhbG9nLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvbGRlci5kaWFsb2cuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1mb2xkZXItZGlhbG9nJyB9XG59KVxuZXhwb3J0IGNsYXNzIEZvbGRlckRpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBlZGl0L2NyZWF0ZSBmb2xkZXIgZ2l2ZSBlcnJvciBmb3IgZXhhbXBsZSBhIGZvbGRlciB3aXRoIHNhbWUgbmFtZSBhbHJlYWR5IGV4aXN0XG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgZWRpdC9jcmVhdGUgZm9sZGVyIGlzIHN1Y2Nlc3NmdWxseSBjcmVhdGVkL21vZGlmaWVkXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgc3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXI8Tm9kZT4oKTtcblxuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gICAgZm9sZGVyOiBOb2RlID0gbnVsbDtcblxuICAgIGVkaXRUaXRsZSA9ICdDT1JFLkZPTERFUl9ESUFMT0cuRURJVF9GT0xERVJfVElUTEUnO1xuICAgIGNyZWF0ZVRpdGxlID0gJ0NPUkUuRk9MREVSX0RJQUxPRy5DUkVBVEVfRk9MREVSX1RJVExFJztcbiAgICBub2RlVHlwZSA9ICdjbTpmb2xkZXInO1xuXG4gICAgZGlzYWJsZVN1Ym1pdEJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgZ2V0IGVkaXRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuZGF0YS5mb2xkZXI7XG4gICAgfVxuXG4gICAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJpbW1lZFZhbHVlKHRoaXMuZm9ybS52YWx1ZS5uYW1lKTtcbiAgICB9XG5cbiAgICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJpbW1lZFZhbHVlKHRoaXMuZm9ybS52YWx1ZS50aXRsZSk7XG4gICAgfVxuXG4gICAgZ2V0IGRlc2NyaXB0aW9uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRyaW1tZWRWYWx1ZSh0aGlzLmZvcm0udmFsdWUuZGVzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IHByb3BlcnRpZXMoKTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnY206dGl0bGUnOiB0aGlzLnRpdGxlLFxuICAgICAgICAgICAgJ2NtOmRlc2NyaXB0aW9uJzogdGhpcy5kZXNjcmlwdGlvblxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2dSZWY8Rm9sZGVyRGlhbG9nQ29tcG9uZW50PixcbiAgICAgICAgcHJpdmF0ZSBub2Rlc0FwaTogTm9kZXNBcGlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0aW9uOiBUcmFuc2xhdGlvblNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgICAgICBwdWJsaWMgZGF0YTogYW55XG4gICAgKSB7XG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmVkaXRUaXRsZSA9IGRhdGEuZWRpdFRpdGxlIHx8IHRoaXMuZWRpdFRpdGxlO1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVUaXRsZSA9IGRhdGEuY3JlYXRlVGl0bGUgfHwgdGhpcy5jcmVhdGVUaXRsZTtcbiAgICAgICAgICAgIHRoaXMubm9kZVR5cGUgPSBkYXRhLm5vZGVUeXBlIHx8IHRoaXMubm9kZVR5cGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3QgeyBmb2xkZXIgfSA9IHRoaXMuZGF0YTtcbiAgICAgICAgbGV0IG5hbWUgPSAnJztcbiAgICAgICAgbGV0IHRpdGxlID0gJyc7XG4gICAgICAgIGxldCBkZXNjcmlwdGlvbiA9ICcnO1xuXG4gICAgICAgIGlmIChmb2xkZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgcHJvcGVydGllcyB9ID0gZm9sZGVyO1xuXG4gICAgICAgICAgICBuYW1lID0gZm9sZGVyLm5hbWUgfHwgJyc7XG4gICAgICAgICAgICB0aXRsZSA9IHByb3BlcnRpZXM/LlsnY206dGl0bGUnXSA/PyAnJztcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gcHJvcGVydGllcz8uWydjbTpkZXNjcmlwdGlvbiddID8/ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IHtcbiAgICAgICAgICAgIG5hbWU6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBmb3JiaWRTcGVjaWFsQ2hhcmFjdGVycywgZm9yYmlkRW5kaW5nRG90LCBmb3JiaWRPbmx5U3BhY2VzXVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgbmFtZTogW25hbWUsIHZhbGlkYXRvcnMubmFtZV0sXG4gICAgICAgICAgICB0aXRsZTogW3RpdGxlXSxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBbZGVzY3JpcHRpb25dXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1snbmFtZSddLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKCkgPT4gKHRoaXMuZGlzYWJsZVN1Ym1pdEJ1dHRvbiA9IGZhbHNlKSk7XG4gICAgfVxuXG4gICAgc3VibWl0KCkge1xuICAgICAgICB0aGlzLmRpc2FibGVTdWJtaXRCdXR0b24gPSB0cnVlO1xuXG4gICAgICAgICh0aGlzLmVkaXRpbmcgPyB0aGlzLmVkaXQoKSA6IHRoaXMuY3JlYXRlKCkpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChmb2xkZXI6IE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1Y2Nlc3MuZW1pdChmb2xkZXIpO1xuICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nLmNsb3NlKGZvbGRlcik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKGVycm9yKSA9PiB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiBhbnkge1xuICAgICAgICBsZXQgZXJyb3JNZXNzYWdlID0gJ0NPUkUuTUVTU0FHRVMuRVJST1JTLkdFTkVSSUMnO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgZXJyb3I6IHsgc3RhdHVzQ29kZSB9XG4gICAgICAgICAgICB9ID0gSlNPTi5wYXJzZShlcnJvci5tZXNzYWdlKTtcblxuICAgICAgICAgICAgaWYgKHN0YXR1c0NvZGUgPT09IDQwOSkge1xuICAgICAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICdDT1JFLk1FU1NBR0VTLkVSUk9SUy5FWElTVEVOVF9GT0xERVInO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8qIERvIG5vdGhpbmcsIGtlZXAgdGhlIG9yaWdpbmFsIG1lc3NhZ2UgKi9cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZXJyb3IuZW1pdCh0aGlzLnRyYW5zbGF0aW9uLmluc3RhbnQoZXJyb3JNZXNzYWdlKSk7XG5cbiAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlKCk6IE9ic2VydmFibGU8Tm9kZT4ge1xuICAgICAgICBjb25zdCBwYXJlbnROb2RlSWQgPSB0aGlzLmRhdGEucGFyZW50Tm9kZUlkO1xuXG4gICAgICAgIHJldHVybiB0aGlzLm5vZGVzQXBpLmNyZWF0ZUZvbGRlcihwYXJlbnROb2RlSWQsIHsgbmFtZTogdGhpcy5uYW1lLCBwcm9wZXJ0aWVzOiB0aGlzLnByb3BlcnRpZXMsIG5vZGVUeXBlOiB0aGlzLm5vZGVUeXBlIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZWRpdCgpOiBPYnNlcnZhYmxlPE5vZGU+IHtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gdGhpcy5kYXRhLmZvbGRlci5pZDtcblxuICAgICAgICByZXR1cm4gdGhpcy5ub2Rlc0FwaS51cGRhdGVOb2RlKG5vZGVJZCwgeyBuYW1lOiB0aGlzLm5hbWUsIHByb3BlcnRpZXM6IHRoaXMucHJvcGVydGllcyB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRyaW1tZWRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICh2YWx1ZSB8fCAnJykudHJpbSgpO1xuICAgIH1cbn1cbiIsIjxoMiBkYXRhLWF1dG9tYXRpb24taWQ9XCJhZGYtZm9sZGVyLWRpYWxvZy10aXRsZVwiIGNsYXNzPVwiYWRmLWZvbGRlci1kaWFsb2ctdGl0bGVcIiBtYXQtZGlhbG9nLXRpdGxlPlxuICAgIHt7IChlZGl0aW5nID8gZWRpdFRpdGxlIDogY3JlYXRlVGl0bGUpIHwgdHJhbnNsYXRlIH19XG48L2gyPlxuXG48bWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiYWRmLWZvbGRlci1kaWFsb2ctY29udGVudFwiPlxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChzdWJtaXQpPVwic3VibWl0KClcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWRmLWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgJ0NPUkUuRk9MREVSX0RJQUxPRy5GT0xERVJfTkFNRS5MQUJFTCcgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGlkPVwiYWRmLWZvbGRlci1uYW1lLWlucHV0XCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidDT1JFLkZPTERFUl9ESUFMT0cuRk9MREVSX05BTUUuTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCInbmFtZSdcIlxuICAgICAgICAgICAgICAgIGFkZi1hdXRvLWZvY3VzXG4gICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICA8bWF0LWhpbnQgKm5nSWY9XCJmb3JtLmNvbnRyb2xzWyduYW1lJ10uZGlydHlcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImZvcm0uY29udHJvbHNbJ25hbWUnXS5lcnJvcnM/LnJlcXVpcmVkXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7ICdDT1JFLkZPTERFUl9ESUFMT0cuRk9MREVSX05BTUUuRVJST1JTLlJFUVVJUkVEJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWZvcm0uY29udHJvbHNbJ25hbWUnXS5lcnJvcnM/LnJlcXVpcmVkICYmIGZvcm0uY29udHJvbHNbJ25hbWUnXS5lcnJvcnM/Lm1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgZm9ybS5jb250cm9sc1snbmFtZSddLmVycm9ycz8ubWVzc2FnZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbWF0LWhpbnQ+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiYWRmLWZ1bGwtd2lkdGhcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3sgJ0NPUkUuRk9MREVSX0RJQUxPRy5GT0xERVJfVElUTEUuTEFCRUwnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBpZD1cImFkZi1mb2xkZXItdGl0bGUtaW5wdXRcIlxuICAgICAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInQ09SRS5GT0xERVJfRElBTE9HLkZPTERFUl9USVRMRS5MQUJFTCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiJ3RpdGxlJ1wiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1mdWxsLXdpZHRoXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsPnt7ICdDT1JFLkZPTERFUl9ESUFMT0cuRk9MREVSX0RFU0NSSVBUSU9OLkxBQkVMJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgaWQ9XCJhZGYtZm9sZGVyLWRlc2NyaXB0aW9uLWlucHV0XCJcbiAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NPUkUuRk9MREVSX0RJQUxPRy5GT0xERVJfREVTQ1JJUFRJT04uTEFCRUwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICByb3dzPVwiNFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCInZGVzY3JpcHRpb24nXCI+XG4gICAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvZm9ybT5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiYWRmLWRpYWxvZy1idXR0b25zXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJhZGYtZmlsbC1yZW1haW5pbmctc3BhY2VcIj48L3NwYW4+XG5cbiAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgaWQ9XCJhZGYtZm9sZGVyLWNhbmNlbC1idXR0b25cIlxuICAgICAgICBtYXQtZGlhbG9nLWNsb3NlPlxuICAgICAgICB7eyAnQ09SRS5GT0xERVJfRElBTE9HLkNBTkNFTF9CVVRUT04uTEFCRUwnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYWRmLWRpYWxvZy1hY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICAgIGlkPVwiYWRmLWZvbGRlci1jcmVhdGUtYnV0dG9uXCJcbiAgICAgICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJzdWJtaXQoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWQgfHwgZGlzYWJsZVN1Ym1pdEJ1dHRvblwiPlxuICAgICAgICB7e1xuICAgICAgICAoZWRpdGluZ1xuICAgICAgICA/ICdDT1JFLkZPTERFUl9ESUFMT0cuVVBEQVRFX0JVVFRPTi5MQUJFTCdcbiAgICAgICAgOiAnQ09SRS5GT0xERVJfRElBTE9HLkNSRUFURV9CVVRUT04uTEFCRUwnXG4gICAgICAgICkgfCB0cmFuc2xhdGVcbiAgICAgICAgfX1cbiAgICA8L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
|
|
@@ -6,7 +6,7 @@ import { NotificationService } from '@alfresco/adf-core';
|
|
|
6
6
|
import { debounceTime, finalize, mergeMap } from 'rxjs/operators';
|
|
7
7
|
import { SitesService } from '../../common/services/sites.service';
|
|
8
8
|
import { CommonModule } from '@angular/common';
|
|
9
|
-
import {
|
|
9
|
+
import { TranslatePipe } from '@ngx-translate/core';
|
|
10
10
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
11
11
|
import { MatInputModule } from '@angular/material/input';
|
|
12
12
|
import { AutoFocusDirective } from '../../directives';
|
|
@@ -21,11 +21,10 @@ import * as i3 from "@angular/forms";
|
|
|
21
21
|
import * as i4 from "@angular/material/dialog";
|
|
22
22
|
import * as i5 from "@alfresco/adf-core";
|
|
23
23
|
import * as i6 from "@angular/common";
|
|
24
|
-
import * as i7 from "@
|
|
25
|
-
import * as i8 from "@angular/material/
|
|
26
|
-
import * as i9 from "@angular/material/
|
|
27
|
-
import * as i10 from "@angular/material/
|
|
28
|
-
import * as i11 from "@angular/material/button";
|
|
24
|
+
import * as i7 from "@angular/material/form-field";
|
|
25
|
+
import * as i8 from "@angular/material/input";
|
|
26
|
+
import * as i9 from "@angular/material/radio";
|
|
27
|
+
import * as i10 from "@angular/material/button";
|
|
29
28
|
export class LibraryDialogComponent {
|
|
30
29
|
get queriesApi() {
|
|
31
30
|
this._queriesApi = this._queriesApi ?? new QueriesApi(this.alfrescoApiService.getInstance());
|
|
@@ -201,14 +200,14 @@ export class LibraryDialogComponent {
|
|
|
201
200
|
};
|
|
202
201
|
}
|
|
203
202
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibraryDialogComponent, deps: [{ token: i1.AlfrescoApiService }, { token: i2.SitesService }, { token: i3.UntypedFormBuilder }, { token: i4.MatDialogRef }, { token: i5.NotificationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
204
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LibraryDialogComponent, isStandalone: true, selector: "adf-library-dialog", outputs: { error: "error", success: "success" }, host: { classAttribute: "adf-library-dialog" }, ngImport: i0, template: "<h2 mat-dialog-title>{{ createTitle | translate }}</h2>\n\n<mat-dialog-content class=\"adf-library-dialog-content\">\n <form novalidate [formGroup]=\"form\" (submit)=\"submit()\">\n <mat-form-field class=\"adf-library-dialog-form-field\">\n <mat-label>{{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}</mat-label>\n <input\n required\n matInput\n formControlName=\"title\"\n autocomplete=\"off\"\n adf-auto-focus\n />\n\n <mat-hint *ngIf=\"libraryTitleExists\">{{\n 'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate\n }}</mat-hint>\n <mat-error *ngIf=\"form.controls['title'].hasError('maxlength')\">\n {{ 'LIBRARY.ERRORS.TITLE_TOO_LONG' | translate }}\n </mat-error>\n\n <mat-error *ngIf=\"form.controls['title'].hasError('minlength')\">\n {{ 'LIBRARY.ERRORS.TITLE_TOO_SHORT' | translate }}\n </mat-error>\n\n <mat-error *ngIf=\"form.controls['title'].errors?.message\">\n {{ form.controls['title'].errors?.message | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field class=\"adf-library-dialog-form-field\">\n <mat-label>{{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}</mat-label>\n <input\n required\n matInput\n formControlName=\"id\"\n autocomplete=\"off\"\n />\n\n <mat-error *ngIf=\"form.controls['id'].errors?.message\">\n {{ form.controls['id'].errors?.message | translate }}\n </mat-error>\n\n <mat-error *ngIf=\"form.controls['id'].hasError('maxlength')\">\n {{ 'LIBRARY.ERRORS.ID_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field class=\"adf-library-dialog-form-field adf-library-dialog-form-field-description\">\n <mat-label>{{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}</mat-label>\n <textarea\n matInput\n rows=\"3\"\n formControlName=\"description\"\n ></textarea>\n\n <mat-error *ngIf=\"form.controls['description'].hasError('maxlength')\">\n {{ 'LIBRARY.ERRORS.DESCRIPTION_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-radio-group\n class=\"adf-library-dialog-radio-group\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"visibilityOption\"\n (change)=\"visibilityChangeHandler($event)\"\n >\n <mat-radio-button\n color=\"primary\"\n class=\"adf-library-dialog-radio-group-button\"\n [disabled]=\"option.disabled\"\n *ngFor=\"let option of visibilityOptions\"\n [attr.data-automation-id]=\"option.value\"\n [value]=\"option.value\"\n [checked]=\"visibilityOption.value === option.value\"\n >\n {{ option.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n </form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"adf-action-buttons\">\n <button class=\"adf-action-button\" mat-button mat-dialog-close data-automation-id=\"cancel-library-id\">\n {{ 'LIBRARY.DIALOG.CANCEL' | translate }}\n </button>\n\n <button\n color=\"primary\"\n class=\"adf-action-button\"\n mat-button\n (click)=\"submit()\"\n [disabled]=\"!form.valid || disableCreateButton\"\n data-automation-id=\"create-library-id\"\n >\n {{ 'LIBRARY.DIALOG.CREATE' | translate }}\n </button>\n</mat-dialog-actions>\n", styles: [".adf-library-dialog .adf-library-dialog-content{padding:0;overflow:unset}.adf-library-dialog .adf-library-dialog-radio-group{display:flex;flex-direction:column;margin:0}.adf-library-dialog .adf-library-dialog-radio-group .adf-library-dialog-radio-group-button{margin:10px 0}.adf-library-dialog .adf-library-dialog-form-field{width:100%;padding-top:9.5px}.adf-library-dialog .adf-library-dialog-form-field:first-of-type{padding-top:13.5px}.adf-library-dialog .adf-library-dialog-form-field:last-of-type{padding-top:4.5px}.adf-library-dialog .adf-library-dialog-form-field .mdc-floating-label{-webkit-font-smoothing:subpixel-antialiased}.adf-library-dialog .adf-library-dialog-form-field.mat-form-field-hide-placeholder .mdc-floating-label,.adf-library-dialog .adf-library-dialog-form-field-description.mat-form-field-hide-placeholder .mdc-floating-label{padding-top:20px}.adf-library-dialog .adf-library-dialog-form-field .mat-mdc-form-field-infix{padding-bottom:3.5px}.adf-library-dialog .adf-library-dialog-form-field .mat-mdc-form-field-error-wrapper{margin-left:-2px;font-size:10.5px;-webkit-font-smoothing:subpixel-antialiased}.adf-library-dialog .adf-library-dialog-form-field .mat-mdc-form-field-error-wrapper .mat-mdc-form-field-error{height:13.125px}.adf-library-dialog .adf-action-buttons{display:flex;flex-direction:row;justify-content:flex-end}.adf-library-dialog .adf-action-buttons .adf-action-button{text-transform:uppercase}.adf-library-dialog .adf-action-buttons .adf-action-button span{font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "
|
|
203
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LibraryDialogComponent, isStandalone: true, selector: "adf-library-dialog", outputs: { error: "error", success: "success" }, host: { classAttribute: "adf-library-dialog" }, ngImport: i0, template: "<h2 mat-dialog-title>{{ createTitle | translate }}</h2>\n\n<mat-dialog-content class=\"adf-library-dialog-content\">\n <form novalidate [formGroup]=\"form\" (submit)=\"submit()\">\n <mat-form-field class=\"adf-library-dialog-form-field\">\n <mat-label>{{ 'LIBRARY.DIALOG.FORM.NAME' | translate }}</mat-label>\n <input\n required\n matInput\n formControlName=\"title\"\n autocomplete=\"off\"\n adf-auto-focus\n />\n\n <mat-hint *ngIf=\"libraryTitleExists\">{{\n 'LIBRARY.HINTS.SITE_TITLE_EXISTS' | translate\n }}</mat-hint>\n <mat-error *ngIf=\"form.controls['title'].hasError('maxlength')\">\n {{ 'LIBRARY.ERRORS.TITLE_TOO_LONG' | translate }}\n </mat-error>\n\n <mat-error *ngIf=\"form.controls['title'].hasError('minlength')\">\n {{ 'LIBRARY.ERRORS.TITLE_TOO_SHORT' | translate }}\n </mat-error>\n\n <mat-error *ngIf=\"form.controls['title'].errors?.message\">\n {{ form.controls['title'].errors?.message | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field class=\"adf-library-dialog-form-field\">\n <mat-label>{{ 'LIBRARY.DIALOG.FORM.SITE_ID' | translate }}</mat-label>\n <input\n required\n matInput\n formControlName=\"id\"\n autocomplete=\"off\"\n />\n\n <mat-error *ngIf=\"form.controls['id'].errors?.message\">\n {{ form.controls['id'].errors?.message | translate }}\n </mat-error>\n\n <mat-error *ngIf=\"form.controls['id'].hasError('maxlength')\">\n {{ 'LIBRARY.ERRORS.ID_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field class=\"adf-library-dialog-form-field adf-library-dialog-form-field-description\">\n <mat-label>{{ 'LIBRARY.DIALOG.FORM.DESCRIPTION' | translate }}</mat-label>\n <textarea\n matInput\n rows=\"3\"\n formControlName=\"description\"\n ></textarea>\n\n <mat-error *ngIf=\"form.controls['description'].hasError('maxlength')\">\n {{ 'LIBRARY.ERRORS.DESCRIPTION_TOO_LONG' | translate }}\n </mat-error>\n </mat-form-field>\n\n <mat-radio-group\n class=\"adf-library-dialog-radio-group\"\n [ngModelOptions]=\"{ standalone: true }\"\n [(ngModel)]=\"visibilityOption\"\n (change)=\"visibilityChangeHandler($event)\"\n >\n <mat-radio-button\n color=\"primary\"\n class=\"adf-library-dialog-radio-group-button\"\n [disabled]=\"option.disabled\"\n *ngFor=\"let option of visibilityOptions\"\n [attr.data-automation-id]=\"option.value\"\n [value]=\"option.value\"\n [checked]=\"visibilityOption.value === option.value\"\n >\n {{ option.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n </form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"adf-action-buttons\">\n <button class=\"adf-action-button\" mat-button mat-dialog-close data-automation-id=\"cancel-library-id\">\n {{ 'LIBRARY.DIALOG.CANCEL' | translate }}\n </button>\n\n <button\n color=\"primary\"\n class=\"adf-action-button\"\n mat-button\n (click)=\"submit()\"\n [disabled]=\"!form.valid || disableCreateButton\"\n data-automation-id=\"create-library-id\"\n >\n {{ 'LIBRARY.DIALOG.CREATE' | translate }}\n </button>\n</mat-dialog-actions>\n", styles: [".adf-library-dialog .adf-library-dialog-content{padding:0;overflow:unset}.adf-library-dialog .adf-library-dialog-radio-group{display:flex;flex-direction:column;margin:0}.adf-library-dialog .adf-library-dialog-radio-group .adf-library-dialog-radio-group-button{margin:10px 0}.adf-library-dialog .adf-library-dialog-form-field{width:100%;padding-top:9.5px}.adf-library-dialog .adf-library-dialog-form-field:first-of-type{padding-top:13.5px}.adf-library-dialog .adf-library-dialog-form-field:last-of-type{padding-top:4.5px}.adf-library-dialog .adf-library-dialog-form-field .mdc-floating-label{-webkit-font-smoothing:subpixel-antialiased}.adf-library-dialog .adf-library-dialog-form-field.mat-form-field-hide-placeholder .mdc-floating-label,.adf-library-dialog .adf-library-dialog-form-field-description.mat-form-field-hide-placeholder .mdc-floating-label{padding-top:20px}.adf-library-dialog .adf-library-dialog-form-field .mat-mdc-form-field-infix{padding-bottom:3.5px}.adf-library-dialog .adf-library-dialog-form-field .mat-mdc-form-field-error-wrapper{margin-left:-2px;font-size:10.5px;-webkit-font-smoothing:subpixel-antialiased}.adf-library-dialog .adf-library-dialog-form-field .mat-mdc-form-field-error-wrapper .mat-mdc-form-field-error{height:13.125px}.adf-library-dialog .adf-action-buttons{display:flex;flex-direction:row;justify-content:flex-end}.adf-library-dialog .adf-action-buttons .adf-action-button{text-transform:uppercase}.adf-library-dialog .adf-action-buttons .adf-action-button span{font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: AutoFocusDirective, selector: "[adf-auto-focus]" }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i9.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i9.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i10.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
205
204
|
}
|
|
206
205
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibraryDialogComponent, decorators: [{
|
|
207
206
|
type: Component,
|
|
208
207
|
args: [{ selector: 'adf-library-dialog', standalone: true, imports: [
|
|
209
208
|
CommonModule,
|
|
210
209
|
MatDialogModule,
|
|
211
|
-
|
|
210
|
+
TranslatePipe,
|
|
212
211
|
ReactiveFormsModule,
|
|
213
212
|
MatFormFieldModule,
|
|
214
213
|
MatInputModule,
|
|
@@ -222,4 +221,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
222
221
|
}], success: [{
|
|
223
222
|
type: Output
|
|
224
223
|
}] } });
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS5kaWFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL2RpYWxvZ3MvbGlicmFyeS9saWJyYXJ5LmRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvZGlhbG9ncy9saWJyYXJ5L2xpYnJhcnkuZGlhbG9nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFFSCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUdsQixVQUFVLEVBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQXlDLE1BQU0sa0JBQWtCLENBQUM7QUFDckYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixD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O3dCQUNmLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZUFBZTtxQkFDbEIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRTtnTkFLckMsS0FBSztzQkFESixNQUFNO2dCQVNQLE9BQU87c0JBRE4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gICAgVW50eXBlZEZvcm1Hcm91cCxcbiAgICBWYWxpZGF0b3JzXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFF1ZXJpZXNBcGksIFNpdGVCb2R5Q3JlYXRlLCBTaXRlRW50cnksIFNpdGVQYWdpbmcgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaW5hbGl6ZSwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTaXRlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvc2l0ZXMuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgQXV0b0ZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBBbGZyZXNjb0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLWxpYnJhcnktZGlhbG9nJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgICAgQXV0b0ZvY3VzRGlyZWN0aXZlLFxuICAgICAgICBNYXRSYWRpb01vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZVxuICAgIF0sXG4gICAgc3R5bGVVcmxzOiBbJy4vbGlicmFyeS5kaWFsb2cuc2NzcyddLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saWJyYXJ5LmRpYWxvZy5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtbGlicmFyeS1kaWFsb2cnIH1cbn0pXG5leHBvcnQgY2xhc3MgTGlicmFyeURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqIEVtaXR0ZWQgd2hlbiBhbiBlcnJvciBvY2N1cnMuICovXG4gICAgQE91dHB1dCgpXG4gICAgZXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gdGhlIG5ldyBsaWJyYXJ5IGlzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LiBUaGVcbiAgICAgKiBldmVudCBwYXJhbWV0ZXIgaXMgYSBTaXRlRW50cnkgb2JqZWN0IHdpdGggdGhlIGRldGFpbHMgb2YgdGhlXG4gICAgICogbmV3bHktY3JlYXRlZCBsaWJyYXJ5LlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBjcmVhdGVUaXRsZSA9ICdMSUJSQVJZLkRJQUxPRy5DUkVBVEVfVElUTEUnO1xuICAgIGxpYnJhcnlUaXRsZUV4aXN0cyA9IGZhbHNlO1xuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gICAgdmlzaWJpbGl0eU9wdGlvbjogYW55O1xuICAgIHZpc2liaWxpdHlPcHRpb25zID0gW1xuICAgICAgICB7IHZhbHVlOiAnUFVCTElDJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuUFVCTElDJywgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICAgIHsgdmFsdWU6ICdQUklWQVRFJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuUFJJVkFURScsIGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ01PREVSQVRFRCcsXG4gICAgICAgICAgICBsYWJlbDogJ0xJQlJBUlkuVklTSUJJTElUWS5NT0RFUkFURUQnLFxuICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICBdO1xuICAgIGRpc2FibGVDcmVhdGVCdXR0b24gPSBmYWxzZTtcblxuICAgIF9xdWVyaWVzQXBpOiBRdWVyaWVzQXBpO1xuICAgIGdldCBxdWVyaWVzQXBpKCk6IFF1ZXJpZXNBcGkge1xuICAgICAgICB0aGlzLl9xdWVyaWVzQXBpID0gdGhpcy5fcXVlcmllc0FwaSA/PyBuZXcgUXVlcmllc0FwaSh0aGlzLmFsZnJlc2NvQXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3F1ZXJpZXNBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYWxmcmVzY29BcGlTZXJ2aWNlOiBBbGZyZXNjb0FwaVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2l0ZXNTZXJ2aWNlOiBTaXRlc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1JlZjxMaWJyYXJ5RGlhbG9nQ29tcG9uZW50PixcbiAgICAgICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB7XG4gICAgICAgICAgICBpZDogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDcyKSwgdGhpcy5mb3JiaWRTcGVjaWFsQ2hhcmFjdGVyc10sXG4gICAgICAgICAgICB0aXRsZTogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHRoaXMuZm9yYmlkT25seVNwYWNlcywgVmFsaWRhdG9ycy5taW5MZW5ndGgoMiksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFtWYWxpZGF0b3JzLm1heExlbmd0aCg1MTIpXVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgdGl0bGU6IFtudWxsLCB2YWxpZGF0b3JzLnRpdGxlXSxcbiAgICAgICAgICAgIGlkOiBbbnVsbCwgdmFsaWRhdG9ycy5pZCwgdGhpcy5jcmVhdGVTaXRlSWRWYWxpZGF0b3IoKV0sXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogWycnLCB2YWxpZGF0b3JzLmRlc2NyaXB0aW9uXVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnZpc2liaWxpdHlPcHRpb24gPSB0aGlzLnZpc2liaWxpdHlPcHRpb25zWzBdLnZhbHVlO1xuXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1sndGl0bGUnXS52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSg1MDApLFxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKFxuICAgICAgICAgICAgICAgICAgICAodGl0bGUpID0+IHRoaXMuY2hlY2tMaWJyYXJ5TmFtZUV4aXN0cyh0aXRsZSksXG4gICAgICAgICAgICAgICAgICAgICh0aXRsZSkgPT4gdGl0bGVcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh0aXRsZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZvcm0uY29udHJvbHNbJ2lkJ10uZGlydHkgJiYgdGhpcy5jYW5HZW5lcmF0ZUlkKHRpdGxlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IGlkOiB0aGlzLnNhbml0aXplKHRpdGxlLnRyaW0oKSkgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1snaWQnXS5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgdGl0bGUgfSA9IHRoaXMuZm9ybS52YWx1ZTtcblxuICAgICAgICByZXR1cm4gKHRpdGxlIHx8ICcnKS50cmltKCk7XG4gICAgfVxuXG4gICAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgaWQgfSA9IHRoaXMuZm9ybS52YWx1ZTtcblxuICAgICAgICByZXR1cm4gKGlkIHx8ICcnKS50cmltKCk7XG4gICAgfVxuXG4gICAgZ2V0IGRlc2NyaXB0aW9uKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgZGVzY3JpcHRpb24gfSA9IHRoaXMuZm9ybS52YWx1ZTtcblxuICAgICAgICByZXR1cm4gKGRlc2NyaXB0aW9uIHx8ICcnKS50cmltKCk7XG4gICAgfVxuXG4gICAgZ2V0IHZpc2liaWxpdHkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJpbGl0eU9wdGlvbiB8fCAnJztcbiAgICB9XG5cbiAgICBzdWJtaXQoKSB7XG4gICAgICAgIGNvbnN0IHsgZm9ybSwgZGlhbG9nIH0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaXNhYmxlQ3JlYXRlQnV0dG9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jcmVhdGUoKVxuICAgICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMuZGlzYWJsZUNyZWF0ZUJ1dHRvbiA9IGZhbHNlKSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChub2RlOiBTaXRlRW50cnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQobm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIGRpYWxvZy5jbG9zZShub2RlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcilcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgdmlzaWJpbGl0eUNoYW5nZUhhbmRsZXIoZXZlbnQpIHtcbiAgICAgICAgdGhpcy52aXNpYmlsaXR5T3B0aW9uID0gZXZlbnQudmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGUoKTogT2JzZXJ2YWJsZTxTaXRlRW50cnk+IHtcbiAgICAgICAgY29uc3QgeyB0aXRsZSwgaWQsIGRlc2NyaXB0aW9uLCB2aXNpYmlsaXR5IH0gPSB0aGlzO1xuICAgICAgICBjb25zdCBzaXRlQm9keSA9IHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHZpc2liaWxpdHlcbiAgICAgICAgfSBhcyBTaXRlQm9keUNyZWF0ZTtcblxuICAgICAgICByZXR1cm4gdGhpcy5zaXRlc1NlcnZpY2UuY3JlYXRlU2l0ZShzaXRlQm9keSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZShpbnB1dDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBpbnB1dC5yZXBsYWNlKC9bXFxzXFxzXSsvZywgJy0nKS5yZXBsYWNlKC9bXkEtWmEtejAtOS1dL2csICcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbkdlbmVyYXRlSWQodGl0bGUpIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGl0bGUucmVwbGFjZSgvW15BLVphLXowLTktXS9nLCAnJykubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiBhbnkge1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSAnQ09SRS5NRVNTQUdFUy5FUlJPUlMuR0VORVJJQyc7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICBlcnJvcjogeyBzdGF0dXNDb2RlIH1cbiAgICAgICAgICAgIH0gPSBKU09OLnBhcnNlKGVycm9yLm1lc3NhZ2UpO1xuXG4gICAgICAgICAgICBpZiAoc3RhdHVzQ29kZSA9PT0gNDA5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzWydpZCddLnNldEVycm9ycyh7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdMSUJSQVJZLkVSUk9SUy5DT05GTElDVCdcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnNob3dFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zaG93RXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGNoZWNrTGlicmFyeU5hbWVFeGlzdHMobGlicmFyeVRpdGxlOiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IGVudHJpZXMgPSBbXTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZW50cmllcyA9IChhd2FpdCB0aGlzLmZpbmRMaWJyYXJ5QnlUaXRsZShsaWJyYXJ5VGl0bGUpKS5saXN0LmVudHJpZXM7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgZW50cmllcyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVudHJpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmxpYnJhcnlUaXRsZUV4aXN0cyA9IGVudHJpZXNbMF0uZW50cnkudGl0bGUudG9Mb3dlckNhc2UoKSA9PT0gbGlicmFyeVRpdGxlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxpYnJhcnlUaXRsZUV4aXN0cyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kTGlicmFyeUJ5VGl0bGUobGlicmFyeVRpdGxlOiBzdHJpbmcpOiBQcm9taXNlPFNpdGVQYWdpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcmllc0FwaS5maW5kU2l0ZXMobGlicmFyeVRpdGxlLCB7XG4gICAgICAgICAgICBtYXhJdGVtczogMSxcbiAgICAgICAgICAgIGZpZWxkczogWyd0aXRsZSddXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9yYmlkU3BlY2lhbENoYXJhY3RlcnMoeyB2YWx1ZSB9OiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWxpZENoYXJhY3RlcnM6IFJlZ0V4cCA9IC9bXkEtWmEtejAtOS1dLztcbiAgICAgICAgY29uc3QgaXNWYWxpZDogYm9vbGVhbiA9ICF2YWxpZENoYXJhY3RlcnMudGVzdCh2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIGlzVmFsaWRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnTElCUkFSWS5FUlJPUlMuSUxMRUdBTF9DSEFSQUNURVJTJ1xuICAgICAgICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9yYmlkT25seVNwYWNlcyh7IHZhbHVlIH06IFVudHlwZWRGb3JtQ29udHJvbCkge1xuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlzVmFsaWQ6IGJvb2xlYW4gPSAhISh2YWx1ZSB8fCAnJykudHJpbSgpO1xuXG4gICAgICAgIHJldHVybiBpc1ZhbGlkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ0xJQlJBUlkuRVJST1JTLk9OTFlfU1BBQ0VTJ1xuICAgICAgICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlU2l0ZUlkVmFsaWRhdG9yKCkge1xuICAgICAgICBsZXQgdGltZXI7XG5cbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgICAgICAgIGlmICh0aW1lcikge1xuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRpbWVyID0gc2V0VGltZW91dChcbiAgICAgICAgICAgICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2l0ZXNTZXJ2aWNlLmdldFNpdGUoY29udHJvbC52YWx1ZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHJlc29sdmUoeyBtZXNzYWdlOiAnTElCUkFSWS5FUlJPUlMuRVhJU1RFTlRfU0lURScgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gcmVzb2x2ZShudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgMzAwXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH1cbn1cbiIsIjxoMiBtYXQtZGlhbG9nLXRpdGxlPnt7IGNyZWF0ZVRpdGxlIHwgdHJhbnNsYXRlIH19PC9oMj5cblxuPG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImFkZi1saWJyYXJ5LWRpYWxvZy1jb250ZW50XCI+XG4gIDxmb3JtIG5vdmFsaWRhdGUgW2Zvcm1Hcm91cF09XCJmb3JtXCIgKHN1Ym1pdCk9XCJzdWJtaXQoKVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1saWJyYXJ5LWRpYWxvZy1mb3JtLWZpZWxkXCI+XG4gICAgICA8bWF0LWxhYmVsPnt7ICdMSUJSQVJZLkRJQUxPRy5GT1JNLk5BTUUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBhZGYtYXV0by1mb2N1c1xuICAgICAgLz5cblxuICAgICAgPG1hdC1oaW50ICpuZ0lmPVwibGlicmFyeVRpdGxlRXhpc3RzXCI+e3tcbiAgICAgICAgJ0xJQlJBUlkuSElOVFMuU0lURV9USVRMRV9FWElTVFMnIHwgdHJhbnNsYXRlXG4gICAgICB9fTwvbWF0LWhpbnQ+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9sc1sndGl0bGUnXS5oYXNFcnJvcignbWF4bGVuZ3RoJylcIj5cbiAgICAgICAge3sgJ0xJQlJBUlkuRVJST1JTLlRJVExFX1RPT19MT05HJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzWyd0aXRsZSddLmhhc0Vycm9yKCdtaW5sZW5ndGgnKVwiPlxuICAgICAgICB7eyAnTElCUkFSWS5FUlJPUlMuVElUTEVfVE9PX1NIT1JUJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzWyd0aXRsZSddLmVycm9ycz8ubWVzc2FnZVwiPlxuICAgICAgICB7eyBmb3JtLmNvbnRyb2xzWyd0aXRsZSddLmVycm9ycz8ubWVzc2FnZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1saWJyYXJ5LWRpYWxvZy1mb3JtLWZpZWxkXCI+XG4gICAgICA8bWF0LWxhYmVsPnt7ICdMSUJSQVJZLkRJQUxPRy5GT1JNLlNJVEVfSUQnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaWRcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgLz5cblxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHNbJ2lkJ10uZXJyb3JzPy5tZXNzYWdlXCI+XG4gICAgICAgIHt7IGZvcm0uY29udHJvbHNbJ2lkJ10uZXJyb3JzPy5tZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1lcnJvcj5cblxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHNbJ2lkJ10uaGFzRXJyb3IoJ21heGxlbmd0aCcpXCI+XG4gICAgICAgIHt7ICdMSUJSQVJZLkVSUk9SUy5JRF9UT09fTE9ORycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGYtbGlicmFyeS1kaWFsb2ctZm9ybS1maWVsZCBhZGYtbGlicmFyeS1kaWFsb2ctZm9ybS1maWVsZC1kZXNjcmlwdGlvblwiPlxuICAgICAgPG1hdC1sYWJlbD57eyAnTElCUkFSWS5ESUFMT0cuRk9STS5ERVNDUklQVElPTicgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgIDx0ZXh0YXJlYVxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICByb3dzPVwiM1wiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgID48L3RleHRhcmVhPlxuXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9sc1snZGVzY3JpcHRpb24nXS5oYXNFcnJvcignbWF4bGVuZ3RoJylcIj5cbiAgICAgICAge3sgJ0xJQlJBUlkuRVJST1JTLkRFU0NSSVBUSU9OX1RPT19MT05HJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtcmFkaW8tZ3JvdXBcbiAgICAgIGNsYXNzPVwiYWRmLWxpYnJhcnktZGlhbG9nLXJhZGlvLWdyb3VwXCJcbiAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZpc2liaWxpdHlPcHRpb25cIlxuICAgICAgKGNoYW5nZSk9XCJ2aXNpYmlsaXR5Q2hhbmdlSGFuZGxlcigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvblxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICBjbGFzcz1cImFkZi1saWJyYXJ5LWRpYWxvZy1yYWRpby1ncm91cC1idXR0b25cIlxuICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiB2aXNpYmlsaXR5T3B0aW9uc1wiXG4gICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCJvcHRpb24udmFsdWVcIlxuICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgW2NoZWNrZWRdPVwidmlzaWJpbGl0eU9wdGlvbi52YWx1ZSA9PT0gb3B0aW9uLnZhbHVlXCJcbiAgICAgID5cbiAgICAgICAge3sgb3B0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gIDwvZm9ybT5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiYWRmLWFjdGlvbi1idXR0b25zXCI+XG4gIDxidXR0b24gY2xhc3M9XCJhZGYtYWN0aW9uLWJ1dHRvblwiIG1hdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZSBkYXRhLWF1dG9tYXRpb24taWQ9XCJjYW5jZWwtbGlicmFyeS1pZFwiPlxuICAgIHt7ICdMSUJSQVJZLkRJQUxPRy5DQU5DRUwnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgIGNsYXNzPVwiYWRmLWFjdGlvbi1idXR0b25cIlxuICAgIG1hdC1idXR0b25cbiAgICAoY2xpY2spPVwic3VibWl0KClcIlxuICAgIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZCB8fCBkaXNhYmxlQ3JlYXRlQnV0dG9uXCJcbiAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJjcmVhdGUtbGlicmFyeS1pZFwiXG4gID5cbiAgICB7eyAnTElCUkFSWS5ESUFMT0cuQ1JFQVRFJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicmFyeS5kaWFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL2RpYWxvZ3MvbGlicmFyeS9saWJyYXJ5LmRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvZGlhbG9ncy9saWJyYXJ5L2xpYnJhcnkuZGlhbG9nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFFSCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUdsQixVQUFVLEVBQ2IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQXlDLE1BQU0sa0JBQWtCLENBQUM7QUFDckYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixD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QUNmLGFBQWE7d0JBQ2IsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZUFBZTtxQkFDbEIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRTtnTkFLckMsS0FBSztzQkFESixNQUFNO2dCQVNQLE9BQU87c0JBRE4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBVbnR5cGVkRm9ybUNvbnRyb2wsXG4gICAgVW50eXBlZEZvcm1Hcm91cCxcbiAgICBWYWxpZGF0b3JzXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZ01vZHVsZSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFF1ZXJpZXNBcGksIFNpdGVCb2R5Q3JlYXRlLCBTaXRlRW50cnksIFNpdGVQYWdpbmcgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICdAYWxmcmVzY28vYWRmLWNvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaW5hbGl6ZSwgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTaXRlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvc2l0ZXMuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IEF1dG9Gb2N1c0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgQWxmcmVzY29BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1saWJyYXJ5LWRpYWxvZycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVQaXBlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBBdXRvRm9jdXNEaXJlY3RpdmUsXG4gICAgICAgIE1hdFJhZGlvTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlXG4gICAgXSxcbiAgICBzdHlsZVVybHM6IFsnLi9saWJyYXJ5LmRpYWxvZy5zY3NzJ10sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpYnJhcnkuZGlhbG9nLmh0bWwnLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1saWJyYXJ5LWRpYWxvZycgfVxufSlcbmV4cG9ydCBjbGFzcyBMaWJyYXJ5RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIGVycm9yIG9jY3Vycy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBlcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBuZXcgbGlicmFyeSBpcyBjcmVhdGVkIHN1Y2Nlc3NmdWxseS4gVGhlXG4gICAgICogZXZlbnQgcGFyYW1ldGVyIGlzIGEgU2l0ZUVudHJ5IG9iamVjdCB3aXRoIHRoZSBkZXRhaWxzIG9mIHRoZVxuICAgICAqIG5ld2x5LWNyZWF0ZWQgbGlicmFyeS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBjcmVhdGVUaXRsZSA9ICdMSUJSQVJZLkRJQUxPRy5DUkVBVEVfVElUTEUnO1xuICAgIGxpYnJhcnlUaXRsZUV4aXN0cyA9IGZhbHNlO1xuICAgIGZvcm06IFVudHlwZWRGb3JtR3JvdXA7XG4gICAgdmlzaWJpbGl0eU9wdGlvbjogYW55O1xuICAgIHZpc2liaWxpdHlPcHRpb25zID0gW1xuICAgICAgICB7IHZhbHVlOiAnUFVCTElDJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuUFVCTElDJywgZGlzYWJsZWQ6IGZhbHNlIH0sXG4gICAgICAgIHsgdmFsdWU6ICdQUklWQVRFJywgbGFiZWw6ICdMSUJSQVJZLlZJU0lCSUxJVFkuUFJJVkFURScsIGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB2YWx1ZTogJ01PREVSQVRFRCcsXG4gICAgICAgICAgICBsYWJlbDogJ0xJQlJBUlkuVklTSUJJTElUWS5NT0RFUkFURUQnLFxuICAgICAgICAgICAgZGlzYWJsZWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICBdO1xuICAgIGRpc2FibGVDcmVhdGVCdXR0b24gPSBmYWxzZTtcblxuICAgIF9xdWVyaWVzQXBpOiBRdWVyaWVzQXBpO1xuICAgIGdldCBxdWVyaWVzQXBpKCk6IFF1ZXJpZXNBcGkge1xuICAgICAgICB0aGlzLl9xdWVyaWVzQXBpID0gdGhpcy5fcXVlcmllc0FwaSA/PyBuZXcgUXVlcmllc0FwaSh0aGlzLmFsZnJlc2NvQXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3F1ZXJpZXNBcGk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYWxmcmVzY29BcGlTZXJ2aWNlOiBBbGZyZXNjb0FwaVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2l0ZXNTZXJ2aWNlOiBTaXRlc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1JlZjxMaWJyYXJ5RGlhbG9nQ29tcG9uZW50PixcbiAgICAgICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSB7XG4gICAgICAgICAgICBpZDogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDcyKSwgdGhpcy5mb3JiaWRTcGVjaWFsQ2hhcmFjdGVyc10sXG4gICAgICAgICAgICB0aXRsZTogW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHRoaXMuZm9yYmlkT25seVNwYWNlcywgVmFsaWRhdG9ycy5taW5MZW5ndGgoMiksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NildLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFtWYWxpZGF0b3JzLm1heExlbmd0aCg1MTIpXVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgdGl0bGU6IFtudWxsLCB2YWxpZGF0b3JzLnRpdGxlXSxcbiAgICAgICAgICAgIGlkOiBbbnVsbCwgdmFsaWRhdG9ycy5pZCwgdGhpcy5jcmVhdGVTaXRlSWRWYWxpZGF0b3IoKV0sXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogWycnLCB2YWxpZGF0b3JzLmRlc2NyaXB0aW9uXVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnZpc2liaWxpdHlPcHRpb24gPSB0aGlzLnZpc2liaWxpdHlPcHRpb25zWzBdLnZhbHVlO1xuXG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1sndGl0bGUnXS52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSg1MDApLFxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKFxuICAgICAgICAgICAgICAgICAgICAodGl0bGUpID0+IHRoaXMuY2hlY2tMaWJyYXJ5TmFtZUV4aXN0cyh0aXRsZSksXG4gICAgICAgICAgICAgICAgICAgICh0aXRsZSkgPT4gdGl0bGVcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh0aXRsZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZvcm0uY29udHJvbHNbJ2lkJ10uZGlydHkgJiYgdGhpcy5jYW5HZW5lcmF0ZUlkKHRpdGxlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IGlkOiB0aGlzLnNhbml0aXplKHRpdGxlLnRyaW0oKSkgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1snaWQnXS5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgdGl0bGUgfSA9IHRoaXMuZm9ybS52YWx1ZTtcblxuICAgICAgICByZXR1cm4gKHRpdGxlIHx8ICcnKS50cmltKCk7XG4gICAgfVxuXG4gICAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgaWQgfSA9IHRoaXMuZm9ybS52YWx1ZTtcblxuICAgICAgICByZXR1cm4gKGlkIHx8ICcnKS50cmltKCk7XG4gICAgfVxuXG4gICAgZ2V0IGRlc2NyaXB0aW9uKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHsgZGVzY3JpcHRpb24gfSA9IHRoaXMuZm9ybS52YWx1ZTtcblxuICAgICAgICByZXR1cm4gKGRlc2NyaXB0aW9uIHx8ICcnKS50cmltKCk7XG4gICAgfVxuXG4gICAgZ2V0IHZpc2liaWxpdHkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJpbGl0eU9wdGlvbiB8fCAnJztcbiAgICB9XG5cbiAgICBzdWJtaXQoKSB7XG4gICAgICAgIGNvbnN0IHsgZm9ybSwgZGlhbG9nIH0gPSB0aGlzO1xuXG4gICAgICAgIGlmICghZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5kaXNhYmxlQ3JlYXRlQnV0dG9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jcmVhdGUoKVxuICAgICAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gKHRoaXMuZGlzYWJsZUNyZWF0ZUJ1dHRvbiA9IGZhbHNlKSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChub2RlOiBTaXRlRW50cnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWNjZXNzLmVtaXQobm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIGRpYWxvZy5jbG9zZShub2RlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvcilcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgdmlzaWJpbGl0eUNoYW5nZUhhbmRsZXIoZXZlbnQpIHtcbiAgICAgICAgdGhpcy52aXNpYmlsaXR5T3B0aW9uID0gZXZlbnQudmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGUoKTogT2JzZXJ2YWJsZTxTaXRlRW50cnk+IHtcbiAgICAgICAgY29uc3QgeyB0aXRsZSwgaWQsIGRlc2NyaXB0aW9uLCB2aXNpYmlsaXR5IH0gPSB0aGlzO1xuICAgICAgICBjb25zdCBzaXRlQm9keSA9IHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgICAgIHZpc2liaWxpdHlcbiAgICAgICAgfSBhcyBTaXRlQm9keUNyZWF0ZTtcblxuICAgICAgICByZXR1cm4gdGhpcy5zaXRlc1NlcnZpY2UuY3JlYXRlU2l0ZShzaXRlQm9keSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZShpbnB1dDogc3RyaW5nKSB7XG4gICAgICAgIHJldHVybiBpbnB1dC5yZXBsYWNlKC9bXFxzXFxzXSsvZywgJy0nKS5yZXBsYWNlKC9bXkEtWmEtejAtOS1dL2csICcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbkdlbmVyYXRlSWQodGl0bGUpIHtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGl0bGUucmVwbGFjZSgvW15BLVphLXowLTktXS9nLCAnJykubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiBhbnkge1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSAnQ09SRS5NRVNTQUdFUy5FUlJPUlMuR0VORVJJQyc7XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICBlcnJvcjogeyBzdGF0dXNDb2RlIH1cbiAgICAgICAgICAgIH0gPSBKU09OLnBhcnNlKGVycm9yLm1lc3NhZ2UpO1xuXG4gICAgICAgICAgICBpZiAoc3RhdHVzQ29kZSA9PT0gNDA5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzWydpZCddLnNldEVycm9ycyh7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdMSUJSQVJZLkVSUk9SUy5DT05GTElDVCdcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnNob3dFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zaG93RXJyb3IoZXJyb3JNZXNzYWdlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlcnJvcjtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGNoZWNrTGlicmFyeU5hbWVFeGlzdHMobGlicmFyeVRpdGxlOiBzdHJpbmcpIHtcbiAgICAgICAgbGV0IGVudHJpZXMgPSBbXTtcblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZW50cmllcyA9IChhd2FpdCB0aGlzLmZpbmRMaWJyYXJ5QnlUaXRsZShsaWJyYXJ5VGl0bGUpKS5saXN0LmVudHJpZXM7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgZW50cmllcyA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGVudHJpZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmxpYnJhcnlUaXRsZUV4aXN0cyA9IGVudHJpZXNbMF0uZW50cnkudGl0bGUudG9Mb3dlckNhc2UoKSA9PT0gbGlicmFyeVRpdGxlLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxpYnJhcnlUaXRsZUV4aXN0cyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kTGlicmFyeUJ5VGl0bGUobGlicmFyeVRpdGxlOiBzdHJpbmcpOiBQcm9taXNlPFNpdGVQYWdpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucXVlcmllc0FwaS5maW5kU2l0ZXMobGlicmFyeVRpdGxlLCB7XG4gICAgICAgICAgICBtYXhJdGVtczogMSxcbiAgICAgICAgICAgIGZpZWxkczogWyd0aXRsZSddXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9yYmlkU3BlY2lhbENoYXJhY3RlcnMoeyB2YWx1ZSB9OiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB2YWxpZENoYXJhY3RlcnM6IFJlZ0V4cCA9IC9bXkEtWmEtejAtOS1dLztcbiAgICAgICAgY29uc3QgaXNWYWxpZDogYm9vbGVhbiA9ICF2YWxpZENoYXJhY3RlcnMudGVzdCh2YWx1ZSk7XG5cbiAgICAgICAgcmV0dXJuIGlzVmFsaWRcbiAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnTElCUkFSWS5FUlJPUlMuSUxMRUdBTF9DSEFSQUNURVJTJ1xuICAgICAgICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZm9yYmlkT25seVNwYWNlcyh7IHZhbHVlIH06IFVudHlwZWRGb3JtQ29udHJvbCkge1xuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlzVmFsaWQ6IGJvb2xlYW4gPSAhISh2YWx1ZSB8fCAnJykudHJpbSgpO1xuXG4gICAgICAgIHJldHVybiBpc1ZhbGlkXG4gICAgICAgICAgICA/IG51bGxcbiAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ0xJQlJBUlkuRVJST1JTLk9OTFlfU1BBQ0VTJ1xuICAgICAgICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlU2l0ZUlkVmFsaWRhdG9yKCkge1xuICAgICAgICBsZXQgdGltZXI7XG5cbiAgICAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IHtcbiAgICAgICAgICAgIGlmICh0aW1lcikge1xuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRpbWVyID0gc2V0VGltZW91dChcbiAgICAgICAgICAgICAgICAgICAgKCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2l0ZXNTZXJ2aWNlLmdldFNpdGUoY29udHJvbC52YWx1ZSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHJlc29sdmUoeyBtZXNzYWdlOiAnTElCUkFSWS5FUlJPUlMuRVhJU1RFTlRfU0lURScgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4gcmVzb2x2ZShudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgMzAwXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH1cbn1cbiIsIjxoMiBtYXQtZGlhbG9nLXRpdGxlPnt7IGNyZWF0ZVRpdGxlIHwgdHJhbnNsYXRlIH19PC9oMj5cblxuPG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImFkZi1saWJyYXJ5LWRpYWxvZy1jb250ZW50XCI+XG4gIDxmb3JtIG5vdmFsaWRhdGUgW2Zvcm1Hcm91cF09XCJmb3JtXCIgKHN1Ym1pdCk9XCJzdWJtaXQoKVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1saWJyYXJ5LWRpYWxvZy1mb3JtLWZpZWxkXCI+XG4gICAgICA8bWF0LWxhYmVsPnt7ICdMSUJSQVJZLkRJQUxPRy5GT1JNLk5BTUUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICBhZGYtYXV0by1mb2N1c1xuICAgICAgLz5cblxuICAgICAgPG1hdC1oaW50ICpuZ0lmPVwibGlicmFyeVRpdGxlRXhpc3RzXCI+e3tcbiAgICAgICAgJ0xJQlJBUlkuSElOVFMuU0lURV9USVRMRV9FWElTVFMnIHwgdHJhbnNsYXRlXG4gICAgICB9fTwvbWF0LWhpbnQ+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9sc1sndGl0bGUnXS5oYXNFcnJvcignbWF4bGVuZ3RoJylcIj5cbiAgICAgICAge3sgJ0xJQlJBUlkuRVJST1JTLlRJVExFX1RPT19MT05HJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzWyd0aXRsZSddLmhhc0Vycm9yKCdtaW5sZW5ndGgnKVwiPlxuICAgICAgICB7eyAnTElCUkFSWS5FUlJPUlMuVElUTEVfVE9PX1NIT1JUJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzWyd0aXRsZSddLmVycm9ycz8ubWVzc2FnZVwiPlxuICAgICAgICB7eyBmb3JtLmNvbnRyb2xzWyd0aXRsZSddLmVycm9ycz8ubWVzc2FnZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1saWJyYXJ5LWRpYWxvZy1mb3JtLWZpZWxkXCI+XG4gICAgICA8bWF0LWxhYmVsPnt7ICdMSUJSQVJZLkRJQUxPRy5GT1JNLlNJVEVfSUQnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXRcbiAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaWRcIlxuICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgLz5cblxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHNbJ2lkJ10uZXJyb3JzPy5tZXNzYWdlXCI+XG4gICAgICAgIHt7IGZvcm0uY29udHJvbHNbJ2lkJ10uZXJyb3JzPy5tZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1lcnJvcj5cblxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHNbJ2lkJ10uaGFzRXJyb3IoJ21heGxlbmd0aCcpXCI+XG4gICAgICAgIHt7ICdMSUJSQVJZLkVSUk9SUy5JRF9UT09fTE9ORycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGYtbGlicmFyeS1kaWFsb2ctZm9ybS1maWVsZCBhZGYtbGlicmFyeS1kaWFsb2ctZm9ybS1maWVsZC1kZXNjcmlwdGlvblwiPlxuICAgICAgPG1hdC1sYWJlbD57eyAnTElCUkFSWS5ESUFMT0cuRk9STS5ERVNDUklQVElPTicgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgIDx0ZXh0YXJlYVxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICByb3dzPVwiM1wiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCJcbiAgICAgID48L3RleHRhcmVhPlxuXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9sc1snZGVzY3JpcHRpb24nXS5oYXNFcnJvcignbWF4bGVuZ3RoJylcIj5cbiAgICAgICAge3sgJ0xJQlJBUlkuRVJST1JTLkRFU0NSSVBUSU9OX1RPT19MT05HJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtcmFkaW8tZ3JvdXBcbiAgICAgIGNsYXNzPVwiYWRmLWxpYnJhcnktZGlhbG9nLXJhZGlvLWdyb3VwXCJcbiAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZpc2liaWxpdHlPcHRpb25cIlxuICAgICAgKGNoYW5nZSk9XCJ2aXNpYmlsaXR5Q2hhbmdlSGFuZGxlcigkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bWF0LXJhZGlvLWJ1dHRvblxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICBjbGFzcz1cImFkZi1saWJyYXJ5LWRpYWxvZy1yYWRpby1ncm91cC1idXR0b25cIlxuICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiB2aXNpYmlsaXR5T3B0aW9uc1wiXG4gICAgICAgIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCJvcHRpb24udmFsdWVcIlxuICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgW2NoZWNrZWRdPVwidmlzaWJpbGl0eU9wdGlvbi52YWx1ZSA9PT0gb3B0aW9uLnZhbHVlXCJcbiAgICAgID5cbiAgICAgICAge3sgb3B0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgPC9tYXQtcmFkaW8tZ3JvdXA+XG4gIDwvZm9ybT5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiYWRmLWFjdGlvbi1idXR0b25zXCI+XG4gIDxidXR0b24gY2xhc3M9XCJhZGYtYWN0aW9uLWJ1dHRvblwiIG1hdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZSBkYXRhLWF1dG9tYXRpb24taWQ9XCJjYW5jZWwtbGlicmFyeS1pZFwiPlxuICAgIHt7ICdMSUJSQVJZLkRJQUxPRy5DQU5DRUwnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgIGNsYXNzPVwiYWRmLWFjdGlvbi1idXR0b25cIlxuICAgIG1hdC1idXR0b25cbiAgICAoY2xpY2spPVwic3VibWl0KClcIlxuICAgIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZCB8fCBkaXNhYmxlQ3JlYXRlQnV0dG9uXCJcbiAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJjcmVhdGUtbGlicmFyeS1pZFwiXG4gID5cbiAgICB7eyAnTElCUkFSWS5ESUFMT0cuQ1JFQVRFJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
|