structra-ui 0.1.5 → 0.1.6
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/README.md +12 -52
- package/app/dialogs/app-dialog/app-dialog.component.d.ts +9 -4
- package/app/form-layout/validation-summary/validation-summary.component.d.ts +9 -15
- package/app/menus/drawer/drawer.component.d.ts +3 -2
- package/esm2022/app/dialogs/app-dialog/app-dialog.component.mjs +14 -8
- package/esm2022/app/form-layout/validation-summary/validation-summary.component.mjs +13 -62
- package/esm2022/app/menus/drawer/drawer.component.mjs +8 -6
- package/fesm2022/structra-ui.mjs +33 -73
- package/fesm2022/structra-ui.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
1
|
import { ApplicationRef, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, Input, Injector, Output, afterNextRender, booleanAttribute, inject, } from '@angular/core';
|
|
3
2
|
import * as i0 from "@angular/core";
|
|
4
3
|
/** Evento no host `app-form-group`: expandir grupo sem scroll próprio (navegação a partir do resumo). */
|
|
@@ -11,14 +10,6 @@ export class ValidationSummaryComponent {
|
|
|
11
10
|
this.cdr = inject(ChangeDetectorRef);
|
|
12
11
|
this.injector = inject(Injector);
|
|
13
12
|
this.hostRef = inject((ElementRef));
|
|
14
|
-
this.document = inject(DOCUMENT);
|
|
15
|
-
/**
|
|
16
|
-
* Com `pinned`, o host passa para `document.body` para o `z-index` competir com a shell (ex.: drawer
|
|
17
|
-
* da doc no iPhone). Antes de mover, guardamos o `form` mais próximo — `closest('form')` no body falharia.
|
|
18
|
-
*/
|
|
19
|
-
this.nearestForm = null;
|
|
20
|
-
this.pinnedPortalOriginalParent = null;
|
|
21
|
-
this.pinnedPortalOriginalNext = null;
|
|
22
13
|
/** `id` único para `aria-labelledby` quando há vários resumos na página. */
|
|
23
14
|
this.titleElementId = `validation-summary-title-${++ValidationSummaryComponent.nextTitleUid}`;
|
|
24
15
|
/** `id` da região da lista (acessibilidade do botão recolher / expandir). */
|
|
@@ -27,7 +18,12 @@ export class ValidationSummaryComponent {
|
|
|
27
18
|
this.messages = null;
|
|
28
19
|
/** Lista rica com `fieldId` opcional para navegação até o controle. */
|
|
29
20
|
this.items = null;
|
|
30
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Título do cabeçalho (`title="…"` no template).
|
|
23
|
+
* Não usar a propriedade `title` na classe: colide com `HTMLElement.title` no host e o
|
|
24
|
+
* browser pode desenhar tooltip nativo / comportamentos estranhos.
|
|
25
|
+
*/
|
|
26
|
+
this.summaryHeading = '';
|
|
31
27
|
this.visible = true;
|
|
32
28
|
/**
|
|
33
29
|
* `false` (padrão): fluxo em documento (ex.: no topo do formulário) — o consumidor pode fazer scroll até o painel.
|
|
@@ -77,7 +73,6 @@ export class ValidationSummaryComponent {
|
|
|
77
73
|
return parts.join(' ');
|
|
78
74
|
}
|
|
79
75
|
ngOnChanges(_changes) {
|
|
80
|
-
this.syncPinnedHostToBody();
|
|
81
76
|
const shown = this.isShown;
|
|
82
77
|
if (this.pinned && shown && !this.wasShown) {
|
|
83
78
|
this.pinnedOpen = false;
|
|
@@ -95,9 +90,6 @@ export class ValidationSummaryComponent {
|
|
|
95
90
|
}
|
|
96
91
|
this.wasShown = shown;
|
|
97
92
|
}
|
|
98
|
-
ngOnDestroy() {
|
|
99
|
-
this.detachPinnedHostFromBody();
|
|
100
|
-
}
|
|
101
93
|
get hostHidden() {
|
|
102
94
|
return this.isShown ? null : true;
|
|
103
95
|
}
|
|
@@ -248,7 +240,7 @@ export class ValidationSummaryComponent {
|
|
|
248
240
|
* Ordem do DOM (pais antes dos filhos) alinha a expansão de grupos aninhados.
|
|
249
241
|
*/
|
|
250
242
|
expandCollapsedFormGroupsInNearestForm() {
|
|
251
|
-
const form = this.
|
|
243
|
+
const form = this.hostRef.nativeElement.closest('form');
|
|
252
244
|
if (!(form instanceof HTMLFormElement)) {
|
|
253
245
|
return;
|
|
254
246
|
}
|
|
@@ -299,60 +291,19 @@ export class ValidationSummaryComponent {
|
|
|
299
291
|
const tab = el.getAttribute('tabindex');
|
|
300
292
|
return tab != null && tab !== '-1';
|
|
301
293
|
}
|
|
302
|
-
syncPinnedHostToBody() {
|
|
303
|
-
const host = this.hostRef.nativeElement;
|
|
304
|
-
const shouldPortal = this.pinned && this.isShown;
|
|
305
|
-
if (shouldPortal) {
|
|
306
|
-
if (host.parentElement === this.document.body) {
|
|
307
|
-
return;
|
|
308
|
-
}
|
|
309
|
-
this.nearestForm = host.closest('form');
|
|
310
|
-
this.pinnedPortalOriginalParent = host.parentElement;
|
|
311
|
-
this.pinnedPortalOriginalNext = host.nextSibling;
|
|
312
|
-
if (this.pinnedPortalOriginalParent) {
|
|
313
|
-
this.document.body.appendChild(host);
|
|
314
|
-
}
|
|
315
|
-
return;
|
|
316
|
-
}
|
|
317
|
-
this.detachPinnedHostFromBody();
|
|
318
|
-
}
|
|
319
|
-
detachPinnedHostFromBody() {
|
|
320
|
-
const host = this.hostRef.nativeElement;
|
|
321
|
-
if (host.parentElement !== this.document.body || !this.pinnedPortalOriginalParent) {
|
|
322
|
-
this.nearestForm = null;
|
|
323
|
-
this.pinnedPortalOriginalParent = null;
|
|
324
|
-
this.pinnedPortalOriginalNext = null;
|
|
325
|
-
return;
|
|
326
|
-
}
|
|
327
|
-
const parent = this.pinnedPortalOriginalParent;
|
|
328
|
-
const next = this.pinnedPortalOriginalNext;
|
|
329
|
-
try {
|
|
330
|
-
if (next?.parentNode === parent) {
|
|
331
|
-
parent.insertBefore(host, next);
|
|
332
|
-
}
|
|
333
|
-
else {
|
|
334
|
-
parent.appendChild(host);
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
catch {
|
|
338
|
-
parent.appendChild(host);
|
|
339
|
-
}
|
|
340
|
-
this.nearestForm = null;
|
|
341
|
-
this.pinnedPortalOriginalParent = null;
|
|
342
|
-
this.pinnedPortalOriginalNext = null;
|
|
343
|
-
}
|
|
344
294
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValidationSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
345
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ValidationSummaryComponent, isStandalone: true, selector: "app-validation-summary", inputs: { messages: "messages", items: "items",
|
|
295
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: ValidationSummaryComponent, isStandalone: true, selector: "app-validation-summary", inputs: { messages: "messages", items: "items", summaryHeading: ["title", "summaryHeading"], visible: ["visible", "visible", booleanAttribute], pinned: ["pinned", "pinned", booleanAttribute], variant: "variant", compact: ["compact", "compact", booleanAttribute], panelMaxHeight: "panelMaxHeight", scrollBehavior: "scrollBehavior", beforeItemActivate: "beforeItemActivate", showCloseButton: ["showCloseButton", "showCloseButton", booleanAttribute], showListCollapseToggle: ["showListCollapseToggle", "showListCollapseToggle", booleanAttribute], closeButtonLabel: "closeButtonLabel", fieldNavigateHint: "fieldNavigateHint" }, outputs: { panelClose: "panelClose" }, host: { properties: { "class": "this.hostClass", "attr.hidden": "this.hostHidden" } }, usesOnChanges: true, ngImport: i0, template: "@if (isShown) {\r\n<div class=\"validation-summary__panel\" role=\"region\"\r\n [attr.aria-labelledby]=\"summaryHeading.trim() ? titleElementId : null\"\r\n [attr.aria-label]=\"summaryHeading.trim() ? null : 'Resumo de valida\u00E7\u00E3o'\"\r\n [class.validation-summary__panel--pinned]=\"pinned\"\r\n [class.validation-summary__panel--pinned-open]=\"pinned && pinnedOpen\"\r\n [class.validation-summary__panel--list-collapsed]=\"!panelBodyExpanded\">\r\n <div class=\"validation-summary__head\">\r\n @if (showListCollapseToggle) {\r\n <button type=\"button\" class=\"validation-summary__collapse-toggle\" (click)=\"toggleListBody()\"\r\n [attr.aria-expanded]=\"panelBodyExpanded\" [attr.aria-controls]=\"listRegionId\"\r\n [attr.aria-label]=\"panelBodyExpanded ? 'Recolher lista de erros' : 'Expandir lista de erros'\">\r\n <i class=\"fa-solid\" aria-hidden=\"true\" [class.fa-chevron-up]=\"panelBodyExpanded\"\r\n [class.fa-chevron-down]=\"!panelBodyExpanded\"></i>\r\n </button>\r\n }\r\n @if (summaryHeading.trim()) {\r\n <h3 class=\"validation-summary__title\" [id]=\"titleElementId\">\r\n {{ summaryHeading }}\r\n </h3>\r\n }\r\n @if (showCloseButton) {\r\n <button type=\"button\" class=\"validation-summary__close\" (click)=\"onCloseClick()\">\r\n {{ closeButtonLabel }}\r\n </button>\r\n }\r\n </div>\r\n <div class=\"validation-summary__list-wrap\" [id]=\"listRegionId\"\r\n [class.validation-summary__list-wrap--scrollable]=\"!!panelMaxHeight && panelBodyExpanded\"\r\n [class.validation-summary__list-wrap--collapsed]=\"!panelBodyExpanded\"\r\n [style.max-height]=\"panelBodyExpanded ? (panelMaxHeight || null) : null\" [attr.title]=\"fieldNavigateHint\">\r\n <ul class=\"validation-summary__list\" role=\"list\">\r\n @for (row of resolvedItems; track itemTrackKey(row, $index)) {\r\n <li class=\"validation-summary__item\" role=\"listitem\" (click)=\"onSummaryLinkActivate($event, row)\">\r\n @if (row.fieldId) {\r\n <button type=\"button\" class=\"validation-summary__link\" [attr.title]=\"fieldNavigateHint\">\r\n {{ row.message }}\r\n </button>\r\n } @else {\r\n <span class=\"validation-summary__text\">{{ row.message }}</span>\r\n }\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n</div>\r\n}", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;flex:0 0 auto;align-self:stretch}:host.validation-summary--pinned-host{position:static;display:block;box-sizing:border-box;flex:0 0 auto!important;width:100%;max-width:100%;height:0!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible;pointer-events:none}.validation-summary__panel.validation-summary__panel--pinned{position:fixed;z-index:var(--app-z-validation-summary-pinned, 1400);top:max(.65rem,env(safe-area-inset-top,0px));left:1rem;right:1rem;width:auto;max-width:min(100%,52rem);margin-left:auto;margin-right:auto;box-sizing:border-box;pointer-events:auto;box-shadow:0 4px 6px -1px #00000014,0 10px 24px -6px #0000001f;transform:none;opacity:0;transition:opacity .2s ease-out}.validation-summary__panel.validation-summary__panel--pinned.validation-summary__panel--pinned-open{opacity:1}.validation-summary__panel{width:100%;border-radius:10px;padding:.85rem 1rem;box-sizing:border-box;border:1px solid transparent}.validation-summary__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.45rem .75rem;margin-bottom:.55rem}.validation-summary__panel--list-collapsed .validation-summary__head{margin-bottom:0}.validation-summary__collapse-toggle{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin:0;padding:0;border:1px solid rgba(183,28,28,.35);border-radius:8px;background:#ffffffbf;color:var(--ui-validation-summary-title-error, #b71c1c);font-size:.8rem;line-height:1;cursor:pointer;user-select:none;-webkit-user-select:none;transition:background .15s ease,border-color .15s ease}.validation-summary__collapse-toggle:hover{background:#fff;border-color:#b71c1c8c}.validation-summary__collapse-toggle:focus-visible{outline:2px solid var(--app-color-validation-focus-ring, rgba(185, 28, 28, .45));outline-offset:2px}.validation-summary__title{margin:0;flex:1 1 auto;min-width:0;font-size:1rem;font-weight:600;line-height:1.35;user-select:none;-webkit-user-select:none}.validation-summary__close{flex-shrink:0;margin:0 0 0 auto;padding:.3rem .7rem;border:1px solid rgba(183,28,28,.35);border-radius:8px;background:#ffffffbf;color:var(--ui-validation-summary-title-error, #b71c1c);font-size:.85rem;font-weight:500;font-family:inherit;line-height:1.3;cursor:pointer;user-select:none;-webkit-user-select:none;transition:background .15s ease,border-color .15s ease}.validation-summary__close:hover{background:#fff;border-color:#b71c1c8c}.validation-summary__close:focus-visible{outline:2px solid var(--app-color-validation-focus-ring, rgba(185, 28, 28, .45));outline-offset:2px}.validation-summary__list-wrap{min-width:0;user-select:none;-webkit-user-select:none;overflow:hidden;transition:max-height .28s ease,opacity .22s ease,margin .2s ease}.validation-summary__list-wrap--collapsed{max-height:0!important;opacity:0;margin:0;padding:0;pointer-events:none}.validation-summary__list-wrap--scrollable{overflow-y:auto;overflow-x:hidden;padding-right:.15rem;scrollbar-gutter:stable}.validation-summary__list{margin:0;padding:0;list-style:none}.validation-summary__item{display:flex;align-items:flex-start;gap:.4rem;margin:.2rem 0;padding:0;line-height:1.45;color:var(--ui-validation-summary-text, #1a1a1a);user-select:none;-webkit-user-select:none}.validation-summary__item:before{content:\"\\2022\";flex-shrink:0;line-height:inherit;color:var(--ui-validation-summary-text, #1a1a1a)}.validation-summary__text{display:inline;font:inherit;user-select:none;-webkit-user-select:none}.validation-summary__link{flex:1;min-width:0;display:block;margin:0;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:left;text-decoration:underline;text-underline-offset:.12em;cursor:pointer;user-select:none;-webkit-user-select:none}.validation-summary__link:hover{color:var(--ui-validation-summary-link-hover, #0d47a1)}.validation-summary__link:focus-visible{outline:2px solid var(--app-color-validation-focus-ring, rgba(185, 28, 28, .45));outline-offset:2px;border-radius:4px}:host.validation-summary--error .validation-summary__link:hover{color:var(--app-color-error, #b91c1c)}:host.validation-summary--error .validation-summary__panel{background:var(--ui-validation-summary-bg-error, #ffebee);border-color:var(--ui-validation-summary-border-error, #ffcdd2)}:host.validation-summary--error .validation-summary__title{color:var(--ui-validation-summary-title-error, #b71c1c)}:host.validation-summary--warning .validation-summary__panel{background:var(--ui-validation-summary-bg-warning, #fff8e1);border-color:var(--ui-validation-summary-border-warning, #ffe082)}:host.validation-summary--warning .validation-summary__title{color:var(--ui-validation-summary-title-warning, #e65100)}:host.validation-summary--warning .validation-summary__close{color:var(--ui-validation-summary-title-warning, #e65100);border-color:#e6510059}:host.validation-summary--warning .validation-summary__collapse-toggle{color:var(--ui-validation-summary-title-warning, #e65100);border-color:#e6510059}:host.validation-summary--warning .validation-summary__collapse-toggle:hover{border-color:#e651008c}:host.validation-summary--info .validation-summary__panel{background:var(--ui-validation-summary-bg-info, #e3f2fd);border-color:var(--ui-validation-summary-border-info, #90caf9)}:host.validation-summary--info .validation-summary__title{color:var(--ui-validation-summary-title-info, #0d47a1)}:host.validation-summary--info .validation-summary__close{color:var(--ui-validation-summary-title-info, #0d47a1);border-color:#0d47a159}:host.validation-summary--info .validation-summary__collapse-toggle{color:var(--ui-validation-summary-title-info, #0d47a1);border-color:#0d47a159}:host.validation-summary--info .validation-summary__collapse-toggle:hover{border-color:#0d47a18c}:host.validation-summary--compact .validation-summary__panel{padding:.55rem .7rem}:host.validation-summary--compact .validation-summary__head{margin-bottom:.35rem}:host.validation-summary--compact .validation-summary__title{font-size:.92rem}:host.validation-summary--compact .validation-summary__list{padding-left:0}:host.validation-summary--compact .validation-summary__item{font-size:.88rem;margin:.12rem 0}:host.validation-summary--compact .validation-summary__collapse-toggle{width:1.75rem;height:1.75rem;font-size:.72rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
346
296
|
}
|
|
347
297
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValidationSummaryComponent, decorators: [{
|
|
348
298
|
type: Component,
|
|
349
|
-
args: [{ selector: 'app-validation-summary', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isShown) {\r\n<div class=\"validation-summary__panel\" role=\"region\"
|
|
299
|
+
args: [{ selector: 'app-validation-summary', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (isShown) {\r\n<div class=\"validation-summary__panel\" role=\"region\"\r\n [attr.aria-labelledby]=\"summaryHeading.trim() ? titleElementId : null\"\r\n [attr.aria-label]=\"summaryHeading.trim() ? null : 'Resumo de valida\u00E7\u00E3o'\"\r\n [class.validation-summary__panel--pinned]=\"pinned\"\r\n [class.validation-summary__panel--pinned-open]=\"pinned && pinnedOpen\"\r\n [class.validation-summary__panel--list-collapsed]=\"!panelBodyExpanded\">\r\n <div class=\"validation-summary__head\">\r\n @if (showListCollapseToggle) {\r\n <button type=\"button\" class=\"validation-summary__collapse-toggle\" (click)=\"toggleListBody()\"\r\n [attr.aria-expanded]=\"panelBodyExpanded\" [attr.aria-controls]=\"listRegionId\"\r\n [attr.aria-label]=\"panelBodyExpanded ? 'Recolher lista de erros' : 'Expandir lista de erros'\">\r\n <i class=\"fa-solid\" aria-hidden=\"true\" [class.fa-chevron-up]=\"panelBodyExpanded\"\r\n [class.fa-chevron-down]=\"!panelBodyExpanded\"></i>\r\n </button>\r\n }\r\n @if (summaryHeading.trim()) {\r\n <h3 class=\"validation-summary__title\" [id]=\"titleElementId\">\r\n {{ summaryHeading }}\r\n </h3>\r\n }\r\n @if (showCloseButton) {\r\n <button type=\"button\" class=\"validation-summary__close\" (click)=\"onCloseClick()\">\r\n {{ closeButtonLabel }}\r\n </button>\r\n }\r\n </div>\r\n <div class=\"validation-summary__list-wrap\" [id]=\"listRegionId\"\r\n [class.validation-summary__list-wrap--scrollable]=\"!!panelMaxHeight && panelBodyExpanded\"\r\n [class.validation-summary__list-wrap--collapsed]=\"!panelBodyExpanded\"\r\n [style.max-height]=\"panelBodyExpanded ? (panelMaxHeight || null) : null\" [attr.title]=\"fieldNavigateHint\">\r\n <ul class=\"validation-summary__list\" role=\"list\">\r\n @for (row of resolvedItems; track itemTrackKey(row, $index)) {\r\n <li class=\"validation-summary__item\" role=\"listitem\" (click)=\"onSummaryLinkActivate($event, row)\">\r\n @if (row.fieldId) {\r\n <button type=\"button\" class=\"validation-summary__link\" [attr.title]=\"fieldNavigateHint\">\r\n {{ row.message }}\r\n </button>\r\n } @else {\r\n <span class=\"validation-summary__text\">{{ row.message }}</span>\r\n }\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n</div>\r\n}", styles: ["@charset \"UTF-8\";:host{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;flex:0 0 auto;align-self:stretch}:host.validation-summary--pinned-host{position:static;display:block;box-sizing:border-box;flex:0 0 auto!important;width:100%;max-width:100%;height:0!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible;pointer-events:none}.validation-summary__panel.validation-summary__panel--pinned{position:fixed;z-index:var(--app-z-validation-summary-pinned, 1400);top:max(.65rem,env(safe-area-inset-top,0px));left:1rem;right:1rem;width:auto;max-width:min(100%,52rem);margin-left:auto;margin-right:auto;box-sizing:border-box;pointer-events:auto;box-shadow:0 4px 6px -1px #00000014,0 10px 24px -6px #0000001f;transform:none;opacity:0;transition:opacity .2s ease-out}.validation-summary__panel.validation-summary__panel--pinned.validation-summary__panel--pinned-open{opacity:1}.validation-summary__panel{width:100%;border-radius:10px;padding:.85rem 1rem;box-sizing:border-box;border:1px solid transparent}.validation-summary__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.45rem .75rem;margin-bottom:.55rem}.validation-summary__panel--list-collapsed .validation-summary__head{margin-bottom:0}.validation-summary__collapse-toggle{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin:0;padding:0;border:1px solid rgba(183,28,28,.35);border-radius:8px;background:#ffffffbf;color:var(--ui-validation-summary-title-error, #b71c1c);font-size:.8rem;line-height:1;cursor:pointer;user-select:none;-webkit-user-select:none;transition:background .15s ease,border-color .15s ease}.validation-summary__collapse-toggle:hover{background:#fff;border-color:#b71c1c8c}.validation-summary__collapse-toggle:focus-visible{outline:2px solid var(--app-color-validation-focus-ring, rgba(185, 28, 28, .45));outline-offset:2px}.validation-summary__title{margin:0;flex:1 1 auto;min-width:0;font-size:1rem;font-weight:600;line-height:1.35;user-select:none;-webkit-user-select:none}.validation-summary__close{flex-shrink:0;margin:0 0 0 auto;padding:.3rem .7rem;border:1px solid rgba(183,28,28,.35);border-radius:8px;background:#ffffffbf;color:var(--ui-validation-summary-title-error, #b71c1c);font-size:.85rem;font-weight:500;font-family:inherit;line-height:1.3;cursor:pointer;user-select:none;-webkit-user-select:none;transition:background .15s ease,border-color .15s ease}.validation-summary__close:hover{background:#fff;border-color:#b71c1c8c}.validation-summary__close:focus-visible{outline:2px solid var(--app-color-validation-focus-ring, rgba(185, 28, 28, .45));outline-offset:2px}.validation-summary__list-wrap{min-width:0;user-select:none;-webkit-user-select:none;overflow:hidden;transition:max-height .28s ease,opacity .22s ease,margin .2s ease}.validation-summary__list-wrap--collapsed{max-height:0!important;opacity:0;margin:0;padding:0;pointer-events:none}.validation-summary__list-wrap--scrollable{overflow-y:auto;overflow-x:hidden;padding-right:.15rem;scrollbar-gutter:stable}.validation-summary__list{margin:0;padding:0;list-style:none}.validation-summary__item{display:flex;align-items:flex-start;gap:.4rem;margin:.2rem 0;padding:0;line-height:1.45;color:var(--ui-validation-summary-text, #1a1a1a);user-select:none;-webkit-user-select:none}.validation-summary__item:before{content:\"\\2022\";flex-shrink:0;line-height:inherit;color:var(--ui-validation-summary-text, #1a1a1a)}.validation-summary__text{display:inline;font:inherit;user-select:none;-webkit-user-select:none}.validation-summary__link{flex:1;min-width:0;display:block;margin:0;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:left;text-decoration:underline;text-underline-offset:.12em;cursor:pointer;user-select:none;-webkit-user-select:none}.validation-summary__link:hover{color:var(--ui-validation-summary-link-hover, #0d47a1)}.validation-summary__link:focus-visible{outline:2px solid var(--app-color-validation-focus-ring, rgba(185, 28, 28, .45));outline-offset:2px;border-radius:4px}:host.validation-summary--error .validation-summary__link:hover{color:var(--app-color-error, #b91c1c)}:host.validation-summary--error .validation-summary__panel{background:var(--ui-validation-summary-bg-error, #ffebee);border-color:var(--ui-validation-summary-border-error, #ffcdd2)}:host.validation-summary--error .validation-summary__title{color:var(--ui-validation-summary-title-error, #b71c1c)}:host.validation-summary--warning .validation-summary__panel{background:var(--ui-validation-summary-bg-warning, #fff8e1);border-color:var(--ui-validation-summary-border-warning, #ffe082)}:host.validation-summary--warning .validation-summary__title{color:var(--ui-validation-summary-title-warning, #e65100)}:host.validation-summary--warning .validation-summary__close{color:var(--ui-validation-summary-title-warning, #e65100);border-color:#e6510059}:host.validation-summary--warning .validation-summary__collapse-toggle{color:var(--ui-validation-summary-title-warning, #e65100);border-color:#e6510059}:host.validation-summary--warning .validation-summary__collapse-toggle:hover{border-color:#e651008c}:host.validation-summary--info .validation-summary__panel{background:var(--ui-validation-summary-bg-info, #e3f2fd);border-color:var(--ui-validation-summary-border-info, #90caf9)}:host.validation-summary--info .validation-summary__title{color:var(--ui-validation-summary-title-info, #0d47a1)}:host.validation-summary--info .validation-summary__close{color:var(--ui-validation-summary-title-info, #0d47a1);border-color:#0d47a159}:host.validation-summary--info .validation-summary__collapse-toggle{color:var(--ui-validation-summary-title-info, #0d47a1);border-color:#0d47a159}:host.validation-summary--info .validation-summary__collapse-toggle:hover{border-color:#0d47a18c}:host.validation-summary--compact .validation-summary__panel{padding:.55rem .7rem}:host.validation-summary--compact .validation-summary__head{margin-bottom:.35rem}:host.validation-summary--compact .validation-summary__title{font-size:.92rem}:host.validation-summary--compact .validation-summary__list{padding-left:0}:host.validation-summary--compact .validation-summary__item{font-size:.88rem;margin:.12rem 0}:host.validation-summary--compact .validation-summary__collapse-toggle{width:1.75rem;height:1.75rem;font-size:.72rem}\n"] }]
|
|
350
300
|
}], propDecorators: { messages: [{
|
|
351
301
|
type: Input
|
|
352
302
|
}], items: [{
|
|
353
303
|
type: Input
|
|
354
|
-
}],
|
|
355
|
-
type: Input
|
|
304
|
+
}], summaryHeading: [{
|
|
305
|
+
type: Input,
|
|
306
|
+
args: ['title']
|
|
356
307
|
}], visible: [{
|
|
357
308
|
type: Input,
|
|
358
309
|
args: [{ transform: booleanAttribute }]
|
|
@@ -389,4 +340,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
389
340
|
type: HostBinding,
|
|
390
341
|
args: ['attr.hidden']
|
|
391
342
|
}] } });
|
|
392
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZm9ybS1sYXlvdXQvdmFsaWRhdGlvbi1zdW1tYXJ5L3ZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2Zvcm0tbGF5b3V0L3ZhbGlkYXRpb24tc3VtbWFyeS92YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxjQUFjLEVBQ2QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUNMLFFBQVEsRUFHUixNQUFNLEVBRU4sZUFBZSxFQUNmLGdCQUFnQixFQUNoQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7O0FBTXZCLHlHQUF5RztBQUN6RyxNQUFNLDRCQUE0QixHQUFHLG1CQUFtQixDQUFDO0FBU3pELE1BQU0sT0FBTywwQkFBMEI7SUFQdkM7UUFXRSxvSUFBb0k7UUFDbkgsK0JBQTBCLEdBQUcsRUFBRSxDQUFDO1FBRWhDLFdBQU0sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEMsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO1FBQzFDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFN0M7OztXQUdHO1FBQ0ssZ0JBQVcsR0FBMkIsSUFBSSxDQUFDO1FBQzNDLCtCQUEwQixHQUF1QixJQUFJ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RE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgSW5qZWN0b3IsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtcbiAgVmFsaWRhdGlvblN1bW1hcnlJdGVtLFxuICBWYWxpZGF0aW9uU3VtbWFyeVZhcmlhbnQsXG59IGZyb20gJy4uL19tb2RlbHMvdmFsaWRhdGlvbi1zdW1tYXJ5Lm1vZGVsJztcblxuLyoqIEV2ZW50byBubyBob3N0IGBhcHAtZm9ybS1ncm91cGA6IGV4cGFuZGlyIGdydXBvIHNlbSBzY3JvbGwgcHLDs3ByaW8gKG5hdmVnYcOnw6NvIGEgcGFydGlyIGRvIHJlc3VtbykuICovXG5jb25zdCBVSV9SRVFVRVNUX0VYUEFORF9GT1JNX0dST1VQID0gJ3VpLXJlcXVlc3QtZXhwYW5kJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXZhbGlkYXRpb24tc3VtbWFyeScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHRlbXBsYXRlVXJsOiAnLi92YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXRpYyBuZXh0VGl0bGVVaWQgPSAwO1xuICBwcml2YXRlIHN0YXRpYyBuZXh0TGlzdFJlZ2lvblVpZCA9IDA7XG5cbiAgLyoqIFRyb2NhIGRlIGFiYSAoYGJlZm9yZUl0ZW1BY3RpdmF0ZWApICsgYHF1ZXVlTWljcm90YXNrYCBubyBgYXBwLWZvcm0tdGFic2Ag4oCUIG8gYWx2byBwb2RlIGZpY2FyIGVtIGBbaGlkZGVuXWAgYXTDqSBvIHByw7N4aW1vIENELiAqL1xuICBwcml2YXRlIHJlYWRvbmx5IG5hdmlnYXRlVG9GaWVsZE1heEF0dGVtcHRzID0gMjg7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhcHBSZWYgPSBpbmplY3QoQXBwbGljYXRpb25SZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IGhvc3RSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAvKipcbiAgICogQ29tIGBwaW5uZWRgLCBvIGhvc3QgcGFzc2EgcGFyYSBgZG9jdW1lbnQuYm9keWAgcGFyYSBvIGB6LWluZGV4YCBjb21wZXRpciBjb20gYSBzaGVsbCAoZXguOiBkcmF3ZXJcbiAgICogZGEgZG9jIG5vIGlQaG9uZSkuIEFudGVzIGRlIG1vdmVyLCBndWFyZGFtb3MgbyBgZm9ybWAgbWFpcyBwcsOzeGltbyDigJQgYGNsb3Nlc3QoJ2Zvcm0nKWAgbm8gYm9keSBmYWxoYXJpYS5cbiAgICovXG4gIHByaXZhdGUgbmVhcmVzdEZvcm06IEhUTUxGb3JtRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHBpbm5lZFBvcnRhbE9yaWdpbmFsUGFyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHBpbm5lZFBvcnRhbE9yaWdpbmFsTmV4dDogQ2hpbGROb2RlIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIGBpZGAgw7puaWNvIHBhcmEgYGFyaWEtbGFiZWxsZWRieWAgcXVhbmRvIGjDoSB2w6FyaW9zIHJlc3Vtb3MgbmEgcMOhZ2luYS4gKi9cbiAgcmVhZG9ubHkgdGl0bGVFbGVtZW50SWQgPSBgdmFsaWRhdGlvbi1zdW1tYXJ5LXRpdGxlLSR7KytWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudC5uZXh0VGl0bGVVaWR9YDtcblxuICAvKiogYGlkYCBkYSByZWdpw6NvIGRhIGxpc3RhIChhY2Vzc2liaWxpZGFkZSBkbyBib3TDo28gcmVjb2xoZXIgLyBleHBhbmRpcikuICovXG4gIHJlYWRvbmx5IGxpc3RSZWdpb25JZCA9IGB2YWxpZGF0aW9uLXN1bW1hcnktbGlzdC0keysrVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQubmV4dExpc3RSZWdpb25VaWR9YDtcblxuICAvKiogTGlzdGEgc2ltcGxlcyAocmV0cm9jb21wYXTDrXZlbCkuIElnbm9yYWRhIHNlIHtAbGluayBpdGVtc30gdGl2ZXIgZW50cmFkYXMuICovXG4gIEBJbnB1dCgpIG1lc3NhZ2VzOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBMaXN0YSByaWNhIGNvbSBgZmllbGRJZGAgb3BjaW9uYWwgcGFyYSBuYXZlZ2HDp8OjbyBhdMOpIG8gY29udHJvbGUuICovXG4gIEBJbnB1dCgpIGl0ZW1zOiBWYWxpZGF0aW9uU3VtbWFyeUl0ZW1bXSB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpIHRpdGxlID0gJyc7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHZpc2libGUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBgZmFsc2VgIChwYWRyw6NvKTogZmx1eG8gZW0gZG9jdW1lbnRvIChleC46IG5vIHRvcG8gZG8gZm9ybXVsw6FyaW8pIOKAlCBvIGNvbnN1bWlkb3IgcG9kZSBmYXplciBzY3JvbGwgYXTDqSBvIHBhaW5lbC5cbiAgICogYHRydWVgOiBwYWluZWwgYHBvc2l0aW9uOiBmaXhlZGAgbm8gdG9wbyBkbyB2aWV3cG9ydCwgY29tIGZhZGUtaW4gKipzZW0qKiByZXNlcnZhciBlc3Bhw6dvIG5vIGZvcm11bMOhcmlvXG4gICAqIG5lbSBhbHRlcmFyIG8gc2Nyb2xsIGRhIHDDoWdpbmEgKMO6dGlsIGVtIGZvcm11bMOhcmlvcyBtdWl0byBsb25nb3MpLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHBpbm5lZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHZhcmlhbnQ6IFZhbGlkYXRpb25TdW1tYXJ5VmFyaWFudCA9ICdlcnJvcic7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNvbXBhY3QgPSBmYWxzZTtcblxuICAvKipcbiAgICogQWx0dXJhIG3DoXhpbWEgZG8gcGFpbmVsIGRhIGxpc3RhIChleC46IGAxMnJlbWAsIGBtaW4oNDB2aCwgMTRyZW0pYCkuXG4gICAqIFF1YW5kbyBkZWZpbmlkbywgYSBsaXN0YSBvYnTDqW0gc2Nyb2xsIHZlcnRpY2FsIGludGVybm8uXG4gICAqL1xuICBASW5wdXQoKSBwYW5lbE1heEhlaWdodDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIENvbXBvcnRhbWVudG8gZGUgc2Nyb2xsIGFvIGNlbnRyYXIgbyBhbHZvIG5hIHRlbGEuICovXG4gIEBJbnB1dCgpIHNjcm9sbEJlaGF2aW9yOiBTY3JvbGxCZWhhdmlvciA9ICdzbW9vdGgnO1xuXG4gIC8qKlxuICAgKiBDaGFtYWRvIGFudGVzIGRlIGxvY2FsaXphciBvIGVsZW1lbnRvIHBvciBgZmllbGRJZGAgKGV4LjogYXRpdmFyIGEgYWJhIG9uZGUgZXN0w6EgbyBjYW1wbykuXG4gICAqIE1hbnTDqW0gbyBjb250cmF0byBkbyByZXN1bW8gY29tbyBmb250ZSDDum5pY2EgZGUgc2Nyb2xsL2ZvY28gZW0gYG5hdmlnYXRlVG9GaWVsZElkYC5cbiAgICovXG4gIEBJbnB1dCgpIGJlZm9yZUl0ZW1BY3RpdmF0ZT86IChpdGVtOiBWYWxpZGF0aW9uU3VtbWFyeUl0ZW0pID0+IHZvaWQ7XG5cbiAgLyoqIE1vc3RyYSBib3TDo28gcXVlIGFwZW5hcyBmZWNoYSBvIHBhaW5lbCAobsOjbyBhbHRlcmEgdmFsaWRhw6fDo28gbmVtIG8gZm9ybXVsw6FyaW8pLiAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0Nsb3NlQnV0dG9uID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIE1vc3RyYSBvIGJvdMOjbyBjb20gc2V0YXMgKHJlY29saGVyIC8gZXhwYW5kaXIpIGFvIGxhZG8gZG8gdMOtdHVsbyBwYXJhIGVzY29uZGVyIHPDsyBhIGxpc3RhXG4gICAqIGUgcG91cGFyIGVzcGHDp28gdmVydGljYWwgc2VtIGZlY2hhciBvIHBhaW5lbC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93TGlzdENvbGxhcHNlVG9nZ2xlID0gdHJ1ZTtcblxuICBASW5wdXQoKSBjbG9zZUJ1dHRvbkxhYmVsID0gJ0ZlY2hhcic7XG5cbiAgLyoqIFRleHRvIGRhIGRpY2EgbmF0aXZhIChgdGl0bGVgKSBuYXMgbGluaGFzIGNvbSBkZXN0aW5vIGFvIGNhbXBvLiAqL1xuICBASW5wdXQoKSBmaWVsZE5hdmlnYXRlSGludCA9ICdDbGlxdWUgcGFyYSBpciBhbyBjYW1wby4nO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBwYW5lbENsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKiBDb20gYHBpbm5lZGA6IGJyZXZlIGZhZGUtaW4gYXDDs3MgbyBwYWluZWwgcGFzc2FyIGEgdmlzw612ZWwgKHNlbSBkZXNsb2NhciBvIGxheW91dCkuICovXG4gIHBpbm5lZE9wZW4gPSBmYWxzZTtcblxuICAvKiogYHRydWVgOiBsaXN0YSBkZSBlcnJvcyB2aXPDrXZlbDsgYGZhbHNlYDogc8OzIGNhYmXDp2FsaG8gKyBib3TDtWVzIChtZW5vcyBhbHR1cmEpLiAqL1xuICBwYW5lbEJvZHlFeHBhbmRlZCA9IHRydWU7XG5cbiAgcHJpdmF0ZSB3YXNTaG93biA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHMgPSBbXG4gICAgICAndmFsaWRhdGlvbi1zdW1tYXJ5JyxcbiAgICAgIGB2YWxpZGF0aW9uLXN1bW1hcnktLSR7dGhpcy52YXJpYW50fWAsXG4gICAgXTtcbiAgICBpZiAodGhpcy5jb21wYWN0KSB7XG4gICAgICBwYXJ0cy5wdXNoKCd2YWxpZGF0aW9uLXN1bW1hcnktLWNvbXBhY3QnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucGlubmVkICYmIHRoaXMuaXNTaG93bikge1xuICAgICAgcGFydHMucHVzaCgndmFsaWRhdGlvbi1zdW1tYXJ5LS1waW5uZWQtaG9zdCcpO1xuICAgIH1cbiAgICByZXR1cm4gcGFydHMuam9pbignICcpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNQaW5uZWRIb3N0VG9Cb2R5KCk7XG4gICAgY29uc3Qgc2hvd24gPSB0aGlzLmlzU2hvd247XG4gICAgaWYgKHRoaXMucGlubmVkICYmIHNob3duICYmICF0aGlzLndhc1Nob3duKSB7XG4gICAgICB0aGlzLnBpbm5lZE9wZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnBpbm5lZE9wZW4gPSB0cnVlO1xuICAgICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSBpZiAoIXNob3duKSB7XG4gICAgICB0aGlzLnBpbm5lZE9wZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMucGFuZWxCb2R5RXhwYW5kZWQgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLndhc1Nob3duID0gc2hvd247XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRldGFjaFBpbm5lZEhvc3RGcm9tQm9keSgpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmhpZGRlbicpXG4gIGdldCBob3N0SGlkZGVuKCk6IHRydWUgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5pc1Nob3duID8gbnVsbCA6IHRydWU7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRJdGVtcygpOiBWYWxpZGF0aW9uU3VtbWFyeUl0ZW1bXSB7XG4gICAgY29uc3QgZnJvbUl0ZW1zID0gKHRoaXMuaXRlbXMgPz8gW10pLmZpbHRlcihcbiAgICAgIChpKSA9PiBpICYmIHR5cGVvZiBpLm1lc3NhZ2UgPT09ICdzdHJpbmcnICYmIGkubWVzc2FnZS50cmltKCkubGVuZ3RoID4gMCxcbiAgICApO1xuICAgIGlmIChmcm9tSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGZyb21JdGVtcy5tYXAoKGkpID0+ICh7XG4gICAgICAgIG1lc3NhZ2U6IGkubWVzc2FnZS50cmltKCksXG4gICAgICAgIGZpZWxkSWQ6IGkuZmllbGRJZD8udHJpbSgpIHx8IHVuZGVmaW5lZCxcbiAgICAgIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuICh0aGlzLm1lc3NhZ2VzID8/IFtdKVxuICAgICAgLmZpbHRlcigobSkgPT4gdHlwZW9mIG0gPT09ICdzdHJpbmcnICYmIG0udHJpbSgpLmxlbmd0aCA+IDApXG4gICAgICAubWFwKChtZXNzYWdlKSA9PiAoeyBtZXNzYWdlOiBtZXNzYWdlLnRyaW0oKSB9KSk7XG4gIH1cblxuICBnZXQgaXNTaG93bigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlICYmIHRoaXMucmVzb2x2ZWRJdGVtcy5sZW5ndGggPiAwO1xuICB9XG5cbiAgb25DbG9zZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMucGFuZWxDbG9zZS5lbWl0KCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICB0b2dnbGVMaXN0Qm9keSgpOiB2b2lkIHtcbiAgICB0aGlzLnBhbmVsQm9keUV4cGFuZGVkID0gIXRoaXMucGFuZWxCb2R5RXhwYW5kZWQ7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhdmUgZXN0w6F2ZWwgcGFyYSBgQGZvcmAg4oCUIGB0cmFjayAkaW5kZXhgIHJldXRpbGl6YSBtYWwgbsOzcyBxdWFuZG8gYSBsaXN0YSBtdWRhIGFvIHZpdm9cbiAgICogZSBvIGdldHRlciBgcmVzb2x2ZWRJdGVtc2AgZGV2b2x2ZSBub3ZhcyByZWZlcsOqbmNpYXMgYSBjYWRhIENELlxuICAgKi9cbiAgaXRlbVRyYWNrS2V5KHJvdzogVmFsaWRhdGlvblN1bW1hcnlJdGVtLCBpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBmaWQgPSByb3cuZmllbGRJZD8udHJpbSgpO1xuICAgIGlmIChmaWQpIHtcbiAgICAgIHJldHVybiBmaWQ7XG4gICAgfVxuICAgIHJldHVybiBgbXNnLSR7aW5kZXh9LSR7cm93Lm1lc3NhZ2V9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlxdWUgbmEgbGluaGEgY29tIGRlc3Rpbm86IHByaW1laXJvIGFsaW5oYSBhIGxpbmhhIG5vIGBsaXN0LXdyYXBgIGNvbSBzY3JvbGxcbiAgICogKGl0ZW5zIHBhcmNpYWxtZW50ZSB2aXPDrXZlaXMgcGFzc2FtIGEgZmljYXIgdG90YWxtZW50ZSB2aXPDrXZlaXMpLCBkZXBvaXMgbmF2ZWdhLlxuICAgKi9cbiAgb25TdW1tYXJ5TGlua0FjdGl2YXRlKGV2OiBFdmVudCwgaXRlbTogVmFsaWRhdGlvblN1bW1hcnlJdGVtKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSBldi5jdXJyZW50VGFyZ2V0IGFzIEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICBpZiAoZWwpIHtcbiAgICAgIGVsLnNjcm9sbEludG9WaWV3KHtcbiAgICAgICAgYmxvY2s6ICduZWFyZXN0JyxcbiAgICAgICAgaW5saW5lOiAnbmVhcmVzdCcsXG4gICAgICAgIGJlaGF2aW9yOiAnYXV0bycsXG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5vbkl0ZW1BY3RpdmF0ZShpdGVtKTtcbiAgfVxuXG4gIC8qKiBOYXZlZ2HDp8OjbyBhdMOpIG8gY29udHJvbGUgY29tIGBmaWVsZElkYCAoY2hhbWFkbyBhcMOzcyB7QGxpbmsgb25TdW1tYXJ5TGlua0FjdGl2YXRlfSkuICovXG4gIG9uSXRlbUFjdGl2YXRlKGl0ZW06IFZhbGlkYXRpb25TdW1tYXJ5SXRlbSk6IHZvaWQge1xuICAgIGNvbnN0IGlkID0gaXRlbS5maWVsZElkPy50cmltKCk7XG4gICAgaWYgKCFpZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYmVmb3JlSXRlbUFjdGl2YXRlPy4oaXRlbSk7XG5cbiAgICAvLyAxKSBgYWZ0ZXJOZXh0UmVuZGVyYDogYXDDs3MgbyBET00gcmVmbGV0aXIgKGV4LjogbXVkYW7Dp2EgZGUgYWJhIGVtIGBiZWZvcmVJdGVtQWN0aXZhdGVgKS5cbiAgICAvLyAyKSBgc2V0VGltZW91dCgwKWA6IGZvcmEgZG8gY2ljbG8gZGUgdmVyaWZpY2HDp8OjbyDigJQgZXZpdGEgTkcwMTAwIGFvIGV4cGFuZGlyIGBhcHAtZm9ybS1ncm91cGAuXG4gICAgYWZ0ZXJOZXh0UmVuZGVyKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubmF2aWdhdGVUb0ZpZWxkSWQoaWQpLCAwKTtcbiAgICAgIH0sXG4gICAgICB7IGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbmF2aWdhdGVUb0ZpZWxkSWQoaWQ6IHN0cmluZywgYXR0ZW1wdCA9IDApOiB2b2lkIHtcbiAgICBjb25zdCByZXNvbHZlZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgICBpZiAoIXJlc29sdmVkIHx8ICEocmVzb2x2ZWQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpIHtcbiAgICAgIGlmIChhdHRlbXB0IDwgdGhpcy5uYXZpZ2F0ZVRvRmllbGRNYXhBdHRlbXB0cykge1xuICAgICAgICAvKlxuICAgICAgICAgKiBDb20gYGRlc3Ryb3lPbkNvbGxhcHNlYCwgbyBjb250cm9sZSBuw6NvIGV4aXN0ZSBubyBET00gZW5xdWFudG8gbyBgYXBwLWZvcm0tZ3JvdXBgIGVzdMOhIGZlY2hhZG87XG4gICAgICAgICAqIGBleHBhbmRDb2xsYXBzZWRGb3JtR3JvdXBBbmNlc3RvcnNgIG51bmNhIGNvcnJlIHBvcnF1ZSBkZXBlbmRlIGRvIGVsZW1lbnRvIGrDoSBleGlzdGlyLlxuICAgICAgICAgKiBFeHBhbmRpbW9zIHRvZG9zIG9zIGdydXBvcyBjb2xhcHNhZG9zIG5vIGA8Zm9ybT5gIG1haXMgcHLDs3hpbW8gZSByZXBldGltb3MgYXDDs3MgdW0gQ0QuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmV4cGFuZENvbGxhcHNlZEZvcm1Hcm91cHNJbk5lYXJlc3RGb3JtKCk7XG4gICAgICAgIHRoaXMuYXBwUmVmLnRpY2soKTtcbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy5uYXZpZ2F0ZVRvRmllbGRJZChpZCwgYXR0ZW1wdCArIDEpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gU2VwYXJhZG9yZXMgaW5hdGl2b3MgKGBhcHAtZm9ybS10YWJgKSB1c2FtIGBbaGlkZGVuXWAg4oCUIGBnZXRFbGVtZW50QnlJZGAgZXhpc3RlIG1hcyBmb2NvIGZhbGhhXG4gICAgLy8gYXTDqSBvIHBhaW5lbCBlc3RhciB2aXPDrXZlbDsgcmUtdGVudGEgYXDDs3MgQ0QgKGV4LjogZGVtbyBBYmFzIGFvIHNhbHRhciBkZSBhYmEpLlxuICAgIGlmIChyZXNvbHZlZC5jbG9zZXN0KCdbaGlkZGVuXScpKSB7XG4gICAgICBpZiAoYXR0ZW1wdCA8IHRoaXMubmF2aWdhdGVUb0ZpZWxkTWF4QXR0ZW1wdHMpIHtcbiAgICAgICAgdGhpcy5hcHBSZWYudGljaygpO1xuICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB0aGlzLm5hdmlnYXRlVG9GaWVsZElkKGlkLCBhdHRlbXB0ICsgMSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbSBgYXBwLWZvcm0tZ3JvdXBgIGNvbGFwc2FkbyAoY29ycG8gYGRpc3BsYXk6IG5vbmVgKSwgYGdldEVsZW1lbnRCeUlkYCBhaW5kYSBlbmNvbnRyYSBvIGFsdm9cbiAgICAgKiBtYXMgbyBmb2NvIGZhbGhhIGF0w6kgbyBwcsOzeGltbyBDRCDigJQgc2VtIHJlaW50ZW50byBwYXJlY2UgcXVlIMOpIHByZWNpc28gdW0gc2VndW5kbyBjbGlxdWUgbm8gcmVzdW1vLlxuICAgICAqL1xuICAgIGlmICh0aGlzLmlzSW5zaWRlQ29sbGFwc2VkRm9ybUdyb3VwQm9keShyZXNvbHZlZCkpIHtcbiAgICAgIHRoaXMuZXhwYW5kQ29sbGFwc2VkRm9ybUdyb3VwQW5jZXN0b3JzKHJlc29sdmVkKTtcbiAgICAgIHRoaXMuYXBwUmVmLnRpY2soKTtcbiAgICAgIGlmIChhdHRlbXB0IDwgdGhpcy5uYXZpZ2F0ZVRvRmllbGRNYXhBdHRlbXB0cykge1xuICAgICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB0aGlzLm5hdmlnYXRlVG9GaWVsZElkKGlkLCBhdHRlbXB0ICsgMSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZXhwYW5kQ29sbGFwc2VkRm9ybUdyb3VwQW5jZXN0b3JzKHJlc29sdmVkKTtcbiAgICB0aGlzLmFwcFJlZi50aWNrKCk7XG4gICAgdGhpcy5zY2hlZHVsZVNjcm9sbEFuZEZvY3VzQWZ0ZXJEb21GbHVzaChpZCk7XG4gIH1cblxuICAvKiogQXDDs3MgYHRpY2soKWAsIGdhcmFudGUgdW0gZnJhbWUgZGUgcGludHVyYSBhbnRlcyBkZSBzY3JvbGwvZm9jbyAoZXZpdGEgZm9jbyBlbSByYW1vIGFpbmRhIG9jdWx0bykuICovXG4gIHByaXZhdGUgc2NoZWR1bGVTY3JvbGxBbmRGb2N1c0FmdGVyRG9tRmx1c2goaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLnNjcm9sbEFuZEZvY3VzRmllbGRCeUlkKGlkKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNJbnNpZGVDb2xsYXBzZWRGb3JtR3JvdXBCb2R5KGVsOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGxldCBub2RlOiBIVE1MRWxlbWVudCB8IG51bGwgPSBlbDtcbiAgICB3aGlsZSAobm9kZSkge1xuICAgICAgaWYgKG5vZGUuY2xhc3NMaXN0Py5jb250YWlucygnZm9ybS1ncm91cF9fYm9keS0tY29sbGFwc2VkLWhpZGRlbicpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgbm9kZSA9IG5vZGUucGFyZW50RWxlbWVudDtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzY3JvbGxBbmRGb2N1c0ZpZWxkQnlJZChpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG4gICAgaWYgKCFlbCB8fCAhKGVsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGZvY3VzYWJsZSA9IHRoaXMucmVzb2x2ZUZvY3VzYWJsZShlbCk7XG4gICAgZm9jdXNhYmxlLnNjcm9sbEludG9WaWV3KHtcbiAgICAgIGJlaGF2aW9yOiB0aGlzLnNjcm9sbEJlaGF2aW9yLFxuICAgICAgYmxvY2s6ICdjZW50ZXInLFxuICAgICAgaW5saW5lOiAnbmVhcmVzdCcsXG4gICAgfSk7XG4gICAgcXVldWVNaWNyb3Rhc2soKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm9jdXNhYmxlLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICBmb2N1c2FibGUuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BhcmEgYHVpLXJlcXVlc3QtZXhwYW5kYCBlbSBjYWRhIGBhcHAtZm9ybS1ncm91cGAgY29sYXBzYWRvIGRvIGZvcm11bMOhcmlvIHF1ZSBjb250w6ltIGVzdGUgcmVzdW1vLFxuICAgKiBwYXJhIG1vbnRhciBjYW1wb3MgY29tIGBkZXN0cm95T25Db2xsYXBzZWAgYW50ZXMgZGUgYGdldEVsZW1lbnRCeUlkKGZpZWxkSWQpYC5cbiAgICogT3JkZW0gZG8gRE9NIChwYWlzIGFudGVzIGRvcyBmaWxob3MpIGFsaW5oYSBhIGV4cGFuc8OjbyBkZSBncnVwb3MgYW5pbmhhZG9zLlxuICAgKi9cbiAgcHJpdmF0ZSBleHBhbmRDb2xsYXBzZWRGb3JtR3JvdXBzSW5OZWFyZXN0Rm9ybSgpOiB2b2lkIHtcbiAgICBjb25zdCBmb3JtID1cbiAgICAgIHRoaXMubmVhcmVzdEZvcm0gPz8gdGhpcy5ob3N0UmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnZm9ybScpO1xuICAgIGlmICghKGZvcm0gaW5zdGFuY2VvZiBIVE1MRm9ybUVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGhvc3RzID0gQXJyYXkuZnJvbShcbiAgICAgIGZvcm0ucXVlcnlTZWxlY3RvckFsbCgnYXBwLWZvcm0tZ3JvdXAuZm9ybS1ncm91cC0tY29sbGFwc2VkJyksXG4gICAgKSBhcyBIVE1MRWxlbWVudFtdO1xuICAgIGZvciAoY29uc3QgaG9zdCBvZiBob3N0cykge1xuICAgICAgaG9zdC5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoVUlfUkVRVUVTVF9FWFBBTkRfRk9STV9HUk9VUCwge1xuICAgICAgICAgIGJ1YmJsZXM6IGZhbHNlLFxuICAgICAgICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKiogRXhwYW5kZSBkbyBtYWlzIGV4dGVybm8gcGFyYSBvIG1haXMgaW50ZXJubyBwYXJhIG8gY29udGXDumRvIGZpY2FyIHZpc8OtdmVsLiAqL1xuICBwcml2YXRlIGV4cGFuZENvbGxhcHNlZEZvcm1Hcm91cEFuY2VzdG9ycyhzdGFydDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBjb25zdCBob3N0czogSFRNTEVsZW1lbnRbXSA9IFtdO1xuICAgIGxldCBub2RlOiBIVE1MRWxlbWVudCB8IG51bGwgPSBzdGFydC5wYXJlbnRFbGVtZW50O1xuICAgIHdoaWxlIChub2RlKSB7XG4gICAgICBpZiAoXG4gICAgICAgIG5vZGUudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYXBwLWZvcm0tZ3JvdXAnICYmXG4gICAgICAgIG5vZGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdmb3JtLWdyb3VwLS1jb2xsYXBzZWQnKVxuICAgICAgKSB7XG4gICAgICAgIGhvc3RzLnB1c2gobm9kZSk7XG4gICAgICB9XG4gICAgICBub2RlID0gbm9kZS5wYXJlbnRFbGVtZW50O1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gaG9zdHMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIGhvc3RzW2ldLmRpc3BhdGNoRXZlbnQoXG4gICAgICAgIG5ldyBDdXN0b21FdmVudChVSV9SRVFVRVNUX0VYUEFORF9GT1JNX0dST1VQLCB7XG4gICAgICAgICAgYnViYmxlczogZmFsc2UsXG4gICAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUZvY3VzYWJsZShlbDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XG4gICAgaWYgKHRoaXMuaXNGb2N1c2FibGVFbGVtZW50KGVsKSkge1xuICAgICAgcmV0dXJuIGVsO1xuICAgIH1cbiAgICBjb25zdCBpbm5lciA9IGVsLnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KFxuICAgICAgJ2lucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBidXR0b24sIFtocmVmXSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PVwiLTFcIl0pJyxcbiAgICApO1xuICAgIHJldHVybiBpbm5lciA/PyBlbDtcbiAgfVxuXG4gIHByaXZhdGUgaXNGb2N1c2FibGVFbGVtZW50KGVsOiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGlmIChlbC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgdGFnID0gZWwudGFnTmFtZTtcbiAgICBpZiAoXG4gICAgICB0YWcgPT09ICdJTlBVVCcgfHxcbiAgICAgIHRhZyA9PT0gJ1NFTEVDVCcgfHxcbiAgICAgIHRhZyA9PT0gJ1RFWFRBUkVBJyB8fFxuICAgICAgdGFnID09PSAnQlVUVE9OJ1xuICAgICkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHRhYiA9IGVsLmdldEF0dHJpYnV0ZSgndGFiaW5kZXgnKTtcbiAgICByZXR1cm4gdGFiICE9IG51bGwgJiYgdGFiICE9PSAnLTEnO1xuICB9XG5cbiAgcHJpdmF0ZSBzeW5jUGlubmVkSG9zdFRvQm9keSgpOiB2b2lkIHtcbiAgICBjb25zdCBob3N0ID0gdGhpcy5ob3N0UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3Qgc2hvdWxkUG9ydGFsID0gdGhpcy5waW5uZWQgJiYgdGhpcy5pc1Nob3duO1xuICAgIGlmIChzaG91bGRQb3J0YWwpIHtcbiAgICAgIGlmIChob3N0LnBhcmVudEVsZW1lbnQgPT09IHRoaXMuZG9jdW1lbnQuYm9keSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLm5lYXJlc3RGb3JtID0gaG9zdC5jbG9zZXN0KCdmb3JtJyk7XG4gICAgICB0aGlzLnBpbm5lZFBvcnRhbE9yaWdpbmFsUGFyZW50ID0gaG9zdC5wYXJlbnRFbGVtZW50O1xuICAgICAgdGhpcy5waW5uZWRQb3J0YWxPcmlnaW5hbE5leHQgPSBob3N0Lm5leHRTaWJsaW5nO1xuICAgICAgaWYgKHRoaXMucGlubmVkUG9ydGFsT3JpZ2luYWxQYXJlbnQpIHtcbiAgICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGhvc3QpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmRldGFjaFBpbm5lZEhvc3RGcm9tQm9keSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXRhY2hQaW5uZWRIb3N0RnJvbUJvZHkoKTogdm9pZCB7XG4gICAgY29uc3QgaG9zdCA9IHRoaXMuaG9zdFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChob3N0LnBhcmVudEVsZW1lbnQgIT09IHRoaXMuZG9jdW1lbnQuYm9keSB8fCAhdGhpcy5waW5uZWRQb3J0YWxPcmlnaW5hbFBhcmVudCkge1xuICAgICAgdGhpcy5uZWFyZXN0Rm9ybSA9IG51bGw7XG4gICAgICB0aGlzLnBpbm5lZFBvcnRhbE9yaWdpbmFsUGFyZW50ID0gbnVsbDtcbiAgICAgIHRoaXMucGlubmVkUG9ydGFsT3JpZ2luYWxOZXh0ID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5waW5uZWRQb3J0YWxPcmlnaW5hbFBhcmVudDtcbiAgICBjb25zdCBuZXh0ID0gdGhpcy5waW5uZWRQb3J0YWxPcmlnaW5hbE5leHQ7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChuZXh0Py5wYXJlbnROb2RlID09PSBwYXJlbnQpIHtcbiAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShob3N0LCBuZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChob3N0KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChob3N0KTtcbiAgICB9XG4gICAgdGhpcy5uZWFyZXN0Rm9ybSA9IG51bGw7XG4gICAgdGhpcy5waW5uZWRQb3J0YWxPcmlnaW5hbFBhcmVudCA9IG51bGw7XG4gICAgdGhpcy5waW5uZWRQb3J0YWxPcmlnaW5hbE5leHQgPSBudWxsO1xuICB9XG59XG4iLCJAaWYgKGlzU2hvd24pIHtcclxuPGRpdiBjbGFzcz1cInZhbGlkYXRpb24tc3VtbWFyeV9fcGFuZWxcIiByb2xlPVwicmVnaW9uXCIgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cInRpdGxlLnRyaW0oKSA/IHRpdGxlRWxlbWVudElkIDogbnVsbFwiXHJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0aXRsZS50cmltKCkgPyBudWxsIDogJ1Jlc3VtbyBkZSB2YWxpZGHDp8OjbydcIlxyXG4gIFtjbGFzcy52YWxpZGF0aW9uLXN1bW1hcnlfX3BhbmVsLS1waW5uZWRdPVwicGlubmVkXCJcclxuICBbY2xhc3MudmFsaWRhdGlvbi1zdW1tYXJ5X19wYW5lbC0tcGlubmVkLW9wZW5dPVwicGlubmVkICYmIHBpbm5lZE9wZW5cIlxyXG4gIFtjbGFzcy52YWxpZGF0aW9uLXN1bW1hcnlfX3BhbmVsLS1saXN0LWNvbGxhcHNlZF09XCIhcGFuZWxCb2R5RXhwYW5kZWRcIj5cclxuICA8ZGl2IGNsYXNzPVwidmFsaWRhdGlvbi1zdW1tYXJ5X19oZWFkXCI+XHJcbiAgICBAaWYgKHNob3dMaXN0Q29sbGFwc2VUb2dnbGUpIHtcclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwidmFsaWRhdGlvbi1zdW1tYXJ5X19jb2xsYXBzZS10b2dnbGVcIiAoY2xpY2spPVwidG9nZ2xlTGlzdEJvZHkoKVwiXHJcbiAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwicGFuZWxCb2R5RXhwYW5kZWRcIiBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImxpc3RSZWdpb25JZFwiXHJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicGFuZWxCb2R5RXhwYW5kZWQgPyAnUmVjb2xoZXIgbGlzdGEgZGUgZXJyb3MnIDogJ0V4cGFuZGlyIGxpc3RhIGRlIGVycm9zJ1wiPlxyXG4gICAgICA8aSBjbGFzcz1cImZhLXNvbGlkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW2NsYXNzLmZhLWNoZXZyb24tdXBdPVwicGFuZWxCb2R5RXhwYW5kZWRcIlxyXG4gICAgICAgIFtjbGFzcy5mYS1jaGV2cm9uLWRvd25dPVwiIXBhbmVsQm9keUV4cGFuZGVkXCI+PC9pPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgICBAaWYgKHRpdGxlLnRyaW0oKSkge1xyXG4gICAgPGgzIGNsYXNzPVwidmFsaWRhdGlvbi1zdW1tYXJ5X190aXRsZVwiIFtpZF09XCJ0aXRsZUVsZW1lbnRJZFwiPlxyXG4gICAgICB7eyB0aXRsZSB9fVxyXG4gICAgPC9oMz5cclxuICAgIH1cclxuICAgIEBpZiAoc2hvd0Nsb3NlQnV0dG9uKSB7XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cInZhbGlkYXRpb24tc3VtbWFyeV9fY2xvc2VcIiAoY2xpY2spPVwib25DbG9zZUNsaWNrKClcIj5cclxuICAgICAge3sgY2xvc2VCdXR0b25MYWJlbCB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgICB9XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cInZhbGlkYXRpb24tc3VtbWFyeV9fbGlzdC13cmFwXCIgW2lkXT1cImxpc3RSZWdpb25JZFwiXHJcbiAgICBbY2xhc3MudmFsaWRhdGlvbi1zdW1tYXJ5X19saXN0LXdyYXAtLXNjcm9sbGFibGVdPVwiISFwYW5lbE1heEhlaWdodCAmJiBwYW5lbEJvZHlFeHBhbmRlZFwiXHJcbiAgICBbY2xhc3MudmFsaWRhdGlvbi1zdW1tYXJ5X19saXN0LXdyYXAtLWNvbGxhcHNlZF09XCIhcGFuZWxCb2R5RXhwYW5kZWRcIlxyXG4gICAgW3N0eWxlLm1heC1oZWlnaHRdPVwicGFuZWxCb2R5RXhwYW5kZWQgPyAocGFuZWxNYXhIZWlnaHQgfHwgbnVsbCkgOiBudWxsXCIgW2F0dHIudGl0bGVdPVwiZmllbGROYXZpZ2F0ZUhpbnRcIj5cclxuICAgIDx1bCBjbGFzcz1cInZhbGlkYXRpb24tc3VtbWFyeV9fbGlzdFwiIHJvbGU9XCJsaXN0XCI+XHJcbiAgICAgIEBmb3IgKHJvdyBvZiByZXNvbHZlZEl0ZW1zOyB0cmFjayBpdGVtVHJhY2tLZXkocm93LCAkaW5kZXgpKSB7XHJcbiAgICAgIDxsaSBjbGFzcz1cInZhbGlkYXRpb24tc3VtbWFyeV9faXRlbVwiIHJvbGU9XCJsaXN0aXRlbVwiIChjbGljayk9XCJvblN1bW1hcnlMaW5rQWN0aXZhdGUoJGV2ZW50LCByb3cpXCI+XHJcbiAgICAgICAgQGlmIChyb3cuZmllbGRJZCkge1xyXG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwidmFsaWRhdGlvbi1zdW1tYXJ5X19saW5rXCIgW2F0dHIudGl0bGVdPVwiZmllbGROYXZpZ2F0ZUhpbnRcIj5cclxuICAgICAgICAgIHt7IHJvdy5tZXNzYWdlIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWxpZGF0aW9uLXN1bW1hcnlfX3RleHRcIj57eyByb3cubWVzc2FnZSB9fTwvc3Bhbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbGk+XHJcbiAgICAgIH1cclxuICAgIDwvdWw+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG59Il19
|
|
343
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZm9ybS1sYXlvdXQvdmFsaWRhdGlvbi1zdW1tYXJ5L3ZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2Zvcm0tbGF5b3V0L3ZhbGlkYXRpb24tc3VtbWFyeS92YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGNBQWMsRUFDZCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBQ0wsUUFBUSxFQUVSLE1BQU0sRUFFTixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7QUFNdkIseUdBQXlHO0FBQ3pHLE1BQU0sNEJBQTRCLEdBQUcsbUJBQW1CLENBQUM7QUFTekQsTUFBTSxPQUFPLDBCQUEwQjtJQVB2QztRQVdFLG9JQUFvSTtRQUNuSCwrQkFBMEIsR0FBRyxFQUFFLENBQUM7UUFFaEMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoQyxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixZQUFPLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7UUFFM0QsNEVBQTRFO1FBQ25FLG1CQUFjLEdBQUcsNEJBQTRCLEVBQUUsMEJBQTBCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFbEcsNkVBQTZFO1FBQ3BFLGlCQUFZLEdBQUcsMkJBQTJCLEVBQUUsMEJBQTBCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUVwRyxpRkFBaUY7UUFDeEUsYUFBUSxHQUFvQixJQUFJLENBQUM7UUFFMUMsdUVBQXVFO1FBQzlELFVBQUssR0FBbUMsSUFBSSxDQUFDO1FBRXREOzs7O1dBSUc7UUFDYSxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVJLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFFdkQ7Ozs7V0FJRztRQUNxQyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRTlDLFlBQU8sR0FBNkIsT0FBTyxDQUFDO1FBRWIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUV4RDs7O1dBR0c7UUFDTSxtQkFBYyxHQUFrQixJQUFJLENBQUM7UUFFOUMseURBQXlEO1FBQ2hELG1CQUFjLEdBQW1CLFFBQVEsQ0FBQztRQVFuRCxzRkFBc0Y7UUFDOUMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFaEU7OztXQUdHO1FBQ3FDLDJCQUFzQixHQUFHLElBQUksQ0FBQztRQUU3RCxxQkFBZ0IsR0FBRyxRQUFRLENBQUM7UUFFckMsc0VBQXNFO1FBQzdELHNCQUFpQixHQUFHLDBCQUEwQixDQUFDO1FBRXJDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXpELDBGQUEwRjtRQUMxRixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLHFGQUFxRjtRQUNyRixzQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFFakIsYUFBUSxHQUFHLEtBQUssQ0FBQztLQWlSMUI7YUFqV2dCLGlCQUFZLEdBQUcsQ0FBQyxBQUFKLENBQUs7YUFDakIsc0JBQWlCLEdBQUcsQ0FBQyxBQUFKLENBQUs7SUFpRnJDLElBQ0ksU0FBUztRQUNYLE1BQU0sS0FBSyxHQUFHO1lBQ1osb0JBQW9CO1lBQ3BCLHVCQUF1QixJQUFJLENBQUMsT0FBTyxFQUFFO1NBQ3RDLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixLQUFLLENBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUF1QjtRQUNqQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzNCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN4QixxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pCLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtvQkFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzFCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDaEMsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUNJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixNQUFNLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUN6QyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUN6RSxDQUFDO1FBQ0YsSUFBSSxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDM0IsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxTQUFTO2FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQzthQUN6QixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzthQUMzRCxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FBQyxHQUEwQixFQUFFLEtBQWE7UUFDcEQsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNoQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ1IsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBQ0QsT0FBTyxPQUFPLEtBQUssSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVEOzs7T0FHRztJQUNILHFCQUFxQixDQUFDLEVBQVMsRUFBRSxJQUEyQjtRQUMxRCxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsYUFBbUMsQ0FBQztRQUNsRCxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1AsRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDaEIsS0FBSyxFQUFFLFNBQVM7Z0JBQ2hCLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixRQUFRLEVBQUUsTUFBTTthQUNqQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsMkZBQTJGO0lBQzNGLGNBQWMsQ0FBQyxJQUEyQjtRQUN4QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsMkZBQTJGO1FBQzNGLGdHQUFnRztRQUNoRyxlQUFlLENBQ2IsR0FBRyxFQUFFO1lBQ0gsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDLEVBQ0QsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUM1QixDQUFDO0lBQ0osQ0FBQztJQUVPLGlCQUFpQixDQUFDLEVBQVUsRUFBRSxPQUFPLEdBQUcsQ0FBQztRQUMvQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLFFBQVEsWUFBWSxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3BELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO2dCQUM5Qzs7OzttQkFJRztnQkFDSCxJQUFJLENBQUMsc0NBQXNDLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbkIsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEUsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBQ0QsaUdBQWlHO1FBQ2pHLGtGQUFrRjtRQUNsRixJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbkIsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEUsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBRUQ7OztXQUdHO1FBQ0gsSUFBSSxJQUFJLENBQUMsOEJBQThCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsaUNBQWlDLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztnQkFDOUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEUsQ0FBQztZQUNELE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCx5R0FBeUc7SUFDakcsbUNBQW1DLENBQUMsRUFBVTtRQUNwRCxjQUFjLENBQUMsR0FBRyxFQUFFO1lBQ2xCLHFCQUFxQixDQUFDLEdBQUcsRUFBRTtnQkFDekIscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyw4QkFBOEIsQ0FBQyxFQUFlO1FBQ3BELElBQUksSUFBSSxHQUF1QixFQUFFLENBQUM7UUFDbEMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNaLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsb0NBQW9DLENBQUMsRUFBRSxDQUFDO2dCQUNuRSxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFDRCxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUM1QixDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sdUJBQXVCLENBQUMsRUFBVTtRQUN4QyxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsWUFBWSxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3hDLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLFNBQVMsQ0FBQyxjQUFjLENBQUM7WUFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjO1lBQzdCLEtBQUssRUFBRSxRQUFRO1lBQ2YsTUFBTSxFQUFFLFNBQVM7U0FDbEIsQ0FBQyxDQUFDO1FBQ0gsY0FBYyxDQUFDLEdBQUcsRUFBRTtZQUNsQixJQUFJLENBQUM7Z0JBQ0gsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxzQ0FBc0M7UUFDNUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxDQUFDLElBQUksWUFBWSxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FDdEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNDQUFzQyxDQUFDLENBQzdDLENBQUM7UUFDbkIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsYUFBYSxDQUNoQixJQUFJLFdBQVcsQ0FBQyw0QkFBNEIsRUFBRTtnQkFDNUMsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsVUFBVSxFQUFFLElBQUk7YUFDakIsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELGlGQUFpRjtJQUN6RSxpQ0FBaUMsQ0FBQyxLQUFrQjtRQUMxRCxNQUFNLEtBQUssR0FBa0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksSUFBSSxHQUF1QixLQUFLLENBQUMsYUFBYSxDQUFDO1FBQ25ELE9BQU8sSUFBSSxFQUFFLENBQUM7WUFDWixJQUNFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEtBQUssZ0JBQWdCO2dCQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUNoRCxDQUFDO2dCQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkIsQ0FBQztZQUNELElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVCLENBQUM7UUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMzQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUNwQixJQUFJLFdBQVcsQ0FBQyw0QkFBNEIsRUFBRTtnQkFDNUMsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsVUFBVSxFQUFFLElBQUk7YUFDakIsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEVBQWU7UUFDdEMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsYUFBYSxDQUM1QiwwRUFBMEUsQ0FDM0UsQ0FBQztRQUNGLE9BQU8sS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsRUFBZTtRQUN4QyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO1FBQ3ZCLElBQ0UsR0FBRyxLQUFLLE9BQU87WUFDZixHQUFHLEtBQUssUUFBUTtZQUNoQixHQUFHLEtBQUssVUFBVTtZQUNsQixHQUFHLEtBQUssUUFBUSxFQUNoQixDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxPQUFPLEdBQUcsSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQztJQUNyQyxDQUFDOytHQWhXVSwwQkFBMEI7bUdBQTFCLDBCQUEwQix1TEErQmpCLGdCQUFnQixnQ0FPaEIsZ0JBQWdCLHVEQUloQixnQkFBZ0IseUtBa0JoQixnQkFBZ0IsZ0ZBTWhCLGdCQUFnQiw4UENsR3RDLGcwRUE4Q0M7OzRGRGRZLDBCQUEwQjtrQkFQdEMsU0FBUzsrQkFDRSx3QkFBd0IsY0FDdEIsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNOzhCQXFCdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBT1UsY0FBYztzQkFBN0IsS0FBSzt1QkFBQyxPQUFPO2dCQUUwQixPQUFPO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU9FLE1BQU07c0JBQTdDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRTdCLE9BQU87c0JBQWYsS0FBSztnQkFFa0MsT0FBTztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNN0IsY0FBYztzQkFBdEIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQU1HLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFHa0MsZUFBZTtzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNRSxzQkFBc0I7c0JBQTdELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRTdCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRWEsVUFBVTtzQkFBNUIsTUFBTTtnQkFXSCxTQUFTO3NCQURaLFdBQVc7dUJBQUMsT0FBTztnQkFrQ2hCLFVBQVU7c0JBRGIsV0FBVzt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgSW5qZWN0b3IsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBhZnRlck5leHRSZW5kZXIsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7XG4gIFZhbGlkYXRpb25TdW1tYXJ5SXRlbSxcbiAgVmFsaWRhdGlvblN1bW1hcnlWYXJpYW50LFxufSBmcm9tICcuLi9fbW9kZWxzL3ZhbGlkYXRpb24tc3VtbWFyeS5tb2RlbCc7XG5cbi8qKiBFdmVudG8gbm8gaG9zdCBgYXBwLWZvcm0tZ3JvdXBgOiBleHBhbmRpciBncnVwbyBzZW0gc2Nyb2xsIHByw7NwcmlvIChuYXZlZ2HDp8OjbyBhIHBhcnRpciBkbyByZXN1bW8pLiAqL1xuY29uc3QgVUlfUkVRVUVTVF9FWFBBTkRfRk9STV9HUk9VUCA9ICd1aS1yZXF1ZXN0LWV4cGFuZCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC12YWxpZGF0aW9uLXN1bW1hcnknLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vdmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3ZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIHByaXZhdGUgc3RhdGljIG5leHRUaXRsZVVpZCA9IDA7XG4gIHByaXZhdGUgc3RhdGljIG5leHRMaXN0UmVnaW9uVWlkID0gMDtcblxuICAvKiogVHJvY2EgZGUgYWJhIChgYmVmb3JlSXRlbUFjdGl2YXRlYCkgKyBgcXVldWVNaWNyb3Rhc2tgIG5vIGBhcHAtZm9ybS10YWJzYCDigJQgbyBhbHZvIHBvZGUgZmljYXIgZW0gYFtoaWRkZW5dYCBhdMOpIG8gcHLDs3hpbW8gQ0QuICovXG4gIHByaXZhdGUgcmVhZG9ubHkgbmF2aWdhdGVUb0ZpZWxkTWF4QXR0ZW1wdHMgPSAyODtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFwcFJlZiA9IGluamVjdChBcHBsaWNhdGlvblJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgaG9zdFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cbiAgLyoqIGBpZGAgw7puaWNvIHBhcmEgYGFyaWEtbGFiZWxsZWRieWAgcXVhbmRvIGjDoSB2w6FyaW9zIHJlc3Vtb3MgbmEgcMOhZ2luYS4gKi9cbiAgcmVhZG9ubHkgdGl0bGVFbGVtZW50SWQgPSBgdmFsaWRhdGlvbi1zdW1tYXJ5LXRpdGxlLSR7KytWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudC5uZXh0VGl0bGVVaWR9YDtcblxuICAvKiogYGlkYCBkYSByZWdpw6NvIGRhIGxpc3RhIChhY2Vzc2liaWxpZGFkZSBkbyBib3TDo28gcmVjb2xoZXIgLyBleHBhbmRpcikuICovXG4gIHJlYWRvbmx5IGxpc3RSZWdpb25JZCA9IGB2YWxpZGF0aW9uLXN1bW1hcnktbGlzdC0keysrVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQubmV4dExpc3RSZWdpb25VaWR9YDtcblxuICAvKiogTGlzdGEgc2ltcGxlcyAocmV0cm9jb21wYXTDrXZlbCkuIElnbm9yYWRhIHNlIHtAbGluayBpdGVtc30gdGl2ZXIgZW50cmFkYXMuICovXG4gIEBJbnB1dCgpIG1lc3NhZ2VzOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBMaXN0YSByaWNhIGNvbSBgZmllbGRJZGAgb3BjaW9uYWwgcGFyYSBuYXZlZ2HDp8OjbyBhdMOpIG8gY29udHJvbGUuICovXG4gIEBJbnB1dCgpIGl0ZW1zOiBWYWxpZGF0aW9uU3VtbWFyeUl0ZW1bXSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBUw610dWxvIGRvIGNhYmXDp2FsaG8gKGB0aXRsZT1cIuKAplwiYCBubyB0ZW1wbGF0ZSkuXG4gICAqIE7Do28gdXNhciBhIHByb3ByaWVkYWRlIGB0aXRsZWAgbmEgY2xhc3NlOiBjb2xpZGUgY29tIGBIVE1MRWxlbWVudC50aXRsZWAgbm8gaG9zdCBlIG9cbiAgICogYnJvd3NlciBwb2RlIGRlc2VuaGFyIHRvb2x0aXAgbmF0aXZvIC8gY29tcG9ydGFtZW50b3MgZXN0cmFuaG9zLlxuICAgKi9cbiAgQElucHV0KCd0aXRsZScpIHN1bW1hcnlIZWFkaW5nID0gJyc7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHZpc2libGUgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBgZmFsc2VgIChwYWRyw6NvKTogZmx1eG8gZW0gZG9jdW1lbnRvIChleC46IG5vIHRvcG8gZG8gZm9ybXVsw6FyaW8pIOKAlCBvIGNvbnN1bWlkb3IgcG9kZSBmYXplciBzY3JvbGwgYXTDqSBvIHBhaW5lbC5cbiAgICogYHRydWVgOiBwYWluZWwgYHBvc2l0aW9uOiBmaXhlZGAgbm8gdG9wbyBkbyB2aWV3cG9ydCwgY29tIGZhZGUtaW4gKipzZW0qKiByZXNlcnZhciBlc3Bhw6dvIG5vIGZvcm11bMOhcmlvXG4gICAqIG5lbSBhbHRlcmFyIG8gc2Nyb2xsIGRhIHDDoWdpbmEgKMO6dGlsIGVtIGZvcm11bMOhcmlvcyBtdWl0byBsb25nb3MpLlxuICAgKi9cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHBpbm5lZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIHZhcmlhbnQ6IFZhbGlkYXRpb25TdW1tYXJ5VmFyaWFudCA9ICdlcnJvcic7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGNvbXBhY3QgPSBmYWxzZTtcblxuICAvKipcbiAgICogQWx0dXJhIG3DoXhpbWEgZG8gcGFpbmVsIGRhIGxpc3RhIChleC46IGAxMnJlbWAsIGBtaW4oNDB2aCwgMTRyZW0pYCkuXG4gICAqIFF1YW5kbyBkZWZpbmlkbywgYSBsaXN0YSBvYnTDqW0gc2Nyb2xsIHZlcnRpY2FsIGludGVybm8uXG4gICAqL1xuICBASW5wdXQoKSBwYW5lbE1heEhlaWdodDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIENvbXBvcnRhbWVudG8gZGUgc2Nyb2xsIGFvIGNlbnRyYXIgbyBhbHZvIG5hIHRlbGEuICovXG4gIEBJbnB1dCgpIHNjcm9sbEJlaGF2aW9yOiBTY3JvbGxCZWhhdmlvciA9ICdzbW9vdGgnO1xuXG4gIC8qKlxuICAgKiBDaGFtYWRvIGFudGVzIGRlIGxvY2FsaXphciBvIGVsZW1lbnRvIHBvciBgZmllbGRJZGAgKGV4LjogYXRpdmFyIGEgYWJhIG9uZGUgZXN0w6EgbyBjYW1wbykuXG4gICAqIE1hbnTDqW0gbyBjb250cmF0byBkbyByZXN1bW8gY29tbyBmb250ZSDDum5pY2EgZGUgc2Nyb2xsL2ZvY28gZW0gYG5hdmlnYXRlVG9GaWVsZElkYC5cbiAgICovXG4gIEBJbnB1dCgpIGJlZm9yZUl0ZW1BY3RpdmF0ZT86IChpdGVtOiBWYWxpZGF0aW9uU3VtbWFyeUl0ZW0pID0+IHZvaWQ7XG5cbiAgLyoqIE1vc3RyYSBib3TDo28gcXVlIGFwZW5hcyBmZWNoYSBvIHBhaW5lbCAobsOjbyBhbHRlcmEgdmFsaWRhw6fDo28gbmVtIG8gZm9ybXVsw6FyaW8pLiAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0Nsb3NlQnV0dG9uID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIE1vc3RyYSBvIGJvdMOjbyBjb20gc2V0YXMgKHJlY29saGVyIC8gZXhwYW5kaXIpIGFvIGxhZG8gZG8gdMOtdHVsbyBwYXJhIGVzY29uZGVyIHPDsyBhIGxpc3RhXG4gICAqIGUgcG91cGFyIGVzcGHDp28gdmVydGljYWwgc2VtIGZlY2hhciBvIHBhaW5lbC5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93TGlzdENvbGxhcHNlVG9nZ2xlID0gdHJ1ZTtcblxuICBASW5wdXQoKSBjbG9zZUJ1dHRvbkxhYmVsID0gJ0ZlY2hhcic7XG5cbiAgLyoqIFRleHRvIGRhIGRpY2EgbmF0aXZhIChgdGl0bGVgKSBuYXMgbGluaGFzIGNvbSBkZXN0aW5vIGFvIGNhbXBvLiAqL1xuICBASW5wdXQoKSBmaWVsZE5hdmlnYXRlSGludCA9ICdDbGlxdWUgcGFyYSBpciBhbyBjYW1wby4nO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBwYW5lbENsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKiBDb20gYHBpbm5lZGA6IGJyZXZlIGZhZGUtaW4gYXDDs3MgbyBwYWluZWwgcGFzc2FyIGEgdmlzw612ZWwgKHNlbSBkZXNsb2NhciBvIGxheW91dCkuICovXG4gIHBpbm5lZE9wZW4gPSBmYWxzZTtcblxuICAvKiogYHRydWVgOiBsaXN0YSBkZSBlcnJvcyB2aXPDrXZlbDsgYGZhbHNlYDogc8OzIGNhYmXDp2FsaG8gKyBib3TDtWVzIChtZW5vcyBhbHR1cmEpLiAqL1xuICBwYW5lbEJvZHlFeHBhbmRlZCA9IHRydWU7XG5cbiAgcHJpdmF0ZSB3YXNTaG93biA9IGZhbHNlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzKCk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFydHMgPSBbXG4gICAgICAndmFsaWRhdGlvbi1zdW1tYXJ5JyxcbiAgICAgIGB2YWxpZGF0aW9uLXN1bW1hcnktLSR7dGhpcy52YXJpYW50fWAsXG4gICAgXTtcbiAgICBpZiAodGhpcy5jb21wYWN0KSB7XG4gICAgICBwYXJ0cy5wdXNoKCd2YWxpZGF0aW9uLXN1bW1hcnktLWNvbXBhY3QnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucGlubmVkICYmIHRoaXMuaXNTaG93bikge1xuICAgICAgcGFydHMucHVzaCgndmFsaWRhdGlvbi1zdW1tYXJ5LS1waW5uZWQtaG9zdCcpO1xuICAgIH1cbiAgICByZXR1cm4gcGFydHMuam9pbignICcpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoX2NoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBzaG93biA9IHRoaXMuaXNTaG93bjtcbiAgICBpZiAodGhpcy5waW5uZWQgJiYgc2hvd24gJiYgIXRoaXMud2FzU2hvd24pIHtcbiAgICAgIHRoaXMucGlubmVkT3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucGlubmVkT3BlbiA9IHRydWU7XG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICghc2hvd24pIHtcbiAgICAgIHRoaXMucGlubmVkT3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5wYW5lbEJvZHlFeHBhbmRlZCA9IHRydWU7XG4gICAgfVxuICAgIHRoaXMud2FzU2hvd24gPSBzaG93bjtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnYXR0ci5oaWRkZW4nKVxuICBnZXQgaG9zdEhpZGRlbigpOiB0cnVlIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuaXNTaG93biA/IG51bGwgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkSXRlbXMoKTogVmFsaWRhdGlvblN1bW1hcnlJdGVtW10ge1xuICAgIGNvbnN0IGZyb21JdGVtcyA9ICh0aGlzLml0ZW1zID8/IFtdKS5maWx0ZXIoXG4gICAgICAoaSkgPT4gaSAmJiB0eXBlb2YgaS5tZXNzYWdlID09PSAnc3RyaW5nJyAmJiBpLm1lc3NhZ2UudHJpbSgpLmxlbmd0aCA+IDAsXG4gICAgKTtcbiAgICBpZiAoZnJvbUl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBmcm9tSXRlbXMubWFwKChpKSA9PiAoe1xuICAgICAgICBtZXNzYWdlOiBpLm1lc3NhZ2UudHJpbSgpLFxuICAgICAgICBmaWVsZElkOiBpLmZpZWxkSWQ/LnRyaW0oKSB8fCB1bmRlZmluZWQsXG4gICAgICB9KSk7XG4gICAgfVxuICAgIHJldHVybiAodGhpcy5tZXNzYWdlcyA/PyBbXSlcbiAgICAgIC5maWx0ZXIoKG0pID0+IHR5cGVvZiBtID09PSAnc3RyaW5nJyAmJiBtLnRyaW0oKS5sZW5ndGggPiAwKVxuICAgICAgLm1hcCgobWVzc2FnZSkgPT4gKHsgbWVzc2FnZTogbWVzc2FnZS50cmltKCkgfSkpO1xuICB9XG5cbiAgZ2V0IGlzU2hvd24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZSAmJiB0aGlzLnJlc29sdmVkSXRlbXMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIG9uQ2xvc2VDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnBhbmVsQ2xvc2UuZW1pdCgpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgdG9nZ2xlTGlzdEJvZHkoKTogdm9pZCB7XG4gICAgdGhpcy5wYW5lbEJvZHlFeHBhbmRlZCA9ICF0aGlzLnBhbmVsQm9keUV4cGFuZGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYXZlIGVzdMOhdmVsIHBhcmEgYEBmb3JgIOKAlCBgdHJhY2sgJGluZGV4YCByZXV0aWxpemEgbWFsIG7Ds3MgcXVhbmRvIGEgbGlzdGEgbXVkYSBhbyB2aXZvXG4gICAqIGUgbyBnZXR0ZXIgYHJlc29sdmVkSXRlbXNgIGRldm9sdmUgbm92YXMgcmVmZXLDqm5jaWFzIGEgY2FkYSBDRC5cbiAgICovXG4gIGl0ZW1UcmFja0tleShyb3c6IFZhbGlkYXRpb25TdW1tYXJ5SXRlbSwgaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgZmlkID0gcm93LmZpZWxkSWQ/LnRyaW0oKTtcbiAgICBpZiAoZmlkKSB7XG4gICAgICByZXR1cm4gZmlkO1xuICAgIH1cbiAgICByZXR1cm4gYG1zZy0ke2luZGV4fS0ke3Jvdy5tZXNzYWdlfWA7XG4gIH1cblxuICAvKipcbiAgICogQ2xpcXVlIG5hIGxpbmhhIGNvbSBkZXN0aW5vOiBwcmltZWlybyBhbGluaGEgYSBsaW5oYSBubyBgbGlzdC13cmFwYCBjb20gc2Nyb2xsXG4gICAqIChpdGVucyBwYXJjaWFsbWVudGUgdmlzw612ZWlzIHBhc3NhbSBhIGZpY2FyIHRvdGFsbWVudGUgdmlzw612ZWlzKSwgZGVwb2lzIG5hdmVnYS5cbiAgICovXG4gIG9uU3VtbWFyeUxpbmtBY3RpdmF0ZShldjogRXZlbnQsIGl0ZW06IFZhbGlkYXRpb25TdW1tYXJ5SXRlbSk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gZXYuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgaWYgKGVsKSB7XG4gICAgICBlbC5zY3JvbGxJbnRvVmlldyh7XG4gICAgICAgIGJsb2NrOiAnbmVhcmVzdCcsXG4gICAgICAgIGlubGluZTogJ25lYXJlc3QnLFxuICAgICAgICBiZWhhdmlvcjogJ2F1dG8nLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMub25JdGVtQWN0aXZhdGUoaXRlbSk7XG4gIH1cblxuICAvKiogTmF2ZWdhw6fDo28gYXTDqSBvIGNvbnRyb2xlIGNvbSBgZmllbGRJZGAgKGNoYW1hZG8gYXDDs3Mge0BsaW5rIG9uU3VtbWFyeUxpbmtBY3RpdmF0ZX0pLiAqL1xuICBvbkl0ZW1BY3RpdmF0ZShpdGVtOiBWYWxpZGF0aW9uU3VtbWFyeUl0ZW0pOiB2b2lkIHtcbiAgICBjb25zdCBpZCA9IGl0ZW0uZmllbGRJZD8udHJpbSgpO1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmJlZm9yZUl0ZW1BY3RpdmF0ZT8uKGl0ZW0pO1xuXG4gICAgLy8gMSkgYGFmdGVyTmV4dFJlbmRlcmA6IGFww7NzIG8gRE9NIHJlZmxldGlyIChleC46IG11ZGFuw6dhIGRlIGFiYSBlbSBgYmVmb3JlSXRlbUFjdGl2YXRlYCkuXG4gICAgLy8gMikgYHNldFRpbWVvdXQoMClgOiBmb3JhIGRvIGNpY2xvIGRlIHZlcmlmaWNhw6fDo28g4oCUIGV2aXRhIE5HMDEwMCBhbyBleHBhbmRpciBgYXBwLWZvcm0tZ3JvdXBgLlxuICAgIGFmdGVyTmV4dFJlbmRlcihcbiAgICAgICgpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLm5hdmlnYXRlVG9GaWVsZElkKGlkKSwgMCk7XG4gICAgICB9LFxuICAgICAgeyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIG5hdmlnYXRlVG9GaWVsZElkKGlkOiBzdHJpbmcsIGF0dGVtcHQgPSAwKTogdm9pZCB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XG4gICAgaWYgKCFyZXNvbHZlZCB8fCAhKHJlc29sdmVkIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpKSB7XG4gICAgICBpZiAoYXR0ZW1wdCA8IHRoaXMubmF2aWdhdGVUb0ZpZWxkTWF4QXR0ZW1wdHMpIHtcbiAgICAgICAgLypcbiAgICAgICAgICogQ29tIGBkZXN0cm95T25Db2xsYXBzZWAsIG8gY29udHJvbGUgbsOjbyBleGlzdGUgbm8gRE9NIGVucXVhbnRvIG8gYGFwcC1mb3JtLWdyb3VwYCBlc3TDoSBmZWNoYWRvO1xuICAgICAgICAgKiBgZXhwYW5kQ29sbGFwc2VkRm9ybUdyb3VwQW5jZXN0b3JzYCBudW5jYSBjb3JyZSBwb3JxdWUgZGVwZW5kZSBkbyBlbGVtZW50byBqw6EgZXhpc3Rpci5cbiAgICAgICAgICogRXhwYW5kaW1vcyB0b2RvcyBvcyBncnVwb3MgY29sYXBzYWRvcyBubyBgPGZvcm0+YCBtYWlzIHByw7N4aW1vIGUgcmVwZXRpbW9zIGFww7NzIHVtIENELlxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5leHBhbmRDb2xsYXBzZWRGb3JtR3JvdXBzSW5OZWFyZXN0Rm9ybSgpO1xuICAgICAgICB0aGlzLmFwcFJlZi50aWNrKCk7XG4gICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHRoaXMubmF2aWdhdGVUb0ZpZWxkSWQoaWQsIGF0dGVtcHQgKyAxKSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIFNlcGFyYWRvcmVzIGluYXRpdm9zIChgYXBwLWZvcm0tdGFiYCkgdXNhbSBgW2hpZGRlbl1gIOKAlCBgZ2V0RWxlbWVudEJ5SWRgIGV4aXN0ZSBtYXMgZm9jbyBmYWxoYVxuICAgIC8vIGF0w6kgbyBwYWluZWwgZXN0YXIgdmlzw612ZWw7IHJlLXRlbnRhIGFww7NzIENEIChleC46IGRlbW8gQWJhcyBhbyBzYWx0YXIgZGUgYWJhKS5cbiAgICBpZiAocmVzb2x2ZWQuY2xvc2VzdCgnW2hpZGRlbl0nKSkge1xuICAgICAgaWYgKGF0dGVtcHQgPCB0aGlzLm5hdmlnYXRlVG9GaWVsZE1heEF0dGVtcHRzKSB7XG4gICAgICAgIHRoaXMuYXBwUmVmLnRpY2soKTtcbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy5uYXZpZ2F0ZVRvRmllbGRJZChpZCwgYXR0ZW1wdCArIDEpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb20gYGFwcC1mb3JtLWdyb3VwYCBjb2xhcHNhZG8gKGNvcnBvIGBkaXNwbGF5OiBub25lYCksIGBnZXRFbGVtZW50QnlJZGAgYWluZGEgZW5jb250cmEgbyBhbHZvXG4gICAgICogbWFzIG8gZm9jbyBmYWxoYSBhdMOpIG8gcHLDs3hpbW8gQ0Qg4oCUIHNlbSByZWludGVudG8gcGFyZWNlIHF1ZSDDqSBwcmVjaXNvIHVtIHNlZ3VuZG8gY2xpcXVlIG5vIHJlc3Vtby5cbiAgICAgKi9cbiAgICBpZiAodGhpcy5pc0luc2lkZUNvbGxhcHNlZEZvcm1Hcm91cEJvZHkocmVzb2x2ZWQpKSB7XG4gICAgICB0aGlzLmV4cGFuZENvbGxhcHNlZEZvcm1Hcm91cEFuY2VzdG9ycyhyZXNvbHZlZCk7XG4gICAgICB0aGlzLmFwcFJlZi50aWNrKCk7XG4gICAgICBpZiAoYXR0ZW1wdCA8IHRoaXMubmF2aWdhdGVUb0ZpZWxkTWF4QXR0ZW1wdHMpIHtcbiAgICAgICAgcXVldWVNaWNyb3Rhc2soKCkgPT4gdGhpcy5uYXZpZ2F0ZVRvRmllbGRJZChpZCwgYXR0ZW1wdCArIDEpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmV4cGFuZENvbGxhcHNlZEZvcm1Hcm91cEFuY2VzdG9ycyhyZXNvbHZlZCk7XG4gICAgdGhpcy5hcHBSZWYudGljaygpO1xuICAgIHRoaXMuc2NoZWR1bGVTY3JvbGxBbmRGb2N1c0FmdGVyRG9tRmx1c2goaWQpO1xuICB9XG5cbiAgLyoqIEFww7NzIGB0aWNrKClgLCBnYXJhbnRlIHVtIGZyYW1lIGRlIHBpbnR1cmEgYW50ZXMgZGUgc2Nyb2xsL2ZvY28gKGV2aXRhIGZvY28gZW0gcmFtbyBhaW5kYSBvY3VsdG8pLiAqL1xuICBwcml2YXRlIHNjaGVkdWxlU2Nyb2xsQW5kRm9jdXNBZnRlckRvbUZsdXNoKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4gdGhpcy5zY3JvbGxBbmRGb2N1c0ZpZWxkQnlJZChpZCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGlzSW5zaWRlQ29sbGFwc2VkRm9ybUdyb3VwQm9keShlbDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBsZXQgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsID0gZWw7XG4gICAgd2hpbGUgKG5vZGUpIHtcbiAgICAgIGlmIChub2RlLmNsYXNzTGlzdD8uY29udGFpbnMoJ2Zvcm0tZ3JvdXBfX2JvZHktLWNvbGxhcHNlZC1oaWRkZW4nKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIG5vZGUgPSBub2RlLnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsQW5kRm9jdXNGaWVsZEJ5SWQoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xuICAgIGlmICghZWwgfHwgIShlbCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBmb2N1c2FibGUgPSB0aGlzLnJlc29sdmVGb2N1c2FibGUoZWwpO1xuICAgIGZvY3VzYWJsZS5zY3JvbGxJbnRvVmlldyh7XG4gICAgICBiZWhhdmlvcjogdGhpcy5zY3JvbGxCZWhhdmlvcixcbiAgICAgIGJsb2NrOiAnY2VudGVyJyxcbiAgICAgIGlubGluZTogJ25lYXJlc3QnLFxuICAgIH0pO1xuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGZvY3VzYWJsZS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgZm9jdXNhYmxlLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwYXJhIGB1aS1yZXF1ZXN0LWV4cGFuZGAgZW0gY2FkYSBgYXBwLWZvcm0tZ3JvdXBgIGNvbGFwc2FkbyBkbyBmb3JtdWzDoXJpbyBxdWUgY29udMOpbSBlc3RlIHJlc3VtbyxcbiAgICogcGFyYSBtb250YXIgY2FtcG9zIGNvbSBgZGVzdHJveU9uQ29sbGFwc2VgIGFudGVzIGRlIGBnZXRFbGVtZW50QnlJZChmaWVsZElkKWAuXG4gICAqIE9yZGVtIGRvIERPTSAocGFpcyBhbnRlcyBkb3MgZmlsaG9zKSBhbGluaGEgYSBleHBhbnPDo28gZGUgZ3J1cG9zIGFuaW5oYWRvcy5cbiAgICovXG4gIHByaXZhdGUgZXhwYW5kQ29sbGFwc2VkRm9ybUdyb3Vwc0luTmVhcmVzdEZvcm0oKTogdm9pZCB7XG4gICAgY29uc3QgZm9ybSA9IHRoaXMuaG9zdFJlZi5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJ2Zvcm0nKTtcbiAgICBpZiAoIShmb3JtIGluc3RhbmNlb2YgSFRNTEZvcm1FbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBob3N0cyA9IEFycmF5LmZyb20oXG4gICAgICBmb3JtLnF1ZXJ5U2VsZWN0b3JBbGwoJ2FwcC1mb3JtLWdyb3VwLmZvcm0tZ3JvdXAtLWNvbGxhcHNlZCcpLFxuICAgICkgYXMgSFRNTEVsZW1lbnRbXTtcbiAgICBmb3IgKGNvbnN0IGhvc3Qgb2YgaG9zdHMpIHtcbiAgICAgIGhvc3QuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgbmV3IEN1c3RvbUV2ZW50KFVJX1JFUVVFU1RfRVhQQU5EX0ZPUk1fR1JPVVAsIHtcbiAgICAgICAgICBidWJibGVzOiBmYWxzZSxcbiAgICAgICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEV4cGFuZGUgZG8gbWFpcyBleHRlcm5vIHBhcmEgbyBtYWlzIGludGVybm8gcGFyYSBvIGNvbnRlw7pkbyBmaWNhciB2aXPDrXZlbC4gKi9cbiAgcHJpdmF0ZSBleHBhbmRDb2xsYXBzZWRGb3JtR3JvdXBBbmNlc3RvcnMoc3RhcnQ6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3QgaG9zdHM6IEhUTUxFbGVtZW50W10gPSBbXTtcbiAgICBsZXQgbm9kZTogSFRNTEVsZW1lbnQgfCBudWxsID0gc3RhcnQucGFyZW50RWxlbWVudDtcbiAgICB3aGlsZSAobm9kZSkge1xuICAgICAgaWYgKFxuICAgICAgICBub2RlLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2FwcC1mb3JtLWdyb3VwJyAmJlxuICAgICAgICBub2RlLmNsYXNzTGlzdC5jb250YWlucygnZm9ybS1ncm91cC0tY29sbGFwc2VkJylcbiAgICAgICkge1xuICAgICAgICBob3N0cy5wdXNoKG5vZGUpO1xuICAgICAgfVxuICAgICAgbm9kZSA9IG5vZGUucGFyZW50RWxlbWVudDtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IGhvc3RzLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgICBob3N0c1tpXS5kaXNwYXRjaEV2ZW50KFxuICAgICAgICBuZXcgQ3VzdG9tRXZlbnQoVUlfUkVRVUVTVF9FWFBBTkRfRk9STV9HUk9VUCwge1xuICAgICAgICAgIGJ1YmJsZXM6IGZhbHNlLFxuICAgICAgICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVGb2N1c2FibGUoZWw6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQge1xuICAgIGlmICh0aGlzLmlzRm9jdXNhYmxlRWxlbWVudChlbCkpIHtcbiAgICAgIHJldHVybiBlbDtcbiAgICB9XG4gICAgY29uc3QgaW5uZXIgPSBlbC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihcbiAgICAgICdpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSwgYnV0dG9uLCBbaHJlZl0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKScsXG4gICAgKTtcbiAgICByZXR1cm4gaW5uZXIgPz8gZWw7XG4gIH1cblxuICBwcml2YXRlIGlzRm9jdXNhYmxlRWxlbWVudChlbDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICBpZiAoZWwuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IHRhZyA9IGVsLnRhZ05hbWU7XG4gICAgaWYgKFxuICAgICAgdGFnID09PSAnSU5QVVQnIHx8XG4gICAgICB0YWcgPT09ICdTRUxFQ1QnIHx8XG4gICAgICB0YWcgPT09ICdURVhUQVJFQScgfHxcbiAgICAgIHRhZyA9PT0gJ0JVVFRPTidcbiAgICApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCB0YWIgPSBlbC5nZXRBdHRyaWJ1dGUoJ3RhYmluZGV4Jyk7XG4gICAgcmV0dXJuIHRhYiAhPSBudWxsICYmIHRhYiAhPT0gJy0xJztcbiAgfVxuXG59XG4iLCJAaWYgKGlzU2hvd24pIHtcclxuPGRpdiBjbGFzcz1cInZhbGlkYXRpb24tc3VtbWFyeV9fcGFuZWxcIiByb2xlPVwicmVnaW9uXCJcclxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwic3VtbWFyeUhlYWRpbmcudHJpbSgpID8gdGl0bGVFbGVtZW50SWQgOiBudWxsXCJcclxuICBbYXR0ci5hcmlhLWxhYmVsXT1cInN1bW1hcnlIZWFkaW5nLnRyaW0oKSA/IG51bGwgOiAnUmVzdW1vIGRlIHZhbGlkYcOnw6NvJ1wiXHJcbiAgW2NsYXNzLnZhbGlkYXRpb24tc3VtbWFyeV9fcGFuZWwtLXBpbm5lZF09XCJwaW5uZWRcIlxyXG4gIFtjbGFzcy52YWxpZGF0aW9uLXN1bW1hcnlfX3BhbmVsLS1waW5uZWQtb3Blbl09XCJwaW5uZWQgJiYgcGlubmVkT3BlblwiXHJcbiAgW2NsYXNzLnZhbGlkYXRpb24tc3VtbWFyeV9fcGFuZWwtLWxpc3QtY29sbGFwc2VkXT1cIiFwYW5lbEJvZHlFeHBhbmRlZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ2YWxpZGF0aW9uLXN1bW1hcnlfX2hlYWRcIj5cclxuICAgIEBpZiAoc2hvd0xpc3RDb2xsYXBzZVRvZ2dsZSkge1xyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJ2YWxpZGF0aW9uLXN1bW1hcnlfX2NvbGxhcHNlLXRvZ2dsZVwiIChjbGljayk9XCJ0b2dnbGVMaXN0Qm9keSgpXCJcclxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJwYW5lbEJvZHlFeHBhbmRlZFwiIFthdHRyLmFyaWEtY29udHJvbHNdPVwibGlzdFJlZ2lvbklkXCJcclxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwYW5lbEJvZHlFeHBhbmRlZCA/ICdSZWNvbGhlciBsaXN0YSBkZSBlcnJvcycgOiAnRXhwYW5kaXIgbGlzdGEgZGUgZXJyb3MnXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwiZmEtc29saWRcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBbY2xhc3MuZmEtY2hldnJvbi11cF09XCJwYW5lbEJvZHlFeHBhbmRlZFwiXHJcbiAgICAgICAgW2NsYXNzLmZhLWNoZXZyb24tZG93bl09XCIhcGFuZWxCb2R5RXhwYW5kZWRcIj48L2k+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIH1cclxuICAgIEBpZiAoc3VtbWFyeUhlYWRpbmcudHJpbSgpKSB7XHJcbiAgICA8aDMgY2xhc3M9XCJ2YWxpZGF0aW9uLXN1bW1hcnlfX3RpdGxlXCIgW2lkXT1cInRpdGxlRWxlbWVudElkXCI+XHJcbiAgICAgIHt7IHN1bW1hcnlIZWFkaW5nIH19XHJcbiAgICA8L2gzPlxyXG4gICAgfVxyXG4gICAgQGlmIChzaG93Q2xvc2VCdXR0b24pIHtcclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwidmFsaWRhdGlvbi1zdW1tYXJ5X19jbG9zZVwiIChjbGljayk9XCJvbkNsb3NlQ2xpY2soKVwiPlxyXG4gICAgICB7eyBjbG9zZUJ1dHRvbkxhYmVsIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwidmFsaWRhdGlvbi1zdW1tYXJ5X19saXN0LXdyYXBcIiBbaWRdPVwibGlzdFJlZ2lvbklkXCJcclxuICAgIFtjbGFzcy52YWxpZGF0aW9uLXN1bW1hcnlfX2xpc3Qtd3JhcC0tc2Nyb2xsYWJsZV09XCIhIXBhbmVsTWF4SGVpZ2h0ICYmIHBhbmVsQm9keUV4cGFuZGVkXCJcclxuICAgIFtjbGFzcy52YWxpZGF0aW9uLXN1bW1hcnlfX2xpc3Qtd3JhcC0tY29sbGFwc2VkXT1cIiFwYW5lbEJvZHlFeHBhbmRlZFwiXHJcbiAgICBbc3R5bGUubWF4LWhlaWdodF09XCJwYW5lbEJvZHlFeHBhbmRlZCA/IChwYW5lbE1heEhlaWdodCB8fCBudWxsKSA6IG51bGxcIiBbYXR0ci50aXRsZV09XCJmaWVsZE5hdmlnYXRlSGludFwiPlxyXG4gICAgPHVsIGNsYXNzPVwidmFsaWRhdGlvbi1zdW1tYXJ5X19saXN0XCIgcm9sZT1cImxpc3RcIj5cclxuICAgICAgQGZvciAocm93IG9mIHJlc29sdmVkSXRlbXM7IHRyYWNrIGl0ZW1UcmFja0tleShyb3csICRpbmRleCkpIHtcclxuICAgICAgPGxpIGNsYXNzPVwidmFsaWRhdGlvbi1zdW1tYXJ5X19pdGVtXCIgcm9sZT1cImxpc3RpdGVtXCIgKGNsaWNrKT1cIm9uU3VtbWFyeUxpbmtBY3RpdmF0ZSgkZXZlbnQsIHJvdylcIj5cclxuICAgICAgICBAaWYgKHJvdy5maWVsZElkKSB7XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJ2YWxpZGF0aW9uLXN1bW1hcnlfX2xpbmtcIiBbYXR0ci50aXRsZV09XCJmaWVsZE5hdmlnYXRlSGludFwiPlxyXG4gICAgICAgICAge3sgcm93Lm1lc3NhZ2UgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICA8c3BhbiBjbGFzcz1cInZhbGlkYXRpb24tc3VtbWFyeV9fdGV4dFwiPnt7IHJvdy5tZXNzYWdlIH19PC9zcGFuPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9saT5cclxuICAgICAgfVxyXG4gICAgPC91bD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbn0iXX0=
|
|
@@ -12,7 +12,8 @@ export class DrawerComponent {
|
|
|
12
12
|
this.open = false;
|
|
13
13
|
this.side = DrawerSide.Right;
|
|
14
14
|
this.size = DrawerSize.Md;
|
|
15
|
-
|
|
15
|
+
/** `title="…"` no template — evita colisão com `HTMLElement.title` no host. */
|
|
16
|
+
this.drawerHeading = '';
|
|
16
17
|
this.showCloseButton = true;
|
|
17
18
|
this.openChange = new EventEmitter();
|
|
18
19
|
this.DrawerSide = DrawerSide;
|
|
@@ -111,14 +112,14 @@ export class DrawerComponent {
|
|
|
111
112
|
this.focusPreOpen = null;
|
|
112
113
|
}
|
|
113
114
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
114
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DrawerComponent, isStandalone: true, selector: "app-drawer", inputs: { open: ["open", "open", booleanAttribute], side: "side", size: "size",
|
|
115
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: DrawerComponent, isStandalone: true, selector: "app-drawer", inputs: { open: ["open", "open", booleanAttribute], side: "side", size: "size", drawerHeading: ["title", "drawerHeading"], showCloseButton: ["showCloseButton", "showCloseButton", booleanAttribute] }, outputs: { openChange: "openChange" }, host: { properties: { "class.app-drawer-host--open": "open" }, classAttribute: "app-drawer-host" }, viewQueries: [{ propertyName: "panelRef", first: true, predicate: ["panelRef"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (open) {\r\n <div\r\n class=\"app-drawer__backdrop\"\r\n role=\"presentation\"\r\n tabindex=\"-1\"\r\n (click)=\"onBackdropClick()\"\r\n ></div>\r\n\r\n <aside\r\n #panelRef\r\n class=\"app-drawer__panel\"\r\n [ngClass]=\"panelClasses\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"drawerHeading.trim() ? titleId : null\"\r\n tabindex=\"-1\"\r\n (keydown)=\"onPanelKeydown($event)\"\r\n >\r\n <header class=\"app-drawer__header\">\r\n @if (drawerHeading.trim()) {\r\n <h2 class=\"app-drawer__title\" [id]=\"titleId\">{{ drawerHeading }}</h2>\r\n }\r\n @if (showCloseButton) {\r\n <button\r\n type=\"button\"\r\n class=\"app-drawer__close\"\r\n aria-label=\"Fechar painel\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n <span class=\"app-drawer__close-x\" aria-hidden=\"true\">×</span>\r\n </button>\r\n }\r\n </header>\r\n\r\n <div class=\"app-drawer__body\">\r\n <ng-content />\r\n </div>\r\n\r\n <footer class=\"app-drawer__footer\">\r\n <ng-content select=\"[appDrawerFooter]\" />\r\n </footer>\r\n </aside>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:block}.app-drawer__backdrop{position:fixed;inset:0;z-index:var(--app-z-drawer-backdrop, 1100);background:#1a2f456b;backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px) saturate(1.05);animation:app-drawer-backdrop-in .22s ease-out both}@keyframes app-drawer-backdrop-in{0%{backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}to{backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px) saturate(1.05)}}.app-drawer__panel{position:fixed;z-index:var(--app-z-drawer-panel, 1101);display:flex;flex-direction:column;max-width:100vw;max-height:100vh;box-sizing:border-box;background:var(--app-color-surface, #fff);border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));box-shadow:-4px 0 24px var(--app-color-elevated-shadow, rgba(43, 127, 217, .07));outline:none}.app-drawer__panel--side-right{top:0;right:0;bottom:0;animation:app-drawer-slide-in-right .24s ease-out}.app-drawer__panel--side-left{top:0;left:0;bottom:0;animation:app-drawer-slide-in-left .24s ease-out;box-shadow:4px 0 24px var(--app-color-elevated-shadow, rgba(43, 127, 217, .07))}.app-drawer__panel--side-bottom{inset:auto 0 0;max-height:min(88vh,32rem);border-radius:8px 8px 0 0;animation:app-drawer-slide-in-bottom .24s ease-out}.app-drawer__panel--side-right.app-drawer__panel--size-sm,.app-drawer__panel--side-left.app-drawer__panel--size-sm{width:min(18rem,90vw)}.app-drawer__panel--side-right.app-drawer__panel--size-md,.app-drawer__panel--side-left.app-drawer__panel--size-md{width:min(24rem,90vw)}.app-drawer__panel--side-right.app-drawer__panel--size-lg,.app-drawer__panel--side-left.app-drawer__panel--size-lg{width:min(32rem,90vw)}.app-drawer__panel--side-bottom.app-drawer__panel--size-sm{min-height:12rem}.app-drawer__panel--side-bottom.app-drawer__panel--size-md{min-height:16rem}.app-drawer__panel--side-bottom.app-drawer__panel--size-lg{min-height:22rem}@keyframes app-drawer-slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes app-drawer-slide-in-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes app-drawer-slide-in-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.app-drawer__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1rem .75rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));flex:0 0 auto}.app-drawer__title{margin:0;font-size:1.05rem;font-weight:600;color:var(--app-color-text-primary, #1a2f45);line-height:1.3;flex:1;min-width:0}.app-drawer__close{flex:0 0 auto;width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;border:1px solid var(--app-color-border, #d4d4d4);background:var(--app-color-surface-alt, #fff);color:var(--app-color-text-secondary, #5a7fa3);cursor:pointer;margin:0;padding:0}.app-drawer__close:hover{background:var(--app-color-hover-bg, rgba(43, 127, 217, .08))}.app-drawer__close:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}.app-drawer__close-x{font-size:1.35rem;line-height:1}.app-drawer__body{flex:1 1 auto;min-height:0;overflow:auto;padding:1rem;color:var(--app-color-text-primary, #1a2f45);font-size:.9rem;line-height:1.5}.app-drawer__footer{flex:0 0 auto;padding:.75rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.app-drawer__footer:empty{display:none;padding:0;border:none}@media (prefers-reduced-motion: reduce){.app-drawer__backdrop{animation:none}}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
115
116
|
}
|
|
116
117
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DrawerComponent, decorators: [{
|
|
117
118
|
type: Component,
|
|
118
119
|
args: [{ selector: 'app-drawer', standalone: true, imports: [NgClass], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
119
120
|
class: 'app-drawer-host',
|
|
120
121
|
'[class.app-drawer-host--open]': 'open',
|
|
121
|
-
}, template: "@if (open) {\r\n <div\r\n class=\"app-drawer__backdrop\"\r\n role=\"presentation\"\r\n tabindex=\"-1\"\r\n (click)=\"onBackdropClick()\"\r\n ></div>\r\n\r\n <aside\r\n #panelRef\r\n class=\"app-drawer__panel\"\r\n [ngClass]=\"panelClasses\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"
|
|
122
|
+
}, template: "@if (open) {\r\n <div\r\n class=\"app-drawer__backdrop\"\r\n role=\"presentation\"\r\n tabindex=\"-1\"\r\n (click)=\"onBackdropClick()\"\r\n ></div>\r\n\r\n <aside\r\n #panelRef\r\n class=\"app-drawer__panel\"\r\n [ngClass]=\"panelClasses\"\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n [attr.aria-labelledby]=\"drawerHeading.trim() ? titleId : null\"\r\n tabindex=\"-1\"\r\n (keydown)=\"onPanelKeydown($event)\"\r\n >\r\n <header class=\"app-drawer__header\">\r\n @if (drawerHeading.trim()) {\r\n <h2 class=\"app-drawer__title\" [id]=\"titleId\">{{ drawerHeading }}</h2>\r\n }\r\n @if (showCloseButton) {\r\n <button\r\n type=\"button\"\r\n class=\"app-drawer__close\"\r\n aria-label=\"Fechar painel\"\r\n (click)=\"onCloseClick()\"\r\n >\r\n <span class=\"app-drawer__close-x\" aria-hidden=\"true\">×</span>\r\n </button>\r\n }\r\n </header>\r\n\r\n <div class=\"app-drawer__body\">\r\n <ng-content />\r\n </div>\r\n\r\n <footer class=\"app-drawer__footer\">\r\n <ng-content select=\"[appDrawerFooter]\" />\r\n </footer>\r\n </aside>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:block}.app-drawer__backdrop{position:fixed;inset:0;z-index:var(--app-z-drawer-backdrop, 1100);background:#1a2f456b;backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px) saturate(1.05);animation:app-drawer-backdrop-in .22s ease-out both}@keyframes app-drawer-backdrop-in{0%{backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}to{backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px) saturate(1.05)}}.app-drawer__panel{position:fixed;z-index:var(--app-z-drawer-panel, 1101);display:flex;flex-direction:column;max-width:100vw;max-height:100vh;box-sizing:border-box;background:var(--app-color-surface, #fff);border:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));box-shadow:-4px 0 24px var(--app-color-elevated-shadow, rgba(43, 127, 217, .07));outline:none}.app-drawer__panel--side-right{top:0;right:0;bottom:0;animation:app-drawer-slide-in-right .24s ease-out}.app-drawer__panel--side-left{top:0;left:0;bottom:0;animation:app-drawer-slide-in-left .24s ease-out;box-shadow:4px 0 24px var(--app-color-elevated-shadow, rgba(43, 127, 217, .07))}.app-drawer__panel--side-bottom{inset:auto 0 0;max-height:min(88vh,32rem);border-radius:8px 8px 0 0;animation:app-drawer-slide-in-bottom .24s ease-out}.app-drawer__panel--side-right.app-drawer__panel--size-sm,.app-drawer__panel--side-left.app-drawer__panel--size-sm{width:min(18rem,90vw)}.app-drawer__panel--side-right.app-drawer__panel--size-md,.app-drawer__panel--side-left.app-drawer__panel--size-md{width:min(24rem,90vw)}.app-drawer__panel--side-right.app-drawer__panel--size-lg,.app-drawer__panel--side-left.app-drawer__panel--size-lg{width:min(32rem,90vw)}.app-drawer__panel--side-bottom.app-drawer__panel--size-sm{min-height:12rem}.app-drawer__panel--side-bottom.app-drawer__panel--size-md{min-height:16rem}.app-drawer__panel--side-bottom.app-drawer__panel--size-lg{min-height:22rem}@keyframes app-drawer-slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes app-drawer-slide-in-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes app-drawer-slide-in-bottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.app-drawer__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1rem .75rem;border-bottom:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));flex:0 0 auto}.app-drawer__title{margin:0;font-size:1.05rem;font-weight:600;color:var(--app-color-text-primary, #1a2f45);line-height:1.3;flex:1;min-width:0}.app-drawer__close{flex:0 0 auto;width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;border:1px solid var(--app-color-border, #d4d4d4);background:var(--app-color-surface-alt, #fff);color:var(--app-color-text-secondary, #5a7fa3);cursor:pointer;margin:0;padding:0}.app-drawer__close:hover{background:var(--app-color-hover-bg, rgba(43, 127, 217, .08))}.app-drawer__close:focus-visible{outline:2px solid var(--app-color-focus-ring-strong, rgba(43, 127, 217, .45));outline-offset:2px}.app-drawer__close-x{font-size:1.35rem;line-height:1}.app-drawer__body{flex:1 1 auto;min-height:0;overflow:auto;padding:1rem;color:var(--app-color-text-primary, #1a2f45);font-size:.9rem;line-height:1.5}.app-drawer__footer{flex:0 0 auto;padding:.75rem 1rem 1rem;border-top:1px solid var(--app-color-border-subtle, rgba(26, 47, 69, .09));display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.app-drawer__footer:empty{display:none;padding:0;border:none}@media (prefers-reduced-motion: reduce){.app-drawer__backdrop{animation:none}}\n"] }]
|
|
122
123
|
}], propDecorators: { open: [{
|
|
123
124
|
type: Input,
|
|
124
125
|
args: [{ transform: booleanAttribute }]
|
|
@@ -126,8 +127,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
126
127
|
type: Input
|
|
127
128
|
}], size: [{
|
|
128
129
|
type: Input
|
|
129
|
-
}],
|
|
130
|
-
type: Input
|
|
130
|
+
}], drawerHeading: [{
|
|
131
|
+
type: Input,
|
|
132
|
+
args: ['title']
|
|
131
133
|
}], showCloseButton: [{
|
|
132
134
|
type: Input,
|
|
133
135
|
args: [{ transform: booleanAttribute }]
|
|
@@ -137,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
137
139
|
type: ViewChild,
|
|
138
140
|
args: ['panelRef']
|
|
139
141
|
}] } });
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbWVudXMvZHJhd2VyL2RyYXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21lbnVzL2RyYXdlci9kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUUxRCxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7QUFjdkIsTUFBTSxPQUFPLGVBQWU7SUFaNUI7UUFhbUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO1FBRWxCLFNBQUksR0FBRyxLQUFLLENBQUM7UUFFNUMsU0FBSSxHQUFlLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFFcEMsU0FBSSxHQUFlLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFFakMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVvQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUU1QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUluRCxlQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxVQUFVLENBQUM7UUFFeEIsWUFBTyxHQUFHLG9CQUFvQixFQUFFLGNBQWMsRUFBRSxDQUFDO1FBRWxELGlCQUFZLEdBQXVCLElBQUksQ0FBQztRQUVoRCwwRkFBMEY7UUFDbEYsc0JBQWlCLEdBQXVCLElBQUksQ0FBQztRQUM3QyxvQkFBZSxHQUFxQixJQUFJLENBQUM7S0FvR2xEO0lBbEdDLElBQUksWUFBWTtRQUNkLE9BQU87WUFDTCxDQUFDLDJCQUEyQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJO1lBQzlDLENBQUMsMkJBQTJCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUk7U0FDL0MsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxZQUFZLFdBQVcsSUFBSSxDQUFDLEtBQUssUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztZQUN4QixDQUFDO1lBQ0QsZUFBZSxDQUNiLEdBQUcsRUFBRTtnQkFDSCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDZCxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxLQUFLLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDL0QsQ0FBQztZQUNILENBQUMsRUFDRCxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQzVCLENBQUM7UUFDSixDQUFDO2FBQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDO1FBQ3JDLElBQUksRUFBRSxDQUFDLGFBQWEsS0FBSyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUMxQyxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDdEMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUNyQyxJQUFJLEVBQUUsQ0FBQyxhQUFhLEtBQUssUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7WUFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDNUIsT0FBTztRQUNULENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDdEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNsQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksTUFBTSxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDN0MsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDdkMsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLE9BQU87WUFDVCxDQUFDO1lBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2QixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxjQUFjLENBQUMsRUFBaUI7UUFDOUIsSUFBSSxFQUFFLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLEVBQUUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDOUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQzsrR0EvSFUsZUFBZTttR0FBZixlQUFlLCtFQUtOLGdCQUFnQix1R0FRaEIsZ0JBQWdCLG1TQ2hEdEMsd3FDQTJDQSw2bUhEakJZLE9BQU87OzRGQVNOLGVBQWU7a0JBWjNCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUCxDQUFDLE9BQU8sQ0FBQyxtQkFHRCx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxpQkFBaUI7d0JBQ3hCLCtCQUErQixFQUFFLE1BQU07cUJBQ3hDOzhCQU91QyxJQUFJO3NCQUEzQyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUU3QixJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFFa0MsZUFBZTtzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFbkIsVUFBVTtzQkFBNUIsTUFBTTtnQkFFd0IsUUFBUTtzQkFBdEMsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHJhd2VyU2lkZSB9IGZyb20gJy4uL19tb2RlbHMvZHJhd2VyLXNpZGUubW9kZWwnO1xuaW1wb3J0IHsgRHJhd2VyU2l6ZSB9IGZyb20gJy4uL19tb2RlbHMvZHJhd2VyLXNpemUubW9kZWwnO1xuXG5sZXQgZHJhd2VyVGl0bGVTZXEgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZHJhd2VyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3NdLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJhd2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2RyYXdlci5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdhcHAtZHJhd2VyLWhvc3QnLFxuICAgICdbY2xhc3MuYXBwLWRyYXdlci1ob3N0LS1vcGVuXSc6ICdvcGVuJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgRHJhd2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IGhvc3RFbCA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIG9wZW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBzaWRlOiBEcmF3ZXJTaWRlID0gRHJhd2VyU2lkZS5SaWdodDtcblxuICBASW5wdXQoKSBzaXplOiBEcmF3ZXJTaXplID0gRHJhd2VyU2l6ZS5NZDtcblxuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBzaG93Q2xvc2VCdXR0b24gPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBvcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIEBWaWV3Q2hpbGQoJ3BhbmVsUmVmJykgcHJpdmF0ZSBwYW5lbFJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHJlYWRvbmx5IERyYXdlclNpZGUgPSBEcmF3ZXJTaWRlO1xuICByZWFkb25seSBEcmF3ZXJTaXplID0gRHJhd2VyU2l6ZTtcblxuICByZWFkb25seSB0aXRsZUlkID0gYGFwcC1kcmF3ZXItdGl0bGUtJHsrK2RyYXdlclRpdGxlU2VxfWA7XG5cbiAgcHJpdmF0ZSBmb2N1c1ByZU9wZW46IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIElndWFsIGFvIGBhcHAtZGlhbG9nYDogYmFja2Ryb3AgKyBwYWluZWwgbm8gYGJvZHlgIHBhcmEgYGJhY2tkcm9wLWZpbHRlcmAgY29ycmVjdG8uICovXG4gIHByaXZhdGUgYm9keVJlc3RvcmVQYXJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgYm9keVJlc3RvcmVOZXh0OiBDaGlsZE5vZGUgfCBudWxsID0gbnVsbDtcblxuICBnZXQgcGFuZWxDbGFzc2VzKCk6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+IHtcbiAgICByZXR1cm4ge1xuICAgICAgW2BhcHAtZHJhd2VyX19wYW5lbC0tc2lkZS0ke3RoaXMuc2lkZX1gXTogdHJ1ZSxcbiAgICAgIFtgYXBwLWRyYXdlcl9fcGFuZWwtLXNpemUtJHt0aGlzLnNpemV9YF06IHRydWUsXG4gICAgfTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIWNoYW5nZXNbJ29wZW4nXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICB0aGlzLmF0dGFjaEhvc3RUb0JvZHkoKTtcbiAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgaWYgKGEgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCAmJiBhICE9PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgIHRoaXMuZm9jdXNQcmVPcGVuID0gYTtcbiAgICAgIH1cbiAgICAgIGFmdGVyTmV4dFJlbmRlcihcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgICAgICAgIHRoaXMucGFuZWxSZWY/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHsgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IgfSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChjaGFuZ2VzWydvcGVuJ10ucHJldmlvdXNWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgdGhpcy5kZXRhY2hIb3N0RnJvbUJvZHkoKTtcbiAgICAgIHRoaXMucmVzdG9yZUZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXRhY2hIb3N0RnJvbUJvZHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXR0YWNoSG9zdFRvQm9keSgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuaG9zdEVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGVsLnBhcmVudEVsZW1lbnQgPT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5ib2R5UmVzdG9yZVBhcmVudCA9IGVsLnBhcmVudEVsZW1lbnQ7XG4gICAgdGhpcy5ib2R5UmVzdG9yZU5leHQgPSBlbC5uZXh0U2libGluZztcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsKTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0YWNoSG9zdEZyb21Cb2R5KCk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gdGhpcy5ob3N0RWwubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoZWwucGFyZW50RWxlbWVudCAhPT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgdGhpcy5ib2R5UmVzdG9yZVBhcmVudCA9IG51bGw7XG4gICAgICB0aGlzLmJvZHlSZXN0b3JlTmV4dCA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuYm9keVJlc3RvcmVQYXJlbnQ7XG4gICAgY29uc3QgbmV4dCA9IHRoaXMuYm9keVJlc3RvcmVOZXh0O1xuICAgIHRoaXMuYm9keVJlc3RvcmVQYXJlbnQgPSBudWxsO1xuICAgIHRoaXMuYm9keVJlc3RvcmVOZXh0ID0gbnVsbDtcbiAgICBpZiAocGFyZW50ICYmIGRvY3VtZW50LmJvZHkuY29udGFpbnMocGFyZW50KSkge1xuICAgICAgaWYgKG5leHQgJiYgbmV4dC5wYXJlbnROb2RlID09PSBwYXJlbnQpIHtcbiAgICAgICAgcGFyZW50Lmluc2VydEJlZm9yZShlbCwgbmV4dCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChlbCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGFwcFJvb3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdhcHAtcm9vdCcpO1xuICAgIGlmIChhcHBSb290KSB7XG4gICAgICBhcHBSb290LmFwcGVuZENoaWxkKGVsKTtcbiAgICB9XG4gIH1cblxuICBvbkJhY2tkcm9wQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5yZXF1ZXN0Q2xvc2UoKTtcbiAgfVxuXG4gIG9uQ2xvc2VDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLnJlcXVlc3RDbG9zZSgpO1xuICB9XG5cbiAgb25QYW5lbEtleWRvd24oZXY6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXYua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgZXYucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMucmVxdWVzdENsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcmVxdWVzdENsb3NlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcGVuKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzdG9yZUZvY3VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvY3VzUHJlT3BlbiAmJiBkb2N1bWVudC5jb250YWlucyh0aGlzLmZvY3VzUHJlT3BlbikpIHtcbiAgICAgIHRoaXMuZm9jdXNQcmVPcGVuLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9XG4gICAgdGhpcy5mb2N1c1ByZU9wZW4gPSBudWxsO1xuICB9XG59XG4iLCJAaWYgKG9wZW4pIHtcclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImFwcC1kcmF3ZXJfX2JhY2tkcm9wXCJcclxuICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxyXG4gICAgdGFiaW5kZXg9XCItMVwiXHJcbiAgICAoY2xpY2spPVwib25CYWNrZHJvcENsaWNrKClcIlxyXG4gID48L2Rpdj5cclxuXHJcbiAgPGFzaWRlXHJcbiAgICAjcGFuZWxSZWZcclxuICAgIGNsYXNzPVwiYXBwLWRyYXdlcl9fcGFuZWxcIlxyXG4gICAgW25nQ2xhc3NdPVwicGFuZWxDbGFzc2VzXCJcclxuICAgIHJvbGU9XCJkaWFsb2dcIlxyXG4gICAgYXJpYS1tb2RhbD1cInRydWVcIlxyXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cInRpdGxlLnRyaW0oKSA/IHRpdGxlSWQgOiBudWxsXCJcclxuICAgIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgKGtleWRvd24pPVwib25QYW5lbEtleWRvd24oJGV2ZW50KVwiXHJcbiAgPlxyXG4gICAgPGhlYWRlciBjbGFzcz1cImFwcC1kcmF3ZXJfX2hlYWRlclwiPlxyXG4gICAgICBAaWYgKHRpdGxlLnRyaW0oKSkge1xyXG4gICAgICAgIDxoMiBjbGFzcz1cImFwcC1kcmF3ZXJfX3RpdGxlXCIgW2lkXT1cInRpdGxlSWRcIj57eyB0aXRsZSB9fTwvaDI+XHJcbiAgICAgIH1cclxuICAgICAgQGlmIChzaG93Q2xvc2VCdXR0b24pIHtcclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgIGNsYXNzPVwiYXBwLWRyYXdlcl9fY2xvc2VcIlxyXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkZlY2hhciBwYWluZWxcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2VDbGljaygpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFwcC1kcmF3ZXJfX2Nsb3NlLXhcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4mdGltZXM7PC9zcGFuPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L2hlYWRlcj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiYXBwLWRyYXdlcl9fYm9keVwiPlxyXG4gICAgICA8bmctY29udGVudCAvPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGZvb3RlciBjbGFzcz1cImFwcC1kcmF3ZXJfX2Zvb3RlclwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbYXBwRHJhd2VyRm9vdGVyXVwiIC8+XHJcbiAgICA8L2Zvb3Rlcj5cclxuICA8L2FzaWRlPlxyXG59XHJcbiJdfQ==
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhd2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbWVudXMvZHJhd2VyL2RyYXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21lbnVzL2RyYXdlci9kcmF3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBR0wsTUFBTSxFQUVOLFNBQVMsRUFDVCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQUUxRCxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUM7QUFjdkIsTUFBTSxPQUFPLGVBQWU7SUFaNUI7UUFhbUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDO1FBRWxCLFNBQUksR0FBRyxLQUFLLENBQUM7UUFFNUMsU0FBSSxHQUFlLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFFcEMsU0FBSSxHQUFlLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFFMUMsK0VBQStFO1FBQy9ELGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBRUssb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFFNUMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7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UUFDbkQsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7K0dBaElVLGVBQWU7bUdBQWYsZUFBZSwrRUFLTixnQkFBZ0Isa0lBU2hCLGdCQUFnQixtU0NqRHRDLGdzQ0EyQ0EsNm1IRGpCWSxPQUFPOzs0RkFTTixlQUFlO2tCQVozQixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLFdBQ1AsQ0FBQyxPQUFPLENBQUMsbUJBR0QsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixLQUFLLEVBQUUsaUJBQWlCO3dCQUN4QiwrQkFBK0IsRUFBRSxNQUFNO3FCQUN4Qzs4QkFPdUMsSUFBSTtzQkFBM0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFFN0IsSUFBSTtzQkFBWixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFHVSxhQUFhO3NCQUE1QixLQUFLO3VCQUFDLE9BQU87Z0JBRTBCLGVBQWU7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRW5CLFVBQVU7c0JBQTVCLE1BQU07Z0JBRXdCLFFBQVE7c0JBQXRDLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERyYXdlclNpZGUgfSBmcm9tICcuLi9fbW9kZWxzL2RyYXdlci1zaWRlLm1vZGVsJztcbmltcG9ydCB7IERyYXdlclNpemUgfSBmcm9tICcuLi9fbW9kZWxzL2RyYXdlci1zaXplLm1vZGVsJztcblxubGV0IGRyYXdlclRpdGxlU2VxID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRyYXdlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0NsYXNzXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RyYXdlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kcmF3ZXIuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnYXBwLWRyYXdlci1ob3N0JyxcbiAgICAnW2NsYXNzLmFwcC1kcmF3ZXItaG9zdC0tb3Blbl0nOiAnb3BlbicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIERyYXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBob3N0RWwgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBvcGVuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2lkZTogRHJhd2VyU2lkZSA9IERyYXdlclNpZGUuUmlnaHQ7XG5cbiAgQElucHV0KCkgc2l6ZTogRHJhd2VyU2l6ZSA9IERyYXdlclNpemUuTWQ7XG5cbiAgLyoqIGB0aXRsZT1cIuKAplwiYCBubyB0ZW1wbGF0ZSDigJQgZXZpdGEgY29saXPDo28gY29tIGBIVE1MRWxlbWVudC50aXRsZWAgbm8gaG9zdC4gKi9cbiAgQElucHV0KCd0aXRsZScpIGRyYXdlckhlYWRpbmcgPSAnJztcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hvd0Nsb3NlQnV0dG9uID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgb3BlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBAVmlld0NoaWxkKCdwYW5lbFJlZicpIHByaXZhdGUgcGFuZWxSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICByZWFkb25seSBEcmF3ZXJTaWRlID0gRHJhd2VyU2lkZTtcbiAgcmVhZG9ubHkgRHJhd2VyU2l6ZSA9IERyYXdlclNpemU7XG5cbiAgcmVhZG9ubHkgdGl0bGVJZCA9IGBhcHAtZHJhd2VyLXRpdGxlLSR7KytkcmF3ZXJUaXRsZVNlcX1gO1xuXG4gIHByaXZhdGUgZm9jdXNQcmVPcGVuOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBJZ3VhbCBhbyBgYXBwLWRpYWxvZ2A6IGJhY2tkcm9wICsgcGFpbmVsIG5vIGBib2R5YCBwYXJhIGBiYWNrZHJvcC1maWx0ZXJgIGNvcnJlY3RvLiAqL1xuICBwcml2YXRlIGJvZHlSZXN0b3JlUGFyZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGJvZHlSZXN0b3JlTmV4dDogQ2hpbGROb2RlIHwgbnVsbCA9IG51bGw7XG5cbiAgZ2V0IHBhbmVsQ2xhc3NlcygpOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIFtgYXBwLWRyYXdlcl9fcGFuZWwtLXNpZGUtJHt0aGlzLnNpZGV9YF06IHRydWUsXG4gICAgICBbYGFwcC1kcmF3ZXJfX3BhbmVsLS1zaXplLSR7dGhpcy5zaXplfWBdOiB0cnVlLFxuICAgIH07XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKCFjaGFuZ2VzWydvcGVuJ10pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMub3Blbikge1xuICAgICAgdGhpcy5hdHRhY2hIb3N0VG9Cb2R5KCk7XG4gICAgICBjb25zdCBhID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcbiAgICAgIGlmIChhIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQgJiYgYSAhPT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgICB0aGlzLmZvY3VzUHJlT3BlbiA9IGE7XG4gICAgICB9XG4gICAgICBhZnRlck5leHRSZW5kZXIoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICAgICAgICB0aGlzLnBhbmVsUmVmPy5uYXRpdmVFbGVtZW50Py5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7IGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0sXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoY2hhbmdlc1snb3BlbiddLnByZXZpb3VzVmFsdWUgPT09IHRydWUpIHtcbiAgICAgIHRoaXMuZGV0YWNoSG9zdEZyb21Cb2R5KCk7XG4gICAgICB0aGlzLnJlc3RvcmVGb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGV0YWNoSG9zdEZyb21Cb2R5KCk7XG4gIH1cblxuICBwcml2YXRlIGF0dGFjaEhvc3RUb0JvZHkoKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmhvc3RFbC5uYXRpdmVFbGVtZW50O1xuICAgIGlmIChlbC5wYXJlbnRFbGVtZW50ID09PSBkb2N1bWVudC5ib2R5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuYm9keVJlc3RvcmVQYXJlbnQgPSBlbC5wYXJlbnRFbGVtZW50O1xuICAgIHRoaXMuYm9keVJlc3RvcmVOZXh0ID0gZWwubmV4dFNpYmxpbmc7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbCk7XG4gIH1cblxuICBwcml2YXRlIGRldGFjaEhvc3RGcm9tQm9keSgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuaG9zdEVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGVsLnBhcmVudEVsZW1lbnQgIT09IGRvY3VtZW50LmJvZHkpIHtcbiAgICAgIHRoaXMuYm9keVJlc3RvcmVQYXJlbnQgPSBudWxsO1xuICAgICAgdGhpcy5ib2R5UmVzdG9yZU5leHQgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmJvZHlSZXN0b3JlUGFyZW50O1xuICAgIGNvbnN0IG5leHQgPSB0aGlzLmJvZHlSZXN0b3JlTmV4dDtcbiAgICB0aGlzLmJvZHlSZXN0b3JlUGFyZW50ID0gbnVsbDtcbiAgICB0aGlzLmJvZHlSZXN0b3JlTmV4dCA9IG51bGw7XG4gICAgaWYgKHBhcmVudCAmJiBkb2N1bWVudC5ib2R5LmNvbnRhaW5zKHBhcmVudCkpIHtcbiAgICAgIGlmIChuZXh0ICYmIG5leHQucGFyZW50Tm9kZSA9PT0gcGFyZW50KSB7XG4gICAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoZWwsIG5leHQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoZWwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBhcHBSb290ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYXBwLXJvb3QnKTtcbiAgICBpZiAoYXBwUm9vdCkge1xuICAgICAgYXBwUm9vdC5hcHBlbmRDaGlsZChlbCk7XG4gICAgfVxuICB9XG5cbiAgb25CYWNrZHJvcENsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMucmVxdWVzdENsb3NlKCk7XG4gIH1cblxuICBvbkNsb3NlQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5yZXF1ZXN0Q2xvc2UoKTtcbiAgfVxuXG4gIG9uUGFuZWxLZXlkb3duKGV2OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGV2LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgIGV2LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnJlcXVlc3RDbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlcXVlc3RDbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3Blbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIHJlc3RvcmVGb2N1cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb2N1c1ByZU9wZW4gJiYgZG9jdW1lbnQuY29udGFpbnModGhpcy5mb2N1c1ByZU9wZW4pKSB7XG4gICAgICB0aGlzLmZvY3VzUHJlT3Blbi5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfVxuICAgIHRoaXMuZm9jdXNQcmVPcGVuID0gbnVsbDtcbiAgfVxufVxuIiwiQGlmIChvcGVuKSB7XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJhcHAtZHJhd2VyX19iYWNrZHJvcFwiXHJcbiAgICByb2xlPVwicHJlc2VudGF0aW9uXCJcclxuICAgIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgKGNsaWNrKT1cIm9uQmFja2Ryb3BDbGljaygpXCJcclxuICA+PC9kaXY+XHJcblxyXG4gIDxhc2lkZVxyXG4gICAgI3BhbmVsUmVmXHJcbiAgICBjbGFzcz1cImFwcC1kcmF3ZXJfX3BhbmVsXCJcclxuICAgIFtuZ0NsYXNzXT1cInBhbmVsQ2xhc3Nlc1wiXHJcbiAgICByb2xlPVwiZGlhbG9nXCJcclxuICAgIGFyaWEtbW9kYWw9XCJ0cnVlXCJcclxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJkcmF3ZXJIZWFkaW5nLnRyaW0oKSA/IHRpdGxlSWQgOiBudWxsXCJcclxuICAgIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgKGtleWRvd24pPVwib25QYW5lbEtleWRvd24oJGV2ZW50KVwiXHJcbiAgPlxyXG4gICAgPGhlYWRlciBjbGFzcz1cImFwcC1kcmF3ZXJfX2hlYWRlclwiPlxyXG4gICAgICBAaWYgKGRyYXdlckhlYWRpbmcudHJpbSgpKSB7XHJcbiAgICAgICAgPGgyIGNsYXNzPVwiYXBwLWRyYXdlcl9fdGl0bGVcIiBbaWRdPVwidGl0bGVJZFwiPnt7IGRyYXdlckhlYWRpbmcgfX08L2gyPlxyXG4gICAgICB9XHJcbiAgICAgIEBpZiAoc2hvd0Nsb3NlQnV0dG9uKSB7XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBjbGFzcz1cImFwcC1kcmF3ZXJfX2Nsb3NlXCJcclxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJGZWNoYXIgcGFpbmVsXCJcclxuICAgICAgICAgIChjbGljayk9XCJvbkNsb3NlQ2xpY2soKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhcHAtZHJhd2VyX19jbG9zZS14XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+JnRpbWVzOzwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgfVxyXG4gICAgPC9oZWFkZXI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImFwcC1kcmF3ZXJfX2JvZHlcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgLz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxmb290ZXIgY2xhc3M9XCJhcHAtZHJhd2VyX19mb290ZXJcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2FwcERyYXdlckZvb3Rlcl1cIiAvPlxyXG4gICAgPC9mb290ZXI+XHJcbiAgPC9hc2lkZT5cclxufVxyXG4iXX0=
|