@arsedizioni/ars-utils 18.2.375 → 18.2.378
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/clipper.common/common/definitions.d.ts +4 -3
- package/clipper.ui/ui/document/document.component.d.ts +3 -3
- package/clipper.ui/ui/document-index/document-index.component.d.ts +2 -2
- package/clipper.ui/ui/document-menu/document-menu.component.d.ts +1 -1
- package/clipper.ui/ui/search-calendar/search-calendar.component.d.ts +1 -2
- package/clipper.ui/ui/search-dialog/search-dialog.component.d.ts +2 -2
- package/clipper.ui/ui/search-facets/search-facets.component.d.ts +1 -2
- package/clipper.ui/ui/search-free-text-query-builder/search-free-text-query-builder.component.d.ts +1 -2
- package/esm2022/clipper.common/common/definitions.mjs +2 -1
- package/esm2022/clipper.ui/ui/document/document.component.mjs +7 -11
- package/esm2022/clipper.ui/ui/document-index/document-index.component.mjs +3 -5
- package/esm2022/clipper.ui/ui/search-calendar/search-calendar.component.mjs +3 -5
- package/esm2022/clipper.ui/ui/search-dialog/search-dialog.component.mjs +3 -5
- package/esm2022/clipper.ui/ui/search-facets/search-facets.component.mjs +4 -6
- package/esm2022/clipper.ui/ui/search-free-text-query-builder/search-free-text-query-builder.component.mjs +4 -6
- package/esm2022/evolution.common/common/definitions.mjs +1 -1
- package/esm2022/tinymce/full-screen-editor/full-screen-editor.component.mjs +4 -6
- package/esm2022/ui/ui/dialogs/confirm/confirm-dialog.component.mjs +4 -6
- package/esm2022/ui/ui/dialogs/credentials/credentials-dialog.component.mjs +5 -9
- package/esm2022/ui/ui/dialogs/recover-password/recover-password-dialog.component.mjs +4 -6
- package/esm2022/ui/ui/dialogs/reset-password/reset-password-dialog.component.mjs +4 -6
- package/esm2022/ui/ui/dialogs/toast/toast.component.mjs +4 -6
- package/esm2022/ui.application/ui/components/button-selector/button-selector.component.mjs +5 -9
- package/esm2022/ui.application/ui/components/button-toggle/button-toggle.component.mjs +4 -6
- package/esm2022/ui.application/ui/components/chips-selector/chips-selector.component.mjs +4 -6
- package/esm2022/ui.application/ui/components/file-input/file-input.component.mjs +6 -12
- package/esm2022/ui.application/ui/components/filter-bar/filter-bar.component.mjs +4 -6
- package/esm2022/ui.application/ui/dialogs/prompt/prompt-dialog.component.mjs +3 -5
- package/esm2022/ui.application/ui/dialogs/prompt-date/prompt-date-dialog.component.mjs +3 -5
- package/esm2022/ui.application/ui/dialogs/prompt-time/prompt-time-dialog.component.mjs +3 -5
- package/esm2022/ui.application/ui/dialogs/select/select-dialog.component.mjs +10 -26
- package/esm2022/ui.application/ui/dialogs/select-file/select-file-dialog.component.mjs +4 -6
- package/esm2022/ui.application/ui/dialogs/select-picture/select-picture-dialog.component.mjs +4 -6
- package/esm2022/ui.application/ui/dialogs/select-tree/select-tree-dialog.component.mjs +4 -6
- package/esm2022/ui.application/ui/dialogs/send-to/send-to-dialog.component.mjs +5 -9
- package/esm2022/ui.oauth/ui/components/login/login-oauth.component.mjs +4 -6
- package/evolution.common/common/definitions.d.ts +2 -2
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs +1 -0
- package/fesm2022/arsedizioni-ars-utils-clipper.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs +973 -987
- package/fesm2022/arsedizioni-ars-utils-clipper.ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-evolution.common.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-tinymce.mjs +3 -5
- package/fesm2022/arsedizioni-ars-utils-tinymce.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs +34 -82
- package/fesm2022/arsedizioni-ars-utils-ui.application.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.mjs +12 -24
- package/fesm2022/arsedizioni-ars-utils-ui.mjs.map +1 -1
- package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs +3 -5
- package/fesm2022/arsedizioni-ars-utils-ui.oauth.mjs.map +1 -1
- package/package.json +1 -1
- package/tinymce/full-screen-editor/full-screen-editor.component.d.ts +2 -2
- package/ui/ui/dialogs/confirm/confirm-dialog.component.d.ts +2 -2
- package/ui/ui/dialogs/credentials/credentials-dialog.component.d.ts +3 -3
- package/ui/ui/dialogs/recover-password/recover-password-dialog.component.d.ts +1 -2
- package/ui/ui/dialogs/reset-password/reset-password-dialog.component.d.ts +2 -2
- package/ui/ui/dialogs/toast/toast.component.d.ts +1 -2
- package/ui.application/ui/components/button-selector/button-selector.component.d.ts +3 -3
- package/ui.application/ui/components/button-toggle/button-toggle.component.d.ts +2 -2
- package/ui.application/ui/components/chips-selector/chips-selector.component.d.ts +2 -2
- package/ui.application/ui/components/file-input/file-input.component.d.ts +4 -4
- package/ui.application/ui/components/filter-bar/filter-bar.component.d.ts +2 -2
- package/ui.application/ui/dialogs/prompt/prompt-dialog.component.d.ts +2 -2
- package/ui.application/ui/dialogs/prompt-date/prompt-date-dialog.component.d.ts +2 -2
- package/ui.application/ui/dialogs/prompt-time/prompt-time-dialog.component.d.ts +2 -2
- package/ui.application/ui/dialogs/select/select-dialog.component.d.ts +9 -9
- package/ui.application/ui/dialogs/select-file/select-file-dialog.component.d.ts +1 -2
- package/ui.application/ui/dialogs/select-picture/select-picture-dialog.component.d.ts +1 -2
- package/ui.application/ui/dialogs/select-tree/select-tree-dialog.component.d.ts +2 -2
- package/ui.application/ui/dialogs/send-to/send-to-dialog.component.d.ts +3 -3
- package/ui.oauth/ui/components/login/login-oauth.component.d.ts +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component,
|
|
1
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild, inject, output, signal } from "@angular/core";
|
|
2
2
|
import { FormsModule } from "@angular/forms";
|
|
3
3
|
import { MatButtonModule } from "@angular/material/button";
|
|
4
4
|
import { MatCheckboxModule } from "@angular/material/checkbox";
|
|
@@ -35,14 +35,14 @@ export class SelectDialogComponent {
|
|
|
35
35
|
this.changeDetector = inject(ChangeDetectorRef);
|
|
36
36
|
this.dialogRef = inject((MatDialogRef));
|
|
37
37
|
this.dialogData = inject(MAT_DIALOG_DATA) ?? { appearance: 'outline', title: 'Seleziona' };
|
|
38
|
-
this.done =
|
|
39
|
-
this.edit =
|
|
40
|
-
this.view =
|
|
41
|
-
this.append =
|
|
42
|
-
this.delete =
|
|
43
|
-
this.lookup =
|
|
44
|
-
this.lookupOptions =
|
|
45
|
-
this.filter =
|
|
38
|
+
this.done = output();
|
|
39
|
+
this.edit = output();
|
|
40
|
+
this.view = output();
|
|
41
|
+
this.append = output();
|
|
42
|
+
this.delete = output();
|
|
43
|
+
this.lookup = output();
|
|
44
|
+
this.lookupOptions = output();
|
|
45
|
+
this.filter = output();
|
|
46
46
|
this.canEdit = signal(false);
|
|
47
47
|
this.canView = signal(false);
|
|
48
48
|
this.canAppend = signal(false);
|
|
@@ -351,21 +351,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
351
351
|
}], selection: [{
|
|
352
352
|
type: ViewChild,
|
|
353
353
|
args: ["selection"]
|
|
354
|
-
}], done: [{
|
|
355
|
-
type: Output
|
|
356
|
-
}], edit: [{
|
|
357
|
-
type: Output
|
|
358
|
-
}], view: [{
|
|
359
|
-
type: Output
|
|
360
|
-
}], append: [{
|
|
361
|
-
type: Output
|
|
362
|
-
}], delete: [{
|
|
363
|
-
type: Output
|
|
364
|
-
}], lookup: [{
|
|
365
|
-
type: Output
|
|
366
|
-
}], lookupOptions: [{
|
|
367
|
-
type: Output
|
|
368
|
-
}], filter: [{
|
|
369
|
-
type: Output
|
|
370
354
|
}] } });
|
|
371
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9zZWxlY3Qvc2VsZWN0LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9zZWxlY3Qvc2VsZWN0LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBNEMsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFnQixrQkFBa0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBVTFGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBaUN6RCxNQUFNLE9BQU8scUJBQXFCO0lBN0JsQztRQWlDVSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzNDLGNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQSxZQUFtQyxDQUFBLENBQUMsQ0FBQztRQUN0RCxlQUFVLEdBQXFCLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBRXhHLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUM5QyxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFDMUMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBQzFDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUNoRCxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFDaEQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO1FBQ2hELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFFaEQsWUFBTyxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNqQyxZQUFPLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLGNBQVMsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDbkMsY0FBUyxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuQyxnQkFBVyxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUUvQyxnQ0FBZ0M7UUFDdEIsZUFBVSxHQUFHLE1BQU0sQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUU3QywyQkFBMkI7UUFDakIsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixrQkFBYSxHQUFRLEVBQUUsQ0FBQztRQUN4QixzQkFBaUIsR0FBVyxPQUFPLENBQUM7UUFFOUMsOENBQThDO1FBQ3BDLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBSW5DLG9DQUFvQztRQUMxQixrQkFBYSxHQUFHLE1BQU0sQ0FBUyxJQUFJLENBQUMsQ0FBQztRQUNyQyxpQ0FBNEIsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDdEQsMkJBQXNCLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0tBa1MzRDtJQWhTQyxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQ3pDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUMvQixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDM0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzVFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQzNELENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUM7WUFDL0MsQ0FBQztZQUNELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQTtnQkFDaEMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoRCx5QkFBeUI7UUFDekIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsYUFBYTtRQUNYLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssYUFBYTtRQUNuQixPQUFPLENBQ0wsSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWU7WUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUTtZQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDaEYsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNLLFlBQVk7UUFDbEIsT0FBTyxDQUNMLElBQUksQ0FBQyxTQUFTO1lBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlO1lBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLFFBQVE7WUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQ25ELENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ08scUJBQXFCLENBQUMsQ0FBb0I7UUFDbEQsSUFBSSxDQUFDLENBQUMsT0FBTztZQUNYLG9FQUFvRTtZQUNwRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDOztZQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVTtZQUMxQixDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNPLE1BQU0sQ0FBQyxDQUF5QjtRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEdBQUcsQ0FBQztnQkFDdkIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVTtnQkFDMUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTO29CQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPO1lBQ3ZCLElBQUksQ0FBQyxTQUFTO1lBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FDZCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU87WUFDdkIsSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUNoQixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVM7WUFDekIsSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQ25DLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLHdCQUF3QjtRQUN4QixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU07Z0JBQzlDLEtBQUs7Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYztRQUNaLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7T0FFRztJQUNPLEVBQUU7UUFDVixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDdkIsa0JBQWtCO1lBQ2xCLE1BQU0sYUFBYSxHQUFRLEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQzFELGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7WUFDbkQsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNPLFdBQVc7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUdEOztPQUVHO0lBQ08saUJBQWlCO1FBQ3pCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDTyxRQUFRLENBQUMsT0FBZSxJQUFJLEVBQUUsSUFBUyxJQUFJO1FBQ25ELElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDM0YsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08saUJBQWlCLENBQUMsWUFBaUI7UUFDM0MsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNmLEtBQUssRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUs7Z0JBQzVCLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDdkIsWUFBWSxFQUFFLFlBQVk7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2FBQ1osQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsTUFBVztRQUNsQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7WUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzdGLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08scUJBQXFCLENBQUMsS0FBYTtRQUMzQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNuQixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDckMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQ7OztNQUdFO0lBQ1EsWUFBWSxDQUFDLENBQU07UUFDM0IsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDN0YsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNPLFFBQVE7UUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBd0IsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7SUFFRDs7T0FFRztJQUNPLE1BQU07UUFDZCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25FLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxNQUFNO1FBQ2QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ08sUUFBUTtRQUNoQixJQUFJLGFBQWEsR0FBUSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzFELGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLO1lBQzVCLGFBQWEsRUFBRSxhQUFhO1NBQ1AsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTVCLENBQUM7OEdBeFVVLHFCQUFxQjtrR0FBckIscUJBQXFCLDZPQTVCaEIsV0FBVyxDQUFDLFlBQVksRUFBRSwrTkN2QzVDLHFwUEEyS00sc2tIRDlIRixnQkFBZ0IsZ2lHQUNoQixjQUFjLDhIQUNkLGtCQUFrQiwyYUFDbEIsY0FBYywwV0FDZCxXQUFXLDhtQkFDWCxlQUFlLHdVQUNmLGFBQWEsbUxBQ2IsZUFBZSxtckJBQ2YsZUFBZSw4QkFDZixnQkFBZ0IsNFRBQ2hCLGFBQWEsZ3dCQUNiLGdCQUFnQixtSUFDaEIsaUJBQWlCLHNZQUNqQixnQkFBZ0Isd0dBQ2hCLGFBQWEsK2RBQ2IsZ0JBQWdCLDRIQUNoQixjQUFjLG9MQUNkLGtCQUFrQixnU0FDbEIsZ0JBQWdCLDBDQUNoQixZQUFZOzsyRkFHSCxxQkFBcUI7a0JBN0JqQyxTQUFTOzJCQUNGLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxtQkFHM0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxXQUFXO3dCQUNYLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixZQUFZO3FCQUNiOzhCQUd1QixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ0UsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQU1aLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU07Z0JBQ0csSUFBSTtzQkFBYixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLCBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBpbmplY3QsXHJcbiAgc2lnbmFsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSwgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3hcIjtcclxuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NvcmVcIjtcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dBY3Rpb25zLCBNYXREaWFsb2dDbG9zZSwgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nUmVmLCBNYXREaWFsb2dUaXRsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyXCI7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkXCI7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvblwiO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xyXG5pbXBvcnQgeyBNYXRMaXN0TW9kdWxlLCBNYXRTZWxlY3Rpb25MaXN0LCBNYXRTZWxlY3Rpb25MaXN0Q2hhbmdlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2xpc3RcIjtcclxuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvciwgTWF0UGFnaW5hdG9yTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXBcIjtcclxuaW1wb3J0IHsgU2FmZUh0bWxQaXBlLCBTZWFyY2hGaWx0ZXJQaXBlLCBTeXN0ZW1VdGlscyB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgU2VsZWN0RGlhbG9nQXBwZW5kLFxyXG4gIFNlbGVjdERpYWxvZ0RhdGEsXHJcbiAgU2VsZWN0RGlhbG9nRGVsZXRlLFxyXG4gIFNlbGVjdERpYWxvZ0ZpbHRlcixcclxuICBTZWxlY3REaWFsb2dMb29rdXAsXHJcbiAgU2VsZWN0RGlhbG9nUmVzdWx0LFxyXG4gIFNlbGVjdGFibGVJdGVtLFxyXG59IGZyb20gXCIuLi8uLi9kZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQG5nYnJhY2tldC9uZ3gtbGF5b3V0JztcclxuXHJcbiAgXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBob3N0OiB7ICdCaW5kJzogU3lzdGVtVXRpbHMuZ2VuZXJhdGVVVUlEKCkgfSxcclxuICB0ZW1wbGF0ZVVybDogXCIuL3NlbGVjdC1kaWFsb2cuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vc2VsZWN0LWRpYWxvZy5jb21wb25lbnQuc2Nzc1wiXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIEZsZXhMYXlvdXRNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dUaXRsZSwgICAgXHJcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBNYXRJbnB1dE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZSxcclxuICAgIE1hdFNlbGVjdE1vZHVsZSxcclxuICAgIE1hdE9wdGlvbk1vZHVsZSxcclxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNYXRNZW51TW9kdWxlLFxyXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcclxuICAgIE1hdENoZWNrYm94TW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nQ29udGVudCxcclxuICAgIE1hdExpc3RNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dBY3Rpb25zLFxyXG4gICAgTWF0RGlhbG9nQ2xvc2UsXHJcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXHJcbiAgICBTZWFyY2hGaWx0ZXJQaXBlLFxyXG4gICAgU2FmZUh0bWxQaXBlXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgncGFnaW5hdG9yJykgcGFnaW5hdG9yITogTWF0UGFnaW5hdG9yO1xyXG4gIEBWaWV3Q2hpbGQoXCJzZWxlY3Rpb25cIikgc2VsZWN0aW9uITogTWF0U2VsZWN0aW9uTGlzdDtcclxuXHJcbiAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJpdmF0ZSBkaWFsb2dSZWYgPSBpbmplY3QoTWF0RGlhbG9nUmVmPFNlbGVjdERpYWxvZ0NvbXBvbmVudD4pO1xyXG4gIHByb3RlY3RlZCBkaWFsb2dEYXRhOiBTZWxlY3REaWFsb2dEYXRhID0gaW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgPz8geyBhcHBlYXJhbmNlOiAnb3V0bGluZScsIHRpdGxlOiAnU2VsZXppb25hJyB9O1xyXG5cclxuICBAT3V0cHV0KCkgZG9uZSA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0RGlhbG9nUmVzdWx0PigpO1xyXG4gIEBPdXRwdXQoKSBlZGl0ID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RhYmxlSXRlbT4oKTtcclxuICBAT3V0cHV0KCkgdmlldyA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0YWJsZUl0ZW0+KCk7XHJcbiAgQE91dHB1dCgpIGFwcGVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0RGlhbG9nQXBwZW5kPigpO1xyXG4gIEBPdXRwdXQoKSBkZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdERpYWxvZ0RlbGV0ZT4oKTtcclxuICBAT3V0cHV0KCkgbG9va3VwID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3REaWFsb2dMb29rdXA+KCk7XHJcbiAgQE91dHB1dCgpIGxvb2t1cE9wdGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8U2VsZWN0RGlhbG9nRmlsdGVyPigpO1xyXG5cclxuICBwcm90ZWN0ZWQgY2FuRWRpdCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcbiAgcHJvdGVjdGVkIGNhblZpZXcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHByb3RlY3RlZCBjYW5BcHBlbmQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHByb3RlY3RlZCBjYW5EZWxldGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHByb3RlY3RlZCBjYW5QYWdpbmF0ZSA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIC8vIEhhbmRsZSBzdWJtaXQgYnV0dG9uIGFjdGl2aXR5XHJcbiAgcHJvdGVjdGVkIG9rRGlzYWJsZWQgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XHJcblxyXG4gIC8vIFVzZWQgZm9yIGFycmF5IGZpbHRlcmluZ1xyXG4gIHByb3RlY3RlZCBmaWx0ZXJUZXh0OiBzdHJpbmcgPSBcIlwiO1xyXG4gIHByb3RlY3RlZCBmaWx0ZXJPcHRpb25zOiBhbnkgPSBbXTtcclxuICBwcm90ZWN0ZWQgZmlsdGVyT3B0aW9uc0luZm86IHN0cmluZyA9IFwiVHV0dG9cIjtcclxuXHJcbiAgLy8gVXNlZCB0byBzaW5jcm9uaXplIGxvb2t1cCBmaWVsZHMgYW5kIHBhcmFtc1xyXG4gIHByb3RlY3RlZCBsb29rdXBGaWVsZDogc3RyaW5nID0gXCJcIjtcclxuICBwcml2YXRlIGxvb2t1cFBhcmFtczogYW55IHwgbnVsbDtcclxuXHJcblxyXG4gIC8vIFVzZWQgdG8gZGlzcGxheSBzZWxlY3RlZCBlbGVtZW50c1xyXG4gIHByb3RlY3RlZCBzZWxlY3Rpb25JbmZvID0gc2lnbmFsPHN0cmluZz4obnVsbCk7XHJcbiAgcHJvdGVjdGVkIHNlbGVjdGlvbk1hc3RlckluZGV0ZXJtaW5hdGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHByb3RlY3RlZCBzZWxlY3Rpb25NYXN0ZXJDaGVja2VkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAoIXRoaXMuZGlhbG9nRGF0YS5hcHBlYXJhbmNlKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS5hcHBlYXJhbmNlID0gJ291dGxpbmUnO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmRpYWxvZ0RhdGEudGl0bGUpIHtcclxuICAgICAgdGhpcy5kaWFsb2dEYXRhLnRpdGxlID0gJ1NlbGV6aW9uYSc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kaWFsb2dEYXRhLm11bHRpICYmICF0aGlzLmRpYWxvZ0RhdGEuaXRlbXMpIHtcclxuICAgICAgdGhpcy5kaWFsb2dEYXRhLm11bHRpID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5kaWFsb2dEYXRhLm9rQ2FwdGlvbikge1xyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEub2tDYXB0aW9uID0gXCJPa1wiO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jYW5BcHBlbmQuc2V0KHRoaXMuZGlhbG9nRGF0YS5jYW5BcHBlbmQpO1xyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jYW5Mb29rdXApIHtcclxuICAgICAgdGhpcy5kaWFsb2dEYXRhLml0ZW1zID0gW107XHJcbiAgICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEubG9va3VwRmllbGRzICYmIHRoaXMuZGlhbG9nRGF0YS5sb29rdXBGaWVsZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMubG9va3VwRmllbGQgPSB0aGlzLmRpYWxvZ0RhdGEubG9va3VwRmllbGRzWzBdLnZhbHVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuY2FuRmlsdGVyKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJPcHRpb25zID0gdGhpcy5kaWFsb2dEYXRhLmZpbHRlcnM7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jYW5QYWdpbmF0ZSkge1xyXG4gICAgICAgIHRoaXMuY2FuUGFnaW5hdGUuc2V0KHRoaXMuZGlhbG9nRGF0YS5jYW5QYWdpbmF0ZSk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRpYWxvZ0RhdGEucGFnZVNpemUpIHtcclxuICAgICAgICAgIHRoaXMuZGlhbG9nRGF0YS5wYWdlU2l6ZSA9IDEwMFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5va0Rpc2FibGVkLnNldCh0aGlzLmRpYWxvZ0RhdGEubXVzdFNlbGVjdCk7XHJcblxyXG4gICAgLy8gQXBwbHkgZmlsdGVyIGlmIGV4aXN0c1xyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5maWx0ZXIgfHwgdGhpcy5kaWFsb2dEYXRhLmxvb2t1cE9uSW5pdCkge1xyXG4gICAgICB0aGlzLmRvRmlsdGVyKHRoaXMuZGlhbG9nRGF0YS5maWx0ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFyayBmb3IgY2hlY2tcclxuICAgKi9cclxuICBub3RpZnlDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGlmIGV2ZXJ5IGVsZW1lbnQgYXJlIHNlbGVjdGVkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBpc0FsbFNlbGVjdGVkKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5zZWxlY3Rpb24gJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZCAmJlxyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLmRpYWxvZ0RhdGEuaXRlbXMubGVuZ3RoXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIGlmIGV4aXN0cyBhIHNlbGVjdGlvblxyXG4gICAqL1xyXG4gIHByaXZhdGUgaGFzU2VsZWN0aW9uKCkge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5zZWxlY3Rpb24gJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZCAmJlxyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQubGVuZ3RoID4gMFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hc3RlciBzZWxlY3Rpb24gdG9nZ2xlXHJcbiAgICogQHBhcmFtIGU6IHRoZSBldmVudFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBtYXN0ZXJTZWxlY3Rpb25Ub2dnbGUoZTogTWF0Q2hlY2tib3hDaGFuZ2UpIHtcclxuICAgIGlmIChlLmNoZWNrZWQpXHJcbiAgICAgIC8vIERlc2VsZWN0IGlmIG5vdCBhbGxzZWxlY3RlZCBzbyB0aGF0IHRvZ2dsZSBtYWtlcyB0aGUgcmlnaHQgY2hvaWNlXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdEFsbCgpO1xyXG4gICAgZWxzZSB0aGlzLnNlbGVjdGlvbi5kZXNlbGVjdEFsbCgpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25NYXN0ZXJJbmRldGVybWluYXRlLnNldChmYWxzZSk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbk1hc3RlckNoZWNrZWQuc2V0KGUuY2hlY2tlZCk7XHJcbiAgICB0aGlzLm9rRGlzYWJsZWQuc2V0KFxyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEubXVzdFNlbGVjdCAmJlxyXG4gICAgICAoIXRoaXMuc2VsZWN0aW9uIHx8IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5sZW5ndGggPT09IDApKTtcclxuICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uSW5mbygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlIHNlbGVjdGlvbi9kZXNlbGVjdGlvbiBvZiBhbiBpdGVtXHJcbiAgICogQHBhcmFtIGU6IHRoZSBldmVudFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzZWxlY3QoZTogTWF0U2VsZWN0aW9uTGlzdENoYW5nZSkge1xyXG4gICAgaWYgKCF0aGlzLmRpYWxvZ0RhdGEubXVsdGkpIHtcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uZGVzZWxlY3RBbGwoKTtcclxuICAgICAgaWYgKGUub3B0aW9ucz8ubGVuZ3RoID4gMClcclxuICAgICAgICBlLm9wdGlvbnNbMF0uc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9rRGlzYWJsZWQuc2V0KGZhbHNlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub2tEaXNhYmxlZC5zZXQoXHJcbiAgICAgICAgdGhpcy5kaWFsb2dEYXRhLm11c3RTZWxlY3QgJiZcclxuICAgICAgICAoIXRoaXMuc2VsZWN0aW9uIHx8XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQubGVuZ3RoID09PSAwKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVXBkYXRlIGVkaXRvcnNcclxuICAgIHRoaXMuY2FuQXBwZW5kLnNldCh0aGlzLmRpYWxvZ0RhdGEuY2FuQXBwZW5kKTtcclxuICAgIHRoaXMuY2FuRWRpdC5zZXQoXHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS5jYW5FZGl0ICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5sZW5ndGggPT09IDEpO1xyXG4gICAgdGhpcy5jYW5WaWV3LnNldChcclxuICAgICAgdGhpcy5kaWFsb2dEYXRhLmNhblZpZXcgJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24gJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkLmxlbmd0aCA9PT0gMSk7XHJcbiAgICB0aGlzLmNhbkRlbGV0ZS5zZXQoXHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS5jYW5EZWxldGUgJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24gJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkLmxlbmd0aCA+IDApO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25NYXN0ZXJJbmRldGVybWluYXRlLnNldChcclxuICAgICAgIXRoaXMuaXNBbGxTZWxlY3RlZCgpICYmIHRoaXMuaGFzU2VsZWN0aW9uKCkpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25NYXN0ZXJDaGVja2VkLnNldCh0aGlzLmhhc1NlbGVjdGlvbigpKTtcclxuICAgIHRoaXMudXBkYXRlU2VsZWN0aW9uSW5mbygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHNlbGVjdGlvbiBpbmZvXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3Rpb25JbmZvKCkge1xyXG4gICAgLy8gVXBkYXRlIHNlbGVjdGlvbiBpbmZvXHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24gJiYgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkLmxlbmd0aCA+IDAgJiYgdGhpcy5kaWFsb2dEYXRhLm11bHRpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uSW5mby5zZXQoXHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkLmxlbmd0aCArXHJcbiAgICAgICAgXCIgLyBcIiArXHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24ub3B0aW9ucy5sZW5ndGgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3Rpb25JbmZvLnNldChudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIGN1cnJlbnQgc2VsZWN0aW9uXHJcbiAgICovXHJcbiAgY2xlYXJTZWxlY3Rpb24oKSB7XHJcbiAgICB0aGlzLnNlbGVjdGlvbk1hc3RlckluZGV0ZXJtaW5hdGUuc2V0KGZhbHNlKTtcclxuICAgIHRoaXMuc2VsZWN0aW9uTWFzdGVyQ2hlY2tlZC5zZXQoZmFsc2UpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb24uZGVzZWxlY3RBbGwoKTtcclxuICAgIHRoaXMuc2VsZWN0aW9uSW5mby5zZXQobnVsbCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdWJtaXQgc2VsZWN0aW9uXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIG9rKCkge1xyXG4gICAgaWYgKCF0aGlzLm9rRGlzYWJsZWQoKSkge1xyXG4gICAgICAvLyBNdWx0aSBzZWxlY3Rpb25cclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtczogYW55ID0gW107XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgc2VsZWN0ZWRJdGVtcy5wdXNoKGVsZW1lbnQudmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kb25lLmVtaXQoeyBzZWxlY3RlZEl0ZW1zOiBzZWxlY3RlZEl0ZW1zIH0pO1xyXG4gICAgICB9LCA1MDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgZmlsdGVyXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGNsZWFyRmlsdGVyKCkge1xyXG4gICAgdGhpcy5maWx0ZXJUZXh0ID0gXCJcIjtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBTaG93IGZpbHRlciBvcHRpb25zXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNob3dGaWx0ZXJPcHRpb25zKCkge1xyXG4gICAgaWYgKHRoaXMubG9va3VwT3B0aW9ucykge1xyXG4gICAgICB0aGlzLmxvb2t1cE9wdGlvbnMuZW1pdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXBwbHkgZmlsdGVyXHJcbiAgICogQHBhcmFtIHRleHQgOiB0aGUgc3RyaW5nIHRvIGZpbHRlciB0b1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0ZpbHRlcih0ZXh0OiBzdHJpbmcgPSBudWxsLCBlOiBhbnkgPSBudWxsKSB7XHJcbiAgICBpZiAodGV4dCkge1xyXG4gICAgICB0aGlzLmZpbHRlclRleHQgPSB0ZXh0O1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jYW5Mb29rdXApIHtcclxuICAgICAgaWYgKCFlIHx8IGUua2V5Q29kZSA9PT0gMTMpIHtcclxuICAgICAgICB0aGlzLmxvb2t1cC5lbWl0KHsgaXRlbXM6IHRoaXMuZGlhbG9nRGF0YS5pdGVtcywgZmlsdGVyOiB0aGlzLmZpbHRlclRleHQsIG93bmVyOiB0aGlzIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBcHBseSBmaWx0ZXIgdXNpbmcgZmlsdGVyIG9wdGlvbnNcclxuICAgKiBAcGFyYW0gZmlsdGVyT3B0aW9uIDogdGhlIGN1cnJlbnQgZmlsdGVyIG9wdGlvblxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0ZpbHRlckJ5T3B0aW9ucyhmaWx0ZXJPcHRpb246IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jYW5Mb29rdXAgJiYgdGhpcy5kaWFsb2dEYXRhLmNhbkZpbHRlcikge1xyXG4gICAgICB0aGlzLmZpbHRlci5lbWl0KHtcclxuICAgICAgICBpdGVtczogdGhpcy5kaWFsb2dEYXRhLml0ZW1zLFxyXG4gICAgICAgIGZpbHRlcjogdGhpcy5maWx0ZXJUZXh0LFxyXG4gICAgICAgIGZpbHRlck9wdGlvbjogZmlsdGVyT3B0aW9uLFxyXG4gICAgICAgIG93bmVyOiB0aGlzLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFwcGx5IGZpbHRlci4gVGhpcyBpcyBhY2Nlc3NpYmxlIGZyb20gcHVibGljXHJcbiAgICogQHBhcmFtIHBhcmFtcyA6IHRoZSBvYmplY3Qgd2l0aCBjdXJyZW50IHBhcmFtZXRlcnNcclxuICAgKi9cclxuICBkb0xvb2t1cChwYXJhbXM6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jYW5Mb29rdXApIHtcclxuICAgICAgdGhpcy5sb29rdXBQYXJhbXMgPSBwYXJhbXM7XHJcbiAgICAgIHRoaXMubG9va3VwUGFyYW1zLmZpcnN0ID0gMDtcclxuICAgICAgdGhpcy5sb29rdXAuZW1pdCh7IGl0ZW1zOiB0aGlzLmRpYWxvZ0RhdGEuaXRlbXMsIHBhcmFtczogdGhpcy5sb29rdXBQYXJhbXMsIG93bmVyOiB0aGlzIH0pOyAgICBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBsb29rdXAgcGFnaW5hdHJvXHJcbiAgICogQHBhcmFtIHRvdGFsIDogdGhlIG5ldyB0b3RhbCBpdGVtc1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCB1cGRhdGVMb29rdXBQYWdpbmF0b3IodG90YWw6IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuY2FuUGFnaW5hdGUoKSkge1xyXG4gICAgICBpZiAodGhpcy5wYWdpbmF0b3IpIHtcclxuICAgICAgICB0aGlzLnBhZ2luYXRvci5wYWdlSW5kZXggPSAwO1xyXG4gICAgICAgIHRoaXMucGFnaW5hdG9yLmxlbmd0aCA9IHRvdGFsID8/IDA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogQXBwbHkgZmlsdGVyXHJcbiAgKiBAcGFyYW0gZSA6IHRoZSBNYXRQYWdpbmF0b3IgUGFnZUV2ZW50IGRhdGFcclxuICAqL1xyXG4gIHByb3RlY3RlZCBkb0xvb2t1cFBhZ2UoZTogYW55KSB7XHJcbiAgICBpZiAodGhpcy5kaWFsb2dEYXRhLmNhbkxvb2t1cCAmJiB0aGlzLmRpYWxvZ0RhdGEuY2FuUGFnaW5hdGUpIHtcclxuICAgICAgdGhpcy5jbGVhclNlbGVjdGlvbigpO1xyXG4gICAgICB0aGlzLmxvb2t1cFBhcmFtcy5maXJzdCA9IGUucGFnZUluZGV4ICogKHRoaXMuZGlhbG9nRGF0YS5wYWdlU2l6ZSA/PyAwKTtcclxuICAgICAgdGhpcy5sb29rdXAuZW1pdCh7IGl0ZW1zOiB0aGlzLmRpYWxvZ0RhdGEuaXRlbXMsIHBhcmFtczogdGhpcy5sb29rdXBQYXJhbXMsIG93bmVyOiB0aGlzIH0pOyAgICAgIFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXBwZW5kXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvQXBwZW5kKCkge1xyXG4gICAgdGhpcy5hcHBlbmQuZW1pdCh7IGl0ZW1zOiB0aGlzLmRpYWxvZ0RhdGEuaXRlbXMsIG93bmVyOiB0aGlzIH0gYXMgU2VsZWN0RGlhbG9nQXBwZW5kKTsgICBcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVkaXRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9FZGl0KCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZD8ubGVuZ3RoID4gMCl7XHJcbiAgICAgIHRoaXMuZWRpdC5lbWl0KHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZFswXS52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWaWV3XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvVmlldygpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQ/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy52aWV3LmVtaXQodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkWzBdLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0RlbGV0ZSgpIHtcclxuICAgIGxldCBzZWxlY3RlZEl0ZW1zOiBhbnkgPSBbXTtcclxuICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5mb3JFYWNoKChlbGVtZW50KSA9PiB7XHJcbiAgICAgIHNlbGVjdGVkSXRlbXMucHVzaChlbGVtZW50LnZhbHVlKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kZWxldGUuZW1pdCh7XHJcbiAgICAgIGl0ZW1zOiB0aGlzLmRpYWxvZ0RhdGEuaXRlbXMsXHJcbiAgICAgIHNlbGVjdGVkSXRlbXM6IHNlbGVjdGVkSXRlbXMsXHJcbiAgICB9IGFzIFNlbGVjdERpYWxvZ0RlbGV0ZSk7XHJcbiAgICB0aGlzLmNhbkRlbGV0ZS5zZXQoZmFsc2UpO1xyXG4gICAgXHJcbiAgfVxyXG59XHJcbiIsIjxoMiBtYXQtZGlhbG9nLXRpdGxlPnt7ZGlhbG9nRGF0YS50aXRsZX19PC9oMj5cclxuPGRpdiBzdHlsZT1cInBhZGRpbmc6IDAgMjRweFwiPlxyXG4gIEBpZiAoZGlhbG9nRGF0YS5kZXNjcmlwdGlvbikge1xyXG4gIDxkaXYgY2xhc3M9XCJzZWxlY3RmaWxlLWRlc2NyaXB0aW9uXCIgW2lubmVySHRtbF09XCJkaWFsb2dEYXRhLmRlc2NyaXB0aW9uIHwgc2FmZUh0bWxcIj48L2Rpdj5cclxuICB9XHJcbiAgPGRpdj5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjIwcHhcIiBmeEZpbGw+XHJcbiAgICAgIEBpZiAoIWRpYWxvZ0RhdGEuY2FuTG9va3VwV2l0aE9wdGlvbnMpIHtcclxuICAgICAgPGRpdiBmeEZsZXg9XCIxMDBcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgc3R5bGU9J3dpZHRoOjEwMCUnIFthcHBlYXJhbmNlXT1cImRpYWxvZ0RhdGEuYXBwZWFyYW5jZVwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+Q2VyY2EuLi48L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNka0ZvY3VzSW5pdGlhbCAoa2V5dXAuRW50ZXIpPVwiZG9GaWx0ZXIoKVwiIG1hdElucHV0XHJcbiAgICAgICAgICAgIHRpdGxlPVwie3tkaWFsb2dEYXRhLmNhbkxvb2t1cCA/ICdEaWdpdGEgaWwgdGVzdG8gZSBwcmVtaSBpbnZpbycgOiAnRGlnaXRhIGlsIHRlc3RvJ319XCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWx0ZXJUZXh0XCI+XHJcbiAgICAgICAgICBAaWYgKGZpbHRlclRleHQpIHtcclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJDbGVhclwiIChjbGljayk9XCJjbGVhckZpbHRlcigpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKCFkaWFsb2dEYXRhLmNhbkxvb2t1cFdpdGhPcHRpb25zICYmIGRpYWxvZ0RhdGEuY2FuTG9va3VwICYmIGRpYWxvZ0RhdGEubG9va3VwRmllbGRzKSB7XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiMTAwXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPSd3aWR0aDoxMDAlJyBbYXBwZWFyYW5jZV09XCJkaWFsb2dEYXRhLmFwcGVhcmFuY2VcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPkNvbWUuLi48L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxtYXQtc2VsZWN0IFsodmFsdWUpXT1cImxvb2t1cEZpZWxkXCI+XHJcbiAgICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIGRpYWxvZ0RhdGEubG9va3VwRmllbGRzOyB0cmFjayBmaWVsZCkge1xyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiZmllbGQudmFsdWVcIj5cclxuICAgICAgICAgICAgICB7e2ZpZWxkLm5hbWV9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGRpYWxvZ0RhdGEuY2FuTG9va3VwV2l0aE9wdGlvbnMpIHtcclxuICAgICAgPGRpdiBmeEZsZXg9XCIqXCIgZnhGbGV4QWxpZ249XCJjZW50ZXJcIj5cclxuICAgICAgICA8YnV0dG9uIGZ4RmxleEFsaWduPVwiY2VudGVyXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gYXJpYS1sYWJlbD1cIlJpY2VyY2FcIiAoY2xpY2spPVwic2hvd0ZpbHRlck9wdGlvbnMoKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+UmljZXJjYVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICBAaWYgKGRpYWxvZ0RhdGEuY2FuTG9va3VwICYmIGRpYWxvZ0RhdGEuY2FuRmlsdGVyKSB7XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTpub3dyYXBcIj5cclxuICAgICAgICA8YnV0dG9uIGZ4RmxleEFsaWduPVwiY2VudGVyXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gbWF0VG9vbHRpcD1cIkZpbHRyYVwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0ZpbHRyYSdcIlxyXG4gICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVGaWx0ZXJcIiBjb2xvcj1cInByaW1hcnlcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5maWx0ZXJfYWx0PC9tYXQtaWNvbj4ge3tmaWx0ZXJPcHRpb25zSW5mb319IDxtYXQtaWNvbiBjbGFzcz1cImljb24tbWVudS1kcm9wLWRvd25cIj5cclxuICAgICAgICAgICAgYXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8bWF0LW1lbnUgI21lbnVGaWx0ZXI9XCJtYXRNZW51XCIgY2xhc3M9XCJtYXQtbWVudS0zMDBcIj5cclxuICAgICAgICAgIEBmb3IgKGYgb2YgZmlsdGVyT3B0aW9uczsgdHJhY2sgZikge1xyXG5cclxuICAgICAgICAgIEBpZiAoZi5kaXZpZGVyKSB7XHJcbiAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpZiAoZi5ncm91cE5hbWUpIHtcclxuICAgICAgICAgIDxzcGFuIHN0eWxlPSdmb250LXNpemU6c21hbGw7IHBhZGRpbmc6IDJweCA0cHg7Jz48aT48Yj57e2YuZ3JvdXBOYW1lfX08L2I+PC9pPjwvc3Bhbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBpZiAoIWYuZ3JvdXBOYW1lICYmICFmLmRpdmlkZXIpIHtcclxuICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiZG9GaWx0ZXJCeU9wdGlvbnMoZilcIiBbYXR0ci5hcmlhLWxhYmVsXT1cImYuZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgQGlmIChmLnJhZGlvICYmIGYudmFsdWUpIHtcclxuICAgICAgICAgICAgPHNwYW4gc3R5bGU9XCJwYWRkaW5nLWxlZnQ6NDBweFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8bWF0LWljb24+e3tmLmljb259fTwvbWF0LWljb24+IHt7Zi50aXRsZX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChjYW5FZGl0KCkgfHwgY2FuQXBwZW5kKCkgfHwgY2FuVmlldygpIHx8IGNhbkRlbGV0ZSgpKSB7XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4TGF5b3V0QWxpZ249XCJlbmRcIiBzdHlsZT1cIndoaXRlLXNwYWNlOm5vd3JhcFwiPlxyXG4gICAgICAgIEBpZiAoY2FuQXBwZW5kKCkpIHtcclxuICAgICAgICA8YnV0dG9uIGZ4RmxleEFsaWduPVwiY2VudGVyXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiZG9BcHBlbmQoKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJBZ2dpdW5naVwiIG1hdFRvb2x0aXA9XCJBZ2dpdW5naVwiPmFkZDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoY2FuRWRpdCgpKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImRvRWRpdCgpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIk1vZGlmaWNhXCIgbWF0VG9vbHRpcD1cIk1vZGlmaWNhXCI+ZWRpdDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoY2FuVmlldygpKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImRvVmlldygpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIk1vc3RyYVwiIG1hdFRvb2x0aXA9XCJNb3N0cmFcIj52aXNpYmlsaXR5PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgICAgQGlmIChjYW5EZWxldGUoKSkge1xyXG4gICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJjZW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJkb0RlbGV0ZSgpXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkVsaW1pbmFcIiBtYXRUb29sdGlwPVwiRWxpbWluYVwiPmRlbGV0ZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgQGlmICgoZGlhbG9nRGF0YS5tdWx0aSB8fCBkaWFsb2dEYXRhLmhlYWRlcikgJiYgZGlhbG9nRGF0YS5pdGVtcz8ubGVuZ3RoID4gMCkge1xyXG4gIDxkaXY+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhGYWx5b3V0R2FwPVwiMTBweFwiIGZ4RmlsbCBzdHlsZT1cInBhZGRpbmctdG9wOiAxMHB4O1wiPlxyXG4gICAgICA8ZGl2IGZ4RmxleD1cIjcycHhcIiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHN0eWxlPVwicGFkZGluZy1sZWZ0OiA4cHg7XCI+XHJcbiAgICAgICAgQGlmIChkaWFsb2dEYXRhLm11bHRpKSB7XHJcbiAgICAgICAgPG1hdC1jaGVja2JveCBjb2xvcj1cInByaW1hcnlcIiAoY2hhbmdlKT1cIiRldmVudCA/IG1hc3RlclNlbGVjdGlvblRvZ2dsZSgkZXZlbnQpIDogbnVsbFwiXHJcbiAgICAgICAgICBbaW5kZXRlcm1pbmF0ZV09XCJzZWxlY3Rpb25NYXN0ZXJJbmRldGVybWluYXRlKClcIiBbY2hlY2tlZF09XCJzZWxlY3Rpb25NYXN0ZXJDaGVja2VkKClcIlxyXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU2VsZXppb25hL2Rlc2VsZXppb25hIHR1dHRvJ1wiIG1hdFRvb2x0aXA9XCJTZWxlemlvbmEvZGVzZWxlemlvbmEgdHV0dG9cIj5cclxuICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGZ4RmxleD1cIjEwMFwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgQGlmIChkaWFsb2dEYXRhLmhlYWRlcikge1xyXG4gICAgICAgIDxkaXYgW2lubmVySHRtbF09XCJkaWFsb2dEYXRhLmhlYWRlciB8IHNhZmVIdG1sXCI+PC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50PlxyXG4gIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZpbGw+XHJcbiAgICBAaWYgKGRpYWxvZ0RhdGEuY2FuTG9va3VwICYmICghZGlhbG9nRGF0YS5pdGVtcyB8fCBkaWFsb2dEYXRhLml0ZW1zLmxlbmd0aCA9PSAwKSkge1xyXG4gICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj48aT5cclxuICAgICAgICBAaWYgKCFkaWFsb2dEYXRhLmVtcHR5TWVzc2FnZSkge1xyXG4gICAgICAgIDxzcGFuPk5lc3N1biBlbGVtZW50byBkYSB2aXN1YWxpenphcmUuPGJyPkVzZWd1aSB1bmEgbnVvdmEgcmljZXJjYSBvIG1vZGlmaWNhIHF1ZWxsYVxyXG4gICAgICAgICAgZXNpc3RlbnRlLlxyXG4gICAgICAgICAgQGlmIChkaWFsb2dEYXRhLm1heEl0ZW1zID4gMCkge1xyXG4gICAgICAgICAgPHNwYW4+U2FyYW5ubyBtb3N0cmF0aSBhbCBtYXNzaW1vIHt7ZGlhbG9nRGF0YS5tYXhJdGVtc319IGVsZW1lbnRpLjwvc3Bhbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPHNwYW4gW2lubmVySHRtbF09XCJkaWFsb2dEYXRhLmVtcHR5TWVzc2FnZSB8IHNhZmVIdG1sXCI+PC9zcGFuPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9pPlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8bWF0LXNlbGVjdGlvbi1saXN0ICNzZWxlY3Rpb24gKHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3QoJGV2ZW50KVwiIGRlbnNlIGhpZGVTaW5nbGVTZWxlY3Rpb25JbmRpY2F0b3I9XCJ0cnVlXCI+XHJcbiAgICAgIEBmb3IgKGl0ZW0gb2YgKGRpYWxvZ0RhdGEuaXRlbXMgfCBzZWFyY2g6ICghZGlhbG9nRGF0YS5jYW5Mb29rdXAgPyBmaWx0ZXJUZXh0IDogJycpKTsgdHJhY2sgaXRlbSkge1xyXG4gICAgICA8bWF0LWxpc3Qtb3B0aW9uIFt2YWx1ZV09XCJpdGVtXCIgW3NlbGVjdGVkXT1cIml0ZW0uc2VsZWN0ZWRcIiBjaGVja2JveFBvc2l0aW9uPVwiYmVmb3JlXCIgPlxyXG4gICAgICAgIDxkaXYgW2lubmVySHRtbF09XCJpdGVtLnRlbXBsYXRlIHwgc2FmZUh0bWxcIj48L2Rpdj5cclxuICAgICAgPC9tYXQtbGlzdC1vcHRpb24+XHJcbiAgICAgIH1cclxuICAgIDwvbWF0LXNlbGVjdGlvbi1saXN0PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4RmlsbD5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIiBmeExheW91dEdhcD1cIjEwcHhcIiBmeEZpbGw+XHJcbiAgICAgIDxkaXYgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6MjBweFwiPlxyXG4gICAgICAgIEBpZiAoc2VsZWN0aW9uSW5mbygpKSB7XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzbWFsbFwiPnNlbGV6aW9uZTogJm5ic3A7PC9zcGFuPjxzcGFuIGNsYXNzPVwiYm9sZFwiPnt7c2VsZWN0aW9uSW5mbygpfX08L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBmeEZsZXhBbGlnbj1cImNlbnRlclwiPlxyXG4gICAgICAgIEBpZiAoY2FuUGFnaW5hdGUoKSkge1xyXG4gICAgICAgIDxtYXQtcGFnaW5hdG9yICNwYWdpbmF0b3IgW2hpZGVQYWdlU2l6ZV09XCJ0cnVlXCIgW3BhZ2VTaXplXT1cImRpYWxvZ0RhdGEucGFnZVNpemVcIiBbc2hvd0ZpcnN0TGFzdEJ1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAocGFnZSk9XCJkb0xvb2t1cFBhZ2UoJGV2ZW50KVwiIFtsZW5ndGhdPVwiZGlhbG9nRGF0YS5pdGVtcz8ubGVuZ3RoID8/IDBcIj48L21hdC1wYWdpbmF0b3I+XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiZW5kXCIgZnhGaWxsPlxyXG4gICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib2soKVwiIFtkaXNhYmxlZF09XCJva0Rpc2FibGVkKClcIj5cclxuICAgICAgICA8c3Bhbj57e2RpYWxvZ0RhdGEubXVzdFNlbGVjdCA/IGRpYWxvZ0RhdGEub2tDYXB0aW9uIDogJ0NoaXVkaSd9fTwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIEBpZiAoZGlhbG9nRGF0YS5tdXN0U2VsZWN0KSB7XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlIGNka0ZvY3VzSW5pdGlhbCBjb2xvcj1cInByaW1hcnlcIj5cclxuICAgICAgICA8c3Bhbj5Bbm51bGxhPC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
355
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9zZWxlY3Qvc2VsZWN0LWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9zZWxlY3Qvc2VsZWN0LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQVUsU0FBUyxFQUM1QixNQUFNLEVBQ04sTUFBTSxFQUNOLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdJLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBNEMsTUFBTSx3QkFBd0Is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QixjQUFjLDBXQUNkLFdBQVcsOG1CQUNYLGVBQWUsd1VBQ2YsYUFBYSxtTEFDYixlQUFlLG1yQkFDZixlQUFlLDhCQUNmLGdCQUFnQiw0VEFDaEIsYUFBYSxnd0JBQ2IsZ0JBQWdCLG1JQUNoQixpQkFBaUIsc1lBQ2pCLGdCQUFnQix3R0FDaEIsYUFBYSwrZEFDYixnQkFBZ0IsNEhBQ2hCLGNBQWMsb0xBQ2Qsa0JBQWtCLGdTQUNsQixnQkFBZ0IsMENBQ2hCLFlBQVk7OzJGQUdILHFCQUFxQjtrQkE3QmpDLFNBQVM7MkJBQ0YsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksRUFBRSxFQUFFLG1CQUczQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLFlBQVk7cUJBQ2I7OEJBR3VCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDRSxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQsXHJcbiAgaW5qZWN0LFxyXG4gIG91dHB1dCxcclxuICBzaWduYWxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uXCI7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlLCBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveFwiO1xyXG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ0FjdGlvbnMsIE1hdERpYWxvZ0Nsb3NlLCBNYXREaWFsb2dDb250ZW50LCBNYXREaWFsb2dSZWYsIE1hdERpYWxvZ1RpdGxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQgeyBNYXREaXZpZGVyTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXJcIjtcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pY29uXCI7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XHJcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUsIE1hdFNlbGVjdGlvbkxpc3QsIE1hdFNlbGVjdGlvbkxpc3RDaGFuZ2UgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdFwiO1xyXG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yLCBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0XCI7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcFwiO1xyXG5pbXBvcnQgeyBTYWZlSHRtbFBpcGUsIFNlYXJjaEZpbHRlclBpcGUsIFN5c3RlbVV0aWxzIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHtcclxuICBTZWxlY3REaWFsb2dBcHBlbmQsXHJcbiAgU2VsZWN0RGlhbG9nRGF0YSxcclxuICBTZWxlY3REaWFsb2dEZWxldGUsXHJcbiAgU2VsZWN0RGlhbG9nRmlsdGVyLFxyXG4gIFNlbGVjdERpYWxvZ0xvb2t1cCxcclxuICBTZWxlY3REaWFsb2dSZXN1bHQsXHJcbiAgU2VsZWN0YWJsZUl0ZW0sXHJcbn0gZnJvbSBcIi4uLy4uL2RlZmluaXRpb25zXCI7XHJcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAbmdicmFja2V0L25neC1sYXlvdXQnO1xyXG5cclxuICBcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGhvc3Q6IHsgJ0JpbmQnOiBTeXN0ZW1VdGlscy5nZW5lcmF0ZVVVSUQoKSB9LFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vc2VsZWN0LWRpYWxvZy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9zZWxlY3QtZGlhbG9nLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRmxleExheW91dE1vZHVsZSxcclxuICAgIE1hdERpYWxvZ1RpdGxlLCAgICBcclxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcclxuICAgIE1hdElucHV0TW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0T3B0aW9uTW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIE1hdE1lbnVNb2R1bGUsXHJcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxyXG4gICAgTWF0Q2hlY2tib3hNb2R1bGUsXHJcbiAgICBNYXREaWFsb2dDb250ZW50LFxyXG4gICAgTWF0TGlzdE1vZHVsZSxcclxuICAgIE1hdERpYWxvZ0FjdGlvbnMsXHJcbiAgICBNYXREaWFsb2dDbG9zZSxcclxuICAgIE1hdFBhZ2luYXRvck1vZHVsZSxcclxuICAgIFNlYXJjaEZpbHRlclBpcGUsXHJcbiAgICBTYWZlSHRtbFBpcGVcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdwYWdpbmF0b3InKSBwYWdpbmF0b3IhOiBNYXRQYWdpbmF0b3I7XHJcbiAgQFZpZXdDaGlsZChcInNlbGVjdGlvblwiKSBzZWxlY3Rpb24hOiBNYXRTZWxlY3Rpb25MaXN0O1xyXG5cclxuICBwcml2YXRlIGNoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcclxuICBwcml2YXRlIGRpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWY8U2VsZWN0RGlhbG9nQ29tcG9uZW50Pik7XHJcbiAgcHJvdGVjdGVkIGRpYWxvZ0RhdGE6IFNlbGVjdERpYWxvZ0RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKSA/PyB7IGFwcGVhcmFuY2U6ICdvdXRsaW5lJywgdGl0bGU6ICdTZWxlemlvbmEnIH07XHJcblxyXG4gIGRvbmUgPSBvdXRwdXQ8U2VsZWN0RGlhbG9nUmVzdWx0PigpO1xyXG4gIGVkaXQgPSBvdXRwdXQ8U2VsZWN0YWJsZUl0ZW0+KCk7XHJcbiAgdmlldyA9IG91dHB1dDxTZWxlY3RhYmxlSXRlbT4oKTtcclxuICBhcHBlbmQgPSBvdXRwdXQ8U2VsZWN0RGlhbG9nQXBwZW5kPigpO1xyXG4gIGRlbGV0ZSA9IG91dHB1dDxTZWxlY3REaWFsb2dEZWxldGU+KCk7XHJcbiAgbG9va3VwID0gb3V0cHV0PFNlbGVjdERpYWxvZ0xvb2t1cD4oKTtcclxuICBsb29rdXBPcHRpb25zID0gb3V0cHV0KCk7XHJcbiAgZmlsdGVyID0gb3V0cHV0PFNlbGVjdERpYWxvZ0ZpbHRlcj4oKTtcclxuXHJcbiAgcHJvdGVjdGVkIGNhbkVkaXQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHByb3RlY3RlZCBjYW5WaWV3ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICBwcm90ZWN0ZWQgY2FuQXBwZW5kID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICBwcm90ZWN0ZWQgY2FuRGVsZXRlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICBwcm90ZWN0ZWQgY2FuUGFnaW5hdGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvLyBIYW5kbGUgc3VibWl0IGJ1dHRvbiBhY3Rpdml0eVxyXG4gIHByb3RlY3RlZCBva0Rpc2FibGVkID0gc2lnbmFsPGJvb2xlYW4+KHRydWUpO1xyXG5cclxuICAvLyBVc2VkIGZvciBhcnJheSBmaWx0ZXJpbmdcclxuICBwcm90ZWN0ZWQgZmlsdGVyVGV4dDogc3RyaW5nID0gXCJcIjtcclxuICBwcm90ZWN0ZWQgZmlsdGVyT3B0aW9uczogYW55ID0gW107XHJcbiAgcHJvdGVjdGVkIGZpbHRlck9wdGlvbnNJbmZvOiBzdHJpbmcgPSBcIlR1dHRvXCI7XHJcblxyXG4gIC8vIFVzZWQgdG8gc2luY3Jvbml6ZSBsb29rdXAgZmllbGRzIGFuZCBwYXJhbXNcclxuICBwcm90ZWN0ZWQgbG9va3VwRmllbGQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHJpdmF0ZSBsb29rdXBQYXJhbXM6IGFueSB8IG51bGw7XHJcblxyXG5cclxuICAvLyBVc2VkIHRvIGRpc3BsYXkgc2VsZWN0ZWQgZWxlbWVudHNcclxuICBwcm90ZWN0ZWQgc2VsZWN0aW9uSW5mbyA9IHNpZ25hbDxzdHJpbmc+KG51bGwpO1xyXG4gIHByb3RlY3RlZCBzZWxlY3Rpb25NYXN0ZXJJbmRldGVybWluYXRlID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICBwcm90ZWN0ZWQgc2VsZWN0aW9uTWFzdGVyQ2hlY2tlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLmRpYWxvZ0RhdGEuYXBwZWFyYW5jZSkge1xyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEuYXBwZWFyYW5jZSA9ICdvdXRsaW5lJztcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5kaWFsb2dEYXRhLnRpdGxlKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS50aXRsZSA9ICdTZWxlemlvbmEnO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5tdWx0aSAmJiAhdGhpcy5kaWFsb2dEYXRhLml0ZW1zKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS5tdWx0aSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuZGlhbG9nRGF0YS5va0NhcHRpb24pIHtcclxuICAgICAgdGhpcy5kaWFsb2dEYXRhLm9rQ2FwdGlvbiA9IFwiT2tcIjtcclxuICAgIH1cclxuICAgIHRoaXMuY2FuQXBwZW5kLnNldCh0aGlzLmRpYWxvZ0RhdGEuY2FuQXBwZW5kKTtcclxuICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuY2FuTG9va3VwKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS5pdGVtcyA9IFtdO1xyXG4gICAgICBpZiAodGhpcy5kaWFsb2dEYXRhLmxvb2t1cEZpZWxkcyAmJiB0aGlzLmRpYWxvZ0RhdGEubG9va3VwRmllbGRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmxvb2t1cEZpZWxkID0gdGhpcy5kaWFsb2dEYXRhLmxvb2t1cEZpZWxkc1swXS52YWx1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5kaWFsb2dEYXRhLmNhbkZpbHRlcikge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyT3B0aW9ucyA9IHRoaXMuZGlhbG9nRGF0YS5maWx0ZXJzO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuY2FuUGFnaW5hdGUpIHtcclxuICAgICAgICB0aGlzLmNhblBhZ2luYXRlLnNldCh0aGlzLmRpYWxvZ0RhdGEuY2FuUGFnaW5hdGUpO1xyXG4gICAgICAgIGlmICghdGhpcy5kaWFsb2dEYXRhLnBhZ2VTaXplKSB7XHJcbiAgICAgICAgICB0aGlzLmRpYWxvZ0RhdGEucGFnZVNpemUgPSAxMDBcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMub2tEaXNhYmxlZC5zZXQodGhpcy5kaWFsb2dEYXRhLm11c3RTZWxlY3QpO1xyXG5cclxuICAgIC8vIEFwcGx5IGZpbHRlciBpZiBleGlzdHNcclxuICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuZmlsdGVyIHx8IHRoaXMuZGlhbG9nRGF0YS5sb29rdXBPbkluaXQpIHtcclxuICAgICAgdGhpcy5kb0ZpbHRlcih0aGlzLmRpYWxvZ0RhdGEuZmlsdGVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1hcmsgZm9yIGNoZWNrXHJcbiAgICovXHJcbiAgbm90aWZ5Q2hhbmdlcygpIHtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiBldmVyeSBlbGVtZW50IGFyZSBzZWxlY3RlZFxyXG4gICAqL1xyXG4gIHByaXZhdGUgaXNBbGxTZWxlY3RlZCgpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucyAmJlxyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQgJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkLmxlbmd0aCA9PT0gdGhpcy5kaWFsb2dEYXRhLml0ZW1zLmxlbmd0aFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrcyBpZiBleGlzdHMgYSBzZWxlY3Rpb25cclxuICAgKi9cclxuICBwcml2YXRlIGhhc1NlbGVjdGlvbigpIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucyAmJlxyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQgJiZcclxuICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkLmxlbmd0aCA+IDBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYXN0ZXIgc2VsZWN0aW9uIHRvZ2dsZVxyXG4gICAqIEBwYXJhbSBlOiB0aGUgZXZlbnRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgbWFzdGVyU2VsZWN0aW9uVG9nZ2xlKGU6IE1hdENoZWNrYm94Q2hhbmdlKSB7XHJcbiAgICBpZiAoZS5jaGVja2VkKVxyXG4gICAgICAvLyBEZXNlbGVjdCBpZiBub3QgYWxsc2VsZWN0ZWQgc28gdGhhdCB0b2dnbGUgbWFrZXMgdGhlIHJpZ2h0IGNob2ljZVxyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RBbGwoKTtcclxuICAgIGVsc2UgdGhpcy5zZWxlY3Rpb24uZGVzZWxlY3RBbGwoKTtcclxuICAgIHRoaXMuc2VsZWN0aW9uTWFzdGVySW5kZXRlcm1pbmF0ZS5zZXQoZmFsc2UpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25NYXN0ZXJDaGVja2VkLnNldChlLmNoZWNrZWQpO1xyXG4gICAgdGhpcy5va0Rpc2FibGVkLnNldChcclxuICAgICAgdGhpcy5kaWFsb2dEYXRhLm11c3RTZWxlY3QgJiZcclxuICAgICAgKCF0aGlzLnNlbGVjdGlvbiB8fCB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQubGVuZ3RoID09PSAwKSk7XHJcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGlvbkluZm8oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZSBzZWxlY3Rpb24vZGVzZWxlY3Rpb24gb2YgYW4gaXRlbVxyXG4gICAqIEBwYXJhbSBlOiB0aGUgZXZlbnRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgc2VsZWN0KGU6IE1hdFNlbGVjdGlvbkxpc3RDaGFuZ2UpIHtcclxuICAgIGlmICghdGhpcy5kaWFsb2dEYXRhLm11bHRpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLmRlc2VsZWN0QWxsKCk7XHJcbiAgICAgIGlmIChlLm9wdGlvbnM/Lmxlbmd0aCA+IDApXHJcbiAgICAgICAgZS5vcHRpb25zWzBdLnNlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5va0Rpc2FibGVkLnNldChmYWxzZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9rRGlzYWJsZWQuc2V0KFxyXG4gICAgICAgIHRoaXMuZGlhbG9nRGF0YS5tdXN0U2VsZWN0ICYmXHJcbiAgICAgICAgKCF0aGlzLnNlbGVjdGlvbiB8fFxyXG4gICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkLmxlbmd0aCA9PT0gMCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFVwZGF0ZSBlZGl0b3JzXHJcbiAgICB0aGlzLmNhbkFwcGVuZC5zZXQodGhpcy5kaWFsb2dEYXRhLmNhbkFwcGVuZCk7XHJcbiAgICB0aGlzLmNhbkVkaXQuc2V0KFxyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEuY2FuRWRpdCAmJlxyXG4gICAgICB0aGlzLnNlbGVjdGlvbiAmJlxyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQubGVuZ3RoID09PSAxKTtcclxuICAgIHRoaXMuY2FuVmlldy5zZXQoXHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS5jYW5WaWV3ICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5sZW5ndGggPT09IDEpO1xyXG4gICAgdGhpcy5jYW5EZWxldGUuc2V0KFxyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEuY2FuRGVsZXRlICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5sZW5ndGggPiAwKTtcclxuICAgIHRoaXMuc2VsZWN0aW9uTWFzdGVySW5kZXRlcm1pbmF0ZS5zZXQoXHJcbiAgICAgICF0aGlzLmlzQWxsU2VsZWN0ZWQoKSAmJiB0aGlzLmhhc1NlbGVjdGlvbigpKTtcclxuICAgIHRoaXMuc2VsZWN0aW9uTWFzdGVyQ2hlY2tlZC5zZXQodGhpcy5oYXNTZWxlY3Rpb24oKSk7XHJcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdGlvbkluZm8oKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBzZWxlY3Rpb24gaW5mb1xyXG4gICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0aW9uSW5mbygpIHtcclxuICAgIC8vIFVwZGF0ZSBzZWxlY3Rpb24gaW5mb1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uICYmIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5sZW5ndGggPiAwICYmIHRoaXMuZGlhbG9nRGF0YS5tdWx0aSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbkluZm8uc2V0KFxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZC5sZW5ndGggK1xyXG4gICAgICAgIFwiIC8gXCIgK1xyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLm9wdGlvbnMubGVuZ3RoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uSW5mby5zZXQobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhciBjdXJyZW50IHNlbGVjdGlvblxyXG4gICAqL1xyXG4gIGNsZWFyU2VsZWN0aW9uKCkge1xyXG4gICAgdGhpcy5zZWxlY3Rpb25NYXN0ZXJJbmRldGVybWluYXRlLnNldChmYWxzZSk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbk1hc3RlckNoZWNrZWQuc2V0KGZhbHNlKTtcclxuICAgIHRoaXMuc2VsZWN0aW9uLmRlc2VsZWN0QWxsKCk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkluZm8uc2V0KG51bGwpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3VibWl0IHNlbGVjdGlvblxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBvaygpIHtcclxuICAgIGlmICghdGhpcy5va0Rpc2FibGVkKCkpIHtcclxuICAgICAgLy8gTXVsdGkgc2VsZWN0aW9uXHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXM6IGFueSA9IFtdO1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgIHNlbGVjdGVkSXRlbXMucHVzaChlbGVtZW50LnZhbHVlKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZG9uZS5lbWl0KHsgc2VsZWN0ZWRJdGVtczogc2VsZWN0ZWRJdGVtcyB9KTtcclxuICAgICAgfSwgNTAwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIGZpbHRlclxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBjbGVhckZpbHRlcigpIHtcclxuICAgIHRoaXMuZmlsdGVyVGV4dCA9IFwiXCI7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdyBmaWx0ZXIgb3B0aW9uc1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzaG93RmlsdGVyT3B0aW9ucygpIHtcclxuICAgIGlmICh0aGlzLmxvb2t1cE9wdGlvbnMpIHtcclxuICAgICAgdGhpcy5sb29rdXBPcHRpb25zLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFwcGx5IGZpbHRlclxyXG4gICAqIEBwYXJhbSB0ZXh0IDogdGhlIHN0cmluZyB0byBmaWx0ZXIgdG9cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9GaWx0ZXIodGV4dDogc3RyaW5nID0gbnVsbCwgZTogYW55ID0gbnVsbCkge1xyXG4gICAgaWYgKHRleHQpIHtcclxuICAgICAgdGhpcy5maWx0ZXJUZXh0ID0gdGV4dDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuY2FuTG9va3VwKSB7XHJcbiAgICAgIGlmICghZSB8fCBlLmtleUNvZGUgPT09IDEzKSB7XHJcbiAgICAgICAgdGhpcy5sb29rdXAuZW1pdCh7IGl0ZW1zOiB0aGlzLmRpYWxvZ0RhdGEuaXRlbXMsIGZpbHRlcjogdGhpcy5maWx0ZXJUZXh0LCBvd25lcjogdGhpcyB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXBwbHkgZmlsdGVyIHVzaW5nIGZpbHRlciBvcHRpb25zXHJcbiAgICogQHBhcmFtIGZpbHRlck9wdGlvbiA6IHRoZSBjdXJyZW50IGZpbHRlciBvcHRpb25cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9GaWx0ZXJCeU9wdGlvbnMoZmlsdGVyT3B0aW9uOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuY2FuTG9va3VwICYmIHRoaXMuZGlhbG9nRGF0YS5jYW5GaWx0ZXIpIHtcclxuICAgICAgdGhpcy5maWx0ZXIuZW1pdCh7XHJcbiAgICAgICAgaXRlbXM6IHRoaXMuZGlhbG9nRGF0YS5pdGVtcyxcclxuICAgICAgICBmaWx0ZXI6IHRoaXMuZmlsdGVyVGV4dCxcclxuICAgICAgICBmaWx0ZXJPcHRpb246IGZpbHRlck9wdGlvbixcclxuICAgICAgICBvd25lcjogdGhpcyxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBcHBseSBmaWx0ZXIuIFRoaXMgaXMgYWNjZXNzaWJsZSBmcm9tIHB1YmxpY1xyXG4gICAqIEBwYXJhbSBwYXJhbXMgOiB0aGUgb2JqZWN0IHdpdGggY3VycmVudCBwYXJhbWV0ZXJzXHJcbiAgICovXHJcbiAgZG9Mb29rdXAocGFyYW1zOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuY2FuTG9va3VwKSB7XHJcbiAgICAgIHRoaXMubG9va3VwUGFyYW1zID0gcGFyYW1zO1xyXG4gICAgICB0aGlzLmxvb2t1cFBhcmFtcy5maXJzdCA9IDA7XHJcbiAgICAgIHRoaXMubG9va3VwLmVtaXQoeyBpdGVtczogdGhpcy5kaWFsb2dEYXRhLml0ZW1zLCBwYXJhbXM6IHRoaXMubG9va3VwUGFyYW1zLCBvd25lcjogdGhpcyB9KTsgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgbG9va3VwIHBhZ2luYXRyb1xyXG4gICAqIEBwYXJhbSB0b3RhbCA6IHRoZSBuZXcgdG90YWwgaXRlbXNcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgdXBkYXRlTG9va3VwUGFnaW5hdG9yKHRvdGFsOiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLmNhblBhZ2luYXRlKCkpIHtcclxuICAgICAgaWYgKHRoaXMucGFnaW5hdG9yKSB7XHJcbiAgICAgICAgdGhpcy5wYWdpbmF0b3IucGFnZUluZGV4ID0gMDtcclxuICAgICAgICB0aGlzLnBhZ2luYXRvci5sZW5ndGggPSB0b3RhbCA/PyAwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIEFwcGx5IGZpbHRlclxyXG4gICogQHBhcmFtIGUgOiB0aGUgTWF0UGFnaW5hdG9yIFBhZ2VFdmVudCBkYXRhXHJcbiAgKi9cclxuICBwcm90ZWN0ZWQgZG9Mb29rdXBQYWdlKGU6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5jYW5Mb29rdXAgJiYgdGhpcy5kaWFsb2dEYXRhLmNhblBhZ2luYXRlKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcclxuICAgICAgdGhpcy5sb29rdXBQYXJhbXMuZmlyc3QgPSBlLnBhZ2VJbmRleCAqICh0aGlzLmRpYWxvZ0RhdGEucGFnZVNpemUgPz8gMCk7XHJcbiAgICAgIHRoaXMubG9va3VwLmVtaXQoeyBpdGVtczogdGhpcy5kaWFsb2dEYXRhLml0ZW1zLCBwYXJhbXM6IHRoaXMubG9va3VwUGFyYW1zLCBvd25lcjogdGhpcyB9KTsgICAgICBcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFwcGVuZFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0FwcGVuZCgpIHtcclxuICAgIHRoaXMuYXBwZW5kLmVtaXQoeyBpdGVtczogdGhpcy5kaWFsb2dEYXRhLml0ZW1zLCBvd25lcjogdGhpcyB9IGFzIFNlbGVjdERpYWxvZ0FwcGVuZCk7ICAgXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFZGl0XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGRvRWRpdCgpIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQ/Lmxlbmd0aCA+IDApe1xyXG4gICAgICB0aGlzLmVkaXQuZW1pdCh0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWRbMF0udmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVmlld1xyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb1ZpZXcoKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWRPcHRpb25zLnNlbGVjdGVkPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMudmlldy5lbWl0KHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkT3B0aW9ucy5zZWxlY3RlZFswXS52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZWxldGVcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9EZWxldGUoKSB7XHJcbiAgICBsZXQgc2VsZWN0ZWRJdGVtczogYW55ID0gW107XHJcbiAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZE9wdGlvbnMuc2VsZWN0ZWQuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goZWxlbWVudC52YWx1ZSk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGVsZXRlLmVtaXQoe1xyXG4gICAgICBpdGVtczogdGhpcy5kaWFsb2dEYXRhLml0ZW1zLFxyXG4gICAgICBzZWxlY3RlZEl0ZW1zOiBzZWxlY3RlZEl0ZW1zLFxyXG4gICAgfSBhcyBTZWxlY3REaWFsb2dEZWxldGUpO1xyXG4gICAgdGhpcy5jYW5EZWxldGUuc2V0KGZhbHNlKTtcclxuICAgIFxyXG4gIH1cclxufVxyXG4iLCI8aDIgbWF0LWRpYWxvZy10aXRsZT57e2RpYWxvZ0RhdGEudGl0bGV9fTwvaDI+XHJcbjxkaXYgc3R5bGU9XCJwYWRkaW5nOiAwIDI0cHhcIj5cclxuICBAaWYgKGRpYWxvZ0RhdGEuZGVzY3JpcHRpb24pIHtcclxuICA8ZGl2IGNsYXNzPVwic2VsZWN0ZmlsZS1kZXNjcmlwdGlvblwiIFtpbm5lckh0bWxdPVwiZGlhbG9nRGF0YS5kZXNjcmlwdGlvbiB8IHNhZmVIdG1sXCI+PC9kaXY+XHJcbiAgfVxyXG4gIDxkaXY+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIyMHB4XCIgZnhGaWxsPlxyXG4gICAgICBAaWYgKCFkaWFsb2dEYXRhLmNhbkxvb2t1cFdpdGhPcHRpb25zKSB7XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiMTAwXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPSd3aWR0aDoxMDAlJyBbYXBwZWFyYW5jZV09XCJkaWFsb2dEYXRhLmFwcGVhcmFuY2VcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPkNlcmNhLi4uPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjZGtGb2N1c0luaXRpYWwgKGtleXVwLkVudGVyKT1cImRvRmlsdGVyKClcIiBtYXRJbnB1dFxyXG4gICAgICAgICAgICB0aXRsZT1cInt7ZGlhbG9nRGF0YS5jYW5Mb29rdXAgPyAnRGlnaXRhIGlsIHRlc3RvIGUgcHJlbWkgaW52aW8nIDogJ0RpZ2l0YSBpbCB0ZXN0byd9fVwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyVGV4dFwiPlxyXG4gICAgICAgICAgQGlmIChmaWx0ZXJUZXh0KSB7XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIi0xXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ2xlYXJcIiAoY2xpY2spPVwiY2xlYXJGaWx0ZXIoKVwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGlmICghZGlhbG9nRGF0YS5jYW5Mb29rdXBXaXRoT3B0aW9ucyAmJiBkaWFsb2dEYXRhLmNhbkxvb2t1cCAmJiBkaWFsb2dEYXRhLmxvb2t1cEZpZWxkcykge1xyXG4gICAgICA8ZGl2IGZ4RmxleD1cIjEwMFwiPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBzdHlsZT0nd2lkdGg6MTAwJScgW2FwcGVhcmFuY2VdPVwiZGlhbG9nRGF0YS5hcHBlYXJhbmNlXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD5Db21lLi4uPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdCBbKHZhbHVlKV09XCJsb29rdXBGaWVsZFwiPlxyXG4gICAgICAgICAgICBAZm9yIChmaWVsZCBvZiBkaWFsb2dEYXRhLmxvb2t1cEZpZWxkczsgdHJhY2sgZmllbGQpIHtcclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImZpZWxkLnZhbHVlXCI+XHJcbiAgICAgICAgICAgICAge3tmaWVsZC5uYW1lfX1cclxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChkaWFsb2dEYXRhLmNhbkxvb2t1cFdpdGhPcHRpb25zKSB7XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHR5cGU9XCJidXR0b25cIiBtYXQtYnV0dG9uIGFyaWEtbGFiZWw9XCJSaWNlcmNhXCIgKGNsaWNrKT1cInNob3dGaWx0ZXJPcHRpb25zKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbj5zZWFyY2g8L21hdC1pY29uPlJpY2VyY2FcclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChkaWFsb2dEYXRhLmNhbkxvb2t1cCAmJiBkaWFsb2dEYXRhLmNhbkZpbHRlcikge1xyXG4gICAgICA8ZGl2IGZ4RmxleD1cIipcIiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHN0eWxlPVwid2hpdGUtc3BhY2U6bm93cmFwXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHR5cGU9XCJidXR0b25cIiBtYXQtYnV0dG9uIG1hdFRvb2x0aXA9XCJGaWx0cmFcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidGaWx0cmEnXCJcclxuICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51RmlsdGVyXCIgY29sb3I9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+ZmlsdGVyX2FsdDwvbWF0LWljb24+IHt7ZmlsdGVyT3B0aW9uc0luZm99fSA8bWF0LWljb24gY2xhc3M9XCJpY29uLW1lbnUtZHJvcC1kb3duXCI+XHJcbiAgICAgICAgICAgIGFycm93X2Ryb3BfZG93bjwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPG1hdC1tZW51ICNtZW51RmlsdGVyPVwibWF0TWVudVwiIGNsYXNzPVwibWF0LW1lbnUtMzAwXCI+XHJcbiAgICAgICAgICBAZm9yIChmIG9mIGZpbHRlck9wdGlvbnM7IHRyYWNrIGYpIHtcclxuXHJcbiAgICAgICAgICBAaWYgKGYuZGl2aWRlcikge1xyXG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAaWYgKGYuZ3JvdXBOYW1lKSB7XHJcbiAgICAgICAgICA8c3BhbiBzdHlsZT0nZm9udC1zaXplOnNtYWxsOyBwYWRkaW5nOiAycHggNHB4Oyc+PGk+PGI+e3tmLmdyb3VwTmFtZX19PC9iPjwvaT48L3NwYW4+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBAaWYgKCFmLmdyb3VwTmFtZSAmJiAhZi5kaXZpZGVyKSB7XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImRvRmlsdGVyQnlPcHRpb25zKGYpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJmLmRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgIEBpZiAoZi5yYWRpbyAmJiBmLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwicGFkZGluZy1sZWZ0OjQwcHhcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPG1hdC1pY29uPnt7Zi5pY29ufX08L21hdC1pY29uPiB7e2YudGl0bGV9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LW1lbnU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoY2FuRWRpdCgpIHx8IGNhbkFwcGVuZCgpIHx8IGNhblZpZXcoKSB8fCBjYW5EZWxldGUoKSkge1xyXG4gICAgICA8ZGl2IGZ4RmxleD1cIipcIiBmeExheW91dEFsaWduPVwiZW5kXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTpub3dyYXBcIj5cclxuICAgICAgICBAaWYgKGNhbkFwcGVuZCgpKSB7XHJcbiAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cImRvQXBwZW5kKClcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiQWdnaXVuZ2lcIiBtYXRUb29sdGlwPVwiQWdnaXVuZ2lcIj5hZGQ8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgKGNhbkVkaXQoKSkge1xyXG4gICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJjZW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJkb0VkaXQoKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJNb2RpZmljYVwiIG1hdFRvb2x0aXA9XCJNb2RpZmljYVwiPmVkaXQ8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYgKGNhblZpZXcoKSkge1xyXG4gICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJjZW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJkb1ZpZXcoKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJNb3N0cmFcIiBtYXRUb29sdGlwPVwiTW9zdHJhXCI+dmlzaWJpbGl0eTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZiAoY2FuRGVsZXRlKCkpIHtcclxuICAgICAgICA8YnV0dG9uIGZ4RmxleEFsaWduPVwiY2VudGVyXCIgdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiZG9EZWxldGUoKVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJFbGltaW5hXCIgbWF0VG9vbHRpcD1cIkVsaW1pbmFcIj5kZWxldGU8L21hdC1pY29uPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIEBpZiAoKGRpYWxvZ0RhdGEubXVsdGkgfHwgZGlhbG9nRGF0YS5oZWFkZXIpICYmIGRpYWxvZ0RhdGEuaXRlbXM/Lmxlbmd0aCA+IDApIHtcclxuICA8ZGl2PlxyXG4gICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4RmFseW91dEdhcD1cIjEwcHhcIiBmeEZpbGwgc3R5bGU9XCJwYWRkaW5nLXRvcDogMTBweDtcIj5cclxuICAgICAgPGRpdiBmeEZsZXg9XCI3MnB4XCIgZnhGbGV4QWxpZ249XCJjZW50ZXJcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogOHB4O1wiPlxyXG4gICAgICAgIEBpZiAoZGlhbG9nRGF0YS5tdWx0aSkge1xyXG4gICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgKGNoYW5nZSk9XCIkZXZlbnQgPyBtYXN0ZXJTZWxlY3Rpb25Ub2dnbGUoJGV2ZW50KSA6IG51bGxcIlxyXG4gICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwic2VsZWN0aW9uTWFzdGVySW5kZXRlcm1pbmF0ZSgpXCIgW2NoZWNrZWRdPVwic2VsZWN0aW9uTWFzdGVyQ2hlY2tlZCgpXCJcclxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NlbGV6aW9uYS9kZXNlbGV6aW9uYSB0dXR0bydcIiBtYXRUb29sdGlwPVwiU2VsZXppb25hL2Rlc2VsZXppb25hIHR1dHRvXCI+XHJcbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBmeEZsZXg9XCIxMDBcIiBmeEZsZXhBbGlnbj1cImNlbnRlclwiPlxyXG4gICAgICAgIEBpZiAoZGlhbG9nRGF0YS5oZWFkZXIpIHtcclxuICAgICAgICA8ZGl2IFtpbm5lckh0bWxdPVwiZGlhbG9nRGF0YS5oZWFkZXIgfCBzYWZlSHRtbFwiPjwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhGaWxsPlxyXG4gICAgQGlmIChkaWFsb2dEYXRhLmNhbkxvb2t1cCAmJiAoIWRpYWxvZ0RhdGEuaXRlbXMgfHwgZGlhbG9nRGF0YS5pdGVtcy5sZW5ndGggPT0gMCkpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlXCI+PGk+XHJcbiAgICAgICAgQGlmICghZGlhbG9nRGF0YS5lbXB0eU1lc3NhZ2UpIHtcclxuICAgICAgICA8c3Bhbj5OZXNzdW4gZWxlbWVudG8gZGEgdmlzdWFsaXp6YXJlLjxicj5Fc2VndWkgdW5hIG51b3ZhIHJpY2VyY2EgbyBtb2RpZmljYSBxdWVsbGFcclxuICAgICAgICAgIGVzaXN0ZW50ZS5cclxuICAgICAgICAgIEBpZiAoZGlhbG9nRGF0YS5tYXhJdGVtcyA+IDApIHtcclxuICAgICAgICAgIDxzcGFuPlNhcmFubm8gbW9zdHJhdGkgYWwgbWFzc2ltbyB7e2RpYWxvZ0RhdGEubWF4SXRlbXN9fSBlbGVtZW50aS48L3NwYW4+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiZGlhbG9nRGF0YS5lbXB0eU1lc3NhZ2UgfCBzYWZlSHRtbFwiPjwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvaT5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgPG1hdC1zZWxlY3Rpb24tbGlzdCAjc2VsZWN0aW9uIChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0KCRldmVudClcIiBkZW5zZSBoaWRlU2luZ2xlU2VsZWN0aW9uSW5kaWNhdG9yPVwidHJ1ZVwiPlxyXG4gICAgICBAZm9yIChpdGVtIG9mIChkaWFsb2dEYXRhLml0ZW1zIHwgc2VhcmNoOiAoIWRpYWxvZ0RhdGEuY2FuTG9va3VwID8gZmlsdGVyVGV4dCA6ICcnKSk7IHRyYWNrIGl0ZW0pIHtcclxuICAgICAgPG1hdC1saXN0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbVwiIFtzZWxlY3RlZF09XCJpdGVtLnNlbGVjdGVkXCIgY2hlY2tib3hQb3NpdGlvbj1cImJlZm9yZVwiID5cclxuICAgICAgICA8ZGl2IFtpbm5lckh0bWxdPVwiaXRlbS50ZW1wbGF0ZSB8IHNhZmVIdG1sXCI+PC9kaXY+XHJcbiAgICAgIDwvbWF0LWxpc3Qtb3B0aW9uPlxyXG4gICAgICB9XHJcbiAgICA8L21hdC1zZWxlY3Rpb24tbGlzdD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeEZpbGw+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWJldHdlZW4gY2VudGVyXCIgZnhMYXlvdXRHYXA9XCIxMHB4XCIgZnhGaWxsPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwicGFkZGluZy1sZWZ0OjIwcHhcIj5cclxuICAgICAgICBAaWYgKHNlbGVjdGlvbkluZm8oKSkge1xyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwic21hbGxcIj5zZWxlemlvbmU6ICZuYnNwOzwvc3Bhbj48c3BhbiBjbGFzcz1cImJvbGRcIj57e3NlbGVjdGlvbkluZm8oKX19PC9zcGFuPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgZnhGbGV4QWxpZ249XCJjZW50ZXJcIj5cclxuICAgICAgICBAaWYgKGNhblBhZ2luYXRlKCkpIHtcclxuICAgICAgICA8bWF0LXBhZ2luYXRvciAjcGFnaW5hdG9yIFtoaWRlUGFnZVNpemVdPVwidHJ1ZVwiIFtwYWdlU2l6ZV09XCJkaWFsb2dEYXRhLnBhZ2VTaXplXCIgW3Nob3dGaXJzdExhc3RCdXR0b25zXT1cInRydWVcIlxyXG4gICAgICAgICAgKHBhZ2UpPVwiZG9Mb29rdXBQYWdlKCRldmVudClcIiBbbGVuZ3RoXT1cImRpYWxvZ0RhdGEuaXRlbXM/Lmxlbmd0aCA/PyAwXCI+PC9tYXQtcGFnaW5hdG9yPlxyXG5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImVuZFwiIGZ4RmlsbD5cclxuICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm9rKClcIiBbZGlzYWJsZWRdPVwib2tEaXNhYmxlZCgpXCI+XHJcbiAgICAgICAgPHNwYW4+e3tkaWFsb2dEYXRhLm11c3RTZWxlY3QgPyBkaWFsb2dEYXRhLm9rQ2FwdGlvbiA6ICdDaGl1ZGknfX08L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICBAaWYgKGRpYWxvZ0RhdGEubXVzdFNlbGVjdCkge1xyXG4gICAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZSBjZGtGb2N1c0luaXRpYWwgY29sb3I9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgPHNwYW4+QW5udWxsYTwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, output } from '@angular/core';
|
|
2
2
|
import { FormsModule } from '@angular/forms';
|
|
3
3
|
import { MatButtonModule } from '@angular/material/button';
|
|
4
4
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
@@ -13,7 +13,7 @@ import * as i4 from "@angular/forms";
|
|
|
13
13
|
import * as i5 from "@arsedizioni/ars-utils/core";
|
|
14
14
|
export class SelectFileDialogComponent {
|
|
15
15
|
constructor() {
|
|
16
|
-
this.done =
|
|
16
|
+
this.done = output();
|
|
17
17
|
this.dialogRef = inject((MatDialogRef));
|
|
18
18
|
this.dialogData = inject(MAT_DIALOG_DATA);
|
|
19
19
|
this.file = null;
|
|
@@ -50,7 +50,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
50
50
|
type: Component,
|
|
51
51
|
args: [{ host: { 'Bind': SystemUtils.generateUUID() }, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatDialogTitle, MatDialogContent, FlexModule, MatButtonModule, MatCheckboxModule, FormsModule,
|
|
52
52
|
MatDialogActions, MatDialogClose, ArsCoreModule, SafeHtmlPipe], template: "<h2 mat-dialog-title>{{dialogData.title}}</h2>\r\n@if (dialogData.description) {\r\n<div style=\"padding: 0 24px 24px 24px\" [innerHtml]=\"dialogData.description | safeHtml\"></div>\r\n}\r\n<div mat-dialog-content>\r\n <div fxLayout=\"column\" fxLayoutGap=\"32px\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"column\" fxLayoutAlign=\"center center\" fxFill>\r\n <div class=\"selectfile-file\">\r\n <div style=\"text-align: center\">\r\n <input #_file type=\"file\" [hidden]=\"true\" (change)=\"update($event)\" />\r\n <button type=\"button\" mat-button color=\"primary\" (click)=\"_file.click()\">Seleziona file...</button>\r\n </div>\r\n @if (file) {\r\n <div class=\"truncated selectfile-info\">\r\n <div class=\"small\"><i>{{file.name}}</i></div>\r\n <div class=\"small\">Dimensioni: <i>{{size(file.size)}}</i></div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n @if (dialogData.options) {\r\n <div>\r\n @for (o of dialogData.options; track $index; let i = $index) {\r\n <div>\r\n <mat-checkbox color=\"primary\" [(ngModel)]=\"o.value\" name=\"opt_{{i}}\">\r\n {{o.description}}\r\n </mat-checkbox>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n<div mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"50\">\r\n @if (dialogData.helpLink) {\r\n <a mat-button href=\"{{dialogData.helpLink}}\" target=\"_blank\" color=\"primary\">{{dialogData.helpCaption}}</a>\r\n }\r\n </div>\r\n <div fxFlex=\"50\" fxLayoutAlign=\"end\">\r\n <button mat-flat-button color=\"primary\" (click)=\"ok()\" [disabled]=\"!file\">{{dialogData.okCaption}}</button>\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">Annulla</button>\r\n </div>\r\n </div>\r\n</div>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!important;line-height:16px}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:14px}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer,.drawer-small{min-width:420px!important;max-width:420px!important;padding:20px 0 0}.drawer .title-container,.drawer-small .title-container{padding:20px 10px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 10px 20px}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:200px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:15px;padding-right:20px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-bottom:20px!important}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.drawer-small{min-width:360px!important;max-width:360px!important}.drawer-small .title{min-width:150px;width:100%}@media screen and (min-width: 0px) and (max-width: 359px){.drawer{min-width:360px!important;max-width:360px!important}.drawer .title{min-width:150px}}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media (prefers-color-scheme: dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}.selectfile-file{padding:20px;width:320px;border:5px dotted #eee}.selectfile-info{width:100%;margin-top:30px;text-align:center}.selectfile-description{padding:0 24px 24px}\n"] }]
|
|
53
|
-
}]
|
|
54
|
-
|
|
55
|
-
}] } });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZpbGUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy91aS5hcHBsaWNhdGlvbi91aS9kaWFsb2dzL3NlbGVjdC1maWxlL3NlbGVjdC1maWxlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9zZWxlY3QtZmlsZS9zZWxlY3QtZmlsZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3SSxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFZeEQsTUFBTSxPQUFPLHlCQUF5QjtJQVR0QztRQVVZLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBQ3hDLGNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQSxZQUF1QyxDQUFBLENBQUMsQ0FBQztRQUMxRCxlQUFVLEdBQTBCLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU1RCxTQUFJLEdBQWdCLElBQUksQ0FBQztLQThCcEM7SUEzQkM7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLENBQU07UUFDWCxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksQ0FBQyxJQUFZO1FBQ2YsT0FBTyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNILEVBQUU7UUFDQSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDeEUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzs4R0FsQ1UseUJBQXlCO2tHQUF6Qix5QkFBeUIseUdBUnBCLFdBQVcsQ0FBQyxZQUFZLEVBQUUsOEJDVjVDLDAyREE2Q00sZ3FIRDlCTSxjQUFjLCtIQUFHLGdCQUFnQix3R0FBRSxVQUFVLHU2RUFBRSxlQUFlLHdZQUFHLGlCQUFpQixvWUFBRSxXQUFXLCtWQUN2RyxnQkFBZ0IsNEhBQUUsY0FBYyxvTEFBRSxhQUFhOzsyRkFFdEMseUJBQXlCO2tCQVRyQyxTQUFTOzJCQUNGLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxjQUdoQyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxjQUFjLEVBQUcsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRyxpQkFBaUIsRUFBRSxXQUFXO3dCQUN2RyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQzs4QkFHdEQsSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nQ2xvc2UsIE1hdERpYWxvZ0NvbnRlbnQsIE1hdERpYWxvZ1JlZiwgTWF0RGlhbG9nVGl0bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBBcnNDb3JlTW9kdWxlLCBTYWZlSHRtbFBpcGUsIFN5c3RlbVV0aWxzIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgRmxleE1vZHVsZSB9IGZyb20gJ0BuZ2JyYWNrZXQvbmd4LWxheW91dC9mbGV4JztcclxuaW1wb3J0IHsgU2VsZWN0RmlsZSwgU2VsZWN0RmlsZURpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9kZWZpbml0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBob3N0OiB7ICdCaW5kJzogU3lzdGVtVXRpbHMuZ2VuZXJhdGVVVUlEKCkgfSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWZpbGUtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QtZmlsZS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGltcG9ydHM6IFtNYXREaWFsb2dUaXRsZSwgIE1hdERpYWxvZ0NvbnRlbnQsIEZsZXhNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgIE1hdENoZWNrYm94TW9kdWxlLCBGb3Jtc01vZHVsZSwgXHJcbiAgICBNYXREaWFsb2dBY3Rpb25zLCBNYXREaWFsb2dDbG9zZSwgQXJzQ29yZU1vZHVsZSwgU2FmZUh0bWxQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0RmlsZURpYWxvZ0NvbXBvbmVudCB7XHJcbiAgQE91dHB1dCgpIGRvbmUgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdEZpbGU+KCk7XHJcbiAgcHJpdmF0ZSBkaWFsb2dSZWYgPSBpbmplY3QoTWF0RGlhbG9nUmVmPFNlbGVjdEZpbGVEaWFsb2dDb21wb25lbnQ+KTtcclxuICBwcm90ZWN0ZWQgZGlhbG9nRGF0YSA6IFNlbGVjdEZpbGVEaWFsb2dEYXRhID0gaW5qZWN0KE1BVF9ESUFMT0dfREFUQSk7IFxyXG4gIFxyXG4gIHByb3RlY3RlZCBmaWxlOiBGaWxlIHwgbnVsbCA9IG51bGw7XHJcblxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgcHJldmlld1xyXG4gICAqIEBwYXJhbSBlIDogdGhlIGV2ZW50XHJcbiAgICovXHJcbiAgdXBkYXRlKGU6IGFueSkge1xyXG4gICAgaWYgKGUudGFyZ2V0LmZpbGVzKSB7XHJcbiAgICAgIHRoaXMuZmlsZSA9IGUudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRm9ybWF0IHNpemVcclxuICAgKiBAcGFyYW0gc2l6ZSB0aGUgZmlsZSBzaXplXHJcbiAgICovXHJcbiAgc2l6ZShzaXplOiBudW1iZXIpIHtcclxuICAgIHJldHVybiBTeXN0ZW1VdGlscy5mb3JtYXRGaWxlU2l6ZShzaXplKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1Ym1pdCBzZWxlY3Rpb25cclxuICAgKi9cclxuICBvaygpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5kb25lLmVtaXQoeyBmaWxlOiB0aGlzLmZpbGUsIG9wdGlvbnM6IHRoaXMuZGlhbG9nRGF0YS5vcHRpb25zIH0pO1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcbn1cclxuXHJcbiIsIjxoMiBtYXQtZGlhbG9nLXRpdGxlPnt7ZGlhbG9nRGF0YS50aXRsZX19PC9oMj5cclxuQGlmIChkaWFsb2dEYXRhLmRlc2NyaXB0aW9uKSB7XHJcbjxkaXYgc3R5bGU9XCJwYWRkaW5nOiAwIDI0cHggMjRweCAyNHB4XCIgW2lubmVySHRtbF09XCJkaWFsb2dEYXRhLmRlc2NyaXB0aW9uIHwgc2FmZUh0bWxcIj48L2Rpdj5cclxufVxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRHYXA9XCIzMnB4XCIgZnhGaWxsPlxyXG4gICAgPGRpdiBmeEZsZXg9XCIqXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGZ4RmlsbD5cclxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGZpbGUtZmlsZVwiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIj5cclxuICAgICAgICAgIDxpbnB1dCAjX2ZpbGUgdHlwZT1cImZpbGVcIiBbaGlkZGVuXT1cInRydWVcIiAoY2hhbmdlKT1cInVwZGF0ZSgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIl9maWxlLmNsaWNrKClcIj5TZWxlemlvbmEgZmlsZS4uLjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIEBpZiAoZmlsZSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0cnVuY2F0ZWQgc2VsZWN0ZmlsZS1pbmZvXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGxcIj48aT57e2ZpbGUubmFtZX19PC9pPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+RGltZW5zaW9uaTogPGk+e3tzaXplKGZpbGUuc2l6ZSl9fTwvaT48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYgKGRpYWxvZ0RhdGEub3B0aW9ucykge1xyXG4gICAgPGRpdj5cclxuICAgICAgQGZvciAobyBvZiBkaWFsb2dEYXRhLm9wdGlvbnM7IHRyYWNrICRpbmRleDsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgICAgPGRpdj5cclxuICAgICAgICA8bWF0LWNoZWNrYm94IGNvbG9yPVwicHJpbWFyeVwiIFsobmdNb2RlbCldPVwiby52YWx1ZVwiIG5hbWU9XCJvcHRfe3tpfX1cIj5cclxuICAgICAgICAgIHt7by5kZXNjcmlwdGlvbn19XHJcbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjEwcHhcIiBmeEZpbGw+XHJcbiAgICA8ZGl2IGZ4RmxleD1cIjUwXCI+XHJcbiAgICAgIEBpZiAoZGlhbG9nRGF0YS5oZWxwTGluaykge1xyXG4gICAgICA8YSBtYXQtYnV0dG9uIGhyZWY9XCJ7e2RpYWxvZ0RhdGEuaGVscExpbmt9fVwiIHRhcmdldD1cIl9ibGFua1wiIGNvbG9yPVwicHJpbWFyeVwiPnt7ZGlhbG9nRGF0YS5oZWxwQ2FwdGlvbn19PC9hPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgZnhGbGV4PVwiNTBcIiBmeExheW91dEFsaWduPVwiZW5kXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvaygpXCIgW2Rpc2FibGVkXT1cIiFmaWxlXCI+e3tkaWFsb2dEYXRhLm9rQ2FwdGlvbn19PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJ0cnVlXCIgY29sb3I9XCJwcmltYXJ5XCI+QW5udWxsYTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
53
|
+
}] });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZpbGUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy91aS5hcHBsaWNhdGlvbi91aS9kaWFsb2dzL3NlbGVjdC1maWxlL3NlbGVjdC1maWxlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9zZWxlY3QtZmlsZS9zZWxlY3QtZmlsZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdJLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7OztBQVl4RCxNQUFNLE9BQU8seUJBQXlCO0lBVHRDO1FBVUUsU0FBSSxHQUFHLE1BQU0sRUFBYyxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQSxZQUF1QyxDQUFBLENBQUMsQ0FBQztRQUMxRCxlQUFVLEdBQTBCLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU1RCxTQUFJLEdBQWdCLElBQUksQ0FBQztLQThCcEM7SUEzQkM7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLENBQU07UUFDWCxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksQ0FBQyxJQUFZO1FBQ2YsT0FBTyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNILEVBQUU7UUFDQSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDeEUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzs4R0FsQ1UseUJBQXlCO2tHQUF6Qix5QkFBeUIseUdBUnBCLFdBQVcsQ0FBQyxZQUFZLEVBQUUsOEJDVjVDLDAyREE2Q00sZ3FIRDlCTSxjQUFjLCtIQUFHLGdCQUFnQix3R0FBRSxVQUFVLHU2RUFBRSxlQUFlLHdZQUFHLGlCQUFpQixvWUFBRSxXQUFXLCtWQUN2RyxnQkFBZ0IsNEhBQUUsY0FBYyxvTEFBRSxhQUFhOzsyRkFFdEMseUJBQXlCO2tCQVRyQyxTQUFTOzJCQUNGLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxZQUFZLEVBQUUsRUFBRSxjQUdoQyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxjQUFjLEVBQUcsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRyxpQkFBaUIsRUFBRSxXQUFXO3dCQUN2RyxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dBY3Rpb25zLCBNYXREaWFsb2dDbG9zZSwgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nUmVmLCBNYXREaWFsb2dUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEFyc0NvcmVNb2R1bGUsIFNhZmVIdG1sUGlwZSwgU3lzdGVtVXRpbHMgfSBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL2NvcmUnO1xyXG5pbXBvcnQgeyBGbGV4TW9kdWxlIH0gZnJvbSAnQG5nYnJhY2tldC9uZ3gtbGF5b3V0L2ZsZXgnO1xyXG5pbXBvcnQgeyBTZWxlY3RGaWxlLCBTZWxlY3RGaWxlRGlhbG9nRGF0YSB9IGZyb20gJy4uLy4uL2RlZmluaXRpb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGhvc3Q6IHsgJ0JpbmQnOiBTeXN0ZW1VdGlscy5nZW5lcmF0ZVVVSUQoKSB9LFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtZmlsZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC1maWxlLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW1wb3J0czogW01hdERpYWxvZ1RpdGxlLCAgTWF0RGlhbG9nQ29udGVudCwgRmxleE1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCAgTWF0Q2hlY2tib3hNb2R1bGUsIEZvcm1zTW9kdWxlLCBcclxuICAgIE1hdERpYWxvZ0FjdGlvbnMsIE1hdERpYWxvZ0Nsb3NlLCBBcnNDb3JlTW9kdWxlLCBTYWZlSHRtbFBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RGaWxlRGlhbG9nQ29tcG9uZW50IHtcclxuICBkb25lID0gb3V0cHV0PFNlbGVjdEZpbGU+KCk7XHJcbiAgcHJpdmF0ZSBkaWFsb2dSZWYgPSBpbmplY3QoTWF0RGlhbG9nUmVmPFNlbGVjdEZpbGVEaWFsb2dDb21wb25lbnQ+KTtcclxuICBwcm90ZWN0ZWQgZGlhbG9nRGF0YSA6IFNlbGVjdEZpbGVEaWFsb2dEYXRhID0gaW5qZWN0KE1BVF9ESUFMT0dfREFUQSk7IFxyXG4gIFxyXG4gIHByb3RlY3RlZCBmaWxlOiBGaWxlIHwgbnVsbCA9IG51bGw7XHJcblxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgcHJldmlld1xyXG4gICAqIEBwYXJhbSBlIDogdGhlIGV2ZW50XHJcbiAgICovXHJcbiAgdXBkYXRlKGU6IGFueSkge1xyXG4gICAgaWYgKGUudGFyZ2V0LmZpbGVzKSB7XHJcbiAgICAgIHRoaXMuZmlsZSA9IGUudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRm9ybWF0IHNpemVcclxuICAgKiBAcGFyYW0gc2l6ZSB0aGUgZmlsZSBzaXplXHJcbiAgICovXHJcbiAgc2l6ZShzaXplOiBudW1iZXIpIHtcclxuICAgIHJldHVybiBTeXN0ZW1VdGlscy5mb3JtYXRGaWxlU2l6ZShzaXplKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1Ym1pdCBzZWxlY3Rpb25cclxuICAgKi9cclxuICBvaygpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5kb25lLmVtaXQoeyBmaWxlOiB0aGlzLmZpbGUsIG9wdGlvbnM6IHRoaXMuZGlhbG9nRGF0YS5vcHRpb25zIH0pO1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcbn1cclxuXHJcbiIsIjxoMiBtYXQtZGlhbG9nLXRpdGxlPnt7ZGlhbG9nRGF0YS50aXRsZX19PC9oMj5cclxuQGlmIChkaWFsb2dEYXRhLmRlc2NyaXB0aW9uKSB7XHJcbjxkaXYgc3R5bGU9XCJwYWRkaW5nOiAwIDI0cHggMjRweCAyNHB4XCIgW2lubmVySHRtbF09XCJkaWFsb2dEYXRhLmRlc2NyaXB0aW9uIHwgc2FmZUh0bWxcIj48L2Rpdj5cclxufVxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRHYXA9XCIzMnB4XCIgZnhGaWxsPlxyXG4gICAgPGRpdiBmeEZsZXg9XCIqXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGZ4RmlsbD5cclxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGZpbGUtZmlsZVwiPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXJcIj5cclxuICAgICAgICAgIDxpbnB1dCAjX2ZpbGUgdHlwZT1cImZpbGVcIiBbaGlkZGVuXT1cInRydWVcIiAoY2hhbmdlKT1cInVwZGF0ZSgkZXZlbnQpXCIgLz5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIl9maWxlLmNsaWNrKClcIj5TZWxlemlvbmEgZmlsZS4uLjwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIEBpZiAoZmlsZSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0cnVuY2F0ZWQgc2VsZWN0ZmlsZS1pbmZvXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGxcIj48aT57e2ZpbGUubmFtZX19PC9pPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+RGltZW5zaW9uaTogPGk+e3tzaXplKGZpbGUuc2l6ZSl9fTwvaT48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYgKGRpYWxvZ0RhdGEub3B0aW9ucykge1xyXG4gICAgPGRpdj5cclxuICAgICAgQGZvciAobyBvZiBkaWFsb2dEYXRhLm9wdGlvbnM7IHRyYWNrICRpbmRleDsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgICAgPGRpdj5cclxuICAgICAgICA8bWF0LWNoZWNrYm94IGNvbG9yPVwicHJpbWFyeVwiIFsobmdNb2RlbCldPVwiby52YWx1ZVwiIG5hbWU9XCJvcHRfe3tpfX1cIj5cclxuICAgICAgICAgIHt7by5kZXNjcmlwdGlvbn19XHJcbiAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjEwcHhcIiBmeEZpbGw+XHJcbiAgICA8ZGl2IGZ4RmxleD1cIjUwXCI+XHJcbiAgICAgIEBpZiAoZGlhbG9nRGF0YS5oZWxwTGluaykge1xyXG4gICAgICA8YSBtYXQtYnV0dG9uIGhyZWY9XCJ7e2RpYWxvZ0RhdGEuaGVscExpbmt9fVwiIHRhcmdldD1cIl9ibGFua1wiIGNvbG9yPVwicHJpbWFyeVwiPnt7ZGlhbG9nRGF0YS5oZWxwQ2FwdGlvbn19PC9hPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgZnhGbGV4PVwiNTBcIiBmeExheW91dEFsaWduPVwiZW5kXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvaygpXCIgW2Rpc2FibGVkXT1cIiFmaWxlXCI+e3tkaWFsb2dEYXRhLm9rQ2FwdGlvbn19PC9idXR0b24+XHJcbiAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJ0cnVlXCIgY29sb3I9XCJwcmltYXJ5XCI+QW5udWxsYTwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
package/esm2022/ui.application/ui/dialogs/select-picture/select-picture-dialog.component.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component,
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, output, signal } from '@angular/core';
|
|
2
2
|
import { MatDialogRef, MAT_DIALOG_DATA, MatDialogTitle, MatDialogContent, MatDialogActions, MatDialogClose } from '@angular/material/dialog';
|
|
3
3
|
import { SystemUtils } from '@arsedizioni/ars-utils/core';
|
|
4
4
|
import { SafeHtmlPipe } from '@arsedizioni/ars-utils/core';
|
|
@@ -13,7 +13,7 @@ import * as i3 from "@angular/material/checkbox";
|
|
|
13
13
|
import * as i4 from "@angular/forms";
|
|
14
14
|
export class SelectPictureDialogComponent {
|
|
15
15
|
constructor() {
|
|
16
|
-
this.done =
|
|
16
|
+
this.done = output();
|
|
17
17
|
this.dialogRef = inject((MatDialogRef));
|
|
18
18
|
this.dialogData = inject(MAT_DIALOG_DATA);
|
|
19
19
|
this.file = null;
|
|
@@ -56,7 +56,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
56
56
|
type: Component,
|
|
57
57
|
args: [{ host: { 'Bind': SystemUtils.generateUUID() }, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatDialogTitle, MatDialogContent, FlexModule, MatButtonModule, MatCheckboxModule, FormsModule,
|
|
58
58
|
MatDialogActions, MatDialogClose, SafeHtmlPipe], template: "<h2 mat-dialog-title>{{dialogData.title}}</h2>\r\n@if (dialogData.description) {\r\n<div class=\"selectpicture-description\" [innerHtml]=\"dialogData.description | safeHtml\"></div>\r\n}\r\n<div mat-dialog-content>\r\n <div fxLayout=\"column\" fxLayoutGap=\"32px\" fxFill>\r\n <div fxFlex=\"*\" fxLayout=\"column\" fxLayoutAlign=\"center center\" fxFill>\r\n <input #_file type=\"file\" [hidden]=\"true\" accept=\"image/*\" (change)=\"update($event)\" />\r\n <button type=\"button\" mat-button color=\"primary\" (click)=\"_file.click()\">Seleziona file...</button>\r\n @if (file) {\r\n <div class=\"selectpicture-info\">\r\n <img [src]=\"filePreview()\" class=\"preview\"><br />\r\n <span class=\"small truncated\"><i>{{file.name}}</i></span>\r\n <div><span class=\"small truncated\">Dimensioni: <i>{{size(file.size)}}</i></span></div>\r\n </div>\r\n }\r\n </div>\r\n @if (dialogData.options) {\r\n <div>\r\n @for (o of dialogData.options; track $index; let i = $index) {\r\n <div>\r\n <mat-checkbox color=\"primary\" [(ngModel)]=\"o.value\" name=\"opt_{{i}}\">\r\n {{o.description}}\r\n </mat-checkbox>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n<div mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxFill>\r\n <button mat-flat-button (click)=\"ok()\" color=\"primary\" [disabled]=\"!file\">{{dialogData.okCaption}}</button>\r\n <button mat-button mat-dialog-close cdkFocusInitial color=\"primary\">Annulla</button>\r\n </div>\r\n</div>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!important;line-height:16px}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:14px}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer,.drawer-small{min-width:420px!important;max-width:420px!important;padding:20px 0 0}.drawer .title-container,.drawer-small .title-container{padding:20px 10px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 10px 20px}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:200px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:15px;padding-right:20px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-bottom:20px!important}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.drawer-small{min-width:360px!important;max-width:360px!important}.drawer-small .title{min-width:150px;width:100%}@media screen and (min-width: 0px) and (max-width: 359px){.drawer{min-width:360px!important;max-width:360px!important}.drawer .title{min-width:150px}}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media (prefers-color-scheme: dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}.selectpicture-file{padding:20px;width:320px;border:5px dotted #eee}.selectpicture-info{width:100%;margin-top:30px;text-align:center}.selectpicture-info .preview{max-height:300px;max-width:300px}.selectpicture-description{padding:0 24px 24px}\n"] }]
|
|
59
|
-
}]
|
|
60
|
-
|
|
61
|
-
}] } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXBpY3R1cmUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy91aS5hcHBsaWNhdGlvbi91aS9kaWFsb2dzL3NlbGVjdC1waWN0dXJlL3NlbGVjdC1waWN0dXJlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9zZWxlY3QtcGljdHVyZS9zZWxlY3QtcGljdHVyZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQVl4RCxNQUFNLE9BQU8sNEJBQTRCO0lBVHpDO1FBVVksU0FBSSxHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7UUFFeEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFlBQTBDLENBQUEsQ0FBQyxDQUFDO1FBQzdELGVBQVUsR0FBMEIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTVELFNBQUksR0FBZ0IsSUFBSSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsTUFBTSxDQUFNLElBQUksQ0FBQyxDQUFDO0tBbUMzQztJQWhDQzs7O09BR0c7SUFDSCxNQUFNLENBQUMsQ0FBTTtRQUNYLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQU8sRUFBRSxFQUFFO2dCQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBRSxFQUFFLENBQUMsTUFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6RCxDQUFDLENBQUM7WUFDRixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsSUFBWTtRQUNmLE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxFQUFFO1FBQ0EsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7OEdBekNVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLHlHQVJ2QixXQUFXLENBQUMsWUFBWSxFQUFFLDhCQ1o1Qyw0akRBbUNNLHV1SERsQk0sY0FBYywrSEFBRyxnQkFBZ0Isd0dBQUUsVUFBVSx1NkVBQUUsZUFBZSwyTkFBRyxpQkFBaUIsb1lBQUUsV0FBVywrVkFDdkcsZ0JBQWdCLDRIQUFFLGNBQWMsZ0xBQUUsWUFBWTs7MkZBRXJDLDRCQUE0QjtrQkFUeEMsU0FBUzsyQkFDRixFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxFQUFFLEVBQUUsY0FHaEMsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsY0FBYyxFQUFHLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUcsaUJBQWlCLEVBQUUsV0FBVzt3QkFDdkcsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLFlBQVksQ0FBQzs4QkFHdkMsSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dUaXRsZSwgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nQ2xvc2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBTeXN0ZW1VdGlscyB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY29yZSc7XHJcbmltcG9ydCB7IFNlbGVjdEZpbGUsIFNlbGVjdEZpbGVEaWFsb2dEYXRhIH0gZnJvbSAnLi4vLi4vZGVmaW5pdGlvbnMnO1xyXG5pbXBvcnQgeyBTYWZlSHRtbFBpcGUgfSBmcm9tICdAYXJzZWRpemlvbmkvYXJzLXV0aWxzL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IEZsZXhNb2R1bGUgfSBmcm9tICdAbmdicmFja2V0L25neC1sYXlvdXQvZmxleCc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgaG9zdDogeyAnQmluZCc6IFN5c3RlbVV0aWxzLmdlbmVyYXRlVVVJRCgpIH0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1waWN0dXJlLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LXBpY3R1cmUtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBpbXBvcnRzOiBbTWF0RGlhbG9nVGl0bGUsICBNYXREaWFsb2dDb250ZW50LCBGbGV4TW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsICBNYXRDaGVja2JveE1vZHVsZSwgRm9ybXNNb2R1bGUsIFxyXG4gICAgTWF0RGlhbG9nQWN0aW9ucywgTWF0RGlhbG9nQ2xvc2UsIFNhZmVIdG1sUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdFBpY3R1cmVEaWFsb2dDb21wb25lbnQge1xyXG4gIEBPdXRwdXQoKSBkb25lID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3RGaWxlPigpO1xyXG5cclxuICBwcml2YXRlIGRpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWY8U2VsZWN0UGljdHVyZURpYWxvZ0NvbXBvbmVudD4pO1xyXG4gIHByb3RlY3RlZCBkaWFsb2dEYXRhIDogU2VsZWN0RmlsZURpYWxvZ0RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKTsgXHJcblxyXG4gIHByb3RlY3RlZCBmaWxlOiBGaWxlIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIGZpbGVQcmV2aWV3ID0gc2lnbmFsPGFueT4obnVsbCk7XHJcblxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgcHJldmlld1xyXG4gICAqIEBwYXJhbSBlIDogdGhlIGV2ZW50XHJcbiAgICovXHJcbiAgdXBkYXRlKGU6IGFueSkge1xyXG4gICAgaWYgKGUudGFyZ2V0LmZpbGVzKSB7XHJcbiAgICAgIHRoaXMuZmlsZSA9IGUudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gKF9lOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmZpbGVQcmV2aWV3LnNldCgoX2UudGFyZ2V0IGFzIEZpbGVSZWFkZXIpLnJlc3VsdCk7XHJcbiAgICAgIH07XHJcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGUudGFyZ2V0LmZpbGVzWzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm1hdCBzaXplXHJcbiAgICogQHBhcmFtIHNpemUgdGhlIGZpbGUgc2l6ZVxyXG4gICAqL1xyXG4gIHNpemUoc2l6ZTogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gU3lzdGVtVXRpbHMuZm9ybWF0RmlsZVNpemUoc2l6ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdWJtaXQgc2VsZWN0aW9uXHJcbiAgICovXHJcbiAgb2soKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZG9uZS5lbWl0KHsgZmlsZTogdGhpcy5maWxlLCBvcHRpb25zOiB0aGlzLmRpYWxvZ0RhdGEub3B0aW9ucyB9KTtcclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8aDIgbWF0LWRpYWxvZy10aXRsZT57e2RpYWxvZ0RhdGEudGl0bGV9fTwvaDI+XHJcbkBpZiAoZGlhbG9nRGF0YS5kZXNjcmlwdGlvbikge1xyXG48ZGl2IGNsYXNzPVwic2VsZWN0cGljdHVyZS1kZXNjcmlwdGlvblwiIFtpbm5lckh0bWxdPVwiZGlhbG9nRGF0YS5kZXNjcmlwdGlvbiB8IHNhZmVIdG1sXCI+PC9kaXY+XHJcbn1cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiMzJweFwiIGZ4RmlsbD5cclxuICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBmeEZpbGw+XHJcbiAgICAgIDxpbnB1dCAjX2ZpbGUgdHlwZT1cImZpbGVcIiBbaGlkZGVuXT1cInRydWVcIiBhY2NlcHQ9XCJpbWFnZS8qXCIgKGNoYW5nZSk9XCJ1cGRhdGUoJGV2ZW50KVwiIC8+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIl9maWxlLmNsaWNrKClcIj5TZWxlemlvbmEgZmlsZS4uLjwvYnV0dG9uPlxyXG4gICAgICBAaWYgKGZpbGUpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdHBpY3R1cmUtaW5mb1wiPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJmaWxlUHJldmlldygpXCIgY2xhc3M9XCJwcmV2aWV3XCI+PGJyIC8+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzbWFsbCB0cnVuY2F0ZWRcIj48aT57e2ZpbGUubmFtZX19PC9pPjwvc3Bhbj5cclxuICAgICAgICA8ZGl2PjxzcGFuIGNsYXNzPVwic21hbGwgdHJ1bmNhdGVkXCI+RGltZW5zaW9uaTogPGk+e3tzaXplKGZpbGUuc2l6ZSl9fTwvaT48L3NwYW4+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAoZGlhbG9nRGF0YS5vcHRpb25zKSB7XHJcbiAgICA8ZGl2PlxyXG4gICAgICBAZm9yIChvIG9mIGRpYWxvZ0RhdGEub3B0aW9uczsgdHJhY2sgJGluZGV4OyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgWyhuZ01vZGVsKV09XCJvLnZhbHVlXCIgbmFtZT1cIm9wdF97e2l9fVwiPlxyXG4gICAgICAgICAge3tvLmRlc2NyaXB0aW9ufX1cclxuICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmRcIiBmeEZpbGw+XHJcbiAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwib2soKVwiIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCIhZmlsZVwiPnt7ZGlhbG9nRGF0YS5va0NhcHRpb259fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2UgY2RrRm9jdXNJbml0aWFsIGNvbG9yPVwicHJpbWFyeVwiPkFubnVsbGE8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
59
|
+
}] });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXBpY3R1cmUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy91aS5hcHBsaWNhdGlvbi91aS9kaWFsb2dzL3NlbGVjdC1waWN0dXJlL3NlbGVjdC1waWN0dXJlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9zZWxlY3QtcGljdHVyZS9zZWxlY3QtcGljdHVyZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0ksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0FBWXhELE1BQU0sT0FBTyw0QkFBNEI7SUFUekM7UUFVRSxTQUFJLEdBQUcsTUFBTSxFQUFjLENBQUM7UUFFcEIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFlBQTBDLENBQUEsQ0FBQyxDQUFDO1FBQzdELGVBQVUsR0FBMEIsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTVELFNBQUksR0FBZ0IsSUFBSSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsTUFBTSxDQUFNLElBQUksQ0FBQyxDQUFDO0tBbUMzQztJQWhDQzs7O09BR0c7SUFDSCxNQUFNLENBQUMsQ0FBTTtRQUNYLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQU8sRUFBRSxFQUFFO2dCQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBRSxFQUFFLENBQUMsTUFBcUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6RCxDQUFDLENBQUM7WUFDRixNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLENBQUMsSUFBWTtRQUNmLE9BQU8sV0FBVyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxFQUFFO1FBQ0EsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7OEdBekNVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLHlHQVJ2QixXQUFXLENBQUMsWUFBWSxFQUFFLDhCQ1o1Qyw0akRBbUNNLHV1SERsQk0sY0FBYywrSEFBRyxnQkFBZ0Isd0dBQUUsVUFBVSx1NkVBQUUsZUFBZSwyTkFBRyxpQkFBaUIsb1lBQUUsV0FBVywrVkFDdkcsZ0JBQWdCLDRIQUFFLGNBQWMsZ0xBQUUsWUFBWTs7MkZBRXJDLDRCQUE0QjtrQkFUeEMsU0FBUzsyQkFDRixFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsWUFBWSxFQUFFLEVBQUUsY0FHaEMsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsY0FBYyxFQUFHLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUcsaUJBQWlCLEVBQUUsV0FBVzt3QkFDdkcsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgb3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ1RpdGxlLCBNYXREaWFsb2dDb250ZW50LCBNYXREaWFsb2dBY3Rpb25zLCBNYXREaWFsb2dDbG9zZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFN5c3RlbVV0aWxzIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgU2VsZWN0RmlsZSwgU2VsZWN0RmlsZURpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9kZWZpbml0aW9ucyc7XHJcbmltcG9ydCB7IFNhZmVIdG1sUGlwZSB9IGZyb20gJ0BhcnNlZGl6aW9uaS9hcnMtdXRpbHMvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgRmxleE1vZHVsZSB9IGZyb20gJ0BuZ2JyYWNrZXQvbmd4LWxheW91dC9mbGV4JztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBob3N0OiB7ICdCaW5kJzogU3lzdGVtVXRpbHMuZ2VuZXJhdGVVVUlEKCkgfSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LXBpY3R1cmUtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QtcGljdHVyZS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGltcG9ydHM6IFtNYXREaWFsb2dUaXRsZSwgIE1hdERpYWxvZ0NvbnRlbnQsIEZsZXhNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgIE1hdENoZWNrYm94TW9kdWxlLCBGb3Jtc01vZHVsZSwgXHJcbiAgICBNYXREaWFsb2dBY3Rpb25zLCBNYXREaWFsb2dDbG9zZSwgU2FmZUh0bWxQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0UGljdHVyZURpYWxvZ0NvbXBvbmVudCB7XHJcbiAgZG9uZSA9IG91dHB1dDxTZWxlY3RGaWxlPigpO1xyXG5cclxuICBwcml2YXRlIGRpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWY8U2VsZWN0UGljdHVyZURpYWxvZ0NvbXBvbmVudD4pO1xyXG4gIHByb3RlY3RlZCBkaWFsb2dEYXRhIDogU2VsZWN0RmlsZURpYWxvZ0RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKTsgXHJcblxyXG4gIHByb3RlY3RlZCBmaWxlOiBGaWxlIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJvdGVjdGVkIGZpbGVQcmV2aWV3ID0gc2lnbmFsPGFueT4obnVsbCk7XHJcblxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgcHJldmlld1xyXG4gICAqIEBwYXJhbSBlIDogdGhlIGV2ZW50XHJcbiAgICovXHJcbiAgdXBkYXRlKGU6IGFueSkge1xyXG4gICAgaWYgKGUudGFyZ2V0LmZpbGVzKSB7XHJcbiAgICAgIHRoaXMuZmlsZSA9IGUudGFyZ2V0LmZpbGVzWzBdO1xyXG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICByZWFkZXIub25sb2FkID0gKF9lOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmZpbGVQcmV2aWV3LnNldCgoX2UudGFyZ2V0IGFzIEZpbGVSZWFkZXIpLnJlc3VsdCk7XHJcbiAgICAgIH07XHJcbiAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGUudGFyZ2V0LmZpbGVzWzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm1hdCBzaXplXHJcbiAgICogQHBhcmFtIHNpemUgdGhlIGZpbGUgc2l6ZVxyXG4gICAqL1xyXG4gIHNpemUoc2l6ZTogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gU3lzdGVtVXRpbHMuZm9ybWF0RmlsZVNpemUoc2l6ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdWJtaXQgc2VsZWN0aW9uXHJcbiAgICovXHJcbiAgb2soKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZG9uZS5lbWl0KHsgZmlsZTogdGhpcy5maWxlLCBvcHRpb25zOiB0aGlzLmRpYWxvZ0RhdGEub3B0aW9ucyB9KTtcclxuICAgIH0sIDUwMCk7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8aDIgbWF0LWRpYWxvZy10aXRsZT57e2RpYWxvZ0RhdGEudGl0bGV9fTwvaDI+XHJcbkBpZiAoZGlhbG9nRGF0YS5kZXNjcmlwdGlvbikge1xyXG48ZGl2IGNsYXNzPVwic2VsZWN0cGljdHVyZS1kZXNjcmlwdGlvblwiIFtpbm5lckh0bWxdPVwiZGlhbG9nRGF0YS5kZXNjcmlwdGlvbiB8IHNhZmVIdG1sXCI+PC9kaXY+XHJcbn1cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiMzJweFwiIGZ4RmlsbD5cclxuICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBmeEZpbGw+XHJcbiAgICAgIDxpbnB1dCAjX2ZpbGUgdHlwZT1cImZpbGVcIiBbaGlkZGVuXT1cInRydWVcIiBhY2NlcHQ9XCJpbWFnZS8qXCIgKGNoYW5nZSk9XCJ1cGRhdGUoJGV2ZW50KVwiIC8+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIl9maWxlLmNsaWNrKClcIj5TZWxlemlvbmEgZmlsZS4uLjwvYnV0dG9uPlxyXG4gICAgICBAaWYgKGZpbGUpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdHBpY3R1cmUtaW5mb1wiPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJmaWxlUHJldmlldygpXCIgY2xhc3M9XCJwcmV2aWV3XCI+PGJyIC8+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzbWFsbCB0cnVuY2F0ZWRcIj48aT57e2ZpbGUubmFtZX19PC9pPjwvc3Bhbj5cclxuICAgICAgICA8ZGl2PjxzcGFuIGNsYXNzPVwic21hbGwgdHJ1bmNhdGVkXCI+RGltZW5zaW9uaTogPGk+e3tzaXplKGZpbGUuc2l6ZSl9fTwvaT48L3NwYW4+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZiAoZGlhbG9nRGF0YS5vcHRpb25zKSB7XHJcbiAgICA8ZGl2PlxyXG4gICAgICBAZm9yIChvIG9mIGRpYWxvZ0RhdGEub3B0aW9uczsgdHJhY2sgJGluZGV4OyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxtYXQtY2hlY2tib3ggY29sb3I9XCJwcmltYXJ5XCIgWyhuZ01vZGVsKV09XCJvLnZhbHVlXCIgbmFtZT1cIm9wdF97e2l9fVwiPlxyXG4gICAgICAgICAge3tvLmRlc2NyaXB0aW9ufX1cclxuICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmRcIiBmeEZpbGw+XHJcbiAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAoY2xpY2spPVwib2soKVwiIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCIhZmlsZVwiPnt7ZGlhbG9nRGF0YS5va0NhcHRpb259fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIG1hdC1kaWFsb2ctY2xvc2UgY2RrRm9jdXNJbml0aWFsIGNvbG9yPVwicHJpbWFyeVwiPkFubnVsbGE8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FlatTreeControl } from '@angular/cdk/tree';
|
|
2
2
|
import { NgClass } from '@angular/common';
|
|
3
|
-
import { ChangeDetectionStrategy, Component,
|
|
3
|
+
import { ChangeDetectionStrategy, Component, Injectable, inject, output } from '@angular/core';
|
|
4
4
|
import { FormsModule } from '@angular/forms';
|
|
5
5
|
import { MatButtonModule } from '@angular/material/button';
|
|
6
6
|
import { MAT_DIALOG_DATA, MatDialogActions, MatDialogClose, MatDialogContent, MatDialogRef, MatDialogTitle } from '@angular/material/dialog';
|
|
@@ -134,7 +134,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
134
134
|
}] });
|
|
135
135
|
export class SelectTreeDialogComponent {
|
|
136
136
|
constructor() {
|
|
137
|
-
this.done =
|
|
137
|
+
this.done = output();
|
|
138
138
|
this.unsubscribe = new Subject();
|
|
139
139
|
this.dialogRef = inject((MatDialogRef));
|
|
140
140
|
this.dialogData = inject(MAT_DIALOG_DATA);
|
|
@@ -271,7 +271,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImpor
|
|
|
271
271
|
args: [{ host: { 'Bind': SystemUtils.generateUUID() }, providers: [TreeDataSource], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatDialogTitle, FlexLayoutModule, MatFormFieldModule, MatInputModule, FormsModule, MatButtonModule,
|
|
272
272
|
MatIconModule, MatTooltipModule, MatDialogContent, MatTreeModule, NgClass, MatDialogActions,
|
|
273
273
|
MatDialogClose, SafeHtmlPipe], template: "<h2 mat-dialog-title (keyup.ArrowDown)=\"nextFiltered()\">{{dialogData.title}}</h2>\r\n<div style=\"padding: 0 24px\">\r\n @if (dialogData.description) {\r\n <div [innerHtml]=\"dialogData.description | safeHtml\"></div>\r\n }\r\n <div style=\"padding-bottom: 10px;\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"10px\" fxFill>\r\n <div fxFlex=\"50\">\r\n <mat-form-field style=\"width:100%\" [appearance]=\"dialogData.appearance\" subscriptSizing=\"dynamic\" >\r\n <mat-label>Cerca...</mat-label>\r\n <input type=\"text\" cdkFocusInitial (keyup)=\"doFilter()\" matInput title=\"Digita il testo'\"\r\n [(ngModel)]=\"filterText\">\r\n @if (filterText) {\r\n <button type=\"button\" type=\"button\" tabindex=\"-1\" matSuffix mat-icon-button aria-label=\"Clear\"\r\n (click)=\"clearFilter()\">\r\n <mat-icon>close</mat-icon>\r\n </button>\r\n }\r\n </mat-form-field>\r\n </div>\r\n @if (filteredItems.length > 0) {\r\n <div fxFlex=\"50px\" fxLayoutAlign=\"end\">\r\n <div fxFlexAlign=\"center\" class=\"small\">{{filterIndex + 1}} / {{filteredItems.length}}</div>\r\n </div>\r\n }\r\n <div fxFlex=\"50\" fxLayoutAlign=\"end\" style=\"white-space:nowrap\">\r\n <div fxFlexAlign=\"center\">\r\n @if (filteredItems.length > 0) {\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\" (click)=\"nextFiltered()\">\r\n <mat-icon aria-label=\"Vai al prossimo\" matTooltip=\"Vai al prossimo\">arrow_downward</mat-icon>\r\n </button>\r\n }\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\" (click)=\"treeControl.collapseAll()\">\r\n <mat-icon aria-label=\"Comprimi tutto\" matTooltip=\"Comprimi tutto\">unfold_less</mat-icon>\r\n </button>\r\n <button fxFlexAlign=\"center\" type=\"button\" mat-icon-button color=\"primary\" (click)=\"treeControl.expandAll()\">\r\n <mat-icon aria-label=\"Espandi tutto\" matTooltip=\"Espandi tutto\">unfold_more</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div mat-dialog-content>\r\n <div fxLayout=\"column\" fxFill>\r\n <mat-tree [dataSource]=\"treeData\" [treeControl]=\"treeControl\">\r\n <mat-tree-node [id]=\"node.id\" *matTreeNodeDef=\"let node\" matTreeNodeToggle matTreeNodePadding\r\n [matTreeNodePaddingIndent]=\"20\" class=\"tree-node tree-node-simple\" (click)=\"select($event, node);\"\r\n [ngClass]=\"{'tree-node-activated': currentNode && currentNode.id === node.id}\" >\r\n <div fxLayout=\"row\" fxLayoutGap=\"5px\" fxFill class=\"small\">\r\n <button type=\"button\" mat-icon-button disabled class=\"small-icon-button\"></button>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\" class=\"uppercase \">\r\n {{node.name}}\r\n </div>\r\n <div fxFlex=\"30px\" fxFlexAlign=\"center\">\r\n @if (node.count > 0) {\r\n <span fxLayoutAlign=\"end\">({{node.count}})</span>\r\n }\r\n </div>\r\n </div>\r\n </mat-tree-node>\r\n\r\n <mat-tree-node [id]=\"node.id\" *matTreeNodeDef=\"let node;when: hasChild\" matTreeNodePadding\r\n [matTreeNodePaddingIndent]=\"20\" class=\"tree-node tree-node-simple\"\r\n [ngClass]=\"{'tree-node-activated': currentNode && currentNode.id === node.id }\" (click)=\"select($event, node);\">\r\n <div fxLayout=\"row\" fxLayoutGap=\"5px\" fxFill class=\"small\">\r\n <div fxFlex=\"30px\" fxFlexAlign=\"center\">\r\n <button type=\"button\" mat-icon-button matTreeNodeToggle [attr.aria-label]=\"'Apri/chiudi ' + node.name\"\r\n class=\"small-icon-button\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">\r\n {{treeControl.isExpanded(node) ? 'expand_more' : 'chevron_right'}}\r\n </mat-icon>\r\n </button>\r\n </div>\r\n <div fxFlex=\"*\" fxFlexAlign=\"center\" class=\"uppercase truncated\">\r\n <div>\r\n {{node.name}}\r\n </div>\r\n </div>\r\n <div fxFlex=\"30px\" fxFlexAlign=\"center\">\r\n @if (node.count > 0) {\r\n <div fxLayoutAlign=\"end\">({{node.count}})</div>\r\n }\r\n </div>\r\n </div>\r\n </mat-tree-node>\r\n </mat-tree>\r\n </div>\r\n</div>\r\n<div mat-dialog-actions>\r\n <div fxLayout=\"row\" fxLayoutAlign=\"end\" fxFill>\r\n <button mat-flat-button color=\"primary\" (click)=\"ok()\" \r\n [disabled]=\"!currentNode\">{{dialogData.okCaption}}</button>\r\n <button mat-button mat-dialog-close cdkFocusInitial \r\n color=\"primary\">Annulla</button>\r\n </div>\r\n</div>", styles: [".dialog-info{font-size:x-small;font-weight:700;text-align:right;padding:10px}.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #388E3C)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #a80710)}.dialog-header{padding-bottom:20px}.dialog-close{margin-right:10px;margin-top:10px}.dialog-menu{margin-left:10px;margin-top:10px}.dialog-title{padding:0 24px}.section-title{font-size:large;font-weight:600;padding-top:10px;padding-bottom:8px}.center{text-align:center}.wide{min-width:100%!important;max-width:100%!important;width:100%!important}.fill{min-width:100%!important;max-width:100%!important;width:100%!important;min-height:100%!important;max-height:100%!important;height:100%!important}.scroll-auto{overflow:auto;height:100%}.scroll-hidden{overflow:hidden;height:100%}b{font-weight:700}.large{font-size:large!important}.smaller{font-size:smaller}.small{font-size:small!important;line-height:16px}.small-icon-button{width:1.5rem!important;height:1.5rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.small-icon-button .mat-mdc-button-touch-target{width:1.5rem!important;height:1.5rem!important}.x-small{font-size:x-small!important;line-height:14px}.bold{font-weight:700}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.truncated{min-width:0;max-width:100%}.truncated span,.truncated div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clipped{min-width:0;max-width:100%}.clipped span,.clipped div{white-space:nowrap;overflow:hidden;text-overflow:clip}.accent{color:var(--ars-color-accent, #7894ae)!important}.primary{color:var(--ars-color-primary, #00a293)!important}.secondary{color:var(--ars-color-secondary, #4a635f)!important}.error{color:var(--ars-color-error, #ff5449)!important}.warning{color:var(--ars-color-warning, #FFC107)!important}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;background-color:var(--ars-color-overlay, rgba(255, 255, 255, .75))}.drawer-content{padding-top:10px}.drawer,.drawer-small{min-width:420px!important;max-width:420px!important;padding:20px 0 0}.drawer .title-container,.drawer-small .title-container{padding:20px 10px}.drawer .title-container-with-loader,.drawer-small .title-container-with-loader{padding:14px 10px 20px}.drawer .title,.drawer-small .title{font-size:1.2em;font-weight:600;padding-left:10px;min-width:200px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drawer .accordion-panel,.drawer-small .accordion-panel{background-color:transparent!important}.drawer .accordion-header,.drawer-small .accordion-header{padding-left:15px;padding-right:20px;border-radius:var(--mat-expansion-container-shape)}.drawer .mat-expansion-panel-body,.drawer-small .mat-expansion-panel-body{padding-bottom:20px!important}.drawer-with-loader{padding-top:0!important}.drawer-transparent{background-color:transparent}.drawer-small{min-width:360px!important;max-width:360px!important}.drawer-small .title{min-width:150px;width:100%}@media screen and (min-width: 0px) and (max-width: 359px){.drawer{min-width:360px!important;max-width:360px!important}.drawer .title{min-width:150px}}.fade-in{animation:fadein .5s linear}@keyframes fadein{0%{opacity:0}to{opacity:1}}@media (prefers-color-scheme: dark){.dialog-info-green,.dialog-info-ok{color:var(--ars-color-ok, #4CAF50)}.dialog-info-red,.dialog-info-error{color:var(--mat-form-field-error-text-color, #ff5449)}b{font-weight:600}}.tree{overflow-x:hidden}.tree-node{min-height:36px!important;padding-right:12px;margin-right:0}.tree-node .small-icon-button{width:2rem!important;height:2rem!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center}.tree-node .small-icon-button .mat-mdc-button-touch-target{width:2rem!important;height:2rem!important}.tree-node:hover{cursor:pointer;background-color:var(--mat-menu-item-hover-state-layer-color, transparent);border-radius:24px}.tree-node-simple,.tree-node-simple>div{min-height:36px!important}.tree-node-activated,.tree-node-activated>div{min-height:36px!important;font-weight:700!important}\n"] }]
|
|
274
|
-
}]
|
|
275
|
-
type: Output
|
|
276
|
-
}] } });
|
|
277
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRyZWUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy91aS5hcHBsaWNhdGlvbi91aS9kaWFsb2dzL3NlbGVjdC10cmVlL3NlbGVjdC10cmVlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9zZWxlY3QtdHJlZS9zZWxlY3QtdHJlZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQUUsVUFBVSxFQUd4QixNQUFNLEVBQ04sTUFBTSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGdC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VyxFQUFFLGVBQWU7d0JBQzFHLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGdCQUFnQjt3QkFDM0YsY0FBYyxFQUFFLFlBQVksQ0FBQzs4QkFHckIsSUFBSTtzQkFBYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xyXG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIGluamVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dBY3Rpb25zLCBNYXREaWFsb2dDbG9zZSwgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nUmVmLCBNYXREaWFsb2dUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSwgTWF0VHJlZUZsYXR0ZW5lciwgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5pbXBvcnQgeyBTYWZlSHRtbFBpcGUsIFN5c3RlbVV0aWxzIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBvZiBhcyBvYnNlcnZhYmxlT2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBJdGVtTm9kZSwgU2VsZWN0RGlhbG9nUmVzdWx0LCBTZWxlY3RUcmVlRGlhbG9nRGF0YSwgU2VsZWN0YWJsZU5vZGUgfSBmcm9tICcuLi8uLi9kZWZpbml0aW9ucyc7XHJcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAbmdicmFja2V0L25neC1sYXlvdXQnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRyZWVEYXRhU291cmNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBkYXRhQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJdGVtTm9kZVtdPihbXSk7XHJcblxyXG4gIGdldCBkYXRhKCk6IEl0ZW1Ob2RlW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YUNoYW5nZS52YWx1ZTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsemllIHRoZSBkYXRhIHNvdXJjZVxyXG4gICAqIEBwYXJhbSBkYXRhIDogZGF0YVxyXG4gICAqL1xyXG4gIGluaXRpYWxpemUoZGF0YTogSXRlbU5vZGVbXSkge1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaW5kIGEgbm9kZSBieSBpZCByZWN1cnNpdmVseVxyXG4gICAqIEBwYXJhbSBub2RlOiB0aGUgc291cmNlIG5vZGVcclxuICAgKiBAcGFyYW0gaWQgOiB0aGUgaWQgdG8gc2VhcmNoIGZvclxyXG4gICAqL1xyXG4gIGZpbmROb2RlKG5vZGU6IEl0ZW1Ob2RlLCBpZDogc3RyaW5nKTogSXRlbU5vZGUge1xyXG4gICAgbGV0IGNoaWxkcmVuO1xyXG4gICAgaWYgKG5vZGUgJiYgbm9kZS5pZCA9PT0gaWQpIHJldHVybiBub2RlO1xyXG4gICAgaWYgKG5vZGUpIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjtcclxuICAgIGVsc2UgaWYgKHRoaXMuZGF0YSAmJiB0aGlzLmRhdGEubGVuZ3RoID4gMClcclxuICAgICAgY2hpbGRyZW4gPSB0aGlzLmRhdGFbMF0uY2hpbGRyZW47XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgbGV0IF9uID0gbnVsbDtcclxuICAgICAgY2hpbGRyZW4uc29tZShuID0+IHtcclxuICAgICAgICBpZiAobi5pZCA9PT0gaWQpIHtcclxuICAgICAgICAgIF9uID0gbjtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBfbiA9IHRoaXMuZmluZE5vZGUobiwgaWQpO1xyXG4gICAgICAgIGlmIChfbikgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIF9uO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBhIG5vZGVcclxuICAgKiBAcGFyYW0gaWQgOiB0aGUgbm9kZSBpZCB0byByZW1vdmVcclxuICAgKi9cclxuICByZW1vdmVOb2RlKGlkOiBzdHJpbmcpIHtcclxuICAgIGxldCBuID0gdGhpcy5maW5kTm9kZShudWxsLCBpZCk7XHJcbiAgICBpZiAoIW4pIHJldHVybjtcclxuICAgIGlmIChuLnBhcmVudCkge1xyXG4gICAgICBjb25zdCBwID0gbi5wYXJlbnQuY2hpbGRyZW4uZmluZEluZGV4KG4gPT4gbi5pZCA9PT0gaWQpO1xyXG4gICAgICBpZiAocCAhPSAtMSkge1xyXG4gICAgICAgIG4ucGFyZW50LmNoaWxkcmVuLnNwbGljZShwLCAxKTtcclxuICAgICAgICBpZiAobi5wYXJlbnQuY291bnQgPiAwKSBuLnBhcmVudC5jb3VudC0tO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBwID0gdGhpcy5kYXRhLmZpbmRJbmRleChuID0+IG4uaWQgPT09IGlkKTtcclxuICAgICAgaWYgKHAgIT0gLTEpIHtcclxuICAgICAgICB0aGlzLmRhdGEuc3BsaWNlKHAsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluc2VydCBhIG5ldyBub2RlXHJcbiAgICogQHBhcmFtIG5vZGUgOiB0aGUgbmV3IG5vZGVcclxuICAgKi9cclxuICBpbnNlcnROb2RlKG5vZGU6IEl0ZW1Ob2RlKSB7XHJcbiAgICBpZiAobm9kZS5wYXJlbnQpIHtcclxuICAgICAgbm9kZS5wYXJlbnQuY2hpbGRyZW4udW5zaGlmdChub2RlKTtcclxuICAgICAgbm9kZS5wYXJlbnQuY291bnQrKztcclxuICAgIH0gZWxzZSB0aGlzLmRhdGEudW5zaGlmdChub2RlKTtcclxuXHJcbiAgICB0aGlzLmRhdGFDaGFuZ2UubmV4dCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVuYW1lIGEgbm9kZVxyXG4gICAqIEBwYXJhbSBpZCA6IHRoZSBub2RlIGlkXHJcbiAgICogQHBhcmFtIG5hbWUgOiB0aGUgbmV3IG5vZGUgbmFtZVxyXG4gICAqL1xyXG4gIHJlbmFtZU5vZGUoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKTogSXRlbU5vZGUge1xyXG4gICAgbGV0IG4gPSB0aGlzLmZpbmROb2RlKG51bGwsIGlkKTtcclxuICAgIGlmIChuKSB7XHJcbiAgICAgIG4ubmFtZSA9IG5hbWU7XHJcbiAgICAgIHRoaXMuZGF0YUNoYW5nZS5uZXh0KHRoaXMuZGF0YSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBkYXRhXHJcbiAgICovXHJcbiAgdXBkYXRlKCkge1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQodGhpcy5kYXRhKTtcclxuICB9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGhvc3Q6IHsgJ0JpbmQnOiBTeXN0ZW1VdGlscy5nZW5lcmF0ZVVVSUQoKSB9LFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtdHJlZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC10cmVlLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1RyZWVEYXRhU291cmNlXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGltcG9ydHM6IFtNYXREaWFsb2dUaXRsZSwgRmxleExheW91dE1vZHVsZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgRm9ybXNNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgXHJcbiAgICBNYXRJY29uTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBNYXREaWFsb2dDb250ZW50LCBNYXRUcmVlTW9kdWxlLCBOZ0NsYXNzLCBNYXREaWFsb2dBY3Rpb25zLCBcclxuICAgIE1hdERpYWxvZ0Nsb3NlLCBTYWZlSHRtbFBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RUcmVlRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBPdXRwdXQoKSBkb25lID0gbmV3IEV2ZW50RW1pdHRlcjxTZWxlY3REaWFsb2dSZXN1bHQ+KCk7XHJcblxyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgZGlhbG9nUmVmID0gaW5qZWN0KE1hdERpYWxvZ1JlZjxTZWxlY3RUcmVlRGlhbG9nQ29tcG9uZW50Pik7XHJcbiAgcHJvdGVjdGVkIGRpYWxvZ0RhdGE6IFNlbGVjdFRyZWVEaWFsb2dEYXRhID0gaW5qZWN0KE1BVF9ESUFMT0dfREFUQSk7XHJcbiAgcHJpdmF0ZSB0cmVlID0gaW5qZWN0KFRyZWVEYXRhU291cmNlKTtcclxuICBwcml2YXRlIHRyZWVGbGF0dGVuZXI6IE1hdFRyZWVGbGF0dGVuZXI8SXRlbU5vZGUsIFNlbGVjdGFibGVOb2RlPjtcclxuICBwcm90ZWN0ZWQgdHJlZUNvbnRyb2w6IEZsYXRUcmVlQ29udHJvbDxTZWxlY3RhYmxlTm9kZT47XHJcbiAgcHJvdGVjdGVkIHRyZWVEYXRhOiBNYXRUcmVlRmxhdERhdGFTb3VyY2U8SXRlbU5vZGUsIFNlbGVjdGFibGVOb2RlPjtcclxuICBwcm90ZWN0ZWQgY3VycmVudE5vZGU6IEl0ZW1Ob2RlO1xyXG5cclxuICAvLyBVc2VkIGZvciBhcnJheSBmaWx0ZXJpbmdcclxuICBwcm90ZWN0ZWQgZmlsdGVyVGV4dDogc3RyaW5nID0gJyc7XHJcbiAgcHJvdGVjdGVkIGZpbHRlcmVkSXRlbXM6IFNlbGVjdGFibGVOb2RlW10gPSBbXTtcclxuICBwcm90ZWN0ZWQgZmlsdGVySW5kZXg6IG51bWJlciA9IC0xO1xyXG5cclxuICAvKipcclxuICAgKiBNYW5hZ2UgZmxhdCB0cmVlIHZpZXdcclxuICAgKi9cclxuICBwcml2YXRlIGdldENoaWxkcmVuID0gKG5vZGU6IEl0ZW1Ob2RlKTogT2JzZXJ2YWJsZTxJdGVtTm9kZVtdPiA9PlxyXG4gICAgb2JzZXJ2YWJsZU9mKG5vZGUuY2hpbGRyZW4pO1xyXG4gIHByaXZhdGUgZ2V0TGV2ZWwgPSAobm9kZTogU2VsZWN0YWJsZU5vZGUpID0+IG5vZGUubGV2ZWw7XHJcbiAgcHJpdmF0ZSBpc0V4cGFuZGFibGUgPSAobm9kZTogU2VsZWN0YWJsZU5vZGUpID0+IG5vZGUuZXhwYW5kYWJsZTtcclxuICBwcm90ZWN0ZWQgaGFzQ2hpbGQgPSAoXzogbnVtYmVyLCBfbm9kZTogU2VsZWN0YWJsZU5vZGUpID0+IF9ub2RlLmV4cGFuZGFibGU7XHJcbiAgcHJvdGVjdGVkIHRyYW5zZm9ybWVyID0gKGl0ZW06IEl0ZW1Ob2RlLCBsZXZlbDogbnVtYmVyKSA9PiB7XHJcbiAgICByZXR1cm4gbmV3IFNlbGVjdGFibGVOb2RlKGl0ZW0sIGxldmVsKTtcclxuICB9O1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZGlhbG9nRGF0YSA9IHRoaXMuZGlhbG9nRGF0YSB8fCB7IGFwcGVhcmFuY2U6ICdvdXRsaW5lJywgdGl0bGU6ICdTZWxlemlvbmEnLCBva0NhcHRpb246ICdPaycgfTtcclxuICAgIHRoaXMudHJlZUZsYXR0ZW5lciA9IG5ldyBNYXRUcmVlRmxhdHRlbmVyKFxyXG4gICAgICB0aGlzLnRyYW5zZm9ybWVyLFxyXG4gICAgICB0aGlzLmdldExldmVsLFxyXG4gICAgICB0aGlzLmlzRXhwYW5kYWJsZSxcclxuICAgICAgdGhpcy5nZXRDaGlsZHJlblxyXG4gICAgKTtcclxuICAgIHRoaXMudHJlZUNvbnRyb2wgPSBuZXcgRmxhdFRyZWVDb250cm9sPFNlbGVjdGFibGVOb2RlPihcclxuICAgICAgdGhpcy5nZXRMZXZlbCxcclxuICAgICAgdGhpcy5pc0V4cGFuZGFibGVcclxuICAgICk7XHJcbiAgICB0aGlzLnRyZWVEYXRhID0gbmV3IE1hdFRyZWVGbGF0RGF0YVNvdXJjZShcclxuICAgICAgdGhpcy50cmVlQ29udHJvbCxcclxuICAgICAgdGhpcy50cmVlRmxhdHRlbmVyXHJcbiAgICApO1xyXG4gICAgdGhpcy50cmVlLmRhdGFDaGFuZ2VcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxyXG4gICAgICAuc3Vic2NyaWJlKGRhdGEgPT4gKHRoaXMudHJlZURhdGEuZGF0YSA9IGRhdGEpKTtcclxuICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEubm9kZXMpIHtcclxuICAgICAgdGhpcy50cmVlLmluaXRpYWxpemUodGhpcy5kaWFsb2dEYXRhLm5vZGVzKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5kaWFsb2dEYXRhLnRpdGxlKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS50aXRsZSA9ICdTZWxlemlvbmEnO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmRpYWxvZ0RhdGEub2tDYXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nRGF0YS5va0NhcHRpb24gPSAnT0snO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGlhbG9nRGF0YS5pbml0aWFsRmlsdGVyKSB7XHJcbiAgICAgIHRoaXMuZG9GaWx0ZXIodGhpcy5kaWFsb2dEYXRhLmluaXRpYWxGaWx0ZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlLm5leHQoKTtcclxuICAgIHRoaXMudW5zdWJzY3JpYmUuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFN1Ym1pdCBzZWxlY3Rpb25cclxuICAgKi9cclxuICBvaygpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5kb25lLmVtaXQoeyBzZWxlY3RlZEl0ZW1zOiBbdGhpcy5jdXJyZW50Tm9kZV0gfSk7XHJcbiAgICB9LCA1MDApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2VsZWN0ICBhIG5vZGVcclxuICAgKiBAcGFyYW0gZSA6IHRoZSBldmVudFxyXG4gICAqIEBwYXJhbSBub2RlIDogdGhlXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIHNlbGVjdChlOiBhbnksIG5vZGU6IFNlbGVjdGFibGVOb2RlKSB7XHJcbiAgICBpZiAoZSkgZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGlmIChub2RlKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudE5vZGUgPSBub2RlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYXIgZmlsdGVyXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGNsZWFyRmlsdGVyKCkge1xyXG4gICAgdGhpcy5maWx0ZXJUZXh0ID0gJyc7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBcHBseSBmaWx0ZXJcclxuICAgKiBAcGFyYW0gdGV4dCA6IHRoZSB0ZXh0IHRvIGZpbHRlclxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBkb0ZpbHRlcih0ZXh0OiBzdHJpbmcgPSBudWxsKSB7XHJcbiAgICBpZiAodGV4dCkgdGhpcy5maWx0ZXJUZXh0ID0gdGV4dDtcclxuICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IFtdO1xyXG4gICAgdGhpcy5maWx0ZXJJbmRleCA9IC0xO1xyXG4gICAgaWYgKHRoaXMuZmlsdGVyVGV4dCkge1xyXG4gICAgICB0aGlzLnRyZWVDb250cm9sLmRhdGFOb2Rlcy5mb3JFYWNoKG4gPT4ge1xyXG4gICAgICAgIGlmIChuLm5hbWUuaW5kZXhPZih0aGlzLmZpbHRlclRleHQpICE9IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmZpbHRlcmVkSXRlbXMucHVzaChuKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHRoaXMuZmlsdGVyZWRJdGVtcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5uZXh0RmlsdGVyZWQoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR290byBuZXh0IGZpbHRlcmVkIGl0ZW1cclxuICAgKi9cclxuICBwcm90ZWN0ZWQgbmV4dEZpbHRlcmVkKCkge1xyXG4gICAgaWYgKCFTeXN0ZW1VdGlscy5pc0Jyb3dzZXIoKSkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuZmlsdGVyZWRJdGVtcy5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIHRoaXMuZmlsdGVySW5kZXgrKztcclxuICAgIGlmICh0aGlzLmZpbHRlckluZGV4ID09PSB0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoKSB0aGlzLmZpbHRlckluZGV4ID0gMDtcclxuICAgIGxldCBub2RlID0gdGhpcy5maWx0ZXJlZEl0ZW1zW3RoaXMuZmlsdGVySW5kZXhdO1xyXG4gICAgdGhpcy5jdXJyZW50Tm9kZSA9IG5vZGU7XHJcbiAgICB0aGlzLmV4cGFuZChub2RlKTtcclxuICAgIGxldCBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQobm9kZS5pZCk7XHJcbiAgICBpZiAoZWxlbSkgZWxlbS5zY3JvbGxJbnRvVmlldygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhwYW5kIGEgbm9kZSBhbmQgYWxsIGl0cyBwYXJlbnRzXHJcbiAgICogQHBhcmFtIG5vZGUgOiB0aGUgc2VsZWN0YWJsZSBub2RlIHRvIGV4cGFuZFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBleHBhbmQobm9kZTogU2VsZWN0YWJsZU5vZGUpIHtcclxuICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKG5vZGUpO1xyXG4gICAgbGV0IF9uID0gbm9kZS5wYXJlbnQ7XHJcbiAgICB3aGlsZSAoX24pIHtcclxuICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuc29tZShuID0+IHtcclxuICAgICAgICBpZiAobi5pZCA9PT0gX24uaWQpIHtcclxuICAgICAgICAgIHRoaXMudHJlZUNvbnRyb2wuZXhwYW5kKG4pO1xyXG4gICAgICAgICAgX24gPSBfbi5wYXJlbnQ7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbiIsIjxoMiBtYXQtZGlhbG9nLXRpdGxlIChrZXl1cC5BcnJvd0Rvd24pPVwibmV4dEZpbHRlcmVkKClcIj57e2RpYWxvZ0RhdGEudGl0bGV9fTwvaDI+XHJcbjxkaXYgc3R5bGU9XCJwYWRkaW5nOiAwIDI0cHhcIj5cclxuICBAaWYgKGRpYWxvZ0RhdGEuZGVzY3JpcHRpb24pIHtcclxuICA8ZGl2IFtpbm5lckh0bWxdPVwiZGlhbG9nRGF0YS5kZXNjcmlwdGlvbiB8IHNhZmVIdG1sXCI+PC9kaXY+XHJcbiAgfVxyXG4gIDxkaXYgc3R5bGU9XCJwYWRkaW5nLWJvdHRvbTogMTBweDtcIj5cclxuICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjEwcHhcIiBmeEZpbGw+XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiNTBcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgc3R5bGU9XCJ3aWR0aDoxMDAlXCIgW2FwcGVhcmFuY2VdPVwiZGlhbG9nRGF0YS5hcHBlYXJhbmNlXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiID5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+Q2VyY2EuLi48L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNka0ZvY3VzSW5pdGlhbCAoa2V5dXApPVwiZG9GaWx0ZXIoKVwiIG1hdElucHV0IHRpdGxlPVwiRGlnaXRhIGlsIHRlc3RvJ1wiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmlsdGVyVGV4dFwiPlxyXG4gICAgICAgICAgQGlmIChmaWx0ZXJUZXh0KSB7XHJcbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkNsZWFyXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyRmlsdGVyKClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPmNsb3NlPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICBAaWYgKGZpbHRlcmVkSXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICA8ZGl2IGZ4RmxleD1cIjUwcHhcIiBmeExheW91dEFsaWduPVwiZW5kXCI+XHJcbiAgICAgICAgPGRpdiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIGNsYXNzPVwic21hbGxcIj57e2ZpbHRlckluZGV4ICsgMX19IC8ge3tmaWx0ZXJlZEl0ZW1zLmxlbmd0aH19PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICB9XHJcbiAgICAgIDxkaXYgZnhGbGV4PVwiNTBcIiBmeExheW91dEFsaWduPVwiZW5kXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTpub3dyYXBcIj5cclxuICAgICAgICA8ZGl2IGZ4RmxleEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgICBAaWYgKGZpbHRlcmVkSXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm5leHRGaWx0ZXJlZCgpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiVmFpIGFsIHByb3NzaW1vXCIgbWF0VG9vbHRpcD1cIlZhaSBhbCBwcm9zc2ltb1wiPmFycm93X2Rvd253YXJkPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInRyZWVDb250cm9sLmNvbGxhcHNlQWxsKClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGFyaWEtbGFiZWw9XCJDb21wcmltaSB0dXR0b1wiIG1hdFRvb2x0aXA9XCJDb21wcmltaSB0dXR0b1wiPnVuZm9sZF9sZXNzPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvbiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgKGNsaWNrKT1cInRyZWVDb250cm9sLmV4cGFuZEFsbCgpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiRXNwYW5kaSB0dXR0b1wiIG1hdFRvb2x0aXA9XCJFc3BhbmRpIHR1dHRvXCI+dW5mb2xkX21vcmU8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhGaWxsPlxyXG4gICAgPG1hdC10cmVlIFtkYXRhU291cmNlXT1cInRyZWVEYXRhXCIgW3RyZWVDb250cm9sXT1cInRyZWVDb250cm9sXCI+XHJcbiAgICAgIDxtYXQtdHJlZS1ub2RlIFtpZF09XCJub2RlLmlkXCIgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGVcIiBtYXRUcmVlTm9kZVRvZ2dsZSBtYXRUcmVlTm9kZVBhZGRpbmdcclxuICAgICAgICBbbWF0VHJlZU5vZGVQYWRkaW5nSW5kZW50XT1cIjIwXCIgY2xhc3M9XCJ0cmVlLW5vZGUgdHJlZS1ub2RlLXNpbXBsZVwiIChjbGljayk9XCJzZWxlY3QoJGV2ZW50LCBub2RlKTtcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsndHJlZS1ub2RlLWFjdGl2YXRlZCc6IGN1cnJlbnROb2RlICYmIGN1cnJlbnROb2RlLmlkID09PSBub2RlLmlkfVwiID5cclxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCI1cHhcIiBmeEZpbGwgY2xhc3M9XCJzbWFsbFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGRpc2FibGVkIGNsYXNzPVwic21hbGwtaWNvbi1idXR0b25cIj48L2J1dHRvbj5cclxuICAgICAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ1cHBlcmNhc2UgXCI+XHJcbiAgICAgICAgICAgIHt7bm9kZS5uYW1lfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBmeEZsZXg9XCIzMHB4XCIgZnhGbGV4QWxpZ249XCJjZW50ZXJcIj5cclxuICAgICAgICAgICAgQGlmIChub2RlLmNvdW50ID4gMCkge1xyXG4gICAgICAgICAgICA8c3BhbiBmeExheW91dEFsaWduPVwiZW5kXCI+KHt7bm9kZS5jb3VudH19KTwvc3Bhbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbWF0LXRyZWUtbm9kZT5cclxuXHJcbiAgICAgIDxtYXQtdHJlZS1ub2RlIFtpZF09XCJub2RlLmlkXCIgKm1hdFRyZWVOb2RlRGVmPVwibGV0IG5vZGU7d2hlbjogaGFzQ2hpbGRcIiBtYXRUcmVlTm9kZVBhZGRpbmdcclxuICAgICAgICBbbWF0VHJlZU5vZGVQYWRkaW5nSW5kZW50XT1cIjIwXCIgY2xhc3M9XCJ0cmVlLW5vZGUgdHJlZS1ub2RlLXNpbXBsZVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyd0cmVlLW5vZGUtYWN0aXZhdGVkJzogY3VycmVudE5vZGUgJiYgY3VycmVudE5vZGUuaWQgPT09IG5vZGUuaWQgfVwiIChjbGljayk9XCJzZWxlY3QoJGV2ZW50LCBub2RlKTtcIj5cclxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCI1cHhcIiBmeEZpbGwgY2xhc3M9XCJzbWFsbFwiPlxyXG4gICAgICAgICAgPGRpdiBmeEZsZXg9XCIzMHB4XCIgZnhGbGV4QWxpZ249XCJjZW50ZXJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIG1hdFRyZWVOb2RlVG9nZ2xlIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0FwcmkvY2hpdWRpICcgKyBub2RlLm5hbWVcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic21hbGwtaWNvbi1idXR0b25cIj5cclxuICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJtYXQtaWNvbi1ydGwtbWlycm9yXCI+XHJcbiAgICAgICAgICAgICAgICB7e3RyZWVDb250cm9sLmlzRXhwYW5kZWQobm9kZSkgPyAnZXhwYW5kX21vcmUnIDogJ2NoZXZyb25fcmlnaHQnfX1cclxuICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBmeEZsZXg9XCIqXCIgZnhGbGV4QWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInVwcGVyY2FzZSB0cnVuY2F0ZWRcIj5cclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICB7e25vZGUubmFtZX19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGZ4RmxleD1cIjMwcHhcIiBmeEZsZXhBbGlnbj1cImNlbnRlclwiPlxyXG4gICAgICAgICAgICBAaWYgKG5vZGUuY291bnQgPiAwKSB7XHJcbiAgICAgICAgICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cImVuZFwiPih7e25vZGUuY291bnR9fSk8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbWF0LXRyZWUtbm9kZT5cclxuICAgIDwvbWF0LXRyZWU+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImVuZFwiIGZ4RmlsbD5cclxuICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJvaygpXCIgXHJcbiAgICAgIFtkaXNhYmxlZF09XCIhY3VycmVudE5vZGVcIj57e2RpYWxvZ0RhdGEub2tDYXB0aW9ufX08L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlIGNka0ZvY3VzSW5pdGlhbCBcclxuICAgICAgY29sb3I9XCJwcmltYXJ5XCI+QW5udWxsYTwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
|
274
|
+
}] });
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRyZWUtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fycy11dGlscy91aS5hcHBsaWNhdGlvbi91aS9kaWFsb2dzL3NlbGVjdC10cmVlL3NlbGVjdC10cmVlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcnMtdXRpbHMvdWkuYXBwbGljYXRpb24vdWkvZGlhbG9ncy9zZWxlY3QtdHJlZS9zZWxlY3QtdHJlZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFBRSxVQUFVLEVBRWIsTUFBTSxFQUNkLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM3SSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLEVBQUUsSUFBSSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBc0QsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7O0FBSXpELE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBRUUsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFhLEVBQUUsQ0FBQyxDQUFDO0tBb0dsRDtJQWxHQyxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLElBQWdCO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsUUFBUSxDQUFDLElBQWMsRUFBRSxFQUFVO1FBQ2pDLElBQUksUUFBUSxDQUFDO1FBQ2IsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDeEMsSUFBSSxJQUFJO1lBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDOUIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUM7WUFDeEMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ25DLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDZCxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNoQixJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7b0JBQ2hCLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ1AsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztnQkFDRCxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQzFCLElBQUksRUFBRTtvQkFBRSxPQUFPLElBQUksQ0FBQztnQkFDcEIsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxFQUFVO1FBQ25CLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxDQUFDO1lBQUUsT0FBTztRQUNmLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNaLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQztvQkFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNDLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLElBQWM7UUFDdkIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEIsQ0FBQzs7WUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxVQUFVLENBQUMsRUFBVSxFQUFFLElBQVk7UUFDakMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNOLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs4R0FwR1UsY0FBYztrSEFBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVOztBQW1IWCxNQUFNLE9BQU8seUJBQXlCO0lBWHRDO1FBWUUsU0FBSSxHQUFHLE1BQU0sRUFBc0IsQ0FBQztRQUU1QixnQkFBVyxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2pELGNBQVMsR0FBRyxNQUFNLENBQUMsQ0FBQSxZQUF1QyxDQUFBLENBQUMsQ0FBQztRQUMxRCxlQUFVLEdBQXlCLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM3RCxTQUFJLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBTXRDLDJCQUEyQjtRQUNqQixlQUFVLEdBQVcsRUFBRSxDQUFDO1FBQ3hCLGtCQUFhLEdBQXFCLEVBQUUsQ0FBQztRQUNyQyxnQkFBVyxHQUFXLENBQUMsQ0FBQyxDQUFDO1FBRW5DOztXQUVHO1FBQ0ssZ0JBQVcsR0FBRyxDQUFDLElBQWMsRUFBMEIsRUFBRSxDQUMvRCxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RCLGFBQVEsR0FBRyxDQUFDLElBQW9CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDaEQsaUJBQVksR0FBRyxDQUFDLElBQW9CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDdkQsYUFBUSxHQUFHLENBQUMsQ0FBUyxFQUFFLEtBQXFCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDbEUsZ0JBQVcsR0FBRyxDQUFDLElBQWMsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUN4RCxPQUFPLElBQUksY0FBYyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUM7S0E0SEg7SUExSEMsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDcEcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGdCQUFnQixDQUN2QyxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxZQUFZLEVBQ2pCLElBQUksQ0FBQyxXQUFXLENBQ2pCLENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksZUFBZSxDQUNwQyxJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxZQUFZLENBQ2xCLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUkscUJBQXFCLENBQ3ZDLElBQUksQ0FBQyxXQUFXLEVBQ2hCLElBQUksQ0FBQyxhQUFhLENBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7YUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDakMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxXQUFXLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUNuQyxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsRUFBRTtRQUNBLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RCxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLE1BQU0sQ0FBQyxDQUFNLEVBQUUsSUFBb0I7UUFDM0MsSUFBSSxDQUFDO1lBQUUsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzNCLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ08sV0FBVztRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ08sUUFBUSxDQUFDLE9BQWUsSUFBSTtRQUNwQyxJQUFJLElBQUk7WUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDckMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDMUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzdCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNPLFlBQVk7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUU7WUFBRSxPQUFPO1FBQ3JDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQztZQUFFLE9BQU87UUFDNUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQztRQUN6RSxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xCLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLElBQUksSUFBSTtZQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sTUFBTSxDQUFDLElBQW9CO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzNCLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO29CQUNmLE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUM7Z0JBQ0QsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBdEpVLHlCQUF5QjtrR0FBekIseUJBQXlCLHlHQVZwQixXQUFXLENBQUMsWUFBWSxFQUFFLGlCQUcvQixDQUFDLGNBQWMsQ0FBQywwQkNwSTdCLHl5SkFnR00saW9JRHVDTSxjQUFjLDhIQUFFLGdCQUFnQixraUhBQUUsa0JBQWtCLDJhQUFFLGNBQWMsMFdBQUUsV0FBVyw4bUJBQUUsZUFBZSx3VUFDMUcsYUFBYSxtTEFBRSxnQkFBZ0IsNlRBQUUsZ0JBQWdCLHdHQUFFLGFBQWEsZ3JCQUFFLE9BQU8sb0ZBQUUsZ0JBQWdCLDRIQUMzRixjQUFjLGdMQUFFLFlBQVk7OzJGQUVuQix5QkFBeUI7a0JBWHJDLFNBQVM7MkJBQ0YsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLFlBQVksRUFBRSxFQUFFLGFBR2pDLENBQUMsY0FBYyxDQUFDLGNBQ2YsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDLENBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsZUFBZTt3QkFDMUcsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCO3dCQUMzRixjQUFjLEVBQUUsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmxhdFRyZWVDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RyZWUnO1xyXG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsIEluamVjdGFibGUsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCwgaW5qZWN0LFxyXG4gIG91dHB1dFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dBY3Rpb25zLCBNYXREaWFsb2dDbG9zZSwgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nUmVmLCBNYXREaWFsb2dUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hdFRyZWVGbGF0RGF0YVNvdXJjZSwgTWF0VHJlZUZsYXR0ZW5lciwgTWF0VHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RyZWUnO1xyXG5pbXBvcnQgeyBTYWZlSHRtbFBpcGUsIFN5c3RlbVV0aWxzIH0gZnJvbSAnQGFyc2VkaXppb25pL2Fycy11dGlscy9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBvZiBhcyBvYnNlcnZhYmxlT2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBJdGVtTm9kZSwgU2VsZWN0RGlhbG9nUmVzdWx0LCBTZWxlY3RUcmVlRGlhbG9nRGF0YSwgU2VsZWN0YWJsZU5vZGUgfSBmcm9tICcuLi8uLi9kZWZpbml0aW9ucyc7XHJcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAbmdicmFja2V0L25neC1sYXlvdXQnO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFRyZWVEYXRhU291cmNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBkYXRhQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJdGVtTm9kZVtdPihbXSk7XHJcblxyXG4gIGdldCBkYXRhKCk6IEl0ZW1Ob2RlW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YUNoYW5nZS52YWx1ZTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsemllIHRoZSBkYXRhIHNvdXJjZVxyXG4gICAqIEBwYXJhbSBkYXRhIDogZGF0YVxyXG4gICAqL1xyXG4gIGluaXRpYWxpemUoZGF0YTogSXRlbU5vZGVbXSkge1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQoZGF0YSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGaW5kIGEgbm9kZSBieSBpZCByZWN1cnNpdmVseVxyXG4gICAqIEBwYXJhbSBub2RlOiB0aGUgc291cmNlIG5vZGVcclxuICAgKiBAcGFyYW0gaWQgOiB0aGUgaWQgdG8gc2VhcmNoIGZvclxyXG4gICAqL1xyXG4gIGZpbmROb2RlKG5vZGU6IEl0ZW1Ob2RlLCBpZDogc3RyaW5nKTogSXRlbU5vZGUge1xyXG4gICAgbGV0IGNoaWxkcmVuO1xyXG4gICAgaWYgKG5vZGUgJiYgbm9kZS5pZCA9PT0gaWQpIHJldHVybiBub2RlO1xyXG4gICAgaWYgKG5vZGUpIGNoaWxkcmVuID0gbm9kZS5jaGlsZHJlbjtcclxuICAgIGVsc2UgaWYgKHRoaXMuZGF0YSAmJiB0aGlzLmRhdGEubGVuZ3RoID4gMClcclxuICAgICAgY2hpbGRyZW4gPSB0aGlzLmRhdGFbMF0uY2hpbGRyZW47XHJcbiAgICBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgbGV0IF9uID0gbnVsbDtcclxuICAgICAgY2hpbGRyZW4uc29tZShuID0+IHtcclxuICAgICAgICBpZiAobi5pZCA9PT0gaWQpIHtcclxuICAgICAgICAgIF9uID0gbjtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBfbiA9IHRoaXMuZmluZE5vZGUobiwgaWQpO1xyXG4gICAgICAgIGlmIChfbikgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIF9uO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZSBhIG5vZGVcclxuICAgKiBAcGFyYW0gaWQgOiB0aGUgbm9kZSBpZCB0byByZW1vdmVcclxuICAgKi9cclxuICByZW1vdmVOb2RlKGlkOiBzdHJpbmcpIHtcclxuICAgIGxldCBuID0gdGhpcy5maW5kTm9kZShudWxsLCBpZCk7XHJcbiAgICBpZiAoIW4pIHJldHVybjtcclxuICAgIGlmIChuLnBhcmVudCkge1xyXG4gICAgICBjb25zdCBwID0gbi5wYXJlbnQuY2hpbGRyZW4uZmluZEluZGV4KG4gPT4gbi5pZCA9PT0gaWQpO1xyXG4gICAgICBpZiAocCAhPSAtMSkge1xyXG4gICAgICAgIG4ucGFyZW50LmNoaWxkcmVuLnNwbGljZShwLCAxKTtcclxuICAgICAgICBpZiAobi5wYXJlbnQuY291bnQgPiAwKSBuLnBhcmVudC5jb3VudC0tO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBwID0gdGhpcy5kYXRhLmZpbmRJbmRleChuID0+IG4uaWQgPT09IGlkKTtcclxuICAgICAgaWYgKHAgIT0gLTEpIHtcclxuICAgICAgICB0aGlzLmRhdGEuc3BsaWNlKHAsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQodGhpcy5kYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluc2VydCBhIG5ldyBub2RlXHJcbiAgICogQHBhcmFtIG5vZGUgOiB0aGUgbmV3IG5vZGVcclxuICAgKi9cclxuICBpbnNlcnROb2RlKG5vZGU6IEl0ZW1Ob2RlKSB7XHJcbiAgICBpZiAobm9kZS5wYXJlbnQpIHtcclxuICAgICAgbm9kZS5wYXJlbnQuY2hpbGRyZW4udW5zaGlmdChub2RlKTtcclxuICAgICAgbm9kZS5wYXJlbnQuY291bnQrKztcclxuICAgIH0gZWxzZSB0aGlzLmRhdGEudW5zaGlmdChub2RlKTtcclxuXHJcbiAgICB0aGlzLmRhdGFDaGFuZ2UubmV4dCh0aGlzLmRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVuYW1lIGEgbm9kZVxyXG4gICAqIEBwYXJhbSBpZCA6IHRoZSBub2RlIGlkXHJcbiAgICogQHBhcmFtIG5hbWUgOiB0aGUgbmV3IG5vZGUgbmFtZVxyXG4gICAqL1xyXG4gIHJlbmFtZU5vZGUoaWQ6IHN0cmluZywgbmFtZTogc3RyaW5nKTogSXRlbU5vZGUge1xyXG4gICAgbGV0IG4gPSB0aGlzLmZpbmROb2RlKG51bGwsIGlkKTtcclxuICAgIGlmIChuKSB7XHJcbiAgICAgIG4ubmFtZSA9IG5hbWU7XHJcbiAgICAgIHRoaXMuZGF0YUNoYW5nZS5uZXh0KHRoaXMuZGF0YSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSBkYXRhXHJcbiAgICovXHJcbiAgdXBkYXRlKCkge1xyXG4gICAgdGhpcy5kYXRhQ2hhbmdlLm5leHQodGhpcy5kYXRhKTtcclxuICB9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGhvc3Q6IHsgJ0JpbmQnOiBTeXN0ZW1VdGlscy5nZW5lcmF0ZVVVSUQoKSB9LFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtdHJlZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC10cmVlLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1RyZWVEYXRhU291cmNlXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGltcG9ydHM6IFtNYXREaWFsb2dUaXRsZSwgRmxleExheW91dE1vZHVsZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgRm9ybXNNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgXHJcbiAgICBNYXRJY29uTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBNYXREaWFsb2dDb250ZW50LCBNYXRUcmVlTW9kdWxlLCBOZ0NsYXNzLCBNYXREaWFsb2dBY3Rpb25zLCBcclxuICAgIE1hdERpYWxvZ0Nsb3NlLCBTYWZlSHRtbFBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RUcmVlRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGRvbmUgPSBvdXRwdXQ8U2VsZWN0RGlhbG9nUmVzdWx0PigpO1xyXG5cclxuICBwcml2YXRlIHVuc3Vic2NyaWJlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGRpYWxvZ1JlZiA9IGluamVjdChNYXREaWFsb2dSZWY8U2VsZWN0VHJlZURpYWxvZ0NvbXBvbmVudD4pO1xyXG4gIHByb3RlY3RlZCBkaWFsb2dEYXRhOiBTZWxlY3RUcmVlRGlhbG9nRGF0YSA9IGluamVjdChNQVRfRElBTE9HX0RBVEEpO1xyXG4gIHByaXZhdGUgdHJlZSA9IGluamVjdChUcmVlRGF0YVNvdXJjZSk7XHJcbiAgcHJpdmF0ZSB0cmVlRmxhdHRlbmVyOiBNYXRUcmVlRmxhdHRlbmVyPEl0ZW1Ob2RlLCBTZWxlY3RhYmxlTm9kZT47XHJcbiAgcHJvdGVjdGVkIHRyZWVDb250cm9sOiBGbGF0VHJlZUNvbnRyb2w8U2VsZWN0YWJsZU5vZGU+O1xyXG4gIHByb3RlY3RlZCB0cmVlRGF0YTogTWF0VHJlZUZsYXREYXRhU291cmNlPEl0ZW1Ob2RlLCBTZWxlY3RhYmxlTm9kZT47XHJcbiAgcHJvdGVjdGVkIGN1cnJlbnROb2RlOiBJdGVtTm9kZTtcclxuXHJcbiAgLy8gVXNlZCBmb3IgYXJyYXkgZmlsdGVyaW5nXHJcbiAgcHJvdGVjdGVkIGZpbHRlclRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIHByb3RlY3RlZCBmaWx0ZXJlZEl0ZW1zOiBTZWxlY3RhYmxlTm9kZVtdID0gW107XHJcbiAgcHJvdGVjdGVkIGZpbHRlckluZGV4OiBudW1iZXIgPSAtMTtcclxuXHJcbiAgLyoqXHJcbiAgICogTWFuYWdlIGZsYXQgdHJlZSB2aWV3XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRDaGlsZHJlbiA9IChub2RlOiBJdGVtTm9kZSk6IE9ic2VydmFibGU8SXRlbU5vZGVbXT4gPT5cclxuICAgIG9ic2VydmFibGVPZihub2RlLmNoaWxkcmVuKTtcclxuICBwcml2YXRlIGdldExldmVsID0gKG5vZGU6IFNlbGVjdGFibGVOb2RlKSA9PiBub2RlLmxldmVsO1xyXG4gIHByaXZhdGUgaXNFeHBhbmRhYmxlID0gKG5vZGU6IFNlbGVjdGFibGVOb2RlKSA9PiBub2RlLmV4cGFuZGFibGU7XHJcbiAgcHJvdGVjdGVkIGhhc0NoaWxkID0gKF86IG51bWJlciwgX25vZGU6IFNlbGVjdGFibGVOb2RlKSA9PiBfbm9kZS5leHBhbmRhYmxlO1xyXG4gIHByb3RlY3RlZCB0cmFuc2Zvcm1lciA9IChpdGVtOiBJdGVtTm9kZSwgbGV2ZWw6IG51bWJlcikgPT4ge1xyXG4gICAgcmV0dXJuIG5ldyBTZWxlY3RhYmxlTm9kZShpdGVtLCBsZXZlbCk7XHJcbiAgfTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ0RhdGEgPSB0aGlzLmRpYWxvZ0RhdGEgfHwgeyBhcHBlYXJhbmNlOiAnb3V0bGluZScsIHRpdGxlOiAnU2VsZXppb25hJywgb2tDYXB0aW9uOiAnT2snIH07XHJcbiAgICB0aGlzLnRyZWVGbGF0dGVuZXIgPSBuZXcgTWF0VHJlZUZsYXR0ZW5lcihcclxuICAgICAgdGhpcy50cmFuc2Zvcm1lcixcclxuICAgICAgdGhpcy5nZXRMZXZlbCxcclxuICAgICAgdGhpcy5pc0V4cGFuZGFibGUsXHJcbiAgICAgIHRoaXMuZ2V0Q2hpbGRyZW5cclxuICAgICk7XHJcbiAgICB0aGlzLnRyZWVDb250cm9sID0gbmV3IEZsYXRUcmVlQ29udHJvbDxTZWxlY3RhYmxlTm9kZT4oXHJcbiAgICAgIHRoaXMuZ2V0TGV2ZWwsXHJcbiAgICAgIHRoaXMuaXNFeHBhbmRhYmxlXHJcbiAgICApO1xyXG4gICAgdGhpcy50cmVlRGF0YSA9IG5ldyBNYXRUcmVlRmxhdERhdGFTb3VyY2UoXHJcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wsXHJcbiAgICAgIHRoaXMudHJlZUZsYXR0ZW5lclxyXG4gICAgKTtcclxuICAgIHRoaXMudHJlZS5kYXRhQ2hhbmdlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSlcclxuICAgICAgLnN1YnNjcmliZShkYXRhID0+ICh0aGlzLnRyZWVEYXRhLmRhdGEgPSBkYXRhKSk7XHJcbiAgICBpZiAodGhpcy5kaWFsb2dEYXRhLm5vZGVzKSB7XHJcbiAgICAgIHRoaXMudHJlZS5pbml0aWFsaXplKHRoaXMuZGlhbG9nRGF0YS5ub2Rlcyk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuZGlhbG9nRGF0YS50aXRsZSkge1xyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEudGl0bGUgPSAnU2VsZXppb25hJztcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5kaWFsb2dEYXRhLm9rQ2FwdGlvbikge1xyXG4gICAgICB0aGlzLmRpYWxvZ0RhdGEub2tDYXB0aW9uID0gJ09LJztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRpYWxvZ0RhdGEuaW5pdGlhbEZpbHRlcikge1xyXG4gICAgICB0aGlzLmRvRmlsdGVyKHRoaXMuZGlhbG9nRGF0YS5pbml0aWFsRmlsdGVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy51bnN1YnNjcmliZS5uZXh0KCk7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTdWJtaXQgc2VsZWN0aW9uXHJcbiAgICovXHJcbiAgb2soKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZG9uZS5lbWl0KHsgc2VsZWN0ZWRJdGVtczogW3RoaXMuY3VycmVudE5vZGVdIH0pO1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbGVjdCAgYSBub2RlXHJcbiAgICogQHBhcmFtIGUgOiB0aGUgZXZlbnRcclxuICAgKiBAcGFyYW0gbm9kZSA6IHRoZVxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBzZWxlY3QoZTogYW55LCBub2RlOiBTZWxlY3RhYmxlTm9kZSkge1xyXG4gICAgaWYgKGUpIGUuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZiAobm9kZSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnROb2RlID0gbm9kZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsZWFyIGZpbHRlclxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBjbGVhckZpbHRlcigpIHtcclxuICAgIHRoaXMuZmlsdGVyVGV4dCA9ICcnO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXBwbHkgZmlsdGVyXHJcbiAgICogQHBhcmFtIHRleHQgOiB0aGUgdGV4dCB0byBmaWx0ZXJcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZG9GaWx0ZXIodGV4dDogc3RyaW5nID0gbnVsbCkge1xyXG4gICAgaWYgKHRleHQpIHRoaXMuZmlsdGVyVGV4dCA9IHRleHQ7XHJcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBbXTtcclxuICAgIHRoaXMuZmlsdGVySW5kZXggPSAtMTtcclxuICAgIGlmICh0aGlzLmZpbHRlclRleHQpIHtcclxuICAgICAgdGhpcy50cmVlQ29udHJvbC5kYXRhTm9kZXMuZm9yRWFjaChuID0+IHtcclxuICAgICAgICBpZiAobi5uYW1lLmluZGV4T2YodGhpcy5maWx0ZXJUZXh0KSAhPSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zLnB1c2gobik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMubmV4dEZpbHRlcmVkKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdvdG8gbmV4dCBmaWx0ZXJlZCBpdGVtXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIG5leHRGaWx0ZXJlZCgpIHtcclxuICAgIGlmICghU3lzdGVtVXRpbHMuaXNCcm93c2VyKCkpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoID09PSAwKSByZXR1cm47XHJcbiAgICB0aGlzLmZpbHRlckluZGV4Kys7XHJcbiAgICBpZiAodGhpcy5maWx0ZXJJbmRleCA9PT0gdGhpcy5maWx0ZXJlZEl0ZW1zLmxlbmd0aCkgdGhpcy5maWx0ZXJJbmRleCA9IDA7XHJcbiAgICBsZXQgbm9kZSA9IHRoaXMuZmlsdGVyZWRJdGVtc1t0aGlzLmZpbHRlckluZGV4XTtcclxuICAgIHRoaXMuY3VycmVudE5vZGUgPSBub2RlO1xyXG4gICAgdGhpcy5leHBhbmQobm9kZSk7XHJcbiAgICBsZXQgZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG5vZGUuaWQpO1xyXG4gICAgaWYgKGVsZW0pIGVsZW0uc2Nyb2xsSW50b1ZpZXcoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4cGFuZCBhIG5vZGUgYW5kIGFsbCBpdHMgcGFyZW50c1xyXG4gICAqIEBwYXJhbSBub2RlIDogdGhlIHNlbGVjdGFibGUgbm9kZSB0byBleHBhbmRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZXhwYW5kKG5vZGU6IFNlbGVjdGFibGVOb2RlKSB7XHJcbiAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZChub2RlKTtcclxuICAgIGxldCBfbiA9IG5vZGUucGFyZW50O1xyXG4gICAgd2hpbGUgKF9uKSB7XHJcbiAgICAgIHRoaXMudHJlZUNvbnRyb2wuZGF0YU5vZGVzLnNvbWUobiA9PiB7XHJcbiAgICAgICAgaWYgKG4uaWQgPT09IF9uLmlkKSB7XHJcbiAgICAgICAgICB0aGlzLnRyZWVDb250cm9sLmV4cGFuZChuKTtcclxuICAgICAgICAgIF9uID0gX24ucGFyZW50O1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8aDIgbWF0LWRpYWxvZy10aXRsZSAoa2V5dXAuQXJyb3dEb3duKT1cIm5leHRGaWx0ZXJlZCgpXCI+e3tkaWFsb2dEYXRhLnRpdGxlfX08L2gyPlxyXG48ZGl2IHN0eWxlPVwicGFkZGluZzogMCAyNHB4XCI+XHJcbiAgQGlmIChkaWFsb2dEYXRhLmRlc2NyaXB0aW9uKSB7XHJcbiAgPGRpdiBbaW5uZXJIdG1sXT1cImRpYWxvZ0RhdGEuZGVzY3JpcHRpb24gfCBzYWZlSHRtbFwiPjwvZGl2PlxyXG4gIH1cclxuICA8ZGl2IHN0eWxlPVwicGFkZGluZy1ib3R0b206IDEwcHg7XCI+XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCIgZnhGaWxsPlxyXG4gICAgICA8ZGl2IGZ4RmxleD1cIjUwXCI+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIHN0eWxlPVwid2lkdGg6MTAwJVwiIFthcHBlYXJhbmNlXT1cImRpYWxvZ0RhdGEuYXBwZWFyYW5jZVwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIiA+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPkNlcmNhLi4uPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjZGtGb2N1c0luaXRpYWwgKGtleXVwKT1cImRvRmlsdGVyKClcIiBtYXRJbnB1dCB0aXRsZT1cIkRpZ2l0YSBpbCB0ZXN0bydcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImZpbHRlclRleHRcIj5cclxuICAgICAgICAgIEBpZiAoZmlsdGVyVGV4dCkge1xyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIiBtYXRTdWZmaXggbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJDbGVhclwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJjbGVhckZpbHRlcigpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgQGlmIChmaWx0ZXJlZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgPGRpdiBmeEZsZXg9XCI1MHB4XCIgZnhMYXlvdXRBbGlnbj1cImVuZFwiPlxyXG4gICAgICAgIDxkaXYgZnhGbGV4QWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInNtYWxsXCI+e3tmaWx0ZXJJbmRleCArIDF9fSAvIHt7ZmlsdGVyZWRJdGVtcy5sZW5ndGh9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgfVxyXG4gICAgICA8ZGl2IGZ4RmxleD1cIjUwXCIgZnhMYXlvdXRBbGlnbj1cImVuZFwiIHN0eWxlPVwid2hpdGUtc3BhY2U6bm93cmFwXCI+XHJcbiAgICAgICAgPGRpdiBmeEZsZXhBbGlnbj1cImNlbnRlclwiPlxyXG4gICAgICAgICAgQGlmIChmaWx0ZXJlZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJjZW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJuZXh0RmlsdGVyZWQoKVwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIlZhaSBhbCBwcm9zc2ltb1wiIG1hdFRvb2x0aXA9XCJWYWkgYWwgcHJvc3NpbW9cIj5hcnJvd19kb3dud2FyZDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJjZW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJ0cmVlQ29udHJvbC5jb2xsYXBzZUFsbCgpXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBhcmlhLWxhYmVsPVwiQ29tcHJpbWkgdHV0dG9cIiBtYXRUb29sdGlwPVwiQ29tcHJpbWkgdHV0dG9cIj51bmZvbGRfbGVzczwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gZnhGbGV4QWxpZ249XCJjZW50ZXJcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJ0cmVlQ29udHJvbC5leHBhbmRBbGwoKVwiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gYXJpYS1sYWJlbD1cIkVzcGFuZGkgdHV0dG9cIiBtYXRUb29sdGlwPVwiRXNwYW5kaSB0dXR0b1wiPnVuZm9sZF9tb3JlPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4RmlsbD5cclxuICAgIDxtYXQtdHJlZSBbZGF0YVNvdXJjZV09XCJ0cmVlRGF0YVwiIFt0cmVlQ29udHJvbF09XCJ0cmVlQ29udHJvbFwiPlxyXG4gICAgICA8bWF0LXRyZWUtbm9kZSBbaWRdPVwibm9kZS5pZFwiICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlXCIgbWF0VHJlZU5vZGVUb2dnbGUgbWF0VHJlZU5vZGVQYWRkaW5nXHJcbiAgICAgICAgW21hdFRyZWVOb2RlUGFkZGluZ0luZGVudF09XCIyMFwiIGNsYXNzPVwidHJlZS1ub2RlIHRyZWUtbm9kZS1zaW1wbGVcIiAoY2xpY2spPVwic2VsZWN0KCRldmVudCwgbm9kZSk7XCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J3RyZWUtbm9kZS1hY3RpdmF0ZWQnOiBjdXJyZW50Tm9kZSAmJiBjdXJyZW50Tm9kZS5pZCA9PT0gbm9kZS5pZH1cIiA+XHJcbiAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiNXB4XCIgZnhGaWxsIGNsYXNzPVwic21hbGxcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBkaXNhYmxlZCBjbGFzcz1cInNtYWxsLWljb24tYnV0dG9uXCI+PC9idXR0b24+XHJcbiAgICAgICAgICA8ZGl2IGZ4RmxleD1cIipcIiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIGNsYXNzPVwidXBwZXJjYXNlIFwiPlxyXG4gICAgICAgICAgICB7e25vZGUubmFtZX19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgZnhGbGV4PVwiMzBweFwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgICAgIEBpZiAobm9kZS5jb3VudCA+IDApIHtcclxuICAgICAgICAgICAgPHNwYW4gZnhMYXlvdXRBbGlnbj1cImVuZFwiPih7e25vZGUuY291bnR9fSk8L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21hdC10cmVlLW5vZGU+XHJcblxyXG4gICAgICA8bWF0LXRyZWUtbm9kZSBbaWRdPVwibm9kZS5pZFwiICptYXRUcmVlTm9kZURlZj1cImxldCBub2RlO3doZW46IGhhc0NoaWxkXCIgbWF0VHJlZU5vZGVQYWRkaW5nXHJcbiAgICAgICAgW21hdFRyZWVOb2RlUGFkZGluZ0luZGVudF09XCIyMFwiIGNsYXNzPVwidHJlZS1ub2RlIHRyZWUtbm9kZS1zaW1wbGVcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsndHJlZS1ub2RlLWFjdGl2YXRlZCc6IGN1cnJlbnROb2RlICYmIGN1cnJlbnROb2RlLmlkID09PSBub2RlLmlkIH1cIiAoY2xpY2spPVwic2VsZWN0KCRldmVudCwgbm9kZSk7XCI+XHJcbiAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiNXB4XCIgZnhGaWxsIGNsYXNzPVwic21hbGxcIj5cclxuICAgICAgICAgIDxkaXYgZnhGbGV4PVwiMzBweFwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBtYXRUcmVlTm9kZVRvZ2dsZSBbYXR0ci5hcmlhLWxhYmVsXT1cIidBcHJpL2NoaXVkaSAnICsgbm9kZS5uYW1lXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInNtYWxsLWljb24tYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPlxyXG4gICAgICAgICAgICAgICAge3t0cmVlQ29udHJvbC5pc0V4cGFuZGVkKG5vZGUpID8gJ2V4cGFuZF9tb3JlJyA6ICdjaGV2cm9uX3JpZ2h0J319XHJcbiAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgZnhGbGV4PVwiKlwiIGZ4RmxleEFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ1cHBlcmNhc2UgdHJ1bmNhdGVkXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAge3tub2RlLm5hbWV9fVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBmeEZsZXg9XCIzMHB4XCIgZnhGbGV4QWxpZ249XCJjZW50ZXJcIj5cclxuICAgICAgICAgICAgQGlmIChub2RlLmNvdW50ID4gMCkge1xyXG4gICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJlbmRcIj4oe3tub2RlLmNvdW50fX0pPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21hdC10cmVlLW5vZGU+XHJcbiAgICA8L21hdC10cmVlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJlbmRcIiBmeEZpbGw+XHJcbiAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwib2soKVwiIFxyXG4gICAgICBbZGlzYWJsZWRdPVwiIWN1cnJlbnROb2RlXCI+e3tkaWFsb2dEYXRhLm9rQ2FwdGlvbn19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZSBjZGtGb2N1c0luaXRpYWwgXHJcbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiPkFubnVsbGE8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+Il19
|