@hmcts/rpx-xui-common-lib 2.0.16 → 2.0.17-node-store-caseworkers
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/esm2020/lib/components/accessibility/accessibility.component.mjs +382 -370
- package/esm2020/lib/components/cookie-banner/cookie-banner.component.mjs +3 -3
- package/esm2020/lib/components/find-service/find-service.component.mjs +14 -9
- package/esm2020/lib/components/selected-case-confirm/selected-case-confirm.component.mjs +30 -25
- package/esm2020/lib/components/share-case/share-case.component.mjs +71 -61
- package/esm2020/lib/gov-ui/components/hmcts-identity-bar/hmcts-identity-bar.component.mjs +2 -2
- package/esm2020/lib/services/find-person/find-person.service.mjs +6 -37
- package/fesm2015/hmcts-rpx-xui-common-lib.mjs +464 -480
- package/fesm2015/hmcts-rpx-xui-common-lib.mjs.map +1 -1
- package/fesm2020/hmcts-rpx-xui-common-lib.mjs +461 -480
- package/fesm2020/hmcts-rpx-xui-common-lib.mjs.map +1 -1
- package/package.json +1 -1
- package/esm2020/lib/gov-ui/models/isession-storage.interface.mjs +0 -2
- package/esm2020/lib/gov-ui/util/session-storage/session-storage-utils.mjs +0 -22
- package/lib/gov-ui/models/isession-storage.interface.d.ts +0 -4
- package/lib/gov-ui/util/session-storage/session-storage-utils.d.ts +0 -6
|
@@ -16,7 +16,7 @@ import * as i7 from "../../gov-ui/components/hmcts-error-summary/hmcts-error-sum
|
|
|
16
16
|
import * as i8 from "../../gov-ui/components/gov-uk-error-message/gov-uk-error-message.component";
|
|
17
17
|
import * as i9 from "rpx-xui-translation";
|
|
18
18
|
function ShareCaseComponent_h1_1_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
-
i0.ɵɵelementStart(0, "span",
|
|
19
|
+
i0.ɵɵelementStart(0, "span", 27);
|
|
20
20
|
i0.ɵɵtext(1);
|
|
21
21
|
i0.ɵɵpipe(2, "rpxTranslate");
|
|
22
22
|
i0.ɵɵelementEnd();
|
|
@@ -26,8 +26,8 @@ function ShareCaseComponent_h1_1_span_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
26
26
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, ctx_r4.fnTitle));
|
|
27
27
|
} }
|
|
28
28
|
function ShareCaseComponent_h1_1_Template(rf, ctx) { if (rf & 1) {
|
|
29
|
-
i0.ɵɵelementStart(0, "h1",
|
|
30
|
-
i0.ɵɵtemplate(1, ShareCaseComponent_h1_1_span_1_Template, 3, 3, "span",
|
|
29
|
+
i0.ɵɵelementStart(0, "h1", 25);
|
|
30
|
+
i0.ɵɵtemplate(1, ShareCaseComponent_h1_1_span_1_Template, 3, 3, "span", 26);
|
|
31
31
|
i0.ɵɵtext(2);
|
|
32
32
|
i0.ɵɵpipe(3, "rpxTranslate");
|
|
33
33
|
i0.ɵɵelementEnd();
|
|
@@ -38,8 +38,8 @@ function ShareCaseComponent_h1_1_Template(rf, ctx) { if (rf & 1) {
|
|
|
38
38
|
i0.ɵɵadvance(1);
|
|
39
39
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 2, ctx_r0.title), "\n");
|
|
40
40
|
} }
|
|
41
|
-
function
|
|
42
|
-
i0.ɵɵelementStart(0, "option",
|
|
41
|
+
function ShareCaseComponent_div_29_option_12_Template(rf, ctx) { if (rf & 1) {
|
|
42
|
+
i0.ɵɵelementStart(0, "option", 34);
|
|
43
43
|
i0.ɵɵtext(1);
|
|
44
44
|
i0.ɵɵelementEnd();
|
|
45
45
|
} if (rf & 2) {
|
|
@@ -48,35 +48,38 @@ function ShareCaseComponent_div_26_option_12_Template(rf, ctx) { if (rf & 1) {
|
|
|
48
48
|
i0.ɵɵadvance(1);
|
|
49
49
|
i0.ɵɵtextInterpolate3("", user_r6.firstName, " ", user_r6.lastName, " - ", user_r6.email, "");
|
|
50
50
|
} }
|
|
51
|
-
function
|
|
51
|
+
function ShareCaseComponent_div_29_Template(rf, ctx) { if (rf & 1) {
|
|
52
52
|
const _r8 = i0.ɵɵgetCurrentView();
|
|
53
|
-
i0.ɵɵelementStart(0, "div", 3)(1, "label",
|
|
53
|
+
i0.ɵɵelementStart(0, "div", 3)(1, "label", 28);
|
|
54
54
|
i0.ɵɵtext(2);
|
|
55
55
|
i0.ɵɵpipe(3, "rpxTranslate");
|
|
56
56
|
i0.ɵɵelementEnd();
|
|
57
|
-
i0.ɵɵelementStart(4, "span",
|
|
57
|
+
i0.ɵɵelementStart(4, "span", 29);
|
|
58
58
|
i0.ɵɵtext(5);
|
|
59
59
|
i0.ɵɵpipe(6, "rpxTranslate");
|
|
60
60
|
i0.ɵɵelementEnd();
|
|
61
|
-
i0.ɵɵelementStart(7, "div", 6)(8, "div", 7)(9, "select",
|
|
62
|
-
i0.ɵɵlistener("ngModelChange", function
|
|
63
|
-
i0.ɵɵelementStart(10, "option",
|
|
61
|
+
i0.ɵɵelementStart(7, "div", 6)(8, "div", 7)(9, "select", 30);
|
|
62
|
+
i0.ɵɵlistener("ngModelChange", function ShareCaseComponent_div_29_Template_select_ngModelChange_9_listener($event) { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r7.selectedUserToRemove = $event); });
|
|
63
|
+
i0.ɵɵelementStart(10, "option", 31);
|
|
64
64
|
i0.ɵɵtext(11, "Select a person");
|
|
65
65
|
i0.ɵɵelementEnd();
|
|
66
|
-
i0.ɵɵtemplate(12,
|
|
66
|
+
i0.ɵɵtemplate(12, ShareCaseComponent_div_29_option_12_Template, 2, 4, "option", 32);
|
|
67
67
|
i0.ɵɵelementEnd()();
|
|
68
|
-
i0.ɵɵelementStart(13, "div", 9)(14, "button",
|
|
69
|
-
i0.ɵɵlistener("click", function
|
|
68
|
+
i0.ɵɵelementStart(13, "div", 9)(14, "button", 33);
|
|
69
|
+
i0.ɵɵlistener("click", function ShareCaseComponent_div_29_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r8); const ctx_r9 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r9.removeUser()); });
|
|
70
70
|
i0.ɵɵpipe(15, "rpxTranslate");
|
|
71
71
|
i0.ɵɵtext(16);
|
|
72
72
|
i0.ɵɵpipe(17, "rpxTranslate");
|
|
73
|
-
i0.ɵɵ
|
|
73
|
+
i0.ɵɵelementStart(18, "span", 11);
|
|
74
|
+
i0.ɵɵtext(19);
|
|
75
|
+
i0.ɵɵpipe(20, "rpxTranslate");
|
|
76
|
+
i0.ɵɵelementEnd()()()()();
|
|
74
77
|
} if (rf & 2) {
|
|
75
78
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
76
79
|
i0.ɵɵadvance(2);
|
|
77
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3,
|
|
80
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 8, "Remove a person from all cases"), " ");
|
|
78
81
|
i0.ɵɵadvance(3);
|
|
79
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6,
|
|
82
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(6, 10, "Select a person to remove them from all selected cases."), " ");
|
|
80
83
|
i0.ɵɵadvance(4);
|
|
81
84
|
i0.ɵɵproperty("ngModel", ctx_r1.selectedUserToRemove);
|
|
82
85
|
i0.ɵɵadvance(1);
|
|
@@ -84,14 +87,16 @@ function ShareCaseComponent_div_26_Template(rf, ctx) { if (rf & 1) {
|
|
|
84
87
|
i0.ɵɵadvance(2);
|
|
85
88
|
i0.ɵɵproperty("ngForOf", ctx_r1.assignedUsers);
|
|
86
89
|
i0.ɵɵadvance(2);
|
|
87
|
-
i0.ɵɵpropertyInterpolate("title", i0.ɵɵpipeBind1(15,
|
|
90
|
+
i0.ɵɵpropertyInterpolate("title", i0.ɵɵpipeBind1(15, 12, "Remove user from selected cases"));
|
|
88
91
|
i0.ɵɵadvance(2);
|
|
89
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(17,
|
|
92
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(17, 14, "Remove"), " ");
|
|
93
|
+
i0.ɵɵadvance(3);
|
|
94
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(20, 16, "user"), "");
|
|
90
95
|
} }
|
|
91
|
-
function
|
|
96
|
+
function ShareCaseComponent_div_35_Template(rf, ctx) { if (rf & 1) {
|
|
92
97
|
const _r11 = i0.ɵɵgetCurrentView();
|
|
93
|
-
i0.ɵɵelementStart(0, "div",
|
|
94
|
-
i0.ɵɵlistener("unselect", function
|
|
98
|
+
i0.ɵɵelementStart(0, "div", 35)(1, "xuilib-selected-case-list", 36);
|
|
99
|
+
i0.ɵɵlistener("unselect", function ShareCaseComponent_div_35_Template_xuilib_selected_case_list_unselect_1_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.onUnselect($event)); })("synchronizeStore", function ShareCaseComponent_div_35_Template_xuilib_selected_case_list_synchronizeStore_1_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.onSynchronizeStore($event)); });
|
|
95
100
|
i0.ɵɵelementEnd()();
|
|
96
101
|
} if (rf & 2) {
|
|
97
102
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
@@ -99,8 +104,8 @@ function ShareCaseComponent_div_32_Template(rf, ctx) { if (rf & 1) {
|
|
|
99
104
|
i0.ɵɵproperty("shareCases$", ctx_r2.shareCases$)("removeUserFromCaseToggleOn", ctx_r2.removeUserFromCaseToggleOn);
|
|
100
105
|
} }
|
|
101
106
|
const _c0 = function (a0) { return { "govuk-form-group--error": a0 }; };
|
|
102
|
-
function
|
|
103
|
-
i0.ɵɵelementStart(0, "div",
|
|
107
|
+
function ShareCaseComponent_div_36_Template(rf, ctx) { if (rf & 1) {
|
|
108
|
+
i0.ɵɵelementStart(0, "div", 37);
|
|
104
109
|
i0.ɵɵtext(1);
|
|
105
110
|
i0.ɵɵpipe(2, "rpxTranslate");
|
|
106
111
|
i0.ɵɵelementEnd();
|
|
@@ -288,7 +293,7 @@ ShareCaseComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ShareCas
|
|
|
288
293
|
} if (rf & 2) {
|
|
289
294
|
let _t;
|
|
290
295
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.userSelect = _t.first);
|
|
291
|
-
} }, inputs: { removeUserFromCaseToggleOn: "removeUserFromCaseToggleOn", shareCases$: "shareCases$", users: "users", confirmLink: "confirmLink", cancelLink: "cancelLink", addUserLabel: "addUserLabel", showRemoveUsers: "showRemoveUsers", fnTitle: "fnTitle", title: "title" }, outputs: { unselect: "unselect", synchronizeStore: "synchronizeStore" }, decls:
|
|
296
|
+
} }, inputs: { removeUserFromCaseToggleOn: "removeUserFromCaseToggleOn", shareCases$: "shareCases$", users: "users", confirmLink: "confirmLink", cancelLink: "cancelLink", addUserLabel: "addUserLabel", showRemoveUsers: "showRemoveUsers", fnTitle: "fnTitle", title: "title" }, outputs: { unselect: "unselect", synchronizeStore: "synchronizeStore" }, decls: 46, vars: 50, consts: [[3, "errorMessages", "header"], ["class", "govuk-heading-xl govuk-!-margin-top-2", 4, "ngIf"], ["id", "add-user"], [1, "govuk-form-group"], ["for", "add-user-input", 1, "govuk-label", "govuk-!-font-weight-bold"], ["id", "add-user-hint", 1, "govuk-hint"], [1, "govuk-grid-row"], [1, "govuk-grid-column-two-thirds"], ["id", "add-user-input", "aria-describedby", "add-user-hint", 3, "users", "selected"], [1, "govuk-grid-column-one-thirds"], ["id", "btn-add-user", 1, "govuk-button", "govuk-button--secondary", 3, "disabled", "title", "click"], [1, "govuk-visually-hidden"], ["id", "add-user-help", "data-module", "govuk-details", 1, "govuk-details"], [1, "govuk-details__summary"], ["id", "content-why-can-not-find-email", 1, "govuk-details__summary-text"], ["id", "content-reason-can-not-find-email", 1, "govuk-details__text"], ["class", "govuk-form-group", 4, "ngIf"], ["id", "cases", 3, "ngClass"], ["id", "title-selected-cases", 1, "govuk-heading-m"], [3, "config", "errorMessage"], ["class", "govuk-accordion", "data-module", "govuk-accordion", "id", "accordion-with-summary-sections", 4, "ngIf"], ["id", "noCaseDisplay", "class", "govuk-hint", 3, "ngClass", 4, "ngIf"], ["id", "share-case-nav", 1, "govuk-button-group"], ["id", "btn-continue", "data-module", "govuk-button", 1, "govuk-button", 3, "title", "click"], ["id", "btn-cancel", "data-module", "govuk-button", 1, "govuk-button", "govuk-button--secondary", 3, "title", "routerLink"], [1, "govuk-heading-xl", "govuk-!-margin-top-2"], ["class", "govuk-caption-xl", 4, "ngIf"], [1, "govuk-caption-xl"], ["for", "remove-user-input", 1, "govuk-label", "govuk-!-font-weight-bold"], ["id", "remove-user-hint", 1, "govuk-hint"], ["id", "remove-user-input", "aria-describedby", "remove-user-hint", 1, "govuk-select", 3, "ngModel", "ngModelChange"], ["selected", "", 3, "ngValue"], [3, "ngValue", 4, "ngFor", "ngForOf"], ["id", "btn-remove-user", 1, "govuk-button", "govuk-button--secondary", 3, "title", "click"], [3, "ngValue"], ["data-module", "govuk-accordion", "id", "accordion-with-summary-sections", 1, "govuk-accordion"], [3, "shareCases$", "removeUserFromCaseToggleOn", "unselect", "synchronizeStore"], ["id", "noCaseDisplay", 1, "govuk-hint", 3, "ngClass"]], template: function ShareCaseComponent_Template(rf, ctx) { if (rf & 1) {
|
|
292
297
|
i0.ɵɵelement(0, "xuilib-hmcts-error-summary", 0);
|
|
293
298
|
i0.ɵɵtemplate(1, ShareCaseComponent_h1_1_Template, 4, 4, "h1", 1);
|
|
294
299
|
i0.ɵɵelementStart(2, "div", 2)(3, "div", 3)(4, "label", 4);
|
|
@@ -307,61 +312,66 @@ ShareCaseComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ShareCas
|
|
|
307
312
|
i0.ɵɵpipe(15, "rpxTranslate");
|
|
308
313
|
i0.ɵɵtext(16);
|
|
309
314
|
i0.ɵɵpipe(17, "rpxTranslate");
|
|
310
|
-
i0.ɵɵ
|
|
311
|
-
i0.ɵɵ
|
|
312
|
-
i0.ɵɵ
|
|
313
|
-
i0.ɵɵ
|
|
314
|
-
i0.ɵɵ
|
|
315
|
-
i0.ɵɵelementStart(23, "div", 14);
|
|
315
|
+
i0.ɵɵelementStart(18, "span", 11);
|
|
316
|
+
i0.ɵɵtext(19);
|
|
317
|
+
i0.ɵɵpipe(20, "rpxTranslate");
|
|
318
|
+
i0.ɵɵelementEnd()()()();
|
|
319
|
+
i0.ɵɵelementStart(21, "details", 12)(22, "summary", 13)(23, "span", 14);
|
|
316
320
|
i0.ɵɵtext(24);
|
|
317
321
|
i0.ɵɵpipe(25, "rpxTranslate");
|
|
322
|
+
i0.ɵɵelementEnd()();
|
|
323
|
+
i0.ɵɵelementStart(26, "div", 15);
|
|
324
|
+
i0.ɵɵtext(27);
|
|
325
|
+
i0.ɵɵpipe(28, "rpxTranslate");
|
|
318
326
|
i0.ɵɵelementEnd()()();
|
|
319
|
-
i0.ɵɵtemplate(
|
|
327
|
+
i0.ɵɵtemplate(29, ShareCaseComponent_div_29_Template, 21, 18, "div", 16);
|
|
320
328
|
i0.ɵɵelementEnd();
|
|
321
|
-
i0.ɵɵelementStart(
|
|
322
|
-
i0.ɵɵtext(
|
|
323
|
-
i0.ɵɵpipe(
|
|
329
|
+
i0.ɵɵelementStart(30, "div", 17)(31, "h3", 18);
|
|
330
|
+
i0.ɵɵtext(32);
|
|
331
|
+
i0.ɵɵpipe(33, "rpxTranslate");
|
|
324
332
|
i0.ɵɵelementEnd();
|
|
325
|
-
i0.ɵɵelement(
|
|
326
|
-
i0.ɵɵtemplate(
|
|
327
|
-
i0.ɵɵtemplate(
|
|
333
|
+
i0.ɵɵelement(34, "xuilib-gov-uk-error-message", 19);
|
|
334
|
+
i0.ɵɵtemplate(35, ShareCaseComponent_div_35_Template, 2, 2, "div", 20);
|
|
335
|
+
i0.ɵɵtemplate(36, ShareCaseComponent_div_36_Template, 3, 6, "div", 21);
|
|
328
336
|
i0.ɵɵelementEnd();
|
|
329
|
-
i0.ɵɵelementStart(
|
|
330
|
-
i0.ɵɵlistener("click", function
|
|
331
|
-
i0.ɵɵpipe(
|
|
332
|
-
i0.ɵɵtext(
|
|
333
|
-
i0.ɵɵpipe(
|
|
337
|
+
i0.ɵɵelementStart(37, "div", 22)(38, "button", 23);
|
|
338
|
+
i0.ɵɵlistener("click", function ShareCaseComponent_Template_button_click_38_listener() { return ctx.onContinue(); });
|
|
339
|
+
i0.ɵɵpipe(39, "rpxTranslate");
|
|
340
|
+
i0.ɵɵtext(40);
|
|
341
|
+
i0.ɵɵpipe(41, "rpxTranslate");
|
|
334
342
|
i0.ɵɵelementEnd();
|
|
335
|
-
i0.ɵɵelementStart(
|
|
336
|
-
i0.ɵɵpipe(
|
|
337
|
-
i0.ɵɵtext(
|
|
338
|
-
i0.ɵɵpipe(
|
|
343
|
+
i0.ɵɵelementStart(42, "button", 24);
|
|
344
|
+
i0.ɵɵpipe(43, "rpxTranslate");
|
|
345
|
+
i0.ɵɵtext(44);
|
|
346
|
+
i0.ɵɵpipe(45, "rpxTranslate");
|
|
339
347
|
i0.ɵɵelementEnd()();
|
|
340
348
|
} if (rf & 2) {
|
|
341
349
|
i0.ɵɵproperty("errorMessages", ctx.validationErrors)("header", "There is a problem");
|
|
342
350
|
i0.ɵɵadvance(1);
|
|
343
351
|
i0.ɵɵproperty("ngIf", ctx.title);
|
|
344
352
|
i0.ɵɵadvance(4);
|
|
345
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6,
|
|
353
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 24, ctx.addUserLabel));
|
|
346
354
|
i0.ɵɵadvance(3);
|
|
347
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9,
|
|
355
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 26, "Search by name or email address. You can share access with as many people as you need."), " ");
|
|
348
356
|
i0.ɵɵadvance(4);
|
|
349
357
|
i0.ɵɵproperty("users", ctx.users);
|
|
350
358
|
i0.ɵɵadvance(2);
|
|
351
|
-
i0.ɵɵpropertyInterpolate("title", i0.ɵɵpipeBind1(15,
|
|
359
|
+
i0.ɵɵpropertyInterpolate("title", i0.ɵɵpipeBind1(15, 28, "Add user to selected cases"));
|
|
352
360
|
i0.ɵɵproperty("disabled", ctx.isDisabledAdd());
|
|
353
361
|
i0.ɵɵadvance(2);
|
|
354
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(17,
|
|
362
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(17, 30, "Add"), " ");
|
|
363
|
+
i0.ɵɵadvance(3);
|
|
364
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(20, 32, "user"));
|
|
355
365
|
i0.ɵɵadvance(5);
|
|
356
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(
|
|
366
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(25, 34, "Can't find an email address?"), " ");
|
|
357
367
|
i0.ɵɵadvance(3);
|
|
358
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(
|
|
368
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(28, 36, "If you can't find your colleague's email address, they will need to complete their registration. Contact your administrator for help."), " ");
|
|
359
369
|
i0.ɵɵadvance(2);
|
|
360
370
|
i0.ɵɵproperty("ngIf", ctx.showRemoveUsers);
|
|
361
371
|
i0.ɵɵadvance(1);
|
|
362
|
-
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(
|
|
372
|
+
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(48, _c0, ctx.shareCaseErrorMessage.messages && ctx.shareCaseErrorMessage.messages.length > 0));
|
|
363
373
|
i0.ɵɵadvance(2);
|
|
364
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(
|
|
374
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(33, 38, "Selected cases"), " ");
|
|
365
375
|
i0.ɵɵadvance(2);
|
|
366
376
|
i0.ɵɵproperty("config", ctx.selectedCasesErrorMessageConfig)("errorMessage", ctx.shareCaseErrorMessage);
|
|
367
377
|
i0.ɵɵadvance(1);
|
|
@@ -369,18 +379,18 @@ ShareCaseComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ShareCas
|
|
|
369
379
|
i0.ɵɵadvance(1);
|
|
370
380
|
i0.ɵɵproperty("ngIf", ctx.shareCases && ctx.shareCases.length === 0);
|
|
371
381
|
i0.ɵɵadvance(2);
|
|
372
|
-
i0.ɵɵpropertyInterpolate("title", i0.ɵɵpipeBind1(
|
|
382
|
+
i0.ɵɵpropertyInterpolate("title", i0.ɵɵpipeBind1(39, 40, "Continue"));
|
|
373
383
|
i0.ɵɵadvance(2);
|
|
374
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(
|
|
384
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(41, 42, "Continue"), " ");
|
|
375
385
|
i0.ɵɵadvance(2);
|
|
376
|
-
i0.ɵɵpropertyInterpolate("title", i0.ɵɵpipeBind1(
|
|
386
|
+
i0.ɵɵpropertyInterpolate("title", i0.ɵɵpipeBind1(43, 44, "Cancel"));
|
|
377
387
|
i0.ɵɵproperty("routerLink", ctx.cancelLink);
|
|
378
388
|
i0.ɵɵadvance(2);
|
|
379
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(
|
|
389
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(45, 46, "Cancel"), " ");
|
|
380
390
|
} }, dependencies: [i3.NgClass, i3.NgForOf, i3.NgIf, i4.NgSelectOption, i4.ɵNgSelectMultipleOption, i4.SelectControlValueAccessor, i4.NgControlStatus, i4.NgModel, i2.RouterLink, i5.SelectedCaseListComponent, i6.UserSelectComponent, i7.HmctsErrorSummaryComponent, i8.GovUkErrorMessageComponent, i9.RpxTranslatePipe], styles: ["select[_ngcontent-%COMP%]{width:100%}"] });
|
|
381
391
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ShareCaseComponent, [{
|
|
382
392
|
type: Component,
|
|
383
|
-
args: [{ selector: 'xuilib-share-case', template: "<xuilib-hmcts-error-summary\n [errorMessages]=\"validationErrors\"\n [header]=\"'There is a problem'\"\n></xuilib-hmcts-error-summary>\n<h1 *ngIf=\"title\" class=\"govuk-heading-xl govuk-!-margin-top-2\">\n <span *ngIf=\"fnTitle\" class=\"govuk-caption-xl\">{{fnTitle | rpxTranslate}}</span>\n {{title | rpxTranslate}}\n</h1>\n<div id=\"add-user\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"add-user-input\">{{addUserLabel | rpxTranslate}}</label>\n <span id=\"add-user-hint\" class=\"govuk-hint\">\n {{'Search by name or email address. You can share access with as many people as you need.' | rpxTranslate}}\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-user-select\n id=\"add-user-input\"\n aria-describedby=\"add-user-hint\"\n [users]=\"users\"\n (selected)=\"onSelectedUser($event)\">\n </xuilib-user-select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-add-user\" (click)=\"addUser()\"\n class=\"govuk-button govuk-button--secondary\" [disabled]=\"isDisabledAdd()\"\n title=\"{{'Add user to selected cases' | rpxTranslate}}\">\n {{'Add' | rpxTranslate}}\n </button>\n </div>\n </div>\n <details id=\"add-user-help\" class=\"govuk-details\" data-module=\"govuk-details\">\n <summary class=\"govuk-details__summary\">\n <span id=\"content-why-can-not-find-email\" class=\"govuk-details__summary-text\">\n {{\"Can't find an email address?\" | rpxTranslate}}\n </span>\n </summary>\n <div id=\"content-reason-can-not-find-email\" class=\"govuk-details__text\">\n {{\"If you can't find your colleague's email address, they will need to complete their registration. Contact your administrator for help.\" | rpxTranslate}}\n </div>\n </details>\n </div>\n <div class=\"govuk-form-group\" *ngIf=\"showRemoveUsers\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"remove-user-input\">\n {{'Remove a person from all cases' | rpxTranslate}}\n </label>\n <span id=\"remove-user-hint\" class=\"govuk-hint\">\n {{'Select a person to remove them from all selected cases.' | rpxTranslate}}\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <select [(ngModel)]=\"selectedUserToRemove\" class=\"govuk-select\" id=\"remove-user-input\" aria-describedby=\"remove-user-hint\">\n <option [ngValue]=\"null\" selected>Select a person</option>\n <option *ngFor=\"let user of assignedUsers\" [ngValue]=\"user\">{{user.firstName}} {{user.lastName}} - {{user.email}}</option>\n </select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-remove-user\" (click)=\"removeUser()\" class=\"govuk-button govuk-button--secondary\" title=\"{{'Remove user from selected cases' | rpxTranslate}}\">\n {{'Remove' | rpxTranslate}}\n </button>\n </div>\n </div>\n </div>\n</div>\n\n<div id=\"cases\" [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n <h3 id=\"title-selected-cases\" class=\"govuk-heading-m\">\n {{'Selected cases' | rpxTranslate}}\n </h3>\n <xuilib-gov-uk-error-message [config]=\"selectedCasesErrorMessageConfig\" [errorMessage]=\"shareCaseErrorMessage\"></xuilib-gov-uk-error-message>\n <div *ngIf=\"shareCases && shareCases.length > 0\" class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-with-summary-sections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\"\n [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n {{'No cases to display.' | rpxTranslate}}\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" class=\"govuk-button-group\">\n <button id=\"btn-continue\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"onContinue()\" title=\"{{'Continue' | rpxTranslate}}\">\n {{'Continue' | rpxTranslate}}\n </button>\n <button id=\"btn-cancel\" class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" title=\"{{'Cancel' | rpxTranslate}}\" [routerLink]=\"cancelLink\">\n {{'Cancel' | rpxTranslate}}\n </button>\n</div>\n", styles: ["select{width:100%}\n"] }]
|
|
393
|
+
args: [{ selector: 'xuilib-share-case', template: "<xuilib-hmcts-error-summary\n [errorMessages]=\"validationErrors\"\n [header]=\"'There is a problem'\"\n></xuilib-hmcts-error-summary>\n<h1 *ngIf=\"title\" class=\"govuk-heading-xl govuk-!-margin-top-2\">\n <span *ngIf=\"fnTitle\" class=\"govuk-caption-xl\">{{fnTitle | rpxTranslate}}</span>\n {{title | rpxTranslate}}\n</h1>\n<div id=\"add-user\">\n <div class=\"govuk-form-group\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"add-user-input\">{{addUserLabel | rpxTranslate}}</label>\n <span id=\"add-user-hint\" class=\"govuk-hint\">\n {{'Search by name or email address. You can share access with as many people as you need.' | rpxTranslate}}\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <xuilib-user-select\n id=\"add-user-input\"\n aria-describedby=\"add-user-hint\"\n [users]=\"users\"\n (selected)=\"onSelectedUser($event)\">\n </xuilib-user-select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-add-user\" (click)=\"addUser()\"\n class=\"govuk-button govuk-button--secondary\" [disabled]=\"isDisabledAdd()\"\n title=\"{{'Add user to selected cases' | rpxTranslate}}\">\n {{'Add' | rpxTranslate}}\n <span class=\"govuk-visually-hidden\">{{'user' | rpxTranslate}}</span>\n </button>\n </div>\n </div>\n <details id=\"add-user-help\" class=\"govuk-details\" data-module=\"govuk-details\">\n <summary class=\"govuk-details__summary\">\n <span id=\"content-why-can-not-find-email\" class=\"govuk-details__summary-text\">\n {{\"Can't find an email address?\" | rpxTranslate}}\n </span>\n </summary>\n <div id=\"content-reason-can-not-find-email\" class=\"govuk-details__text\">\n {{\"If you can't find your colleague's email address, they will need to complete their registration. Contact your administrator for help.\" | rpxTranslate}}\n </div>\n </details>\n </div>\n <div class=\"govuk-form-group\" *ngIf=\"showRemoveUsers\">\n <label class=\"govuk-label govuk-!-font-weight-bold\" for=\"remove-user-input\">\n {{'Remove a person from all cases' | rpxTranslate}}\n </label>\n <span id=\"remove-user-hint\" class=\"govuk-hint\">\n {{'Select a person to remove them from all selected cases.' | rpxTranslate}}\n </span>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-two-thirds\">\n <select [(ngModel)]=\"selectedUserToRemove\" class=\"govuk-select\" id=\"remove-user-input\" aria-describedby=\"remove-user-hint\">\n <option [ngValue]=\"null\" selected>Select a person</option>\n <option *ngFor=\"let user of assignedUsers\" [ngValue]=\"user\">{{user.firstName}} {{user.lastName}} - {{user.email}}</option>\n </select>\n </div>\n <div class=\"govuk-grid-column-one-thirds\">\n <button id=\"btn-remove-user\" (click)=\"removeUser()\" class=\"govuk-button govuk-button--secondary\" title=\"{{'Remove user from selected cases' | rpxTranslate}}\">\n {{'Remove' | rpxTranslate}}\n <span class=\"govuk-visually-hidden\"> {{'user' | rpxTranslate}}</span>\n </button>\n </div>\n </div>\n </div>\n</div>\n\n<div id=\"cases\" [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n <h3 id=\"title-selected-cases\" class=\"govuk-heading-m\">\n {{'Selected cases' | rpxTranslate}}\n </h3>\n <xuilib-gov-uk-error-message [config]=\"selectedCasesErrorMessageConfig\" [errorMessage]=\"shareCaseErrorMessage\"></xuilib-gov-uk-error-message>\n <div *ngIf=\"shareCases && shareCases.length > 0\" class=\"govuk-accordion\" data-module=\"govuk-accordion\" id=\"accordion-with-summary-sections\">\n <xuilib-selected-case-list\n [shareCases$]=\"shareCases$\"\n [removeUserFromCaseToggleOn]=\"removeUserFromCaseToggleOn\"\n (unselect)=\"onUnselect($event)\"\n (synchronizeStore)=\"onSynchronizeStore($event)\"\n >\n </xuilib-selected-case-list>\n </div>\n\n <div id=\"noCaseDisplay\" *ngIf=\"shareCases && shareCases.length === 0\" class=\"govuk-hint\"\n [ngClass]=\"{'govuk-form-group--error': shareCaseErrorMessage.messages && shareCaseErrorMessage.messages.length > 0}\">\n {{'No cases to display.' | rpxTranslate}}\n </div>\n\n</div>\n\n<div id=\"share-case-nav\" class=\"govuk-button-group\">\n <button id=\"btn-continue\" class=\"govuk-button\" data-module=\"govuk-button\" (click)=\"onContinue()\" title=\"{{'Continue' | rpxTranslate}}\">\n {{'Continue' | rpxTranslate}}\n </button>\n <button id=\"btn-cancel\" class=\"govuk-button govuk-button--secondary\" data-module=\"govuk-button\" title=\"{{'Cancel' | rpxTranslate}}\" [routerLink]=\"cancelLink\">\n {{'Cancel' | rpxTranslate}}\n </button>\n</div>\n", styles: ["select{width:100%}\n"] }]
|
|
384
394
|
}], function () { return [{ type: i1.CaseSharingStateService }, { type: i2.Router }]; }, { removeUserFromCaseToggleOn: [{
|
|
385
395
|
type: Input
|
|
386
396
|
}], shareCases$: [{
|
|
@@ -407,4 +417,4 @@ ShareCaseComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ShareCas
|
|
|
407
417
|
type: ViewChild,
|
|
408
418
|
args: [UserSelectComponent, { static: true }]
|
|
409
419
|
}] }); })();
|
|
410
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtY2FzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlLWNhc2Uvc2hhcmUtY2FzZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlLWNhc2Uvc2hhcmUtY2FzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFjLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDdkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7OztJQ0h6RSxnQ0FBK0M7SUFBQSxZQUEwQjs7SUFBQSxpQkFBTzs7O0lBQWpDLGVBQTBCO0lBQTFCLDBEQUEwQjs7O0lBRDNFLDhCQUFnRTtJQUM5RCwyRUFBZ0Y7SUFDaEYsWUFDRjs7SUFBQSxpQkFBSzs7O0lBRkksZUFBYTtJQUFiLHFDQUFhO0lBQ3BCLGVBQ0Y7SUFERSxvRUFDRjs7O0lBOENVLGtDQUE0RDtJQUFBLFlBQXFEO0lBQUEsaUJBQVM7OztJQUEvRSxpQ0FBZ0I7SUFBQyxlQUFxRDtJQUFyRCw2RkFBcUQ7Ozs7SUFYekgsOEJBQXNE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Q1UsS0FBSztrQkFBcEIsS0FBSztZQUVVLFdBQVc7a0JBQTFCLEtBQUs7WUFDVSxVQUFVO2tCQUF6QixLQUFLO1lBQ1UsWUFBWTtrQkFBM0IsS0FBSztZQUNVLGVBQWU7a0JBQTlCLEtBQUs7WUFDVSxPQUFPO2tCQUF0QixLQUFLO1lBQ1UsS0FBSztrQkFBcEIsS0FBSztZQUVXLFFBQVE7a0JBQXhCLE1BQU07WUFDVSxnQkFBZ0I7a0JBQWhDLE1BQU07WUFLVSxVQUFVO2tCQUQxQixTQUFTO21CQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVycm9yTWVzc2FnZXNNb2RlbCwgR292VWlDb25maWdNb2RlbCB9IGZyb20gJy4uLy4uL2dvdi11aS9tb2RlbHMnO1xuaW1wb3J0IHsgU2hhcmVkQ2FzZSwgU2hhcmVkQ2FzZUVycm9yTWVzc2FnZXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvY2FzZS1zaGFyZS5tb2RlbCc7XG5pbXBvcnQgeyBVc2VyRGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVscy91c2VyLWRldGFpbHMubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZVNoYXJpbmdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jYXNlLXNoYXJpbmctc3RhdGUvY2FzZS1zaGFyaW5nLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXNlclNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uL3VzZXItc2VsZWN0L3VzZXItc2VsZWN0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3h1aWxpYi1zaGFyZS1jYXNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NoYXJlLWNhc2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zaGFyZS1jYXNlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVDYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgc2hhcmVDYXNlczogU2hhcmVkQ2FzZVtdID0gW107IC8vIGNhc2VzIHNlbGVjdGVkIGZvciBzaGFyaW5nXG4gIHB1YmxpYyBzZWxlY3RlZENhc2VzRXJyb3JNZXNzYWdlQ29uZmlnOiBHb3ZVaUNvbmZpZ01vZGVsO1xuICBwdWJsaWMgY29udGludWVBbGxvd2VkID0gZmFsc2U7XG4gIHB1YmxpYyBhc3NpZ25lZFVzZXJzOiBVc2VyRGV0YWlsc1tdO1xuICBwdWJsaWMgc2VsZWN0ZWRVc2VyVG9SZW1vdmU6IFVzZXJEZXRhaWxzID0gbnVsbDtcblxuICBASW5wdXQoKSBwdWJsaWMgcmVtb3ZlVXNlckZyb21DYXNlVG9nZ2xlT246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKSBwdWJsaWMgc2hhcmVDYXNlcyQ6IE9ic2VydmFibGU8U2hhcmVkQ2FzZVtdPjtcbiAgQElucHV0KCkgcHVibGljIHVzZXJzOiBVc2VyRGV0YWlsc1tdID0gW107IC8vIHVzZXJzIG9mIHRoaXMgb3JnYW5pc2F0aW9uIHRoZSBjYXNlcyBjYW4gYmUgc2hhcmVkIHdpdGhcblxuICBASW5wdXQoKSBwdWJsaWMgY29uZmlybUxpbms6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgY2FuY2VsTGluazogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRVc2VyTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHNob3dSZW1vdmVVc2VyczogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgZm5UaXRsZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHB1YmxpYyB0aXRsZTogc3RyaW5nID0gJyc7XG5cbiAgQE91dHB1dCgpIHB1YmxpYyB1bnNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8U2hhcmVkQ2FzZT4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBzeW5jaHJvbml6ZVN0b3JlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZFVzZXI6IFVzZXJEZXRhaWxzO1xuXG4gIEBWaWV3Q2hpbGQoVXNlclNlbGVjdENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSByZWFkb25seSB1c2VyU2VsZWN0OiBVc2VyU2VsZWN0Q29tcG9uZW50O1xuXG4gIHB1YmxpYyB2YWxpZGF0aW9uRXJyb3JzOiB7IGlkOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyB9W10gPSBbXTtcbiAgcHVibGljIHNoYXJlQ2FzZUVycm9yTWVzc2FnZTogRXJyb3JNZXNzYWdlc01vZGVsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgc3RhdGVTZXJ2aWNlOiBDYXNlU2hhcmluZ1N0YXRlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcikgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2hhcmVDYXNlcyRcbiAgICAgIC5waXBlKHRhcChzaGFyZWRDYXNlcyA9PiB7XG4gICAgICAgIC8vIFVwZGF0ZSB0aGUgbGlzdCBvZiB1c2VycyBhc3NpZ25lZCB0byBhdCBsZWFzdCBvbmUgY2FzZVxuICAgICAgICB0aGlzLmdldEFzc2lnbmVkVXNlcnMoc2hhcmVkQ2FzZXMuZmlsdGVyKHNoYXJlZENhc2UgPT4gc2hhcmVkQ2FzZS5zaGFyZWRXaXRoICYmIHNoYXJlZENhc2Uuc2hhcmVkV2l0aC5sZW5ndGggPiAwKSk7XG4gICAgICB9KSlcbiAgICAgIC5zdWJzY3JpYmUoc2hhcmVDYXNlcyA9PiB7XG4gICAgICAgIHRoaXMuc2hhcmVDYXNlcyA9IHNoYXJlQ2FzZXM7XG4gICAgICAgIHRoaXMuc3RhdGVTZXJ2aWNlLnNldENhc2VzKHNoYXJlQ2FzZXMpO1xuICAgICAgICAvLyBTZXQgdGhlIGNvbmZpZyB0byBiZSB1c2VkIGJ5IHRoZSB4dWlsaWItZ292LXVrLWVycm9yLW1lc3NhZ2UgY29tcG9uZW50LCBpbiBwYXJ0aWN1bGFyIHRoZSBlbGVtZW50IElEIHRvXG4gICAgICAgIC8vIHdoaWNoIHRoZSBlcnJvciBtZXNzYWdlIGlzIGFzc29jaWF0ZWRcbiAgICAgICAgaWYgKHNoYXJlQ2FzZXMpIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXNFcnJvck1lc3NhZ2VDb25maWcgPSB7XG4gICAgICAgICAgICBpZDogc2hhcmVDYXNlcy5sZW5ndGggPiAwID8gJ2Nhc2VzJyA6ICdub0Nhc2VEaXNwbGF5J1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMuc2hhcmVDYXNlcyQgPSB0aGlzLnN0YXRlU2VydmljZS5zdGF0ZTtcbiAgICB0aGlzLnNoYXJlQ2FzZUVycm9yTWVzc2FnZSA9IHsgaXNJbnZhbGlkOiBmYWxzZSwgbWVzc2FnZXM6IFtdIH07XG4gIH1cblxuICBwdWJsaWMgb25VbnNlbGVjdChjOiBTaGFyZWRDYXNlKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gW107XG4gICAgaWYgKHRoaXMuc3RhdGVTZXJ2aWNlLmdldENhc2VzKCkubGVuZ3RoID09PSAxKSB7XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaCh7IGlkOiAnY2FzZXMnLCBtZXNzYWdlOiBTaGFyZWRDYXNlRXJyb3JNZXNzYWdlcy5PbmVDYXNlTXVzdEJlU2VsZWN0ZWQgfSk7XG4gICAgICB0aGlzLnNoYXJlQ2FzZUVycm9yTWVzc2FnZSA9IHsgaXNJbnZhbGlkOiB0cnVlLCBtZXNzYWdlczogW1NoYXJlZENhc2VFcnJvck1lc3NhZ2VzLk9uZUNhc2VNdXN0QmVTZWxlY3RlZF0gfTtcbiAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgbGVmdDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVuc2VsZWN0LmVtaXQoYyk7XG4gICAgICB0aGlzLnN0YXRlU2VydmljZS5yZW1vdmVDYXNlKGMuY2FzZUlkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25TeW5jaHJvbml6ZVN0b3JlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnN5bmNocm9uaXplU3RvcmUuZW1pdChldmVudCk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RlZFVzZXIodXNlcjogVXNlckRldGFpbHMpIHtcbiAgICB0aGlzLnNlbGVjdGVkVXNlciA9IHVzZXI7XG4gIH1cblxuICBwdWJsaWMgYWRkVXNlcigpIHtcbiAgICBjb25zdCBuZXdTaGFyZWRDYXNlcyA9IHRoaXMuc3RhdGVTZXJ2aWNlLnJlcXVlc3RTaGFyZSh0aGlzLnNlbGVjdGVkVXNlcik7XG4gICAgdGhpcy5zZWxlY3RlZFVzZXIgPSBudWxsO1xuICAgIGlmICh0aGlzLnVzZXJTZWxlY3QpIHsgdGhpcy51c2VyU2VsZWN0LmNsZWFyKCk7IH1cbiAgICB0aGlzLnN5bmNocm9uaXplU3RvcmUuZW1pdChuZXdTaGFyZWRDYXNlcyk7XG4gICAgLy8gVXBkYXRlIHRoZSBsaXN0IG9mIGFzc2lnbmVkIHVzZXJzICh3aGljaCBpbmNsdWRlcyBwZW5kaW5nIHVzZXJzKVxuICAgIHRoaXMuZ2V0QXNzaWduZWRVc2VycyhuZXdTaGFyZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlVXNlcigpIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFVzZXJUb1JlbW92ZSkge1xuICAgICAgY29uc3QgbmV3U2hhcmVkQ2FzZXMgPSB0aGlzLnN0YXRlU2VydmljZS5yZXF1ZXN0VW5zaGFyZSh0aGlzLnNlbGVjdGVkVXNlclRvUmVtb3ZlKTtcbiAgICAgIHRoaXMuc3luY2hyb25pemVTdG9yZS5lbWl0KG5ld1NoYXJlZENhc2VzKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNEaXNhYmxlZEFkZCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZFVzZXIgPT09IG51bGwgfHwgdGhpcy5zaGFyZUNhc2VzLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiBvcmlnaW5hbGx5IHVzZWQgdG8gc2V0IGRpc2FibGVkIHN0YXRlIG9mIFwiQ29udGludWVcIiBidXR0b24sIG5vdyBjYWxsZWQgYnkgdGhlIGJ1dHRvbiBjbGljayBoYW5kbGVyIHRvXG4gICAqIGNvbnRyb2wgd2hldGhlciBuYXZpZ2F0aW9uIHRvIHRoZSBjb25maXJtYXRpb24gcGFnZSBpcyBhbGxvd2VkLiBJdCBpcyBwcmV2ZW50ZWQgaWYgbm8gY2hhbmdlcyBoYXZlIGJlZW4gbWFkZVxuICAgKi9cbiAgcHVibGljIHNldENvbnRpbnVlQWxsb3dlZCgpOiB2b2lkIHtcbiAgICAvLyBBbHdheXMgc3RhcnQgd2l0aCBjb250aW51ZUFsbG93ZWQgPSBmYWxzZS4gVGhpcyBjb3ZlcnMgdGhlIHNjZW5hcmlvIHdoZXJlIGEgdXNlciBtaWdodCBhZGQgc29tZW9uZSBmb3Igc2hhcmluZ1xuICAgIC8vIGEgY2FzZSAoc28sIGNvbnRpbnVlQWxsb3dlZCA9IHRydWUpLCB0aGVuIHJlbW92ZXMgdGhlIHNhbWUgdXNlciBiZWZvcmUgdHJ5aW5nIHRvIGNvbnRpbnVlLiBUaGlzIHdvdWxkXG4gICAgLy8gZXJyb25lb3VzbHkgbGVhdmUgY29udGludWVBbGxvd2VkIGFzIHRydWVcbiAgICB0aGlzLmNvbnRpbnVlQWxsb3dlZCA9IGZhbHNlO1xuICAgIHRoaXMuc2hhcmVDYXNlcyQuc3Vic2NyaWJlKHNoYXJlQ2FzZXMgPT4ge1xuICAgICAgZm9yIChjb25zdCBjYXNlU3RhdGUgb2Ygc2hhcmVDYXNlcykge1xuICAgICAgICBpZiAoY2FzZVN0YXRlLnBlbmRpbmdTaGFyZXMgJiYgY2FzZVN0YXRlLnBlbmRpbmdTaGFyZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuY29udGludWVBbGxvd2VkID0gdHJ1ZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2FzZVN0YXRlLnBlbmRpbmdVbnNoYXJlcyAmJiBjYXNlU3RhdGUucGVuZGluZ1Vuc2hhcmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmNvbnRpbnVlQWxsb3dlZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkRlc2VsZWN0KHNoYXJlZENhc2U6IFNoYXJlZENhc2UpOiB2b2lkIHtcbiAgICBpZiAoc2hhcmVkQ2FzZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdXBkYXRlZCA9IFtdO1xuICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRoaXMuc2hhcmVDYXNlcykge1xuICAgICAgICBpZiAoZWxlbWVudC5jYXNlSWQgIT09IHNoYXJlZENhc2UuY2FzZUlkKSB7XG4gICAgICAgICAgdXBkYXRlZC5wdXNoKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aGlzLnNoYXJlQ2FzZXMgPSB1cGRhdGVkO1xuICAgIH1cbiAgICB0aGlzLnN0YXRlU2VydmljZS5zZXRDYXNlcyh0aGlzLnNoYXJlQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIG9uQ29udGludWUoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRDb250aW51ZUFsbG93ZWQoKTtcbiAgICAvLyBJZiBjb250aW51YXRpb24gaXMgbm90IGFsbG93ZWQsIHNldCBhbiBlcnJvciBtZXNzYWdlXG4gICAgaWYgKCF0aGlzLmNvbnRpbnVlQWxsb3dlZCkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gW107XG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaCh7IGlkOiAnY2FzZXMnLCBtZXNzYWdlOiBTaGFyZWRDYXNlRXJyb3JNZXNzYWdlcy5Ob0NoYW5nZXNSZXF1ZXN0ZWQgfSk7XG4gICAgICB0aGlzLnNoYXJlQ2FzZUVycm9yTWVzc2FnZSA9IHsgaXNJbnZhbGlkOiB0cnVlLCBtZXNzYWdlczogW1NoYXJlZENhc2VFcnJvck1lc3NhZ2VzLk5vQ2hhbmdlc1JlcXVlc3RlZF0gfTtcbiAgICAgIHdpbmRvdy5zY3JvbGxUbyh7IHRvcDogMCwgbGVmdDogMCwgYmVoYXZpb3I6ICdzbW9vdGgnIH0pO1xuICAgIH1cbiAgICAvLyBOYXZpZ2F0ZSB0byBjb25maXJtYXRpb24gcGFnZSBvbmx5IGlmIGFsbG93ZWQgdG8gY29udGludWVcbiAgICBpZiAodGhpcy5jb250aW51ZUFsbG93ZWQpIHtcbiAgICAgIC8vIENoZWNrIHRoYXQgbm8gY2FzZSBpcyBsZWZ0IHVuYXNzaWduZWQ7IGEgdXNlciBjYW4gYmUgcmVtb3ZlZCBvbmx5IGlmIHRoZXJlIGlzIGFub3RoZXIgY3VycmVudCB1c2VyLCBvciBpZiBhdFxuICAgICAgLy8gbGVhc3Qgb25lIHVzZXIgaXMgdG8gYmUgYWRkZWQuIFByZXZlbnQgbmF2aWdhdGlvbiB0byBjb25maXJtYXRpb24gcGFnZSBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2FzZSBsZWZ0IGluXG4gICAgICAvLyBhbiB1bmFzc2lnbmVkIHN0YXRlXG4gICAgICBpZiAodGhpcy5oYXNDYXNlc0xlZnRVbmFzc2lnbmVkKHRoaXMuc2hhcmVDYXNlcykpIHtcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gW107XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycy5wdXNoKHsgaWQ6ICdjYXNlcycsIG1lc3NhZ2U6IFNoYXJlZENhc2VFcnJvck1lc3NhZ2VzLk9uZVBlcnNvbk11c3RCZUFzc2lnbmVkIH0pO1xuICAgICAgICB0aGlzLnNoYXJlQ2FzZUVycm9yTWVzc2FnZSA9IHsgaXNJbnZhbGlkOiB0cnVlLCBtZXNzYWdlczogW1NoYXJlZENhc2VFcnJvck1lc3NhZ2VzLk9uZVBlcnNvbk11c3RCZUFzc2lnbmVkXSB9O1xuICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGxlZnQ6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmNvbmZpcm1MaW5rXSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgYSB1bmlxdWUgbGlzdCBvZiBhbGwgdXNlcnMgdGhhdCBoYXZlIGJlZW4gYXNzaWduZWQsIG9yIGFyZSBwZW5kaW5nIGFzc2lnbWVudCB0bywgYXQgbGVhc3Qgb25lIGNhc2VcbiAgICogQHBhcmFtIHNoYXJlZENhc2VzIFRoZSBsaXN0IG9mIHNoYXJlZCBjYXNlcyBmcm9tIHdoaWNoIHRvIGdldCB1c2VycyB0aGVzZSBhcmUgc2hhcmVkIHdpdGgsIG9yIGFyZSB0byBiZSBzaGFyZWQgd2l0aFxuICAgKi9cbiAgcHVibGljIGdldEFzc2lnbmVkVXNlcnMoc2hhcmVkQ2FzZXM6IFNoYXJlZENhc2VbXSk6IHZvaWQge1xuICAgIGNvbnN0IHVzZXJzOiBVc2VyRGV0YWlsc1tdID0gW107XG4gICAgc2hhcmVkQ2FzZXMuZm9yRWFjaChzaGFyZWRDYXNlID0+IHtcbiAgICAgIGlmIChzaGFyZWRDYXNlLnNoYXJlZFdpdGgpIHtcbiAgICAgICAgc2hhcmVkQ2FzZS5zaGFyZWRXaXRoLmZvckVhY2godXNlciA9PiB7XG4gICAgICAgICAgaWYgKCF1c2Vycy5zb21lKGV4aXN0aW5nVXNlciA9PiB1c2VyLmlkYW1JZCA9PT0gZXhpc3RpbmdVc2VyLmlkYW1JZCkpIHtcbiAgICAgICAgICAgIHVzZXJzLnB1c2godXNlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMpIHtcbiAgICAgICAgc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLmZvckVhY2godXNlciA9PiB7XG4gICAgICAgICAgaWYgKCF1c2Vycy5zb21lKGV4aXN0aW5nVXNlciA9PiB1c2VyLmlkYW1JZCA9PT0gZXhpc3RpbmdVc2VyLmlkYW1JZCkpIHtcbiAgICAgICAgICAgIHVzZXJzLnB1c2godXNlcik7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmFzc2lnbmVkVXNlcnMgPSB1c2VycztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYW55IHNoYXJlZCBjYXNlcyBoYXZlIGJlZW4gbGVmdCB1bmFzc2lnbmVkLiBUaGlzIG9jY3VycyBpZiBhIHNoYXJlZCBjYXNlIGhhcyBhIG51bWJlciBvZiBwZW5kaW5nXG4gICAqIHVuc2hhcmVzIGVxdWFsIHRvIHRoZSBudW1iZXIgb2YgY3VycmVudCBzaGFyZXMsIGFuZCB0aGVyZSBhcmUgbm8gcGVuZGluZyBzaGFyZXMuXG4gICAqIEBwYXJhbSBzaGFyZWRDYXNlcyBUaGUgYXJyYXkgb2Ygc2hhcmVkIGNhc2VzIHRvIGNoZWNrXG4gICAqIEByZXR1cm5zIGB0cnVlYCBpZiBhdCBsZWFzdCBvbmUgY2FzZSBoYXMgdGhlIGNvbmRpdGlvbiBkZXNjcmliZWQgYWJvdmU7IGBmYWxzZWAgb3RoZXJ3aXNlXG4gICAqL1xuICBwdWJsaWMgaGFzQ2FzZXNMZWZ0VW5hc3NpZ25lZChzaGFyZWRDYXNlczogU2hhcmVkQ2FzZVtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNoYXJlZENhc2VzLnNvbWUoc2hhcmVkQ2FzZSA9PiB7XG4gICAgICByZXR1cm4gc2hhcmVkQ2FzZS5wZW5kaW5nVW5zaGFyZXMgJiYgc2hhcmVkQ2FzZS5zaGFyZWRXaXRoICYmXG4gICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzLmxlbmd0aCA9PT0gc2hhcmVkQ2FzZS5zaGFyZWRXaXRoLmxlbmd0aCAmJlxuICAgICAgICAoIXNoYXJlZENhc2UucGVuZGluZ1NoYXJlcyB8fCBzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMubGVuZ3RoID09PSAwKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPHh1aWxpYi1obWN0cy1lcnJvci1zdW1tYXJ5XG4gIFtlcnJvck1lc3NhZ2VzXT1cInZhbGlkYXRpb25FcnJvcnNcIlxuICBbaGVhZGVyXT1cIidUaGVyZSBpcyBhIHByb2JsZW0nXCJcbj48L3h1aWxpYi1obWN0cy1lcnJvci1zdW1tYXJ5PlxuPGgxICpuZ0lmPVwidGl0bGVcIiBjbGFzcz1cImdvdnVrLWhlYWRpbmcteGwgZ292dWstIS1tYXJnaW4tdG9wLTJcIj5cbiAgPHNwYW4gKm5nSWY9XCJmblRpdGxlXCIgY2xhc3M9XCJnb3Z1ay1jYXB0aW9uLXhsXCI+e3tmblRpdGxlIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gIHt7dGl0bGUgfCBycHhUcmFuc2xhdGV9fVxuPC9oMT5cbjxkaXYgaWQ9XCJhZGQtdXNlclwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiIGZvcj1cImFkZC11c2VyLWlucHV0XCI+e3thZGRVc2VyTGFiZWwgfCBycHhUcmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgPHNwYW4gaWQ9XCJhZGQtdXNlci1oaW50XCIgY2xhc3M9XCJnb3Z1ay1oaW50XCI+XG4gICAgICB7eydTZWFyY2ggYnkgbmFtZSBvciBlbWFpbCBhZGRyZXNzLiBZb3UgY2FuIHNoYXJlIGFjY2VzcyB3aXRoIGFzIG1hbnkgcGVvcGxlIGFzIHlvdSBuZWVkLicgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvc3Bhbj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi10d28tdGhpcmRzXCI+XG4gICAgICAgIDx4dWlsaWItdXNlci1zZWxlY3RcbiAgICAgICAgICBpZD1cImFkZC11c2VyLWlucHV0XCJcbiAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiYWRkLXVzZXItaGludFwiXG4gICAgICAgICAgW3VzZXJzXT1cInVzZXJzXCJcbiAgICAgICAgICAoc2VsZWN0ZWQpPVwib25TZWxlY3RlZFVzZXIoJGV2ZW50KVwiPlxuICAgICAgICA8L3h1aWxpYi11c2VyLXNlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLW9uZS10aGlyZHNcIj5cbiAgICAgICAgPGJ1dHRvbiBpZD1cImJ0bi1hZGQtdXNlclwiIChjbGljayk9XCJhZGRVc2VyKClcIlxuICAgICAgICAgIGNsYXNzPVwiZ292dWstYnV0dG9uIGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5XCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRBZGQoKVwiXG4gICAgICAgICAgdGl0bGU9XCJ7eydBZGQgdXNlciB0byBzZWxlY3RlZCBjYXNlcycgfCBycHhUcmFuc2xhdGV9fVwiPlxuICAgICAgICAgIHt7J0FkZCcgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkZXRhaWxzIGlkPVwiYWRkLXVzZXItaGVscFwiIGNsYXNzPVwiZ292dWstZGV0YWlsc1wiIGRhdGEtbW9kdWxlPVwiZ292dWstZGV0YWlsc1wiPlxuICAgICAgPHN1bW1hcnkgY2xhc3M9XCJnb3Z1ay1kZXRhaWxzX19zdW1tYXJ5XCI+XG4gICAgICA8c3BhbiBpZD1cImNvbnRlbnQtd2h5LWNhbi1ub3QtZmluZC1lbWFpbFwiIGNsYXNzPVwiZ292dWstZGV0YWlsc19fc3VtbWFyeS10ZXh0XCI+XG4gICAgICAgIHt7XCJDYW4ndCBmaW5kIGFuIGVtYWlsIGFkZHJlc3M/XCIgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPC9zdW1tYXJ5PlxuICAgICAgPGRpdiBpZD1cImNvbnRlbnQtcmVhc29uLWNhbi1ub3QtZmluZC1lbWFpbFwiIGNsYXNzPVwiZ292dWstZGV0YWlsc19fdGV4dFwiPlxuICAgICAgICB7e1wiSWYgeW91IGNhbid0IGZpbmQgeW91ciBjb2xsZWFndWUncyBlbWFpbCBhZGRyZXNzLCB0aGV5IHdpbGwgbmVlZCB0byBjb21wbGV0ZSB0aGVpciByZWdpc3RyYXRpb24uIENvbnRhY3QgeW91ciBhZG1pbmlzdHJhdG9yIGZvciBoZWxwLlwiIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGV0YWlscz5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwXCIgKm5nSWY9XCJzaG93UmVtb3ZlVXNlcnNcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIiBmb3I9XCJyZW1vdmUtdXNlci1pbnB1dFwiPlxuICAgICAge3snUmVtb3ZlIGEgcGVyc29uIGZyb20gYWxsIGNhc2VzJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgPC9sYWJlbD5cbiAgICA8c3BhbiBpZD1cInJlbW92ZS11c2VyLWhpbnRcIiBjbGFzcz1cImdvdnVrLWhpbnRcIj5cbiAgICAgIHt7J1NlbGVjdCBhIHBlcnNvbiB0byByZW1vdmUgdGhlbSBmcm9tIGFsbCBzZWxlY3RlZCBjYXNlcy4nIHwgcnB4VHJhbnNsYXRlfX1cbiAgICA8L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tdHdvLXRoaXJkc1wiPlxuICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwic2VsZWN0ZWRVc2VyVG9SZW1vdmVcIiBjbGFzcz1cImdvdnVrLXNlbGVjdFwiIGlkPVwicmVtb3ZlLXVzZXItaW5wdXRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwicmVtb3ZlLXVzZXItaGludFwiPlxuICAgICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwibnVsbFwiIHNlbGVjdGVkPlNlbGVjdCBhIHBlcnNvbjwvb3B0aW9uPlxuICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHVzZXIgb2YgYXNzaWduZWRVc2Vyc1wiIFtuZ1ZhbHVlXT1cInVzZXJcIj57e3VzZXIuZmlyc3ROYW1lfX0ge3t1c2VyLmxhc3ROYW1lfX0gLSB7e3VzZXIuZW1haWx9fTwvb3B0aW9uPlxuICAgICAgICA8L3NlbGVjdD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLW9uZS10aGlyZHNcIj5cbiAgICAgICAgPGJ1dHRvbiBpZD1cImJ0bi1yZW1vdmUtdXNlclwiIChjbGljayk9XCJyZW1vdmVVc2VyKClcIiBjbGFzcz1cImdvdnVrLWJ1dHRvbiBnb3Z1ay1idXR0b24tLXNlY29uZGFyeVwiIHRpdGxlPVwie3snUmVtb3ZlIHVzZXIgZnJvbSBzZWxlY3RlZCBjYXNlcycgfCBycHhUcmFuc2xhdGV9fVwiPlxuICAgICAgICAgIHt7J1JlbW92ZScgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGlkPVwiY2FzZXNcIiBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogc2hhcmVDYXNlRXJyb3JNZXNzYWdlLm1lc3NhZ2VzICYmIHNoYXJlQ2FzZUVycm9yTWVzc2FnZS5tZXNzYWdlcy5sZW5ndGggPiAwfVwiPlxuICA8aDMgaWQ9XCJ0aXRsZS1zZWxlY3RlZC1jYXNlc1wiIGNsYXNzPVwiZ292dWstaGVhZGluZy1tXCI+XG4gICAge3snU2VsZWN0ZWQgY2FzZXMnIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9oMz5cbiAgPHh1aWxpYi1nb3YtdWstZXJyb3ItbWVzc2FnZSBbY29uZmlnXT1cInNlbGVjdGVkQ2FzZXNFcnJvck1lc3NhZ2VDb25maWdcIiBbZXJyb3JNZXNzYWdlXT1cInNoYXJlQ2FzZUVycm9yTWVzc2FnZVwiPjwveHVpbGliLWdvdi11ay1lcnJvci1tZXNzYWdlPlxuICA8ZGl2ICpuZ0lmPVwic2hhcmVDYXNlcyAmJiBzaGFyZUNhc2VzLmxlbmd0aCA+IDBcIiBjbGFzcz1cImdvdnVrLWFjY29yZGlvblwiIGRhdGEtbW9kdWxlPVwiZ292dWstYWNjb3JkaW9uXCIgaWQ9XCJhY2NvcmRpb24td2l0aC1zdW1tYXJ5LXNlY3Rpb25zXCI+XG4gICAgPHh1aWxpYi1zZWxlY3RlZC1jYXNlLWxpc3RcbiAgICAgIFtzaGFyZUNhc2VzJF09XCJzaGFyZUNhc2VzJFwiXG4gICAgICBbcmVtb3ZlVXNlckZyb21DYXNlVG9nZ2xlT25dPVwicmVtb3ZlVXNlckZyb21DYXNlVG9nZ2xlT25cIlxuICAgICAgKHVuc2VsZWN0KT1cIm9uVW5zZWxlY3QoJGV2ZW50KVwiXG4gICAgICAoc3luY2hyb25pemVTdG9yZSk9XCJvblN5bmNocm9uaXplU3RvcmUoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwveHVpbGliLXNlbGVjdGVkLWNhc2UtbGlzdD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBpZD1cIm5vQ2FzZURpc3BsYXlcIiAqbmdJZj1cInNoYXJlQ2FzZXMgJiYgc2hhcmVDYXNlcy5sZW5ndGggPT09IDBcIiBjbGFzcz1cImdvdnVrLWhpbnRcIlxuICAgIFtuZ0NsYXNzXT1cInsnZ292dWstZm9ybS1ncm91cC0tZXJyb3InOiBzaGFyZUNhc2VFcnJvck1lc3NhZ2UubWVzc2FnZXMgJiYgc2hhcmVDYXNlRXJyb3JNZXNzYWdlLm1lc3NhZ2VzLmxlbmd0aCA+IDB9XCI+XG4gICAge3snTm8gY2FzZXMgdG8gZGlzcGxheS4nIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9kaXY+XG5cbjwvZGl2PlxuXG48ZGl2IGlkPVwic2hhcmUtY2FzZS1uYXZcIiBjbGFzcz1cImdvdnVrLWJ1dHRvbi1ncm91cFwiPlxuICA8YnV0dG9uIGlkPVwiYnRuLWNvbnRpbnVlXCIgY2xhc3M9XCJnb3Z1ay1idXR0b25cIiBkYXRhLW1vZHVsZT1cImdvdnVrLWJ1dHRvblwiIChjbGljayk9XCJvbkNvbnRpbnVlKClcIiB0aXRsZT1cInt7J0NvbnRpbnVlJyB8IHJweFRyYW5zbGF0ZX19XCI+XG4gICAge3snQ29udGludWUnIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9idXR0b24+XG4gIDxidXR0b24gaWQ9XCJidG4tY2FuY2VsXCIgY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstYnV0dG9uLS1zZWNvbmRhcnlcIiBkYXRhLW1vZHVsZT1cImdvdnVrLWJ1dHRvblwiIHRpdGxlPVwie3snQ2FuY2VsJyB8IHJweFRyYW5zbGF0ZX19XCIgW3JvdXRlckxpbmtdPVwiY2FuY2VsTGlua1wiPlxuICAgIHt7J0NhbmNlbCcgfCBycHhUcmFuc2xhdGV9fVxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|
|
420
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmUtY2FzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlLWNhc2Uvc2hhcmUtY2FzZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9leHVpLWNvbW1vbi1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NoYXJlLWNhc2Uvc2hhcmUtY2FzZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFjLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDdkcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7Ozs7OztJQ0h6RSxnQ0FBK0M7SUFBQSxZQUEwQjs7SUFBQSxpQkFBTzs7O0lBQWpDLGVBQTBCO0lBQTFCLDBEQUEwQjs7O0lBRDNFLDhCQUFnRTtJQUM5RCwyRUFBZ0Y7SUFDaEYsWUFDRjs7SUFBQSxpQkFBSzs7O0lBRkksZUFBYTtJQUFiLHFDQUFhO0lBQ3BCLGVBQ0Y7SUFERSxvRUFDRjs7O0lBK0NVLGtDQUE0RDtJQUFBLFlBQXFEO0lBQUEsaUJBQVM7OztJQUEvRSxpQ0FBZ0I7SUFBQyxlQUFxRDtJQUFyRCw2RkFBcUQ7Ozs7SUFYekgsOEJBQXNE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QjtRQUMzSixlQUNGO1FBREUsaUVBQ0Y7O3VGRGhGVyxrQkFBa0I7Y0FMOUIsU0FBUzsyQkFDRSxtQkFBbUI7K0ZBWWIsMEJBQTBCO2tCQUF6QyxLQUFLO1lBRVUsV0FBVztrQkFBMUIsS0FBSztZQUNVLEtBQUs7a0JBQXBCLEtBQUs7WUFFVSxXQUFXO2tCQUExQixLQUFLO1lBQ1UsVUFBVTtrQkFBekIsS0FBSztZQUNVLFlBQVk7a0JBQTNCLEtBQUs7WUFDVSxlQUFlO2tCQUE5QixLQUFLO1lBQ1UsT0FBTztrQkFBdEIsS0FBSztZQUNVLEtBQUs7a0JBQXBCLEtBQUs7WUFFVyxRQUFRO2tCQUF4QixNQUFNO1lBQ1UsZ0JBQWdCO2tCQUFoQyxNQUFNO1lBS1UsVUFBVTtrQkFEMUIsU0FBUzttQkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VzTW9kZWwsIEdvdlVpQ29uZmlnTW9kZWwgfSBmcm9tICcuLi8uLi9nb3YtdWkvbW9kZWxzJztcbmltcG9ydCB7IFNoYXJlZENhc2UsIFNoYXJlZENhc2VFcnJvck1lc3NhZ2VzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Nhc2Utc2hhcmUubW9kZWwnO1xuaW1wb3J0IHsgVXNlckRldGFpbHMgfSBmcm9tICcuLi8uLi9tb2RlbHMvdXNlci1kZXRhaWxzLm1vZGVsJztcbmltcG9ydCB7IENhc2VTaGFyaW5nU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2FzZS1zaGFyaW5nLXN0YXRlL2Nhc2Utc2hhcmluZy1zdGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi91c2VyLXNlbGVjdC91c2VyLXNlbGVjdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd4dWlsaWItc2hhcmUtY2FzZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaGFyZS1jYXNlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2hhcmUtY2FzZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNoYXJlQ2FzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIHNoYXJlQ2FzZXM6IFNoYXJlZENhc2VbXSA9IFtdOyAvLyBjYXNlcyBzZWxlY3RlZCBmb3Igc2hhcmluZ1xuICBwdWJsaWMgc2VsZWN0ZWRDYXNlc0Vycm9yTWVzc2FnZUNvbmZpZzogR292VWlDb25maWdNb2RlbDtcbiAgcHVibGljIGNvbnRpbnVlQWxsb3dlZCA9IGZhbHNlO1xuICBwdWJsaWMgYXNzaWduZWRVc2VyczogVXNlckRldGFpbHNbXTtcbiAgcHVibGljIHNlbGVjdGVkVXNlclRvUmVtb3ZlOiBVc2VyRGV0YWlscyA9IG51bGw7XG5cbiAgQElucHV0KCkgcHVibGljIHJlbW92ZVVzZXJGcm9tQ2FzZVRvZ2dsZU9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KCkgcHVibGljIHNoYXJlQ2FzZXMkOiBPYnNlcnZhYmxlPFNoYXJlZENhc2VbXT47XG4gIEBJbnB1dCgpIHB1YmxpYyB1c2VyczogVXNlckRldGFpbHNbXSA9IFtdOyAvLyB1c2VycyBvZiB0aGlzIG9yZ2FuaXNhdGlvbiB0aGUgY2FzZXMgY2FuIGJlIHNoYXJlZCB3aXRoXG5cbiAgQElucHV0KCkgcHVibGljIGNvbmZpcm1MaW5rOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGNhbmNlbExpbms6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgYWRkVXNlckxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93UmVtb3ZlVXNlcnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGZuVGl0bGU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgdGl0bGU6IHN0cmluZyA9ICcnO1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgdW5zZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFNoYXJlZENhc2U+KCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgc3luY2hyb25pemVTdG9yZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIHByaXZhdGUgc2VsZWN0ZWRVc2VyOiBVc2VyRGV0YWlscztcblxuICBAVmlld0NoaWxkKFVzZXJTZWxlY3RDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlclNlbGVjdDogVXNlclNlbGVjdENvbXBvbmVudDtcblxuICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yczogeyBpZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfVtdID0gW107XG4gIHB1YmxpYyBzaGFyZUNhc2VFcnJvck1lc3NhZ2U6IEVycm9yTWVzc2FnZXNNb2RlbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHN0YXRlU2VydmljZTogQ2FzZVNoYXJpbmdTdGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIpIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNoYXJlQ2FzZXMkXG4gICAgICAucGlwZSh0YXAoc2hhcmVkQ2FzZXMgPT4ge1xuICAgICAgICAvLyBVcGRhdGUgdGhlIGxpc3Qgb2YgdXNlcnMgYXNzaWduZWQgdG8gYXQgbGVhc3Qgb25lIGNhc2VcbiAgICAgICAgdGhpcy5nZXRBc3NpZ25lZFVzZXJzKHNoYXJlZENhc2VzLmZpbHRlcihzaGFyZWRDYXNlID0+IHNoYXJlZENhc2Uuc2hhcmVkV2l0aCAmJiBzaGFyZWRDYXNlLnNoYXJlZFdpdGgubGVuZ3RoID4gMCkpO1xuICAgICAgfSkpXG4gICAgICAuc3Vic2NyaWJlKHNoYXJlQ2FzZXMgPT4ge1xuICAgICAgICB0aGlzLnNoYXJlQ2FzZXMgPSBzaGFyZUNhc2VzO1xuICAgICAgICB0aGlzLnN0YXRlU2VydmljZS5zZXRDYXNlcyhzaGFyZUNhc2VzKTtcbiAgICAgICAgLy8gU2V0IHRoZSBjb25maWcgdG8gYmUgdXNlZCBieSB0aGUgeHVpbGliLWdvdi11ay1lcnJvci1tZXNzYWdlIGNvbXBvbmVudCwgaW4gcGFydGljdWxhciB0aGUgZWxlbWVudCBJRCB0b1xuICAgICAgICAvLyB3aGljaCB0aGUgZXJyb3IgbWVzc2FnZSBpcyBhc3NvY2lhdGVkXG4gICAgICAgIGlmIChzaGFyZUNhc2VzKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzRXJyb3JNZXNzYWdlQ29uZmlnID0ge1xuICAgICAgICAgICAgaWQ6IHNoYXJlQ2FzZXMubGVuZ3RoID4gMCA/ICdjYXNlcycgOiAnbm9DYXNlRGlzcGxheSdcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLnNoYXJlQ2FzZXMkID0gdGhpcy5zdGF0ZVNlcnZpY2Uuc3RhdGU7XG4gICAgdGhpcy5zaGFyZUNhc2VFcnJvck1lc3NhZ2UgPSB7IGlzSW52YWxpZDogZmFsc2UsIG1lc3NhZ2VzOiBbXSB9O1xuICB9XG5cbiAgcHVibGljIG9uVW5zZWxlY3QoYzogU2hhcmVkQ2FzZSk6IHZvaWQge1xuICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IFtdO1xuICAgIGlmICh0aGlzLnN0YXRlU2VydmljZS5nZXRDYXNlcygpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBpZDogJ2Nhc2VzJywgbWVzc2FnZTogU2hhcmVkQ2FzZUVycm9yTWVzc2FnZXMuT25lQ2FzZU11c3RCZVNlbGVjdGVkIH0pO1xuICAgICAgdGhpcy5zaGFyZUNhc2VFcnJvck1lc3NhZ2UgPSB7IGlzSW52YWxpZDogdHJ1ZSwgbWVzc2FnZXM6IFtTaGFyZWRDYXNlRXJyb3JNZXNzYWdlcy5PbmVDYXNlTXVzdEJlU2VsZWN0ZWRdIH07XG4gICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGxlZnQ6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51bnNlbGVjdC5lbWl0KGMpO1xuICAgICAgdGhpcy5zdGF0ZVNlcnZpY2UucmVtb3ZlQ2FzZShjLmNhc2VJZCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uU3luY2hyb25pemVTdG9yZShldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zeW5jaHJvbml6ZVN0b3JlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0ZWRVc2VyKHVzZXI6IFVzZXJEZXRhaWxzKSB7XG4gICAgdGhpcy5zZWxlY3RlZFVzZXIgPSB1c2VyO1xuICB9XG5cbiAgcHVibGljIGFkZFVzZXIoKSB7XG4gICAgY29uc3QgbmV3U2hhcmVkQ2FzZXMgPSB0aGlzLnN0YXRlU2VydmljZS5yZXF1ZXN0U2hhcmUodGhpcy5zZWxlY3RlZFVzZXIpO1xuICAgIHRoaXMuc2VsZWN0ZWRVc2VyID0gbnVsbDtcbiAgICBpZiAodGhpcy51c2VyU2VsZWN0KSB7IHRoaXMudXNlclNlbGVjdC5jbGVhcigpOyB9XG4gICAgdGhpcy5zeW5jaHJvbml6ZVN0b3JlLmVtaXQobmV3U2hhcmVkQ2FzZXMpO1xuICAgIC8vIFVwZGF0ZSB0aGUgbGlzdCBvZiBhc3NpZ25lZCB1c2VycyAod2hpY2ggaW5jbHVkZXMgcGVuZGluZyB1c2VycylcbiAgICB0aGlzLmdldEFzc2lnbmVkVXNlcnMobmV3U2hhcmVkQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZVVzZXIoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRVc2VyVG9SZW1vdmUpIHtcbiAgICAgIGNvbnN0IG5ld1NoYXJlZENhc2VzID0gdGhpcy5zdGF0ZVNlcnZpY2UucmVxdWVzdFVuc2hhcmUodGhpcy5zZWxlY3RlZFVzZXJUb1JlbW92ZSk7XG4gICAgICB0aGlzLnN5bmNocm9uaXplU3RvcmUuZW1pdChuZXdTaGFyZWRDYXNlcyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzRGlzYWJsZWRBZGQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRVc2VyID09PSBudWxsIHx8IHRoaXMuc2hhcmVDYXNlcy5sZW5ndGggPT09IDA7XG4gIH1cblxuICAvKipcbiAgICogRnVuY3Rpb24gb3JpZ2luYWxseSB1c2VkIHRvIHNldCBkaXNhYmxlZCBzdGF0ZSBvZiBcIkNvbnRpbnVlXCIgYnV0dG9uLCBub3cgY2FsbGVkIGJ5IHRoZSBidXR0b24gY2xpY2sgaGFuZGxlciB0b1xuICAgKiBjb250cm9sIHdoZXRoZXIgbmF2aWdhdGlvbiB0byB0aGUgY29uZmlybWF0aW9uIHBhZ2UgaXMgYWxsb3dlZC4gSXQgaXMgcHJldmVudGVkIGlmIG5vIGNoYW5nZXMgaGF2ZSBiZWVuIG1hZGVcbiAgICovXG4gIHB1YmxpYyBzZXRDb250aW51ZUFsbG93ZWQoKTogdm9pZCB7XG4gICAgLy8gQWx3YXlzIHN0YXJ0IHdpdGggY29udGludWVBbGxvd2VkID0gZmFsc2UuIFRoaXMgY292ZXJzIHRoZSBzY2VuYXJpbyB3aGVyZSBhIHVzZXIgbWlnaHQgYWRkIHNvbWVvbmUgZm9yIHNoYXJpbmdcbiAgICAvLyBhIGNhc2UgKHNvLCBjb250aW51ZUFsbG93ZWQgPSB0cnVlKSwgdGhlbiByZW1vdmVzIHRoZSBzYW1lIHVzZXIgYmVmb3JlIHRyeWluZyB0byBjb250aW51ZS4gVGhpcyB3b3VsZFxuICAgIC8vIGVycm9uZW91c2x5IGxlYXZlIGNvbnRpbnVlQWxsb3dlZCBhcyB0cnVlXG4gICAgdGhpcy5jb250aW51ZUFsbG93ZWQgPSBmYWxzZTtcbiAgICB0aGlzLnNoYXJlQ2FzZXMkLnN1YnNjcmliZShzaGFyZUNhc2VzID0+IHtcbiAgICAgIGZvciAoY29uc3QgY2FzZVN0YXRlIG9mIHNoYXJlQ2FzZXMpIHtcbiAgICAgICAgaWYgKGNhc2VTdGF0ZS5wZW5kaW5nU2hhcmVzICYmIGNhc2VTdGF0ZS5wZW5kaW5nU2hhcmVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmNvbnRpbnVlQWxsb3dlZCA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNhc2VTdGF0ZS5wZW5kaW5nVW5zaGFyZXMgJiYgY2FzZVN0YXRlLnBlbmRpbmdVbnNoYXJlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5jb250aW51ZUFsbG93ZWQgPSB0cnVlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25EZXNlbGVjdChzaGFyZWRDYXNlOiBTaGFyZWRDYXNlKTogdm9pZCB7XG4gICAgaWYgKHNoYXJlZENhc2UgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZWQgPSBbXTtcbiAgICAgIGZvciAoY29uc3QgZWxlbWVudCBvZiB0aGlzLnNoYXJlQ2FzZXMpIHtcbiAgICAgICAgaWYgKGVsZW1lbnQuY2FzZUlkICE9PSBzaGFyZWRDYXNlLmNhc2VJZCkge1xuICAgICAgICAgIHVwZGF0ZWQucHVzaChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5zaGFyZUNhc2VzID0gdXBkYXRlZDtcbiAgICB9XG4gICAgdGhpcy5zdGF0ZVNlcnZpY2Uuc2V0Q2FzZXModGhpcy5zaGFyZUNhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNvbnRpbnVlKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0Q29udGludWVBbGxvd2VkKCk7XG4gICAgLy8gSWYgY29udGludWF0aW9uIGlzIG5vdCBhbGxvd2VkLCBzZXQgYW4gZXJyb3IgbWVzc2FnZVxuICAgIGlmICghdGhpcy5jb250aW51ZUFsbG93ZWQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IFtdO1xuICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzLnB1c2goeyBpZDogJ2Nhc2VzJywgbWVzc2FnZTogU2hhcmVkQ2FzZUVycm9yTWVzc2FnZXMuTm9DaGFuZ2VzUmVxdWVzdGVkIH0pO1xuICAgICAgdGhpcy5zaGFyZUNhc2VFcnJvck1lc3NhZ2UgPSB7IGlzSW52YWxpZDogdHJ1ZSwgbWVzc2FnZXM6IFtTaGFyZWRDYXNlRXJyb3JNZXNzYWdlcy5Ob0NoYW5nZXNSZXF1ZXN0ZWRdIH07XG4gICAgICB3aW5kb3cuc2Nyb2xsVG8oeyB0b3A6IDAsIGxlZnQ6IDAsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICB9XG4gICAgLy8gTmF2aWdhdGUgdG8gY29uZmlybWF0aW9uIHBhZ2Ugb25seSBpZiBhbGxvd2VkIHRvIGNvbnRpbnVlXG4gICAgaWYgKHRoaXMuY29udGludWVBbGxvd2VkKSB7XG4gICAgICAvLyBDaGVjayB0aGF0IG5vIGNhc2UgaXMgbGVmdCB1bmFzc2lnbmVkOyBhIHVzZXIgY2FuIGJlIHJlbW92ZWQgb25seSBpZiB0aGVyZSBpcyBhbm90aGVyIGN1cnJlbnQgdXNlciwgb3IgaWYgYXRcbiAgICAgIC8vIGxlYXN0IG9uZSB1c2VyIGlzIHRvIGJlIGFkZGVkLiBQcmV2ZW50IG5hdmlnYXRpb24gdG8gY29uZmlybWF0aW9uIHBhZ2UgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGNhc2UgbGVmdCBpblxuICAgICAgLy8gYW4gdW5hc3NpZ25lZCBzdGF0ZVxuICAgICAgaWYgKHRoaXMuaGFzQ2FzZXNMZWZ0VW5hc3NpZ25lZCh0aGlzLnNoYXJlQ2FzZXMpKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IFtdO1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMucHVzaCh7IGlkOiAnY2FzZXMnLCBtZXNzYWdlOiBTaGFyZWRDYXNlRXJyb3JNZXNzYWdlcy5PbmVQZXJzb25NdXN0QmVBc3NpZ25lZCB9KTtcbiAgICAgICAgdGhpcy5zaGFyZUNhc2VFcnJvck1lc3NhZ2UgPSB7IGlzSW52YWxpZDogdHJ1ZSwgbWVzc2FnZXM6IFtTaGFyZWRDYXNlRXJyb3JNZXNzYWdlcy5PbmVQZXJzb25NdXN0QmVBc3NpZ25lZF0gfTtcbiAgICAgICAgd2luZG93LnNjcm9sbFRvKHsgdG9wOiAwLCBsZWZ0OiAwLCBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbdGhpcy5jb25maXJtTGlua10pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgdW5pcXVlIGxpc3Qgb2YgYWxsIHVzZXJzIHRoYXQgaGF2ZSBiZWVuIGFzc2lnbmVkLCBvciBhcmUgcGVuZGluZyBhc3NpZ21lbnQgdG8sIGF0IGxlYXN0IG9uZSBjYXNlXG4gICAqIEBwYXJhbSBzaGFyZWRDYXNlcyBUaGUgbGlzdCBvZiBzaGFyZWQgY2FzZXMgZnJvbSB3aGljaCB0byBnZXQgdXNlcnMgdGhlc2UgYXJlIHNoYXJlZCB3aXRoLCBvciBhcmUgdG8gYmUgc2hhcmVkIHdpdGhcbiAgICovXG4gIHB1YmxpYyBnZXRBc3NpZ25lZFVzZXJzKHNoYXJlZENhc2VzOiBTaGFyZWRDYXNlW10pOiB2b2lkIHtcbiAgICBjb25zdCB1c2VyczogVXNlckRldGFpbHNbXSA9IFtdO1xuICAgIHNoYXJlZENhc2VzLmZvckVhY2goc2hhcmVkQ2FzZSA9PiB7XG4gICAgICBpZiAoc2hhcmVkQ2FzZS5zaGFyZWRXaXRoKSB7XG4gICAgICAgIHNoYXJlZENhc2Uuc2hhcmVkV2l0aC5mb3JFYWNoKHVzZXIgPT4ge1xuICAgICAgICAgIGlmICghdXNlcnMuc29tZShleGlzdGluZ1VzZXIgPT4gdXNlci5pZGFtSWQgPT09IGV4aXN0aW5nVXNlci5pZGFtSWQpKSB7XG4gICAgICAgICAgICB1c2Vycy5wdXNoKHVzZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzKSB7XG4gICAgICAgIHNoYXJlZENhc2UucGVuZGluZ1NoYXJlcy5mb3JFYWNoKHVzZXIgPT4ge1xuICAgICAgICAgIGlmICghdXNlcnMuc29tZShleGlzdGluZ1VzZXIgPT4gdXNlci5pZGFtSWQgPT09IGV4aXN0aW5nVXNlci5pZGFtSWQpKSB7XG4gICAgICAgICAgICB1c2Vycy5wdXNoKHVzZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5hc3NpZ25lZFVzZXJzID0gdXNlcnM7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGFueSBzaGFyZWQgY2FzZXMgaGF2ZSBiZWVuIGxlZnQgdW5hc3NpZ25lZC4gVGhpcyBvY2N1cnMgaWYgYSBzaGFyZWQgY2FzZSBoYXMgYSBudW1iZXIgb2YgcGVuZGluZ1xuICAgKiB1bnNoYXJlcyBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGN1cnJlbnQgc2hhcmVzLCBhbmQgdGhlcmUgYXJlIG5vIHBlbmRpbmcgc2hhcmVzLlxuICAgKiBAcGFyYW0gc2hhcmVkQ2FzZXMgVGhlIGFycmF5IG9mIHNoYXJlZCBjYXNlcyB0byBjaGVja1xuICAgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgYXQgbGVhc3Qgb25lIGNhc2UgaGFzIHRoZSBjb25kaXRpb24gZGVzY3JpYmVkIGFib3ZlOyBgZmFsc2VgIG90aGVyd2lzZVxuICAgKi9cbiAgcHVibGljIGhhc0Nhc2VzTGVmdFVuYXNzaWduZWQoc2hhcmVkQ2FzZXM6IFNoYXJlZENhc2VbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzaGFyZWRDYXNlcy5zb21lKHNoYXJlZENhc2UgPT4ge1xuICAgICAgcmV0dXJuIHNoYXJlZENhc2UucGVuZGluZ1Vuc2hhcmVzICYmIHNoYXJlZENhc2Uuc2hhcmVkV2l0aCAmJlxuICAgICAgICBzaGFyZWRDYXNlLnBlbmRpbmdVbnNoYXJlcy5sZW5ndGggPT09IHNoYXJlZENhc2Uuc2hhcmVkV2l0aC5sZW5ndGggJiZcbiAgICAgICAgKCFzaGFyZWRDYXNlLnBlbmRpbmdTaGFyZXMgfHwgc2hhcmVkQ2FzZS5wZW5kaW5nU2hhcmVzLmxlbmd0aCA9PT0gMCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjx4dWlsaWItaG1jdHMtZXJyb3Itc3VtbWFyeVxuICBbZXJyb3JNZXNzYWdlc109XCJ2YWxpZGF0aW9uRXJyb3JzXCJcbiAgW2hlYWRlcl09XCInVGhlcmUgaXMgYSBwcm9ibGVtJ1wiXG4+PC94dWlsaWItaG1jdHMtZXJyb3Itc3VtbWFyeT5cbjxoMSAqbmdJZj1cInRpdGxlXCIgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLXhsIGdvdnVrLSEtbWFyZ2luLXRvcC0yXCI+XG4gIDxzcGFuICpuZ0lmPVwiZm5UaXRsZVwiIGNsYXNzPVwiZ292dWstY2FwdGlvbi14bFwiPnt7Zm5UaXRsZSB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICB7e3RpdGxlIHwgcnB4VHJhbnNsYXRlfX1cbjwvaDE+XG48ZGl2IGlkPVwiYWRkLXVzZXJcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIiBmb3I9XCJhZGQtdXNlci1pbnB1dFwiPnt7YWRkVXNlckxhYmVsIHwgcnB4VHJhbnNsYXRlfX08L2xhYmVsPlxuICAgIDxzcGFuIGlkPVwiYWRkLXVzZXItaGludFwiIGNsYXNzPVwiZ292dWstaGludFwiPlxuICAgICAge3snU2VhcmNoIGJ5IG5hbWUgb3IgZW1haWwgYWRkcmVzcy4gWW91IGNhbiBzaGFyZSBhY2Nlc3Mgd2l0aCBhcyBtYW55IHBlb3BsZSBhcyB5b3UgbmVlZC4nIHwgcnB4VHJhbnNsYXRlfX1cbiAgICA8L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tdHdvLXRoaXJkc1wiPlxuICAgICAgICA8eHVpbGliLXVzZXItc2VsZWN0XG4gICAgICAgICAgaWQ9XCJhZGQtdXNlci1pbnB1dFwiXG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cImFkZC11c2VyLWhpbnRcIlxuICAgICAgICAgIFt1c2Vyc109XCJ1c2Vyc1wiXG4gICAgICAgICAgKHNlbGVjdGVkKT1cIm9uU2VsZWN0ZWRVc2VyKCRldmVudClcIj5cbiAgICAgICAgPC94dWlsaWItdXNlci1zZWxlY3Q+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1vbmUtdGhpcmRzXCI+XG4gICAgICAgIDxidXR0b24gaWQ9XCJidG4tYWRkLXVzZXJcIiAoY2xpY2spPVwiYWRkVXNlcigpXCJcbiAgICAgICAgICBjbGFzcz1cImdvdnVrLWJ1dHRvbiBnb3Z1ay1idXR0b24tLXNlY29uZGFyeVwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkQWRkKClcIlxuICAgICAgICAgIHRpdGxlPVwie3snQWRkIHVzZXIgdG8gc2VsZWN0ZWQgY2FzZXMnIHwgcnB4VHJhbnNsYXRlfX1cIj5cbiAgICAgICAgICB7eydBZGQnIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7J3VzZXInIHwgcnB4VHJhbnNsYXRlfX08L3NwYW4+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRldGFpbHMgaWQ9XCJhZGQtdXNlci1oZWxwXCIgY2xhc3M9XCJnb3Z1ay1kZXRhaWxzXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1kZXRhaWxzXCI+XG4gICAgICA8c3VtbWFyeSBjbGFzcz1cImdvdnVrLWRldGFpbHNfX3N1bW1hcnlcIj5cbiAgICAgIDxzcGFuIGlkPVwiY29udGVudC13aHktY2FuLW5vdC1maW5kLWVtYWlsXCIgY2xhc3M9XCJnb3Z1ay1kZXRhaWxzX19zdW1tYXJ5LXRleHRcIj5cbiAgICAgICAge3tcIkNhbid0IGZpbmQgYW4gZW1haWwgYWRkcmVzcz9cIiB8IHJweFRyYW5zbGF0ZX19XG4gICAgICA8L3NwYW4+XG4gICAgICA8L3N1bW1hcnk+XG4gICAgICA8ZGl2IGlkPVwiY29udGVudC1yZWFzb24tY2FuLW5vdC1maW5kLWVtYWlsXCIgY2xhc3M9XCJnb3Z1ay1kZXRhaWxzX190ZXh0XCI+XG4gICAgICAgIHt7XCJJZiB5b3UgY2FuJ3QgZmluZCB5b3VyIGNvbGxlYWd1ZSdzIGVtYWlsIGFkZHJlc3MsIHRoZXkgd2lsbCBuZWVkIHRvIGNvbXBsZXRlIHRoZWlyIHJlZ2lzdHJhdGlvbi4gQ29udGFjdCB5b3VyIGFkbWluaXN0cmF0b3IgZm9yIGhlbHAuXCIgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kZXRhaWxzPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiAqbmdJZj1cInNob3dSZW1vdmVVc2Vyc1wiPlxuICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiIGZvcj1cInJlbW92ZS11c2VyLWlucHV0XCI+XG4gICAgICB7eydSZW1vdmUgYSBwZXJzb24gZnJvbSBhbGwgY2FzZXMnIHwgcnB4VHJhbnNsYXRlfX1cbiAgICA8L2xhYmVsPlxuICAgIDxzcGFuIGlkPVwicmVtb3ZlLXVzZXItaGludFwiIGNsYXNzPVwiZ292dWstaGludFwiPlxuICAgICAge3snU2VsZWN0IGEgcGVyc29uIHRvIHJlbW92ZSB0aGVtIGZyb20gYWxsIHNlbGVjdGVkIGNhc2VzLicgfCBycHhUcmFuc2xhdGV9fVxuICAgIDwvc3Bhbj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi10d28tdGhpcmRzXCI+XG4gICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFVzZXJUb1JlbW92ZVwiIGNsYXNzPVwiZ292dWstc2VsZWN0XCIgaWQ9XCJyZW1vdmUtdXNlci1pbnB1dFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJyZW1vdmUtdXNlci1oaW50XCI+XG4gICAgICAgICAgPG9wdGlvbiBbbmdWYWx1ZV09XCJudWxsXCIgc2VsZWN0ZWQ+U2VsZWN0IGEgcGVyc29uPC9vcHRpb24+XG4gICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgdXNlciBvZiBhc3NpZ25lZFVzZXJzXCIgW25nVmFsdWVdPVwidXNlclwiPnt7dXNlci5maXJzdE5hbWV9fSB7e3VzZXIubGFzdE5hbWV9fSAtIHt7dXNlci5lbWFpbH19PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tb25lLXRoaXJkc1wiPlxuICAgICAgICA8YnV0dG9uIGlkPVwiYnRuLXJlbW92ZS11c2VyXCIgKGNsaWNrKT1cInJlbW92ZVVzZXIoKVwiIGNsYXNzPVwiZ292dWstYnV0dG9uIGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5XCIgdGl0bGU9XCJ7eydSZW1vdmUgdXNlciBmcm9tIHNlbGVjdGVkIGNhc2VzJyB8IHJweFRyYW5zbGF0ZX19XCI+XG4gICAgICAgICAge3snUmVtb3ZlJyB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj4ge3sndXNlcicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBpZD1cImNhc2VzXCIgW25nQ2xhc3NdPVwieydnb3Z1ay1mb3JtLWdyb3VwLS1lcnJvcic6IHNoYXJlQ2FzZUVycm9yTWVzc2FnZS5tZXNzYWdlcyAmJiBzaGFyZUNhc2VFcnJvck1lc3NhZ2UubWVzc2FnZXMubGVuZ3RoID4gMH1cIj5cbiAgPGgzIGlkPVwidGl0bGUtc2VsZWN0ZWQtY2FzZXNcIiBjbGFzcz1cImdvdnVrLWhlYWRpbmctbVwiPlxuICAgIHt7J1NlbGVjdGVkIGNhc2VzJyB8IHJweFRyYW5zbGF0ZX19XG4gIDwvaDM+XG4gIDx4dWlsaWItZ292LXVrLWVycm9yLW1lc3NhZ2UgW2NvbmZpZ109XCJzZWxlY3RlZENhc2VzRXJyb3JNZXNzYWdlQ29uZmlnXCIgW2Vycm9yTWVzc2FnZV09XCJzaGFyZUNhc2VFcnJvck1lc3NhZ2VcIj48L3h1aWxpYi1nb3YtdWstZXJyb3ItbWVzc2FnZT5cbiAgPGRpdiAqbmdJZj1cInNoYXJlQ2FzZXMgJiYgc2hhcmVDYXNlcy5sZW5ndGggPiAwXCIgY2xhc3M9XCJnb3Z1ay1hY2NvcmRpb25cIiBkYXRhLW1vZHVsZT1cImdvdnVrLWFjY29yZGlvblwiIGlkPVwiYWNjb3JkaW9uLXdpdGgtc3VtbWFyeS1zZWN0aW9uc1wiPlxuICAgIDx4dWlsaWItc2VsZWN0ZWQtY2FzZS1saXN0XG4gICAgICBbc2hhcmVDYXNlcyRdPVwic2hhcmVDYXNlcyRcIlxuICAgICAgW3JlbW92ZVVzZXJGcm9tQ2FzZVRvZ2dsZU9uXT1cInJlbW92ZVVzZXJGcm9tQ2FzZVRvZ2dsZU9uXCJcbiAgICAgICh1bnNlbGVjdCk9XCJvblVuc2VsZWN0KCRldmVudClcIlxuICAgICAgKHN5bmNocm9uaXplU3RvcmUpPVwib25TeW5jaHJvbml6ZVN0b3JlKCRldmVudClcIlxuICAgID5cbiAgICA8L3h1aWxpYi1zZWxlY3RlZC1jYXNlLWxpc3Q+XG4gIDwvZGl2PlxuXG4gIDxkaXYgaWQ9XCJub0Nhc2VEaXNwbGF5XCIgKm5nSWY9XCJzaGFyZUNhc2VzICYmIHNoYXJlQ2FzZXMubGVuZ3RoID09PSAwXCIgY2xhc3M9XCJnb3Z1ay1oaW50XCJcbiAgICBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogc2hhcmVDYXNlRXJyb3JNZXNzYWdlLm1lc3NhZ2VzICYmIHNoYXJlQ2FzZUVycm9yTWVzc2FnZS5tZXNzYWdlcy5sZW5ndGggPiAwfVwiPlxuICAgIHt7J05vIGNhc2VzIHRvIGRpc3BsYXkuJyB8IHJweFRyYW5zbGF0ZX19XG4gIDwvZGl2PlxuXG48L2Rpdj5cblxuPGRpdiBpZD1cInNoYXJlLWNhc2UtbmF2XCIgY2xhc3M9XCJnb3Z1ay1idXR0b24tZ3JvdXBcIj5cbiAgPGJ1dHRvbiBpZD1cImJ0bi1jb250aW51ZVwiIGNsYXNzPVwiZ292dWstYnV0dG9uXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIiAoY2xpY2spPVwib25Db250aW51ZSgpXCIgdGl0bGU9XCJ7eydDb250aW51ZScgfCBycHhUcmFuc2xhdGV9fVwiPlxuICAgIHt7J0NvbnRpbnVlJyB8IHJweFRyYW5zbGF0ZX19XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIGlkPVwiYnRuLWNhbmNlbFwiIGNsYXNzPVwiZ292dWstYnV0dG9uIGdvdnVrLWJ1dHRvbi0tc2Vjb25kYXJ5XCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIiB0aXRsZT1cInt7J0NhbmNlbCcgfCBycHhUcmFuc2xhdGV9fVwiIFtyb3V0ZXJMaW5rXT1cImNhbmNlbExpbmtcIj5cbiAgICB7eydDYW5jZWwnIHwgcnB4VHJhbnNsYXRlfX1cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -26,8 +26,8 @@ HmctsIdentityBarComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: H
|
|
|
26
26
|
} }, dependencies: [i1.NgIf, i2.RpxTranslatePipe] });
|
|
27
27
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(HmctsIdentityBarComponent, [{
|
|
28
28
|
type: Component,
|
|
29
|
-
args: [{ selector: 'xuilib-hmcts-identity-bar', template: "<div class=\"hmcts-identity-bar\" *ngIf=\"value\">\n
|
|
29
|
+
args: [{ selector: 'xuilib-hmcts-identity-bar', template: "<div class=\"hmcts-identity-bar\" *ngIf=\"value\">\n <div class=\"hmcts-identity-bar__container\">\n <div class=\"hmcts-identity-bar__details\">\n <span class=\"hmcts-identity-bar__title\">{{value | rpxTranslate}}</span>\n </div>\n </div>\n</div>\n" }]
|
|
30
30
|
}], function () { return []; }, { content: [{
|
|
31
31
|
type: Input
|
|
32
32
|
}] }); })();
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1jdHMtaWRlbnRpdHktYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL2dvdi11aS9jb21wb25lbnRzL2htY3RzLWlkZW50aXR5LWJhci9obWN0cy1pZGVudGl0eS1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh1aS1jb21tb24tbGliL3NyYy9saWIvZ292LXVpL2NvbXBvbmVudHMvaG1jdHMtaWRlbnRpdHktYmFyL2htY3RzLWlkZW50aXR5LWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7SUNBakQsOEJBQThDLGFBQUEsYUFBQSxjQUFBO0lBR0EsWUFBd0I7O0lBQUEsaUJBQU8sRUFBQSxFQUFBLEVBQUE7OztJQUEvQixlQUF3QjtJQUF4Qix3REFBd0I7O0FESXRFLE1BQU0sT0FBTyx5QkFBeUI7SUFFbEMsSUFBb0IsT0FBTyxDQUFDLEtBQVU7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFJRCxnQkFBZ0IsQ0FBQzs7a0dBUlIseUJBQXlCOzRFQUF6Qix5QkFBeUI7UUNQdEMsMEVBTU07O1FBTjJCLGdDQUFXOzt1RkRPL0IseUJBQXlCO2NBTHJDLFNBQVM7MkJBQ0ksMkJBQTJCO3NDQU1qQixPQUFPO2tCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3h1aWxpYi1obWN0cy1pZGVudGl0eS1iYXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9obWN0cy1pZGVudGl0eS1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2htY3RzLWlkZW50aXR5LWJhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEhtY3RzSWRlbnRpdHlCYXJDb21wb25lbnQge1xuXG4gICAgQElucHV0KCkgcHVibGljIHNldCBjb250ZW50KHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlLm5hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIHZhbHVlOiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxufVxuIiwiPGRpdiBjbGFzcz1cImhtY3RzLWlkZW50aXR5LWJhclwiICpuZ0lmPVwidmFsdWVcIj5cbiAgPGRpdiBjbGFzcz1cImhtY3RzLWlkZW50aXR5LWJhcl9fY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImhtY3RzLWlkZW50aXR5LWJhcl9fZGV0YWlsc1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJobWN0cy1pZGVudGl0eS1iYXJfX3RpdGxlXCI+e3t2YWx1ZSB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
|
-
import {
|
|
4
|
-
import { map, tap } from 'rxjs/operators';
|
|
5
|
-
import { getAllCaseworkersFromServices, getSessionStorageKeyForServiceId, setCaseworkers } from '../../gov-ui/util/session-storage/session-storage-utils';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
6
4
|
import { PersonRole, RoleCategory } from '../../models';
|
|
7
5
|
import { SessionStorageService } from '../storage/session-storage/session-storage.service';
|
|
8
6
|
import * as i0 from "@angular/core";
|
|
@@ -32,35 +30,8 @@ export class FindAPersonService {
|
|
|
32
30
|
}
|
|
33
31
|
this.assignedUser = searchOptions.assignedUser ? searchOptions.assignedUser : null;
|
|
34
32
|
const fullServices = searchOptions.services;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const storedCaseworkersByService = [];
|
|
38
|
-
fullServices.forEach(serviceId => {
|
|
39
|
-
const serviceKey = getSessionStorageKeyForServiceId(serviceId);
|
|
40
|
-
if (this.sessionStorageService.getItem(serviceKey)) {
|
|
41
|
-
storedServices.push(serviceId);
|
|
42
|
-
storedCaseworkersByService.push({ service: serviceId, caseworkers: JSON.parse(this.sessionStorageService.getItem(serviceKey)) });
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
newServices.push(serviceId);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
// if all services are stored then return the stored caseworkers by service
|
|
49
|
-
if (storedServices.length === fullServices.length) {
|
|
50
|
-
const storedCaseworkers = getAllCaseworkersFromServices(storedCaseworkersByService);
|
|
51
|
-
return of(this.searchInCaseworkers(storedCaseworkers, searchOptions));
|
|
52
|
-
}
|
|
53
|
-
// all serviceIds passed in as node layer getting used anyway and caseworkers also stored there
|
|
54
|
-
return this.http.post('/workallocation/retrieveCaseWorkersForServices', { fullServices }).pipe(tap(caseworkersByService => {
|
|
55
|
-
caseworkersByService.forEach(caseworkerListByService => {
|
|
56
|
-
// for any new service, ensure that they are then stored in the session
|
|
57
|
-
if (newServices.includes(caseworkerListByService.service)) {
|
|
58
|
-
setCaseworkers(caseworkerListByService.service, caseworkerListByService.caseworkers, this.sessionStorageService);
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
}), map(caseworkersByService => {
|
|
62
|
-
const givenCaseworkers = getAllCaseworkersFromServices(caseworkersByService);
|
|
63
|
-
return this.searchInCaseworkers(givenCaseworkers, searchOptions);
|
|
33
|
+
return this.http.post('/workallocation/caseworker/getUsersByServiceName', { services: fullServices, term: searchOptions.searchTerm }).pipe(map(caseworkers => {
|
|
34
|
+
return this.searchInCaseworkers(caseworkers, searchOptions);
|
|
64
35
|
}));
|
|
65
36
|
}
|
|
66
37
|
mapCaseworkers(caseworkers, roleCategory) {
|
|
@@ -92,11 +63,9 @@ export class FindAPersonService {
|
|
|
92
63
|
roleCategory = RoleCategory.CTSC;
|
|
93
64
|
}
|
|
94
65
|
}
|
|
95
|
-
const searchTerm = searchOptions && searchOptions.searchTerm ? searchOptions.searchTerm.toLowerCase() : '';
|
|
96
66
|
const people = caseworkers ? this.mapCaseworkers(caseworkers, roleCategory) : [];
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
: finalPeopleList.filter(person => person && person.id !== this.userId && person.id !== this.assignedUser);
|
|
67
|
+
return searchOptions.userIncluded ? people.filter(person => person && person.id !== this.assignedUser)
|
|
68
|
+
: people.filter(person => person && person.id !== this.userId && person.id !== this.assignedUser);
|
|
100
69
|
}
|
|
101
70
|
searchJudicial(value, serviceId) {
|
|
102
71
|
return this.http.post('api/prd/judicial/getJudicialUsersSearch', { searchString: value, serviceCode: serviceId });
|
|
@@ -111,4 +80,4 @@ FindAPersonService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: FindA
|
|
|
111
80
|
providedIn: 'root'
|
|
112
81
|
}]
|
|
113
82
|
}], function () { return [{ type: i1.HttpClient }, { type: i2.SessionStorageService }]; }, null); })();
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsZ0NBQWdDLEVBQ2hDLGNBQWMsRUFDZixNQUFNLHlEQUF5RCxDQUFDO0FBQ2pFLE9BQU8sRUFLTCxVQUFVLEVBQ1YsWUFBWSxFQUViLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7O0FBSzNGLE1BQU0sT0FBTyxrQkFBa0I7SUFNN0IsWUFBNkIsSUFBZ0IsRUFBbUIscUJBQTRDO1FBQS9FLFNBQUksR0FBSixJQUFJLENBQVk7UUFBbUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtJQUM1RyxDQUFDO0lBRU0sSUFBSSxDQUFDLGFBQTRCO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEUsSUFBSSxXQUFXLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFO1lBQzlDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLENB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LFlBQVksQ0FBQztZQUM3RyxDQUFDLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0csQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFhLEVBQUUsU0FBaUI7UUFDcEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBc0IseUNBQXlDLEVBQ2xGLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDOztBQW5HYSxpQ0FBYyxHQUFXLGFBQWEsQ0FBQztvRkFGMUMsa0JBQWtCO3dFQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCLG1CQUZqQixNQUFNO3VGQUVQLGtCQUFrQjtjQUg5QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgZ2V0QWxsQ2FzZXdvcmtlcnNGcm9tU2VydmljZXMsXG4gIGdldFNlc3Npb25TdG9yYWdlS2V5Rm9yU2VydmljZUlkLFxuICBzZXRDYXNld29ya2Vyc1xufSBmcm9tICcuLi8uLi9nb3YtdWkvdXRpbC9zZXNzaW9uLXN0b3JhZ2Uvc2Vzc2lvbi1zdG9yYWdlLXV0aWxzJztcbmltcG9ydCB7XG4gIENhc2V3b3JrZXIsXG4gIENhc2V3b3JrZXJzQnlTZXJ2aWNlLFxuICBKdWRpY2lhbFVzZXJNb2RlbCxcbiAgUGVyc29uLFxuICBQZXJzb25Sb2xlLFxuICBSb2xlQ2F0ZWdvcnksXG4gIFNlYXJjaE9wdGlvbnNcbn0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uL3N0b3JhZ2Uvc2Vzc2lvbi1zdG9yYWdlL3Nlc3Npb24tc3RvcmFnZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRmluZEFQZXJzb25TZXJ2aWNlIHtcblxuICBwdWJsaWMgc3RhdGljIGNhc2V3b3JrZXJzS2V5OiBzdHJpbmcgPSAnY2FzZXdvcmtlcnMnO1xuICBwdWJsaWMgdXNlcklkOiBzdHJpbmc7XG4gIHB1YmxpYyBhc3NpZ25lZFVzZXI6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kKHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbnMpOiBPYnNlcnZhYmxlPFBlcnNvbltdPiB7XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGlmICh1c2VySW5mb1N0ciAmJiAhc2VhcmNoT3B0aW9ucy51c2VySW5jbHVkZWQpIHtcbiAgICAgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgICB0aGlzLnVzZXJJZCA9IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQ7XG4gICAgfVxuICAgIHRoaXMuYXNzaWduZWRVc2VyID0gc2VhcmNoT3B0aW9ucy5hc3NpZ25lZFVzZXIgPyBzZWFyY2hPcHRpb25zLmFzc2lnbmVkVXNlciA6IG51bGw7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFBlcnNvbltdPignL3dvcmthbGxvY2F0aW9uL2ZpbmRQZXJzb24nLCB7IHNlYXJjaE9wdGlvbnMgfSlcbiAgICAgIC5waXBlKG1hcChqdWRpY2lhcnkgPT4ganVkaWNpYXJ5LmZpbHRlcihqdWRnZSA9PiAhKFt0aGlzLmFzc2lnbmVkVXNlcl0uaW5jbHVkZXMoanVkZ2UuaWQpKSkpKTtcbiAgICAvLyBSZW1vdmVkIHRoZSBjdXJyZW50IHVzZXIgaWQgdG8gZml4IEVVSS04NDY1LlxuICB9XG5cbiAgcHVibGljIGZpbmRDYXNld29ya2VycyhzZWFyY2hPcHRpb25zOiBTZWFyY2hPcHRpb25zKTogT2JzZXJ2YWJsZTxQZXJzb25bXT4ge1xuICAgIGNvbnN0IHVzZXJJbmZvU3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckRldGFpbHMnKTtcbiAgICBpZiAodXNlckluZm9TdHIpIHtcbiAgICAgIGNvbnN0IHVzZXJJbmZvID0gSlNPTi5wYXJzZSh1c2VySW5mb1N0cik7XG4gICAgICB0aGlzLnVzZXJJZCA9IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQ7XG4gICAgfVxuICAgIHRoaXMuYXNzaWduZWRVc2VyID0gc2VhcmNoT3B0aW9ucy5hc3NpZ25lZFVzZXIgPyBzZWFyY2hPcHRpb25zLmFzc2lnbmVkVXNlciA6IG51bGw7XG4gICAgY29uc3QgZnVsbFNlcnZpY2VzID0gc2VhcmNoT3B0aW9ucy5zZXJ2aWNlcztcbiAgICBjb25zdCBzdG9yZWRTZXJ2aWNlcyA9IFtdO1xuICAgIGNvbnN0IG5ld1NlcnZpY2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IHN0b3JlZENhc2V3b3JrZXJzQnlTZXJ2aWNlOiBDYXNld29ya2Vyc0J5U2VydmljZVtdID0gW107XG4gICAgZnVsbFNlcnZpY2VzLmZvckVhY2goc2VydmljZUlkID0+IHtcbiAgICAgIGNvbnN0IHNlcnZpY2VLZXkgPSBnZXRTZXNzaW9uU3RvcmFnZUtleUZvclNlcnZpY2VJZChzZXJ2aWNlSWQpO1xuICAgICAgaWYgKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oc2VydmljZUtleSkpIHtcbiAgICAgICAgc3RvcmVkU2VydmljZXMucHVzaChzZXJ2aWNlSWQpO1xuICAgICAgICBzdG9yZWRDYXNld29ya2Vyc0J5U2VydmljZS5wdXNoKHsgc2VydmljZTogc2VydmljZUlkLCBjYXNld29ya2VyczogSlNPTi5wYXJzZSh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKHNlcnZpY2VLZXkpKSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1NlcnZpY2VzLnB1c2goc2VydmljZUlkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICAvLyBpZiBhbGwgc2VydmljZXMgYXJlIHN0b3JlZCB0aGVuIHJldHVybiB0aGUgc3RvcmVkIGNhc2V3b3JrZXJzIGJ5IHNlcnZpY2VcbiAgICBpZiAoc3RvcmVkU2VydmljZXMubGVuZ3RoID09PSBmdWxsU2VydmljZXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBzdG9yZWRDYXNld29ya2VycyA9IGdldEFsbENhc2V3b3JrZXJzRnJvbVNlcnZpY2VzKHN0b3JlZENhc2V3b3JrZXJzQnlTZXJ2aWNlKTtcbiAgICAgIHJldHVybiBvZih0aGlzLnNlYXJjaEluQ2FzZXdvcmtlcnMoc3RvcmVkQ2FzZXdvcmtlcnMsIHNlYXJjaE9wdGlvbnMpKTtcbiAgICB9XG4gICAgLy8gYWxsIHNlcnZpY2VJZHMgcGFzc2VkIGluIGFzIG5vZGUgbGF5ZXIgZ2V0dGluZyB1c2VkIGFueXdheSBhbmQgY2FzZXdvcmtlcnMgYWxzbyBzdG9yZWQgdGhlcmVcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q2FzZXdvcmtlcnNCeVNlcnZpY2VbXT4oJy93b3JrYWxsb2NhdGlvbi9yZXRyaWV2ZUNhc2VXb3JrZXJzRm9yU2VydmljZXMnLCB7IGZ1bGxTZXJ2aWNlcyB9KS5waXBlKFxuICAgICAgdGFwKGNhc2V3b3JrZXJzQnlTZXJ2aWNlID0+IHtcbiAgICAgICAgY2FzZXdvcmtlcnNCeVNlcnZpY2UuZm9yRWFjaChjYXNld29ya2VyTGlzdEJ5U2VydmljZSA9PiB7XG4gICAgICAgICAgLy8gZm9yIGFueSBuZXcgc2VydmljZSwgZW5zdXJlIHRoYXQgdGhleSBhcmUgdGhlbiBzdG9yZWQgaW4gdGhlIHNlc3Npb25cbiAgICAgICAgICBpZiAobmV3U2VydmljZXMuaW5jbHVkZXMoY2FzZXdvcmtlckxpc3RCeVNlcnZpY2Uuc2VydmljZSkpIHtcbiAgICAgICAgICAgIHNldENhc2V3b3JrZXJzKGNhc2V3b3JrZXJMaXN0QnlTZXJ2aWNlLnNlcnZpY2UsIGNhc2V3b3JrZXJMaXN0QnlTZXJ2aWNlLmNhc2V3b3JrZXJzLCB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pLFxuICAgICAgbWFwKGNhc2V3b3JrZXJzQnlTZXJ2aWNlID0+IHtcbiAgICAgICAgY29uc3QgZ2l2ZW5DYXNld29ya2VycyA9IGdldEFsbENhc2V3b3JrZXJzRnJvbVNlcnZpY2VzKGNhc2V3b3JrZXJzQnlTZXJ2aWNlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoSW5DYXNld29ya2VycyhnaXZlbkNhc2V3b3JrZXJzLCBzZWFyY2hPcHRpb25zKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtYXBDYXNld29ya2VycyhjYXNld29ya2VyczogQ2FzZXdvcmtlcltdLCByb2xlQ2F0ZWdvcnk6IHN0cmluZyk6IFBlcnNvbltdIHtcbiAgICBjb25zdCBwZW9wbGU6IFBlcnNvbltdID0gW107XG4gICAgY2FzZXdvcmtlcnMuZm9yRWFjaCgoY2FzZXdvcmtlcikgPT4ge1xuICAgICAgY29uc3QgdGhpc1BlcnNvbjogUGVyc29uID0ge1xuICAgICAgICBlbWFpbDogY2FzZXdvcmtlci5lbWFpbCxcbiAgICAgICAgbmFtZTogYCR7Y2FzZXdvcmtlci5maXJzdE5hbWV9ICR7Y2FzZXdvcmtlci5sYXN0TmFtZX1gLFxuICAgICAgICBpZDogY2FzZXdvcmtlci5pZGFtSWQsXG4gICAgICAgIGRvbWFpbjogY2FzZXdvcmtlci5yb2xlQ2F0ZWdvcnkgPT09IFJvbGVDYXRlZ29yeS5DQVNFV09SS0VSID8gUGVyc29uUm9sZS5DQVNFV09SS0VSIDogUGVyc29uUm9sZS5BRE1JTixcbiAgICAgICAgLy8ga25vd25BcyBjYW4gYmUgYWRkZWQgaWYgcmVxdWlyZWRcbiAgICAgIH07XG4gICAgICBpZiAoY2FzZXdvcmtlci5yb2xlQ2F0ZWdvcnkgPT09IHJvbGVDYXRlZ29yeSB8fCByb2xlQ2F0ZWdvcnkgPT09IFJvbGVDYXRlZ29yeS5BTEwpIHtcbiAgICAgICAgcGVvcGxlLnB1c2godGhpc1BlcnNvbik7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHBlb3BsZTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hJbkNhc2V3b3JrZXJzKGNhc2V3b3JrZXJzOiBDYXNld29ya2VyW10sIHNlYXJjaE9wdGlvbnM6IFNlYXJjaE9wdGlvbnMpOiBQZXJzb25bXSB7XG4gICAgbGV0IHJvbGVDYXRlZ29yeSA9IFJvbGVDYXRlZ29yeS5BTEw7XG4gICAgaWYgKCEoc2VhcmNoT3B0aW9ucy51c2VyUm9sZSA9PT0gUGVyc29uUm9sZS5BTEwpKSB7XG4gICAgICBpZiAoc2VhcmNoT3B0aW9ucy51c2VyUm9sZSA9PT0gUGVyc29uUm9sZS5DQVNFV09SS0VSKSB7XG4gICAgICAgIHJvbGVDYXRlZ29yeSA9IFJvbGVDYXRlZ29yeS5DQVNFV09SS0VSO1xuICAgICAgfSBlbHNlIGlmIChzZWFyY2hPcHRpb25zLnVzZXJSb2xlID09PSBQZXJzb25Sb2xlLkFETUlOKSB7XG4gICAgICAgIHJvbGVDYXRlZ29yeSA9IFJvbGVDYXRlZ29yeS5BRE1JTjtcbiAgICAgIH0gZWxzZSBpZiAoc2VhcmNoT3B0aW9ucy51c2VyUm9sZSA9PT0gUGVyc29uUm9sZS5DVFNDKSB7XG4gICAgICAgIHJvbGVDYXRlZ29yeSA9IFJvbGVDYXRlZ29yeS5DVFNDO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzZWFyY2hUZXJtID0gc2VhcmNoT3B0aW9ucyAmJiBzZWFyY2hPcHRpb25zLnNlYXJjaFRlcm0gPyBzZWFyY2hPcHRpb25zLnNlYXJjaFRlcm0udG9Mb3dlckNhc2UoKSA6ICcnO1xuICAgIGNvbnN0IHBlb3BsZSA9IGNhc2V3b3JrZXJzID8gdGhpcy5tYXBDYXNld29ya2VycyhjYXNld29ya2Vycywgcm9sZUNhdGVnb3J5KSA6IFtdO1xuICAgIGNvbnN0IGZpbmFsUGVvcGxlTGlzdCA9IHBlb3BsZS5maWx0ZXIocGVyc29uID0+IHBlcnNvbiAmJiBwZXJzb24ubmFtZSAmJiBwZXJzb24ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRlcm0pKTtcbiAgICByZXR1cm4gc2VhcmNoT3B0aW9ucy51c2VySW5jbHVkZWQgPyBmaW5hbFBlb3BsZUxpc3QuZmlsdGVyKHBlcnNvbiA9PiBwZXJzb24gJiYgcGVyc29uLmlkICE9PSB0aGlzLmFzc2lnbmVkVXNlcilcbiAgICAgIDogZmluYWxQZW9wbGVMaXN0LmZpbHRlcihwZXJzb24gPT4gcGVyc29uICYmIHBlcnNvbi5pZCAhPT0gdGhpcy51c2VySWQgJiYgcGVyc29uLmlkICE9PSB0aGlzLmFzc2lnbmVkVXNlcik7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoSnVkaWNpYWwodmFsdWU6IHN0cmluZywgc2VydmljZUlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEp1ZGljaWFsVXNlck1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8SnVkaWNpYWxVc2VyTW9kZWxbXT4oJ2FwaS9wcmQvanVkaWNpYWwvZ2V0SnVkaWNpYWxVc2Vyc1NlYXJjaCcsXG4gICAgICB7IHNlYXJjaFN0cmluZzogdmFsdWUsIHNlcnZpY2VDb2RlOiBzZXJ2aWNlSWQgfSk7XG4gIH1cbn1cblxuIl19
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1wZXJzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dWktY29tbW9uLWxpYi9zcmMvbGliL3NlcnZpY2VzL2ZpbmQtcGVyc29uL2ZpbmQtcGVyc29uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFJTCxVQUFVLEVBQ1YsWUFBWSxFQUViLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7O0FBSzNGLE1BQU0sT0FBTyxrQkFBa0I7SUFNN0IsWUFBNkIsSUFBZ0IsRUFBbUIscUJBQTRDO1FBQS9FLFNBQUksR0FBSixJQUFJLENBQVk7UUFBbUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtJQUM1RyxDQUFDO0lBRU0sSUFBSSxDQUFDLGFBQTRCO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEUsSUFBSSxXQUFXLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFO1lBQzlDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1NBQ3hEO1FBQ0QsSUFBSSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxh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bSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQ2FzZXdvcmtlcixcbiAgSnVkaWNpYWxVc2VyTW9kZWwsXG4gIFBlcnNvbixcbiAgUGVyc29uUm9sZSxcbiAgUm9sZUNhdGVnb3J5LFxuICBTZWFyY2hPcHRpb25zXG59IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi9zdG9yYWdlL3Nlc3Npb24tc3RvcmFnZS9zZXNzaW9uLXN0b3JhZ2Uuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEZpbmRBUGVyc29uU2VydmljZSB7XG5cbiAgcHVibGljIHN0YXRpYyBjYXNld29ya2Vyc0tleTogc3RyaW5nID0gJ2Nhc2V3b3JrZXJzJztcbiAgcHVibGljIHVzZXJJZDogc3RyaW5nO1xuICBwdWJsaWMgYXNzaWduZWRVc2VyOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlKSB7XG4gIH1cblxuICBwdWJsaWMgZmluZChzZWFyY2hPcHRpb25zOiBTZWFyY2hPcHRpb25zKTogT2JzZXJ2YWJsZTxQZXJzb25bXT4ge1xuICAgIGNvbnN0IHVzZXJJbmZvU3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckRldGFpbHMnKTtcbiAgICBpZiAodXNlckluZm9TdHIgJiYgIXNlYXJjaE9wdGlvbnMudXNlckluY2x1ZGVkKSB7XG4gICAgICBjb25zdCB1c2VySW5mbyA9IEpTT04ucGFyc2UodXNlckluZm9TdHIpO1xuICAgICAgdGhpcy51c2VySWQgPSB1c2VySW5mby5pZCA/IHVzZXJJbmZvLmlkIDogdXNlckluZm8udWlkO1xuICAgIH1cbiAgICB0aGlzLmFzc2lnbmVkVXNlciA9IHNlYXJjaE9wdGlvbnMuYXNzaWduZWRVc2VyID8gc2VhcmNoT3B0aW9ucy5hc3NpZ25lZFVzZXIgOiBudWxsO1xuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxQZXJzb25bXT4oJy93b3JrYWxsb2NhdGlvbi9maW5kUGVyc29uJywgeyBzZWFyY2hPcHRpb25zIH0pXG4gICAgICAucGlwZShtYXAoanVkaWNpYXJ5ID0+IGp1ZGljaWFyeS5maWx0ZXIoanVkZ2UgPT4gIShbdGhpcy5hc3NpZ25lZFVzZXJdLmluY2x1ZGVzKGp1ZGdlLmlkKSkpKSk7XG4gICAgLy8gUmVtb3ZlZCB0aGUgY3VycmVudCB1c2VyIGlkIHRvIGZpeCBFVUktODQ2NS5cbiAgfVxuXG4gIHB1YmxpYyBmaW5kQ2FzZXdvcmtlcnMoc2VhcmNoT3B0aW9uczogU2VhcmNoT3B0aW9ucyk6IE9ic2VydmFibGU8UGVyc29uW10+IHtcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgaWYgKHVzZXJJbmZvU3RyKSB7XG4gICAgICBjb25zdCB1c2VySW5mbyA9IEpTT04ucGFyc2UodXNlckluZm9TdHIpO1xuICAgICAgdGhpcy51c2VySWQgPSB1c2VySW5mby5pZCA/IHVzZXJJbmZvLmlkIDogdXNlckluZm8udWlkO1xuICAgIH1cbiAgICB0aGlzLmFzc2lnbmVkVXNlciA9IHNlYXJjaE9wdGlvbnMuYXNzaWduZWRVc2VyID8gc2VhcmNoT3B0aW9ucy5hc3NpZ25lZFVzZXIgOiBudWxsO1xuICAgIGNvbnN0IGZ1bGxTZXJ2aWNlcyA9IHNlYXJjaE9wdGlvbnMuc2VydmljZXM7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENhc2V3b3JrZXJbXT4oJy93b3JrYWxsb2NhdGlvbi9jYXNld29ya2VyL2dldFVzZXJzQnlTZXJ2aWNlTmFtZScsIHtzZXJ2aWNlczogZnVsbFNlcnZpY2VzLCB0ZXJtOiBzZWFyY2hPcHRpb25zLnNlYXJjaFRlcm19KS5waXBlKFxuICAgICAgbWFwKGNhc2V3b3JrZXJzID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VhcmNoSW5DYXNld29ya2VycyhjYXNld29ya2Vycywgc2VhcmNoT3B0aW9ucyk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbWFwQ2FzZXdvcmtlcnMoY2FzZXdvcmtlcnM6IENhc2V3b3JrZXJbXSwgcm9sZUNhdGVnb3J5OiBzdHJpbmcpOiBQZXJzb25bXSB7XG4gICAgY29uc3QgcGVvcGxlOiBQZXJzb25bXSA9IFtdO1xuICAgIGNhc2V3b3JrZXJzLmZvckVhY2goKGNhc2V3b3JrZXIpID0+IHtcbiAgICAgIGNvbnN0IHRoaXNQZXJzb246IFBlcnNvbiA9IHtcbiAgICAgICAgZW1haWw6IGNhc2V3b3JrZXIuZW1haWwsXG4gICAgICAgIG5hbWU6IGAke2Nhc2V3b3JrZXIuZmlyc3ROYW1lfSAke2Nhc2V3b3JrZXIubGFzdE5hbWV9YCxcbiAgICAgICAgaWQ6IGNhc2V3b3JrZXIuaWRhbUlkLFxuICAgICAgICBkb21haW46IGNhc2V3b3JrZXIucm9sZUNhdGVnb3J5ID09PSBSb2xlQ2F0ZWdvcnkuQ0FTRVdPUktFUiA/IFBlcnNvblJvbGUuQ0FTRVdPUktFUiA6IFBlcnNvblJvbGUuQURNSU4sXG4gICAgICAgIC8vIGtub3duQXMgY2FuIGJlIGFkZGVkIGlmIHJlcXVpcmVkXG4gICAgICB9O1xuICAgICAgaWYgKGNhc2V3b3JrZXIucm9sZUNhdGVnb3J5ID09PSByb2xlQ2F0ZWdvcnkgfHwgcm9sZUNhdGVnb3J5ID09PSBSb2xlQ2F0ZWdvcnkuQUxMKSB7XG4gICAgICAgIHBlb3BsZS5wdXNoKHRoaXNQZXJzb24pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBwZW9wbGU7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoSW5DYXNld29ya2VycyhjYXNld29ya2VyczogQ2FzZXdvcmtlcltdLCBzZWFyY2hPcHRpb25zOiBTZWFyY2hPcHRpb25zKTogUGVyc29uW10ge1xuICAgIGxldCByb2xlQ2F0ZWdvcnkgPSBSb2xlQ2F0ZWdvcnkuQUxMO1xuICAgIGlmICghKHNlYXJjaE9wdGlvbnMudXNlclJvbGUgPT09IFBlcnNvblJvbGUuQUxMKSkge1xuICAgICAgaWYgKHNlYXJjaE9wdGlvbnMudXNlclJvbGUgPT09IFBlcnNvblJvbGUuQ0FTRVdPUktFUikge1xuICAgICAgICByb2xlQ2F0ZWdvcnkgPSBSb2xlQ2F0ZWdvcnkuQ0FTRVdPUktFUjtcbiAgICAgIH0gZWxzZSBpZiAoc2VhcmNoT3B0aW9ucy51c2VyUm9sZSA9PT0gUGVyc29uUm9sZS5BRE1JTikge1xuICAgICAgICByb2xlQ2F0ZWdvcnkgPSBSb2xlQ2F0ZWdvcnkuQURNSU47XG4gICAgICB9IGVsc2UgaWYgKHNlYXJjaE9wdGlvbnMudXNlclJvbGUgPT09IFBlcnNvblJvbGUuQ1RTQykge1xuICAgICAgICByb2xlQ2F0ZWdvcnkgPSBSb2xlQ2F0ZWdvcnkuQ1RTQztcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcGVvcGxlID0gY2FzZXdvcmtlcnMgPyB0aGlzLm1hcENhc2V3b3JrZXJzKGNhc2V3b3JrZXJzLCByb2xlQ2F0ZWdvcnkpIDogW107XG4gICAgcmV0dXJuIHNlYXJjaE9wdGlvbnMudXNlckluY2x1ZGVkID8gcGVvcGxlLmZpbHRlcihwZXJzb24gPT4gcGVyc29uICYmIHBlcnNvbi5pZCAhPT0gdGhpcy5hc3NpZ25lZFVzZXIpXG4gICAgICA6IHBlb3BsZS5maWx0ZXIocGVyc29uID0+IHBlcnNvbiAmJiBwZXJzb24uaWQgIT09IHRoaXMudXNlcklkICYmIHBlcnNvbi5pZCAhPT0gdGhpcy5hc3NpZ25lZFVzZXIpO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaEp1ZGljaWFsKHZhbHVlOiBzdHJpbmcsIHNlcnZpY2VJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxKdWRpY2lhbFVzZXJNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEp1ZGljaWFsVXNlck1vZGVsW10+KCdhcGkvcHJkL2p1ZGljaWFsL2dldEp1ZGljaWFsVXNlcnNTZWFyY2gnLFxuICAgICAgeyBzZWFyY2hTdHJpbmc6IHZhbHVlLCBzZXJ2aWNlQ29kZTogc2VydmljZUlkIH0pO1xuICB9XG59XG5cbiJdfQ==
|