valtech-components 4.0.585 → 4.0.587
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/mini-games/chessimals-adventure.component.mjs +33 -2
- package/esm2022/lib/components/organisms/mini-games/christianity-game.component.mjs +1529 -994
- package/esm2022/lib/components/organisms/mini-games/christianity-rules.mjs +46 -13
- package/esm2022/lib/components/organisms/mini-games/mini-games.i18n.mjs +5 -1
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +1596 -994
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/phone-display/phone-display.component.d.ts +1 -1
- package/lib/components/organisms/mini-games/chessimals-adventure.component.d.ts +3 -0
- package/lib/components/organisms/mini-games/chessimals-game.component.d.ts +1 -1
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -4,6 +4,7 @@ import { Router } from '@angular/router';
|
|
|
4
4
|
import { IonBadge, IonButton, IonIcon } from '@ionic/angular/standalone';
|
|
5
5
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
6
6
|
import { I18nService } from '../../../services/i18n';
|
|
7
|
+
import { ToastService } from '../../../services/toast.service';
|
|
7
8
|
import { MINI_GAMES_I18N } from './mini-games.i18n';
|
|
8
9
|
import { CHESSIMALS_ADVENTURE_ACTS, adventureActIsUnlocked, adventureNodeIsAvailable, } from './chessimals-adventure-data';
|
|
9
10
|
import { ChessimalsAdventureProgressService } from './chessimals-adventure-progress.service';
|
|
@@ -14,6 +15,7 @@ export class ChessimalsAdventureComponent {
|
|
|
14
15
|
this.i18n = inject(I18nService);
|
|
15
16
|
this.router = inject(Router);
|
|
16
17
|
this.progressService = inject(ChessimalsAdventureProgressService);
|
|
18
|
+
this.toast = inject(ToastService);
|
|
17
19
|
this.progress = toSignal(this.progressService.watchProgress(), {
|
|
18
20
|
initialValue: undefined,
|
|
19
21
|
});
|
|
@@ -69,8 +71,14 @@ export class ChessimalsAdventureComponent {
|
|
|
69
71
|
onNodeTap(nodeView) {
|
|
70
72
|
if (nodeView.status === 'locked')
|
|
71
73
|
return;
|
|
72
|
-
if (nodeView.node.type === 'rest'
|
|
74
|
+
if (nodeView.node.type === 'rest') {
|
|
75
|
+
this.onRestTap(nodeView);
|
|
73
76
|
return;
|
|
77
|
+
}
|
|
78
|
+
if (nodeView.node.type === 'mystery') {
|
|
79
|
+
this.onMysteryTap(nodeView);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
74
82
|
void this.router.navigate([ADVENTURE_ROUTE_BASE], {
|
|
75
83
|
queryParams: {
|
|
76
84
|
adventureNode: nodeView.node.id,
|
|
@@ -80,6 +88,29 @@ export class ChessimalsAdventureComponent {
|
|
|
80
88
|
},
|
|
81
89
|
});
|
|
82
90
|
}
|
|
91
|
+
onRestTap(nodeView) {
|
|
92
|
+
if (nodeView.status === 'completed')
|
|
93
|
+
return;
|
|
94
|
+
void this.progressService.recordNodeCompleted(nodeView.node.id, 1).then(() => {
|
|
95
|
+
this.toast.show({ message: this.t('chessimalsAdventureRestDone'), color: 'dark', duration: 2500 });
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
onMysteryTap(nodeView) {
|
|
99
|
+
const act = CHESSIMALS_ADVENTURE_ACTS.find(a => a.id === nodeView.node.actId);
|
|
100
|
+
const battleNodes = act?.nodes.filter(n => n.type === 'battle' && n.profileId) ?? [];
|
|
101
|
+
if (!battleNodes.length)
|
|
102
|
+
return;
|
|
103
|
+
const pick = battleNodes[Math.floor(Math.random() * battleNodes.length)];
|
|
104
|
+
this.toast.show({ message: this.t('chessimalsAdventureMysteryReveal'), color: 'dark', duration: 2000 });
|
|
105
|
+
void this.router.navigate([ADVENTURE_ROUTE_BASE], {
|
|
106
|
+
queryParams: {
|
|
107
|
+
adventureNode: nodeView.node.id,
|
|
108
|
+
profileId: pick.profileId,
|
|
109
|
+
difficulty: pick.difficulty,
|
|
110
|
+
boardSize: pick.boardSize ?? 6,
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
}
|
|
83
114
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChessimalsAdventureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
84
115
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChessimalsAdventureComponent, isStandalone: true, selector: "val-chessimals-adventure", ngImport: i0, template: `
|
|
85
116
|
<div class="adventure-hub">
|
|
@@ -231,4 +262,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
231
262
|
</div>
|
|
232
263
|
`, styles: [".adventure-hub{padding:0 0 40px}.adventure-hub__header{padding:20px 16px 24px;text-align:center}.adventure-hub__eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ion-color-medium);margin:0 0 6px}.adventure-hub__title{font-size:1.75rem;font-weight:800;margin:0 0 6px;color:var(--ion-text-color)}.adventure-hub__subtitle{font-size:.9rem;color:var(--ion-color-medium);margin:0 0 12px}.adventure-hub__stars{display:inline-flex;align-items:center;gap:4px;background:var(--ion-card-background, var(--ion-background-color));border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));border-radius:20px;padding:4px 14px;font-weight:700;font-size:.95rem;color:var(--ion-color-warning)}.adventure-hub__stars ion-icon{color:var(--ion-color-warning);font-size:1rem}.adventure-hub__acts{display:flex;flex-direction:column;gap:16px;padding:0 12px}.adventure-act{border-radius:16px;border:1px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-card-background, var(--ion-background-color));overflow:hidden}.adventure-act--locked{opacity:.5}.adventure-act--done{border-color:var(--ion-color-success)}.adventure-act__head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--ion-border-color, rgba(0, 0, 0, .08))}.adventure-act__emoji{font-size:1.75rem;line-height:1;flex-shrink:0}.adventure-act__meta{flex:1;min-width:0}.adventure-act__name{font-size:1rem;font-weight:700;margin:0 0 2px;color:var(--ion-text-color)}.adventure-act__desc{font-size:.8rem;color:var(--ion-color-medium);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.adventure-act__lock{color:var(--ion-color-medium);font-size:1.25rem;flex-shrink:0}.adventure-act__progress{font-size:.8rem;font-weight:700;color:var(--ion-color-medium);flex-shrink:0}.adventure-act__nodes{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:12px}.adventure-node{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border-radius:12px;border:1.5px solid var(--ion-border-color, rgba(0, 0, 0, .1));background:var(--ion-background-color, #f8f8f8);cursor:pointer;text-align:center;transition:transform .12s ease,border-color .12s ease}.adventure-node:active{transform:scale(.97)}.adventure-node--available{border-color:var(--ion-color-primary);background:color-mix(in srgb,var(--ion-color-primary) 6%,transparent)}.adventure-node--completed{border-color:var(--ion-color-success);background:color-mix(in srgb,var(--ion-color-success) 6%,transparent)}.adventure-node--locked{opacity:.4;cursor:default}.adventure-node__icon{font-size:1.5rem;line-height:1}.adventure-node__label{font-size:.75rem;font-weight:600;color:var(--ion-text-color);line-height:1.2}.adventure-node__stars{display:flex;gap:1px}.adventure-node__star{font-size:.7rem;color:var(--ion-color-medium)}.adventure-node__star--filled{color:var(--ion-color-warning)}.adventure-node__badge{position:absolute;top:-4px;right:-4px;font-size:.6rem;padding:2px 5px}\n"] }]
|
|
233
264
|
}], ctorParameters: () => [] });
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlc3NpbWFscy1hZHZlbnR1cmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9taW5pLWdhbWVzL2NoZXNzaW1hbHMtYWR2ZW50dXJlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixzQkFBc0IsRUFDdEIsd0JBQXdCLEdBQ3pCLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBc0I3RixNQUFNLG9CQUFvQixHQUFHLHdCQUF3QixDQUFDO0FBdVJ0RCxNQUFNLE9BQU8sNEJBQTRCO0lBd0N2QztRQXZDaUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMzQixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hCLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFFN0QsYUFBUSxHQUFHLFFBQVEsQ0FBMEMsSUFBSSxDQUFD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Q0FBQyxRQUFRLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO1lBQ2hELFdBQVcsRUFBRTtnQkFDWCxhQUFhLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMvQixTQUFTLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTO2dCQUNsQyxVQUFVLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVO2dCQUNwQyxTQUFTLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQzthQUN4QztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBMUVVLDRCQUE0QjttR0FBNUIsNEJBQTRCLG9GQWpSN0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdFVCxxakdBekVTLE9BQU8sb0ZBQWEsT0FBTywySkFBRSxRQUFROzs0RkFrUnBDLDRCQUE0QjtrQkFyUnhDLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxZQUN0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0VUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkJhZGdlLCBJb25CdXR0b24sIElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgTUlOSV9HQU1FU19JMThOIH0gZnJvbSAnLi9taW5pLWdhbWVzLmkxOG4nO1xuaW1wb3J0IHtcbiAgQ0hFU1NJTUFMU19BRFZFTlRVUkVfQUNUUyxcbiAgYWR2ZW50dXJlQWN0SXNVbmxvY2tlZCxcbiAgYWR2ZW50dXJlTm9kZUlzQXZhaWxhYmxlLFxufSBmcm9tICcuL2NoZXNzaW1hbHMtYWR2ZW50dXJlLWRhdGEnO1xuaW1wb3J0IHsgQ2hlc3NpbWFsc0FkdmVudHVyZVByb2dyZXNzU2VydmljZSB9IGZyb20gJy4vY2hlc3NpbWFscy1hZHZlbnR1cmUtcHJvZ3Jlc3Muc2VydmljZSc7XG5pbXBvcnQge1xuICBDaGVzc2ltYWxzQWR2ZW50dXJlQWN0LFxuICBDaGVzc2ltYWxzQWR2ZW50dXJlTm9kZSxcbiAgQ2hlc3NpbWFsc0FkdmVudHVyZU5vZGVTdGF0dXMsXG4gIENoZXNzaW1hbHNBZHZlbnR1cmVQcm9ncmVzcyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmludGVyZmFjZSBBZHZlbnR1cmVOb2RlVmlldyB7XG4gIG5vZGU6IENoZXNzaW1hbHNBZHZlbnR1cmVOb2RlO1xuICBzdGF0dXM6IENoZXNzaW1hbHNBZHZlbnR1cmVOb2RlU3RhdHVzO1xuICBzdGFyczogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgQWR2ZW50dXJlQWN0VmlldyB7XG4gIGFjdDogQ2hlc3NpbWFsc0FkdmVudHVyZUFjdDtcbiAgdW5sb2NrZWQ6IGJvb2xlYW47XG4gIG5vZGVzOiBBZHZlbnR1cmVOb2RlVmlld1tdO1xuICBjb21wbGV0ZWRDb3VudDogbnVtYmVyO1xuICB0b3RhbENvdW50OiBudW1iZXI7XG59XG5cbmNvbnN0IEFEVkVOVFVSRV9ST1VURV9CQVNFID0gJy9taW5pLWdhbWVzL2NoZXNzaW1hbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY2hlc3NpbWFscy1hZHZlbnR1cmUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdDbGFzcywgSW9uQnV0dG9uLCBJb25JY29uLCBJb25CYWRnZV0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImFkdmVudHVyZS1odWJcIj5cbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJhZHZlbnR1cmUtaHViX19oZWFkZXJcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJhZHZlbnR1cmUtaHViX19leWVicm93XCI+e3sgdCgnY2hlc3NpbWFsc0FkdmVudHVyZUV5ZWJyb3cnKSB9fTwvcD5cbiAgICAgICAgPGgxIGNsYXNzPVwiYWR2ZW50dXJlLWh1Yl9fdGl0bGVcIj57eyB0KCdjaGVzc2ltYWxzQWR2ZW50dXJlVGl0bGUnKSB9fTwvaDE+XG4gICAgICAgIDxwIGNsYXNzPVwiYWR2ZW50dXJlLWh1Yl9fc3VidGl0bGVcIj57eyB0KCdjaGVzc2ltYWxzQWR2ZW50dXJlU3VidGl0bGUnKSB9fTwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkdmVudHVyZS1odWJfX3N0YXJzXCI+XG4gICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJzdGFyXCIgLz5cbiAgICAgICAgICA8c3Bhbj57eyB0b3RhbFN0YXJzKCkgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9oZWFkZXI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJhZHZlbnR1cmUtaHViX19hY3RzXCI+XG4gICAgICAgIEBmb3IgKGFjdFZpZXcgb2YgYWN0Vmlld3MoKTsgdHJhY2sgYWN0Vmlldy5hY3QuaWQpIHtcbiAgICAgICAgICA8c2VjdGlvblxuICAgICAgICAgICAgY2xhc3M9XCJhZHZlbnR1cmUtYWN0XCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ2FkdmVudHVyZS1hY3QtLWxvY2tlZCc6ICFhY3RWaWV3LnVubG9ja2VkLFxuICAgICAgICAgICAgICAnYWR2ZW50dXJlLWFjdC0tZG9uZSc6IGFjdFZpZXcuY29tcGxldGVkQ291bnQgPT09IGFjdFZpZXcudG90YWxDb3VudCAmJiBhY3RWaWV3LnVubG9ja2VkLFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkdmVudHVyZS1hY3RfX2hlYWRcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZHZlbnR1cmUtYWN0X19lbW9qaVwiPnt7IGFjdFZpZXcuYWN0LmVtb2ppIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWR2ZW50dXJlLWFjdF9fbWV0YVwiPlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cImFkdmVudHVyZS1hY3RfX25hbWVcIj57eyB0KGFjdFZpZXcuYWN0LnRpdGxlS2V5KSB9fTwvaDI+XG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJhZHZlbnR1cmUtYWN0X19kZXNjXCI+e3sgdChhY3RWaWV3LmFjdC5kZXNjcmlwdGlvbktleSkgfX08L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICBAaWYgKCFhY3RWaWV3LnVubG9ja2VkKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJsb2NrLWNsb3NlZC1vdXRsaW5lXCIgY2xhc3M9XCJhZHZlbnR1cmUtYWN0X19sb2NrXCIgLz5cbiAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZHZlbnR1cmUtYWN0X19wcm9ncmVzc1wiPiB7eyBhY3RWaWV3LmNvbXBsZXRlZENvdW50IH19L3t7IGFjdFZpZXcudG90YWxDb3VudCB9fSA8L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICBAaWYgKGFjdFZpZXcudW5sb2NrZWQpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkdmVudHVyZS1hY3RfX25vZGVzXCI+XG4gICAgICAgICAgICAgICAgQGZvciAobm9kZVZpZXcgb2YgYWN0Vmlldy5ub2RlczsgdHJhY2sgbm9kZVZpZXcubm9kZS5pZCkge1xuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkdmVudHVyZS1ub2RlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICdhZHZlbnR1cmUtbm9kZS0tYXZhaWxhYmxlJzogbm9kZVZpZXcuc3RhdHVzID09PSAnYXZhaWxhYmxlJyxcbiAgICAgICAgICAgICAgICAgICAgICAnYWR2ZW50dXJlLW5vZGUtLWNvbXBsZXRlZCc6IG5vZGVWaWV3LnN0YXR1cyA9PT0gJ2NvbXBsZXRlZCcsXG4gICAgICAgICAgICAgICAgICAgICAgJ2FkdmVudHVyZS1ub2RlLS1sb2NrZWQnOiBub2RlVmlldy5zdGF0dXMgPT09ICdsb2NrZWQnLFxuICAgICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm5vZGVWaWV3LnN0YXR1cyA9PT0gJ2xvY2tlZCdcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Ob2RlVGFwKG5vZGVWaWV3KVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkdmVudHVyZS1ub2RlX19pY29uXCI+e3sgbm9kZUljb24obm9kZVZpZXcubm9kZS50eXBlKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhZHZlbnR1cmUtbm9kZV9fbGFiZWxcIj57eyB0KG5vZGVWaWV3Lm5vZGUudGl0bGVLZXkpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkdmVudHVyZS1ub2RlX19zdGFyc1wiPlxuICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGkgb2YgWzAsIDEsIDJdOyB0cmFjayBpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwibm9kZVZpZXcuc3RhcnMgPiBpID8gJ3N0YXInIDogJ3N0YXItb3V0bGluZSdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImFkdmVudHVyZS1ub2RlX19zdGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnYWR2ZW50dXJlLW5vZGVfX3N0YXItLWZpbGxlZCc6IG5vZGVWaWV3LnN0YXJzID4gaSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobm9kZVZpZXcubm9kZS50eXBlID09PSAnYm9zcycpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8aW9uLWJhZGdlIGNvbG9yPVwid2FybmluZ1wiIGNsYXNzPVwiYWR2ZW50dXJlLW5vZGVfX2JhZGdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB0KCdjaGVzc2ltYWxzQWR2ZW50dXJlQm9zcycpIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9pb24tYmFkZ2U+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgLmFkdmVudHVyZS1odWIge1xuICAgICAgICBwYWRkaW5nOiAwIDAgNDBweDtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1odWJfX2hlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDIwcHggMTZweCAyNHB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtaHViX19leWVicm93IHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICAgIG1hcmdpbjogMCAwIDZweDtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1odWJfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogODAwO1xuICAgICAgICBtYXJnaW46IDAgMCA2cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tdGV4dC1jb2xvcik7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtaHViX19zdWJ0aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICAgIG1hcmdpbjogMCAwIDEycHg7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtaHViX19zdGFycyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpKTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW9uLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICAgICAgcGFkZGluZzogNHB4IDE0cHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci13YXJuaW5nKTtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1odWJfX3N0YXJzIGlvbi1pY29uIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci13YXJuaW5nKTtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLWh1Yl9fYWN0cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTZweDtcbiAgICAgICAgcGFkZGluZzogMCAxMnB4O1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLWFjdCB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1jYXJkLWJhY2tncm91bmQsIHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yKSk7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtYWN0LS1sb2NrZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtYWN0LS1kb25lIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pb24tY29sb3Itc3VjY2Vzcyk7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtYWN0X19oZWFkIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgICAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDgpKTtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1hY3RfX2Vtb2ppIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjc1cmVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtYWN0X19tZXRhIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLWFjdF9fbmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbWFyZ2luOiAwIDAgMnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLXRleHQtY29sb3IpO1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLWFjdF9fZGVzYyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtYWN0X19sb2NrIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgICBmb250LXNpemU6IDEuMjVyZW07XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLWFjdF9fcHJvZ3Jlc3Mge1xuICAgICAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1tZWRpdW0pO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1hY3RfX25vZGVzIHtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maWxsLCBtaW5tYXgoMTQwcHgsIDFmcikpO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtbm9kZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgICAgIHBhZGRpbmc6IDEycHggOHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBib3JkZXI6IDEuNXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4xKSk7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWlvbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZjhmOGY4KTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIHRyYW5zaXRpb246XG4gICAgICAgICAgdHJhbnNmb3JtIDAuMTJzIGVhc2UsXG4gICAgICAgICAgYm9yZGVyLWNvbG9yIDAuMTJzIGVhc2U7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtbm9kZTphY3RpdmUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTcpO1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLW5vZGUtLWF2YWlsYWJsZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpO1xuICAgICAgICBiYWNrZ3JvdW5kOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0taW9uLWNvbG9yLXByaW1hcnkpIDYlLCB0cmFuc3BhcmVudCk7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtbm9kZS0tY29tcGxldGVkIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pb24tY29sb3Itc3VjY2Vzcyk7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pb24tY29sb3Itc3VjY2VzcykgNiUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1ub2RlLS1sb2NrZWQge1xuICAgICAgICBvcGFjaXR5OiAwLjQ7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1ub2RlX19pY29uIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLW5vZGVfX2xhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLXRleHQtY29sb3IpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLW5vZGVfX3N0YXJzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZ2FwOiAxcHg7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtbm9kZV9fc3RhciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtbm9kZV9fc3Rhci0tZmlsbGVkIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci13YXJuaW5nKTtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1ub2RlX19iYWRnZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtNHB4O1xuICAgICAgICByaWdodDogLTRweDtcbiAgICAgICAgZm9udC1zaXplOiAwLjZyZW07XG4gICAgICAgIHBhZGRpbmc6IDJweCA1cHg7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlc3NpbWFsc0FkdmVudHVyZUNvbXBvbmVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvZ3Jlc3NTZXJ2aWNlID0gaW5qZWN0KENoZXNzaW1hbHNBZHZlbnR1cmVQcm9ncmVzc1NlcnZpY2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvZ3Jlc3MgPSB0b1NpZ25hbDxDaGVzc2ltYWxzQWR2ZW50dXJlUHJvZ3Jlc3MgfCB1bmRlZmluZWQ+KHRoaXMucHJvZ3Jlc3NTZXJ2aWNlLndhdGNoUHJvZ3Jlc3MoKSwge1xuICAgIGluaXRpYWxWYWx1ZTogdW5kZWZpbmVkLFxuICB9KTtcblxuICByZWFkb25seSBzZWxlY3RlZEFjdElkID0gc2lnbmFsPHN0cmluZz4oJ2FjdDEnKTtcblxuICByZWFkb25seSB0b3RhbFN0YXJzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wcm9ncmVzcygpPy50b3RhbFN0YXJzID8/IDApO1xuXG4gIHJlYWRvbmx5IGFjdFZpZXdzID0gY29tcHV0ZWQ8QWR2ZW50dXJlQWN0Vmlld1tdPigoKSA9PiB7XG4gICAgY29uc3QgcHJvZyA9IHRoaXMucHJvZ3Jlc3MoKTtcbiAgICBjb25zdCBjb21wbGV0ZWQgPSBwcm9nPy5jb21wbGV0ZWROb2RlcyA/PyB7fTtcbiAgICByZXR1cm4gQ0hFU1NJTUFMU19BRFZFTlRVUkVfQUNUUy5tYXAoYWN0ID0+IHtcbiAgICAgIGNvbnN0IHVubG9ja2VkID0gYWR2ZW50dXJlQWN0SXNVbmxvY2tlZChhY3QuaWQsIGNvbXBsZXRlZCk7XG4gICAgICBjb25zdCBub2RlczogQWR2ZW50dXJlTm9kZVZpZXdbXSA9IGFjdC5ub2Rlcy5tYXAobm9kZSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGNvbXBsZXRlZFtub2RlLmlkXTtcbiAgICAgICAgbGV0IHN0YXR1czogQ2hlc3NpbWFsc0FkdmVudHVyZU5vZGVTdGF0dXM7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICBzdGF0dXMgPSAnY29tcGxldGVkJztcbiAgICAgICAgfSBlbHNlIGlmICghdW5sb2NrZWQgfHwgIWFkdmVudHVyZU5vZGVJc0F2YWlsYWJsZShub2RlLmlkLCBjb21wbGV0ZWQpKSB7XG4gICAgICAgICAgc3RhdHVzID0gJ2xvY2tlZCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RhdHVzID0gJ2F2YWlsYWJsZSc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgbm9kZSwgc3RhdHVzLCBzdGFyczogcmVzdWx0Py5zdGFycyA/PyAwIH07XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFjdCxcbiAgICAgICAgdW5sb2NrZWQsXG4gICAgICAgIG5vZGVzLFxuICAgICAgICBjb21wbGV0ZWRDb3VudDogbm9kZXMuZmlsdGVyKG4gPT4gbi5zdGF0dXMgPT09ICdjb21wbGV0ZWQnKS5sZW5ndGgsXG4gICAgICAgIHRvdGFsQ291bnQ6IG5vZGVzLmxlbmd0aCxcbiAgICAgIH07XG4gICAgfSk7XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGlmICghdGhpcy5pMThuLmhhc05hbWVzcGFjZSgnTWluaUdhbWVzJykpIHtcbiAgICAgIHRoaXMuaTE4bi5yZWdpc3RlckNvbnRlbnQoJ01pbmlHYW1lcycsIE1JTklfR0FNRVNfSTE4Tik7XG4gICAgfVxuICB9XG5cbiAgdChrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KGtleSwgJ01pbmlHYW1lcycpO1xuICB9XG5cbiAgbm9kZUljb24odHlwZTogQ2hlc3NpbWFsc0FkdmVudHVyZU5vZGVbJ3R5cGUnXSk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdiYXR0bGUnOlxuICAgICAgICByZXR1cm4gJ+KalO+4jyc7XG4gICAgICBjYXNlICdib3NzJzpcbiAgICAgICAgcmV0dXJuICfwn5KAJztcbiAgICAgIGNhc2UgJ3Jlc3QnOlxuICAgICAgICByZXR1cm4gJ/Cfj5XvuI8nO1xuICAgICAgY2FzZSAnbXlzdGVyeSc6XG4gICAgICAgIHJldHVybiAn4p2TJztcbiAgICB9XG4gIH1cblxuICBvbk5vZGVUYXAobm9kZVZpZXc6IEFkdmVudHVyZU5vZGVWaWV3KTogdm9pZCB7XG4gICAgaWYgKG5vZGVWaWV3LnN0YXR1cyA9PT0gJ2xvY2tlZCcpIHJldHVybjtcbiAgICBpZiAobm9kZVZpZXcubm9kZS50eXBlID09PSAncmVzdCcgfHwgbm9kZVZpZXcubm9kZS50eXBlID09PSAnbXlzdGVyeScpIHJldHVybjtcbiAgICB2b2lkIHRoaXMucm91dGVyLm5hdmlnYXRlKFtBRFZFTlRVUkVfUk9VVEVfQkFTRV0sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgIGFkdmVudHVyZU5vZGU6IG5vZGVWaWV3Lm5vZGUuaWQsXG4gICAgICAgIHByb2ZpbGVJZDogbm9kZVZpZXcubm9kZS5wcm9maWxlSWQsXG4gICAgICAgIGRpZmZpY3VsdHk6IG5vZGVWaWV3Lm5vZGUuZGlmZmljdWx0eSxcbiAgICAgICAgYm9hcmRTaXplOiBub2RlVmlldy5ub2RlLmJvYXJkU2l6ZSA/PyA2LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
265
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlc3NpbWFscy1hZHZlbnR1cmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL29yZ2FuaXNtcy9taW5pLWdhbWVzL2NoZXNzaW1hbHMtYWR2ZW50dXJlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsc0JBQXNCLEVBQ3RCLHdCQUF3QixHQUN6QixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQXNCN0YsTUFBTSxvQkFBb0IsR0FBRyx3QkFBd0IsQ0FBQztBQXVSdEQsTUFBTSxPQUFPLDRCQUE0QjtJQXlDdkM7UUF4Q2lCLFNBQUksR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0IsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixvQkFBZSxHQUFHLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FB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LDRCQUE0QjtrQkFyUnhDLFNBQVM7K0JBQ0UsMEJBQTBCLGNBQ3hCLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxZQUN0Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0VUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkJhZGdlLCBJb25CdXR0b24sIElvbkljb24gfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBNSU5JX0dBTUVTX0kxOE4gfSBmcm9tICcuL21pbmktZ2FtZXMuaTE4bic7XG5pbXBvcnQge1xuICBDSEVTU0lNQUxTX0FEVkVOVFVSRV9BQ1RTLFxuICBhZHZlbnR1cmVBY3RJc1VubG9ja2VkLFxuICBhZHZlbnR1cmVOb2RlSXNBdmFpbGFibGUsXG59IGZyb20gJy4vY2hlc3NpbWFscy1hZHZlbnR1cmUtZGF0YSc7XG5pbXBvcnQgeyBDaGVzc2ltYWxzQWR2ZW50dXJlUHJvZ3Jlc3NTZXJ2aWNlIH0gZnJvbSAnLi9jaGVzc2ltYWxzLWFkdmVudHVyZS1wcm9ncmVzcy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIENoZXNzaW1hbHNBZHZlbnR1cmVBY3QsXG4gIENoZXNzaW1hbHNBZHZlbnR1cmVOb2RlLFxuICBDaGVzc2ltYWxzQWR2ZW50dXJlTm9kZVN0YXR1cyxcbiAgQ2hlc3NpbWFsc0FkdmVudHVyZVByb2dyZXNzLFxufSBmcm9tICcuL3R5cGVzJztcblxuaW50ZXJmYWNlIEFkdmVudHVyZU5vZGVWaWV3IHtcbiAgbm9kZTogQ2hlc3NpbWFsc0FkdmVudHVyZU5vZGU7XG4gIHN0YXR1czogQ2hlc3NpbWFsc0FkdmVudHVyZU5vZGVTdGF0dXM7XG4gIHN0YXJzOiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBBZHZlbnR1cmVBY3RWaWV3IHtcbiAgYWN0OiBDaGVzc2ltYWxzQWR2ZW50dXJlQWN0O1xuICB1bmxvY2tlZDogYm9vbGVhbjtcbiAgbm9kZXM6IEFkdmVudHVyZU5vZGVWaWV3W107XG4gIGNvbXBsZXRlZENvdW50OiBudW1iZXI7XG4gIHRvdGFsQ291bnQ6IG51bWJlcjtcbn1cblxuY29uc3QgQURWRU5UVVJFX1JPVVRFX0JBU0UgPSAnL21pbmktZ2FtZXMvY2hlc3NpbWFscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbC1jaGVzc2ltYWxzLWFkdmVudHVyZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBJb25CdXR0b24sIElvbkljb24sIElvbkJhZGdlXSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwiYWR2ZW50dXJlLWh1YlwiPlxuICAgICAgPGhlYWRlciBjbGFzcz1cImFkdmVudHVyZS1odWJfX2hlYWRlclwiPlxuICAgICAgICA8cCBjbGFzcz1cImFkdmVudHVyZS1odWJfX2V5ZWJyb3dcIj57eyB0KCdjaGVzc2ltYWxzQWR2ZW50dXJlRXllYnJvdycpIH19PC9wPlxuICAgICAgICA8aDEgY2xhc3M9XCJhZHZlbnR1cmUtaHViX190aXRsZVwiPnt7IHQoJ2NoZXNzaW1hbHNBZHZlbnR1cmVUaXRsZScpIH19PC9oMT5cbiAgICAgICAgPHAgY2xhc3M9XCJhZHZlbnR1cmUtaHViX19zdWJ0aXRsZVwiPnt7IHQoJ2NoZXNzaW1hbHNBZHZlbnR1cmVTdWJ0aXRsZScpIH19PC9wPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWR2ZW50dXJlLWh1Yl9fc3RhcnNcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInN0YXJcIiAvPlxuICAgICAgICAgIDxzcGFuPnt7IHRvdGFsU3RhcnMoKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2hlYWRlcj5cblxuICAgICAgPGRpdiBjbGFzcz1cImFkdmVudHVyZS1odWJfX2FjdHNcIj5cbiAgICAgICAgQGZvciAoYWN0VmlldyBvZiBhY3RWaWV3cygpOyB0cmFjayBhY3RWaWV3LmFjdC5pZCkge1xuICAgICAgICAgIDxzZWN0aW9uXG4gICAgICAgICAgICBjbGFzcz1cImFkdmVudHVyZS1hY3RcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnYWR2ZW50dXJlLWFjdC0tbG9ja2VkJzogIWFjdFZpZXcudW5sb2NrZWQsXG4gICAgICAgICAgICAgICdhZHZlbnR1cmUtYWN0LS1kb25lJzogYWN0Vmlldy5jb21wbGV0ZWRDb3VudCA9PT0gYWN0Vmlldy50b3RhbENvdW50ICYmIGFjdFZpZXcudW5sb2NrZWQsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWR2ZW50dXJlLWFjdF9faGVhZFwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkdmVudHVyZS1hY3RfX2Vtb2ppXCI+e3sgYWN0Vmlldy5hY3QuZW1vamkgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZHZlbnR1cmUtYWN0X19tZXRhXCI+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwiYWR2ZW50dXJlLWFjdF9fbmFtZVwiPnt7IHQoYWN0Vmlldy5hY3QudGl0bGVLZXkpIH19PC9oMj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImFkdmVudHVyZS1hY3RfX2Rlc2NcIj57eyB0KGFjdFZpZXcuYWN0LmRlc2NyaXB0aW9uS2V5KSB9fTwvcD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIEBpZiAoIWFjdFZpZXcudW5sb2NrZWQpIHtcbiAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImxvY2stY2xvc2VkLW91dGxpbmVcIiBjbGFzcz1cImFkdmVudHVyZS1hY3RfX2xvY2tcIiAvPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkdmVudHVyZS1hY3RfX3Byb2dyZXNzXCI+IHt7IGFjdFZpZXcuY29tcGxldGVkQ291bnQgfX0ve3sgYWN0Vmlldy50b3RhbENvdW50IH19IDwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAoYWN0Vmlldy51bmxvY2tlZCkge1xuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWR2ZW50dXJlLWFjdF9fbm9kZXNcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChub2RlVmlldyBvZiBhY3RWaWV3Lm5vZGVzOyB0cmFjayBub2RlVmlldy5ub2RlLmlkKSB7XG4gICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWR2ZW50dXJlLW5vZGVcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgJ2FkdmVudHVyZS1ub2RlLS1hdmFpbGFibGUnOiBub2RlVmlldy5zdGF0dXMgPT09ICdhdmFpbGFibGUnLFxuICAgICAgICAgICAgICAgICAgICAgICdhZHZlbnR1cmUtbm9kZS0tY29tcGxldGVkJzogbm9kZVZpZXcuc3RhdHVzID09PSAnY29tcGxldGVkJyxcbiAgICAgICAgICAgICAgICAgICAgICAnYWR2ZW50dXJlLW5vZGUtLWxvY2tlZCc6IG5vZGVWaWV3LnN0YXR1cyA9PT0gJ2xvY2tlZCcsXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibm9kZVZpZXcuc3RhdHVzID09PSAnbG9ja2VkJ1wiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbk5vZGVUYXAobm9kZVZpZXcpXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWR2ZW50dXJlLW5vZGVfX2ljb25cIj57eyBub2RlSWNvbihub2RlVmlldy5ub2RlLnR5cGUpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFkdmVudHVyZS1ub2RlX19sYWJlbFwiPnt7IHQobm9kZVZpZXcubm9kZS50aXRsZUtleSkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWR2ZW50dXJlLW5vZGVfX3N0YXJzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQGZvciAoaSBvZiBbMCwgMSwgMl07IHRyYWNrIGkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJub2RlVmlldy5zdGFycyA+IGkgPyAnc3RhcicgOiAnc3Rhci1vdXRsaW5lJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWR2ZW50dXJlLW5vZGVfX3N0YXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdhZHZlbnR1cmUtbm9kZV9fc3Rhci0tZmlsbGVkJzogbm9kZVZpZXcuc3RhcnMgPiBpIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChub2RlVmlldy5ub2RlLnR5cGUgPT09ICdib3NzJykge1xuICAgICAgICAgICAgICAgICAgICAgIDxpb24tYmFkZ2UgY29sb3I9XCJ3YXJuaW5nXCIgY2xhc3M9XCJhZHZlbnR1cmUtbm9kZV9fYmFkZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHQoJ2NoZXNzaW1hbHNBZHZlbnR1cmVCb3NzJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1iYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NlY3Rpb24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuYWR2ZW50dXJlLWh1YiB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCA0MHB4O1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLWh1Yl9faGVhZGVyIHtcbiAgICAgICAgcGFkZGluZzogMjBweCAxNnB4IDI0cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1odWJfX2V5ZWJyb3cge1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgICAgbWFyZ2luOiAwIDAgNnB4O1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLWh1Yl9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA4MDA7XG4gICAgICAgIG1hcmdpbjogMCAwIDZweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi10ZXh0LWNvbG9yKTtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1odWJfX3N1YnRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTJweDtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1odWJfX3N0YXJzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY2FyZC1iYWNrZ3JvdW5kLCB2YXIoLS1pb24tYmFja2dyb3VuZC1jb2xvcikpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1pb24tYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMSkpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgICAgICBwYWRkaW5nOiA0cHggMTRweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgZm9udC1zaXplOiAwLjk1cmVtO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXdhcm5pbmcpO1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLWh1Yl9fc3RhcnMgaW9uLWljb24ge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXdhcm5pbmcpO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtaHViX19hY3RzIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAwIDEycHg7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtYWN0IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0taW9uLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWNhcmQtYmFja2dyb3VuZCwgdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IpKTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1hY3QtLWxvY2tlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1hY3QtLWRvbmUge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWlvbi1jb2xvci1zdWNjZXNzKTtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1hY3RfX2hlYWQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDEwcHg7XG4gICAgICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWlvbi1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wOCkpO1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLWFjdF9fZW1vamkge1xuICAgICAgICBmb250LXNpemU6IDEuNzVyZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1hY3RfX21ldGEge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtYWN0X19uYW1lIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBtYXJnaW46IDAgMCAycHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tdGV4dC1jb2xvcik7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtYWN0X19kZXNjIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1hY3RfX2xvY2sge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtYWN0X19wcm9ncmVzcyB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLW1lZGl1bSk7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLWFjdF9fbm9kZXMge1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpbGwsIG1pbm1heCgxNDBweCwgMWZyKSk7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1ub2RlIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICAgICAgcGFkZGluZzogMTJweCA4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgICAgIGJvcmRlcjogMS41cHggc29saWQgdmFyKC0taW9uLWJvcmRlci1jb2xvciwgcmdiYSgwLCAwLCAwLCAwLjEpKTtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0taW9uLWJhY2tncm91bmQtY29sb3IsICNmOGY4ZjgpO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICB0cmFuc2Zvcm0gMC4xMnMgZWFzZSxcbiAgICAgICAgICBib3JkZXItY29sb3IgMC4xMnMgZWFzZTtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1ub2RlOmFjdGl2ZSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC45Nyk7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtbm9kZS0tYXZhaWxhYmxlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgIGJhY2tncm91bmQ6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSkgNiUsIHRyYW5zcGFyZW50KTtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1ub2RlLS1jb21wbGV0ZWQge1xuICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWlvbi1jb2xvci1zdWNjZXNzKTtcbiAgICAgICAgYmFja2dyb3VuZDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLWlvbi1jb2xvci1zdWNjZXNzKSA2JSwgdHJhbnNwYXJlbnQpO1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLW5vZGUtLWxvY2tlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNDtcbiAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLW5vZGVfX2ljb24ge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtbm9kZV9fbGFiZWwge1xuICAgICAgICBmb250LXNpemU6IDAuNzVyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tdGV4dC1jb2xvcik7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG4gICAgICB9XG5cbiAgICAgIC5hZHZlbnR1cmUtbm9kZV9fc3RhcnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDFweDtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1ub2RlX19zdGFyIHtcbiAgICAgICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItbWVkaXVtKTtcbiAgICAgIH1cblxuICAgICAgLmFkdmVudHVyZS1ub2RlX19zdGFyLS1maWxsZWQge1xuICAgICAgICBjb2xvcjogdmFyKC0taW9uLWNvbG9yLXdhcm5pbmcpO1xuICAgICAgfVxuXG4gICAgICAuYWR2ZW50dXJlLW5vZGVfX2JhZGdlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC00cHg7XG4gICAgICAgIHJpZ2h0OiAtNHB4O1xuICAgICAgICBmb250LXNpemU6IDAuNnJlbTtcbiAgICAgICAgcGFkZGluZzogMnB4IDVweDtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDaGVzc2ltYWxzQWR2ZW50dXJlQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBpMThuID0gaW5qZWN0KEkxOG5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9ncmVzc1NlcnZpY2UgPSBpbmplY3QoQ2hlc3NpbWFsc0FkdmVudHVyZVByb2dyZXNzU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdG9hc3QgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHByb2dyZXNzID0gdG9TaWduYWw8Q2hlc3NpbWFsc0FkdmVudHVyZVByb2dyZXNzIHwgdW5kZWZpbmVkPih0aGlzLnByb2dyZXNzU2VydmljZS53YXRjaFByb2dyZXNzKCksIHtcbiAgICBpbml0aWFsVmFsdWU6IHVuZGVmaW5lZCxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgc2VsZWN0ZWRBY3RJZCA9IHNpZ25hbDxzdHJpbmc+KCdhY3QxJyk7XG5cbiAgcmVhZG9ubHkgdG90YWxTdGFycyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvZ3Jlc3MoKT8udG90YWxTdGFycyA/PyAwKTtcblxuICByZWFkb25seSBhY3RWaWV3cyA9IGNvbXB1dGVkPEFkdmVudHVyZUFjdFZpZXdbXT4oKCkgPT4ge1xuICAgIGNvbnN0IHByb2cgPSB0aGlzLnByb2dyZXNzKCk7XG4gICAgY29uc3QgY29tcGxldGVkID0gcHJvZz8uY29tcGxldGVkTm9kZXMgPz8ge307XG4gICAgcmV0dXJuIENIRVNTSU1BTFNfQURWRU5UVVJFX0FDVFMubWFwKGFjdCA9PiB7XG4gICAgICBjb25zdCB1bmxvY2tlZCA9IGFkdmVudHVyZUFjdElzVW5sb2NrZWQoYWN0LmlkLCBjb21wbGV0ZWQpO1xuICAgICAgY29uc3Qgbm9kZXM6IEFkdmVudHVyZU5vZGVWaWV3W10gPSBhY3Qubm9kZXMubWFwKG5vZGUgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBjb21wbGV0ZWRbbm9kZS5pZF07XG4gICAgICAgIGxldCBzdGF0dXM6IENoZXNzaW1hbHNBZHZlbnR1cmVOb2RlU3RhdHVzO1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgc3RhdHVzID0gJ2NvbXBsZXRlZCc7XG4gICAgICAgIH0gZWxzZSBpZiAoIXVubG9ja2VkIHx8ICFhZHZlbnR1cmVOb2RlSXNBdmFpbGFibGUobm9kZS5pZCwgY29tcGxldGVkKSkge1xuICAgICAgICAgIHN0YXR1cyA9ICdsb2NrZWQnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN0YXR1cyA9ICdhdmFpbGFibGUnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IG5vZGUsIHN0YXR1cywgc3RhcnM6IHJlc3VsdD8uc3RhcnMgPz8gMCB9O1xuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhY3QsXG4gICAgICAgIHVubG9ja2VkLFxuICAgICAgICBub2RlcyxcbiAgICAgICAgY29tcGxldGVkQ291bnQ6IG5vZGVzLmZpbHRlcihuID0+IG4uc3RhdHVzID09PSAnY29tcGxldGVkJykubGVuZ3RoLFxuICAgICAgICB0b3RhbENvdW50OiBub2Rlcy5sZW5ndGgsXG4gICAgICB9O1xuICAgIH0pO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBpZiAoIXRoaXMuaTE4bi5oYXNOYW1lc3BhY2UoJ01pbmlHYW1lcycpKSB7XG4gICAgICB0aGlzLmkxOG4ucmVnaXN0ZXJDb250ZW50KCdNaW5pR2FtZXMnLCBNSU5JX0dBTUVTX0kxOE4pO1xuICAgIH1cbiAgfVxuXG4gIHQoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmkxOG4udChrZXksICdNaW5pR2FtZXMnKTtcbiAgfVxuXG4gIG5vZGVJY29uKHR5cGU6IENoZXNzaW1hbHNBZHZlbnR1cmVOb2RlWyd0eXBlJ10pOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnYmF0dGxlJzpcbiAgICAgICAgcmV0dXJuICfimpTvuI8nO1xuICAgICAgY2FzZSAnYm9zcyc6XG4gICAgICAgIHJldHVybiAn8J+SgCc7XG4gICAgICBjYXNlICdyZXN0JzpcbiAgICAgICAgcmV0dXJuICfwn4+V77iPJztcbiAgICAgIGNhc2UgJ215c3RlcnknOlxuICAgICAgICByZXR1cm4gJ+Kdkyc7XG4gICAgfVxuICB9XG5cbiAgb25Ob2RlVGFwKG5vZGVWaWV3OiBBZHZlbnR1cmVOb2RlVmlldyk6IHZvaWQge1xuICAgIGlmIChub2RlVmlldy5zdGF0dXMgPT09ICdsb2NrZWQnKSByZXR1cm47XG4gICAgaWYgKG5vZGVWaWV3Lm5vZGUudHlwZSA9PT0gJ3Jlc3QnKSB7XG4gICAgICB0aGlzLm9uUmVzdFRhcChub2RlVmlldyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChub2RlVmlldy5ub2RlLnR5cGUgPT09ICdteXN0ZXJ5Jykge1xuICAgICAgdGhpcy5vbk15c3RlcnlUYXAobm9kZVZpZXcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2b2lkIHRoaXMucm91dGVyLm5hdmlnYXRlKFtBRFZFTlRVUkVfUk9VVEVfQkFTRV0sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgIGFkdmVudHVyZU5vZGU6IG5vZGVWaWV3Lm5vZGUuaWQsXG4gICAgICAgIHByb2ZpbGVJZDogbm9kZVZpZXcubm9kZS5wcm9maWxlSWQsXG4gICAgICAgIGRpZmZpY3VsdHk6IG5vZGVWaWV3Lm5vZGUuZGlmZmljdWx0eSxcbiAgICAgICAgYm9hcmRTaXplOiBub2RlVmlldy5ub2RlLmJvYXJkU2l6ZSA/PyA2LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb25SZXN0VGFwKG5vZGVWaWV3OiBBZHZlbnR1cmVOb2RlVmlldyk6IHZvaWQge1xuICAgIGlmIChub2RlVmlldy5zdGF0dXMgPT09ICdjb21wbGV0ZWQnKSByZXR1cm47XG4gICAgdm9pZCB0aGlzLnByb2dyZXNzU2VydmljZS5yZWNvcmROb2RlQ29tcGxldGVkKG5vZGVWaWV3Lm5vZGUuaWQsIDEpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy50b2FzdC5zaG93KHsgbWVzc2FnZTogdGhpcy50KCdjaGVzc2ltYWxzQWR2ZW50dXJlUmVzdERvbmUnKSwgY29sb3I6ICdkYXJrJywgZHVyYXRpb246IDI1MDAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9uTXlzdGVyeVRhcChub2RlVmlldzogQWR2ZW50dXJlTm9kZVZpZXcpOiB2b2lkIHtcbiAgICBjb25zdCBhY3QgPSBDSEVTU0lNQUxTX0FEVkVOVFVSRV9BQ1RTLmZpbmQoYSA9PiBhLmlkID09PSBub2RlVmlldy5ub2RlLmFjdElkKTtcbiAgICBjb25zdCBiYXR0bGVOb2RlcyA9IGFjdD8ubm9kZXMuZmlsdGVyKG4gPT4gbi50eXBlID09PSAnYmF0dGxlJyAmJiBuLnByb2ZpbGVJZCkgPz8gW107XG4gICAgaWYgKCFiYXR0bGVOb2Rlcy5sZW5ndGgpIHJldHVybjtcbiAgICBjb25zdCBwaWNrID0gYmF0dGxlTm9kZXNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogYmF0dGxlTm9kZXMubGVuZ3RoKV07XG4gICAgdGhpcy50b2FzdC5zaG93KHsgbWVzc2FnZTogdGhpcy50KCdjaGVzc2ltYWxzQWR2ZW50dXJlTXlzdGVyeVJldmVhbCcpLCBjb2xvcjogJ2RhcmsnLCBkdXJhdGlvbjogMjAwMCB9KTtcbiAgICB2b2lkIHRoaXMucm91dGVyLm5hdmlnYXRlKFtBRFZFTlRVUkVfUk9VVEVfQkFTRV0sIHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgIGFkdmVudHVyZU5vZGU6IG5vZGVWaWV3Lm5vZGUuaWQsXG4gICAgICAgIHByb2ZpbGVJZDogcGljay5wcm9maWxlSWQsXG4gICAgICAgIGRpZmZpY3VsdHk6IHBpY2suZGlmZmljdWx0eSxcbiAgICAgICAgYm9hcmRTaXplOiBwaWNrLmJvYXJkU2l6ZSA/PyA2LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|