@yuuvis/app-drive 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/actions/updateContent/update.content.action.mjs +5 -2
- package/esm2022/lib/components/sort/sort.component.mjs +7 -6
- package/esm2022/lib/pages/files/files.component.mjs +8 -3
- package/esm2022/lib/pages/object/object.component.mjs +14 -6
- package/fesm2022/yuuvis-app-drive.mjs +49 -34
- package/fesm2022/yuuvis-app-drive.mjs.map +1 -1
- package/lib/assets/i18n/de.json +100 -0
- package/lib/assets/i18n/en.json +100 -0
- package/lib/assets/yuvManifest.json +15 -0
- package/lib/pages/object/object.component.d.ts +2 -1
- package/package.json +2 -2
|
@@ -2,6 +2,7 @@ import { DOCUMENT } from '@angular/common';
|
|
|
2
2
|
import { inject } from '@angular/core';
|
|
3
3
|
import { Router } from '@angular/router';
|
|
4
4
|
import { TranslateService } from '@ngx-translate/core';
|
|
5
|
+
import { RetentionService } from '@yuuvis/client-core';
|
|
5
6
|
import { AbstractContextAction, SelectionRange } from '@yuuvis/client-framework/actions';
|
|
6
7
|
import { finalize, of } from 'rxjs';
|
|
7
8
|
import { DriveService } from '../../services';
|
|
@@ -12,6 +13,7 @@ export class UpdateContentAction extends AbstractContextAction {
|
|
|
12
13
|
this.#router = inject(Router);
|
|
13
14
|
this.#drive = inject(DriveService);
|
|
14
15
|
this.#document = inject(DOCUMENT);
|
|
16
|
+
this.#retention = inject(RetentionService);
|
|
15
17
|
this.id = 'app.drive.action.new.content.version';
|
|
16
18
|
this.label = this.translate.instant('yuv.app.drive.action.new.version');
|
|
17
19
|
this.description = this.translate.instant('yuv.app.drive.action.new.version.description');
|
|
@@ -24,10 +26,11 @@ export class UpdateContentAction extends AbstractContextAction {
|
|
|
24
26
|
#router;
|
|
25
27
|
#drive;
|
|
26
28
|
#document;
|
|
29
|
+
#retention;
|
|
27
30
|
isExecutable(selection) {
|
|
28
31
|
const selected = selection[0];
|
|
29
32
|
const canWrite = !!selected?.permissions?.writeContent;
|
|
30
|
-
return of(canWrite && selection.length === 1 && !selected.isFolder);
|
|
33
|
+
return of(canWrite && selection.length === 1 && !selected.isFolder && !this.#retention.getRetentionState(selected).underRetention);
|
|
31
34
|
}
|
|
32
35
|
run(selection) {
|
|
33
36
|
if (!selection[0].isFolder) {
|
|
@@ -49,4 +52,4 @@ export class UpdateContentAction extends AbstractContextAction {
|
|
|
49
52
|
return of(true);
|
|
50
53
|
}
|
|
51
54
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmNvbnRlbnQuYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHBzL2RyaXZlL3NyYy9saWIvYWN0aW9ucy91cGRhdGVDb250ZW50L3VwZGF0ZS5jb250ZW50LmFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFhLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUF5QixjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoSCxPQUFPLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHFCQUFxQjtJQUE5RDs7UUFDVyxjQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDckMsWUFBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixXQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlCLGNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0IsZUFBVSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRS9DLE9BQUUsR0FBRyxzQ0FBc0MsQ0FBQztRQUM1QyxVQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUNuRSxnQkFBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7UUFDckYsYUFBUSxHQUFHLENBQUMsQ0FBQztRQUNiLFNBQUksR0FDRixxWkFBcVosQ0FBQztRQUV4WixVQUFLLEdBQUcsUUFBUSxDQUFDO1FBQ2pCLFVBQUssR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDO1FBQ3JDLGFBQVEsR0FBa0IsRUFBRSxDQUFDO0lBNEIvQixDQUFDO0lBMUNVLE9BQU8sQ0FBa0I7SUFDekIsTUFBTSxDQUF3QjtJQUM5QixTQUFTLENBQW9CO0lBQzdCLFVBQVUsQ0FBNEI7SUFhL0MsWUFBWSxDQUFDLFNBQXNCO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxZQUFZLENBQUM7UUFDdkQsT0FBTyxFQUFFLENBQUMsUUFBUSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDckksQ0FBQztJQUVELEdBQUcsQ0FBQyxTQUFzQjtRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzNCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hELFNBQVMsQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1lBQ3hCLFNBQVMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBRTNCLFNBQVMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzFCLE1BQU0sSUFBSSxHQUFJLENBQUMsQ0FBQyxNQUEyQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2RCxJQUFJO29CQUNGLElBQUksQ0FBQyxNQUFNO3lCQUNSLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQzt5QkFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO3lCQUNoRCxTQUFTLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUM7WUFDRixTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEIsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBEbXNPYmplY3QsIFJldGVudGlvblNlcnZpY2UgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udGV4dEFjdGlvbiwgQWN0aW9uLCBBY3Rpb25TdXBwb3J0LCBTZWxlY3Rpb25SYW5nZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9hY3Rpb25zJztcbmltcG9ydCB7IGZpbmFsaXplLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRHJpdmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5leHBvcnQgY2xhc3MgVXBkYXRlQ29udGVudEFjdGlvbiBleHRlbmRzIEFic3RyYWN0Q29udGV4dEFjdGlvbiBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI3JvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICByZWFkb25seSAjZHJpdmUgPSBpbmplY3QoRHJpdmVTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgcmVhZG9ubHkgI3JldGVudGlvbiA9IGluamVjdChSZXRlbnRpb25TZXJ2aWNlKTtcblxuICBpZCA9ICdhcHAuZHJpdmUuYWN0aW9uLm5ldy5jb250ZW50LnZlcnNpb24nO1xuICBsYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hcHAuZHJpdmUuYWN0aW9uLm5ldy52ZXJzaW9uJyk7XG4gIGRlc2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmFwcC5kcml2ZS5hY3Rpb24ubmV3LnZlcnNpb24uZGVzY3JpcHRpb24nKTtcbiAgcHJpb3JpdHkgPSAyO1xuICBpY29uID1cbiAgICAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgZmlsbD1cIiM1ZjYzNjhcIiB2aWV3Qm94PVwiMCAtOTYwIDk2MCA5NjBcIj48cGF0aCBkPVwiTTUwMC01MjBoODB2LTgwaDgwdi04MGgtODB2LTgwaC04MHY4MGgtODB2ODBoODB2ODBabS04MCAxNjBoMjQwdi04MEg0MjB2ODBaTTMyMC0yMDBxLTMzIDAtNTYuNS0yMy41VDI0MC0yODB2LTU2MHEwLTMzIDIzLjUtNTYuNVQzMjAtOTIwaDI4MGwyNDAgMjQwdjQwMHEwIDMzLTIzLjUgNTYuNVQ3NjAtMjAwSDMyMFptMC04MGg0NDB2LTM2MEw1NjAtODQwSDMyMHY1NjBaTTE2MC00MHEtMzMgMC01Ni41LTIzLjVUODAtMTIwdi01NjBoODB2NTYwaDQ0MHY4MEgxNjBabTE2MC0yNDB2LTU2MCA1NjBaXCIvPjwvc3ZnPic7XG5cbiAgZ3JvdXAgPSAnY29tbW9uJztcbiAgcmFuZ2UgPSBTZWxlY3Rpb25SYW5nZS5TSU5HTEVfU0VMRUNUO1xuICBzdXBwb3J0czogQWN0aW9uU3VwcG9ydCA9IHt9O1xuXG4gIGlzRXhlY3V0YWJsZShzZWxlY3Rpb246IERtc09iamVjdFtdKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBzZWxlY3Rpb25bMF07XG4gICAgY29uc3QgY2FuV3JpdGUgPSAhIXNlbGVjdGVkPy5wZXJtaXNzaW9ucz8ud3JpdGVDb250ZW50O1xuICAgIHJldHVybiBvZihjYW5Xcml0ZSAmJiBzZWxlY3Rpb24ubGVuZ3RoID09PSAxICYmICFzZWxlY3RlZC5pc0ZvbGRlciAmJiAhdGhpcy4jcmV0ZW50aW9uLmdldFJldGVudGlvblN0YXRlKHNlbGVjdGVkKS51bmRlclJldGVudGlvbik7XG4gIH1cblxuICBydW4oc2VsZWN0aW9uOiBEbXNPYmplY3RbXSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGlmICghc2VsZWN0aW9uWzBdLmlzRm9sZGVyKSB7XG4gICAgICBjb25zdCBmaWxlSW5wdXQgPSB0aGlzLiNkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xuICAgICAgZmlsZUlucHV0LnR5cGUgPSAnZmlsZSc7XG4gICAgICBmaWxlSW5wdXQubXVsdGlwbGUgPSBmYWxzZTtcblxuICAgICAgZmlsZUlucHV0Lm9uY2hhbmdlID0gKGUpID0+IHtcbiAgICAgICAgdGhpcy4jZHJpdmUuc2V0QnVzeSh0cnVlKTtcbiAgICAgICAgY29uc3QgZmlsZSA9IChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5maWxlcz8uWzBdO1xuICAgICAgICBmaWxlICYmXG4gICAgICAgICAgdGhpcy4jZHJpdmVcbiAgICAgICAgICAgIC51cGxvYWRDb250ZW50KHNlbGVjdGlvblswXS5pZCwgZmlsZSlcbiAgICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuI2RyaXZlLnNldEJ1c3koZmFsc2UpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgIH07XG4gICAgICBmaWxlSW5wdXQuY2xpY2soKTtcbiAgICAgIGZpbGVJbnB1dC5yZW1vdmUoKTtcbiAgICB9XG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG59XG4iXX0=
|
|
@@ -3,7 +3,7 @@ import { Directionality } from '@angular/cdk/bidi';
|
|
|
3
3
|
import { NgClass } from '@angular/common';
|
|
4
4
|
import { ChangeDetectionStrategy, Component, computed, effect, HostListener, inject, output, signal, viewChildren } from '@angular/core';
|
|
5
5
|
import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
-
import { BaseObjectTypeField, ContentStreamField, SystemService } from '@yuuvis/client-core';
|
|
6
|
+
import { BaseObjectTypeField, ContentStreamField, SystemService, TranslateModule } from '@yuuvis/client-core';
|
|
7
7
|
import { ListItemDirective } from '@yuuvis/client-framework/list';
|
|
8
8
|
import { YvcIconModule } from '@yuuvis/components/icon';
|
|
9
9
|
import { APP_DRIVE_ICONS } from '../../drive.icons';
|
|
@@ -11,6 +11,7 @@ import { FS_PROPERTIES } from '../../drive.schema';
|
|
|
11
11
|
import { DriveService } from '../../services';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
import * as i1 from "@yuuvis/components/icon";
|
|
14
|
+
import * as i2 from "@yuuvis/client-core";
|
|
14
15
|
export class SortComponent {
|
|
15
16
|
constructor() {
|
|
16
17
|
this.#drive = inject(DriveService);
|
|
@@ -88,7 +89,7 @@ export class SortComponent {
|
|
|
88
89
|
}
|
|
89
90
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SortComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
90
91
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SortComponent, isStandalone: true, selector: "ymd-sort", outputs: { sortChanged: "sortChanged" }, host: { listeners: { "blur": "onBlur()", "keydown": "onKeydown($event)" } }, viewQueries: [{ propertyName: "items", predicate: ListItemDirective, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
91
|
-
<button popovertarget="sort" class="sort-button">
|
|
92
|
+
<button popovertarget="sort" title="{{'yuv.app.drive.sort.tooltip'| translate}}" class="sort-button">
|
|
92
93
|
<yvc-icon [svg]="sortIcon" />
|
|
93
94
|
</button>
|
|
94
95
|
|
|
@@ -114,12 +115,12 @@ export class SortComponent {
|
|
|
114
115
|
}
|
|
115
116
|
</ol>
|
|
116
117
|
</dialog>
|
|
117
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";.sort-button{padding:calc(var(--app-pane-padding) / 4);anchor-name:--sort-button}dialog::backdrop{background-color:#ff69b4;display:none}.sort-menu{display:none;background-color:var(--panel-background);color:var(--text-color-body);border-color:var(--panel-background);position:absolute;position-anchor:--sort-button;position-area:block-end center;margin:0;inset:auto;bottom:anchor(bottom);left:anchor(right);opacity:0;transition:opacity .3s,display .3s,overlay .3s;transition-behavior:allow-discrete;position-try-fallbacks:--left;margin-left:.25rem;box-shadow:0 1px 12px #0000001a;border:1px solid var(--panel-divider-color)}.sort-menu::backdrop{background-color:#ff69b4;display:none;-webkit-backdrop-filter:none;backdrop-filter:none}.sort-menu:popover-open{display:grid;opacity:1}@starting-style{.sort-menu:popover-open{display:grid;opacity:0}}@position-try --left{inset:auto;top:anchor(bottom);right:anchor(right)}.sort-group{list-style-type:none;padding-inline:0;margin-block:0;padding:.5rem}.sort-group [yuvListItem]{padding-left:calc(var(--font-body) + 2px);line-height:1.5em;display:flex;align-items:center;text-decoration:none;white-space:nowrap;border-radius:2px;color:var(--text-color-caption)}.sort-group [yuvListItem][aria-selected=true]:before{content:\"\\2022\";position:absolute;left:var(--font-body);font-size:var(--font-title)}.sort-group [yuvListItem][aria-current=true],.sort-group [yuvListItem]:hover{cursor:pointer;color:var(--text-color-body);background-color:var(--item-focus-background-color);outline:2px solid var(--item-focus-background-color)}.sort-group [yuvListItem][aria-current=true]{outline-color:var(--text-color-caption)}.sort-group [yuvListItem] .label{margin-right:.5rem;padding:.1rem 0}.sort-group .divider{margin:.5rem 0;border-top:1px solid var(--panel-divider-color)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "directive", type: ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }, { kind: "ngmodule", type: ReactiveFormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
118
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";.sort-button{padding:calc(var(--app-pane-padding) / 4);anchor-name:--sort-button}dialog::backdrop{background-color:#ff69b4;display:none}.sort-menu{display:none;background-color:var(--panel-background);color:var(--text-color-body);border-color:var(--panel-background);position:absolute;position-anchor:--sort-button;position-area:block-end center;margin:0;inset:auto;bottom:anchor(bottom);left:anchor(right);opacity:0;transition:opacity .3s,display .3s,overlay .3s;transition-behavior:allow-discrete;position-try-fallbacks:--left;margin-left:.25rem;box-shadow:0 1px 12px #0000001a;border:1px solid var(--panel-divider-color)}.sort-menu::backdrop{background-color:#ff69b4;display:none;-webkit-backdrop-filter:none;backdrop-filter:none}.sort-menu:popover-open{display:grid;opacity:1}@starting-style{.sort-menu:popover-open{display:grid;opacity:0}}@position-try --left{inset:auto;top:anchor(bottom);right:anchor(right)}.sort-group{list-style-type:none;padding-inline:0;margin-block:0;padding:.5rem}.sort-group [yuvListItem]{padding-left:calc(var(--font-body) + 2px);line-height:1.5em;display:flex;align-items:center;text-decoration:none;white-space:nowrap;border-radius:2px;color:var(--text-color-caption)}.sort-group [yuvListItem][aria-selected=true]:before{content:\"\\2022\";position:absolute;left:var(--font-body);font-size:var(--font-title)}.sort-group [yuvListItem][aria-current=true],.sort-group [yuvListItem]:hover{cursor:pointer;color:var(--text-color-body);background-color:var(--item-focus-background-color);outline:2px solid var(--item-focus-background-color)}.sort-group [yuvListItem][aria-current=true]{outline-color:var(--text-color-caption)}.sort-group [yuvListItem] .label{margin-right:.5rem;padding:.1rem 0}.sort-group .divider{margin:.5rem 0;border-top:1px solid var(--panel-divider-color)}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: YvcIconModule }, { kind: "component", type: i1.Icon, selector: "yvc-icon", inputs: ["label", "svg", "svgSrc"] }, { kind: "directive", type: ListItemDirective, selector: "[yuvListItem]", inputs: ["disabled", "active", "selected"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
118
119
|
}
|
|
119
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SortComponent, decorators: [{
|
|
120
121
|
type: Component,
|
|
121
|
-
args: [{ selector: 'ymd-sort', standalone: true, imports: [NgClass, YvcIconModule, ListItemDirective, ReactiveFormsModule], template: `
|
|
122
|
-
<button popovertarget="sort" class="sort-button">
|
|
122
|
+
args: [{ selector: 'ymd-sort', standalone: true, imports: [NgClass, YvcIconModule, ListItemDirective, ReactiveFormsModule, TranslateModule], template: `
|
|
123
|
+
<button popovertarget="sort" title="{{'yuv.app.drive.sort.tooltip'| translate}}" class="sort-button">
|
|
123
124
|
<yvc-icon [svg]="sortIcon" />
|
|
124
125
|
</button>
|
|
125
126
|
|
|
@@ -153,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
153
154
|
type: HostListener,
|
|
154
155
|
args: ['keydown', ['$event']]
|
|
155
156
|
}] } });
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcHMvZHJpdmUvc3JjL2xpYi9jb21wb25lbnRzL3NvcnQvc29ydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSixPQUFPLEVBQUUsV0FBVyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBMEM5QyxNQUFNLE9BQU8sYUFBYTtJQW5DMUI7UUFvQ1csV0FBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5QixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2QyxRQUFHLEdBQUcsTUFB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Q0FBQyxHQUFHLE1BQU0sRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ1osS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDcEQsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsSUFBSSxFQUFFLE1BQU07YUFDYixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7K0dBcEZVLGFBQWE7bUdBQWIsYUFBYSxvTkEwQkgsaUJBQWlCLGdFQXpENUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVCw0MkRBNUJTLE9BQU8sbUZBQUUsYUFBYSwrSEFBRSxpQkFBaUIscUdBQUUsbUJBQW1COzs0RkFnQzdELGFBQWE7a0JBbkN6QixTQUFTOytCQUNFLFVBQVUsY0FDUixJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLFlBQy9EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQsbUJBRWdCLHVCQUF1QixDQUFDLE1BQU07OEJBUy9DLE1BQU07c0JBREwsWUFBWTt1QkFBQyxNQUFNO2dCQU1wQixTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgSG9zdExpc3RlbmVyLCBpbmplY3QsIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJhc2VPYmplY3RUeXBlRmllbGQsIENvbnRlbnRTdHJlYW1GaWVsZCwgU3lzdGVtU2VydmljZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgTGlzdEl0ZW1EaXJlY3RpdmUgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvbGlzdCc7XG5pbXBvcnQgeyBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgQVBQX0RSSVZFX0lDT05TIH0gZnJvbSAnLi4vLi4vZHJpdmUuaWNvbnMnO1xuaW1wb3J0IHsgRlNfUFJPUEVSVElFUyB9IGZyb20gJy4uLy4uL2RyaXZlLnNjaGVtYSc7XG5pbXBvcnQgeyBEcml2ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbmludGVyZmFjZSBTb3J0T3B0aW9uIHtcbiAgbGFiZWw6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgdHlwZTogJ3NvcnQnIHwgJ29yZGVyJztcbn1cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ltZC1zb3J0JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIFl2Y0ljb25Nb2R1bGUsIExpc3RJdGVtRGlyZWN0aXZlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YnV0dG9uIHBvcG92ZXJ0YXJnZXQ9XCJzb3J0XCIgY2xhc3M9XCJzb3J0LWJ1dHRvblwiPlxuICAgICAgPHl2Yy1pY29uIFtzdmddPVwic29ydEljb25cIiAvPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpYWxvZyBwb3BvdmVyIGlkPVwic29ydFwiIGNsYXNzPVwic29ydC1tZW51XCI+XG4gICAgICA8b2wgY2xhc3M9XCJzb3J0LWdyb3VwXCIgdGFiaW5kZXg9XCIwXCI+XG4gICAgICAgIEBmb3IgKG9wdGlvbiBvZiBzb3J0RmllbGRzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIEBsZXQgc2VsZWN0ZWQgPSBzb3J0Rm9ybS52YWx1ZVtvcHRpb24udHlwZV0gPT09IG9wdGlvbi52YWx1ZTtcbiAgICAgICAgICA8bGlcbiAgICAgICAgICAgIGNsYXNzPVwic29ydC1pdGVtXCJcbiAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJzZWxlY3RlZFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBzZWxlY3RlZCwgJ3NvcnQtZ3JvdXAtaXRlbSc6IG9wdGlvbi50eXBlID09PSAnc29ydCcsICdvcmRlci1ncm91cC1pdGVtJzogb3B0aW9uLnR5cGUgPT09ICdvcmRlcicgfVwiXG4gICAgICAgICAgICB5dXZMaXN0SXRlbVxuICAgICAgICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RTb3J0KG9wdGlvbi50eXBlLCBvcHRpb24udmFsdWUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIEBpZiAoc29ydEZpZWxkcygpLmxlbmd0aCAtIDMgPT09ICRpbmRleCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDwvb2w+XG4gICAgPC9kaWFsb2c+XG4gIGAsXG4gIHN0eWxlVXJsczogW2AuL3NvcnQuY29tcG9uZW50LnNjc3NgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU29ydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJlYWRvbmx5ICNkcml2ZSA9IGluamVjdChEcml2ZVNlcnZpY2UpO1xuICByZWFkb25seSAjc3lzdGVtU2VydmljZSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2ZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcbiAgcmVhZG9ubHkgI2RpciA9IGluamVjdChEaXJlY3Rpb25hbGl0eSk7XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLiNrZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oLTEpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGV2ZW50LmNvZGUgPT09ICdFc2NhcGUnICYmIHRoaXMuI2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSgtMSk7XG4gICAgZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQgJiYgdGhpcy4ja2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKC0xKTtcblxuICAgIGlmIChldmVudC5jb2RlID09PSAnU3BhY2UnIHx8IGV2ZW50LmNvZGUgPT09ICdFbnRlcicpIHtcbiAgICAgIGNvbnN0IGFpaTogbnVtYmVyID0gdGhpcy4ja2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXggIT09IG51bGwgPyB0aGlzLiNrZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleCA6IC0xO1xuICAgICAgYWlpID49IDAgJiYgdGhpcy5zZWxlY3RTb3J0QnlJbmRleChhaWkpO1xuICAgIH0gZWxzZSB0aGlzLiNrZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICB9XG5cbiAgI2tleU1hbmFnZXIhOiBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxMaXN0SXRlbURpcmVjdGl2ZT47XG5cbiAgc29ydEljb24gPSBBUFBfRFJJVkVfSUNPTlMuc29ydDtcblxuICBpdGVtcyA9IHZpZXdDaGlsZHJlbihMaXN0SXRlbURpcmVjdGl2ZSk7XG4gICNpdGVtc0VmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaSA9IHRoaXMuaXRlbXMoKTtcbiAgICBpZiAodGhpcy4ja2V5TWFuYWdlcikgdGhpcy4ja2V5TWFuYWdlci5kZXN0cm95KCk7XG4gICAgdGhpcy4ja2V5TWFuYWdlciA9IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcihpKS53aXRoV3JhcCgpLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy4jZGlyLnZhbHVlKTtcbiAgfSk7XG5cbiAgc29ydE9wdGlvbnMgPSBzaWduYWwodGhpcy4jaW5pdFNvcnRPcHRpb25zKCkpO1xuICBvcmRlck9wdGlvbnMgPSBzaWduYWw8U29ydE9wdGlvbltdPihbXG4gICAgeyBsYWJlbDogJ0FzY2VuZGluZycsIHZhbHVlOiAnYXNjJywgdHlwZTogJ29yZGVyJyB9LFxuICAgIHsgbGFiZWw6ICdEZXNjZW5kaW5nJywgdmFsdWU6ICdkZXNjJywgdHlwZTogJ29yZGVyJyB9XG4gIF0pO1xuICBzb3J0RmllbGRzID0gY29tcHV0ZWQoKCkgPT4gWy4uLnRoaXMuc29ydE9wdGlvbnMoKSwgLi4udGhpcy5vcmRlck9wdGlvbnMoKV0pO1xuXG4gIHNvcnRGb3JtITogRm9ybUdyb3VwOyAvLyBSZWFjdGl2ZSBGb3JtXG5cbiAgc29ydENoYW5nZWQgPSBvdXRwdXQ8eyBzb3J0OiBzdHJpbmc7IG9yZGVyOiBzdHJpbmcgfT4oKTtcblxuICBzZWxlY3RTb3J0QnlJbmRleChpZHg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0U29ydCh0aGlzLnNvcnRGaWVsZHMoKVtpZHhdLnR5cGUsIHRoaXMuc29ydEZpZWxkcygpW2lkeF0udmFsdWUpO1xuICB9XG5cbiAgc2VsZWN0U29ydCh0eXBlOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNvcnRGb3JtLmdldCgnc29ydCcpPy52YWx1ZSA9PT0gdmFsdWUgPyB0aGlzLnNvcnRGb3JtLmdldCgnc29ydCcpPy5zZXRWYWx1ZShudWxsKSA6IHRoaXMuc29ydEZvcm0uZ2V0KHR5cGUpPy5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0Rm9ybSA9IHRoaXMuI2ZiLm5vbk51bGxhYmxlLmdyb3VwKHtcbiAgICAgIHNvcnQ6IFtdLFxuICAgICAgb3JkZXI6IFt0aGlzLm9yZGVyT3B0aW9ucygpWzBdLnZhbHVlXSAvLyBEZWZhdWx0OiBBc2NlbmRpbmdcbiAgICB9KTtcblxuICAgIC8vIFRPRE86IENoZWNrIGlmIHRoaXMgaXMgbmVjZXNzYXJ5LiBJdCBicmVha3Mgc3RvcmVkIHF1ZXJpZXMgZmlyc3QgbG9hZCBieSByZXNldHRpbmcgc29ydFxuICAgIC8vIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UoKTtcbiAgfVxuXG4gIC8vIEVtaXQgdGhlIGZvcm0gdmFsdWVzIHdoZW4gY2hhbmdlcyBvY2N1clxuICBvblNlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICBjb25zdCB7IHNvcnQsIG9yZGVyIH0gPSB0aGlzLnNvcnRGb3JtLnZhbHVlO1xuICAgIHRoaXMuI2RyaXZlLnNldFNvcnQoc29ydCwgb3JkZXIpO1xuICAgIHRoaXMuc29ydENoYW5nZWQuZW1pdCh7IHNvcnQsIG9yZGVyIH0pO1xuICB9XG5cbiAgI2luaXRTb3J0T3B0aW9ucygpIHtcbiAgICBjb25zdCBiYXNlRGF0YTogU29ydE9wdGlvbltdID0gW107XG4gICAgY29uc3QgZmllbGRzID0gW0ZTX1BST1BFUlRJRVMubmFtZSwgQmFzZU9iamVjdFR5cGVGaWVsZC5DUkVBVElPTl9EQVRFLCBCYXNlT2JqZWN0VHlwZUZpZWxkLk1PRElGSUNBVElPTl9EQVRFXTtcbiAgICBjb25zdCBjb250ZW50RmllbGRzID0gW0NvbnRlbnRTdHJlYW1GaWVsZC5MRU5HVEgsIENvbnRlbnRTdHJlYW1GaWVsZC5NSU1FX1RZUEVdO1xuXG4gICAgWy4uLmZpZWxkcywgLi4uY29udGVudEZpZWxkc10uZm9yRWFjaCgoZikgPT4ge1xuICAgICAgYmFzZURhdGEucHVzaCh7XG4gICAgICAgIGxhYmVsOiB0aGlzLiNzeXN0ZW1TZXJ2aWNlLmdldExvY2FsaXplZExhYmVsKGYpIHx8IGYsXG4gICAgICAgIHZhbHVlOiBmLFxuICAgICAgICB0eXBlOiAnc29ydCdcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJhc2VEYXRhO1xuICB9XG59XG4iXX0=
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwcHMvZHJpdmUvc3JjL2xpYi9jb21wb25lbnRzL3NvcnQvc29ydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSixPQUFPLEVBQUUsV0FBVyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUEwQzlDLE1BQU0sT0FBTyxhQUFhO0lBbkMxQjtRQW9DVyxXQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlCLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZDLFFB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Q0FBQztRQUVoRixDQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDMUMsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNwRCxLQUFLLEVBQUUsQ0FBQztnQkFDUixJQUFJLEVBQUUsTUFBTTthQUNiLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzsrR0FwRlUsYUFBYTttR0FBYixhQUFhLG9OQTBCSCxpQkFBaUIsZ0VBekQ1Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJULDQyREE1QlMsT0FBTyxtRkFBRSxhQUFhLCtIQUFFLGlCQUFpQixxR0FBRSxtQkFBbUIsOEJBQUUsZUFBZTs7NEZBZ0M5RSxhQUFhO2tCQW5DekIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLENBQUMsWUFDaEY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTTs4QkFTL0MsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE1BQU07Z0JBTXBCLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBIb3N0TGlzdGVuZXIsIGluamVjdCwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCwgdmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZU9iamVjdFR5cGVGaWVsZCwgQ29udGVudFN0cmVhbUZpZWxkLCBTeXN0ZW1TZXJ2aWNlLCBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IExpc3RJdGVtRGlyZWN0aXZlIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2xpc3QnO1xuaW1wb3J0IHsgWXZjSWNvbk1vZHVsZSB9IGZyb20gJ0B5dXV2aXMvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IEFQUF9EUklWRV9JQ09OUyB9IGZyb20gJy4uLy4uL2RyaXZlLmljb25zJztcbmltcG9ydCB7IEZTX1BST1BFUlRJRVMgfSBmcm9tICcuLi8uLi9kcml2ZS5zY2hlbWEnO1xuaW1wb3J0IHsgRHJpdmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5pbnRlcmZhY2UgU29ydE9wdGlvbiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHR5cGU6ICdzb3J0JyB8ICdvcmRlcic7XG59XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd5bWQtc29ydCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBZdmNJY29uTW9kdWxlLCBMaXN0SXRlbURpcmVjdGl2ZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8YnV0dG9uIHBvcG92ZXJ0YXJnZXQ9XCJzb3J0XCIgdGl0bGU9XCJ7eyd5dXYuYXBwLmRyaXZlLnNvcnQudG9vbHRpcCd8IHRyYW5zbGF0ZX19XCIgY2xhc3M9XCJzb3J0LWJ1dHRvblwiPlxuICAgICAgPHl2Yy1pY29uIFtzdmddPVwic29ydEljb25cIiAvPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpYWxvZyBwb3BvdmVyIGlkPVwic29ydFwiIGNsYXNzPVwic29ydC1tZW51XCI+XG4gICAgICA8b2wgY2xhc3M9XCJzb3J0LWdyb3VwXCIgdGFiaW5kZXg9XCIwXCI+XG4gICAgICAgIEBmb3IgKG9wdGlvbiBvZiBzb3J0RmllbGRzKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgIEBsZXQgc2VsZWN0ZWQgPSBzb3J0Rm9ybS52YWx1ZVtvcHRpb24udHlwZV0gPT09IG9wdGlvbi52YWx1ZTtcbiAgICAgICAgICA8bGlcbiAgICAgICAgICAgIGNsYXNzPVwic29ydC1pdGVtXCJcbiAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJzZWxlY3RlZFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IHNlbGVjdGVkOiBzZWxlY3RlZCwgJ3NvcnQtZ3JvdXAtaXRlbSc6IG9wdGlvbi50eXBlID09PSAnc29ydCcsICdvcmRlci1ncm91cC1pdGVtJzogb3B0aW9uLnR5cGUgPT09ICdvcmRlcicgfVwiXG4gICAgICAgICAgICB5dXZMaXN0SXRlbVxuICAgICAgICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RTb3J0KG9wdGlvbi50eXBlLCBvcHRpb24udmFsdWUpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIEBpZiAoc29ydEZpZWxkcygpLmxlbmd0aCAtIDMgPT09ICRpbmRleCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIDwvb2w+XG4gICAgPC9kaWFsb2c+XG4gIGAsXG4gIHN0eWxlVXJsczogW2AuL3NvcnQuY29tcG9uZW50LnNjc3NgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU29ydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHJlYWRvbmx5ICNkcml2ZSA9IGluamVjdChEcml2ZVNlcnZpY2UpO1xuICByZWFkb25seSAjc3lzdGVtU2VydmljZSA9IGluamVjdChTeXN0ZW1TZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2ZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcbiAgcmVhZG9ubHkgI2RpciA9IGluamVjdChEaXJlY3Rpb25hbGl0eSk7XG5cbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXG4gIG9uQmx1cigpIHtcbiAgICB0aGlzLiNrZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oLTEpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGV2ZW50LmNvZGUgPT09ICdFc2NhcGUnICYmIHRoaXMuI2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSgtMSk7XG4gICAgZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQgJiYgdGhpcy4ja2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKC0xKTtcblxuICAgIGlmIChldmVudC5jb2RlID09PSAnU3BhY2UnIHx8IGV2ZW50LmNvZGUgPT09ICdFbnRlcicpIHtcbiAgICAgIGNvbnN0IGFpaTogbnVtYmVyID0gdGhpcy4ja2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXggIT09IG51bGwgPyB0aGlzLiNrZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1JbmRleCA6IC0xO1xuICAgICAgYWlpID49IDAgJiYgdGhpcy5zZWxlY3RTb3J0QnlJbmRleChhaWkpO1xuICAgIH0gZWxzZSB0aGlzLiNrZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICB9XG5cbiAgI2tleU1hbmFnZXIhOiBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxMaXN0SXRlbURpcmVjdGl2ZT47XG5cbiAgc29ydEljb24gPSBBUFBfRFJJVkVfSUNPTlMuc29ydDtcblxuICBpdGVtcyA9IHZpZXdDaGlsZHJlbihMaXN0SXRlbURpcmVjdGl2ZSk7XG4gICNpdGVtc0VmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaSA9IHRoaXMuaXRlbXMoKTtcbiAgICBpZiAodGhpcy4ja2V5TWFuYWdlcikgdGhpcy4ja2V5TWFuYWdlci5kZXN0cm95KCk7XG4gICAgdGhpcy4ja2V5TWFuYWdlciA9IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcihpKS53aXRoV3JhcCgpLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy4jZGlyLnZhbHVlKTtcbiAgfSk7XG5cbiAgc29ydE9wdGlvbnMgPSBzaWduYWwodGhpcy4jaW5pdFNvcnRPcHRpb25zKCkpO1xuICBvcmRlck9wdGlvbnMgPSBzaWduYWw8U29ydE9wdGlvbltdPihbXG4gICAgeyBsYWJlbDogJ0FzY2VuZGluZycsIHZhbHVlOiAnYXNjJywgdHlwZTogJ29yZGVyJyB9LFxuICAgIHsgbGFiZWw6ICdEZXNjZW5kaW5nJywgdmFsdWU6ICdkZXNjJywgdHlwZTogJ29yZGVyJyB9XG4gIF0pO1xuICBzb3J0RmllbGRzID0gY29tcHV0ZWQoKCkgPT4gWy4uLnRoaXMuc29ydE9wdGlvbnMoKSwgLi4udGhpcy5vcmRlck9wdGlvbnMoKV0pO1xuXG4gIHNvcnRGb3JtITogRm9ybUdyb3VwOyAvLyBSZWFjdGl2ZSBGb3JtXG5cbiAgc29ydENoYW5nZWQgPSBvdXRwdXQ8eyBzb3J0OiBzdHJpbmc7IG9yZGVyOiBzdHJpbmcgfT4oKTtcblxuICBzZWxlY3RTb3J0QnlJbmRleChpZHg6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0U29ydCh0aGlzLnNvcnRGaWVsZHMoKVtpZHhdLnR5cGUsIHRoaXMuc29ydEZpZWxkcygpW2lkeF0udmFsdWUpO1xuICB9XG5cbiAgc2VsZWN0U29ydCh0eXBlOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNvcnRGb3JtLmdldCgnc29ydCcpPy52YWx1ZSA9PT0gdmFsdWUgPyB0aGlzLnNvcnRGb3JtLmdldCgnc29ydCcpPy5zZXRWYWx1ZShudWxsKSA6IHRoaXMuc29ydEZvcm0uZ2V0KHR5cGUpPy5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5vblNlbGVjdGlvbkNoYW5nZSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0Rm9ybSA9IHRoaXMuI2ZiLm5vbk51bGxhYmxlLmdyb3VwKHtcbiAgICAgIHNvcnQ6IFtdLFxuICAgICAgb3JkZXI6IFt0aGlzLm9yZGVyT3B0aW9ucygpWzBdLnZhbHVlXSAvLyBEZWZhdWx0OiBBc2NlbmRpbmdcbiAgICB9KTtcblxuICAgIC8vIFRPRE86IENoZWNrIGlmIHRoaXMgaXMgbmVjZXNzYXJ5LiBJdCBicmVha3Mgc3RvcmVkIHF1ZXJpZXMgZmlyc3QgbG9hZCBieSByZXNldHRpbmcgc29ydFxuICAgIC8vIHRoaXMub25TZWxlY3Rpb25DaGFuZ2UoKTtcbiAgfVxuXG4gIC8vIEVtaXQgdGhlIGZvcm0gdmFsdWVzIHdoZW4gY2hhbmdlcyBvY2N1clxuICBvblNlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICBjb25zdCB7IHNvcnQsIG9yZGVyIH0gPSB0aGlzLnNvcnRGb3JtLnZhbHVlO1xuICAgIHRoaXMuI2RyaXZlLnNldFNvcnQoc29ydCwgb3JkZXIpO1xuICAgIHRoaXMuc29ydENoYW5nZWQuZW1pdCh7IHNvcnQsIG9yZGVyIH0pO1xuICB9XG5cbiAgI2luaXRTb3J0T3B0aW9ucygpIHtcbiAgICBjb25zdCBiYXNlRGF0YTogU29ydE9wdGlvbltdID0gW107XG4gICAgY29uc3QgZmllbGRzID0gW0ZTX1BST1BFUlRJRVMubmFtZSwgQmFzZU9iamVjdFR5cGVGaWVsZC5DUkVBVElPTl9EQVRFLCBCYXNlT2JqZWN0VHlwZUZpZWxkLk1PRElGSUNBVElPTl9EQVRFXTtcbiAgICBjb25zdCBjb250ZW50RmllbGRzID0gW0NvbnRlbnRTdHJlYW1GaWVsZC5MRU5HVEgsIENvbnRlbnRTdHJlYW1GaWVsZC5NSU1FX1RZUEVdO1xuXG4gICAgWy4uLmZpZWxkcywgLi4uY29udGVudEZpZWxkc10uZm9yRWFjaCgoZikgPT4ge1xuICAgICAgYmFzZURhdGEucHVzaCh7XG4gICAgICAgIGxhYmVsOiB0aGlzLiNzeXN0ZW1TZXJ2aWNlLmdldExvY2FsaXplZExhYmVsKGYpIHx8IGYsXG4gICAgICAgIHZhbHVlOiBmLFxuICAgICAgICB0eXBlOiAnc29ydCdcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGJhc2VEYXRhO1xuICB9XG59XG4iXX0=
|
|
@@ -2,7 +2,7 @@ import { AsyncPipe, NgClass } from '@angular/common';
|
|
|
2
2
|
import { Component, computed, effect, inject, input, signal, untracked, viewChild } from '@angular/core';
|
|
3
3
|
import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { ActivatedRoute, Router, RouterModule } from '@angular/router';
|
|
5
|
-
import { AppCacheService, BaseObjectTypeField, ClipboardService, DeviceService, DmsService, EventService, ObjectConfigService, Operator, SystemType, TranslateModule, TranslateService, YuvEventType } from '@yuuvis/client-core';
|
|
5
|
+
import { AppCacheService, BaseObjectTypeField, ClipboardService, DeviceService, DmsService, EventService, ObjectConfigService, Operator, RetentionService, SystemType, TranslateModule, TranslateService, YuvEventType } from '@yuuvis/client-core';
|
|
6
6
|
import { ActionsService, BASE_ACTION } from '@yuuvis/client-framework/actions';
|
|
7
7
|
import { FileDropZoneDirective } from '@yuuvis/client-framework/common';
|
|
8
8
|
import { YUV_ICONS } from '@yuuvis/client-framework/icons';
|
|
@@ -47,6 +47,7 @@ export class FilesPageComponent {
|
|
|
47
47
|
#LAYOUT_SETTINGS_STORAGE_KEY;
|
|
48
48
|
#objectConfigService;
|
|
49
49
|
#device;
|
|
50
|
+
#retention;
|
|
50
51
|
#eventService;
|
|
51
52
|
#appCache;
|
|
52
53
|
#highlightStyles;
|
|
@@ -65,6 +66,7 @@ export class FilesPageComponent {
|
|
|
65
66
|
this.actionsService = inject(ActionsService);
|
|
66
67
|
this.#objectConfigService = inject(ObjectConfigService);
|
|
67
68
|
this.#device = inject(DeviceService);
|
|
69
|
+
this.#retention = inject(RetentionService);
|
|
68
70
|
this.#eventService = inject(EventService);
|
|
69
71
|
this.ERROR_CODE = {
|
|
70
72
|
NOT_FOUND: '404',
|
|
@@ -75,7 +77,10 @@ export class FilesPageComponent {
|
|
|
75
77
|
this.objectConfigBucket = APP_SCHEMA.id;
|
|
76
78
|
this.splitViewCmp = viewChild.required(SplitViewComponent);
|
|
77
79
|
this.selected = signal(undefined);
|
|
78
|
-
this.fileDropSummaryDisabled = computed(() =>
|
|
80
|
+
this.fileDropSummaryDisabled = computed(() => {
|
|
81
|
+
const e = this.selected();
|
|
82
|
+
return !e || !e.permissions?.writeContent || this.#retention.getRetentionState(e).underRetention;
|
|
83
|
+
});
|
|
79
84
|
this.disableCreate = false;
|
|
80
85
|
this.actions = this.drive.state$.actions;
|
|
81
86
|
this.selection = this.drive.state$.selection;
|
|
@@ -374,4 +379,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
374
379
|
'[class.smallScreen]': 'smallScreenLayout()'
|
|
375
380
|
}, template: "<header>\n <!-- navigation bar -->\n <nav [attr.aria-label]=\"'yuv.app.drive.files.naviagtion.aria.label' | translate\">\n <div class=\"nav\">\n <button class=\"back\" [disabled]=\"!currentFolder\" title=\"{{ 'yuv.app.drive.files.nav.back.tooltip' | translate }}\" (click)=\"openParent()\">\n <yvc-icon [svg]=\"icons.back\"></yvc-icon>\n </button>\n <button class=\"refresh\" title=\"{{ 'yuv.app.drive.files.nav.refresh.tooltip' | translate }}\" (click)=\"refresh()\">\n <yvc-icon [svg]=\"icons.refresh\"></yvc-icon>\n </button>\n </div>\n\n @if (!query()?.term) {\n <ymd-breadcrumb></ymd-breadcrumb>\n } @else {\n <div class=\"breadcrumb\"></div>\n }\n <div class=\"search\">\n <ymd-drive-search></ymd-drive-search>\n </div>\n </nav>\n\n <!-- ribbon with actions and options -->\n <ymd-ribbon [objects]=\"selection()\" [busy]=\"busy()\" [enableClipboard]=\"true\">\n <ng-template #primaryActions>\n <ymd-add-button [disabled]=\"disableCreate\"></ymd-add-button>\n </ng-template>\n\n <ng-template #secondaryActions>\n <div class=\"options\">\n @if (!smallScreenLayout()) {\n <button\n class=\"toggle-tree toggle\"\n [ngClass]=\"{ enabled: enableTree() }\"\n title=\"{{ 'yuv.app.drive.files.toggletree.tooltip' | translate }}\"\n (click)=\"enableTree.set(!enableTree())\"\n >\n <yvc-icon [svg]=\"icons.toggleLeft\"></yvc-icon>\n </button>\n <button\n class=\"toggle-details toggle\"\n [ngClass]=\"{ enabled: enableDetails() }\"\n title=\"{{ 'yuv.app.drive.files.toggledetails.tooltip' | translate }}\"\n (click)=\"enableDetails.set(!enableDetails())\"\n >\n <yvc-icon [svg]=\"icons.toggleRight\"></yvc-icon>\n </button>\n }\n <yuv-tile-config-trigger\n [icon]=\"icons.settings\"\n [bucket]=\"objectConfigBucket\"\n [bucketLabel]=\"tileConfigBucketLabel\"\n [options]=\"tileListOptions\"\n ></yuv-tile-config-trigger>\n </div>\n </ng-template>\n </ymd-ribbon>\n</header>\n\n<yvc-split-view [gutterSize]=\"1\" (layoutSettingsChange)=\"onLayoutSettingsChange($event)\">\n <!-- folder tree -->\n <ng-template yvcSplitArea [size]=\"20\" [visible]=\"enableTree() && !smallScreenLayout()\">\n <ymd-folder-tree yuvFocusable=\"Tree\"></ymd-folder-tree>\n </ng-template>\n\n <!-- files -->\n <ng-template yvcSplitArea [size]=\"60\">\n @let err = error();\n @if (err) {\n <div class=\"error\">\n <p>\n <yvc-icon [svg]=\"icons.attention\"></yvc-icon>\n @switch (err) {\n @case (ERROR_CODE.NOT_FOUND) {\n {{ 'yuv.app.drive.files.error.load.not-found' | translate }}\n }\n @case (ERROR_CODE.INVALID_ID) {\n {{ 'yuv.app.drive.files.error.load.invalid-id' | translate }}\n }\n @default {\n {{ 'yuv.app.drive.files.error.load' | translate }}\n }\n }\n </p>\n </div>\n } @else {\n <div class=\"files\" [yuvFileDropZone]=\"{ label: 'yuv.app.drive.files.dropzone.label' | translate }\" (fileDrop)=\"onFileDrop($event)\">\n <header class=\"files-header\">\n <h1>{{ queryTitle() }}</h1>\n @if (query()?.term && !extendedQuery()) {\n <ymd-search-filter [query]=\"query()\" (queryChange)=\"onFilterQueryChange($event)\"></ymd-search-filter>\n }\n @if (sortOptionsAvailable()) {\n <ymd-sort />\n }\n <div class=\"flavors\">\n <!-- TODO: enable again once flavors/aspects are supported -->\n <!-- @for (f of flavorChips; track f.id) {\n <yuv-flavor-chip [ngClass]=\"{ active: f.id === appliedFlavor?.id }\" [flavor]=\"f\" (click)=\"appliedFlavor = f\"></yuv-flavor-chip>\n }-->\n </div>\n </header>\n\n <yuv-tile-list\n #tileList\n class=\"staggered\"\n [attr.aria-label]=\"'yuv.app.drive.files.content.aria.label' | translate\"\n [attr.aria-busy]=\"busy()\"\n [attr.role]=\"'listbox'\"\n (keydown.delete)=\"onDelete()\"\n [bucket]=\"objectConfigBucket\"\n [multiselect]=\"true\"\n [query]=\"query()\"\n [flavor]=\"appliedFlavor\"\n [options]=\"tileListOptions\"\n (itemDblClick)=\"itemDoubleClicked($event)\"\n (itemSelect)=\"itemClicked($event)\"\n (selectionChange)=\"selectionChanged($event)\"\n (copy)=\"onCopy($event)\"\n (cut)=\"onCut($event)\"\n (busy)=\"setBusy($event)\"\n (ctxMenu)=\"onContextmenu($event)\"\n [highlights]=\"highlightStyles$ | async\"\n >\n <div #empty>\n @if (emptyMode() === 'root') {\n <p class=\"empty\">{{ 'yuv.app.drive.files.content.empty.root.list' | translate }}</p>\n } @else if (emptyMode() === 'query') {\n <p class=\"empty\">{{ 'yuv.app.drive.files.content.empty.query.list' | translate }}</p>\n } @else {\n <p class=\"empty\">{{ 'yuv.app.drive.files.content.empty.list' | translate }}</p>\n }\n </div>\n </yuv-tile-list>\n </div>\n }\n </ng-template>\n\n <!-- details -->\n <ng-template yvcSplitArea [size]=\"20\" [visible]=\"enableDetails()\">\n @let selectedItem = selected();\n @if (enableDetails() && selectedItem) {\n @if (selectedItem?.isFolder) {\n <yuv-object-summary [configType]=\"configTypeOptions['folder']\" [dmsObject]=\"selectedItem\"></yuv-object-summary>\n } @else {\n <yuv-object-summary\n [configType]=\"configTypeOptions['file']\"\n [dmsObject]=\"selectedItem\"\n [yuvFileDropZone]=\"{ label: 'yuv.app.drive.files.dropzone.content.replace.label' | translate }\"\n [fileDropDisabled]=\"fileDropSummaryDisabled()\"\n (fileDrop)=\"onFileUpdateDrop($event)\"\n ></yuv-object-summary>\n }\n } @else {\n @let sel = selection();\n @if (sel && sel.length > 0) {\n <yuv-multi-object-summary [headline]=\"'yuv.app.drive.multiselected.details' | translate: { count: selection().length }\"></yuv-multi-object-summary>\n } @else if (tileList()?.items?.length === 0) {\n <!-- TODO: CHOULD HAVE A DIFFERENT MESSAGE FOR EMPTY RESULTS EMPTY FOR NOW -->\n <div class=\"message\">{{ 'yuv.app.drive.empty.results.details.message' | translate }}</div>\n } @else {\n <div class=\"message\">{{ 'yuv.app.drive.unselected.details' | translate }}</div>\n }\n }\n </ng-template>\n</yvc-split-view>\n", styles: [":host{--files-button-padding: calc(var(--app-pane-padding) / 4);--files-button-border-radius: 2px;--files-button-gap: calc(var(--app-pane-padding) / 4);--files-icon-size: 20px;height:100%;overflow:hidden;display:flex;flex-flow:column}:host header{flex:0 0 auto}:host header>nav{background-color:var(--app-drive-header-background);border-block-end:1px solid var(--panel-divider-color);display:grid;grid-template-columns:auto 1fr 1fr auto;align-items:center;gap:calc(var(--app-pane-padding) / 2);padding:calc(var(--app-pane-padding) / 4) calc(var(--app-pane-padding) / 2)}:host header>nav .nav{grid-column:1/2;grid-row:1;display:flex;align-items:center;gap:var(--files-button-gap)}:host header>nav .nav button{padding:var(--files-button-padding);border-radius:var(--files-button-border-radius)}:host header>nav .nav button yvc-icon{--icon-size: var(--files-icon-size)}:host header>nav .breadcrumb{grid-column:2/4;grid-row:1;align-self:stretch;display:flex;align-items:center;border-radius:var(--files-button-border-radius);padding:0 .5em;border:1px solid var(--panel-divider-color)}:host header>nav .search{grid-column:-1/-2;grid-row:1;z-index:1}:host yvc-split-view{flex:1;animation:fade-in .3s ease-in-out}:host ymd-ribbon{--ribbon-button-padding: var(--files-button-padding);--ribbon-button-border-radius: var(--files-button-border-radius);--ribbon-button-gap: var(--files-button-gap);--ribbon-icon-size: var(--files-icon-size)}:host ymd-ribbon .options{grid-area:options;display:flex;gap:var(--files-button-gap);align-items:center}:host ymd-ribbon .options yuv-tile-config-trigger{--icon-size: var(--files-icon-size);--button-padding: var(--files-button-padding)}:host ymd-ribbon .options button{padding:var(--files-button-padding);border-radius:var(--files-button-border-radius)}:host ymd-ribbon .options button yvc-icon{--icon-size: var(--files-icon-size)}:host ymd-ribbon .options button.toggle.enabled{background-color:var(--item-focus-background-color)}:host main{height:100%;overflow:hidden;display:flex;flex-flow:column}:host main yvc-master-details{flex:1;overflow:hidden;box-sizing:border-box}:host .error{display:grid;justify-items:center;align-items:center;height:100%;padding:0 2rem;text-align:center;color:var(--text-color-caption)}:host .error p{max-width:31ch;line-height:1.5em;display:grid;justify-items:center}:host .error p yvc-icon{--icon-size: 48px;display:block;margin-block-end:1rem}:host .files{display:flex;flex-flow:column;overflow:hidden;height:100%}:host .files header{flex:0 0 auto;padding:var(--app-pane-padding);display:grid;grid-template-columns:2fr max-content;grid-template-rows:auto auto 1fr;gap:0;grid-auto-flow:row;grid-template-areas:\"title sort\" \"searchfilter searchfilter\" \"flavours flavours\"}:host .files header h1{grid-area:title;margin:0;padding:0;font-size:var(--font-title);font-weight:400;text-overflow:ellipsis;overflow:hidden}:host .files header .flavors{grid-area:flavors;display:flex;gap:2px;justify-content:flex-end;padding:calc(var(--app-pane-padding) / 4)}:host .files header .flavors yuv-flavor-chip{font-size:var(--font-hint);cursor:pointer;--flavor-background: var(--panel-background);--flavor-icon-size: 16px}:host .files header .flavors yuv-flavor-chip:hover{--flavor-border-color: var(--color-accent)}:host .files header ymd-sort{grid-area:sort}:host .files header ymd-search-filter{grid-area:searchfilter}:host .files yuv-tile-list{flex:1;overflow:hidden}:host .message{display:grid;justify-items:center;align-items:center;height:100%;padding:0 2rem;text-align:center;color:var(--text-color-caption)}:host .message p{max-width:31ch;line-height:1.5em}:host yvc-split-view{height:100%;box-sizing:border-box}:host ymd-folder-tree,:host yuv-object-summary{height:100%;overflow-y:auto;box-sizing:border-box}:host yuv-tile-list{--tile-border: 1px solid var(--panel-divider-color);--tile-border-width: 0 0 1px 0;--tile-padding: calc(var(--app-pane-padding) / 2);--tile-icon-size: 18px;--tile-action-icon-size: 18px;--paging-background: var(--panel-background-lightgrey)}:host p.empty{color:var(--text-color-caption)}:host .details{height:100%}:host .details yuv-object-details{height:100%}:host.smallScreen yuv-tile-list{--tile-padding: var(--app-pane-padding) !important}@keyframes fade-in{0%{opacity:0}}\n"] }]
|
|
376
381
|
}], ctorParameters: () => [] });
|
|
377
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHBzL2RyaXZlL3NyYy9saWIvcGFnZXMvZmlsZXMvZmlsZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHBzL2RyaXZlL3NyYy9saWIvcGFnZXMvZmlsZXMvZmlsZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVyRCxPQUFPLEVBQWlCLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFlLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEosT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUdoQixhQUFhLEVBRWIsVUFBVSxFQUNWLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsUUFBUSxFQUdSLFVBQVUsRUFDVixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLFlBQVksRUFDYixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBVSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFD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WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIEhvc3RCaW5kaW5nLCBpbmplY3QsIGlucHV0LCBPbkRlc3Ryb3ksIHNpZ25hbCwgdW50cmFja2VkLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFBhcmFtTWFwLCBSb3V0ZXIsIFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBBcHBDYWNoZVNlcnZpY2UsXG4gIEJhc2VPYmplY3RUeXBlRmllbGQsXG4gIENsaXBib2FyZFNlcnZpY2UsXG4gIENvbmZpZ1R5cGVPcHRpb24sXG4gIERldmljZVNjcmVlbixcbiAgRGV2aWNlU2VydmljZSxcbiAgRG1zT2JqZWN0LFxuICBEbXNTZXJ2aWNlLFxuICBFdmVudFNlcnZpY2UsXG4gIE9iamVjdENvbmZpZ1NlcnZpY2UsXG4gIE9wZXJhdG9yLFxuICBSZXNvbHZlZE9iamVjdENvbmZpZyxcbiAgU2VhcmNoUXVlcnksXG4gIFN5c3RlbVR5cGUsXG4gIFRyYW5zbGF0ZU1vZHVsZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgWXV2RXZlbnRUeXBlXG59IGZyb20gJ0B5dXV2aXMvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgQWN0aW9uLCBBY3Rpb25zU2VydmljZSwgQkFTRV9BQ1RJT04gfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvYWN0aW9ucyc7XG5pbXBvcnQgeyBGaWxlRHJvcFpvbmVEaXJlY3RpdmUgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvY29tbW9uJztcbmltcG9ydCB7IFlVVl9JQ09OUyB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9pY29ucyc7XG5pbXBvcnQgeyBNdWx0aU9iamVjdFN1bW1hcnlDb21wb25lbnQsIE9iamVjdFN1bW1hcnlDb21wb25lbnQgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvb2JqZWN0LXN1bW1hcnknO1xuaW1wb3J0IHsgU2ltcGxlU2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3NpbXBsZS1zZWFyY2gnO1xuaW1wb3J0IHsgVGlsZUNvbmZpZ1RyaWdnZXJDb21wb25lbnQsIFRpbGVEYXRhLCBUaWxlTGlzdENvbXBvbmVudCwgVGlsZUxpc3RDb25maWdPcHRpb25zLCBUaWxlTGlzdEhpZ2hsaWdodCB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay90aWxlLWxpc3QnO1xuaW1wb3J0IHsgT2JqZWN0Rmxhdm9yLCBTaGVsbFNlcnZpY2UgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1zaGVsbC1jb3JlJztcbmltcG9ydCB7IElDT05TLCBZdmNJY29uTW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgU3BsaXRWaWV3Q29tcG9uZW50LCBTcGxpdFZpZXdMYXlvdXRTZXR0aW5ncywgWXZjU3BsaXRWaWV3TW9kdWxlIH0gZnJvbSAnQHl1dXZpcy9jb21wb25lbnRzL3NwbGl0LXZpZXcnO1xuaW1wb3J0IHsgZmluYWxpemUsIG1hcCwgT2JzZXJ2YWJsZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBCcmVhZGNydW1iQ29tcG9uZW50LCBEcml2ZVNlYXJjaENvbXBvbmVudCwgU29ydENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQWRkQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9hZGQtYnV0dG9uL2FkZC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEZvbGRlclRyZWVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2ZvbGRlci10cmVlL2ZvbGRlci10cmVlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSaWJib25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3JpYmJvbi9yaWJib24uY29tcG9uZW50JztcbmltcG9ydCB7IFNlYXJjaEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvc2VhcmNoLWZpbHRlci9zZWFyY2gtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBUFBfRFJJVkVfSUNPTlMgfSBmcm9tICcuLi8uLi9kcml2ZS5pY29ucyc7XG5pbXBvcnQgeyBBQ1RJT05fQ09OVEVYVCwgQVBQX0lELCBBUFBfU0NIRU1BIH0gZnJvbSAnLi4vLi4vZHJpdmUuc2NoZW1hJztcbmltcG9ydCB7IERSSVZFX0VWRU5ULCBEUklWRV9RVUVSWV9GT0xERVJfSUQsIERSSVZFX1JPT1RfRk9MREVSX0lELCBEcml2ZUZvbGRlcklkIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZHJpdmUvZHJpdmUuaW50ZXJmYWNlJztcbmltcG9ydCB7IERyaXZlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RyaXZlL2RyaXZlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU1RPUkVEX1FVRVJZX0lEX1BSRUZJWCB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0b3JlZC1xdWVyeS9zdG9yZWQtcXVlcnkuZGF0YSc7XG5pbXBvcnQgeyBTdG9yZWRRdWVyeSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0b3JlZC1xdWVyeS9zdG9yZWQtcXVlcnkuaW50ZXJmYWNlJztcbmltcG9ydCB7IFN0b3JlZFF1ZXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N0b3JlZC1xdWVyeS9zdG9yZWQtcXVlcnkuc2VydmljZSc7XG5cbmNvbnN0IGNvbXBvbmVudHMgPSBbXG4gIFRpbGVMaXN0Q29tcG9uZW50LFxuICBCcmVhZGNydW1iQ29tcG9uZW50LFxuICBGb2xkZXJUcmVlQ29tcG9uZW50LFxuICBPYmplY3RTdW1tYXJ5Q29tcG9uZW50LFxuICBUaWxlQ29uZmlnVHJpZ2dlckNvbXBvbmVudCxcbiAgUmliYm9uQ29tcG9uZW50LFxuICBBZGRCdXR0b25Db21wb25lbnQsXG4gIFNpbXBsZVNlYXJjaENvbXBvbmVudCxcbiAgTXVsdGlPYmplY3RTdW1tYXJ5Q29tcG9uZW50LFxuICBTb3J0Q29tcG9uZW50LFxuICBTZWFyY2hGaWx0ZXJDb21wb25lbnQsXG4gIERyaXZlU2VhcmNoQ29tcG9uZW50XG5dO1xuXG5jb25zdCBtb2R1bGUgPSBbWXZjSWNvbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBSb3V0ZXJNb2R1bGUsIFl2Y1NwbGl0Vmlld01vZHVsZV07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ltZC1maWxlcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBBc3luY1BpcGUsIC4uLm1vZHVsZSwgLi4uY29tcG9uZW50cywgRmlsZURyb3Bab25lRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2ZpbGVzLmNvbXBvbmVudC5zY3NzJyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3Muc21hbGxTY3JlZW5dJzogJ3NtYWxsU2NyZWVuTGF5b3V0KCknXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgRmlsZXNQYWdlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgdGlsZUxpc3QgPSB2aWV3Q2hpbGQ8VGlsZUxpc3RDb21wb25lbnQ+KCd0aWxlTGlzdCcpO1xuXG4gICNMQVlPVVRfU0VUVElOR1NfU1RPUkFHRV9LRVkgPSAneXV2LmFwcC5kcml2ZS5maWxlcy5sYXlvdXQnO1xuXG4gIHByaXZhdGUgc2hlbGxTZXJ2aWNlID0gaW5qZWN0KFNoZWxsU2VydmljZSk7XG4gIHByaXZhdGUgZG1zU2VydmljZSA9IGluamVjdChEbXNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBkcml2ZSA9IGluamVjdChEcml2ZVNlcnZpY2UpO1xuICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcbiAgcHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSB0cmFuc2xhdGUgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gIHByaXZhdGUgc3RvcmVkUXVlcnlTZXJ2aWNlID0gaW5qZWN0KFN0b3JlZFF1ZXJ5U2VydmljZSk7XG4gIHByaXZhdGUgY2xpcGJvYXJkID0gaW5qZWN0KENsaXBib2FyZFNlcnZpY2UpO1xuICBwcml2YXRlIGFjdGlvbnNTZXJ2aWNlID0gaW5qZWN0KEFjdGlvbnNTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI29iamVjdENvbmZpZ1NlcnZpY2UgPSBpbmplY3QoT2JqZWN0Q29uZmlnU2VydmljZSk7XG4gIHJlYWRvbmx5ICNkZXZpY2UgPSBpbmplY3QoRGV2aWNlU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgI2V2ZW50U2VydmljZSA9IGluamVjdChFdmVudFNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IEVSUk9SX0NPREUgPSB7XG4gICAgTk9UX0ZPVU5EOiAnNDA0JyxcbiAgICAvLyBwYXR0ZXJuOiB7SFRUUF9TVEFUVVNfQ09ERX0te1NFUlZJQ0VfRVJST1JfQ09ERX1cbiAgICBJTlZBTElEX0lEOiAnNDIyLTI5MTInXG4gIH07XG5cbiAgI2FwcENhY2hlID0gaW5qZWN0KEFwcENhY2hlU2VydmljZSk7XG5cbiAgb2JqZWN0Q29uZmlnQnVja2V0OiBzdHJpbmcgPSBBUFBfU0NIRU1BLmlkO1xuXG4gIHNwbGl0Vmlld0NtcCA9IHZpZXdDaGlsZC5yZXF1aXJlZChTcGxpdFZpZXdDb21wb25lbnQpO1xuICBzZWxlY3RlZCA9IHNpZ25hbDxEbXNPYmplY3QgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGZpbGVEcm9wU3VtbWFyeURpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4gIXRoaXMuc2VsZWN0ZWQoKT8ucGVybWlzc2lvbnM/LndyaXRlQ29udGVudCk7XG4gIGRpc2FibGVDcmVhdGUgPSBmYWxzZTtcblxuICBhY3Rpb25zID0gdGhpcy5kcml2ZS5zdGF0ZSQuYWN0aW9ucztcbiAgc2VsZWN0aW9uID0gdGhpcy5kcml2ZS5zdGF0ZSQuc2VsZWN0aW9uO1xuICBleHRlbmRlZFF1ZXJ5ID0gdGhpcy5kcml2ZS5zdGF0ZSQuZXh0ZW5kZWRRdWVyeTtcblxuICBidXN5ID0gdGhpcy5kcml2ZS5zdGF0ZSQuYnVzeTtcbiAgZmxhdm9yQ2hpcHM6IE9iamVjdEZsYXZvcltdID0gdGhpcy5zaGVsbFNlcnZpY2UuZ2V0T2JqZWN0Rmxhdm9ycygpO1xuICBhcHBsaWVkRmxhdm9yPzogT2JqZWN0Rmxhdm9yO1xuXG4gIHNlbGVjdGlvbkFjdGlvbnMgPSBjb21wdXRlZCgoKSA9PiAoeyBzZWxlY3Rpb246IHRoaXMuc2VsZWN0aW9uKCksIGFjdGlvbnM6IHRoaXMuYWN0aW9ucygpIH0pKTtcblxuICBlbXB0eU1vZGUgPSBzaWduYWw8RHJpdmVGb2xkZXJJZCB8IG51bGw+KG51bGwpO1xuICAvLyBlcnJvciBjb2RlIHdoZW4gbG9hZGluZyB0aGUgb2JqZWN0IGZhaWxlZC4gVGhpcyB3aWxsIGJlIHVzZWRcbiAgLy8gdG8gZGV0ZXJtaW5lIGEgcHJvcGVyIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheVxuICBlcnJvciA9IHNpZ25hbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgY29uZmlnVHlwZU9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIENvbmZpZ1R5cGVPcHRpb24+ID0ge1xuICAgIGZvbGRlcjogeyBidWNrZXQ6IEFQUF9JRCwgdHlwZTogQVBQX1NDSEVNQS50eXBlc1snZm9sZGVyJ10gfSxcbiAgICBmaWxlOiB7IGJ1Y2tldDogQVBQX0lELCB0eXBlOiBBUFBfU0NIRU1BLnR5cGVzWydmaWxlJ10gfVxuICB9O1xuXG4gIGN1cnJlbnRGb2xkZXJJRD86IHN0cmluZztcbiAgY3VycmVudEZvbGRlcj86IERtc09iamVjdDtcbiAgZW5hYmxlRGV0YWlscyA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcbiAgZW5hYmxlVHJlZSA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcbiAgdGlsZUNvbmZpZ0J1Y2tldExhYmVsID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmFwcC5kcml2ZS50aWxlLWNvbmZpZy5idWNrZXQnKTtcblxuICBzbWFsbFNjcmVlbkxheW91dCA9IHNpZ25hbChmYWxzZSk7XG4gIHNvcnRPcHRpb25zQXZhaWxhYmxlID0gc2lnbmFsKHRydWUpO1xuICBleHRlbmRlZFNlYXJjaCA9IHNpZ25hbChmYWxzZSk7XG5cbiAgaWQgPSBpbnB1dDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBoaWdobGlnaHRTdHlsZXMkOiBPYnNlcnZhYmxlPFRpbGVMaXN0SGlnaGxpZ2h0W10+ID0gdGhpcy5jbGlwYm9hcmQuY2xpcGJvYXJkJChBUFBfSUQpLnBpcGUoXG4gICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgbWFwKChjKSA9PiB7XG4gICAgICByZXR1cm4gYyAmJiBjLm1vZGUgJiYgYy5vYmplY3RzPy5sZW5ndGhcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNzc1N0eWxlczogdGhpcy4jaGlnaGxpZ2h0U3R5bGVzW2M/Lm1vZGVdLFxuICAgICAgICAgICAgICBpZHM6IGMub2JqZWN0cy5tYXAoKG8pID0+IG8uaWQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICA6IFtdO1xuICAgIH0pXG4gICk7XG5cbiAgcmVhZG9ubHkgI2hpZ2hsaWdodFN0eWxlczogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0ge1xuICAgIGN1dDogeyBvcGFjaXR5OiAwLjUgfVxuICB9O1xuXG4gICNyb3V0ZUlkRWZmZWN0ID0gZWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBwYXJhbSA9IHRoaXMuaWQoKSB8fCB1bmRlZmluZWQ7XG5cbiAgICB1bnRyYWNrZWQoYXN5bmMgKCkgPT4ge1xuICAgICAgaWYgKHBhcmFtID09PSBEUklWRV9RVUVSWV9GT0xERVJfSUQpIHtcbiAgICAgICAgdGhpcy5lbXB0eU1vZGUuc2V0KERSSVZFX1FVRVJZX0ZPTERFUl9JRCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5lbXB0eU1vZGUuc2V0KHBhcmFtID09PSBEUklWRV9ST09UX0ZPTERFUl9JRCA/IERSSVZFX1JPT1RfRk9MREVSX0lEIDogbnVsbCk7XG4gICAgICB0aGlzLmVycm9yLnNldCh1bmRlZmluZWQpO1xuICAgICAgdGhpcy5kaXNhYmxlQ3JlYXRlID0gZmFsc2U7XG4gICAgICB0aGlzLmN1cnJlbnRGb2xkZXJJRCA9IHBhcmFtO1xuICAgICAgdGhpcy5kcml2ZS51cGRhdGVDdXJyZW50Rm9sZGVyKHRoaXMuY3VycmVudEZvbGRlcklEKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWQuc2V0KHVuZGVmaW5lZCk7XG4gICAgICB0aGlzLmN1cnJlbnRGb2xkZXIgPSB1bmRlZmluZWQ7XG4gICAgICBpZiAodGhpcy5jdXJyZW50Rm9sZGVySUQgPT09IERSSVZFX1JPT1RfRk9MREVSX0lEKSB0aGlzLmN1cnJlbnRGb2xkZXJJRCA9IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKHRoaXMuY3VycmVudEZvbGRlcklEKSB7XG4gICAgICAgIHRoaXMuZG1zU2VydmljZS5nZXREbXNPYmplY3QodGhpcy5jdXJyZW50Rm9sZGVySUQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKG86IERtc09iamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50Rm9sZGVyID0gbztcbiAgICAgICAgICAgIHRoaXMuX3NldEZvbGRlclF1ZXJ5KHRoaXMuI2dldFRpdGxlKG8pKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZ2V0dGluZyBmb2xkZXInLCBlKTtcbiAgICAgICAgICAgIHRoaXMuI3Byb2Nlc3NMb2FkRXJyb3IoZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB0aGlzLl9zZXRGb2xkZXJRdWVyeSh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXBwLmRyaXZlLmZvbGRlci10cmVlLm15ZHJpdmUnKSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHRpbGVMaXN0T3B0aW9uczogVGlsZUxpc3RDb25maWdPcHRpb25zID0ge1xuICAgIGFjdGlvbkNvbnRleHQ6IEFDVElPTl9DT05URVhULFxuICAgIGNvbmZpZ1R5cGVzOiBPYmplY3QudmFsdWVzKEFQUF9TQ0hFTUEudHlwZXMpLFxuICAgIGNvbmZpZ0ZsYXZvcnM6IFsuLi50aGlzLnNoZWxsU2VydmljZS5nZXRPYmplY3RGbGF2b3JzKCksIC4uLkFQUF9TQ0hFTUEuZmxhdm9ycy5maWx0ZXIoKGYpID0+ICFmLmFwcGxpY2FibGVUbykubWFwKChmKSA9PiAoeyAuLi5mLCBhcHA6IEFQUF9JRCB9KSldXG4gIH07XG5cbiAgcXVlcnkgPSB0aGlzLmRyaXZlLnN0YXRlJC5xdWVyeTtcbiAgcXVlcnlUaXRsZSA9IHRoaXMuZHJpdmUuc3RhdGUkLnF1ZXJ5VGl0bGU7XG5cbiAgaWNvbnMgPSB7XG4gICAgLi4uQVBQX0RSSVZFX0lDT05TLFxuICAgIHNvcnQ6IEFQUF9EUklWRV9JQ09OUy5zb3J0LFxuICAgIGJhY2s6IFlVVl9JQ09OUy5iYWNrLFxuICAgIGF0dGVudGlvbjogWVVWX0lDT05TLmF0dGVudGlvbixcbiAgICByZWZyZXNoOiBZVVZfSUNPTlMucmVmcmVzaCxcbiAgICBjbGVhcjogSUNPTlMuY2xlYXJcbiAgfTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRyaXZlLmV2ZW50cyQucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChlKSA9PiB7XG4gICAgICAgIGlmIChlID09PSBEUklWRV9FVkVOVC5yZWZyZXNoKSB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuI2RldmljZS5zY3JlZW5DaGFuZ2UkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoczogRGV2aWNlU2NyZWVuKSA9PiB7XG4gICAgICAgIHRoaXMuc21hbGxTY3JlZW5MYXlvdXQuc2V0KHMuc2l6ZSA9PT0gJ3MnICYmIHMub3JpZW50YXRpb24gPT09ICdwb3J0cmFpdCcpO1xuICAgICAgICB0aGlzLmVuYWJsZURldGFpbHMuc2V0KCF0aGlzLnNtYWxsU2NyZWVuTGF5b3V0KCkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdG9PYnNlcnZhYmxlKHRoaXMuZHJpdmUuc3RhdGUkLnNlbGVjdGlvbilcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChzZWw6IERtc09iamVjdFtdKSA9PiB7XG4gICAgICAgICAgaWYgKHNlbD8ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnRpbGVMaXN0KCk/LmNsZWFyU2VsZWN0aW9uKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZC5zZXQodW5kZWZpbmVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtTWFwLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocDogUGFyYW1NYXApID0+IHtcbiAgICAgICAgdGhpcy5zb3J0T3B0aW9uc0F2YWlsYWJsZS5zZXQodHJ1ZSk7XG4gICAgICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtc1snaWQnXSA9PT0gRFJJVkVfUVVFUllfRk9MREVSX0lEKSB7XG4gICAgICAgICAgY29uc3QgcSA9IHAuZ2V0KCdxJyk7XG4gICAgICAgICAgdGhpcy5kaXNhYmxlQ3JlYXRlID0gdHJ1ZTtcbiAgICAgICAgICBpZiAocT8uc3RhcnRzV2l0aChTVE9SRURfUVVFUllfSURfUFJFRklYKSkge1xuICAgICAgICAgICAgLy8gc3RvcmVkIHF1ZXJ5XG4gICAgICAgICAgICBjb25zdCBzcTogU3RvcmVkUXVlcnkgfCB1bmRlZmluZWQgPSB0aGlzLnN0b3JlZFF1ZXJ5U2VydmljZS5nZXRTdG9yZWRRdWVyeShxKTtcbiAgICAgICAgICAgIGlmIChzcSkge1xuICAgICAgICAgICAgICB0aGlzLmRyaXZlLnVwZGF0ZVF1ZXJ5KHNxLnF1ZXJ5LCBzcS5sYWJlbCk7XG4gICAgICAgICAgICAgIHRoaXMuc29ydE9wdGlvbnNBdmFpbGFibGUuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSBpZiAocSkge1xuICAgICAgICAgICAgLy8gc2VhcmNoIHF1ZXJ5XG4gICAgICAgICAgICB0aGlzLnNvcnRPcHRpb25zQXZhaWxhYmxlLnNldCh0cnVlKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHNxOiBTZWFyY2hRdWVyeSA9IEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KHEpKTtcbiAgICAgICAgICAgICAgc3EuZmlsdGVycyA9IChzcS5maWx0ZXJzIHx8IFtdKS5maWx0ZXIoKGYpID0+IGYuZiAhPT0gQmFzZU9iamVjdFR5cGVGaWVsZC5QQVJFTlRfSUQpO1xuICAgICAgICAgICAgICB0aGlzLmRyaXZlLnVwZGF0ZVF1ZXJ5KFxuICAgICAgICAgICAgICAgIHNxLCBcbiAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd5dXYuYXBwLmRyaXZlLmZpbGVzLnNlYXJjaC5yZXN1bHQudGl0bGUnKSwgXG4gICAgICAgICAgICAgICAgcC5nZXQoJ2V4dCcpID09PSAndHJ1ZScpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHBhcnNpbmcgcXVlcnknLCBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuI2V2ZW50U2VydmljZVxuICAgICAgLm9uKFl1dkV2ZW50VHlwZS5ETVNfT0JKRUNUX1VQREFURUQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgICAgIHRhcCgoZSkgPT4ge1xuICAgICAgICAgIHRoaXMudGlsZUxpc3QoKT8udXBkYXRlVGlsZUxpc3QoW2UuZGF0YV0pO1xuICAgICAgICAgIGUuZGF0YS5pZCA9PT0gdGhpcy5zZWxlY3RlZCgpPy5pZCAmJiB0aGlzLnNlbGVjdGVkLnNldChlLmRhdGEpO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb25GaWx0ZXJRdWVyeUNoYW5nZShxOiBTZWFyY2hRdWVyeSkge1xuICAgIHRoaXMuZHJpdmUudXBkYXRlUXVlcnkocSwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmFwcC5kcml2ZS5maWxlcy5zZWFyY2gucmVzdWx0LnRpdGxlJykpO1xuICAgIHRoaXMuZHJpdmUuc2V0U2VsZWN0aW9uKFtdKTtcbiAgfVxuXG4gICNwcm9jZXNzTG9hZEVycm9yKGU6IEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgaWYgKGAke2Uuc3RhdHVzfWAgIT09IHRoaXMuRVJST1JfQ09ERS5OT1RfRk9VTkQpIHtcbiAgICAgIHRoaXMuZXJyb3Iuc2V0KGAke2Uuc3RhdHVzfS0ke2UuZXJyb3I/LnNlcnZpY2VFcnJvckNvZGUgfHwgJyd9YCk7XG4gICAgfSBlbHNlIHRoaXMuZXJyb3Iuc2V0KHRoaXMuRVJST1JfQ09ERS5OT1RfRk9VTkQpO1xuICB9XG5cbiAgI2dldFRpdGxlKG86IERtc09iamVjdCk6IHN0cmluZyB7XG4gICAgY29uc3QgY2ZnVHlwZTogQ29uZmlnVHlwZU9wdGlvbiA9IG8uaXNGb2xkZXIgPyB0aGlzLmNvbmZpZ1R5cGVPcHRpb25zWydmb2xkZXInXSA6IHRoaXMuY29uZmlnVHlwZU9wdGlvbnNbJ2ZpbGUnXTtcbiAgICBjb25zdCBvYzogUmVzb2x2ZWRPYmplY3RDb25maWcgPSB0aGlzLiNvYmplY3RDb25maWdTZXJ2aWNlLmdldFJlc29sdmVkT2JqZWN0Q29uZmlnKG8uZGF0YSwgY2ZnVHlwZS50eXBlLCBjZmdUeXBlLmJ1Y2tldCwgdHJ1ZSk7XG4gICAgcmV0dXJuIG9jLnRpdGxlLnZhbHVlO1xuICB9XG5cbiAgb25EZWxldGUoKSB7XG4gICAgY29uc3QgZGVsZXRlQWN0aW9uID0gdGhpcy5hY3Rpb25zKCkuZmluZCgoYSkgPT4gYS5pZCA9PT0gQkFTRV9BQ1RJT04uZGVsZXRlKTtcbiAgICBpZiAoZGVsZXRlQWN0aW9uKSBkZWxldGVBY3Rpb24ucnVuKHRoaXMuZHJpdmUuc3RhdGUkLnNlbGVjdGlvbigpKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldEZvbGRlclF1ZXJ5KHF1ZXJ5VGl0bGU/OiBzdHJpbmcpIHtcbiAgICB0aGlzLmRyaXZlLnVwZGF0ZVF1ZXJ5KFxuICAgICAge1xuICAgICAgICBmaWx0ZXJzOiBbeyBmOiBCYXNlT2JqZWN0VHlwZUZpZWxkLlBBUkVOVF9JRCwgbzogT3BlcmF0b3IuRVFVQUwsIHYxOiB0aGlzLmN1cnJlbnRGb2xkZXJJRCB8fCBudWxsIH1dXG4gICAgICB9LFxuICAgICAgcXVlcnlUaXRsZVxuICAgICk7XG4gIH1cblxuICBvbkNvbnRleHRtZW51KHsgZXZlbnQgfTogeyBldmVudDogTW91c2VFdmVudCB8IFBvaW50ZXJFdmVudCB9KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmFjdGlvbnNTZXJ2aWNlLm9wZW5Db250ZXh0TWVudSh0aGlzLmFjdGlvbnMsIChhOiBBY3Rpb24pID0+IGEucnVuKHRoaXMuc2VsZWN0aW9uKCkpLCB7IHg6IGV2ZW50LngsIHk6IGV2ZW50LnkgfSk7XG4gIH1cblxuICBvbkZpbGVEcm9wKGZpbGVzOiBGaWxlW10pIHtcbiAgICB0aGlzLmRyaXZlLnNldEJ1c3kodHJ1ZSk7XG4gICAgdGhpcy5kcml2ZS5jaGVja05hbWVzQW5kVXBsb2FkKGZpbGVzKS5zdWJzY3JpYmUoeyBjb21wbGV0ZTogKCkgPT4gdGhpcy5kcml2ZS5zZXRCdXN5KGZhbHNlKSB9KTtcbiAgfVxuXG4gIG9uRmlsZVVwZGF0ZURyb3AoZmlsZTogRmlsZVtdKSB7XG4gICAgY29uc3QgZG1zT2JqZWN0ID0gdGhpcy5zZWxlY3RlZCgpO1xuICAgIGlmIChkbXNPYmplY3QpIHtcbiAgICAgIHRoaXMuZHJpdmUuc2V0QnVzeSh0cnVlKTtcbiAgICAgIHRoaXMuZHJpdmVcbiAgICAgICAgLnVwbG9hZENvbnRlbnQoZG1zT2JqZWN0LmlkLCBmaWxlWzBdKVxuICAgICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLmRyaXZlLnNldEJ1c3koZmFsc2UpKSlcbiAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGl0ZW1Gb2N1c2VkKHRpbGU6IFRpbGVEYXRhKSB7XG4gICAgLy8gY29uc29sZS5sb2codGlsZSk7XG4gIH1cblxuICBpdGVtQ2xpY2tlZCh0aWxlOiBUaWxlRGF0YSkge1xuICAgIGlmICh0aGlzLnNtYWxsU2NyZWVuTGF5b3V0KCkpIHRoaXMuaXRlbURvdWJsZUNsaWNrZWQodGlsZSk7XG4gIH1cblxuICBvbkNvcHkodGlsZXM6IFRpbGVEYXRhW10pIHtcbiAgICB0aGlzLmNsaXBib2FyZC5hZGRPYmplY3RzKFxuICAgICAgdGlsZXMubWFwKCh0KSA9PiB0LmRtc09iamVjdCksXG4gICAgICAnY29weScsXG4gICAgICBBUFBfSURcbiAgICApO1xuICB9XG5cbiAgb25DdXQodGlsZXM6IFRpbGVEYXRhW10pIHtcbiAgICB0aGlzLmNsaXBib2FyZC5hZGRPYmplY3RzKFxuICAgICAgdGlsZXMubWFwKCh0KSA9PiB0LmRtc09iamVjdCksXG4gICAgICAnY3V0JyxcbiAgICAgIEFQUF9JRFxuICAgICk7XG4gIH1cblxuICAvLyBvblF1ZXJ5U3VibWl0KHE6IFNlYXJjaFF1ZXJ5KSB7XG4gIC8vICAgLy8gaW4gb3JkZXIgdG8ga2VlcCB0aGUgcXVlcnkgaW4gdGhlIHVybCBhcyBzaG9ydCBhc1xuICAvLyAgIC8vIHBvc3NpYmxlIHdlJ2xsIGdldCByaWQgb2YgdGhlIGZpZWxkcyBiZWNhdXNlIHRoZXkgY291bGQgYmVcbiAgLy8gICAvLyByZS1hcHBsaWVkIGxhdGVyIG9uXG4gIC8vICAgcS5maWVsZHMgPSB1bmRlZmluZWQ7XG5cbiAgLy8gICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4uJywgJ3F1ZXJ5J10sIHtcbiAgLy8gICAgIHF1ZXJ5UGFyYW1zOiB7IHE6IGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShxKSkgfSxcbiAgLy8gICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGVcbiAgLy8gICB9KTtcbiAgLy8gfVxuXG4gIHNlbGVjdGlvbkNoYW5nZWQodGlsZXM6IFRpbGVEYXRhW10pIHtcbiAgICBpZiAodGlsZXMubGVuZ3RoID09PSAxKSB0aGlzLmxvYWREZXRhaWxzKHRpbGVzWzBdLmlkKTtcbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQuc2V0KHVuZGVmaW5lZCk7XG4gICAgICBpZiAodGlsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuZHJpdmUuc2V0U2VsZWN0aW9uKFtdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZHJpdmUuc2V0QnVzeSh0cnVlKTtcbiAgICAgICAgdGhpcy5kbXNTZXJ2aWNlLmdldERtc09iamVjdHModGlsZXMubWFwKChpKSA9PiBpLmlkKSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAobzogRG1zT2JqZWN0W10pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZHJpdmUuc2V0QnVzeShmYWxzZSk7XG4gICAgICAgICAgICB0aGlzLmRyaXZlLnNldFNlbGVjdGlvbihvKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGl0ZW1Eb3VibGVDbGlja2VkKHRpbGU6IFRpbGVEYXRhKSB7XG4gICAgaWYgKHRpbGUuaW5zdGFuY2VEYXRhKSB7XG4gICAgICB0aGlzLmRyaXZlLnNldEJ1c3kodHJ1ZSk7XG4gICAgICBjb25zdCBuYXYgPSAodGlsZS5pbnN0YW5jZURhdGFbQmFzZU9iamVjdFR5cGVGaWVsZC5CQVNFX1RZUEVfSURdIGFzIHN0cmluZykgPT09IFN5c3RlbVR5cGUuRk9MREVSID8gWycuLiddIDogWycuLi8uLicsICdvYmplY3QnXTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsuLi5uYXYsIHRpbGUuaW5zdGFuY2VEYXRhW0Jhc2VPYmplY3RUeXBlRmllbGQuT0JKRUNUX0lEXV0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KS50aGVuKCgpID0+IHRoaXMuZHJpdmUuc2V0QnVzeShmYWxzZSkpO1xuICAgIH1cbiAgfVxuXG4gIGxvYWREZXRhaWxzKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNoZWxsU2VydmljZS5hZGRCdXN5KCk7XG4gICAgLy8gbG9hZCB0aGUgZG1zIG9iamVjdFxuICAgIHRoaXMuZG1zU2VydmljZS5nZXREbXNPYmplY3QoaWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAobzogRG1zT2JqZWN0KSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuc2V0KG8pO1xuICAgICAgICB0aGlzLnNoZWxsU2VydmljZS5yZW1vdmVCdXN5KCk7XG4gICAgICAgIHRoaXMuZHJpdmUuc2V0U2VsZWN0aW9uKFtvXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBjbGVhclNlbGVjdGlvbigpIHtcbiAgICB0aGlzLmRyaXZlLnNldFNlbGVjdGlvbihbXSk7XG4gIH1cblxuICBvcGVuUGFyZW50KCkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRGb2xkZXIpIHtcbiAgICAgIHRoaXMuZHJpdmUuc2V0QnVzeSh0cnVlKTtcbiAgICAgIHRoaXMucm91dGVyXG4gICAgICAgIC5uYXZpZ2F0ZShbJy4uJywgdGhpcy5jdXJyZW50Rm9sZGVyLmRhdGFbQmFzZU9iamVjdFR5cGVGaWVsZC5QQVJFTlRfSURdIHx8IERSSVZFX1JPT1RfRk9MREVSX0lEXSwge1xuICAgICAgICAgIHJlbGF0aXZlVG86IHRoaXMucm91dGUsXG4gICAgICAgICAgcmVwbGFjZVVybDogdHJ1ZVxuICAgICAgICB9KVxuICAgICAgICAudGhlbigoKSA9PiB0aGlzLmRyaXZlLnNldEJ1c3koZmFsc2UpKTtcbiAgICB9XG4gIH1cblxuICBzZXRCdXN5KGJ1c3k6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmRyaXZlLnNldEJ1c3koYnVzeSk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMudGlsZUxpc3QoKT8ucmVmcmVzaCgpO1xuICAgIHRoaXMuZHJpdmUuc2V0U2VsZWN0aW9uKFtdKTtcbiAgfVxuXG4gIG9uTGF5b3V0U2V0dGluZ3NDaGFuZ2UoZTogYW55KSB7XG4gICAgdGhpcy4jYXBwQ2FjaGUuc2V0SXRlbSh0aGlzLiNMQVlPVVRfU0VUVElOR1NfU1RPUkFHRV9LRVksIGUpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgI2FwcGx5TGF5b3V0U2V0dGluZ3Moc2V0dGluZ3M6IFNwbGl0Vmlld0xheW91dFNldHRpbmdzKSB7XG4gICAgdGhpcy5zcGxpdFZpZXdDbXAoKS5hcHBseUxheW91dFNldHRpbmdzKHNldHRpbmdzKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNhcHBDYWNoZS5nZXRJdGVtKHRoaXMuI0xBWU9VVF9TRVRUSU5HU19TVE9SQUdFX0tFWSkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChsczogU3BsaXRWaWV3TGF5b3V0U2V0dGluZ3MpID0+IHtcbiAgICAgICAgaWYgKGxzKSB7XG4gICAgICAgICAgdGhpcy5lbmFibGVEZXRhaWxzLnNldChscy5hcmVhc1syXT8udmlzaWJsZSk7XG4gICAgICAgICAgdGhpcy5lbmFibGVUcmVlLnNldChscy5hcmVhc1swXT8udmlzaWJsZSk7XG4gICAgICAgICAgdGhpcy4jYXBwbHlMYXlvdXRTZXR0aW5ncyhscyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY2xpcGJvYXJkLmNsZWFyKEFQUF9JRCk7XG4gIH1cbn1cbiIsIjxoZWFkZXI+XG4gIDwhLS0gbmF2aWdhdGlvbiBiYXIgLS0+XG4gIDxuYXYgW2F0dHIuYXJpYS1sYWJlbF09XCIneXV2LmFwcC5kcml2ZS5maWxlcy5uYXZpYWd0aW9uLmFyaWEubGFiZWwnIHwgdHJhbnNsYXRlXCI+XG4gICAgPGRpdiBjbGFzcz1cIm5hdlwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJhY2tcIiBbZGlzYWJsZWRdPVwiIWN1cnJlbnRGb2xkZXJcIiB0aXRsZT1cInt7ICd5dXYuYXBwLmRyaXZlLmZpbGVzLm5hdi5iYWNrLnRvb2x0aXAnIHwgdHJhbnNsYXRlIH19XCIgKGNsaWNrKT1cIm9wZW5QYXJlbnQoKVwiPlxuICAgICAgICA8eXZjLWljb24gW3N2Z109XCJpY29ucy5iYWNrXCI+PC95dmMtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlZnJlc2hcIiB0aXRsZT1cInt7ICd5dXYuYXBwLmRyaXZlLmZpbGVzLm5hdi5yZWZyZXNoLnRvb2x0aXAnIHwgdHJhbnNsYXRlIH19XCIgKGNsaWNrKT1cInJlZnJlc2goKVwiPlxuICAgICAgICA8eXZjLWljb24gW3N2Z109XCJpY29ucy5yZWZyZXNoXCI+PC95dmMtaWNvbj5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgQGlmICghcXVlcnkoKT8udGVybSkge1xuICAgICAgPHltZC1icmVhZGNydW1iPjwveW1kLWJyZWFkY3J1bWI+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiYnJlYWRjcnVtYlwiPjwvZGl2PlxuICAgIH1cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoXCI+XG4gICAgICA8eW1kLWRyaXZlLXNlYXJjaD48L3ltZC1kcml2ZS1zZWFyY2g+XG4gICAgPC9kaXY+XG4gIDwvbmF2PlxuXG4gIDwhLS0gcmliYm9uIHdpdGggYWN0aW9ucyBhbmQgb3B0aW9ucyAtLT5cbiAgPHltZC1yaWJib24gW29iamVjdHNdPVwic2VsZWN0aW9uKClcIiBbYnVzeV09XCJidXN5KClcIiBbZW5hYmxlQ2xpcGJvYXJkXT1cInRydWVcIj5cbiAgICA8bmctdGVtcGxhdGUgI3ByaW1hcnlBY3Rpb25zPlxuICAgICAgPHltZC1hZGQtYnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlQ3JlYXRlXCI+PC95bWQtYWRkLWJ1dHRvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlICNzZWNvbmRhcnlBY3Rpb25zPlxuICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnNcIj5cbiAgICAgICAgQGlmICghc21hbGxTY3JlZW5MYXlvdXQoKSkge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwidG9nZ2xlLXRyZWUgdG9nZ2xlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgZW5hYmxlZDogZW5hYmxlVHJlZSgpIH1cIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAneXV2LmFwcC5kcml2ZS5maWxlcy50b2dnbGV0cmVlLnRvb2x0aXAnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIChjbGljayk9XCJlbmFibGVUcmVlLnNldCghZW5hYmxlVHJlZSgpKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHl2Yy1pY29uIFtzdmddPVwiaWNvbnMudG9nZ2xlTGVmdFwiPjwveXZjLWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJ0b2dnbGUtZGV0YWlscyB0b2dnbGVcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBlbmFibGVkOiBlbmFibGVEZXRhaWxzKCkgfVwiXG4gICAgICAgICAgICB0aXRsZT1cInt7ICd5dXYuYXBwLmRyaXZlLmZpbGVzLnRvZ2dsZWRldGFpbHMudG9vbHRpcCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVuYWJsZURldGFpbHMuc2V0KCFlbmFibGVEZXRhaWxzKCkpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8eXZjLWljb24gW3N2Z109XCJpY29ucy50b2dnbGVSaWdodFwiPjwveXZjLWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgICAgPHl1di10aWxlLWNvbmZpZy10cmlnZ2VyXG4gICAgICAgICAgW2ljb25dPVwiaWNvbnMuc2V0dGluZ3NcIlxuICAgICAgICAgIFtidWNrZXRdPVwib2JqZWN0Q29uZmlnQnVja2V0XCJcbiAgICAgICAgICBbYnVja2V0TGFiZWxdPVwidGlsZUNvbmZpZ0J1Y2tldExhYmVsXCJcbiAgICAgICAgICBbb3B0aW9uc109XCJ0aWxlTGlzdE9wdGlvbnNcIlxuICAgICAgICA+PC95dXYtdGlsZS1jb25maWctdHJpZ2dlcj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwveW1kLXJpYmJvbj5cbjwvaGVhZGVyPlxuXG48eXZjLXNwbGl0LXZpZXcgW2d1dHRlclNpemVdPVwiMVwiIChsYXlvdXRTZXR0aW5nc0NoYW5nZSk9XCJvbkxheW91dFNldHRpbmdzQ2hhbmdlKCRldmVudClcIj5cbiAgPCEtLSBmb2xkZXIgdHJlZSAtLT5cbiAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbc2l6ZV09XCIyMFwiIFt2aXNpYmxlXT1cImVuYWJsZVRyZWUoKSAmJiAhc21hbGxTY3JlZW5MYXlvdXQoKVwiPlxuICAgIDx5bWQtZm9sZGVyLXRyZWUgeXV2Rm9jdXNhYmxlPVwiVHJlZVwiPjwveW1kLWZvbGRlci10cmVlPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDwhLS0gZmlsZXMgLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiNjBcIj5cbiAgICBAbGV0IGVyciA9IGVycm9yKCk7XG4gICAgQGlmIChlcnIpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJlcnJvclwiPlxuICAgICAgICA8cD5cbiAgICAgICAgICA8eXZjLWljb24gW3N2Z109XCJpY29ucy5hdHRlbnRpb25cIj48L3l2Yy1pY29uPlxuICAgICAgICAgIEBzd2l0Y2ggKGVycikge1xuICAgICAgICAgICAgQGNhc2UgKEVSUk9SX0NPREUuTk9UX0ZPVU5EKSB7XG4gICAgICAgICAgICAgIHt7ICd5dXYuYXBwLmRyaXZlLmZpbGVzLmVycm9yLmxvYWQubm90LWZvdW5kJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGNhc2UgKEVSUk9SX0NPREUuSU5WQUxJRF9JRCkge1xuICAgICAgICAgICAgICB7eyAneXV2LmFwcC5kcml2ZS5maWxlcy5lcnJvci5sb2FkLmludmFsaWQtaWQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgIHt7ICd5dXYuYXBwLmRyaXZlLmZpbGVzLmVycm9yLmxvYWQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlc1wiIFt5dXZGaWxlRHJvcFpvbmVdPVwieyBsYWJlbDogJ3l1di5hcHAuZHJpdmUuZmlsZXMuZHJvcHpvbmUubGFiZWwnIHwgdHJhbnNsYXRlIH1cIiAoZmlsZURyb3ApPVwib25GaWxlRHJvcCgkZXZlbnQpXCI+XG4gICAgICAgIDxoZWFkZXIgY2xhc3M9XCJmaWxlcy1oZWFkZXJcIj5cbiAgICAgICAgICA8aDE+e3sgcXVlcnlUaXRsZSgpIH19PC9oMT5cbiAgICAgICAgICBAaWYgKHF1ZXJ5KCk/LnRlcm0gJiYgIWV4dGVuZGVkUXVlcnkoKSkge1xuICAgICAgICAgICAgPHltZC1zZWFyY2gtZmlsdGVyIFtxdWVyeV09XCJxdWVyeSgpXCIgKHF1ZXJ5Q2hhbmdlKT1cIm9uRmlsdGVyUXVlcnlDaGFuZ2UoJGV2ZW50KVwiPjwveW1kLXNlYXJjaC1maWx0ZXI+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoc29ydE9wdGlvbnNBdmFpbGFibGUoKSkge1xuICAgICAgICAgICAgPHltZC1zb3J0IC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGF2b3JzXCI+XG4gICAgICAgICAgICA8IS0tIFRPRE86IGVuYWJsZSBhZ2FpbiBvbmNlIGZsYXZvcnMvYXNwZWN0cyBhcmUgc3VwcG9ydGVkIC0tPlxuICAgICAgICAgICAgPCEtLSAgQGZvciAoZiBvZiBmbGF2b3JDaGlwczsgdHJhY2sgZi5pZCkge1xuICAgICAgICAgICAgPHl1di1mbGF2b3ItY2hpcCBbbmdDbGFzc109XCJ7IGFjdGl2ZTogZi5pZCA9PT0gYXBwbGllZEZsYXZvcj8uaWQgfVwiIFtmbGF2b3JdPVwiZlwiIChjbGljayk9XCJhcHBsaWVkRmxhdm9yID0gZlwiPjwveXV2LWZsYXZvci1jaGlwPlxuICAgICAgICAgIH0tLT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgPHl1di10aWxlLWxpc3RcbiAgICAgICAgICAjdGlsZUxpc3RcbiAgICAgICAgICBjbGFzcz1cInN0YWdnZXJlZFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIneXV2LmFwcC5kcml2ZS5maWxlcy5jb250ZW50LmFyaWEubGFiZWwnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWJ1c3ldPVwiYnVzeSgpXCJcbiAgICAgICAgICBbYXR0ci5yb2xlXT1cIidsaXN0Ym94J1wiXG4gICAgICAgICAgKGtleWRvd24uZGVsZXRlKT1cIm9uRGVsZXRlKClcIlxuICAgICAgICAgIFtidWNrZXRdPVwib2JqZWN0Q29uZmlnQnVja2V0XCJcbiAgICAgICAgICBbbXVsdGlzZWxlY3RdPVwidHJ1ZVwiXG4gICAgICAgICAgW3F1ZXJ5XT1cInF1ZXJ5KClcIlxuICAgICAgICAgIFtmbGF2b3JdPVwiYXBwbGllZEZsYXZvclwiXG4gICAgICAgICAgW29wdGlvbnNdPVwidGlsZUxpc3RPcHRpb25zXCJcbiAgICAgICAgICAoaXRlbURibENsaWNrKT1cIml0ZW1Eb3VibGVDbGlja2VkKCRldmVudClcIlxuICAgICAgICAgIChpdGVtU2VsZWN0KT1cIml0ZW1DbGlja2VkKCRldmVudClcIlxuICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoY29weSk9XCJvbkNvcHkoJGV2ZW50KVwiXG4gICAgICAgICAgKGN1dCk9XCJvbkN1dCgkZXZlbnQpXCJcbiAgICAgICAgICAoYnVzeSk9XCJzZXRCdXN5KCRldmVudClcIlxuICAgICAgICAgIChjdHhNZW51KT1cIm9uQ29udGV4dG1lbnUoJGV2ZW50KVwiXG4gICAgICAgICAgW2hpZ2hsaWdodHNdPVwiaGlnaGxpZ2h0U3R5bGVzJCB8IGFzeW5jXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgI2VtcHR5PlxuICAgICAgICAgICAgQGlmIChlbXB0eU1vZGUoKSA9PT0gJ3Jvb3QnKSB7XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwiZW1wdHlcIj57eyAneXV2LmFwcC5kcml2ZS5maWxlcy5jb250ZW50LmVtcHR5LnJvb3QubGlzdCcgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgICB9IEBlbHNlIGlmIChlbXB0eU1vZGUoKSA9PT0gJ3F1ZXJ5Jykge1xuICAgICAgICAgICAgICA8cCBjbGFzcz1cImVtcHR5XCI+e3sgJ3l1di5hcHAuZHJpdmUuZmlsZXMuY29udGVudC5lbXB0eS5xdWVyeS5saXN0JyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICA8cCBjbGFzcz1cImVtcHR5XCI+e3sgJ3l1di5hcHAuZHJpdmUuZmlsZXMuY29udGVudC5lbXB0eS5saXN0JyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC95dXYtdGlsZS1saXN0PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDwhLS0gZGV0YWlscyAtLT5cbiAgPG5nLXRlbXBsYXRlIHl2Y1NwbGl0QXJlYSBbc2l6ZV09XCIyMFwiIFt2aXNpYmxlXT1cImVuYWJsZURldGFpbHMoKVwiPlxuICAgIEBsZXQgc2VsZWN0ZWRJdGVtID0gc2VsZWN0ZWQoKTtcbiAgICBAaWYgKGVuYWJsZURldGFpbHMoKSAmJiBzZWxlY3RlZEl0ZW0pIHtcbiAgICAgIEBpZiAoc2VsZWN0ZWRJdGVtPy5pc0ZvbGRlcikge1xuICAgICAgICA8eXV2LW9iamVjdC1zdW1tYXJ5IFtjb25maWdUeXBlXT1cImNvbmZpZ1R5cGVPcHRpb25zWydmb2xkZXInXVwiIFtkbXNPYmplY3RdPVwic2VsZWN0ZWRJdGVtXCI+PC95dXYtb2JqZWN0LXN1bW1hcnk+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHl1di1vYmplY3Qtc3VtbWFyeVxuICAgICAgICAgIFtjb25maWdUeXBlXT1cImNvbmZpZ1R5cGVPcHRpb25zWydmaWxlJ11cIlxuICAgICAgICAgIFtkbXNPYmplY3RdPVwic2VsZWN0ZWRJdGVtXCJcbiAgICAgICAgICBbeXV2RmlsZURyb3Bab25lXT1cInsgbGFiZWw6ICd5dXYuYXBwLmRyaXZlLmZpbGVzLmRyb3B6b25lLmNvbnRlbnQucmVwbGFjZS5sYWJlbCcgfCB0cmFuc2xhdGUgfVwiXG4gICAgICAgICAgW2ZpbGVEcm9wRGlzYWJsZWRdPVwiZmlsZURyb3BTdW1tYXJ5RGlzYWJsZWQoKVwiXG4gICAgICAgICAgKGZpbGVEcm9wKT1cIm9uRmlsZVVwZGF0ZURyb3AoJGV2ZW50KVwiXG4gICAgICAgID48L3l1di1vYmplY3Qtc3VtbWFyeT5cbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBsZXQgc2VsID0gc2VsZWN0aW9uKCk7XG4gICAgICBAaWYgKHNlbCAmJiBzZWwubGVuZ3RoID4gMCkge1xuICAgICAgICA8eXV2LW11bHRpLW9iamVjdC1zdW1tYXJ5IFtoZWFkbGluZV09XCIneXV2LmFwcC5kcml2ZS5tdWx0aXNlbGVjdGVkLmRldGFpbHMnIHwgdHJhbnNsYXRlOiB7IGNvdW50OiBzZWxlY3Rpb24oKS5sZW5ndGggfVwiPjwveXV2LW11bHRpLW9iamVjdC1zdW1tYXJ5PlxuICAgICAgfSBAZWxzZSBpZiAodGlsZUxpc3QoKT8uaXRlbXM/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICA8IS0tIFRPRE86IENIT1VMRCBIQVZFIEEgRElGRkVSRU5UIE1FU1NBR0UgRk9SIEVNUFRZIFJFU1VMVFMgRU1QVFkgRk9SIE5PVyAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj57eyAneXV2LmFwcC5kcml2ZS5lbXB0eS5yZXN1bHRzLmRldGFpbHMubWVzc2FnZScgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZVwiPnt7ICd5dXYuYXBwLmRyaXZlLnVuc2VsZWN0ZWQuZGV0YWlscycgfCB0cmFuc2xhdGUgfX08L2Rpdj5cbiAgICAgIH1cbiAgICB9XG4gIDwvbmctdGVtcGxhdGU+XG48L3l2Yy1zcGxpdC12aWV3PlxuIl19
|
|
382
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHBzL2RyaXZlL3NyYy9saWIvcGFnZXMvZmlsZXMvZmlsZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcHBzL2RyaXZlL3NyYy9saWIvcGFnZXMvZmlsZXMvZmlsZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVyRCxPQUFPLEVBQWlCLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUdoQixhQUFhLEVBRWIsVUFBVSxFQUNWLFlBQVksRUFDWixtQkFBbUIsRUFDbkIsUUFBUSxFQUVSLGdCQUFnQixFQUVoQixVQUFVLEVBQ1YsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixZQUFZLEVBQ2IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQVUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsc0JBQXNCLEVBQUUsTUFB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QUFvQiw2REFRb0MscUJBQXFCOzs0RkFPbEUsa0JBQWtCO2tCQVY5QixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsVUFBVSxFQUFFLHFCQUFxQixDQUFDLFFBR3hFO3dCQUNKLHFCQUFxQixFQUFFLHFCQUFxQjtxQkFDN0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgaW5wdXQsIE9uRGVzdHJveSwgc2lnbmFsLCB1bnRyYWNrZWQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1NYXAsIFJvdXRlciwgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7XG4gIEFwcENhY2hlU2VydmljZSxcbiAgQmFzZU9iamVjdFR5cGVGaWVsZCxcbiAgQ2xpcGJvYXJkU2VydmljZSxcbiAgQ29uZmlnVHlwZU9wdGlvbixcbiAgRGV2aWNlU2NyZWVuLFxuICBEZXZpY2VTZXJ2aWNlLFxuICBEbXNPYmplY3QsXG4gIERtc1NlcnZpY2UsXG4gIEV2ZW50U2VydmljZSxcbiAgT2JqZWN0Q29uZmlnU2VydmljZSxcbiAgT3BlcmF0b3IsXG4gIFJlc29sdmVkT2JqZWN0Q29uZmlnLFxuICBSZXRlbnRpb25TZXJ2aWNlLFxuICBTZWFyY2hRdWVyeSxcbiAgU3lzdGVtVHlwZSxcbiAgVHJhbnNsYXRlTW9kdWxlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxuICBZdXZFdmVudFR5cGVcbn0gZnJvbSAnQHl1dXZpcy9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24sIEFjdGlvbnNTZXJ2aWNlLCBCQVNFX0FDVElPTiB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9hY3Rpb25zJztcbmltcG9ydCB7IEZpbGVEcm9wWm9uZURpcmVjdGl2ZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9jb21tb24nO1xuaW1wb3J0IHsgWVVWX0lDT05TIH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL2ljb25zJztcbmltcG9ydCB7IE11bHRpT2JqZWN0U3VtbWFyeUNvbXBvbmVudCwgT2JqZWN0U3VtbWFyeUNvbXBvbmVudCB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LWZyYW1ld29yay9vYmplY3Qtc3VtbWFyeSc7XG5pbXBvcnQgeyBTaW1wbGVTZWFyY2hDb21wb25lbnQgfSBmcm9tICdAeXV1dmlzL2NsaWVudC1mcmFtZXdvcmsvc2ltcGxlLXNlYXJjaCc7XG5pbXBvcnQgeyBUaWxlQ29uZmlnVHJpZ2dlckNvbXBvbmVudCwgVGlsZURhdGEsIFRpbGVMaXN0Q29tcG9uZW50LCBUaWxlTGlzdENvbmZpZ09wdGlvbnMsIFRpbGVMaXN0SGlnaGxpZ2h0IH0gZnJvbSAnQHl1dXZpcy9jbGllbnQtZnJhbWV3b3JrL3RpbGUtbGlzdCc7XG5pbXBvcnQgeyBPYmplY3RGbGF2b3IsIFNoZWxsU2VydmljZSB9IGZyb20gJ0B5dXV2aXMvY2xpZW50LXNoZWxsLWNvcmUnO1xuaW1wb3J0IHsgSUNPTlMsIFl2Y0ljb25Nb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBTcGxpdFZpZXdDb21wb25lbnQsIFNwbGl0Vmlld0xheW91dFNldHRpbmdzLCBZdmNTcGxpdFZpZXdNb2R1bGUgfSBmcm9tICdAeXV1dmlzL2NvbXBvbmVudHMvc3BsaXQtdmlldyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgbWFwLCBPYnNlcnZhYmxlLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJyZWFkY3J1bWJDb21wb25lbnQsIERyaXZlU2VhcmNoQ29tcG9uZW50LCBTb3J0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBZGRCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2FkZC1idXR0b24vYWRkLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9sZGVyVHJlZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZm9sZGVyLXRyZWUvZm9sZGVyLXRyZWUuY29tcG9uZW50JztcbmltcG9ydCB7IFJpYmJvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvcmliYm9uL3JpYmJvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9zZWFyY2gtZmlsdGVyL3NlYXJjaC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFQUF9EUklWRV9JQ09OUyB9IGZyb20gJy4uLy4uL2RyaXZlLmljb25zJztcbmltcG9ydCB7IEFDVElPTl9DT05URVhULCBBUFBfSUQsIEFQUF9TQ0hFTUEgfSBmcm9tICcuLi8uLi9kcml2ZS5zY2hlbWEnO1xuaW1wb3J0IHsgRFJJVkVfRVZFTlQsIERSSVZFX1FVRVJZX0ZPTERFUl9JRCwgRFJJVkVfUk9PVF9GT0xERVJfSUQsIERyaXZlRm9sZGVySWQgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kcml2ZS9kcml2ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRHJpdmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZHJpdmUvZHJpdmUuc2VydmljZSc7XG5pbXBvcnQgeyBTVE9SRURfUVVFUllfSURfUFJFRklYIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RvcmVkLXF1ZXJ5L3N0b3JlZC1xdWVyeS5kYXRhJztcbmltcG9ydCB7IFN0b3JlZFF1ZXJ5IH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RvcmVkLXF1ZXJ5L3N0b3JlZC1xdWVyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU3RvcmVkUXVlcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3RvcmVkLXF1ZXJ5L3N0b3JlZC1xdWVyeS5zZXJ2aWNlJztcblxuY29uc3QgY29tcG9uZW50cyA9IFtcbiAgVGlsZUxpc3RDb21wb25lbnQsXG4gIEJyZWFkY3J1bWJDb21wb25lbnQsXG4gIEZvbGRlclRyZWVDb21wb25lbnQsXG4gIE9iamVjdFN1bW1hcnlDb21wb25lbnQsXG4gIFRpbGVDb25maWdUcmlnZ2VyQ29tcG9uZW50LFxuICBSaWJib25Db21wb25lbnQsXG4gIEFkZEJ1dHRvbkNvbXBvbmVudCxcbiAgU2ltcGxlU2VhcmNoQ29tcG9uZW50LFxuICBNdWx0aU9iamVjdFN1bW1hcnlDb21wb25lbnQsXG4gIFNvcnRDb21wb25lbnQsXG4gIFNlYXJjaEZpbHRlckNvbXBvbmVudCxcbiAgRHJpdmVTZWFyY2hDb21wb25lbnRcbl07XG5cbmNvbnN0IG1vZHVsZSA9IFtZdmNJY29uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIFJvdXRlck1vZHVsZSwgWXZjU3BsaXRWaWV3TW9kdWxlXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAneW1kLWZpbGVzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIEFzeW5jUGlwZSwgLi4ubW9kdWxlLCAuLi5jb21wb25lbnRzLCBGaWxlRHJvcFpvbmVEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZmlsZXMuY29tcG9uZW50LnNjc3MnLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5zbWFsbFNjcmVlbl0nOiAnc21hbGxTY3JlZW5MYXlvdXQoKSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlc1BhZ2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICB0aWxlTGlzdCA9IHZpZXdDaGlsZDxUaWxlTGlzdENvbXBvbmVudD4oJ3RpbGVMaXN0Jyk7XG5cbiAgI0xBWU9VVF9TRVRUSU5HU19TVE9SQUdFX0tFWSA9ICd5dXYuYXBwLmRyaXZlLmZpbGVzLmxheW91dCc7XG5cbiAgcHJpdmF0ZSBzaGVsbFNlcnZpY2UgPSBpbmplY3QoU2hlbGxTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBkbXNTZXJ2aWNlID0gaW5qZWN0KERtc1NlcnZpY2UpO1xuICBwcml2YXRlIGRyaXZlID0gaW5qZWN0KERyaXZlU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBzdG9yZWRRdWVyeVNlcnZpY2UgPSBpbmplY3QoU3RvcmVkUXVlcnlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBjbGlwYm9hcmQgPSBpbmplY3QoQ2xpcGJvYXJkU2VydmljZSk7XG4gIHByaXZhdGUgYWN0aW9uc1NlcnZpY2UgPSBpbmplY3QoQWN0aW9uc1NlcnZpY2UpO1xuICByZWFkb25seSAjb2JqZWN0Q29uZmlnU2VydmljZSA9IGluamVjdChPYmplY3RDb25maWdTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI2RldmljZSA9IGluamVjdChEZXZpY2VTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgI3JldGVudGlvbiA9IGluamVjdChSZXRlbnRpb25TZXJ2aWNlKTtcblxuICByZWFkb25seSAjZXZlbnRTZXJ2aWNlID0gaW5qZWN0KEV2ZW50U2VydmljZSk7XG5cbiAgcmVhZG9ubHkgRVJST1JfQ09ERSA9IHtcbiAgICBOT1RfRk9VTkQ6ICc0MDQnLFxuICAgIC8vIHBhdHRlcm46IHtIVFRQX1NUQVRVU19DT0RFfS17U0VSVklDRV9FUlJPUl9DT0RFfVxuICAgIElOVkFMSURfSUQ6ICc0MjItMjkxMidcbiAgfTtcblxuICAjYXBwQ2FjaGUgPSBpbmplY3QoQXBwQ2FjaGVTZXJ2aWNlKTtcblxuICBvYmplY3RDb25maWdCdWNrZXQ6IHN0cmluZyA9IEFQUF9TQ0hFTUEuaWQ7XG5cbiAgc3BsaXRWaWV3Q21wID0gdmlld0NoaWxkLnJlcXVpcmVkKFNwbGl0Vmlld0NvbXBvbmVudCk7XG4gIHNlbGVjdGVkID0gc2lnbmFsPERtc09iamVjdCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgZmlsZURyb3BTdW1tYXJ5RGlzYWJsZWQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgZSA9IHRoaXMuc2VsZWN0ZWQoKTtcbiAgICByZXR1cm4gIWUgfHwgIWUucGVybWlzc2lvbnM/LndyaXRlQ29udGVudCB8fCB0aGlzLiNyZXRlbnRpb24uZ2V0UmV0ZW50aW9uU3RhdGUoZSkudW5kZXJSZXRlbnRpb247XG4gIH0pO1xuICBkaXNhYmxlQ3JlYXRlID0gZmFsc2U7XG5cbiAgYWN0aW9ucyA9IHRoaXMuZHJpdmUuc3RhdGUkLmFjdGlvbnM7XG4gIHNlbGVjdGlvbiA9IHRoaXMuZHJpdmUuc3RhdGUkLnNlbGVjdGlvbjtcbiAgZXh0ZW5kZWRRdWVyeSA9IHRoaXMuZHJpdmUuc3RhdGUkLmV4dGVuZGVkUXVlcnk7XG5cbiAgYnVzeSA9IHRoaXMuZHJpdmUuc3RhdGUkLmJ1c3k7XG4gIGZsYXZvckNoaXBzOiBPYmplY3RGbGF2b3JbXSA9IHRoaXMuc2hlbGxTZXJ2aWNlLmdldE9iamVjdEZsYXZvcnMoKTtcbiAgYXBwbGllZEZsYXZvcj86IE9iamVjdEZsYXZvcjtcblxuICBzZWxlY3Rpb25BY3Rpb25zID0gY29tcHV0ZWQoKCkgPT4gKHsgc2VsZWN0aW9uOiB0aGlzLnNlbGVjdGlvbigpLCBhY3Rpb25zOiB0aGlzLmFjdGlvbnMoKSB9KSk7XG5cbiAgZW1wdHlNb2RlID0gc2lnbmFsPERyaXZlRm9sZGVySWQgfCBudWxsPihudWxsKTtcbiAgLy8gZXJyb3IgY29kZSB3aGVuIGxvYWRpbmcgdGhlIG9iamVjdCBmYWlsZWQuIFRoaXMgd2lsbCBiZSB1c2VkXG4gIC8vIHRvIGRldGVybWluZSBhIHByb3BlciBlcnJvciBtZXNzYWdlIHRvIGRpc3BsYXlcbiAgZXJyb3IgPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIGNvbmZpZ1R5cGVPcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBDb25maWdUeXBlT3B0aW9uPiA9IHtcbiAgICBmb2xkZXI6IHsgYnVja2V0OiBBUFBfSUQsIHR5cGU6IEFQUF9TQ0hFTUEudHlwZXNbJ2ZvbGRlciddIH0sXG4gICAgZmlsZTogeyBidWNrZXQ6IEFQUF9JRCwgdHlwZTogQVBQX1NDSEVNQS50eXBlc1snZmlsZSddIH1cbiAgfTtcblxuICBjdXJyZW50Rm9sZGVySUQ/OiBzdHJpbmc7XG4gIGN1cnJlbnRGb2xkZXI/OiBEbXNPYmplY3Q7XG4gIGVuYWJsZURldGFpbHMgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XG4gIGVuYWJsZVRyZWUgPSBzaWduYWw8Ym9vbGVhbj4odHJ1ZSk7XG4gIHRpbGVDb25maWdCdWNrZXRMYWJlbCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hcHAuZHJpdmUudGlsZS1jb25maWcuYnVja2V0Jyk7XG5cbiAgc21hbGxTY3JlZW5MYXlvdXQgPSBzaWduYWwoZmFsc2UpO1xuICBzb3J0T3B0aW9uc0F2YWlsYWJsZSA9IHNpZ25hbCh0cnVlKTtcbiAgZXh0ZW5kZWRTZWFyY2ggPSBzaWduYWwoZmFsc2UpO1xuXG4gIGlkID0gaW5wdXQ8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgaGlnaGxpZ2h0U3R5bGVzJDogT2JzZXJ2YWJsZTxUaWxlTGlzdEhpZ2hsaWdodFtdPiA9IHRoaXMuY2xpcGJvYXJkLmNsaXBib2FyZCQoQVBQX0lEKS5waXBlKFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgIG1hcCgoYykgPT4ge1xuICAgICAgcmV0dXJuIGMgJiYgYy5tb2RlICYmIGMub2JqZWN0cz8ubGVuZ3RoXG4gICAgICAgID8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjc3NTdHlsZXM6IHRoaXMuI2hpZ2hsaWdodFN0eWxlc1tjPy5tb2RlXSxcbiAgICAgICAgICAgICAgaWRzOiBjLm9iamVjdHMubWFwKChvKSA9PiBvLmlkKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXTtcbiAgICB9KVxuICApO1xuXG4gIHJlYWRvbmx5ICNoaWdobGlnaHRTdHlsZXM6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHVua25vd24+PiA9IHtcbiAgICBjdXQ6IHsgb3BhY2l0eTogMC41IH1cbiAgfTtcblxuICAjcm91dGVJZEVmZmVjdCA9IGVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgcGFyYW0gPSB0aGlzLmlkKCkgfHwgdW5kZWZpbmVkO1xuXG4gICAgdW50cmFja2VkKGFzeW5jICgpID0+IHtcbiAgICAgIGlmIChwYXJhbSA9PT0gRFJJVkVfUVVFUllfRk9MREVSX0lEKSB7XG4gICAgICAgIHRoaXMuZW1wdHlNb2RlLnNldChEUklWRV9RVUVSWV9GT0xERVJfSUQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZW1wdHlNb2RlLnNldChwYXJhbSA9PT0gRFJJVkVfUk9PVF9GT0xERVJfSUQgPyBEUklWRV9ST09UX0ZPTERFUl9JRCA6IG51bGwpO1xuICAgICAgdGhpcy5lcnJvci5zZXQodW5kZWZpbmVkKTtcbiAgICAgIHRoaXMuZGlzYWJsZUNyZWF0ZSA9IGZhbHNlO1xuICAgICAgdGhpcy5jdXJyZW50Rm9sZGVySUQgPSBwYXJhbTtcbiAgICAgIHRoaXMuZHJpdmUudXBkYXRlQ3VycmVudEZvbGRlcih0aGlzLmN1cnJlbnRGb2xkZXJJRCk7XG4gICAgICB0aGlzLnNlbGVjdGVkLnNldCh1bmRlZmluZWQpO1xuICAgICAgdGhpcy5jdXJyZW50Rm9sZGVyID0gdW5kZWZpbmVkO1xuICAgICAgaWYgKHRoaXMuY3VycmVudEZvbGRlcklEID09PSBEUklWRV9ST09UX0ZPTERFUl9JRCkgdGhpcy5jdXJyZW50Rm9sZGVySUQgPSB1bmRlZmluZWQ7XG5cbiAgICAgIGlmICh0aGlzLmN1cnJlbnRGb2xkZXJJRCkge1xuICAgICAgICB0aGlzLmRtc1NlcnZpY2UuZ2V0RG1zT2JqZWN0KHRoaXMuY3VycmVudEZvbGRlcklEKS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChvOiBEbXNPYmplY3QpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudEZvbGRlciA9IG87XG4gICAgICAgICAgICB0aGlzLl9zZXRGb2xkZXJRdWVyeSh0aGlzLiNnZXRUaXRsZShvKSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGUpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGdldHRpbmcgZm9sZGVyJywgZSk7XG4gICAgICAgICAgICB0aGlzLiNwcm9jZXNzTG9hZEVycm9yKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2UgdGhpcy5fc2V0Rm9sZGVyUXVlcnkodGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmFwcC5kcml2ZS5mb2xkZXItdHJlZS5teWRyaXZlJykpO1xuICAgIH0pO1xuICB9KTtcblxuICB0aWxlTGlzdE9wdGlvbnM6IFRpbGVMaXN0Q29uZmlnT3B0aW9ucyA9IHtcbiAgICBhY3Rpb25Db250ZXh0OiBBQ1RJT05fQ09OVEVYVCxcbiAgICBjb25maWdUeXBlczogT2JqZWN0LnZhbHVlcyhBUFBfU0NIRU1BLnR5cGVzKSxcbiAgICBjb25maWdGbGF2b3JzOiBbLi4udGhpcy5zaGVsbFNlcnZpY2UuZ2V0T2JqZWN0Rmxhdm9ycygpLCAuLi5BUFBfU0NIRU1BLmZsYXZvcnMuZmlsdGVyKChmKSA9PiAhZi5hcHBsaWNhYmxlVG8pLm1hcCgoZikgPT4gKHsgLi4uZiwgYXBwOiBBUFBfSUQgfSkpXVxuICB9O1xuXG4gIHF1ZXJ5ID0gdGhpcy5kcml2ZS5zdGF0ZSQucXVlcnk7XG4gIHF1ZXJ5VGl0bGUgPSB0aGlzLmRyaXZlLnN0YXRlJC5xdWVyeVRpdGxlO1xuXG4gIGljb25zID0ge1xuICAgIC4uLkFQUF9EUklWRV9JQ09OUyxcbiAgICBzb3J0OiBBUFBfRFJJVkVfSUNPTlMuc29ydCxcbiAgICBiYWNrOiBZVVZfSUNPTlMuYmFjayxcbiAgICBhdHRlbnRpb246IFlVVl9JQ09OUy5hdHRlbnRpb24sXG4gICAgcmVmcmVzaDogWVVWX0lDT05TLnJlZnJlc2gsXG4gICAgY2xlYXI6IElDT05TLmNsZWFyXG4gIH07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5kcml2ZS5ldmVudHMkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoZSkgPT4ge1xuICAgICAgICBpZiAoZSA9PT0gRFJJVkVfRVZFTlQucmVmcmVzaCkge1xuICAgICAgICAgIHRoaXMucmVmcmVzaCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLiNkZXZpY2Uuc2NyZWVuQ2hhbmdlJC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHM6IERldmljZVNjcmVlbikgPT4ge1xuICAgICAgICB0aGlzLnNtYWxsU2NyZWVuTGF5b3V0LnNldChzLnNpemUgPT09ICdzJyAmJiBzLm9yaWVudGF0aW9uID09PSAncG9ydHJhaXQnKTtcbiAgICAgICAgdGhpcy5lbmFibGVEZXRhaWxzLnNldCghdGhpcy5zbWFsbFNjcmVlbkxheW91dCgpKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRvT2JzZXJ2YWJsZSh0aGlzLmRyaXZlLnN0YXRlJC5zZWxlY3Rpb24pXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoc2VsOiBEbXNPYmplY3RbXSkgPT4ge1xuICAgICAgICAgIGlmIChzZWw/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy50aWxlTGlzdCgpPy5jbGVhclNlbGVjdGlvbih0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWQuc2V0KHVuZGVmaW5lZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbU1hcC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHA6IFBhcmFtTWFwKSA9PiB7XG4gICAgICAgIHRoaXMuc29ydE9wdGlvbnNBdmFpbGFibGUuc2V0KHRydWUpO1xuICAgICAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXNbJ2lkJ10gPT09IERSSVZFX1FVRVJZX0ZPTERFUl9JRCkge1xuICAgICAgICAgIGNvbnN0IHEgPSBwLmdldCgncScpO1xuICAgICAgICAgIHRoaXMuZGlzYWJsZUNyZWF0ZSA9IHRydWU7XG4gICAgICAgICAgaWYgKHE/LnN0YXJ0c1dpdGgoU1RPUkVEX1FVRVJZX0lEX1BSRUZJWCkpIHtcbiAgICAgICAgICAgIC8vIHN0b3JlZCBxdWVyeVxuICAgICAgICAgICAgY29uc3Qgc3E6IFN0b3JlZFF1ZXJ5IHwgdW5kZWZpbmVkID0gdGhpcy5zdG9yZWRRdWVyeVNlcnZpY2UuZ2V0U3RvcmVkUXVlcnkocSk7XG4gICAgICAgICAgICBpZiAoc3EpIHtcbiAgICAgICAgICAgICAgdGhpcy5kcml2ZS51cGRhdGVRdWVyeShzcS5xdWVyeSwgc3EubGFiZWwpO1xuICAgICAgICAgICAgICB0aGlzLnNvcnRPcHRpb25zQXZhaWxhYmxlLnNldChmYWxzZSk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHEpIHtcbiAgICAgICAgICAgIC8vIHNlYXJjaCBxdWVyeVxuICAgICAgICAgICAgdGhpcy5zb3J0T3B0aW9uc0F2YWlsYWJsZS5zZXQodHJ1ZSk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBjb25zdCBzcTogU2VhcmNoUXVlcnkgPSBKU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChxKSk7XG4gICAgICAgICAgICAgIHNxLmZpbHRlcnMgPSAoc3EuZmlsdGVycyB8fCBbXSkuZmlsdGVyKChmKSA9PiBmLmYgIT09IEJhc2VPYmplY3RUeXBlRmllbGQuUEFSRU5UX0lEKTtcbiAgICAgICAgICAgICAgdGhpcy5kcml2ZS51cGRhdGVRdWVyeShzcSwgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgneXV2LmFwcC5kcml2ZS5maWxlcy5zZWFyY2gucmVzdWx0LnRpdGxlJyksIHAuZ2V0KCdleHQnKSA9PT0gJ3RydWUnKTtcbiAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwYXJzaW5nIHF1ZXJ5JywgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLiNldmVudFNlcnZpY2VcbiAgICAgIC5vbihZdXZFdmVudFR5cGUuRE1TX09CSkVDVF9VUERBVEVEKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgICB0YXAoKGUpID0+IHtcbiAgICAgICAgICB0aGlzLnRpbGVMaXN0KCk/LnVwZGF0ZVRpbGVMaXN0KFtlLmRhdGFdKTtcbiAgICAgICAgICBlLmRhdGEuaWQgPT09IHRoaXMuc2VsZWN0ZWQoKT8uaWQgJiYgdGhpcy5zZWxlY3RlZC5zZXQoZS5kYXRhKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG9uRmlsdGVyUXVlcnlDaGFuZ2UocTogU2VhcmNoUXVlcnkpIHtcbiAgICB0aGlzLmRyaXZlLnVwZGF0ZVF1ZXJ5KHEsIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3l1di5hcHAuZHJpdmUuZmlsZXMuc2VhcmNoLnJlc3VsdC50aXRsZScpKTtcbiAgICB0aGlzLmRyaXZlLnNldFNlbGVjdGlvbihbXSk7XG4gIH1cblxuICAjcHJvY2Vzc0xvYWRFcnJvcihlOiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgIGlmIChgJHtlLnN0YXR1c31gICE9PSB0aGlzLkVSUk9SX0NPREUuTk9UX0ZPVU5EKSB7XG4gICAgICB0aGlzLmVycm9yLnNldChgJHtlLnN0YXR1c30tJHtlLmVycm9yPy5zZXJ2aWNlRXJyb3JDb2RlIHx8ICcnfWApO1xuICAgIH0gZWxzZSB0aGlzLmVycm9yLnNldCh0aGlzLkVSUk9SX0NPREUuTk9UX0ZPVU5EKTtcbiAgfVxuXG4gICNnZXRUaXRsZShvOiBEbXNPYmplY3QpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNmZ1R5cGU6IENvbmZpZ1R5cGVPcHRpb24gPSBvLmlzRm9sZGVyID8gdGhpcy5jb25maWdUeXBlT3B0aW9uc1snZm9sZGVyJ10gOiB0aGlzLmNvbmZpZ1R5cGVPcHRpb25zWydmaWxlJ107XG4gICAgY29uc3Qgb2M6IFJlc29sdmVkT2JqZWN0Q29uZmlnID0gdGhpcy4jb2JqZWN0Q29uZmlnU2VydmljZS5nZXRSZXNvbHZlZE9iamVjdENvbmZpZyhvLmRhdGEsIGNmZ1R5cGUudHlwZSwgY2ZnVHlwZS5idWNrZXQsIHRydWUpO1xuICAgIHJldHVybiBvYy50aXRsZS52YWx1ZTtcbiAgfVxuXG4gIG9uRGVsZXRlKCkge1xuICAgIGNvbnN0IGRlbGV0ZUFjdGlvbiA9IHRoaXMuYWN0aW9ucygpLmZpbmQoKGEpID0+IGEuaWQgPT09IEJBU0VfQUNUSU9OLmRlbGV0ZSk7XG4gICAgaWYgKGRlbGV0ZUFjdGlvbikgZGVsZXRlQWN0aW9uLnJ1bih0aGlzLmRyaXZlLnN0YXRlJC5zZWxlY3Rpb24oKSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRGb2xkZXJRdWVyeShxdWVyeVRpdGxlPzogc3RyaW5nKSB7XG4gICAgdGhpcy5kcml2ZS51cGRhdGVRdWVyeShcbiAgICAgIHtcbiAgICAgICAgZmlsdGVyczogW3sgZjogQmFzZU9iamVjdFR5cGVGaWVsZC5QQVJFTlRfSUQsIG86IE9wZXJhdG9yLkVRVUFMLCB2MTogdGhpcy5jdXJyZW50Rm9sZGVySUQgfHwgbnVsbCB9XVxuICAgICAgfSxcbiAgICAgIHF1ZXJ5VGl0bGVcbiAgICApO1xuICB9XG5cbiAgb25Db250ZXh0bWVudSh7IGV2ZW50IH06IHsgZXZlbnQ6IE1vdXNlRXZlbnQgfCBQb2ludGVyRXZlbnQgfSkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgdGhpcy5hY3Rpb25zU2VydmljZS5vcGVuQ29udGV4dE1lbnUodGhpcy5hY3Rpb25zLCAoYTogQWN0aW9uKSA9PiBhLnJ1bih0aGlzLnNlbGVjdGlvbigpKSwgeyB4OiBldmVudC54LCB5OiBldmVudC55IH0pO1xuICB9XG5cbiAgb25GaWxlRHJvcChmaWxlczogRmlsZVtdKSB7XG4gICAgdGhpcy5kcml2ZS5zZXRCdXN5KHRydWUpO1xuICAgIHRoaXMuZHJpdmUuY2hlY2tOYW1lc0FuZFVwbG9hZChmaWxlcykuc3Vic2NyaWJlKHsgY29tcGxldGU6ICgpID0+IHRoaXMuZHJpdmUuc2V0QnVzeShmYWxzZSkgfSk7XG4gIH1cblxuICBvbkZpbGVVcGRhdGVEcm9wKGZpbGU6IEZpbGVbXSkge1xuICAgIGNvbnN0IGRtc09iamVjdCA9IHRoaXMuc2VsZWN0ZWQoKTtcbiAgICBpZiAoZG1zT2JqZWN0KSB7XG4gICAgICB0aGlzLmRyaXZlLnNldEJ1c3kodHJ1ZSk7XG4gICAgICB0aGlzLmRyaXZlXG4gICAgICAgIC51cGxvYWRDb250ZW50KGRtc09iamVjdC5pZCwgZmlsZVswXSlcbiAgICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5kcml2ZS5zZXRCdXN5KGZhbHNlKSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBpdGVtRm9jdXNlZCh0aWxlOiBUaWxlRGF0YSkge1xuICAgIC8vIGNvbnNvbGUubG9nKHRpbGUpO1xuICB9XG5cbiAgaXRlbUNsaWNrZWQodGlsZTogVGlsZURhdGEpIHtcbiAgICBpZiAodGhpcy5zbWFsbFNjcmVlbkxheW91dCgpKSB0aGlzLml0ZW1Eb3VibGVDbGlja2VkKHRpbGUpO1xuICB9XG5cbiAgb25Db3B5KHRpbGVzOiBUaWxlRGF0YVtdKSB7XG4gICAgdGhpcy5jbGlwYm9hcmQuYWRkT2JqZWN0cyhcbiAgICAgIHRpbGVzLm1hcCgodCkgPT4gdC5kbXNPYmplY3QpLFxuICAgICAgJ2NvcHknLFxuICAgICAgQVBQX0lEXG4gICAgKTtcbiAgfVxuXG4gIG9uQ3V0KHRpbGVzOiBUaWxlRGF0YVtdKSB7XG4gICAgdGhpcy5jbGlwYm9hcmQuYWRkT2JqZWN0cyhcbiAgICAgIHRpbGVzLm1hcCgodCkgPT4gdC5kbXNPYmplY3QpLFxuICAgICAgJ2N1dCcsXG4gICAgICBBUFBfSURcbiAgICApO1xuICB9XG5cbiAgLy8gb25RdWVyeVN1Ym1pdChxOiBTZWFyY2hRdWVyeSkge1xuICAvLyAgIC8vIGluIG9yZGVyIHRvIGtlZXAgdGhlIHF1ZXJ5IGluIHRoZSB1cmwgYXMgc2hvcnQgYXNcbiAgLy8gICAvLyBwb3NzaWJsZSB3ZSdsbCBnZXQgcmlkIG9mIHRoZSBmaWVsZHMgYmVjYXVzZSB0aGV5IGNvdWxkIGJlXG4gIC8vICAgLy8gcmUtYXBwbGllZCBsYXRlciBvblxuICAvLyAgIHEuZmllbGRzID0gdW5kZWZpbmVkO1xuXG4gIC8vICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuLicsICdxdWVyeSddLCB7XG4gIC8vICAgICBxdWVyeVBhcmFtczogeyBxOiBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkocSkpIH0sXG4gIC8vICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlXG4gIC8vICAgfSk7XG4gIC8vIH1cblxuICBzZWxlY3Rpb25DaGFuZ2VkKHRpbGVzOiBUaWxlRGF0YVtdKSB7XG4gICAgaWYgKHRpbGVzLmxlbmd0aCA9PT0gMSkgdGhpcy5sb2FkRGV0YWlscyh0aWxlc1swXS5pZCk7XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLnNldCh1bmRlZmluZWQpO1xuICAgICAgaWYgKHRpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLmRyaXZlLnNldFNlbGVjdGlvbihbXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRyaXZlLnNldEJ1c3kodHJ1ZSk7XG4gICAgICAgIHRoaXMuZG1zU2VydmljZS5nZXREbXNPYmplY3RzKHRpbGVzLm1hcCgoaSkgPT4gaS5pZCkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKG86IERtc09iamVjdFtdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyaXZlLnNldEJ1c3koZmFsc2UpO1xuICAgICAgICAgICAgdGhpcy5kcml2ZS5zZXRTZWxlY3Rpb24obyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpdGVtRG91YmxlQ2xpY2tlZCh0aWxlOiBUaWxlRGF0YSkge1xuICAgIGlmICh0aWxlLmluc3RhbmNlRGF0YSkge1xuICAgICAgdGhpcy5kcml2ZS5zZXRCdXN5KHRydWUpO1xuICAgICAgY29uc3QgbmF2ID0gKHRpbGUuaW5zdGFuY2VEYXRhW0Jhc2VPYmplY3RUeXBlRmllbGQuQkFTRV9UWVBFX0lEXSBhcyBzdHJpbmcpID09PSBTeXN0ZW1UeXBlLkZPTERFUiA/IFsnLi4nXSA6IFsnLi4vLi4nLCAnb2JqZWN0J107XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbLi4ubmF2LCB0aWxlLmluc3RhbmNlRGF0YVtCYXNlT2JqZWN0VHlwZUZpZWxkLk9CSkVDVF9JRF1dLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSkudGhlbigoKSA9PiB0aGlzLmRyaXZlLnNldEJ1c3koZmFsc2UpKTtcbiAgICB9XG4gIH1cblxuICBsb2FkRGV0YWlscyhpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zaGVsbFNlcnZpY2UuYWRkQnVzeSgpO1xuICAgIC8vIGxvYWQgdGhlIGRtcyBvYmplY3RcbiAgICB0aGlzLmRtc1NlcnZpY2UuZ2V0RG1zT2JqZWN0KGlkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKG86IERtc09iamVjdCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkLnNldChvKTtcbiAgICAgICAgdGhpcy5zaGVsbFNlcnZpY2UucmVtb3ZlQnVzeSgpO1xuICAgICAgICB0aGlzLmRyaXZlLnNldFNlbGVjdGlvbihbb10pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgY2xlYXJTZWxlY3Rpb24oKSB7XG4gICAgdGhpcy5kcml2ZS5zZXRTZWxlY3Rpb24oW10pO1xuICB9XG5cbiAgb3BlblBhcmVudCgpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50Rm9sZGVyKSB7XG4gICAgICB0aGlzLmRyaXZlLnNldEJ1c3kodHJ1ZSk7XG4gICAgICB0aGlzLnJvdXRlclxuICAgICAgICAubmF2aWdhdGUoWycuLicsIHRoaXMuY3VycmVudEZvbGRlci5kYXRhW0Jhc2VPYmplY3RUeXBlRmllbGQuUEFSRU5UX0lEXSB8fCBEUklWRV9ST09UX0ZPTERFUl9JRF0sIHtcbiAgICAgICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxuICAgICAgICAgIHJlcGxhY2VVcmw6IHRydWVcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5kcml2ZS5zZXRCdXN5KGZhbHNlKSk7XG4gICAgfVxuICB9XG5cbiAgc2V0QnVzeShidXN5OiBib29sZWFuKSB7XG4gICAgdGhpcy5kcml2ZS5zZXRCdXN5KGJ1c3kpO1xuICB9XG5cbiAgcmVmcmVzaCgpIHtcbiAgICB0aGlzLnRpbGVMaXN0KCk/LnJlZnJlc2goKTtcbiAgICB0aGlzLmRyaXZlLnNldFNlbGVjdGlvbihbXSk7XG4gIH1cblxuICBvbkxheW91dFNldHRpbmdzQ2hhbmdlKGU6IGFueSkge1xuICAgIHRoaXMuI2FwcENhY2hlLnNldEl0ZW0odGhpcy4jTEFZT1VUX1NFVFRJTkdTX1NUT1JBR0VfS0VZLCBlKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gICNhcHBseUxheW91dFNldHRpbmdzKHNldHRpbmdzOiBTcGxpdFZpZXdMYXlvdXRTZXR0aW5ncykge1xuICAgIHRoaXMuc3BsaXRWaWV3Q21wKCkuYXBwbHlMYXlvdXRTZXR0aW5ncyhzZXR0aW5ncyk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jYXBwQ2FjaGUuZ2V0SXRlbSh0aGlzLiNMQVlPVVRfU0VUVElOR1NfU1RPUkFHRV9LRVkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAobHM6IFNwbGl0Vmlld0xheW91dFNldHRpbmdzKSA9PiB7XG4gICAgICAgIGlmIChscykge1xuICAgICAgICAgIHRoaXMuZW5hYmxlRGV0YWlscy5zZXQobHMuYXJlYXNbMl0/LnZpc2libGUpO1xuICAgICAgICAgIHRoaXMuZW5hYmxlVHJlZS5zZXQobHMuYXJlYXNbMF0/LnZpc2libGUpO1xuICAgICAgICAgIHRoaXMuI2FwcGx5TGF5b3V0U2V0dGluZ3MobHMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsaXBib2FyZC5jbGVhcihBUFBfSUQpO1xuICB9XG59XG4iLCI8aGVhZGVyPlxuICA8IS0tIG5hdmlnYXRpb24gYmFyIC0tPlxuICA8bmF2IFthdHRyLmFyaWEtbGFiZWxdPVwiJ3l1di5hcHAuZHJpdmUuZmlsZXMubmF2aWFndGlvbi5hcmlhLmxhYmVsJyB8IHRyYW5zbGF0ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJuYXZcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJiYWNrXCIgW2Rpc2FibGVkXT1cIiFjdXJyZW50Rm9sZGVyXCIgdGl0bGU9XCJ7eyAneXV2LmFwcC5kcml2ZS5maWxlcy5uYXYuYmFjay50b29sdGlwJyB8IHRyYW5zbGF0ZSB9fVwiIChjbGljayk9XCJvcGVuUGFyZW50KClcIj5cbiAgICAgICAgPHl2Yy1pY29uIFtzdmddPVwiaWNvbnMuYmFja1wiPjwveXZjLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJyZWZyZXNoXCIgdGl0bGU9XCJ7eyAneXV2LmFwcC5kcml2ZS5maWxlcy5uYXYucmVmcmVzaC50b29sdGlwJyB8IHRyYW5zbGF0ZSB9fVwiIChjbGljayk9XCJyZWZyZXNoKClcIj5cbiAgICAgICAgPHl2Yy1pY29uIFtzdmddPVwiaWNvbnMucmVmcmVzaFwiPjwveXZjLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoIXF1ZXJ5KCk/LnRlcm0pIHtcbiAgICAgIDx5bWQtYnJlYWRjcnVtYj48L3ltZC1icmVhZGNydW1iPlxuICAgIH0gQGVsc2Uge1xuICAgICAgPGRpdiBjbGFzcz1cImJyZWFkY3J1bWJcIj48L2Rpdj5cbiAgICB9XG4gICAgPGRpdiBjbGFzcz1cInNlYXJjaFwiPlxuICAgICAgPHltZC1kcml2ZS1zZWFyY2g+PC95bWQtZHJpdmUtc2VhcmNoPlxuICAgIDwvZGl2PlxuICA8L25hdj5cblxuICA8IS0tIHJpYmJvbiB3aXRoIGFjdGlvbnMgYW5kIG9wdGlvbnMgLS0+XG4gIDx5bWQtcmliYm9uIFtvYmplY3RzXT1cInNlbGVjdGlvbigpXCIgW2J1c3ldPVwiYnVzeSgpXCIgW2VuYWJsZUNsaXBib2FyZF09XCJ0cnVlXCI+XG4gICAgPG5nLXRlbXBsYXRlICNwcmltYXJ5QWN0aW9ucz5cbiAgICAgIDx5bWQtYWRkLWJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZUNyZWF0ZVwiPjwveW1kLWFkZC1idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxuZy10ZW1wbGF0ZSAjc2Vjb25kYXJ5QWN0aW9ucz5cbiAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb25zXCI+XG4gICAgICAgIEBpZiAoIXNtYWxsU2NyZWVuTGF5b3V0KCkpIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cInRvZ2dsZS10cmVlIHRvZ2dsZVwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7IGVuYWJsZWQ6IGVuYWJsZVRyZWUoKSB9XCJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ3l1di5hcHAuZHJpdmUuZmlsZXMudG9nZ2xldHJlZS50b29sdGlwJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZW5hYmxlVHJlZS5zZXQoIWVuYWJsZVRyZWUoKSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDx5dmMtaWNvbiBbc3ZnXT1cImljb25zLnRvZ2dsZUxlZnRcIj48L3l2Yy1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwidG9nZ2xlLWRldGFpbHMgdG9nZ2xlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgZW5hYmxlZDogZW5hYmxlRGV0YWlscygpIH1cIlxuICAgICAgICAgICAgdGl0bGU9XCJ7eyAneXV2LmFwcC5kcml2ZS5maWxlcy50b2dnbGVkZXRhaWxzLnRvb2x0aXAnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgICAgICAgIChjbGljayk9XCJlbmFibGVEZXRhaWxzLnNldCghZW5hYmxlRGV0YWlscygpKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHl2Yy1pY29uIFtzdmddPVwiaWNvbnMudG9nZ2xlUmlnaHRcIj48L3l2Yy1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICAgIDx5dXYtdGlsZS1jb25maWctdHJpZ2dlclxuICAgICAgICAgIFtpY29uXT1cImljb25zLnNldHRpbmdzXCJcbiAgICAgICAgICBbYnVja2V0XT1cIm9iamVjdENvbmZpZ0J1Y2tldFwiXG4gICAgICAgICAgW2J1Y2tldExhYmVsXT1cInRpbGVDb25maWdCdWNrZXRMYWJlbFwiXG4gICAgICAgICAgW29wdGlvbnNdPVwidGlsZUxpc3RPcHRpb25zXCJcbiAgICAgICAgPjwveXV2LXRpbGUtY29uZmlnLXRyaWdnZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L3ltZC1yaWJib24+XG48L2hlYWRlcj5cblxuPHl2Yy1zcGxpdC12aWV3IFtndXR0ZXJTaXplXT1cIjFcIiAobGF5b3V0U2V0dGluZ3NDaGFuZ2UpPVwib25MYXlvdXRTZXR0aW5nc0NoYW5nZSgkZXZlbnQpXCI+XG4gIDwhLS0gZm9sZGVyIHRyZWUgLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiMjBcIiBbdmlzaWJsZV09XCJlbmFibGVUcmVlKCkgJiYgIXNtYWxsU2NyZWVuTGF5b3V0KClcIj5cbiAgICA8eW1kLWZvbGRlci10cmVlIHl1dkZvY3VzYWJsZT1cIlRyZWVcIj48L3ltZC1mb2xkZXItdHJlZT5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8IS0tIGZpbGVzIC0tPlxuICA8bmctdGVtcGxhdGUgeXZjU3BsaXRBcmVhIFtzaXplXT1cIjYwXCI+XG4gICAgQGxldCBlcnIgPSBlcnJvcigpO1xuICAgIEBpZiAoZXJyKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JcIj5cbiAgICAgICAgPHA+XG4gICAgICAgICAgPHl2Yy1pY29uIFtzdmddPVwiaWNvbnMuYXR0ZW50aW9uXCI+PC95dmMtaWNvbj5cbiAgICAgICAgICBAc3dpdGNoIChlcnIpIHtcbiAgICAgICAgICAgIEBjYXNlIChFUlJPUl9DT0RFLk5PVF9GT1VORCkge1xuICAgICAgICAgICAgICB7eyAneXV2LmFwcC5kcml2ZS5maWxlcy5lcnJvci5sb2FkLm5vdC1mb3VuZCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBjYXNlIChFUlJPUl9DT0RFLklOVkFMSURfSUQpIHtcbiAgICAgICAgICAgICAge3sgJ3l1di5hcHAuZHJpdmUuZmlsZXMuZXJyb3IubG9hZC5pbnZhbGlkLWlkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGRlZmF1bHQge1xuICAgICAgICAgICAgICB7eyAneXV2LmFwcC5kcml2ZS5maWxlcy5lcnJvci5sb2FkJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsZXNcIiBbeXV2RmlsZURyb3Bab25lXT1cInsgbGFiZWw6ICd5dXYuYXBwLmRyaXZlLmZpbGVzLmRyb3B6b25lLmxhYmVsJyB8IHRyYW5zbGF0ZSB9XCIgKGZpbGVEcm9wKT1cIm9uRmlsZURyb3AoJGV2ZW50KVwiPlxuICAgICAgICA8aGVhZGVyIGNsYXNzPVwiZmlsZXMtaGVhZGVyXCI+XG4gICAgICAgICAgPGgxPnt7IHF1ZXJ5VGl0bGUoKSB9fTwvaDE+XG4gICAgICAgICAgQGlmIChxdWVyeSgpPy50ZXJtICYmICFleHRlbmRlZFF1ZXJ5KCkpIHtcbiAgICAgICAgICAgIDx5bWQtc2VhcmNoLWZpbHRlciBbcXVlcnldPVwicXVlcnkoKVwiIChxdWVyeUNoYW5nZSk9XCJvbkZpbHRlclF1ZXJ5Q2hhbmdlKCRldmVudClcIj48L3ltZC1zZWFyY2gtZmlsdGVyPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgKHNvcnRPcHRpb25zQXZhaWxhYmxlKCkpIHtcbiAgICAgICAgICAgIDx5bWQtc29ydCAvPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxhdm9yc1wiPlxuICAgICAgICAgICAgPCEtLSBUT0RPOiBlbmFibGUgYWdhaW4gb25jZSBmbGF2b3JzL2FzcGVjdHMgYXJlIHN1cHBvcnRlZCAtLT5cbiAgICAgICAgICAgIDwhLS0gIEBmb3IgKGYgb2YgZmxhdm9yQ2hpcHM7IHRyYWNrIGYuaWQpIHtcbiAgICAgICAgICAgIDx5dXYtZmxhdm9yLWNoaXAgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGYuaWQgPT09IGFwcGxpZWRGbGF2b3I/LmlkIH1cIiBbZmxhdm9yXT1cImZcIiAoY2xpY2spPVwiYXBwbGllZEZsYXZvciA9IGZcIj48L3l1di1mbGF2b3ItY2hpcD5cbiAgICAgICAgICB9LS0+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgIDx5dXYtdGlsZS1saXN0XG4gICAgICAgICAgI3RpbGVMaXN0XG4gICAgICAgICAgY2xhc3M9XCJzdGFnZ2VyZWRcIlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3l1di5hcHAuZHJpdmUuZmlsZXMuY29udGVudC5hcmlhLmxhYmVsJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1idXN5XT1cImJ1c3koKVwiXG4gICAgICAgICAgW2F0dHIucm9sZV09XCInbGlzdGJveCdcIlxuICAgICAgICAgIChrZXlkb3duLmRlbGV0ZSk9XCJvbkRlbGV0ZSgpXCJcbiAgICAgICAgICBbYnVja2V0XT1cIm9iamVjdENvbmZpZ0J1Y2tldFwiXG4gICAgICAgICAgW211bHRpc2VsZWN0XT1cInRydWVcIlxuICAgICAgICAgIFtxdWVyeV09XCJxdWVyeSgpXCJcbiAgICAgICAgICBbZmxhdm9yXT1cImFwcGxpZWRGbGF2b3JcIlxuICAgICAgICAgIFtvcHRpb25zXT1cInRpbGVMaXN0T3B0aW9uc1wiXG4gICAgICAgICAgKGl0ZW1EYmxDbGljayk9XCJpdGVtRG91YmxlQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoaXRlbVNlbGVjdCk9XCJpdGVtQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgKGNvcHkpPVwib25Db3B5KCRldmVudClcIlxuICAgICAgICAgIChjdXQpPVwib25DdXQoJGV2ZW50KVwiXG4gICAgICAgICAgKGJ1c3kpPVwic2V0QnVzeSgkZXZlbnQpXCJcbiAgICAgICAgICAoY3R4TWVudSk9XCJvbkNvbnRleHRtZW51KCRldmVudClcIlxuICAgICAgICAgIFtoaWdobGlnaHRzXT1cImhpZ2hsaWdodFN0eWxlcyQgfCBhc3luY1wiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2ICNlbXB0eT5cbiAgICAgICAgICAgIEBpZiAoZW1wdHlNb2RlKCkgPT09ICdyb290Jykge1xuICAgICAgICAgICAgICA8cCBjbGFzcz1cImVtcHR5XCI+e3sgJ3l1di5hcHAuZHJpdmUuZmlsZXMuY29udGVudC5lbXB0eS5yb290Lmxpc3QnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgfSBAZWxzZSBpZiAoZW1wdHlNb2RlKCkgPT09ICdxdWVyeScpIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJlbXB0eVwiPnt7ICd5dXYuYXBwLmRyaXZlLmZpbGVzLmNvbnRlbnQuZW1wdHkucXVlcnkubGlzdCcgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJlbXB0eVwiPnt7ICd5dXYuYXBwLmRyaXZlLmZpbGVzLmNvbnRlbnQuZW1wdHkubGlzdCcgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwveXV2LXRpbGUtbGlzdD5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8IS0tIGRldGFpbHMgLS0+XG4gIDxuZy10ZW1wbGF0ZSB5dmNTcGxpdEFyZWEgW3NpemVdPVwiMjBcIiBbdmlzaWJsZV09XCJlbmFibGVEZXRhaWxzKClcIj5cbiAgICBAbGV0IHNlbGVjdGVkSXRlbSA9IHNlbGVjdGVkKCk7XG4gICAgQGlmIChlbmFibGVEZXRhaWxzKCkgJiYgc2VsZWN0ZWRJdGVtKSB7XG4gICAgICBAaWYgKHNlbGVjdGVkSXRlbT8uaXNGb2xkZXIpIHtcbiAgICAgICAgPHl1di1vYmplY3Qtc3VtbWFyeSBbY29uZmlnVHlwZV09XCJjb25maWdUeXBlT3B0aW9uc1snZm9sZGVyJ11cIiBbZG1zT2JqZWN0XT1cInNlbGVjdGVkSXRlbVwiPjwveXV2LW9iamVjdC1zdW1tYXJ5PlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDx5dXYtb2JqZWN0LXN1bW1hcnlcbiAgICAgICAgICBbY29uZmlnVHlwZV09XCJjb25maWdUeXBlT3B0aW9uc1snZmlsZSddXCJcbiAgICAgICAgICBbZG1zT2JqZWN0XT1cInNlbGVjdGVkSXRlbVwiXG4gICAgICAgICAgW3l1dkZpbGVEcm9wWm9uZV09XCJ7IGxhYmVsOiAneXV2LmFwcC5kcml2ZS5maWxlcy5kcm9wem9uZS5jb250ZW50LnJlcGxhY2UubGFiZWwnIHwgdHJhbnNsYXRlIH1cIlxuICAgICAgICAgIFtmaWxlRHJvcERpc2FibGVkXT1cImZpbGVEcm9wU3VtbWFyeURpc2FibGVkKClcIlxuICAgICAgICAgIChmaWxlRHJvcCk9XCJvbkZpbGVVcGRhdGVEcm9wKCRldmVudClcIlxuICAgICAgICA+PC95dXYtb2JqZWN0LXN1bW1hcnk+XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAbGV0IHNlbCA9IHNlbGVjdGlvbigpO1xuICAgICAgQGlmIChzZWwgJiYgc2VsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgPHl1di1tdWx0aS1vYmplY3Qtc3VtbWFyeSBbaGVhZGxpbmVdPVwiJ3l1di5hcHAuZHJpdmUubXVsdGlzZWxlY3RlZC5kZXRhaWxzJyB8IHRyYW5zbGF0ZTogeyBjb3VudDogc2VsZWN0aW9uKCkubGVuZ3RoIH1cIj48L3l1di1tdWx0aS1vYmplY3Qtc3VtbWFyeT5cbiAgICAgIH0gQGVsc2UgaWYgKHRpbGVMaXN0KCk/Lml0ZW1zPy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgPCEtLSBUT0RPOiBDSE9VTEQgSEFWRSBBIERJRkZFUkVOVCBNRVNTQUdFIEZPUiBFTVBUWSBSRVNVTFRTIEVNUFRZIEZPUiBOT1cgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlXCI+e3sgJ3l1di5hcHAuZHJpdmUuZW1wdHkucmVzdWx0cy5kZXRhaWxzLm1lc3NhZ2UnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj57eyAneXV2LmFwcC5kcml2ZS51bnNlbGVjdGVkLmRldGFpbHMnIHwgdHJhbnNsYXRlIH19PC9kaXY+XG4gICAgICB9XG4gICAgfVxuICA8L25nLXRlbXBsYXRlPlxuPC95dmMtc3BsaXQtdmlldz5cbiJdfQ==
|