valtech-components 2.0.972 → 2.0.975
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/components/organisms/profile-view/profile-view.component.mjs +59 -2
- package/esm2022/lib/components/organisms/profile-view/profile-view.i18n.mjs +7 -1
- package/esm2022/lib/components/organisms/profile-view/types.mjs +1 -1
- package/esm2022/lib/components/organisms/settings-hub/settings-hub.component.mjs +152 -0
- package/esm2022/lib/components/organisms/settings-hub/settings-hub.i18n.mjs +57 -0
- package/esm2022/lib/components/organisms/settings-hub/settings-sections.mjs +137 -0
- package/esm2022/lib/components/organisms/settings-hub/settings.routes.mjs +59 -0
- package/esm2022/lib/components/organisms/settings-hub/types.mjs +2 -0
- package/esm2022/lib/components/organisms/share-profile-modal/share-profile-modal.component.mjs +13 -5
- package/esm2022/lib/components/organisms/share-profile-modal/types.mjs +1 -1
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/valtech-components.mjs +467 -7
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/profile-view/profile-view.component.d.ts +6 -1
- package/lib/components/organisms/profile-view/types.d.ts +12 -0
- package/lib/components/organisms/settings-hub/settings-hub.component.d.ts +43 -0
- package/lib/components/organisms/settings-hub/settings-hub.i18n.d.ts +13 -0
- package/lib/components/organisms/settings-hub/settings-sections.d.ts +62 -0
- package/lib/components/organisms/settings-hub/settings.routes.d.ts +59 -0
- package/lib/components/organisms/settings-hub/types.d.ts +37 -0
- package/lib/components/organisms/share-profile-modal/types.d.ts +2 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
|
@@ -5,6 +5,8 @@ import { ActivatedRoute } from '@angular/router';
|
|
|
5
5
|
import { firstValueFrom } from 'rxjs';
|
|
6
6
|
import { AvatarUploadComponent } from '../avatar-upload/avatar-upload.component';
|
|
7
7
|
import { FormComponent } from '../form/form.component';
|
|
8
|
+
import { ShareProfileModalComponent } from '../share-profile-modal/share-profile-modal.component';
|
|
9
|
+
import { CtaCardComponent } from '../../molecules/cta-card/cta-card.component';
|
|
8
10
|
import { SkeletonLayoutComponent } from '../skeleton-layout/skeleton-layout.component';
|
|
9
11
|
import { DisplayComponent } from '../../atoms/display/display.component';
|
|
10
12
|
import { TextComponent } from '../../atoms/text/text.component';
|
|
@@ -75,6 +77,8 @@ export class ProfileViewComponent {
|
|
|
75
77
|
showAvatar: merged.showAvatar ?? true,
|
|
76
78
|
showHandle: merged.showHandle ?? true,
|
|
77
79
|
showPhone: merged.showPhone ?? true,
|
|
80
|
+
showShareCta: merged.showShareCta ?? true,
|
|
81
|
+
profileBaseUrl: merged.profileBaseUrl ?? '',
|
|
78
82
|
i18nNamespace: merged.i18nNamespace ?? DEFAULT_NAMESPACE,
|
|
79
83
|
onSaved: merged.onSaved,
|
|
80
84
|
onAvatarUploaded: merged.onAvatarUploaded,
|
|
@@ -92,6 +96,41 @@ export class ProfileViewComponent {
|
|
|
92
96
|
this.loading = signal(true);
|
|
93
97
|
this.saving = signal(false);
|
|
94
98
|
this.loadError = signal(null);
|
|
99
|
+
this.shareOpen = signal(false);
|
|
100
|
+
this.shareCta = computed(() => {
|
|
101
|
+
this.i18n.lang();
|
|
102
|
+
return {
|
|
103
|
+
title: this.t('shareCtaTitle'),
|
|
104
|
+
description: this.t('shareCtaDesc'),
|
|
105
|
+
bordered: true,
|
|
106
|
+
actions: {
|
|
107
|
+
position: 'left',
|
|
108
|
+
columned: false,
|
|
109
|
+
buttons: [
|
|
110
|
+
{
|
|
111
|
+
text: this.t('shareCtaBtn'),
|
|
112
|
+
color: 'dark',
|
|
113
|
+
shape: 'round',
|
|
114
|
+
type: 'button',
|
|
115
|
+
state: 'ENABLED',
|
|
116
|
+
token: 'share',
|
|
117
|
+
},
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
});
|
|
122
|
+
this.shareModal = computed(() => {
|
|
123
|
+
const p = this.profile();
|
|
124
|
+
const handle = p?.handle ?? 'me';
|
|
125
|
+
const base = this.resolvedConfig().profileBaseUrl;
|
|
126
|
+
return {
|
|
127
|
+
name: p?.name ?? '',
|
|
128
|
+
handle: p?.handle,
|
|
129
|
+
avatarUrl: p?.avatarUrl,
|
|
130
|
+
email: p?.email,
|
|
131
|
+
url: base ? `${base}/u/${handle}` : `/u/${handle}`,
|
|
132
|
+
};
|
|
133
|
+
});
|
|
95
134
|
this._userId = computed(() => this.auth.user()?.userId ?? null);
|
|
96
135
|
this.errorState = computed(() => {
|
|
97
136
|
this.i18n.lang();
|
|
@@ -515,10 +554,18 @@ export class ProfileViewComponent {
|
|
|
515
554
|
}
|
|
516
555
|
|
|
517
556
|
<val-form #form [props]="formMeta" (onSubmit)="onSubmit($event)" />
|
|
557
|
+
|
|
558
|
+
@if (resolvedConfig().showShareCta && p.handle) {
|
|
559
|
+
<section class="settings-section share-cta-section">
|
|
560
|
+
<val-cta-card [props]="shareCta()" (onAction)="shareOpen.set(true)" />
|
|
561
|
+
</section>
|
|
562
|
+
}
|
|
518
563
|
}
|
|
519
564
|
}
|
|
520
565
|
</div>
|
|
521
|
-
|
|
566
|
+
|
|
567
|
+
<val-share-profile-modal [isOpen]="shareOpen()" [props]="shareModal()" (dismissed)="shareOpen.set(false)" />
|
|
568
|
+
`, isInline: true, styles: [".page{padding:16px 0;max-width:720px;margin:0 auto}.page-header{margin-bottom:16px}.page-header h1{font-size:22px;font-weight:700;margin:0 0 4px}.hint{font-size:13px;opacity:.7;margin:0 0 12px}.settings-section{padding:16px 0}.settings-section+.settings-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.avatar-section{display:flex;align-items:center;gap:16px}.avatar-meta{display:flex;flex-direction:column;gap:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: AvatarUploadComponent, selector: "val-avatar-upload", inputs: ["props"], outputs: ["uploaded", "error", "uploadStart"] }, { kind: "component", type: EmptyStateComponent, selector: "val-empty-state", inputs: ["props"] }, { kind: "component", type: FormComponent, selector: "val-form", inputs: ["props"], outputs: ["onSubmit", "onInvalid", "onSelectChange"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }, { kind: "component", type: SkeletonLayoutComponent, selector: "val-skeleton-layout", inputs: ["props"] }, { kind: "component", type: CtaCardComponent, selector: "val-cta-card", inputs: ["props"], outputs: ["onAction"] }, { kind: "component", type: ShareProfileModalComponent, selector: "val-share-profile-modal", inputs: ["isOpen", "props"], outputs: ["dismissed", "shared"] }] }); }
|
|
522
569
|
}
|
|
523
570
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProfileViewComponent, decorators: [{
|
|
524
571
|
type: Component,
|
|
@@ -532,6 +579,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
532
579
|
TextComponent,
|
|
533
580
|
TitleComponent,
|
|
534
581
|
SkeletonLayoutComponent,
|
|
582
|
+
CtaCardComponent,
|
|
583
|
+
ShareProfileModalComponent,
|
|
535
584
|
], template: `
|
|
536
585
|
<div class="page">
|
|
537
586
|
<header class="page-header">
|
|
@@ -591,11 +640,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
591
640
|
}
|
|
592
641
|
|
|
593
642
|
<val-form #form [props]="formMeta" (onSubmit)="onSubmit($event)" />
|
|
643
|
+
|
|
644
|
+
@if (resolvedConfig().showShareCta && p.handle) {
|
|
645
|
+
<section class="settings-section share-cta-section">
|
|
646
|
+
<val-cta-card [props]="shareCta()" (onAction)="shareOpen.set(true)" />
|
|
647
|
+
</section>
|
|
648
|
+
}
|
|
594
649
|
}
|
|
595
650
|
}
|
|
596
651
|
</div>
|
|
652
|
+
|
|
653
|
+
<val-share-profile-modal [isOpen]="shareOpen()" [props]="shareModal()" (dismissed)="shareOpen.set(false)" />
|
|
597
654
|
`, styles: [".page{padding:16px 0;max-width:720px;margin:0 auto}.page-header{margin-bottom:16px}.page-header h1{font-size:22px;font-weight:700;margin:0 0 4px}.hint{font-size:13px;opacity:.7;margin:0 0 12px}.settings-section{padding:16px 0}.settings-section+.settings-section{border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.avatar-section{display:flex;align-items:center;gap:16px}.avatar-meta{display:flex;flex-direction:column;gap:2px}\n"] }]
|
|
598
655
|
}], ctorParameters: () => [], propDecorators: { config: [{
|
|
599
656
|
type: Input
|
|
600
657
|
}] } });
|
|
601
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvcHJvZmlsZS12aWV3L3Byb2ZpbGUtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUVwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUV4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQWtCLGVBQWUsRUFBMkMsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWxILE9BQU8sRUFBRSxXQUFX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RUFBRSxJQUFJLEdBQUcsQ0FBQztJQUM3QyxDQUFDOytHQXpiVSxvQkFBb0I7bUdBQXBCLG9CQUFvQiwyTkF0R3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThEVCxtZ0JBeEVDLFlBQVksOEJBQ1osbUJBQW1CLCtCQUNuQixxQkFBcUIsZ0lBQ3JCLG1CQUFtQiwrRUFDbkIsYUFBYSw4SEFDYixnQkFBZ0IsMkVBQ2hCLGFBQWEsd0VBQ2IsY0FBYyx5RUFDZCx1QkFBdUI7OzRGQXdHZCxvQkFBb0I7a0JBcEhoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLHVCQUF1QjtxQkFDeEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4RFQ7d0RBdURRLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCwgSW5wdXQsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20sIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBdmF0YXJVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuLi9hdmF0YXItdXBsb2FkL2F2YXRhci11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7IEF2YXRhclVwbG9hZEVycm9yLCBBdmF0YXJVcGxvYWRNZXRhZGF0YSwgQXZhdGFyVXBsb2FkUmVzdWx0IH0gZnJvbSAnLi4vYXZhdGFyLXVwbG9hZC90eXBlcyc7XG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9ybS9mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa2VsZXRvbkxheW91dENvbXBvbmVudCB9IGZyb20gJy4uL3NrZWxldG9uLWxheW91dC9za2VsZXRvbi1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy9kaXNwbGF5L2Rpc3BsYXkuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90ZXh0L3RleHQuY29tcG9uZW50JztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGl0bGUvdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVNZXRhZGF0YSB9IGZyb20gJy4uLy4uL21vbGVjdWxlcy9lbXB0eS1zdGF0ZS90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVFcnJvclN0YXRlUHJvcHMgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvZmFjdG9yeSc7XG5pbXBvcnQgeyBCdXR0b25NZXRhZGF0YSwgQ29tcG9uZW50U3RhdGVzLCBGb3JtTWV0YWRhdGEsIEZvcm1TdWJtaXQsIElucHV0TWV0YWRhdGEsIElucHV0VHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBHZXRQcm9maWxlUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hdXRoL3R5cGVzJztcbmltcG9ydCB7IEZpcmViYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpcmViYXNlL2ZpcmViYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlyZXN0b3JlQ29sbGVjdGlvbkZhY3RvcnksIFR5cGVkQ29sbGVjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpcmViYXNlL2ZpcmVzdG9yZS1jb2xsZWN0aW9uJztcbmltcG9ydCB7IEZpcmVzdG9yZURvY3VtZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmlyZWJhc2UvdHlwZXMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29ubmVjdFBhZ2VSZWZyZXNoIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcGFnZS1yZWZyZXNoL3BhZ2UtcmVmcmVzaC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsdGVjaEVycm9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Vycm9ycy92YWx0ZWNoLWVycm9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgaW50ZXJwcmV0RXJyb3IgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvaW50ZXJwcmV0LWVycm9yJztcblxuaW1wb3J0IHsgUHJvZmlsZVZpZXdDb25maWcgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFBST0ZJTEVfVklFV19JMThOIH0gZnJvbSAnLi9wcm9maWxlLXZpZXcuaTE4bic7XG5cbi8qKlxuICogRm9ybWEgZGVsIGRvYyBGaXJlc3RvcmUgL3VzZXJzL3t1aWR9IHF1ZSBsYSB2aXN0YSBjb25zdW1lLiBTdWJzZXQgZGVsIHNjaGVtYVxuICogZXNjcml0byBwb3IgZWwgYmFja2VuZCAoU3luY1Byb2ZpbGVUb0ZpcmVzdG9yZSkg4oCUIHNvbG8gbG9zIGNhbXBvcyBxdWUgZXN0YVxuICogdmlzdGEgbmVjZXNpdGE7IGxvcyBkZW3DoXMgKHN0YXR1cywgbWZhRW5hYmxlZCwgcm9sZXMsIGV0Yy4pIHNlIGlnbm9yYW4uXG4gKi9cbmludGVyZmFjZSBVc2VyTWlycm9yRG9jIGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQge1xuICB1c2VySWQ6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgbmFtZT86IHN0cmluZztcbiAgaGFuZGxlPzogc3RyaW5nO1xuICBwaG9uZT86IHN0cmluZztcbiAgYXZhdGFyVXJsPzogc3RyaW5nO1xuICBhdmF0YXJUaHVtYm5haWw/OiBzdHJpbmc7XG59XG5cbi8qKiBQYXRyw7NuIHNpbmNyb25pemFkbyBjb24gYmFja2VuZCBoYW5kbGVSZWdleDogbG93ZXJjYXNlIGFsZmFudW0gKyB1bmRlcnNjb3JlLiAqL1xuY29uc3QgSEFORExFX1BBVFRFUk4gPSAvXlthLXpfXVthLXowLTlfXSokLztcbmNvbnN0IEhBTkRMRV9NSU4gPSAzO1xuY29uc3QgSEFORExFX01BWCA9IDIwO1xuXG5jb25zdCBERUZBVUxUX05BTUVTUEFDRSA9ICdTZXR0aW5ncy5Qcm9maWxlJztcblxuLyoqXG4gKiBgdmFsLXByb2ZpbGUtdmlld2Ag4oCUIHZpc3RhIFBlcmZpbCBmdWxsLWZlYXR1cmUgYXV0b2NvbnRlbmlkYSAob3JnYW5pc20pLlxuICpcbiAqIEVkaXRhIGxvcyBjYW1wb3MgcMO6YmxpY29zIGRlbCB1c3VhcmlvIGVuIFVOIHNvbG8gZm9ybXVsYXJpbyBjb24gVU4gc29sbyBib3TDs25cbiAqIFwiR3VhcmRhclwiLiBXaXJldXA6XG4gKiAgLSBBdmF0YXIg4oCUIHZhbC1hdmF0YXItdXBsb2FkIChGaXJlYmFzZSBTdG9yYWdlICsgYmFja2VuZCBzeW5jKS4gU2VwYXJhZG8gZGVsXG4gKiAgICBmb3JtIHBvcnF1ZSBlcyB1cGxvYWQgc3luYyBpbmRlcGVuZGllbnRlLlxuICogIC0gSGFuZGxlIChAdXN1YXJpbykg4oCUIElucHV0VHlwZS5IQU5ETEUgKHZhbC11c2VybmFtZS1pbnB1dCBjb24gY2hlY2sgZGVcbiAqICAgIGRpc3BvbmliaWxpZGFkIGFzeW5jIHJlc3VlbHRvIHbDrWEgQXV0aFNlcnZpY2UgaW55ZWN0YWRvKS5cbiAqICAtIE5vbWJyZSDigJQgSW5wdXRUeXBlLlRFWFQuXG4gKiAgLSBUZWzDqWZvbm8g4oCUIElucHV0VHlwZS5QSE9ORS5cbiAqXG4gKiBTdWJtaXQgaGFuZGxlciBkaXNwYXRjaGE6XG4gKiAgMS4gU2kgaGFuZGxlIGNhbWJpw7Mg4oaSIHVwZGF0ZUhhbmRsZSBQUklNRVJPICh1bmlxdWVuZXNzKS5cbiAqICAyLiBTaSBuYW1lIG8gcGhvbmUgY2FtYmnDsyDihpIgdXBkYXRlUHJvZmlsZSBjb24gYW1ib3MuXG4gKlxuICogTGVjdHVyYSBkZWwgcGVyZmlsOiBzdXNjcmliZSBhbCBkb2MgRmlyZXN0b3JlIC91c2Vycy97dWlkfSAobWlycm9yIHF1ZSBtYW50aWVuZVxuICogZWwgYmFja2VuZCkuIFJlYWN0aXZvIGNyb3NzLXRhYiArIGF1dG8tcmVmcmVzY2EgdHJhcyBzYXZlLiBGYWxsYmFjayBSRVNUXG4gKiAoYXV0aC5nZXRQcm9maWxlKSBzaSBlbCBkb2Mgbm8gZXhpc3RlIG8gZWwgbGlzdGVuZXIgZmFsbGEuXG4gKlxuICogTk8gcmVuZGVyaXphIGlvbi1jb250ZW50IOKAlCB2aXZlIGRlbnRybyBkZSB2YWwtcGFnZS13cmFwcGVyLlxuICpcbiAqIEF1dG8tcmVnaXN0cmEgc3VzIGRlZmF1bHRzIGkxOG4gKGVzL2VuKSBlbiBlbCBjb25zdHJ1Y3RvciBzaSBlbCBjb25zdW1lciBub1xuICogcHJvdmV5w7MgZWwgbmFtZXNwYWNlIGNvbmZpZ3VyYWRvIChkZWZhdWx0IGBTZXR0aW5ncy5Qcm9maWxlYCkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1wcm9maWxlLXZpZXcnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgQXZhdGFyVXBsb2FkQ29tcG9uZW50LFxuICAgIEVtcHR5U3RhdGVDb21wb25lbnQsXG4gICAgRm9ybUNvbXBvbmVudCxcbiAgICBEaXNwbGF5Q29tcG9uZW50LFxuICAgIFRleHRDb21wb25lbnQsXG4gICAgVGl0bGVDb21wb25lbnQsXG4gICAgU2tlbGV0b25MYXlvdXRDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInBhZ2VcIj5cbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJwYWdlLWhlYWRlclwiPlxuICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJywgY29udGVudDogdCgncGFnZVRpdGxlJykgfVwiIC8+XG4gICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgc2l6ZTogJ2xhcmdlJyxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHQoJ3BhZ2VEZXNjcmlwdGlvbicpLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgIDx2YWwtc2tlbGV0b24tbGF5b3V0IFtwcm9wc109XCJ7IHByZXNldDogJ2Zvcm0nLCByb3dzOiAzLCBzaG93QXZhdGFyOiB0cnVlIH1cIiAvPlxuICAgICAgfSBAZWxzZSBpZiAoZXJyb3JTdGF0ZSgpKSB7XG4gICAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cImVycm9yU3RhdGUoKSFcIiAvPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAocHJvZmlsZSgpOyBhcyBwKSB7XG4gICAgICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dBdmF0YXIpIHtcbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvbiBhdmF0YXItc2VjdGlvblwiPlxuICAgICAgICAgICAgICA8dmFsLWF2YXRhci11cGxvYWRcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwiYXZhdGFyUHJvcHMoKVwiXG4gICAgICAgICAgICAgICAgKHVwbG9hZGVkKT1cIm9uQXZhdGFyVXBsb2FkZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uQXZhdGFyRXJyb3IoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItbWV0YVwiPlxuICAgICAgICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBwLm5hbWUgfHwgJ+KAlCcsXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHAuZW1haWwsXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIEBpZiAocC5oYW5kbGUpIHtcbiAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdAJyArIHAuaGFuZGxlLFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8dmFsLWZvcm0gI2Zvcm0gW3Byb3BzXT1cImZvcm1NZXRhXCIgKG9uU3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIiAvPlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIC5wYWdlIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgICBtYXgtd2lkdGg6IDcyMHB4O1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIH1cbiAgICAgIC5wYWdlLWhlYWRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgICB9XG4gICAgICAucGFnZS1oZWFkZXIgaDEge1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIG1hcmdpbjogMCAwIDRweDtcbiAgICAgIH1cbiAgICAgIC5oaW50IHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICBvcGFjaXR5OiAwLjc7XG4gICAgICAgIG1hcmdpbjogMCAwIDEycHg7XG4gICAgICB9XG4gICAgICAuc2V0dGluZ3Mtc2VjdGlvbiB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uICsgLnNldHRpbmdzLXNlY3Rpb24ge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tdmFsLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjA4KSk7XG4gICAgICB9XG4gICAgICAuYXZhdGFyLXNlY3Rpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDE2cHg7XG4gICAgICB9XG4gICAgICAuYXZhdGFyLW1ldGEge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDJweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9maWxlVmlld0NvbXBvbmVudCB7XG4gIHByaXZhdGUgbmF2ID0gaW5qZWN0KE5hdmlnYXRpb25TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEF1dGhTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSB0b2FzdCA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuICBwcml2YXRlIGVycm9ycyA9IGluamVjdChWYWx0ZWNoRXJyb3JTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmaXJlYmFzZSA9IGluamVjdChGaXJlYmFzZVNlcnZpY2UpO1xuICBwcml2YXRlIGNvbGxlY3Rpb25zID0gaW5qZWN0KEZpcmVzdG9yZUNvbGxlY3Rpb25GYWN0b3J5KTtcbiAgcHJpdmF0ZSByb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogQ29uZmlnIHbDrWEgQElucHV0IChvYmplY3QtZmlyc3QpLiBTaSBubyBzZSBwYXNhLCBzZSBjYWUgYWwgcm91dGUgZGF0YVxuICAgKiBgcHJvZmlsZUNvbmZpZ2AgKHBvYmxhZG8gcG9yIGBwcm92aWRlVmFsdGVjaFByb2ZpbGVSb3V0ZXNgKS4gYHJlc29sdmVkQ29uZmlnYFxuICAgKiBtZXJnZWEgY29uIGxvcyBkZWZhdWx0cy5cbiAgICovXG4gIEBJbnB1dCgpIGNvbmZpZz86IFByb2ZpbGVWaWV3Q29uZmlnO1xuXG4gIC8qKiBDb25maWcgbWVyZ2VhZGEgY29uIGRlZmF1bHRzLiBASW5wdXQgZ2FuYSBzb2JyZSByb3V0ZSBkYXRhLiAqL1xuICByZWFkb25seSByZXNvbHZlZENvbmZpZyA9IGNvbXB1dGVkPFxuICAgIFJlcXVpcmVkPE9taXQ8UHJvZmlsZVZpZXdDb25maWcsICdvblNhdmVkJyB8ICdvbkF2YXRhclVwbG9hZGVkJz4+ICZcbiAgICAgIFBpY2s8UHJvZmlsZVZpZXdDb25maWcsICdvblNhdmVkJyB8ICdvbkF2YXRhclVwbG9hZGVkJz5cbiAgPigoKSA9PiB7XG4gICAgY29uc3QgZnJvbVJvdXRlID0gKHRoaXMucm91dGU/LnNuYXBzaG90LmRhdGFbJ3Byb2ZpbGVDb25maWcnXSA/PyB7fSkgYXMgUHJvZmlsZVZpZXdDb25maWc7XG4gICAgY29uc3QgbWVyZ2VkOiBQcm9maWxlVmlld0NvbmZpZyA9IHsgLi4uZnJvbVJvdXRlLCAuLi4odGhpcy5jb25maWcgPz8ge30pIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIHNob3dBdmF0YXI6IG1lcmdlZC5zaG93QXZhdGFyID8/IHRydWUsXG4gICAgICBzaG93SGFuZGxlOiBtZXJnZWQuc2hvd0hhbmRsZSA/PyB0cnVlLFxuICAgICAgc2hvd1Bob25lOiBtZXJnZWQuc2hvd1Bob25lID8/IHRydWUsXG4gICAgICBpMThuTmFtZXNwYWNlOiBtZXJnZWQuaTE4bk5hbWVzcGFjZSA/PyBERUZBVUxUX05BTUVTUEFDRSxcbiAgICAgIG9uU2F2ZWQ6IG1lcmdlZC5vblNhdmVkLFxuICAgICAgb25BdmF0YXJVcGxvYWRlZDogbWVyZ2VkLm9uQXZhdGFyVXBsb2FkZWQsXG4gICAgfTtcbiAgfSk7XG5cbiAgLyoqIE5hbWVzcGFjZSBpMThuIHJlc3VlbHRvIChjYXB0dXJhZG8gdW5hIHZleiBwYXJhIGxsYW1hZGFzIG5vLXJlYWN0aXZhcykuICovXG4gIHByaXZhdGUgZ2V0IG5zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRDb25maWcoKS5pMThuTmFtZXNwYWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbGVjY2nDs24gZ2xvYmFsIC91c2Vycy97dWlkfSAoc2tpcEFwcFByZWZpeDogdHJ1ZSDigJQgZWwgZG9jIHZpdmUgZnVlcmEgZGVcbiAgICogYXBwcy97YXBwSWR9Ly4uLiBwb3JxdWUgZXMgY3Jvc3MtYXBwLCB2ZXIgZmlyZXN0b3JlLnJ1bGVzKS5cbiAgICovXG4gIHByaXZhdGUgdXNlcnNDb2w6IFR5cGVkQ29sbGVjdGlvbjxVc2VyTWlycm9yRG9jPiA9IHRoaXMuY29sbGVjdGlvbnMuY3JlYXRlPFVzZXJNaXJyb3JEb2M+KCd1c2VycycsIHtcbiAgICBza2lwQXBwUHJlZml4OiB0cnVlLFxuICB9KTtcblxuICBwcml2YXRlIGZvcm1DbXAgPSB2aWV3Q2hpbGQ8Rm9ybUNvbXBvbmVudD4oJ2Zvcm0nKTtcblxuICByZWFkb25seSBwcm9maWxlID0gc2lnbmFsPEdldFByb2ZpbGVSZXNwb25zZSB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBsb2FkaW5nID0gc2lnbmFsKHRydWUpO1xuICByZWFkb25seSBzYXZpbmcgPSBzaWduYWwoZmFsc2UpO1xuICByZWFkb25seSBsb2FkRXJyb3IgPSBzaWduYWw8dW5rbm93biB8IG51bGw+KG51bGwpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3VzZXJJZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYXV0aC51c2VyKCk/LnVzZXJJZCA/PyBudWxsKTtcblxuICByZWFkb25seSBlcnJvclN0YXRlID0gY29tcHV0ZWQ8RW1wdHlTdGF0ZU1ldGFkYXRhIHwgbnVsbD4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3QgZXJyID0gdGhpcy5sb2FkRXJyb3IoKTtcbiAgICBpZiAoIWVycikgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIGNyZWF0ZUVycm9yU3RhdGVQcm9wcyhlcnIsIHtcbiAgICAgIHRpdGxlOiB7XG4gICAgICAgIG9mZmxpbmU6IHRoaXMudCgnb2ZmbGluZVRpdGxlJyksXG4gICAgICAgIGVycm9yOiB0aGlzLnQoJ2Vycm9yVGl0bGUnKSxcbiAgICAgIH0sXG4gICAgICBkZXNjcmlwdGlvbjoge1xuICAgICAgICBvZmZsaW5lOiB0aGlzLnQoJ29mZmxpbmVIaW50JyksXG4gICAgICAgIGVycm9yOiBpbnRlcnByZXRFcnJvcihlcnIpLm1lc3NhZ2UsXG4gICAgICB9LFxuICAgICAgcmV0cnlMYWJlbDogdGhpcy50KCdyZXRyeScpLFxuICAgICAgb25SZXRyeTogKCkgPT4gdGhpcy5sb2FkRnJvbUFwaSgpLFxuICAgICAgcmV0cnlpbmc6IHRoaXMubG9hZGluZygpLFxuICAgIH0pO1xuICB9KTtcblxuICByZWFkb25seSBhdmF0YXJQcm9wcyA9IGNvbXB1dGVkPEF2YXRhclVwbG9hZE1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBwID0gdGhpcy5wcm9maWxlKCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGN1cnJlbnRVcmw6IHA/LmF2YXRhclVybCxcbiAgICAgIGluaXRpYWxzOiB0aGlzLmluaXRpYWxzRnJvbU5hbWUocD8ubmFtZSksXG4gICAgICBzaXplOiA5NixcbiAgICAgIGVkaXRhYmxlOiB0cnVlLFxuICAgICAgc2hvd1ZpZXdCdXR0b246IHRydWUsXG4gICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLm5zLFxuICAgIH07XG4gIH0pO1xuXG4gIGZvcm1NZXRhOiBGb3JtTWV0YWRhdGEgPSB0aGlzLmJ1aWxkRm9ybU1ldGEoKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBBdXRvLXJlZ2lzdHJvIGkxOG4g4oCUIHJlc3BldGEgb3ZlcnJpZGUgZGVsIGNvbnN1bWVyLiBFbCBuYW1lc3BhY2UgcHVlZGVcbiAgICAvLyB2ZW5pciBkZSBASW5wdXQuY29uZmlnIG8gZGVsIHJvdXRlIGRhdGE7IGxvIHJlc29sdmVtb3MgYWPDoS5cbiAgICBjb25zdCBucyA9IHRoaXMubnM7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKG5zKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyQ29udGVudChucywgUFJPRklMRV9WSUVXX0kxOE4pO1xuICAgIH1cblxuICAgIHRoaXMubmF2LnNldEJhY2tIZWFkZXIoJ3BhZ2VUaXRsZScsIG5zLCB7IHdpdGhNZW51OiB0cnVlIH0pO1xuXG4gICAgY29ubmVjdFBhZ2VSZWZyZXNoKCgpID0+IHRoaXMubG9hZEZyb21BcGkoKSk7XG5cbiAgICBlZmZlY3QoXG4gICAgICBvbkNsZWFudXAgPT4ge1xuICAgICAgICBjb25zdCB1aWQgPSB0aGlzLl91c2VySWQoKTtcbiAgICAgICAgaWYgKCF1aWQpIHtcbiAgICAgICAgICB0aGlzLnByb2ZpbGUuc2V0KG51bGwpO1xuICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuXG4gICAgICAgIGxldCBzdWI6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuICAgICAgICBsZXQgY2FuY2VsbGVkID0gZmFsc2U7XG4gICAgICAgIGxldCBhcGlGYWxsYmFja1VzZWQgPSBmYWxzZTtcblxuICAgICAgICB2b2lkIHRoaXMuZmlyZWJhc2Uud2hlbkZpcmViYXNlQXV0aFJlYWR5KCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgaWYgKGNhbmNlbGxlZCkgcmV0dXJuO1xuICAgICAgICAgIHN1YiA9IHRoaXMudXNlcnNDb2wud2F0Y2godWlkKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogZG9jID0+IHtcbiAgICAgICAgICAgICAgaWYgKGRvYykge1xuICAgICAgICAgICAgICAgIHRoaXMucHJvZmlsZS5zZXQodGhpcy5tYXBNaXJyb3JUb1Byb2ZpbGUoZG9jKSk7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkRXJyb3Iuc2V0KG51bGwpO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFhcGlGYWxsYmFja1VzZWQpIHtcbiAgICAgICAgICAgICAgICBhcGlGYWxsYmFja1VzZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHZvaWQgdGhpcy5sb2FkRnJvbUFwaSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFhcGlGYWxsYmFja1VzZWQpIHtcbiAgICAgICAgICAgICAgICBhcGlGYWxsYmFja1VzZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHZvaWQgdGhpcy5sb2FkRnJvbUFwaSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBvbkNsZWFudXAoKCkgPT4ge1xuICAgICAgICAgIGNhbmNlbGxlZCA9IHRydWU7XG4gICAgICAgICAgc3ViPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICApO1xuXG4gICAgLy8gc2F2aW5nIOKGkiBtdXRhciBzdGF0ZSAodmFsLWZvcm0ubmdEb0NoZWNrIGxvIGRldGVjdGEpLlxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBpc1NhdmluZyA9IHRoaXMuc2F2aW5nKCk7XG4gICAgICBjb25zdCBzdGF0ZSA9IGlzU2F2aW5nID8gQ29tcG9uZW50U3RhdGVzLldPUktJTkcgOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRDtcbiAgICAgIHRoaXMuZm9ybU1ldGEuc3RhdGUgPSBzdGF0ZTtcbiAgICAgICh0aGlzLmZvcm1NZXRhLmFjdGlvbnMgYXMgQnV0dG9uTWV0YWRhdGEpLnN0YXRlID0gc3RhdGU7XG4gICAgICAodGhpcy5mb3JtTWV0YS5hY3Rpb25zIGFzIEJ1dHRvbk1ldGFkYXRhKS50ZXh0ID0gaXNTYXZpbmcgPyB0aGlzLnQoJ3NhdmluZycpIDogdGhpcy50KCdzYXZlJyk7XG4gICAgfSk7XG5cbiAgICAvLyBwcm9maWxlIGxvYWRlZCArIGZvcm0gbW91bnRlZCDihpIgcGF0Y2hWYWx1ZSBhbCBGb3JtR3JvdXAuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHAgPSB0aGlzLnByb2ZpbGUoKTtcbiAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZvcm1DbXAoKT8uRm9ybTtcbiAgICAgIGlmICghcCB8fCAhZm9ybSkgcmV0dXJuO1xuICAgICAgZm9ybS5wYXRjaFZhbHVlKFxuICAgICAgICB7XG4gICAgICAgICAgaGFuZGxlOiBwLmhhbmRsZSB8fCAnJyxcbiAgICAgICAgICBuYW1lOiBwLm5hbWUgfHwgJycsXG4gICAgICAgICAgcGhvbmU6IHAucGhvbmUgfHwgJycsXG4gICAgICAgIH0sXG4gICAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgLy8gaTE4bi5sYW5nIGNoYW5nZSDihpIgbXV0YXIgbGFiZWxzIChyYXJlLCBubyBhZmVjdGEgdHlwaW5nKS5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICAgIHRoaXMuYXBwbHlJMThuTGFiZWxzKCk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogQ29uc3RydWNjacOzbiBpbmljaWFsIOKAlCBVTkEgdmV6LiBHYXRlYSBoYW5kbGUvcGhvbmUgc2Vnw7puIGNvbmZpZy4gKi9cbiAgcHJpdmF0ZSBidWlsZEZvcm1NZXRhKCk6IEZvcm1NZXRhZGF0YSB7XG4gICAgY29uc3QgY2ZnID0gdGhpcy5yZXNvbHZlZENvbmZpZygpO1xuXG4gICAgY29uc3QgaGFuZGxlRmllbGQ6IElucHV0TWV0YWRhdGEgPSB7XG4gICAgICB0b2tlbjogJ3Byb2ZpbGUtaGFuZGxlJyxcbiAgICAgIG5hbWU6ICdoYW5kbGUnLFxuICAgICAgbGFiZWw6IHRoaXMudCgnaGFuZGxlJyksXG4gICAgICBoaW50OiB0aGlzLnQoJ2hhbmRsZUhpbnQnKSxcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnQoJ2hhbmRsZVBsYWNlaG9sZGVyJyksXG4gICAgICB0eXBlOiBJbnB1dFR5cGUuSEFORExFLFxuICAgICAgb3JkZXI6IDEsXG4gICAgICB2YWxpZGF0b3JzOiBbXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIFZhbGlkYXRvcnMubWluTGVuZ3RoKEhBTkRMRV9NSU4pLFxuICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aChIQU5ETEVfTUFYKSxcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKEhBTkRMRV9QQVRURVJOKSxcbiAgICAgIF0sXG4gICAgICBlcnJvcnM6IHtcbiAgICAgICAgcmVxdWlyZWQ6IHRoaXMudCgndXNlcm5hbWVJbnZhbGlkJyksXG4gICAgICAgIG1pbmxlbmd0aDogdGhpcy50KCd1c2VybmFtZUludmFsaWQnKSxcbiAgICAgICAgbWF4bGVuZ3RoOiB0aGlzLnQoJ3VzZXJuYW1lSW52YWxpZCcpLFxuICAgICAgICBwYXR0ZXJuOiB0aGlzLnQoJ3VzZXJuYW1lSW52YWxpZCcpLFxuICAgICAgfSxcbiAgICAgIHZhbHVlOiAnJyxcbiAgICAgIHJhbmdlOiB7IG1pbjogSEFORExFX01JTiwgbWF4OiBIQU5ETEVfTUFYIH0sXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgfTtcblxuICAgIGNvbnN0IG5hbWVGaWVsZDogSW5wdXRNZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAncHJvZmlsZS1uYW1lJyxcbiAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgIGxhYmVsOiB0aGlzLnQoJ25hbWUnKSxcbiAgICAgIGhpbnQ6IHRoaXMudCgnbmFtZUhpbnQnKSxcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnQoJ25hbWVQbGFjZWhvbGRlcicpLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLlRFWFQsXG4gICAgICBvcmRlcjogMixcbiAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKV0sXG4gICAgICBlcnJvcnM6IHt9LFxuICAgICAgdmFsdWU6ICcnLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH07XG5cbiAgICBjb25zdCBwaG9uZUZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdwcm9maWxlLXBob25lJyxcbiAgICAgIG5hbWU6ICdwaG9uZScsXG4gICAgICBsYWJlbDogdGhpcy50KCdwaG9uZScpLFxuICAgICAgaGludDogdGhpcy50KCdwaG9uZUhpbnQnKSxcbiAgICAgIHBsYWNlaG9sZGVyOiB0aGlzLnQoJ3Bob25lUGxhY2Vob2xkZXInKSxcbiAgICAgIHR5cGU6IElucHV0VHlwZS5QSE9ORSxcbiAgICAgIG9yZGVyOiAzLFxuICAgICAgdmFsaWRhdG9yczogW10sXG4gICAgICBlcnJvcnM6IHt9LFxuICAgICAgdmFsdWU6ICcnLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH07XG5cbiAgICAvLyBGaWx0cmFkbyBwb3IgY29uZmlnOiBlbCBuYW1lIHNpZW1wcmUgdmE7IGhhbmRsZS9waG9uZSBzb24gb3B0LW91dC5cbiAgICBjb25zdCBmaWVsZHM6IElucHV0TWV0YWRhdGFbXSA9IFtdO1xuICAgIGlmIChjZmcuc2hvd0hhbmRsZSkgZmllbGRzLnB1c2goaGFuZGxlRmllbGQpO1xuICAgIGZpZWxkcy5wdXNoKG5hbWVGaWVsZCk7XG4gICAgaWYgKGNmZy5zaG93UGhvbmUpIGZpZWxkcy5wdXNoKHBob25lRmllbGQpO1xuXG4gICAgY29uc3Qgc3VibWl0QnV0dG9uOiBCdXR0b25NZXRhZGF0YSA9IHtcbiAgICAgIHRleHQ6IHRoaXMudCgnc2F2ZScpLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIHR5cGU6ICdzdWJtaXQnLFxuICAgICAgZmlsbDogJ3NvbGlkJyxcbiAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgZXhwYW5kOiAnYmxvY2snLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgdG9rZW46ICdwcm9maWxlLXNhdmUnLFxuICAgIH0gYXMgQnV0dG9uTWV0YWRhdGE7XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogJycsXG4gICAgICBzdGF0ZTogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQsXG4gICAgICBzZWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJycsXG4gICAgICAgICAgb3JkZXI6IDEsXG4gICAgICAgICAgZmllbGRzLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGFjdGlvbnM6IHN1Ym1pdEJ1dHRvbixcbiAgICB9O1xuICB9XG5cbiAgLyoqIFJlLWFwbGljYSBsYWJlbHMvaGludHMvcGxhY2Vob2xkZXJzIGVuIGNhbWJpbyBkZSBpZGlvbWEuICovXG4gIHByaXZhdGUgYXBwbHlJMThuTGFiZWxzKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLmZvcm1NZXRhLnNlY3Rpb25zWzBdO1xuICAgIGZvciAoY29uc3QgZmllbGQgb2Ygc2VjdGlvbi5maWVsZHMpIHtcbiAgICAgIHN3aXRjaCAoZmllbGQubmFtZSkge1xuICAgICAgICBjYXNlICdoYW5kbGUnOlxuICAgICAgICAgIGZpZWxkLmxhYmVsID0gdGhpcy50KCdoYW5kbGUnKTtcbiAgICAgICAgICBmaWVsZC5oaW50ID0gdGhpcy50KCdoYW5kbGVIaW50Jyk7XG4gICAgICAgICAgZmllbGQucGxhY2Vob2xkZXIgPSB0aGlzLnQoJ2hhbmRsZVBsYWNlaG9sZGVyJyk7XG4gICAgICAgICAgZmllbGQuZXJyb3JzID0ge1xuICAgICAgICAgICAgcmVxdWlyZWQ6IHRoaXMudCgndXNlcm5hbWVJbnZhbGlkJyksXG4gICAgICAgICAgICBtaW5sZW5ndGg6IHRoaXMudCgndXNlcm5hbWVJbnZhbGlkJyksXG4gICAgICAgICAgICBtYXhsZW5ndGg6IHRoaXMudCgndXNlcm5hbWVJbnZhbGlkJyksXG4gICAgICAgICAgICBwYXR0ZXJuOiB0aGlzLnQoJ3VzZXJuYW1lSW52YWxpZCcpLFxuICAgICAgICAgIH07XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ25hbWUnOlxuICAgICAgICAgIGZpZWxkLmxhYmVsID0gdGhpcy50KCduYW1lJyk7XG4gICAgICAgICAgZmllbGQuaGludCA9IHRoaXMudCgnbmFtZUhpbnQnKTtcbiAgICAgICAgICBmaWVsZC5wbGFjZWhvbGRlciA9IHRoaXMudCgnbmFtZVBsYWNlaG9sZGVyJyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3Bob25lJzpcbiAgICAgICAgICBmaWVsZC5sYWJlbCA9IHRoaXMudCgncGhvbmUnKTtcbiAgICAgICAgICBmaWVsZC5oaW50ID0gdGhpcy50KCdwaG9uZUhpbnQnKTtcbiAgICAgICAgICBmaWVsZC5wbGFjZWhvbGRlciA9IHRoaXMudCgncGhvbmVQbGFjZWhvbGRlcicpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBidXR0b24gPSB0aGlzLmZvcm1NZXRhLmFjdGlvbnMgYXMgQnV0dG9uTWV0YWRhdGE7XG4gICAgYnV0dG9uLnRleHQgPSB0aGlzLnNhdmluZygpID8gdGhpcy50KCdzYXZpbmcnKSA6IHRoaXMudCgnc2F2ZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZhbGxiYWNrIFJFU1QuIENhcGEgNCAoVUkgZGVjbGFyYXRpdmEpOiBOTyB0b2FzdGVhbW9zIGFjw6Eg4oCUIGVsXG4gICAqIHZhbC1lbXB0eS1zdGF0ZSBFUyBsYSBVSSBkZWwgZXJyb3IuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGxvYWRGcm9tQXBpKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHAgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmF1dGguZ2V0UHJvZmlsZSgpKTtcbiAgICAgIHRoaXMucHJvZmlsZS5zZXQocCk7XG4gICAgICB0aGlzLmxvYWRFcnJvci5zZXQobnVsbCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmxvYWRFcnJvci5zZXQoZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtYXBNaXJyb3JUb1Byb2ZpbGUoZG9jOiBVc2VyTWlycm9yRG9jKTogR2V0UHJvZmlsZVJlc3BvbnNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgb3BlcmF0aW9uSWQ6ICcnLFxuICAgICAgdXNlcklkOiBkb2MudXNlcklkLFxuICAgICAgZW1haWw6IGRvYy5lbWFpbCxcbiAgICAgIG5hbWU6IGRvYy5uYW1lID8/ICcnLFxuICAgICAgaGFuZGxlOiBkb2MuaGFuZGxlLFxuICAgICAgcGhvbmU6IGRvYy5waG9uZSxcbiAgICAgIGF2YXRhclVybDogZG9jLmF2YXRhclVybCxcbiAgICAgIGVtYWlsVmVyaWZpZWQ6IGZhbHNlLFxuICAgICAgcGhvbmVWZXJpZmllZDogZmFsc2UsXG4gICAgICBtZmFFbmFibGVkOiBmYWxzZSxcbiAgICAgIGNyZWF0ZWRBdDogJycsXG4gICAgICB1cGRhdGVkQXQ6ICcnLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBvblN1Ym1pdChldmVudDogRm9ybVN1Ym1pdCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnNhdmluZygpKSByZXR1cm47XG5cbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5wcm9maWxlKCk7XG4gICAgaWYgKCFjdXJyZW50KSByZXR1cm47XG5cbiAgICBjb25zdCBjZmcgPSB0aGlzLnJlc29sdmVkQ29uZmlnKCk7XG4gICAgY29uc3QgZmllbGRzID0gZXZlbnQuZmllbGRzIHx8IHt9O1xuICAgIGNvbnN0IG5leHRIYW5kbGUgPSBTdHJpbmcoZmllbGRzWydoYW5kbGUnXSB8fCAnJylcbiAgICAgIC50cmltKClcbiAgICAgIC50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IG5leHROYW1lID0gU3RyaW5nKGZpZWxkc1snbmFtZSddIHx8ICcnKS50cmltKCk7XG4gICAgY29uc3QgbmV4dFBob25lID0gU3RyaW5nKGZpZWxkc1sncGhvbmUnXSB8fCAnJykudHJpbSgpO1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlZCA9IGNmZy5zaG93SGFuZGxlICYmICEhbmV4dEhhbmRsZSAmJiBuZXh0SGFuZGxlICE9PSAoY3VycmVudC5oYW5kbGUgfHwgJycpLnRvTG93ZXJDYXNlKCk7XG4gICAgY29uc3QgbmFtZUNoYW5nZWQgPSAhIW5leHROYW1lICYmIG5leHROYW1lICE9PSAoY3VycmVudC5uYW1lIHx8ICcnKTtcbiAgICBjb25zdCBwaG9uZUNoYW5nZWQgPSBjZmcuc2hvd1Bob25lICYmIG5leHRQaG9uZSAhPT0gKGN1cnJlbnQucGhvbmUgfHwgJycpO1xuXG4gICAgaWYgKCFoYW5kbGVDaGFuZ2VkICYmICFuYW1lQ2hhbmdlZCAmJiAhcGhvbmVDaGFuZ2VkKSB7XG4gICAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgICBtZXNzYWdlOiB0aGlzLnQoJ3NhdmVTdWNjZXNzJyksXG4gICAgICAgIGR1cmF0aW9uOiAyMDAwLFxuICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICBwb3NpdGlvbjogJ3RvcCcsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNhdmluZy5zZXQodHJ1ZSk7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChoYW5kbGVDaGFuZ2VkKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5hdXRoLnVwZGF0ZUhhbmRsZShuZXh0SGFuZGxlKSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgICAgIGNvbnRleHQ6ICdwcm9maWxlLnVwZGF0ZUhhbmRsZScsXG4gICAgICAgICAgICBpMThuTWFwOiB7IEFVVEhfVVNFUk5BTUVfRVhJU1RTOiAnaGFuZGxlSW5Vc2UnIH0sXG4gICAgICAgICAgICBmYWxsYmFja0tleTogJ2hhbmRsZUVycm9yJyxcbiAgICAgICAgICAgIGkxOG5OYW1lc3BhY2U6IHRoaXMubnMsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5sb2FkRnJvbUFwaSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAobmFtZUNoYW5nZWQgfHwgcGhvbmVDaGFuZ2VkKSB7XG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IHsgbmFtZT86IHN0cmluZzsgcGhvbmU/OiBzdHJpbmcgfSA9IHt9O1xuICAgICAgICBpZiAobmFtZUNoYW5nZWQpIHBheWxvYWQubmFtZSA9IG5leHROYW1lO1xuICAgICAgICBpZiAocGhvbmVDaGFuZ2VkKSBwYXlsb2FkLnBob25lID0gbmV4dFBob25lO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYXV0aC51cGRhdGVQcm9maWxlKHBheWxvYWQpKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgdGhpcy5lcnJvcnMuaGFuZGxlKGVyciwge1xuICAgICAgICAgICAgY29udGV4dDogJ3Byb2ZpbGUudXBkYXRlUHJvZmlsZScsXG4gICAgICAgICAgICBpMThuTWFwOiB7XG4gICAgICAgICAgICAgIEFVVEhWMl9QSE9ORV9FWElTVFM6ICdwaG9uZUluVXNlJyxcbiAgICAgICAgICAgICAgQVVUSFYyX0lOVkFMSURfUEhPTkU6ICdwaG9uZUludmFsaWQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZhbGxiYWNrS2V5OiAnc2F2ZUVycm9yJyxcbiAgICAgICAgICAgIGkxOG5OYW1lc3BhY2U6IHRoaXMubnMsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5sb2FkRnJvbUFwaSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgICBtZXNzYWdlOiB0aGlzLnQoJ3NhdmVTdWNjZXNzJyksXG4gICAgICAgIGR1cmF0aW9uOiAyNTAwLFxuICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICBwb3NpdGlvbjogJ3RvcCcsXG4gICAgICB9KTtcbiAgICAgIGNmZy5vblNhdmVkPy4odGhpcy5wcm9maWxlKCkgPz8gY3VycmVudCk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuc2F2aW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgb25BdmF0YXJVcGxvYWRlZChyZXN1bHQ6IEF2YXRhclVwbG9hZFJlc3VsdCk6IHZvaWQge1xuICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICBtZXNzYWdlOiB0aGlzLnQoJ2F2YXRhclN1Y2Nlc3MnKSxcbiAgICAgIGR1cmF0aW9uOiAyNTAwLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIHBvc2l0aW9uOiAndG9wJyxcbiAgICB9KTtcbiAgICB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25BdmF0YXJVcGxvYWRlZD8uKHJlc3VsdCk7XG4gIH1cblxuICBvbkF2YXRhckVycm9yKF9lcnI6IEF2YXRhclVwbG9hZEVycm9yKTogdm9pZCB7XG4gICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgIG1lc3NhZ2U6IHRoaXMudCgnYXZhdGFyRXJyb3InKSxcbiAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgIHBvc2l0aW9uOiAndG9wJyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBMZWUgZGVsIG5hbWVzcGFjZSBjb25maWd1cmFkby4gKi9cbiAgcHJvdGVjdGVkIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksIHRoaXMubnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsc0Zyb21OYW1lKG5hbWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghbmFtZSkgcmV0dXJuICc/JztcbiAgICBjb25zdCBwYXJ0cyA9IG5hbWUudHJpbSgpLnNwbGl0KC9cXHMrLykuZmlsdGVyKEJvb2xlYW4pO1xuICAgIGlmIChwYXJ0cy5sZW5ndGggPT09IDApIHJldHVybiAnPyc7XG4gICAgY29uc3QgZmlyc3QgPSBwYXJ0c1swXT8uWzBdID8/ICcnO1xuICAgIGNvbnN0IGxhc3QgPSBwYXJ0cy5sZW5ndGggPiAxID8gKHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdPy5bMF0gPz8gJycpIDogJyc7XG4gICAgcmV0dXJuIChmaXJzdCArIGxhc3QpLnRvVXBwZXJDYXNlKCkgfHwgJz8nO1xuICB9XG59XG4iXX0=
|
|
658
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvcHJvZmlsZS12aWV3L3Byb2ZpbGUtdmlldy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUVwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUVqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFbEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUV4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUs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bSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgaW5qZWN0LCBJbnB1dCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEF2YXRhclVwbG9hZENvbXBvbmVudCB9IGZyb20gJy4uL2F2YXRhci11cGxvYWQvYXZhdGFyLXVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXZhdGFyVXBsb2FkRXJyb3IsIEF2YXRhclVwbG9hZE1ldGFkYXRhLCBBdmF0YXJVcGxvYWRSZXN1bHQgfSBmcm9tICcuLi9hdmF0YXItdXBsb2FkL3R5cGVzJztcbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFNoYXJlUHJvZmlsZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmUtcHJvZmlsZS1tb2RhbC9zaGFyZS1wcm9maWxlLW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaGFyZVByb2ZpbGVNb2RhbE1ldGFkYXRhIH0gZnJvbSAnLi4vc2hhcmUtcHJvZmlsZS1tb2RhbC90eXBlcyc7XG5pbXBvcnQgeyBDdGFDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2N0YS1jYXJkL2N0YS1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdGFDYXJkTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvY3RhLWNhcmQvdHlwZXMnO1xuaW1wb3J0IHsgU2tlbGV0b25MYXlvdXRDb21wb25lbnQgfSBmcm9tICcuLi9za2VsZXRvbi1sYXlvdXQvc2tlbGV0b24tbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXNwbGF5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvZGlzcGxheS9kaXNwbGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL2VtcHR5LXN0YXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvZW1wdHktc3RhdGUvdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlRXJyb3JTdGF0ZVByb3BzIH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2VtcHR5LXN0YXRlL2ZhY3RvcnknO1xuaW1wb3J0IHsgQnV0dG9uTWV0YWRhdGEsIENvbXBvbmVudFN0YXRlcywgRm9ybU1ldGFkYXRhLCBGb3JtU3VibWl0LCBJbnB1dE1ldGFkYXRhLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgR2V0UHJvZmlsZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC90eXBlcyc7XG5pbXBvcnQgeyBGaXJlYmFzZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maXJlYmFzZS9maXJlYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpcmVzdG9yZUNvbGxlY3Rpb25GYWN0b3J5LCBUeXBlZENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maXJlYmFzZS9maXJlc3RvcmUtY29sbGVjdGlvbic7XG5pbXBvcnQgeyBGaXJlc3RvcmVEb2N1bWVudCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpcmViYXNlL3R5cGVzJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IGNvbm5lY3RQYWdlUmVmcmVzaCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3BhZ2UtcmVmcmVzaC9wYWdlLXJlZnJlc2guc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbHRlY2hFcnJvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9lcnJvcnMvdmFsdGVjaC1lcnJvci5zZXJ2aWNlJztcbmltcG9ydCB7IGludGVycHJldEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZXJyb3JzL2ludGVycHJldC1lcnJvcic7XG5cbmltcG9ydCB7IFByb2ZpbGVWaWV3Q29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBQUk9GSUxFX1ZJRVdfSTE4TiB9IGZyb20gJy4vcHJvZmlsZS12aWV3LmkxOG4nO1xuXG4vKipcbiAqIEZvcm1hIGRlbCBkb2MgRmlyZXN0b3JlIC91c2Vycy97dWlkfSBxdWUgbGEgdmlzdGEgY29uc3VtZS4gU3Vic2V0IGRlbCBzY2hlbWFcbiAqIGVzY3JpdG8gcG9yIGVsIGJhY2tlbmQgKFN5bmNQcm9maWxlVG9GaXJlc3RvcmUpIOKAlCBzb2xvIGxvcyBjYW1wb3MgcXVlIGVzdGFcbiAqIHZpc3RhIG5lY2VzaXRhOyBsb3MgZGVtw6FzIChzdGF0dXMsIG1mYUVuYWJsZWQsIHJvbGVzLCBldGMuKSBzZSBpZ25vcmFuLlxuICovXG5pbnRlcmZhY2UgVXNlck1pcnJvckRvYyBleHRlbmRzIEZpcmVzdG9yZURvY3VtZW50IHtcbiAgdXNlcklkOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGhhbmRsZT86IHN0cmluZztcbiAgcGhvbmU/OiBzdHJpbmc7XG4gIGF2YXRhclVybD86IHN0cmluZztcbiAgYXZhdGFyVGh1bWJuYWlsPzogc3RyaW5nO1xufVxuXG4vKiogUGF0csOzbiBzaW5jcm9uaXphZG8gY29uIGJhY2tlbmQgaGFuZGxlUmVnZXg6IGxvd2VyY2FzZSBhbGZhbnVtICsgdW5kZXJzY29yZS4gKi9cbmNvbnN0IEhBTkRMRV9QQVRURVJOID0gL15bYS16X11bYS16MC05X10qJC87XG5jb25zdCBIQU5ETEVfTUlOID0gMztcbmNvbnN0IEhBTkRMRV9NQVggPSAyMDtcblxuY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSAnU2V0dGluZ3MuUHJvZmlsZSc7XG5cbi8qKlxuICogYHZhbC1wcm9maWxlLXZpZXdgIOKAlCB2aXN0YSBQZXJmaWwgZnVsbC1mZWF0dXJlIGF1dG9jb250ZW5pZGEgKG9yZ2FuaXNtKS5cbiAqXG4gKiBFZGl0YSBsb3MgY2FtcG9zIHDDumJsaWNvcyBkZWwgdXN1YXJpbyBlbiBVTiBzb2xvIGZvcm11bGFyaW8gY29uIFVOIHNvbG8gYm90w7NuXG4gKiBcIkd1YXJkYXJcIi4gV2lyZXVwOlxuICogIC0gQXZhdGFyIOKAlCB2YWwtYXZhdGFyLXVwbG9hZCAoRmlyZWJhc2UgU3RvcmFnZSArIGJhY2tlbmQgc3luYykuIFNlcGFyYWRvIGRlbFxuICogICAgZm9ybSBwb3JxdWUgZXMgdXBsb2FkIHN5bmMgaW5kZXBlbmRpZW50ZS5cbiAqICAtIEhhbmRsZSAoQHVzdWFyaW8pIOKAlCBJbnB1dFR5cGUuSEFORExFICh2YWwtdXNlcm5hbWUtaW5wdXQgY29uIGNoZWNrIGRlXG4gKiAgICBkaXNwb25pYmlsaWRhZCBhc3luYyByZXN1ZWx0byB2w61hIEF1dGhTZXJ2aWNlIGlueWVjdGFkbykuXG4gKiAgLSBOb21icmUg4oCUIElucHV0VHlwZS5URVhULlxuICogIC0gVGVsw6lmb25vIOKAlCBJbnB1dFR5cGUuUEhPTkUuXG4gKlxuICogU3VibWl0IGhhbmRsZXIgZGlzcGF0Y2hhOlxuICogIDEuIFNpIGhhbmRsZSBjYW1iacOzIOKGkiB1cGRhdGVIYW5kbGUgUFJJTUVSTyAodW5pcXVlbmVzcykuXG4gKiAgMi4gU2kgbmFtZSBvIHBob25lIGNhbWJpw7Mg4oaSIHVwZGF0ZVByb2ZpbGUgY29uIGFtYm9zLlxuICpcbiAqIExlY3R1cmEgZGVsIHBlcmZpbDogc3VzY3JpYmUgYWwgZG9jIEZpcmVzdG9yZSAvdXNlcnMve3VpZH0gKG1pcnJvciBxdWUgbWFudGllbmVcbiAqIGVsIGJhY2tlbmQpLiBSZWFjdGl2byBjcm9zcy10YWIgKyBhdXRvLXJlZnJlc2NhIHRyYXMgc2F2ZS4gRmFsbGJhY2sgUkVTVFxuICogKGF1dGguZ2V0UHJvZmlsZSkgc2kgZWwgZG9jIG5vIGV4aXN0ZSBvIGVsIGxpc3RlbmVyIGZhbGxhLlxuICpcbiAqIE5PIHJlbmRlcml6YSBpb24tY29udGVudCDigJQgdml2ZSBkZW50cm8gZGUgdmFsLXBhZ2Utd3JhcHBlci5cbiAqXG4gKiBBdXRvLXJlZ2lzdHJhIHN1cyBkZWZhdWx0cyBpMThuIChlcy9lbikgZW4gZWwgY29uc3RydWN0b3Igc2kgZWwgY29uc3VtZXIgbm9cbiAqIHByb3ZlecOzIGVsIG5hbWVzcGFjZSBjb25maWd1cmFkbyAoZGVmYXVsdCBgU2V0dGluZ3MuUHJvZmlsZWApLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtcHJvZmlsZS12aWV3JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEF2YXRhclVwbG9hZENvbXBvbmVudCxcbiAgICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICAgIEZvcm1Db21wb25lbnQsXG4gICAgRGlzcGxheUNvbXBvbmVudCxcbiAgICBUZXh0Q29tcG9uZW50LFxuICAgIFRpdGxlQ29tcG9uZW50LFxuICAgIFNrZWxldG9uTGF5b3V0Q29tcG9uZW50LFxuICAgIEN0YUNhcmRDb21wb25lbnQsXG4gICAgU2hhcmVQcm9maWxlTW9kYWxDb21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInBhZ2VcIj5cbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJwYWdlLWhlYWRlclwiPlxuICAgICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgc2l6ZTogJ3NtYWxsJywgY29sb3I6ICdkYXJrJywgY29udGVudDogdCgncGFnZVRpdGxlJykgfVwiIC8+XG4gICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgc2l6ZTogJ2xhcmdlJyxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHQoJ3BhZ2VEZXNjcmlwdGlvbicpLFxuICAgICAgICAgIH1cIlxuICAgICAgICAvPlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIEBpZiAobG9hZGluZygpKSB7XG4gICAgICAgIDx2YWwtc2tlbGV0b24tbGF5b3V0IFtwcm9wc109XCJ7IHByZXNldDogJ2Zvcm0nLCByb3dzOiAzLCBzaG93QXZhdGFyOiB0cnVlIH1cIiAvPlxuICAgICAgfSBAZWxzZSBpZiAoZXJyb3JTdGF0ZSgpKSB7XG4gICAgICAgIDx2YWwtZW1wdHktc3RhdGUgW3Byb3BzXT1cImVycm9yU3RhdGUoKSFcIiAvPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIEBpZiAocHJvZmlsZSgpOyBhcyBwKSB7XG4gICAgICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dBdmF0YXIpIHtcbiAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwic2V0dGluZ3Mtc2VjdGlvbiBhdmF0YXItc2VjdGlvblwiPlxuICAgICAgICAgICAgICA8dmFsLWF2YXRhci11cGxvYWRcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwiYXZhdGFyUHJvcHMoKVwiXG4gICAgICAgICAgICAgICAgKHVwbG9hZGVkKT1cIm9uQXZhdGFyVXBsb2FkZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uQXZhdGFyRXJyb3IoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItbWV0YVwiPlxuICAgICAgICAgICAgICAgIDx2YWwtdGl0bGVcbiAgICAgICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBwLm5hbWUgfHwgJ+KAlCcsXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHAuZW1haWwsXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIEBpZiAocC5oYW5kbGUpIHtcbiAgICAgICAgICAgICAgICAgIDx2YWwtdGV4dFxuICAgICAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdAJyArIHAuaGFuZGxlLFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvc2VjdGlvbj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICA8dmFsLWZvcm0gI2Zvcm0gW3Byb3BzXT1cImZvcm1NZXRhXCIgKG9uU3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIiAvPlxuXG4gICAgICAgICAgQGlmIChyZXNvbHZlZENvbmZpZygpLnNob3dTaGFyZUN0YSAmJiBwLmhhbmRsZSkge1xuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZXR0aW5ncy1zZWN0aW9uIHNoYXJlLWN0YS1zZWN0aW9uXCI+XG4gICAgICAgICAgICAgIDx2YWwtY3RhLWNhcmQgW3Byb3BzXT1cInNoYXJlQ3RhKClcIiAob25BY3Rpb24pPVwic2hhcmVPcGVuLnNldCh0cnVlKVwiIC8+XG4gICAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICA8dmFsLXNoYXJlLXByb2ZpbGUtbW9kYWwgW2lzT3Blbl09XCJzaGFyZU9wZW4oKVwiIFtwcm9wc109XCJzaGFyZU1vZGFsKClcIiAoZGlzbWlzc2VkKT1cInNoYXJlT3Blbi5zZXQoZmFsc2UpXCIgLz5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLnBhZ2Uge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDA7XG4gICAgICAgIG1heC13aWR0aDogNzIwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgfVxuICAgICAgLnBhZ2UtaGVhZGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICAgIH1cbiAgICAgIC5wYWdlLWhlYWRlciBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbWFyZ2luOiAwIDAgNHB4O1xuICAgICAgfVxuICAgICAgLmhpbnQge1xuICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICAgICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgICAgIH1cbiAgICAgIC5zZXR0aW5ncy1zZWN0aW9uIHtcbiAgICAgICAgcGFkZGluZzogMTZweCAwO1xuICAgICAgfVxuICAgICAgLnNldHRpbmdzLXNlY3Rpb24gKyAuc2V0dGluZ3Mtc2VjdGlvbiB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS12YWwtYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDgpKTtcbiAgICAgIH1cbiAgICAgIC5hdmF0YXItc2VjdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgIH1cbiAgICAgIC5hdmF0YXItbWV0YSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMnB4O1xuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFByb2ZpbGVWaWV3Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBuYXYgPSBpbmplY3QoTmF2aWdhdGlvblNlcnZpY2UpO1xuICBwcml2YXRlIGF1dGggPSBpbmplY3QoQXV0aFNlcnZpY2UpO1xuICBwcml2YXRlIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuICBwcml2YXRlIHRvYXN0ID0gaW5qZWN0KFRvYXN0U2VydmljZSk7XG4gIHByaXZhdGUgZXJyb3JzID0gaW5qZWN0KFZhbHRlY2hFcnJvclNlcnZpY2UpO1xuICBwcml2YXRlIGZpcmViYXNlID0gaW5qZWN0KEZpcmViYXNlU2VydmljZSk7XG4gIHByaXZhdGUgY29sbGVjdGlvbnMgPSBpbmplY3QoRmlyZXN0b3JlQ29sbGVjdGlvbkZhY3RvcnkpO1xuICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXG4gIC8qKlxuICAgKiBDb25maWcgdsOtYSBASW5wdXQgKG9iamVjdC1maXJzdCkuIFNpIG5vIHNlIHBhc2EsIHNlIGNhZSBhbCByb3V0ZSBkYXRhXG4gICAqIGBwcm9maWxlQ29uZmlnYCAocG9ibGFkbyBwb3IgYHByb3ZpZGVWYWx0ZWNoUHJvZmlsZVJvdXRlc2ApLiBgcmVzb2x2ZWRDb25maWdgXG4gICAqIG1lcmdlYSBjb24gbG9zIGRlZmF1bHRzLlxuICAgKi9cbiAgQElucHV0KCkgY29uZmlnPzogUHJvZmlsZVZpZXdDb25maWc7XG5cbiAgLyoqIENvbmZpZyBtZXJnZWFkYSBjb24gZGVmYXVsdHMuIEBJbnB1dCBnYW5hIHNvYnJlIHJvdXRlIGRhdGEuICovXG4gIHJlYWRvbmx5IHJlc29sdmVkQ29uZmlnID0gY29tcHV0ZWQ8XG4gICAgUmVxdWlyZWQ8T21pdDxQcm9maWxlVmlld0NvbmZpZywgJ29uU2F2ZWQnIHwgJ29uQXZhdGFyVXBsb2FkZWQnIHwgJ3Byb2ZpbGVCYXNlVXJsJz4+ICZcbiAgICAgIFBpY2s8UHJvZmlsZVZpZXdDb25maWcsICdvblNhdmVkJyB8ICdvbkF2YXRhclVwbG9hZGVkJyB8ICdwcm9maWxlQmFzZVVybCc+XG4gID4oKCkgPT4ge1xuICAgIGNvbnN0IGZyb21Sb3V0ZSA9ICh0aGlzLnJvdXRlPy5zbmFwc2hvdC5kYXRhWydwcm9maWxlQ29uZmlnJ10gPz8ge30pIGFzIFByb2ZpbGVWaWV3Q29uZmlnO1xuICAgIGNvbnN0IG1lcmdlZDogUHJvZmlsZVZpZXdDb25maWcgPSB7IC4uLmZyb21Sb3V0ZSwgLi4uKHRoaXMuY29uZmlnID8/IHt9KSB9O1xuICAgIHJldHVybiB7XG4gICAgICBzaG93QXZhdGFyOiBtZXJnZWQuc2hvd0F2YXRhciA/PyB0cnVlLFxuICAgICAgc2hvd0hhbmRsZTogbWVyZ2VkLnNob3dIYW5kbGUgPz8gdHJ1ZSxcbiAgICAgIHNob3dQaG9uZTogbWVyZ2VkLnNob3dQaG9uZSA/PyB0cnVlLFxuICAgICAgc2hvd1NoYXJlQ3RhOiBtZXJnZWQuc2hvd1NoYXJlQ3RhID8/IHRydWUsXG4gICAgICBwcm9maWxlQmFzZVVybDogbWVyZ2VkLnByb2ZpbGVCYXNlVXJsID8/ICcnLFxuICAgICAgaTE4bk5hbWVzcGFjZTogbWVyZ2VkLmkxOG5OYW1lc3BhY2UgPz8gREVGQVVMVF9OQU1FU1BBQ0UsXG4gICAgICBvblNhdmVkOiBtZXJnZWQub25TYXZlZCxcbiAgICAgIG9uQXZhdGFyVXBsb2FkZWQ6IG1lcmdlZC5vbkF2YXRhclVwbG9hZGVkLFxuICAgIH07XG4gIH0pO1xuXG4gIC8qKiBOYW1lc3BhY2UgaTE4biByZXN1ZWx0byAoY2FwdHVyYWRvIHVuYSB2ZXogcGFyYSBsbGFtYWRhcyBuby1yZWFjdGl2YXMpLiAqL1xuICBwcml2YXRlIGdldCBucygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVkQ29uZmlnKCkuaTE4bk5hbWVzcGFjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb2xlY2Npw7NuIGdsb2JhbCAvdXNlcnMve3VpZH0gKHNraXBBcHBQcmVmaXg6IHRydWUg4oCUIGVsIGRvYyB2aXZlIGZ1ZXJhIGRlXG4gICAqIGFwcHMve2FwcElkfS8uLi4gcG9ycXVlIGVzIGNyb3NzLWFwcCwgdmVyIGZpcmVzdG9yZS5ydWxlcykuXG4gICAqL1xuICBwcml2YXRlIHVzZXJzQ29sOiBUeXBlZENvbGxlY3Rpb248VXNlck1pcnJvckRvYz4gPSB0aGlzLmNvbGxlY3Rpb25zLmNyZWF0ZTxVc2VyTWlycm9yRG9jPigndXNlcnMnLCB7XG4gICAgc2tpcEFwcFByZWZpeDogdHJ1ZSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBmb3JtQ21wID0gdmlld0NoaWxkPEZvcm1Db21wb25lbnQ+KCdmb3JtJyk7XG5cbiAgcmVhZG9ubHkgcHJvZmlsZSA9IHNpZ25hbDxHZXRQcm9maWxlUmVzcG9uc2UgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgbG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcbiAgcmVhZG9ubHkgc2F2aW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgcmVhZG9ubHkgbG9hZEVycm9yID0gc2lnbmFsPHVua25vd24gfCBudWxsPihudWxsKTtcblxuICByZWFkb25seSBzaGFyZU9wZW4gPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IHNoYXJlQ3RhID0gY29tcHV0ZWQ8Q3RhQ2FyZE1ldGFkYXRhPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6IHRoaXMudCgnc2hhcmVDdGFUaXRsZScpLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMudCgnc2hhcmVDdGFEZXNjJyksXG4gICAgICBib3JkZXJlZDogdHJ1ZSxcbiAgICAgIGFjdGlvbnM6IHtcbiAgICAgICAgcG9zaXRpb246ICdsZWZ0JyxcbiAgICAgICAgY29sdW1uZWQ6IGZhbHNlLFxuICAgICAgICBidXR0b25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogdGhpcy50KCdzaGFyZUN0YUJ0bicpLFxuICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgIHNoYXBlOiAncm91bmQnLFxuICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICBzdGF0ZTogJ0VOQUJMRUQnLFxuICAgICAgICAgICAgdG9rZW46ICdzaGFyZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc2hhcmVNb2RhbCA9IGNvbXB1dGVkPFNoYXJlUHJvZmlsZU1vZGFsTWV0YWRhdGE+KCgpID0+IHtcbiAgICBjb25zdCBwID0gdGhpcy5wcm9maWxlKCk7XG4gICAgY29uc3QgaGFuZGxlID0gcD8uaGFuZGxlID8/ICdtZSc7XG4gICAgY29uc3QgYmFzZSA9IHRoaXMucmVzb2x2ZWRDb25maWcoKS5wcm9maWxlQmFzZVVybDtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogcD8ubmFtZSA/PyAnJyxcbiAgICAgIGhhbmRsZTogcD8uaGFuZGxlLFxuICAgICAgYXZhdGFyVXJsOiBwPy5hdmF0YXJVcmwsXG4gICAgICBlbWFpbDogcD8uZW1haWwsXG4gICAgICB1cmw6IGJhc2UgPyBgJHtiYXNlfS91LyR7aGFuZGxlfWAgOiBgL3UvJHtoYW5kbGV9YCxcbiAgICB9O1xuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF91c2VySWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmF1dGgudXNlcigpPy51c2VySWQgPz8gbnVsbCk7XG5cbiAgcmVhZG9ubHkgZXJyb3JTdGF0ZSA9IGNvbXB1dGVkPEVtcHR5U3RhdGVNZXRhZGF0YSB8IG51bGw+KCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIGNvbnN0IGVyciA9IHRoaXMubG9hZEVycm9yKCk7XG4gICAgaWYgKCFlcnIpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBjcmVhdGVFcnJvclN0YXRlUHJvcHMoZXJyLCB7XG4gICAgICB0aXRsZToge1xuICAgICAgICBvZmZsaW5lOiB0aGlzLnQoJ29mZmxpbmVUaXRsZScpLFxuICAgICAgICBlcnJvcjogdGhpcy50KCdlcnJvclRpdGxlJyksXG4gICAgICB9LFxuICAgICAgZGVzY3JpcHRpb246IHtcbiAgICAgICAgb2ZmbGluZTogdGhpcy50KCdvZmZsaW5lSGludCcpLFxuICAgICAgICBlcnJvcjogaW50ZXJwcmV0RXJyb3IoZXJyKS5tZXNzYWdlLFxuICAgICAgfSxcbiAgICAgIHJldHJ5TGFiZWw6IHRoaXMudCgncmV0cnknKSxcbiAgICAgIG9uUmV0cnk6ICgpID0+IHRoaXMubG9hZEZyb21BcGkoKSxcbiAgICAgIHJldHJ5aW5nOiB0aGlzLmxvYWRpbmcoKSxcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgYXZhdGFyUHJvcHMgPSBjb21wdXRlZDxBdmF0YXJVcGxvYWRNZXRhZGF0YT4oKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgY29uc3QgcCA9IHRoaXMucHJvZmlsZSgpO1xuICAgIHJldHVybiB7XG4gICAgICBjdXJyZW50VXJsOiBwPy5hdmF0YXJVcmwsXG4gICAgICBpbml0aWFsczogdGhpcy5pbml0aWFsc0Zyb21OYW1lKHA/Lm5hbWUpLFxuICAgICAgc2l6ZTogOTYsXG4gICAgICBlZGl0YWJsZTogdHJ1ZSxcbiAgICAgIHNob3dWaWV3QnV0dG9uOiB0cnVlLFxuICAgICAgaTE4bk5hbWVzcGFjZTogdGhpcy5ucyxcbiAgICB9O1xuICB9KTtcblxuICBmb3JtTWV0YTogRm9ybU1ldGFkYXRhID0gdGhpcy5idWlsZEZvcm1NZXRhKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gQXV0by1yZWdpc3RybyBpMThuIOKAlCByZXNwZXRhIG92ZXJyaWRlIGRlbCBjb25zdW1lci4gRWwgbmFtZXNwYWNlIHB1ZWRlXG4gICAgLy8gdmVuaXIgZGUgQElucHV0LmNvbmZpZyBvIGRlbCByb3V0ZSBkYXRhOyBsbyByZXNvbHZlbW9zIGFjw6EuXG4gICAgY29uc3QgbnMgPSB0aGlzLm5zO1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZShucykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQobnMsIFBST0ZJTEVfVklFV19JMThOKTtcbiAgICB9XG5cbiAgICB0aGlzLm5hdi5zZXRCYWNrSGVhZGVyKCdwYWdlVGl0bGUnLCBucywgeyB3aXRoTWVudTogdHJ1ZSB9KTtcblxuICAgIGNvbm5lY3RQYWdlUmVmcmVzaCgoKSA9PiB0aGlzLmxvYWRGcm9tQXBpKCkpO1xuXG4gICAgZWZmZWN0KFxuICAgICAgb25DbGVhbnVwID0+IHtcbiAgICAgICAgY29uc3QgdWlkID0gdGhpcy5fdXNlcklkKCk7XG4gICAgICAgIGlmICghdWlkKSB7XG4gICAgICAgICAgdGhpcy5wcm9maWxlLnNldChudWxsKTtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2FkaW5nLnNldCh0cnVlKTtcblxuICAgICAgICBsZXQgc3ViOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcbiAgICAgICAgbGV0IGNhbmNlbGxlZCA9IGZhbHNlO1xuICAgICAgICBsZXQgYXBpRmFsbGJhY2tVc2VkID0gZmFsc2U7XG5cbiAgICAgICAgdm9pZCB0aGlzLmZpcmViYXNlLndoZW5GaXJlYmFzZUF1dGhSZWFkeSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIGlmIChjYW5jZWxsZWQpIHJldHVybjtcbiAgICAgICAgICBzdWIgPSB0aGlzLnVzZXJzQ29sLndhdGNoKHVpZCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIG5leHQ6IGRvYyA9PiB7XG4gICAgICAgICAgICAgIGlmIChkb2MpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByb2ZpbGUuc2V0KHRoaXMubWFwTWlycm9yVG9Qcm9maWxlKGRvYykpO1xuICAgICAgICAgICAgICAgIHRoaXMubG9hZEVycm9yLnNldChudWxsKTtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICghYXBpRmFsbGJhY2tVc2VkKSB7XG4gICAgICAgICAgICAgICAgYXBpRmFsbGJhY2tVc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB2b2lkIHRoaXMubG9hZEZyb21BcGkoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghYXBpRmFsbGJhY2tVc2VkKSB7XG4gICAgICAgICAgICAgICAgYXBpRmFsbGJhY2tVc2VkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB2b2lkIHRoaXMubG9hZEZyb21BcGkoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgb25DbGVhbnVwKCgpID0+IHtcbiAgICAgICAgICBjYW5jZWxsZWQgPSB0cnVlO1xuICAgICAgICAgIHN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgKTtcblxuICAgIC8vIHNhdmluZyDihpIgbXV0YXIgc3RhdGUgKHZhbC1mb3JtLm5nRG9DaGVjayBsbyBkZXRlY3RhKS5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaXNTYXZpbmcgPSB0aGlzLnNhdmluZygpO1xuICAgICAgY29uc3Qgc3RhdGUgPSBpc1NhdmluZyA/IENvbXBvbmVudFN0YXRlcy5XT1JLSU5HIDogQ29tcG9uZW50U3RhdGVzLkVOQUJMRUQ7XG4gICAgICB0aGlzLmZvcm1NZXRhLnN0YXRlID0gc3RhdGU7XG4gICAgICAodGhpcy5mb3JtTWV0YS5hY3Rpb25zIGFzIEJ1dHRvbk1ldGFkYXRhKS5zdGF0ZSA9IHN0YXRlO1xuICAgICAgKHRoaXMuZm9ybU1ldGEuYWN0aW9ucyBhcyBCdXR0b25NZXRhZGF0YSkudGV4dCA9IGlzU2F2aW5nID8gdGhpcy50KCdzYXZpbmcnKSA6IHRoaXMudCgnc2F2ZScpO1xuICAgIH0pO1xuXG4gICAgLy8gcHJvZmlsZSBsb2FkZWQgKyBmb3JtIG1vdW50ZWQg4oaSIHBhdGNoVmFsdWUgYWwgRm9ybUdyb3VwLlxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBwID0gdGhpcy5wcm9maWxlKCk7XG4gICAgICBjb25zdCBmb3JtID0gdGhpcy5mb3JtQ21wKCk/LkZvcm07XG4gICAgICBpZiAoIXAgfHwgIWZvcm0pIHJldHVybjtcbiAgICAgIGZvcm0ucGF0Y2hWYWx1ZShcbiAgICAgICAge1xuICAgICAgICAgIGhhbmRsZTogcC5oYW5kbGUgfHwgJycsXG4gICAgICAgICAgbmFtZTogcC5uYW1lIHx8ICcnLFxuICAgICAgICAgIHBob25lOiBwLnBob25lIHx8ICcnLFxuICAgICAgICB9LFxuICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIC8vIGkxOG4ubGFuZyBjaGFuZ2Ug4oaSIG11dGFyIGxhYmVscyAocmFyZSwgbm8gYWZlY3RhIHR5cGluZykuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgICB0aGlzLmFwcGx5STE4bkxhYmVscygpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIENvbnN0cnVjY2nDs24gaW5pY2lhbCDigJQgVU5BIHZlei4gR2F0ZWEgaGFuZGxlL3Bob25lIHNlZ8O6biBjb25maWcuICovXG4gIHByaXZhdGUgYnVpbGRGb3JtTWV0YSgpOiBGb3JtTWV0YWRhdGEge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMucmVzb2x2ZWRDb25maWcoKTtcblxuICAgIGNvbnN0IGhhbmRsZUZpZWxkOiBJbnB1dE1ldGFkYXRhID0ge1xuICAgICAgdG9rZW46ICdwcm9maWxlLWhhbmRsZScsXG4gICAgICBuYW1lOiAnaGFuZGxlJyxcbiAgICAgIGxhYmVsOiB0aGlzLnQoJ2hhbmRsZScpLFxuICAgICAgaGludDogdGhpcy50KCdoYW5kbGVIaW50JyksXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy50KCdoYW5kbGVQbGFjZWhvbGRlcicpLFxuICAgICAgdHlwZTogSW5wdXRUeXBlLkhBTkRMRSxcbiAgICAgIG9yZGVyOiAxLFxuICAgICAgdmFsaWRhdG9yczogW1xuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aChIQU5ETEVfTUlOKSxcbiAgICAgICAgVmFsaWRhdG9ycy5tYXhMZW5ndGgoSEFORExFX01BWCksXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihIQU5ETEVfUEFUVEVSTiksXG4gICAgICBdLFxuICAgICAgZXJyb3JzOiB7XG4gICAgICAgIHJlcXVpcmVkOiB0aGlzLnQoJ3VzZXJuYW1lSW52YWxpZCcpLFxuICAgICAgICBtaW5sZW5ndGg6IHRoaXMudCgndXNlcm5hbWVJbnZhbGlkJyksXG4gICAgICAgIG1heGxlbmd0aDogdGhpcy50KCd1c2VybmFtZUludmFsaWQnKSxcbiAgICAgICAgcGF0dGVybjogdGhpcy50KCd1c2VybmFtZUludmFsaWQnKSxcbiAgICAgIH0sXG4gICAgICB2YWx1ZTogJycsXG4gICAgICByYW5nZTogeyBtaW46IEhBTkRMRV9NSU4sIG1heDogSEFORExFX01BWCB9LFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH07XG5cbiAgICBjb25zdCBuYW1lRmllbGQ6IElucHV0TWV0YWRhdGEgPSB7XG4gICAgICB0b2tlbjogJ3Byb2ZpbGUtbmFtZScsXG4gICAgICBuYW1lOiAnbmFtZScsXG4gICAgICBsYWJlbDogdGhpcy50KCduYW1lJyksXG4gICAgICBoaW50OiB0aGlzLnQoJ25hbWVIaW50JyksXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy50KCduYW1lUGxhY2Vob2xkZXInKSxcbiAgICAgIHR5cGU6IElucHV0VHlwZS5URVhULFxuICAgICAgb3JkZXI6IDIsXG4gICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMiksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEwMCldLFxuICAgICAgZXJyb3JzOiB7fSxcbiAgICAgIHZhbHVlOiAnJyxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9O1xuXG4gICAgY29uc3QgcGhvbmVGaWVsZDogSW5wdXRNZXRhZGF0YSA9IHtcbiAgICAgIHRva2VuOiAncHJvZmlsZS1waG9uZScsXG4gICAgICBuYW1lOiAncGhvbmUnLFxuICAgICAgbGFiZWw6IHRoaXMudCgncGhvbmUnKSxcbiAgICAgIGhpbnQ6IHRoaXMudCgncGhvbmVIaW50JyksXG4gICAgICBwbGFjZWhvbGRlcjogdGhpcy50KCdwaG9uZVBsYWNlaG9sZGVyJyksXG4gICAgICB0eXBlOiBJbnB1dFR5cGUuUEhPTkUsXG4gICAgICBvcmRlcjogMyxcbiAgICAgIHZhbGlkYXRvcnM6IFtdLFxuICAgICAgZXJyb3JzOiB7fSxcbiAgICAgIHZhbHVlOiAnJyxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9O1xuXG4gICAgLy8gRmlsdHJhZG8gcG9yIGNvbmZpZzogZWwgbmFtZSBzaWVtcHJlIHZhOyBoYW5kbGUvcGhvbmUgc29uIG9wdC1vdXQuXG4gICAgY29uc3QgZmllbGRzOiBJbnB1dE1ldGFkYXRhW10gPSBbXTtcbiAgICBpZiAoY2ZnLnNob3dIYW5kbGUpIGZpZWxkcy5wdXNoKGhhbmRsZUZpZWxkKTtcbiAgICBmaWVsZHMucHVzaChuYW1lRmllbGQpO1xuICAgIGlmIChjZmcuc2hvd1Bob25lKSBmaWVsZHMucHVzaChwaG9uZUZpZWxkKTtcblxuICAgIGNvbnN0IHN1Ym1pdEJ1dHRvbjogQnV0dG9uTWV0YWRhdGEgPSB7XG4gICAgICB0ZXh0OiB0aGlzLnQoJ3NhdmUnKSxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICB0eXBlOiAnc3VibWl0JyxcbiAgICAgIGZpbGw6ICdzb2xpZCcsXG4gICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICBzaGFwZTogJ3JvdW5kJyxcbiAgICAgIGV4cGFuZDogJ2Jsb2NrJyxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICAgIHRva2VuOiAncHJvZmlsZS1zYXZlJyxcbiAgICB9IGFzIEJ1dHRvbk1ldGFkYXRhO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6ICcnLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgICAgc2VjdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICcnLFxuICAgICAgICAgIG9yZGVyOiAxLFxuICAgICAgICAgIGZpZWxkcyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBhY3Rpb25zOiBzdWJtaXRCdXR0b24sXG4gICAgfTtcbiAgfVxuXG4gIC8qKiBSZS1hcGxpY2EgbGFiZWxzL2hpbnRzL3BsYWNlaG9sZGVycyBlbiBjYW1iaW8gZGUgaWRpb21hLiAqL1xuICBwcml2YXRlIGFwcGx5STE4bkxhYmVscygpOiB2b2lkIHtcbiAgICBjb25zdCBzZWN0aW9uID0gdGhpcy5mb3JtTWV0YS5zZWN0aW9uc1swXTtcbiAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHNlY3Rpb24uZmllbGRzKSB7XG4gICAgICBzd2l0Y2ggKGZpZWxkLm5hbWUpIHtcbiAgICAgICAgY2FzZSAnaGFuZGxlJzpcbiAgICAgICAgICBmaWVsZC5sYWJlbCA9IHRoaXMudCgnaGFuZGxlJyk7XG4gICAgICAgICAgZmllbGQuaGludCA9IHRoaXMudCgnaGFuZGxlSGludCcpO1xuICAgICAgICAgIGZpZWxkLnBsYWNlaG9sZGVyID0gdGhpcy50KCdoYW5kbGVQbGFjZWhvbGRlcicpO1xuICAgICAgICAgIGZpZWxkLmVycm9ycyA9IHtcbiAgICAgICAgICAgIHJlcXVpcmVkOiB0aGlzLnQoJ3VzZXJuYW1lSW52YWxpZCcpLFxuICAgICAgICAgICAgbWlubGVuZ3RoOiB0aGlzLnQoJ3VzZXJuYW1lSW52YWxpZCcpLFxuICAgICAgICAgICAgbWF4bGVuZ3RoOiB0aGlzLnQoJ3VzZXJuYW1lSW52YWxpZCcpLFxuICAgICAgICAgICAgcGF0dGVybjogdGhpcy50KCd1c2VybmFtZUludmFsaWQnKSxcbiAgICAgICAgICB9O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICduYW1lJzpcbiAgICAgICAgICBmaWVsZC5sYWJlbCA9IHRoaXMudCgnbmFtZScpO1xuICAgICAgICAgIGZpZWxkLmhpbnQgPSB0aGlzLnQoJ25hbWVIaW50Jyk7XG4gICAgICAgICAgZmllbGQucGxhY2Vob2xkZXIgPSB0aGlzLnQoJ25hbWVQbGFjZWhvbGRlcicpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdwaG9uZSc6XG4gICAgICAgICAgZmllbGQubGFiZWwgPSB0aGlzLnQoJ3Bob25lJyk7XG4gICAgICAgICAgZmllbGQuaGludCA9IHRoaXMudCgncGhvbmVIaW50Jyk7XG4gICAgICAgICAgZmllbGQucGxhY2Vob2xkZXIgPSB0aGlzLnQoJ3Bob25lUGxhY2Vob2xkZXInKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgYnV0dG9uID0gdGhpcy5mb3JtTWV0YS5hY3Rpb25zIGFzIEJ1dHRvbk1ldGFkYXRhO1xuICAgIGJ1dHRvbi50ZXh0ID0gdGhpcy5zYXZpbmcoKSA/IHRoaXMudCgnc2F2aW5nJykgOiB0aGlzLnQoJ3NhdmUnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGYWxsYmFjayBSRVNULiBDYXBhIDQgKFVJIGRlY2xhcmF0aXZhKTogTk8gdG9hc3RlYW1vcyBhY8OhIOKAlCBlbFxuICAgKiB2YWwtZW1wdHktc3RhdGUgRVMgbGEgVUkgZGVsIGVycm9yLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBsb2FkRnJvbUFwaSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5hdXRoLmdldFByb2ZpbGUoKSk7XG4gICAgICB0aGlzLnByb2ZpbGUuc2V0KHApO1xuICAgICAgdGhpcy5sb2FkRXJyb3Iuc2V0KG51bGwpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5sb2FkRXJyb3Iuc2V0KGVycik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWFwTWlycm9yVG9Qcm9maWxlKGRvYzogVXNlck1pcnJvckRvYyk6IEdldFByb2ZpbGVSZXNwb25zZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9wZXJhdGlvbklkOiAnJyxcbiAgICAgIHVzZXJJZDogZG9jLnVzZXJJZCxcbiAgICAgIGVtYWlsOiBkb2MuZW1haWwsXG4gICAgICBuYW1lOiBkb2MubmFtZSA/PyAnJyxcbiAgICAgIGhhbmRsZTogZG9jLmhhbmRsZSxcbiAgICAgIHBob25lOiBkb2MucGhvbmUsXG4gICAgICBhdmF0YXJVcmw6IGRvYy5hdmF0YXJVcmwsXG4gICAgICBlbWFpbFZlcmlmaWVkOiBmYWxzZSxcbiAgICAgIHBob25lVmVyaWZpZWQ6IGZhbHNlLFxuICAgICAgbWZhRW5hYmxlZDogZmFsc2UsXG4gICAgICBjcmVhdGVkQXQ6ICcnLFxuICAgICAgdXBkYXRlZEF0OiAnJyxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgb25TdWJtaXQoZXZlbnQ6IEZvcm1TdWJtaXQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy5zYXZpbmcoKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMucHJvZmlsZSgpO1xuICAgIGlmICghY3VycmVudCkgcmV0dXJuO1xuXG4gICAgY29uc3QgY2ZnID0gdGhpcy5yZXNvbHZlZENvbmZpZygpO1xuICAgIGNvbnN0IGZpZWxkcyA9IGV2ZW50LmZpZWxkcyB8fCB7fTtcbiAgICBjb25zdCBuZXh0SGFuZGxlID0gU3RyaW5nKGZpZWxkc1snaGFuZGxlJ10gfHwgJycpXG4gICAgICAudHJpbSgpXG4gICAgICAudG9Mb3dlckNhc2UoKTtcbiAgICBjb25zdCBuZXh0TmFtZSA9IFN0cmluZyhmaWVsZHNbJ25hbWUnXSB8fCAnJykudHJpbSgpO1xuICAgIGNvbnN0IG5leHRQaG9uZSA9IFN0cmluZyhmaWVsZHNbJ3Bob25lJ10gfHwgJycpLnRyaW0oKTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZWQgPSBjZmcuc2hvd0hhbmRsZSAmJiAhIW5leHRIYW5kbGUgJiYgbmV4dEhhbmRsZSAhPT0gKGN1cnJlbnQuaGFuZGxlIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IG5hbWVDaGFuZ2VkID0gISFuZXh0TmFtZSAmJiBuZXh0TmFtZSAhPT0gKGN1cnJlbnQubmFtZSB8fCAnJyk7XG4gICAgY29uc3QgcGhvbmVDaGFuZ2VkID0gY2ZnLnNob3dQaG9uZSAmJiBuZXh0UGhvbmUgIT09IChjdXJyZW50LnBob25lIHx8ICcnKTtcblxuICAgIGlmICghaGFuZGxlQ2hhbmdlZCAmJiAhbmFtZUNoYW5nZWQgJiYgIXBob25lQ2hhbmdlZCkge1xuICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogdGhpcy50KCdzYXZlU3VjY2VzcycpLFxuICAgICAgICBkdXJhdGlvbjogMjAwMCxcbiAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgcG9zaXRpb246ICd0b3AnLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zYXZpbmcuc2V0KHRydWUpO1xuICAgIHRyeSB7XG4gICAgICBpZiAoaGFuZGxlQ2hhbmdlZCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuYXV0aC51cGRhdGVIYW5kbGUobmV4dEhhbmRsZSkpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICB0aGlzLmVycm9ycy5oYW5kbGUoZXJyLCB7XG4gICAgICAgICAgICBjb250ZXh0OiAncHJvZmlsZS51cGRhdGVIYW5kbGUnLFxuICAgICAgICAgICAgaTE4bk1hcDogeyBBVVRIX1VTRVJOQU1FX0VYSVNUUzogJ2hhbmRsZUluVXNlJyB9LFxuICAgICAgICAgICAgZmFsbGJhY2tLZXk6ICdoYW5kbGVFcnJvcicsXG4gICAgICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLm5zLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEZyb21BcGkoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG5hbWVDaGFuZ2VkIHx8IHBob25lQ2hhbmdlZCkge1xuICAgICAgICBjb25zdCBwYXlsb2FkOiB7IG5hbWU/OiBzdHJpbmc7IHBob25lPzogc3RyaW5nIH0gPSB7fTtcbiAgICAgICAgaWYgKG5hbWVDaGFuZ2VkKSBwYXlsb2FkLm5hbWUgPSBuZXh0TmFtZTtcbiAgICAgICAgaWYgKHBob25lQ2hhbmdlZCkgcGF5bG9hZC5waG9uZSA9IG5leHRQaG9uZTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLmF1dGgudXBkYXRlUHJvZmlsZShwYXlsb2FkKSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIHRoaXMuZXJyb3JzLmhhbmRsZShlcnIsIHtcbiAgICAgICAgICAgIGNvbnRleHQ6ICdwcm9maWxlLnVwZGF0ZVByb2ZpbGUnLFxuICAgICAgICAgICAgaTE4bk1hcDoge1xuICAgICAgICAgICAgICBBVVRIVjJfUEhPTkVfRVhJU1RTOiAncGhvbmVJblVzZScsXG4gICAgICAgICAgICAgIEFVVEhWMl9JTlZBTElEX1BIT05FOiAncGhvbmVJbnZhbGlkJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBmYWxsYmFja0tleTogJ3NhdmVFcnJvcicsXG4gICAgICAgICAgICBpMThuTmFtZXNwYWNlOiB0aGlzLm5zLFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGF3YWl0IHRoaXMubG9hZEZyb21BcGkoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy50b2FzdC5zaG93KHtcbiAgICAgICAgbWVzc2FnZTogdGhpcy50KCdzYXZlU3VjY2VzcycpLFxuICAgICAgICBkdXJhdGlvbjogMjUwMCxcbiAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgcG9zaXRpb246ICd0b3AnLFxuICAgICAgfSk7XG4gICAgICBjZmcub25TYXZlZD8uKHRoaXMucHJvZmlsZSgpID8/IGN1cnJlbnQpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnNhdmluZy5zZXQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIG9uQXZhdGFyVXBsb2FkZWQocmVzdWx0OiBBdmF0YXJVcGxvYWRSZXN1bHQpOiB2b2lkIHtcbiAgICB0aGlzLnRvYXN0LnNob3coe1xuICAgICAgbWVzc2FnZTogdGhpcy50KCdhdmF0YXJTdWNjZXNzJyksXG4gICAgICBkdXJhdGlvbjogMjUwMCxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICBwb3NpdGlvbjogJ3RvcCcsXG4gICAgfSk7XG4gICAgdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uQXZhdGFyVXBsb2FkZWQ/LihyZXN1bHQpO1xuICB9XG5cbiAgb25BdmF0YXJFcnJvcihfZXJyOiBBdmF0YXJVcGxvYWRFcnJvcik6IHZvaWQge1xuICAgIHRoaXMudG9hc3Quc2hvdyh7XG4gICAgICBtZXNzYWdlOiB0aGlzLnQoJ2F2YXRhckVycm9yJyksXG4gICAgICBkdXJhdGlvbjogMzAwMCxcbiAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICBwb3NpdGlvbjogJ3RvcCcsXG4gICAgfSk7XG4gIH1cblxuICAvKiogTGVlIGRlbCBuYW1lc3BhY2UgY29uZmlndXJhZG8uICovXG4gIHByb3RlY3RlZCB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoa2V5LCB0aGlzLm5zKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbHNGcm9tTmFtZShuYW1lPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIW5hbWUpIHJldHVybiAnPyc7XG4gICAgY29uc3QgcGFydHMgPSBuYW1lLnRyaW0oKS5zcGxpdCgvXFxzKy8pLmZpbHRlcihCb29sZWFuKTtcbiAgICBpZiAocGFydHMubGVuZ3RoID09PSAwKSByZXR1cm4gJz8nO1xuICAgIGNvbnN0IGZpcnN0ID0gcGFydHNbMF0/LlswXSA/PyAnJztcbiAgICBjb25zdCBsYXN0ID0gcGFydHMubGVuZ3RoID4gMSA/IChwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXT8uWzBdID8/ICcnKSA6ICcnO1xuICAgIHJldHVybiAoZmlyc3QgKyBsYXN0KS50b1VwcGVyQ2FzZSgpIHx8ICc/JztcbiAgfVxufVxuIl19
|
|
@@ -39,6 +39,9 @@ export const PROFILE_VIEW_I18N = {
|
|
|
39
39
|
offlineTitle: 'Sin conexión',
|
|
40
40
|
offlineHint: 'Revisa tu conexión a internet e intenta nuevamente.',
|
|
41
41
|
retry: 'Reintentar',
|
|
42
|
+
shareCtaTitle: 'Compartí tu perfil',
|
|
43
|
+
shareCtaDesc: 'Generá un QR para que te agreguen como contacto al instante.',
|
|
44
|
+
shareCtaBtn: 'Mostrar QR',
|
|
42
45
|
},
|
|
43
46
|
en: {
|
|
44
47
|
pageTitle: 'Profile',
|
|
@@ -70,6 +73,9 @@ export const PROFILE_VIEW_I18N = {
|
|
|
70
73
|
offlineTitle: 'Offline',
|
|
71
74
|
offlineHint: 'Check your internet connection and try again.',
|
|
72
75
|
retry: 'Retry',
|
|
76
|
+
shareCtaTitle: 'Share your profile',
|
|
77
|
+
shareCtaDesc: 'Generate a QR so people can add you as a contact instantly.',
|
|
78
|
+
shareCtaBtn: 'Show QR',
|
|
73
79
|
},
|
|
74
80
|
};
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS12aWV3LmkxOG4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Byb2ZpbGUtdmlldy9wcm9maWxlLXZpZXcuaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBcUI7SUFDakQsRUFBRSxFQUFFO1FBQ0YsU0FBUyxFQUFFLFFBQVE7UUFDbkIsZUFBZSxFQUFFLG9DQUFvQztRQUNyRCxJQUFJLEVBQUUsaUJBQWlCO1FBQ3ZCLGVBQWUsRUFBRSxvQkFBb0I7UUFDckMsUUFBUSxFQUFFLDhDQUE4QztRQUN4RCxLQUFLLEVBQUUsb0JBQW9CO1FBQzNCLE1BQU0sRUFBRSxtQkFBbUI7UUFDM0IsaUJBQWlCLEVBQUUsU0FBUztRQUM1QixVQUFVLEVBQUUsMkVBQTJFO1FBQ3ZGLFdBQVcsRUFBRSxzQ0FBc0M7UUFDbkQsV0FBVyxFQUFFLDBDQUEwQztRQUN2RCxVQUFVLEVBQUUsNkNBQTZDO1FBQ3pELFlBQVksRUFBRSxrREFBa0Q7UUFDaEUsS0FBSyxFQUFFLFVBQVU7UUFDakIsZ0JBQWdCLEVBQUUsaUJBQWlCO1FBQ25DLFNBQVMsRUFBRSx5REFBeUQ7UUFDcEUsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixNQUFNLEVBQUUsY0FBYztRQUN0QixXQUFXLEVBQUUsb0JBQW9CO1FBQ2pDLFNBQVMsRUFBRSwrQkFBK0I7UUFDMUMsZUFBZSxFQUFFLG1DQUFtQztRQUNwRCxhQUFhLEVBQUUsa0JBQWtCO1FBQ2pDLFdBQVcsRUFBRSw2QkFBNkI7UUFDMUMsV0FBVyxFQUFFLGNBQWM7UUFDM0IsU0FBUyxFQUFFLFVBQVU7UUFDckIsVUFBVSxFQUFFLDZCQUE2QjtRQUN6QyxZQUFZLEVBQUUsY0FBYztRQUM1QixXQUFXLEVBQUUscURBQXFEO1FBQ2xFLEtBQUssRUFBRSxZQUFZO1FBQ25CLGFBQWEsRUFBRSxvQkFBb0I7UUFDbkMsWUFBWSxFQUFFLDhEQUE4RDtRQUM1RSxXQUFXLEVBQUUsWUFBWTtLQUMxQjtJQUNELEVBQUUsRUFBRTtRQUNGLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLGVBQWUsRUFBRSxrQ0FBa0M7UUFDbkQsSUFBSSxFQUFFLFdBQVc7UUFDakIsZUFBZSxFQUFFLGdCQUFnQjtRQUNqQyxRQUFRLEVBQUUsd0RBQXdEO1FBQ2xFLEtBQUssRUFBRSxPQUFPO1FBQ2QsTUFBTSxFQUFFLFVBQVU7UUFDbEIsaUJBQWlCLEVBQUUsVUFBVTtRQUM3QixVQUFVLEVBQUUsK0VBQStFO1FBQzNGLFdBQVcsRUFBRSxnQ0FBZ0M7UUFDN0MsV0FBVyxFQUFFLDJCQUEyQjtRQUN4QyxVQUFVLEVBQUUsaURBQWlEO1FBQzdELFlBQVksRUFBRSx5Q0FBeUM7UUFDdkQsS0FBSyxFQUFFLE9BQU87UUFDZCxnQkFBZ0IsRUFBRSxpQkFBaUI7UUFDbkMsU0FBUyxFQUFFLG1EQUFtRDtRQUM5RCxJQUFJLEVBQUUsY0FBYztRQUNwQixNQUFNLEVBQUUsV0FBVztRQUNuQixXQUFXLEVBQUUsaUJBQWlCO1FBQzlCLFNBQVMsRUFBRSwwQkFBMEI7UUFDckMsZUFBZSxFQUFFLHNDQUFzQztRQUN2RCxhQUFhLEVBQUUsZUFBZTtRQUM5QixXQUFXLEVBQUUsd0JBQXdCO1FBQ3JDLFdBQVcsRUFBRSxjQUFjO1FBQzNCLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLFVBQVUsRUFBRSwrQkFBK0I7UUFDM0MsWUFBWSxFQUFFLFNBQVM7UUFDdkIsV0FBVyxFQUFFLCtDQUErQztRQUM1RCxLQUFLLEVBQUUsT0FBTztRQUNkLGFBQWEsRUFBRSxvQkFBb0I7UUFDbkMsWUFBWSxFQUFFLDZEQUE2RDtRQUMzRSxXQUFXLEVBQUUsU0FBUztLQUN2QjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYW5ndWFnZXNDb250ZW50IH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bi90eXBlcyc7XG5cbi8qKlxuICogRGVmYXVsdHMgaTE4biAoZXMvZW4pIGVtYmViaWRvcyBlbiBgdmFsLXByb2ZpbGUtdmlld2AuIEF1dG8tcmVnaXN0cmFkb3MgZW4gZWxcbiAqIGNvbnN0cnVjdG9yIGRlbCBjb21wb25lbnRlIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsIG5hbWVzcGFjZVxuICogKGBTZXR0aW5ncy5Qcm9maWxlYCBwb3IgZGVmYXVsdCkuIEdhcmFudGl6YSBxdWUgbnVuY2EgaGF5YSB1bmEga2V5IGZhbHRhbnRlXG4gKiBldmFsdWFkYSBwb3IgY2FkYSBjaGFuZ2UtZGV0ZWN0aW9uICh2ZXIgbm90YSBlbiB2YWx0ZWNoLWNvbXBvbmVudHMvQ0xBVURFLm1kXG4gKiBzb2JyZSBlbCBzdG9ybSBkZSBDRCBjb24gYHZhbC1kZWJ1Zy1jb25zb2xlYCkuIEVsIGNvbnN1bWVyIHB1ZWRlIG92ZXJyaWRlXG4gKiByZWdpc3RyYW5kbyBlbCBtaXNtbyBuYW1lc3BhY2UgYW50ZXMgZGUgcXVlIGVsIGNvbXBvbmVudGUgbW9udGUuXG4gKlxuICogU09MTyBpbmNsdXllIGxhcyBrZXlzIHF1ZSBsYSB2aXN0YSByZWFsbWVudGUgdXNhLlxuICovXG5leHBvcnQgY29uc3QgUFJPRklMRV9WSUVXX0kxOE46IExhbmd1YWdlc0NvbnRlbnQgPSB7XG4gIGVzOiB7XG4gICAgcGFnZVRpdGxlOiAnUGVyZmlsJyxcbiAgICBwYWdlRGVzY3JpcHRpb246ICdBZG1pbmlzdHJhIHR1IGluZm9ybWFjaW9uIHBlcnNvbmFsJyxcbiAgICBuYW1lOiAnTm9tYnJlIGNvbXBsZXRvJyxcbiAgICBuYW1lUGxhY2Vob2xkZXI6ICdUdSBub21icmUgY29tcGxldG8nLFxuICAgIG5hbWVIaW50OiAnVHUgbm9tYnJlIHJlYWwgcXVlIHNlIG1vc3RyYXJhIGVuIHR1IHBlcmZpbC4nLFxuICAgIGVtYWlsOiAnQ29ycmVvIGVsZWN0cm9uaWNvJyxcbiAgICBoYW5kbGU6ICdOb21icmUgZGUgdXN1YXJpbycsXG4gICAgaGFuZGxlUGxhY2Vob2xkZXI6ICd1c3VhcmlvJyxcbiAgICBoYW5kbGVIaW50OiAnVHUgaWRlbnRpZmljYWRvciB1bmljbyAoQHVzdWFyaW8pLiBPdHJvcyBwdWVkZW4gYnVzY2FydGUgY29uIGVzdGUgbm9tYnJlLicsXG4gICAgaGFuZGxlSW5Vc2U6ICdFc2Ugbm9tYnJlIGRlIHVzdWFyaW8geWEgZXN0w6EgdG9tYWRvJyxcbiAgICBoYW5kbGVFcnJvcjogJ0Vycm9yIGFsIGFjdHVhbGl6YXIgZWwgbm9tYnJlIGRlIHVzdWFyaW8nLFxuICAgIHBob25lSW5Vc2U6ICdFc2UgdGVsw6lmb25vIHlhIGVzdMOhIGVuIHVzbyBwb3Igb3RyYSBjdWVudGEnLFxuICAgIHBob25lSW52YWxpZDogJ0Zvcm1hdG8gZGUgdGVsw6lmb25vIGludsOhbGlkbyAodXNhIEUuMTY0OiArNTYuLi4pJyxcbiAgICBwaG9uZTogJ1RlbGVmb25vJyxcbiAgICBwaG9uZVBsYWNlaG9sZGVyOiAnKzEgMjM0IDU2NyA4OTAwJyxcbiAgICBwaG9uZUhpbnQ6ICdPcGNpb25hbC4gUGFyYSByZWN1cGVyYWNpb24gZGUgY3VlbnRhIHkgbm90aWZpY2FjaW9uZXMuJyxcbiAgICBzYXZlOiAnR3VhcmRhciBjYW1iaW9zJyxcbiAgICBzYXZpbmc6ICdHdWFyZGFuZG8uLi4nLFxuICAgIHNhdmVTdWNjZXNzOiAnUGVyZmlsIGFjdHVhbGl6YWRvJyxcbiAgICBzYXZlRXJyb3I6ICdFcnJvciBhbCBhY3R1YWxpemFyIGVsIHBlcmZpbCcsXG4gICAgdXNlcm5hbWVJbnZhbGlkOiAnU29sbyBsZXRyYXMsIG51bWVyb3MgeSBndWlvbiBiYWpvJyxcbiAgICBhdmF0YXJTdWNjZXNzOiAnRm90byBhY3R1YWxpemFkYScsXG4gICAgYXZhdGFyRXJyb3I6ICdFcnJvciBhbCBhY3R1YWxpemFyIGxhIGZvdG8nLFxuICAgIGNoYW5nZVBob3RvOiAnQ2FtYmlhciBmb3RvJyxcbiAgICB2aWV3UGhvdG86ICdWZXIgZm90bycsXG4gICAgZXJyb3JUaXRsZTogJ05vIHB1ZGltb3MgY2FyZ2FyIHR1IHBlcmZpbCcsXG4gICAgb2ZmbGluZVRpdGxlOiAnU2luIGNvbmV4acOzbicsXG4gICAgb2ZmbGluZUhpbnQ6ICdSZXZpc2EgdHUgY29uZXhpw7NuIGEgaW50ZXJuZXQgZSBpbnRlbnRhIG51ZXZhbWVudGUuJyxcbiAgICByZXRyeTogJ1JlaW50ZW50YXInLFxuICAgIHNoYXJlQ3RhVGl0bGU6ICdDb21wYXJ0w60gdHUgcGVyZmlsJyxcbiAgICBzaGFyZUN0YURlc2M6ICdHZW5lcsOhIHVuIFFSIHBhcmEgcXVlIHRlIGFncmVndWVuIGNvbW8gY29udGFjdG8gYWwgaW5zdGFudGUuJyxcbiAgICBzaGFyZUN0YUJ0bjogJ01vc3RyYXIgUVInLFxuICB9LFxuICBlbjoge1xuICAgIHBhZ2VUaXRsZTogJ1Byb2ZpbGUnLFxuICAgIHBhZ2VEZXNjcmlwdGlvbjogJ01hbmFnZSB5b3VyIHBlcnNvbmFsIGluZm9ybWF0aW9uJyxcbiAgICBuYW1lOiAnRnVsbCBuYW1lJyxcbiAgICBuYW1lUGxhY2Vob2xkZXI6ICdZb3VyIGZ1bGwgbmFtZScsXG4gICAgbmFtZUhpbnQ6ICdZb3VyIHJlYWwgbmFtZSB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIG9uIHlvdXIgcHJvZmlsZS4nLFxuICAgIGVtYWlsOiAnRW1haWwnLFxuICAgIGhhbmRsZTogJ1VzZXJuYW1lJyxcbiAgICBoYW5kbGVQbGFjZWhvbGRlcjogJ3VzZXJuYW1lJyxcbiAgICBoYW5kbGVIaW50OiAnWW91ciB1bmlxdWUgaWRlbnRpZmllciAoQHVzZXJuYW1lKS4gT3RoZXJzIGNhbiBzZWFyY2ggZm9yIHlvdSB3aXRoIHRoaXMgbmFtZS4nLFxuICAgIGhhbmRsZUluVXNlOiAnVGhhdCB1c2VybmFtZSBpcyBhbHJlYWR5IHRha2VuJyxcbiAgICBoYW5kbGVFcnJvcjogJ0ZhaWxlZCB0byB1cGRhdGUgdXNlcm5hbWUnLFxuICAgIHBob25lSW5Vc2U6ICdUaGF0IHBob25lIGlzIGFscmVhZHkgaW4gdXNlIGJ5IGFub3RoZXIgYWNjb3VudCcsXG4gICAgcGhvbmVJbnZhbGlkOiAnSW52YWxpZCBwaG9uZSBmb3JtYXQgKHVzZSBFLjE2NDogKzEuLi4pJyxcbiAgICBwaG9uZTogJ1Bob25lJyxcbiAgICBwaG9uZVBsYWNlaG9sZGVyOiAnKzEgMjM0IDU2NyA4OTAwJyxcbiAgICBwaG9uZUhpbnQ6ICdPcHRpb25hbC4gRm9yIGFjY291bnQgcmVjb3ZlcnkgYW5kIG5vdGlmaWNhdGlvbnMuJyxcbiAgICBzYXZlOiAnU2F2ZSBjaGFuZ2VzJyxcbiAgICBzYXZpbmc6ICdTYXZpbmcuLi4nLFxuICAgIHNhdmVTdWNjZXNzOiAnUHJvZmlsZSB1cGRhdGVkJyxcbiAgICBzYXZlRXJyb3I6ICdGYWlsZWQgdG8gdXBkYXRlIHByb2ZpbGUnLFxuICAgIHVzZXJuYW1lSW52YWxpZDogJ09ubHkgbGV0dGVycywgbnVtYmVycyBhbmQgdW5kZXJzY29yZScsXG4gICAgYXZhdGFyU3VjY2VzczogJ1Bob3RvIHVwZGF0ZWQnLFxuICAgIGF2YXRhckVycm9yOiAnRmFpbGVkIHRvIHVwZGF0ZSBwaG90bycsXG4gICAgY2hhbmdlUGhvdG86ICdDaGFuZ2UgcGhvdG8nLFxuICAgIHZpZXdQaG90bzogJ1ZpZXcgcGhvdG8nLFxuICAgIGVycm9yVGl0bGU6IFwiV2UgY291bGRuJ3QgbG9hZCB5b3VyIHByb2ZpbGVcIixcbiAgICBvZmZsaW5lVGl0bGU6ICdPZmZsaW5lJyxcbiAgICBvZmZsaW5lSGludDogJ0NoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbiBhbmQgdHJ5IGFnYWluLicsXG4gICAgcmV0cnk6ICdSZXRyeScsXG4gICAgc2hhcmVDdGFUaXRsZTogJ1NoYXJlIHlvdXIgcHJvZmlsZScsXG4gICAgc2hhcmVDdGFEZXNjOiAnR2VuZXJhdGUgYSBRUiBzbyBwZW9wbGUgY2FuIGFkZCB5b3UgYXMgYSBjb250YWN0IGluc3RhbnRseS4nLFxuICAgIHNoYXJlQ3RhQnRuOiAnU2hvdyBRUicsXG4gIH0sXG59O1xuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Byb2ZpbGUtdmlldy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0UHJvZmlsZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC90eXBlcyc7XG5pbXBvcnQgeyBBdmF0YXJVcGxvYWRSZXN1bHQgfSBmcm9tICcuLi9hdmF0YXItdXBsb2FkL3R5cGVzJztcblxuLyoqXG4gKiBDb25maWd1cmFjacOzbiBhY290YWRhIGRlIGB2YWwtcHJvZmlsZS12aWV3YCAob2JqZWN0LWZpcnN0KS4gRWplcyBwZXJtaXRpZG9zOlxuICogIC0gKipzZWNjaW9uZXMgdmlzaWJsZXMqKiDigJQgZ2F0ZWFuIGVsIHJlbmRlciBkZWwgYXZhdGFyIHkgZGUgbG9zIGNhbXBvc1xuICogICAgaGFuZGxlL3Bob25lIGRlbCBmb3JtdWxhcmlvLlxuICogIC0gKipicmFuZGluZyoqIOKAlCBgaTE4bk5hbWVzcGFjZWAgcGFyYSByZXNvbHZlciBsb3MgdGV4dG9zIChkZWZhdWx0XG4gKiAgICBgJ1NldHRpbmdzLlByb2ZpbGUnYCkuIEVsIGNvbnN1bWVyIHB1ZWRlIHJlZ2lzdHJhciBlc2UgbmFtZXNwYWNlIHBhcmFcbiAqICAgIG92ZXJyaWRlIGRlIGxvcyBkZWZhdWx0cyBlbWJlYmlkb3MuXG4gKiAgLSAqKmNhbGxiYWNrcyoqIOKAlCBob29rcyB0cmFzIHVuIHNhdmUgLyBhdmF0YXIgZXhpdG9zbyAoYWRlbcOhcyBkZSBsb3MgdG9hc3RzXG4gKiAgICBpbnRlcm5vcykuXG4gKlxuICogTk8gYWRtaXRlIHNsb3RzIGFyYml0cmFyaW9zIG5pIG92ZXJyaWRlIGRlbCBsYXlvdXQ6IGxhIHZpc3RhIGVzIGZ1bGwtZmVhdHVyZVxuICogeSBhdXRvY29udGVuaWRhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVWaWV3Q29uZmlnIHtcbiAgLyoqIE11ZXN0cmEgbGEgc2VjY2nDs24gZGUgYXZhdGFyICh1cGxvYWQgKyBtZXRhKS4gRGVmYXVsdCBgdHJ1ZWAuICovXG4gIHNob3dBdmF0YXI/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL3Byb2ZpbGUtdmlldy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2V0UHJvZmlsZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvYXV0aC90eXBlcyc7XG5pbXBvcnQgeyBBdmF0YXJVcGxvYWRSZXN1bHQgfSBmcm9tICcuLi9hdmF0YXItdXBsb2FkL3R5cGVzJztcblxuLyoqXG4gKiBDb25maWd1cmFjacOzbiBhY290YWRhIGRlIGB2YWwtcHJvZmlsZS12aWV3YCAob2JqZWN0LWZpcnN0KS4gRWplcyBwZXJtaXRpZG9zOlxuICogIC0gKipzZWNjaW9uZXMgdmlzaWJsZXMqKiDigJQgZ2F0ZWFuIGVsIHJlbmRlciBkZWwgYXZhdGFyIHkgZGUgbG9zIGNhbXBvc1xuICogICAgaGFuZGxlL3Bob25lIGRlbCBmb3JtdWxhcmlvLlxuICogIC0gKipicmFuZGluZyoqIOKAlCBgaTE4bk5hbWVzcGFjZWAgcGFyYSByZXNvbHZlciBsb3MgdGV4dG9zIChkZWZhdWx0XG4gKiAgICBgJ1NldHRpbmdzLlByb2ZpbGUnYCkuIEVsIGNvbnN1bWVyIHB1ZWRlIHJlZ2lzdHJhciBlc2UgbmFtZXNwYWNlIHBhcmFcbiAqICAgIG92ZXJyaWRlIGRlIGxvcyBkZWZhdWx0cyBlbWJlYmlkb3MuXG4gKiAgLSAqKmNhbGxiYWNrcyoqIOKAlCBob29rcyB0cmFzIHVuIHNhdmUgLyBhdmF0YXIgZXhpdG9zbyAoYWRlbcOhcyBkZSBsb3MgdG9hc3RzXG4gKiAgICBpbnRlcm5vcykuXG4gKlxuICogTk8gYWRtaXRlIHNsb3RzIGFyYml0cmFyaW9zIG5pIG92ZXJyaWRlIGRlbCBsYXlvdXQ6IGxhIHZpc3RhIGVzIGZ1bGwtZmVhdHVyZVxuICogeSBhdXRvY29udGVuaWRhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGVWaWV3Q29uZmlnIHtcbiAgLyoqIE11ZXN0cmEgbGEgc2VjY2nDs24gZGUgYXZhdGFyICh1cGxvYWQgKyBtZXRhKS4gRGVmYXVsdCBgdHJ1ZWAuICovXG4gIHNob3dBdmF0YXI/OiBib29sZWFuO1xuICAvKiogSW5jbHV5ZSBlbCBjYW1wbyBgaGFuZGxlYCAoQHVzdWFyaW8pIGVuIGVsIGZvcm11bGFyaW8uIERlZmF1bHQgYHRydWVgLiAqL1xuICBzaG93SGFuZGxlPzogYm9vbGVhbjtcbiAgLyoqIEluY2x1eWUgZWwgY2FtcG8gYHBob25lYCBlbiBlbCBmb3JtdWxhcmlvLiBEZWZhdWx0IGB0cnVlYC4gKi9cbiAgc2hvd1Bob25lPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTmFtZXNwYWNlIGkxOG4gY29uIGVsIHF1ZSBsYSB2aXN0YSByZXN1ZWx2ZSBzdXMgdGV4dG9zLlxuICAgKiBEZWZhdWx0IGAnU2V0dGluZ3MuUHJvZmlsZSdgLlxuICAgKi9cbiAgaTE4bk5hbWVzcGFjZT86IHN0cmluZztcblxuICAvKipcbiAgICogTXVlc3RyYSBsYSBDVEEgZGUgY29tcGFydGlyIHBlcmZpbCAoUVIgbW9kYWwpLiBSZXF1aWVyZSBxdWUgZWwgdXNlciB0ZW5nYVxuICAgKiBoYW5kbGUgY29uZmlndXJhZG8g4oCUIHNpIG5vLCBsYSBzZWNjacOzbiBubyBhcGFyZWNlIGF1bnF1ZSBlc3TDqSBlbiBgdHJ1ZWAuXG4gICAqIERlZmF1bHQgYHRydWVgLlxuICAgKi9cbiAgc2hvd1NoYXJlQ3RhPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFVSTCBiYXNlIGRlIGxhIGFwcCBwYXJhIGNvbnN0cnVpciBlbCBlbmxhY2UgZGVsIHBlcmZpbCBww7pibGljby5cbiAgICogRWwgZW5sYWNlIGZpbmFsIGVzIGAke3Byb2ZpbGVCYXNlVXJsfS91LyR7aGFuZGxlfWAuXG4gICAqIEVqOiBgJ2h0dHBzOi8vYXBwLm15dmFsdGVjaC5jb20nYC5cbiAgICovXG4gIHByb2ZpbGVCYXNlVXJsPzogc3RyaW5nO1xuXG4gIC8qKiBDYWxsYmFjayB0cmFzIHVuIGd1YXJkYWRvIGRlIHBlcmZpbCBleGl0b3NvLiAqL1xuICBvblNhdmVkPzogKHByb2ZpbGU6IEdldFByb2ZpbGVSZXNwb25zZSkgPT4gdm9pZDtcbiAgLyoqIENhbGxiYWNrIHRyYXMgc3ViaXIvYWN0dWFsaXphciBlbCBhdmF0YXIgZXhpdG9zYW1lbnRlLiAqL1xuICBvbkF2YXRhclVwbG9hZGVkPzogKHJlc3VsdDogQXZhdGFyVXBsb2FkUmVzdWx0KSA9PiB2b2lkO1xufVxuIl19
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { Component, computed, inject, Input } from '@angular/core';
|
|
2
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
|
3
|
+
import { IonCol, IonGrid, IonRow } from '@ionic/angular/standalone';
|
|
4
|
+
import { ActionCardComponent } from '../../molecules/action-card/action-card.component';
|
|
5
|
+
import { DisplayComponent } from '../../atoms/display/display.component';
|
|
6
|
+
import { TitleComponent } from '../../atoms/title/title.component';
|
|
7
|
+
import { I18nService } from '../../../services/i18n';
|
|
8
|
+
import { NavigationService } from '../../../services/navigation/navigation.service';
|
|
9
|
+
import { buildSettingsCards } from './settings-sections';
|
|
10
|
+
import { SETTINGS_HUB_LABELS_I18N, SETTINGS_HUB_PAGE_I18N } from './settings-hub.i18n';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
const DEFAULT_LABELS_NS = 'Dashboard';
|
|
13
|
+
const DEFAULT_PAGE_NS = 'Settings.Preferences';
|
|
14
|
+
/**
|
|
15
|
+
* `val-settings-hub` — portada de la sección Settings (organism). Renderiza un
|
|
16
|
+
* header (título + descripción) + un grid de `val-action-card` que navega a las
|
|
17
|
+
* sub-vistas. Promovido desde `showcase` (`pages/settings/pages/preferences`)
|
|
18
|
+
* bajo el proceso de ADR-021.
|
|
19
|
+
*
|
|
20
|
+
* Las cards salen de `buildSettingsCards` sobre el catálogo default
|
|
21
|
+
* (`SETTINGS_SECTIONS_CATALOG`), filtrado/extendido/reordenado por la config.
|
|
22
|
+
*
|
|
23
|
+
* Navegación: cards con `routerLink` navegan vía `Router`; la card de logout
|
|
24
|
+
* (sin ruta) invoca `config.onLogout`. Cada click emite `config.onSectionClick`.
|
|
25
|
+
*
|
|
26
|
+
* NO renderiza ion-content — vive dentro de val-page-wrapper.
|
|
27
|
+
*
|
|
28
|
+
* Auto-registra sus dos sets de defaults i18n (labels + header) en sus
|
|
29
|
+
* respectivos namespaces si el consumer no los proveyó.
|
|
30
|
+
*/
|
|
31
|
+
export class SettingsHubComponent {
|
|
32
|
+
get labelsNs() {
|
|
33
|
+
return this.resolvedConfig().i18nNamespace;
|
|
34
|
+
}
|
|
35
|
+
get pageNs() {
|
|
36
|
+
return this.resolvedConfig().pageI18nNamespace;
|
|
37
|
+
}
|
|
38
|
+
constructor() {
|
|
39
|
+
this.nav = inject(NavigationService);
|
|
40
|
+
this.i18n = inject(I18nService);
|
|
41
|
+
this.router = inject(Router);
|
|
42
|
+
this.route = inject(ActivatedRoute, { optional: true });
|
|
43
|
+
this.resolvedConfig = computed(() => {
|
|
44
|
+
const fromRoute = (this.route?.snapshot.data['settingsHubConfig'] ?? {});
|
|
45
|
+
const merged = { ...fromRoute, ...(this.config ?? {}) };
|
|
46
|
+
return {
|
|
47
|
+
...merged,
|
|
48
|
+
i18nNamespace: merged.i18nNamespace ?? DEFAULT_LABELS_NS,
|
|
49
|
+
pageI18nNamespace: merged.pageI18nNamespace ?? DEFAULT_PAGE_NS,
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
this.pageTitle = computed(() => {
|
|
53
|
+
this.i18n.lang();
|
|
54
|
+
return this.i18n.t('pageTitle', this.pageNs);
|
|
55
|
+
});
|
|
56
|
+
this.pageDescription = computed(() => {
|
|
57
|
+
this.i18n.lang();
|
|
58
|
+
return this.i18n.t('pageDescription', this.pageNs);
|
|
59
|
+
});
|
|
60
|
+
/** Cards del HUB, resueltas desde la config. */
|
|
61
|
+
this.actionCards = computed(() => {
|
|
62
|
+
this.i18n.lang();
|
|
63
|
+
const cfg = this.resolvedConfig();
|
|
64
|
+
return buildSettingsCards(k => this.i18n.t(k, cfg.i18nNamespace), {
|
|
65
|
+
exclude: cfg.exclude,
|
|
66
|
+
include: cfg.include,
|
|
67
|
+
order: cfg.order,
|
|
68
|
+
includeLogout: cfg.includeLogout,
|
|
69
|
+
basePath: cfg.basePath,
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
// Auto-registro i18n — respeta override del consumer. Los namespaces pueden
|
|
73
|
+
// venir de @Input.config o del route data; los resolvemos acá.
|
|
74
|
+
const labelsNs = this.labelsNs;
|
|
75
|
+
if (!this.i18n.hasNamespace(labelsNs)) {
|
|
76
|
+
this.i18n.registerContent(labelsNs, SETTINGS_HUB_LABELS_I18N);
|
|
77
|
+
}
|
|
78
|
+
const pageNs = this.pageNs;
|
|
79
|
+
if (!this.i18n.hasNamespace(pageNs)) {
|
|
80
|
+
this.i18n.registerContent(pageNs, SETTINGS_HUB_PAGE_I18N);
|
|
81
|
+
}
|
|
82
|
+
this.nav.setBackHeader('pageTitle', pageNs, { withMenu: true });
|
|
83
|
+
}
|
|
84
|
+
onActionClick(action) {
|
|
85
|
+
const token = action.token;
|
|
86
|
+
this.resolvedConfig().onSectionClick?.(token ?? '');
|
|
87
|
+
if (token === 'action-logout') {
|
|
88
|
+
this.resolvedConfig().onLogout?.();
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
if (action.routerLink) {
|
|
92
|
+
this.router.navigate(Array.isArray(action.routerLink) ? action.routerLink : [action.routerLink]);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SettingsHubComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
96
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SettingsHubComponent, isStandalone: true, selector: "val-settings-hub", inputs: { config: "config" }, ngImport: i0, template: `
|
|
97
|
+
<div class="page">
|
|
98
|
+
<header class="page-header">
|
|
99
|
+
<val-display [props]="{ size: 'small', color: 'dark', content: pageTitle() }" />
|
|
100
|
+
<val-title
|
|
101
|
+
[props]="{
|
|
102
|
+
size: 'large',
|
|
103
|
+
color: 'dark',
|
|
104
|
+
bold: false,
|
|
105
|
+
content: pageDescription(),
|
|
106
|
+
}"
|
|
107
|
+
/>
|
|
108
|
+
</header>
|
|
109
|
+
|
|
110
|
+
<ion-grid class="cards-grid">
|
|
111
|
+
<ion-row>
|
|
112
|
+
@for (action of actionCards(); track action.token) {
|
|
113
|
+
<ion-col size="12" size-sm="6">
|
|
114
|
+
<val-action-card [props]="action" (onClick)="onActionClick(action)" />
|
|
115
|
+
</ion-col>
|
|
116
|
+
}
|
|
117
|
+
</ion-row>
|
|
118
|
+
</ion-grid>
|
|
119
|
+
</div>
|
|
120
|
+
`, isInline: true, styles: [".page{padding:16px 0;max-width:720px;margin:0 auto}.page-header{margin-bottom:16px}.cards-grid{margin:0 -4px;padding:0}.cards-grid ion-col{padding:4px}\n"], dependencies: [{ kind: "component", type: IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: IonRow, selector: "ion-row" }, { kind: "component", type: IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: ActionCardComponent, selector: "val-action-card", inputs: ["props"], outputs: ["onClick"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TitleComponent, selector: "val-title", inputs: ["props"] }] }); }
|
|
121
|
+
}
|
|
122
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SettingsHubComponent, decorators: [{
|
|
123
|
+
type: Component,
|
|
124
|
+
args: [{ selector: 'val-settings-hub', standalone: true, imports: [IonGrid, IonRow, IonCol, ActionCardComponent, DisplayComponent, TitleComponent], template: `
|
|
125
|
+
<div class="page">
|
|
126
|
+
<header class="page-header">
|
|
127
|
+
<val-display [props]="{ size: 'small', color: 'dark', content: pageTitle() }" />
|
|
128
|
+
<val-title
|
|
129
|
+
[props]="{
|
|
130
|
+
size: 'large',
|
|
131
|
+
color: 'dark',
|
|
132
|
+
bold: false,
|
|
133
|
+
content: pageDescription(),
|
|
134
|
+
}"
|
|
135
|
+
/>
|
|
136
|
+
</header>
|
|
137
|
+
|
|
138
|
+
<ion-grid class="cards-grid">
|
|
139
|
+
<ion-row>
|
|
140
|
+
@for (action of actionCards(); track action.token) {
|
|
141
|
+
<ion-col size="12" size-sm="6">
|
|
142
|
+
<val-action-card [props]="action" (onClick)="onActionClick(action)" />
|
|
143
|
+
</ion-col>
|
|
144
|
+
}
|
|
145
|
+
</ion-row>
|
|
146
|
+
</ion-grid>
|
|
147
|
+
</div>
|
|
148
|
+
`, styles: [".page{padding:16px 0;max-width:720px;margin:0 auto}.page-header{margin-bottom:16px}.cards-grid{margin:0 -4px;padding:0}.cards-grid ion-col{padding:4px}\n"] }]
|
|
149
|
+
}], ctorParameters: () => [], propDecorators: { config: [{
|
|
150
|
+
type: Input
|
|
151
|
+
}] } });
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MtaHViLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9vcmdhbmlzbXMvc2V0dGluZ3MtaHViL3NldHRpbmdzLWh1Yi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBRXhGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFHcEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHNCQUFzQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBRXZGLE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDO0FBQ3RDLE1BQU0sZUFBZSxHQUFHLHNCQUFzQixDQUFDO0FBRS9DOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBa0RILE1BQU0sT0FBTyxvQkFBb0I7SUF5Qi9CLElBQVksUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJQUNELElBQVks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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25Db2wsIElvbkdyaWQsIElvblJvdyB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuXG5pbXBvcnQgeyBBY3Rpb25DYXJkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9sZWN1bGVzL2FjdGlvbi1jYXJkL2FjdGlvbi1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBY3Rpb25DYXJkTWV0YWRhdGEgfSBmcm9tICcuLi8uLi9tb2xlY3VsZXMvYWN0aW9uLWNhcmQvdHlwZXMnO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGl0bGVDb21wb25lbnQgfSBmcm9tICcuLi8uLi9hdG9tcy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uL25hdmlnYXRpb24uc2VydmljZSc7XG5cbmltcG9ydCB7IFNldHRpbmdzSHViQ29uZmlnIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBidWlsZFNldHRpbmdzQ2FyZHMgfSBmcm9tICcuL3NldHRpbmdzLXNlY3Rpb25zJztcbmltcG9ydCB7IFNFVFRJTkdTX0hVQl9MQUJFTFNfSTE4TiwgU0VUVElOR1NfSFVCX1BBR0VfSTE4TiB9IGZyb20gJy4vc2V0dGluZ3MtaHViLmkxOG4nO1xuXG5jb25zdCBERUZBVUxUX0xBQkVMU19OUyA9ICdEYXNoYm9hcmQnO1xuY29uc3QgREVGQVVMVF9QQUdFX05TID0gJ1NldHRpbmdzLlByZWZlcmVuY2VzJztcblxuLyoqXG4gKiBgdmFsLXNldHRpbmdzLWh1YmAg4oCUIHBvcnRhZGEgZGUgbGEgc2VjY2nDs24gU2V0dGluZ3MgKG9yZ2FuaXNtKS4gUmVuZGVyaXphIHVuXG4gKiBoZWFkZXIgKHTDrXR1bG8gKyBkZXNjcmlwY2nDs24pICsgdW4gZ3JpZCBkZSBgdmFsLWFjdGlvbi1jYXJkYCBxdWUgbmF2ZWdhIGEgbGFzXG4gKiBzdWItdmlzdGFzLiBQcm9tb3ZpZG8gZGVzZGUgYHNob3djYXNlYCAoYHBhZ2VzL3NldHRpbmdzL3BhZ2VzL3ByZWZlcmVuY2VzYClcbiAqIGJham8gZWwgcHJvY2VzbyBkZSBBRFItMDIxLlxuICpcbiAqIExhcyBjYXJkcyBzYWxlbiBkZSBgYnVpbGRTZXR0aW5nc0NhcmRzYCBzb2JyZSBlbCBjYXTDoWxvZ28gZGVmYXVsdFxuICogKGBTRVRUSU5HU19TRUNUSU9OU19DQVRBTE9HYCksIGZpbHRyYWRvL2V4dGVuZGlkby9yZW9yZGVuYWRvIHBvciBsYSBjb25maWcuXG4gKlxuICogTmF2ZWdhY2nDs246IGNhcmRzIGNvbiBgcm91dGVyTGlua2AgbmF2ZWdhbiB2w61hIGBSb3V0ZXJgOyBsYSBjYXJkIGRlIGxvZ291dFxuICogKHNpbiBydXRhKSBpbnZvY2EgYGNvbmZpZy5vbkxvZ291dGAuIENhZGEgY2xpY2sgZW1pdGUgYGNvbmZpZy5vblNlY3Rpb25DbGlja2AuXG4gKlxuICogTk8gcmVuZGVyaXphIGlvbi1jb250ZW50IOKAlCB2aXZlIGRlbnRybyBkZSB2YWwtcGFnZS13cmFwcGVyLlxuICpcbiAqIEF1dG8tcmVnaXN0cmEgc3VzIGRvcyBzZXRzIGRlIGRlZmF1bHRzIGkxOG4gKGxhYmVscyArIGhlYWRlcikgZW4gc3VzXG4gKiByZXNwZWN0aXZvcyBuYW1lc3BhY2VzIHNpIGVsIGNvbnN1bWVyIG5vIGxvcyBwcm92ZXnDsy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLXNldHRpbmdzLWh1YicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtJb25HcmlkLCBJb25Sb3csIElvbkNvbCwgQWN0aW9uQ2FyZENvbXBvbmVudCwgRGlzcGxheUNvbXBvbmVudCwgVGl0bGVDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJwYWdlXCI+XG4gICAgICA8aGVhZGVyIGNsYXNzPVwicGFnZS1oZWFkZXJcIj5cbiAgICAgICAgPHZhbC1kaXNwbGF5IFtwcm9wc109XCJ7IHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycsIGNvbnRlbnQ6IHBhZ2VUaXRsZSgpIH1cIiAvPlxuICAgICAgICA8dmFsLXRpdGxlXG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIHNpemU6ICdsYXJnZScsXG4gICAgICAgICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICBjb250ZW50OiBwYWdlRGVzY3JpcHRpb24oKSxcbiAgICAgICAgICB9XCJcbiAgICAgICAgLz5cbiAgICAgIDwvaGVhZGVyPlxuXG4gICAgICA8aW9uLWdyaWQgY2xhc3M9XCJjYXJkcy1ncmlkXCI+XG4gICAgICAgIDxpb24tcm93PlxuICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiBhY3Rpb25DYXJkcygpOyB0cmFjayBhY3Rpb24udG9rZW4pIHtcbiAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemUtc209XCI2XCI+XG4gICAgICAgICAgICAgIDx2YWwtYWN0aW9uLWNhcmQgW3Byb3BzXT1cImFjdGlvblwiIChvbkNsaWNrKT1cIm9uQWN0aW9uQ2xpY2soYWN0aW9uKVwiIC8+XG4gICAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgICAgfVxuICAgICAgICA8L2lvbi1yb3c+XG4gICAgICA8L2lvbi1ncmlkPlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAucGFnZSB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMDtcbiAgICAgICAgbWF4LXdpZHRoOiA3MjBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB9XG4gICAgICAucGFnZS1oZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgICAgfVxuICAgICAgLmNhcmRzLWdyaWQge1xuICAgICAgICBtYXJnaW46IDAgLTRweDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cbiAgICAgIC5jYXJkcy1ncmlkIGlvbi1jb2wge1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NIdWJDb21wb25lbnQge1xuICBwcml2YXRlIG5hdiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgLyoqXG4gICAqIENvbmZpZyB2w61hIEBJbnB1dCAob2JqZWN0LWZpcnN0KS4gU2kgbm8gc2UgcGFzYSwgY2FlIGFsIHJvdXRlIGRhdGFcbiAgICogYHNldHRpbmdzSHViQ29uZmlnYCAocG9ibGFkbyBwb3IgYHByb3ZpZGVWYWx0ZWNoU2V0dGluZ3NSb3V0ZXNgKS5cbiAgICogYHJlc29sdmVkQ29uZmlnYCBtZXJnZWEgY29uIGRlZmF1bHRzIOKAlCBASW5wdXQgZ2FuYSBzb2JyZSByb3V0ZSBkYXRhLlxuICAgKi9cbiAgQElucHV0KCkgY29uZmlnPzogU2V0dGluZ3NIdWJDb25maWc7XG5cbiAgcmVhZG9ubHkgcmVzb2x2ZWRDb25maWcgPSBjb21wdXRlZDxcbiAgICBSZXF1aXJlZDxQaWNrPFNldHRpbmdzSHViQ29uZmlnLCAnaTE4bk5hbWVzcGFjZScgfCAncGFnZUkxOG5OYW1lc3BhY2UnPj4gJiBTZXR0aW5nc0h1YkNvbmZpZ1xuICA+KCgpID0+IHtcbiAgICBjb25zdCBmcm9tUm91dGUgPSAodGhpcy5yb3V0ZT8uc25hcHNob3QuZGF0YVsnc2V0dGluZ3NIdWJDb25maWcnXSA/PyB7fSkgYXMgU2V0dGluZ3NIdWJDb25maWc7XG4gICAgY29uc3QgbWVyZ2VkOiBTZXR0aW5nc0h1YkNvbmZpZyA9IHsgLi4uZnJvbVJvdXRlLCAuLi4odGhpcy5jb25maWcgPz8ge30pIH07XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm1lcmdlZCxcbiAgICAgIGkxOG5OYW1lc3BhY2U6IG1lcmdlZC5pMThuTmFtZXNwYWNlID8/IERFRkFVTFRfTEFCRUxTX05TLFxuICAgICAgcGFnZUkxOG5OYW1lc3BhY2U6IG1lcmdlZC5wYWdlSTE4bk5hbWVzcGFjZSA/PyBERUZBVUxUX1BBR0VfTlMsXG4gICAgfTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBnZXQgbGFiZWxzTnMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlZENvbmZpZygpLmkxOG5OYW1lc3BhY2U7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgcGFnZU5zKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZWRDb25maWcoKS5wYWdlSTE4bk5hbWVzcGFjZTtcbiAgfVxuXG4gIHJlYWRvbmx5IHBhZ2VUaXRsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICB0aGlzLmkxOG4ubGFuZygpO1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgncGFnZVRpdGxlJywgdGhpcy5wYWdlTnMpO1xuICB9KTtcbiAgcmVhZG9ubHkgcGFnZURlc2NyaXB0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCdwYWdlRGVzY3JpcHRpb24nLCB0aGlzLnBhZ2VOcyk7XG4gIH0pO1xuXG4gIC8qKiBDYXJkcyBkZWwgSFVCLCByZXN1ZWx0YXMgZGVzZGUgbGEgY29uZmlnLiAqL1xuICByZWFkb25seSBhY3Rpb25DYXJkcyA9IGNvbXB1dGVkPEFjdGlvbkNhcmRNZXRhZGF0YVtdPigoKSA9PiB7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICBjb25zdCBjZmcgPSB0aGlzLnJlc29sdmVkQ29uZmlnKCk7XG4gICAgcmV0dXJuIGJ1aWxkU2V0dGluZ3NDYXJkcyhrID0+IHRoaXMuaTE4bi50KGssIGNmZy5pMThuTmFtZXNwYWNlKSwge1xuICAgICAgZXhjbHVkZTogY2ZnLmV4Y2x1ZGUsXG4gICAgICBpbmNsdWRlOiBjZmcuaW5jbHVkZSxcbiAgICAgIG9yZGVyOiBjZmcub3JkZXIsXG4gICAgICBpbmNsdWRlTG9nb3V0OiBjZmcuaW5jbHVkZUxvZ291dCxcbiAgICAgIGJhc2VQYXRoOiBjZmcuYmFzZVBhdGgsXG4gICAgfSk7XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIEF1dG8tcmVnaXN0cm8gaTE4biDigJQgcmVzcGV0YSBvdmVycmlkZSBkZWwgY29uc3VtZXIuIExvcyBuYW1lc3BhY2VzIHB1ZWRlblxuICAgIC8vIHZlbmlyIGRlIEBJbnB1dC5jb25maWcgbyBkZWwgcm91dGUgZGF0YTsgbG9zIHJlc29sdmVtb3MgYWPDoS5cbiAgICBjb25zdCBsYWJlbHNOcyA9IHRoaXMubGFiZWxzTnM7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKGxhYmVsc05zKSkge1xuICAgICAgdGhpcy5pMThuLnJlZ2lzdGVyQ29udGVudChsYWJlbHNOcywgU0VUVElOR1NfSFVCX0xBQkVMU19JMThOKTtcbiAgICB9XG4gICAgY29uc3QgcGFnZU5zID0gdGhpcy5wYWdlTnM7XG4gICAgaWYgKCF0aGlzLmkxOG4uaGFzTmFtZXNwYWNlKHBhZ2VOcykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQocGFnZU5zLCBTRVRUSU5HU19IVUJfUEFHRV9JMThOKTtcbiAgICB9XG5cbiAgICB0aGlzLm5hdi5zZXRCYWNrSGVhZGVyKCdwYWdlVGl0bGUnLCBwYWdlTnMsIHsgd2l0aE1lbnU6IHRydWUgfSk7XG4gIH1cblxuICBvbkFjdGlvbkNsaWNrKGFjdGlvbjogQWN0aW9uQ2FyZE1ldGFkYXRhKTogdm9pZCB7XG4gICAgY29uc3QgdG9rZW4gPSBhY3Rpb24udG9rZW47XG4gICAgdGhpcy5yZXNvbHZlZENvbmZpZygpLm9uU2VjdGlvbkNsaWNrPy4odG9rZW4gPz8gJycpO1xuICAgIGlmICh0b2tlbiA9PT0gJ2FjdGlvbi1sb2dvdXQnKSB7XG4gICAgICB0aGlzLnJlc29sdmVkQ29uZmlnKCkub25Mb2dvdXQ/LigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoYWN0aW9uLnJvdXRlckxpbmspIHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKEFycmF5LmlzQXJyYXkoYWN0aW9uLnJvdXRlckxpbmspID8gYWN0aW9uLnJvdXRlckxpbmsgOiBbYWN0aW9uLnJvdXRlckxpbmtdKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|