@hmcts/ccd-case-ui-toolkit 7.2.51-test-log-errors → 7.2.51

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.
Files changed (88) hide show
  1. package/esm2022/lib/components/banners/notification-banner/notification-banner.component.mjs +4 -4
  2. package/esm2022/lib/components/form/date-input/date-input.component.mjs +1 -1
  3. package/esm2022/lib/components/header/header-bar/header-bar.component.mjs +5 -5
  4. package/esm2022/lib/shared/components/activity/activity.component.mjs +3 -3
  5. package/esm2022/lib/shared/components/case-editor/case-edit/case-edit.component.mjs +3 -3
  6. package/esm2022/lib/shared/components/case-editor/case-edit-form/case-edit-form.component.mjs +1 -1
  7. package/esm2022/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.mjs +5 -5
  8. package/esm2022/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.mjs +9 -20
  9. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.mjs +9 -5
  10. package/esm2022/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.mjs +9 -5
  11. package/esm2022/lib/shared/components/case-timeline/case-timeline.component.mjs +4 -4
  12. package/esm2022/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.mjs +4 -4
  13. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.mjs +4 -4
  14. package/esm2022/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.mjs +9 -4
  15. package/esm2022/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.mjs +16 -3
  16. package/esm2022/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.mjs +28 -8
  17. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.mjs +13 -9
  18. package/esm2022/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.mjs +4 -4
  19. package/esm2022/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.mjs +4 -4
  20. package/esm2022/lib/shared/components/case-viewer/services/event-trigger.resolver.mjs +41 -6
  21. package/esm2022/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.mjs +9 -5
  22. package/esm2022/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.mjs +9 -5
  23. package/esm2022/lib/shared/components/event-start/components/task-assigned/task-assigned.component.mjs +10 -6
  24. package/esm2022/lib/shared/components/event-start/components/task-conflict/task-conflict.component.mjs +3 -3
  25. package/esm2022/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.mjs +9 -5
  26. package/esm2022/lib/shared/components/event-start/event-guard/event-start.guard.mjs +3 -3
  27. package/esm2022/lib/shared/components/event-start/services/event-start-state-machine.service.mjs +6 -6
  28. package/esm2022/lib/shared/components/palette/address/write-address-field.component.mjs +4 -4
  29. package/esm2022/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +4 -4
  30. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.mjs +4 -4
  31. package/esm2022/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.mjs +9 -9
  32. package/esm2022/lib/shared/components/palette/complex/read-complex-field-collection-table.component.mjs +8 -7
  33. package/esm2022/lib/shared/components/palette/datetime-picker/datetime-picker.component.mjs +1 -1
  34. package/esm2022/lib/shared/components/palette/document/read-document-field.component.mjs +7 -7
  35. package/esm2022/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.mjs +6 -6
  36. package/esm2022/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.mjs +5 -5
  37. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.mjs +12 -12
  38. package/esm2022/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.mjs +7 -7
  39. package/esm2022/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.mjs +6 -6
  40. package/esm2022/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.mjs +7 -7
  41. package/esm2022/lib/shared/components/palette/organisation/write-organisation-field.component.mjs +5 -5
  42. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.mjs +6 -2
  43. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +71 -69
  44. package/esm2022/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.mjs +23 -19
  45. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +5 -5
  46. package/esm2022/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +5 -5
  47. package/esm2022/lib/shared/components/search-result/search-result.component.mjs +5 -5
  48. package/esm2022/lib/shared/directives/substitutor/label-substitutor.directive.mjs +5 -2
  49. package/esm2022/lib/shared/services/form/field-type-sanitiser.mjs +1 -1
  50. package/esm2022/lib/shared/services/form/form-value.service.mjs +1 -101
  51. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +519 -514
  52. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  53. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +1 -4
  54. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  55. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts +2 -0
  56. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.d.ts.map +1 -1
  57. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts +2 -0
  58. package/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.d.ts.map +1 -1
  59. package/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.d.ts +2 -0
  60. package/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.d.ts.map +1 -1
  61. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts +1 -0
  62. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  63. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +1 -0
  64. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  65. package/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.d.ts +2 -0
  66. package/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.d.ts.map +1 -1
  67. package/lib/shared/components/case-viewer/services/event-trigger.resolver.d.ts +3 -2
  68. package/lib/shared/components/case-viewer/services/event-trigger.resolver.d.ts.map +1 -1
  69. package/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.d.ts +2 -0
  70. package/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.d.ts.map +1 -1
  71. package/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.d.ts +2 -0
  72. package/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.d.ts.map +1 -1
  73. package/lib/shared/components/event-start/components/task-assigned/task-assigned.component.d.ts +2 -0
  74. package/lib/shared/components/event-start/components/task-assigned/task-assigned.component.d.ts.map +1 -1
  75. package/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.d.ts +2 -0
  76. package/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.d.ts.map +1 -1
  77. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts +2 -2
  78. package/lib/shared/components/event-start/event-guard/event-start.guard.d.ts.map +1 -1
  79. package/lib/shared/components/event-start/services/event-start-state-machine.service.d.ts.map +1 -1
  80. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts +2 -0
  81. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-options/qualifying-question-options.component.d.ts.map +1 -1
  82. package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts +2 -0
  83. package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts.map +1 -1
  84. package/lib/shared/directives/substitutor/label-substitutor.directive.d.ts.map +1 -1
  85. package/lib/shared/services/form/field-type-sanitiser.d.ts.map +1 -1
  86. package/lib/shared/services/form/form-value.service.d.ts +0 -100
  87. package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
  88. package/package.json +1 -1
@@ -15,7 +15,7 @@ function LinkedCasesToTableComponent_table_2_tr_14_td_18_span_1_a_4_Template(rf,
15
15
  } if (rf & 2) {
16
16
  const case_r1 = i0.ɵɵnextContext(3).$implicit;
17
17
  const ctx_r1 = i0.ɵɵnextContext(2);
18
- i0.ɵɵpropertyInterpolate1("href", "cases/case-details/", case_r1.caseReference, "", i0.ɵɵsanitizeUrl);
18
+ i0.ɵɵpropertyInterpolate3("href", "cases/case-details/", case_r1.service, "/", case_r1.caseType, "/", case_r1.caseReference, "", i0.ɵɵsanitizeUrl);
19
19
  i0.ɵɵadvance();
20
20
  i0.ɵɵtextInterpolate(ctx_r1.getCaseRefereneLink(case_r1.caseReference));
21
21
  } }
@@ -27,7 +27,7 @@ function LinkedCasesToTableComponent_table_2_tr_14_td_18_span_1_Template(rf, ctx
27
27
  i0.ɵɵtext(1);
28
28
  i0.ɵɵpipe(2, "ccdLinkCasesReasonValue");
29
29
  i0.ɵɵelementStart(3, "span");
30
- i0.ɵɵtemplate(4, LinkedCasesToTableComponent_table_2_tr_14_td_18_span_1_a_4_Template, 2, 3, "a", 15);
30
+ i0.ɵɵtemplate(4, LinkedCasesToTableComponent_table_2_tr_14_td_18_span_1_a_4_Template, 2, 5, "a", 15);
31
31
  i0.ɵɵelementEnd();
32
32
  i0.ɵɵtemplate(5, LinkedCasesToTableComponent_table_2_tr_14_td_18_span_1_br_5_Template, 1, 0, "br", 13);
33
33
  i0.ɵɵelementEnd();
@@ -72,11 +72,11 @@ function LinkedCasesToTableComponent_table_2_tr_14_Template(rf, ctx) { if (rf &
72
72
  } if (rf & 2) {
73
73
  const case_r1 = ctx.$implicit;
74
74
  i0.ɵɵadvance(3);
75
- i0.ɵɵpropertyInterpolate1("href", "cases/case-details/", case_r1.caseReference, "", i0.ɵɵsanitizeUrl);
75
+ i0.ɵɵpropertyInterpolate3("href", "cases/case-details/", case_r1.service, "/", case_r1.caseType, "/", case_r1.caseReference, "", i0.ɵɵsanitizeUrl);
76
76
  i0.ɵɵadvance(2);
77
77
  i0.ɵɵtextInterpolate1("", case_r1.caseName, " ");
78
78
  i0.ɵɵadvance(2);
79
- i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 10, case_r1.caseReference), "");
79
+ i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(8, 12, case_r1.caseReference), "");
80
80
  i0.ɵɵadvance(3);
81
81
  i0.ɵɵproperty("title", case_r1.caseTypeDescription);
82
82
  i0.ɵɵadvance();
@@ -112,7 +112,7 @@ function LinkedCasesToTableComponent_table_2_Template(rf, ctx) { if (rf & 1) {
112
112
  i0.ɵɵtext(12, "Reasons for case link");
113
113
  i0.ɵɵelementEnd()()();
114
114
  i0.ɵɵelementStart(13, "tbody", 6);
115
- i0.ɵɵtemplate(14, LinkedCasesToTableComponent_table_2_tr_14_Template, 19, 12, "tr", 7)(15, LinkedCasesToTableComponent_table_2_tr_15_Template, 3, 0, "tr", 8);
115
+ i0.ɵɵtemplate(14, LinkedCasesToTableComponent_table_2_tr_14_Template, 19, 14, "tr", 7)(15, LinkedCasesToTableComponent_table_2_tr_15_Template, 3, 0, "tr", 8);
116
116
  i0.ɵɵelementEnd()();
117
117
  } if (rf & 2) {
118
118
  const ctx_r1 = i0.ɵɵnextContext();
@@ -277,11 +277,11 @@ export class LinkedCasesToTableComponent {
277
277
  }
278
278
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LinkedCasesToTableComponent, [{
279
279
  type: Component,
280
- args: [{ selector: 'ccd-linked-cases-to-table', template: "<div class=\"govuk-grid-row govuk-!-margin-bottom-2\">\n <div class=\"govuk-grid-column-full\">\n <table *ngIf=\"linkedCasesFromResponse\" aria-describedby=\"table to display cases linked TO\">\n <thead>\n <tr class=\"govuk-table__row\">\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Case name and number</th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Case type </th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Service</th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">State</th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Reasons for case link</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let case of linkedCasesFromResponse\">\n <td>\n <p class=\"govuk-body\"><a target=\"_blank\" href=\"cases/case-details/{{case.caseReference}}\"\n rel=\"noopener\"><span class=\"govuk-link\">{{case.caseName}} <br>\n {{case.caseReference | ccdCaseReference}}</span></a></p>\n </td>\n <td><span [title]=\"case.caseTypeDescription\">{{case.caseType}}</span></td>\n <td><span>{{case.service}}</span></td>\n <td><span [title]=\"case.stateDescription\">{{case.state}}</span>\n </td>\n <td *ngIf=\"case && case.reasons\">\n <span *ngFor=\"let reason of case.reasons; let i = index; let isLast = last\">\n {{reason.value | ccdLinkCasesReasonValue}}<span><a class=\"govuk-!-padding-left-1\"\n href=\"cases/case-details/{{ case.caseReference }}\"\n *ngIf=\"hasLeadCaseOrConsolidated(reason.value.Reason)\">{{getCaseRefereneLink(case.caseReference)}}</a></span>\n <br *ngIf=\"!isLast\" />\n </span>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngIf=\"linkedCasesFromResponse.length === 0 && (!isServerError && !isServerReasonCodeError)\">\n <td class=\"govuk-table__cell\" colspan=\"5\">\n None\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n", styles: [".case-table-column{min-width:20%;max-width:20%}\n"] }]
280
+ args: [{ selector: 'ccd-linked-cases-to-table', template: "<div class=\"govuk-grid-row govuk-!-margin-bottom-2\">\n <div class=\"govuk-grid-column-full\">\n <table *ngIf=\"linkedCasesFromResponse\" aria-describedby=\"table to display cases linked TO\">\n <thead>\n <tr class=\"govuk-table__row\">\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Case name and number</th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Case type </th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Service</th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">State</th>\n <th scope=\"col\" class=\"govuk-table__header case-table-column\" width=\"20%\">Reasons for case link</th>\n </tr>\n </thead>\n <tbody class=\"govuk-table__body\">\n <tr class=\"govuk-table__row\" *ngFor=\"let case of linkedCasesFromResponse\">\n <td>\n <p class=\"govuk-body\"><a target=\"_blank\" href=\"cases/case-details/{{ case.service }}/{{ case.caseType }}/{{case.caseReference}}\"\n rel=\"noopener\"><span class=\"govuk-link\">{{case.caseName}} <br>\n {{case.caseReference | ccdCaseReference}}</span></a></p>\n </td>\n <td><span [title]=\"case.caseTypeDescription\">{{case.caseType}}</span></td>\n <td><span>{{case.service}}</span></td>\n <td><span [title]=\"case.stateDescription\">{{case.state}}</span>\n </td>\n <td *ngIf=\"case && case.reasons\">\n <span *ngFor=\"let reason of case.reasons; let i = index; let isLast = last\">\n {{reason.value | ccdLinkCasesReasonValue}}<span><a class=\"govuk-!-padding-left-1\"\n href=\"cases/case-details/{{ case.service }}/{{ case.caseType }}/{{ case.caseReference }}\"\n *ngIf=\"hasLeadCaseOrConsolidated(reason.value.Reason)\">{{getCaseRefereneLink(case.caseReference)}}</a></span>\n <br *ngIf=\"!isLast\" />\n </span>\n </td>\n </tr>\n <tr class=\"govuk-table__row\" *ngIf=\"linkedCasesFromResponse.length === 0 && (!isServerError && !isServerReasonCodeError)\">\n <td class=\"govuk-table__cell\" colspan=\"5\">\n None\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>\n", styles: [".case-table-column{min-width:20%;max-width:20%}\n"] }]
281
281
  }], () => [{ type: i1.ActivatedRoute }, { type: i2.LinkedCasesService }, { type: i3.CasesService }], { caseField: [{
282
282
  type: Input
283
283
  }], notifyAPIFailure: [{
284
284
  type: Output
285
285
  }] }); })();
286
286
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LinkedCasesToTableComponent, { className: "LinkedCasesToTableComponent", filePath: "lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.ts", lineNumber: 26 }); })();
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VkLWNhc2VzLXRvLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL2xpbmtlZC1jYXNlcy10YWJsZS9saW5rZWQtY2FzZXMtdG8tdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbGlua2VkLWNhc2VzLXRhYmxlL2xpbmtlZC1jYXNlcy10by10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLGtDQUFrQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUU5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0lDa0JVLDZCQUVXO0lBQUEsWUFBMkM7SUFBQSxpQkFBSTs7OztJQUR0RyxxR0FBa0Q7SUFDSyxjQUEyQztJQUEzQyx1RUFBMkM7OztJQUN0RyxxQkFBc0I7OztJQUp4Qiw0QkFBNEU7SUFDMUUsWUFBMEM7O0lBQUEsNEJBQU07SUFBQSxvR0FFVztJQUErQyxpQkFBTztJ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QkFBcUIsQ0FBQztZQUNwRSxRQUFRLEVBQUUscUJBQXFCLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3BELG1CQUFtQixFQUFFLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxXQUFXLElBQUksRUFBRTtZQUN0RSxPQUFPLEVBQUUscUJBQXFCLENBQUMsU0FBUyxJQUFJLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsV0FBVyxJQUFJLEVBQUU7WUFDMUcsS0FBSyxFQUFFLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRTtZQUM3QyxnQkFBZ0IsRUFBRSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUU7WUFDL0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsYUFBYTtTQUNqQixDQUFDO0lBQzNCLENBQUM7cUhBOUpVLDJCQUEyQjs2REFBM0IsMkJBQTJCO1lDeEJ0QyxBQURGLDhCQUFvRCxhQUNkO1lBQ2xDLGlGQUEyRjtZQXNDL0YsQUFERSxpQkFBTSxFQUNGOztZQXRDTSxlQUE2QjtZQUE3QixrREFBNkI7OztpRkR1QjVCLDJCQUEyQjtjQUx2QyxTQUFTOzJCQUNFLDJCQUEyQjsyR0FVOUIsU0FBUztrQkFEZixLQUFLO1lBSUMsZ0JBQWdCO2tCQUR0QixNQUFNOztrRkFSSSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FzZVZpZXcgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZpZWxkLCBKdXJpc2RpY3Rpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IENhc2VMaW5rLCBMaW5rUmVhc29uIH0gZnJvbSAnLi4vLi4vZG9tYWluL2xpbmtlZC1jYXNlcy5tb2RlbCc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5cbmludGVyZmFjZSBMaW5rZWRDYXNlc1Jlc3BvbnNlIHtcbiAgY2FzZVJlZmVyZW5jZTogc3RyaW5nO1xuICBjYXNlTmFtZTogc3RyaW5nO1xuICBjYXNlVHlwZTogc3RyaW5nO1xuICBjYXNlVHlwZURlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHNlcnZpY2U6IHN0cmluZztcbiAgc3RhdGU6IHN0cmluZztcbiAgc3RhdGVEZXNjcmlwdGlvbjogc3RyaW5nO1xuICByZWFzb25zOiBzdHJpbmdbXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWxpbmtlZC1jYXNlcy10by10YWJsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9saW5rZWQtY2FzZXMtdG8tdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saW5rZWQtY2FzZXMtdG8tdGFibGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBMaW5rZWRDYXNlc1RvVGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENBU0VfQ09OU09MSURBVEVEX1JFQVNPTl9DT0RFID0gJ0NMUkMwMTUnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDQVNFX1BST0dSRVNTX1JFQVNPTl9DT0RFID0gJ0NMUkMwMTYnO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlRmllbGQ6IENhc2VGaWVsZDtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG5vdGlmeUFQSUZhaWx1cmU6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoZmFsc2UpO1xuICBwdWJsaWMgY2FzZURldGFpbHM6IENhc2VWaWV3O1xuICBwdWJsaWMgaXNMb2FkZWQ6IGJvb2xlYW47XG4gIHB1YmxpYyBsaW5rZWRDYXNlc0Zyb21SZXNwb25zZTogTGlua2VkQ2FzZXNSZXNwb25zZVtdID0gW107XG4gIHB1YmxpYyBjYXNlSWQ6IHN0cmluZztcbiAgcHVibGljIGlzU2VydmVyRXJyb3IgPSBmYWxzZTtcbiAgcHVibGljIGlzU2VydmVyUmVhc29uQ29kZUVycm9yID0gZmFsc2U7XG4gIHB1YmxpYyBqdXJpc2RpY3Rpb25zUmVzcG9uc2U6IEp1cmlzZGljdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaW5rZWRDYXNlc1NlcnZpY2U6IExpbmtlZENhc2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VzU2VydmljZTogQ2FzZXNTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGxldCBsYWJlbEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZ292dWstaGVhZGluZy1sJyk7XG4gICAgaWYgKGxhYmVsRmllbGQgJiYgbGFiZWxGaWVsZC5sZW5ndGgpIHtcbiAgICAgIGxhYmVsRmllbGRbMF0ucmVwbGFjZVdpdGgoJycpO1xuICAgIH1cbiAgICBsYWJlbEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaGVhZGluZy1oMicpO1xuICAgIGlmIChsYWJlbEZpZWxkICYmIGxhYmVsRmllbGQubGVuZ3RoKSB7XG4gICAgICBsYWJlbEZpZWxkWzBdLnJlcGxhY2VXaXRoKCcnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90ICYmIHRoaXMucm91dGUuc25hcHNob3QuZGF0YSAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS5jYXNlX2lkO1xuICAgIHRoaXMuZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCk7XG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlKSB7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRGV0YWlscyA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlO1xuICAgIH1cbiAgICB0aGlzLmlzU2VydmVyUmVhc29uQ29kZUVycm9yID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3I7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZVJlZmVyZW5lTGluayhjYXNlUmVmOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBjYXNlUmVmLnNsaWNlKHRoaXMuY2FzZUlkLmxlbmd0aCAtIDQpO1xuICB9XG5cbiAgcHVibGljIHNvcnRMaW5rZWRDYXNlc0J5UmVhc29uQ29kZShzZWFyY2hDYXNlc1Jlc3BvbnNlKTogTGlua2VkQ2FzZXNSZXNwb25zZVtdIHtcbiAgICBjb25zdCB0b3BMZXZlbHJlc3VsdEFycmF5ID0gW107XG4gICAgbGV0IHNlY29uZExldmVscmVzdWx0QXJyYXkgPSBbXTtcbiAgICBzZWFyY2hDYXNlc1Jlc3BvbnNlLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgY29uc3QgcmVhc29ucyA9IGl0ZW0gJiYgaXRlbS5yZWFzb25zIHx8IFtdO1xuICAgICAgY29uc3QgY29uc29saWRhdGVkU3RhdGVSZWFzb24gPSByZWFzb25zLm1hcCh4ID0+IHgpLmZpbmQoXG4gICAgICAgIHJlYXNvbiA9PiByZWFzb24gPT09IExpbmtlZENhc2VzVG9UYWJsZUNvbXBvbmVudC5DQVNFX0NPTlNPTElEQVRFRF9SRUFTT05fQ09ERVxuICAgICAgKTtcbiAgICAgIGNvbnN0IHByb2dyZXNzZWRTdGF0ZVJlYXNvbiA9IHJlYXNvbnMubWFwKHggPT4geCkuZmluZChcbiAgICAgICAgcmVhc29uID0+IHJlYXNvbiA9PT0gTGlua2VkQ2FzZXNUb1RhYmxlQ29tcG9uZW50LkNBU0VfUFJPR1JFU1NfUkVBU09OX0NPREVcbiAgICAgICk7XG4gICAgICBjb25zdCBhcnJheUl0ZW0gPSB7IC4uLml0ZW0gfTtcbiAgICAgIGlmIChwcm9ncmVzc2VkU3RhdGVSZWFzb24pIHtcbiAgICAgICAgdG9wTGV2ZWxyZXN1bHRBcnJheS5wdXNoKGFycmF5SXRlbSk7XG4gICAgICB9IGVsc2UgaWYgKGNvbnNvbGlkYXRlZFN0YXRlUmVhc29uKSB7XG4gICAgICAgIHNlY29uZExldmVscmVzdWx0QXJyYXkgPSBbeyAuLi5pdGVtIH0sIC4uLnNlY29uZExldmVscmVzdWx0QXJyYXldO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc2Vjb25kTGV2ZWxyZXN1bHRBcnJheS5wdXNoKHsgLi4uaXRlbSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdG9wTGV2ZWxyZXN1bHRBcnJheS5jb25jYXQoc2Vjb25kTGV2ZWxyZXN1bHRBcnJheSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlYXJjaENhc2VzUmVzcG9uc2UgPSBbXTtcbiAgICBjb25zdCBjYXNlRmllbGRWYWx1ZSA9IHRoaXMuY2FzZUZpZWxkICYmIHRoaXMuY2FzZUZpZWxkLmlkID09PSAnY2FzZUxpbmtzJyA/IHRoaXMuY2FzZUZpZWxkLnZhbHVlIDogW107XG4gICAgLy8gR2VuZXJhdGUgdGhlIGxpc3Qgb2Ygb2JzZXJ2YWJsZXNcbiAgICBjYXNlRmllbGRWYWx1ZS5mb3JFYWNoKGZpZWxkVmFsdWUgPT4ge1xuICAgICAgaWYgKGZpZWxkVmFsdWUgJiYgZmllbGRWYWx1ZS5pZCkge1xuICAgICAgICBzZWFyY2hDYXNlc1Jlc3BvbnNlLnB1c2godGhpcy5jYXNlc1NlcnZpY2UuZ2V0Q2FzZVZpZXdWMihmaWVsZFZhbHVlLmlkKSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHNlYXJjaENhc2VzUmVzcG9uc2UubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNlYXJjaENhc2VzQnlDYXNlSWRzKHNlYXJjaENhc2VzUmVzcG9uc2UpLnN1YnNjcmliZSgoc2VhcmNoQ2FzZXM6IGFueSkgPT4ge1xuICAgICAgICBsZXQgY2FzZXNSZXNwb25zZSA9IFtdO1xuICAgICAgICBzZWFyY2hDYXNlcy5mb3JFYWNoKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICBjYXNlc1Jlc3BvbnNlLnB1c2godGhpcy5tYXBSZXNwb25zZShyZXNwb25zZSkpO1xuICAgICAgICB9KTtcbiAgICAgICAgY2FzZXNSZXNwb25zZSA9IHRoaXMuc29ydFJlYXNvbkNvZGVzKGNhc2VzUmVzcG9uc2UpO1xuICAgICAgICB0aGlzLmxpbmtlZENhc2VzRnJvbVJlc3BvbnNlID0gdGhpcy5zb3J0TGlua2VkQ2FzZXNCeVJlYXNvbkNvZGUoY2FzZXNSZXNwb25zZSk7XG4gICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBjYXNlTGlua3MgPSB0aGlzLmxpbmtlZENhc2VzRnJvbVJlc3BvbnNlLm1hcChpdGVtID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY2FzZVJlZmVyZW5jZTogaXRlbS5jYXNlUmVmZXJlbmNlLFxuICAgICAgICAgICAgY2FzZU5hbWU6IGl0ZW0uY2FzZU5hbWUsXG4gICAgICAgICAgICBjYXNlU2VydmljZTogaXRlbS5zZXJ2aWNlLFxuICAgICAgICAgICAgY2FzZVR5cGU6IGl0ZW0uY2FzZVR5cGUsXG4gICAgICAgICAgICB1bmxpbms6IGZhbHNlLFxuICAgICAgICAgICAgcmVhc29uczogaXRlbS5yZWFzb25zICYmIGl0ZW0ucmVhc29ucy5tYXAocmVhc29uID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBSZWFzb246IHJlYXNvblxuICAgICAgICAgICAgICB9IGFzIExpbmtSZWFzb247XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9IGFzIENhc2VMaW5rO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rcyA9IGNhc2VMaW5rcztcbiAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMgPSBjYXNlTGlua3M7XG4gICAgICAgIHRoaXMuaXNTZXJ2ZXJFcnJvciA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVyciA9PiB7XG4gICAgICAgICAgdGhpcy5pc1NlcnZlckVycm9yID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLm5vdGlmeUFQSUZhaWx1cmUuZW1pdCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc29ydFJlYXNvbkNvZGVzKHNlYXJjaENhc2VzUmVzcG9uc2UpOiBMaW5rZWRDYXNlc1Jlc3BvbnNlW10ge1xuICAgIHNlYXJjaENhc2VzUmVzcG9uc2UuZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XG4gICAgICBpZiAoaXRlbT8ucmVhc29ucz8ubGVuZ3RoKSB7XG4gICAgICAgIGl0ZW0ucmVhc29ucy5mb3JFYWNoKChyZWFzb24pID0+IHtcbiAgICAgICAgICByZWFzb24uc29ydE9yZGVyID0gdGhpcy5nZXRSZWFzb25Tb3J0T3JkZXIocmVhc29uLnZhbHVlLlJlYXNvbik7XG4gICAgICAgIH0pO1xuICAgICAgICBpdGVtLnJlYXNvbnMgPSBpdGVtLnJlYXNvbnMuc29ydCgoYSwgYikgPT4gYS5zb3J0T3JkZXIgLSBiLnNvcnRPcmRlcik7XG4gICAgICAgIGl0ZW0uc29ydE9yZGVyID0gaXRlbS5yZWFzb25zWzBdLnNvcnRPcmRlcjtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBzZWFyY2hDYXNlc1Jlc3BvbnNlID0gc2VhcmNoQ2FzZXNSZXNwb25zZT8uc29ydCgoYSwgYikgPT4gYS5zb3J0T3JkZXIgLSBiLnNvcnRPcmRlcik7XG4gICAgcmV0dXJuIHNlYXJjaENhc2VzUmVzcG9uc2U7XG4gIH1cblxuICBwdWJsaWMgZ2V0UmVhc29uU29ydE9yZGVyKHJlYXNvbkNvZGU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgaWYgKHJlYXNvbkNvZGUgPT09IExpbmtlZENhc2VzVG9UYWJsZUNvbXBvbmVudC5DQVNFX1BST0dSRVNTX1JFQVNPTl9DT0RFKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2UgaWYgKHJlYXNvbkNvZGUgPT09IExpbmtlZENhc2VzVG9UYWJsZUNvbXBvbmVudC5DQVNFX0NPTlNPTElEQVRFRF9SRUFTT05fQ09ERSkge1xuICAgICAgcmV0dXJuIDI7XG4gICAgfVxuICAgIHJldHVybiAzO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaENhc2VzQnlDYXNlSWRzKHNlYXJjaENhc2VzUmVzcG9uc2U6IGFueVtdKTogT2JzZXJ2YWJsZTx1bmtub3duW10+IHtcbiAgICByZXR1cm4gZm9ya0pvaW4oc2VhcmNoQ2FzZXNSZXNwb25zZSk7XG4gIH1cblxuICBwdWJsaWMgaGFzTGVhZENhc2VPckNvbnNvbGlkYXRlZChyZWFzb25Db2RlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcmVhc29uQ29kZSA9PT0gTGlua2VkQ2FzZXNUb1RhYmxlQ29tcG9uZW50LkNBU0VfUFJPR1JFU1NfUkVBU09OX0NPREUgfHxcbiAgICAgIHJlYXNvbkNvZGUgPT09IExpbmtlZENhc2VzVG9UYWJsZUNvbXBvbmVudC5DQVNFX0NPTlNPTElEQVRFRF9SRUFTT05fQ09ERTtcbiAgfVxuXG4gIHB1YmxpYyBtYXBSZXNwb25zZShlc1NlYXJjaENhc2VzUmVzcG9uc2UpOiBMaW5rZWRDYXNlc1Jlc3BvbnNlIHtcbiAgICBjb25zdCBjYXNlSW5mbyA9IHRoaXMuY2FzZUZpZWxkLnZhbHVlLmZpbmQoaXRlbSA9PiBpdGVtLnZhbHVlICYmIGl0ZW0udmFsdWUuQ2FzZVJlZmVyZW5jZSA9PT0gZXNTZWFyY2hDYXNlc1Jlc3BvbnNlLmNhc2VfaWQpO1xuICAgIHJldHVybiBjYXNlSW5mbyAmJiB7XG4gICAgICBjYXNlUmVmZXJlbmNlOiBlc1NlYXJjaENhc2VzUmVzcG9uc2UuY2FzZV9pZCxcbiAgICAgIGNhc2VOYW1lOiB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5nZXRDYXNlTmFtZShlc1NlYXJjaENhc2VzUmVzcG9uc2UpLFxuICAgICAgY2FzZVR5cGU6IGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX3R5cGUubmFtZSB8fCAnJyxcbiAgICAgIGNhc2VUeXBlRGVzY3JpcHRpb246IGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX3R5cGUuZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICBzZXJ2aWNlOiBlc1NlYXJjaENhc2VzUmVzcG9uc2UuY2FzZV90eXBlICYmIGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX3R5cGUuanVyaXNkaWN0aW9uLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgc3RhdGU6IGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5zdGF0ZS5uYW1lIHx8ICcnLFxuICAgICAgc3RhdGVEZXNjcmlwdGlvbjogZXNTZWFyY2hDYXNlc1Jlc3BvbnNlLnN0YXRlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgcmVhc29uczogY2FzZUluZm8/LnZhbHVlPy5SZWFzb25Gb3JMaW5rXG4gICAgfSBhcyBMaW5rZWRDYXNlc1Jlc3BvbnNlO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3cgZ292dWstIS1tYXJnaW4tYm90dG9tLTJcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLWZ1bGxcIj5cbiAgICA8dGFibGUgKm5nSWY9XCJsaW5rZWRDYXNlc0Zyb21SZXNwb25zZVwiIGFyaWEtZGVzY3JpYmVkYnk9XCJ0YWJsZSB0byBkaXNwbGF5IGNhc2VzIGxpbmtlZCBUT1wiPlxuICAgICAgPHRoZWFkPlxuICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCI+XG4gICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNhc2UtdGFibGUtY29sdW1uXCIgd2lkdGg9XCIyMCVcIj5DYXNlIG5hbWUgYW5kIG51bWJlcjwvdGg+XG4gICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNhc2UtdGFibGUtY29sdW1uXCIgd2lkdGg9XCIyMCVcIj5DYXNlIHR5cGUgPC90aD5cbiAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXIgY2FzZS10YWJsZS1jb2x1bW5cIiB3aWR0aD1cIjIwJVwiPlNlcnZpY2U8L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+U3RhdGU8L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+UmVhc29ucyBmb3IgY2FzZSBsaW5rPC90aD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGhlYWQ+XG4gICAgICA8dGJvZHkgY2xhc3M9XCJnb3Z1ay10YWJsZV9fYm9keVwiPlxuICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCIgKm5nRm9yPVwibGV0IGNhc2Ugb2YgbGlua2VkQ2FzZXNGcm9tUmVzcG9uc2VcIj5cbiAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHlcIj48YSB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiY2FzZXMvY2FzZS1kZXRhaWxzL3t7Y2FzZS5jYXNlUmVmZXJlbmNlfX1cIlxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyXCI+PHNwYW4gY2xhc3M9XCJnb3Z1ay1saW5rXCI+e3tjYXNlLmNhc2VOYW1lfX0gPGJyPlxuICAgICAgICAgICAgICAgICAge3tjYXNlLmNhc2VSZWZlcmVuY2UgfCBjY2RDYXNlUmVmZXJlbmNlfX08L3NwYW4+PC9hPjwvcD5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICAgIDx0ZD48c3BhbiBbdGl0bGVdPVwiY2FzZS5jYXNlVHlwZURlc2NyaXB0aW9uXCI+e3tjYXNlLmNhc2VUeXBlfX08L3NwYW4+PC90ZD5cbiAgICAgICAgICA8dGQ+PHNwYW4+e3tjYXNlLnNlcnZpY2V9fTwvc3Bhbj48L3RkPlxuICAgICAgICAgIDx0ZD48c3BhbiBbdGl0bGVdPVwiY2FzZS5zdGF0ZURlc2NyaXB0aW9uXCI+e3tjYXNlLnN0YXRlfX08L3NwYW4+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQgKm5nSWY9XCJjYXNlICYmIGNhc2UucmVhc29uc1wiPlxuICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IHJlYXNvbiBvZiBjYXNlLnJlYXNvbnM7IGxldCBpID0gaW5kZXg7IGxldCBpc0xhc3QgPSBsYXN0XCI+XG4gICAgICAgICAgICAgIHt7cmVhc29uLnZhbHVlIHwgY2NkTGlua0Nhc2VzUmVhc29uVmFsdWV9fTxzcGFuPjxhIGNsYXNzPVwiZ292dWstIS1wYWRkaW5nLWxlZnQtMVwiXG4gICAgICAgICAgICAgICAgICBocmVmPVwiY2FzZXMvY2FzZS1kZXRhaWxzL3t7IGNhc2UuY2FzZVJlZmVyZW5jZSB9fVwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImhhc0xlYWRDYXNlT3JDb25zb2xpZGF0ZWQocmVhc29uLnZhbHVlLlJlYXNvbilcIj57e2dldENhc2VSZWZlcmVuZUxpbmsoY2FzZS5jYXNlUmVmZXJlbmNlKX19PC9hPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPGJyICpuZ0lmPVwiIWlzTGFzdFwiIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiICpuZ0lmPVwibGlua2VkQ2FzZXNGcm9tUmVzcG9uc2UubGVuZ3RoID09PSAwICYmICghaXNTZXJ2ZXJFcnJvciAmJiAhaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3IpXCI+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIiBjb2xzcGFuPVwiNVwiPlxuICAgICAgICAgICAgTm9uZVxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3Rib2R5PlxuICAgIDwvdGFibGU+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
287
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlua2VkLWNhc2VzLXRvLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL2xpbmtlZC1jYXNlcy10YWJsZS9saW5rZWQtY2FzZXMtdG8tdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbGlua2VkLWNhc2VzLXRhYmxlL2xpbmtlZC1jYXNlcy10by10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLGtDQUFrQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUU5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0lDa0JVLDZCQUVXO0lBQUEsWUFBMkM7SUFBQSxpQkFBSTs7OztJQUR4RyxrSkFBeUY7SUFDaEMsY0FBMkM7SUFBM0MsdUVBQTJDOzs7SUFDdEcscUJBQXNCOzs7SUFKeEIsNEJBQTRFO0lBQzFFLFlBQTBDOztJQUFBLDRCQUFNO0lBQUEsb0dBRVc7SUFBK0MsaUJBQU87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cUJBQXFCLENBQUM7WUFDcEUsUUFBUSxFQUFFLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxJQUFJLElBQUksRUFBRTtZQUNwRCxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsV0FBVyxJQUFJLEVBQUU7WUFDdEUsT0FBTyxFQUFFLHFCQUFxQixDQUFDLFNBQVMsSUFBSSxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFdBQVcsSUFBSSxFQUFFO1lBQzFHLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDN0MsZ0JBQWdCLEVBQUUscUJBQXFCLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxFQUFFO1lBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGFBQWE7U0FDakIsQ0FBQztJQUMzQixDQUFDO3FIQTlKVSwyQkFBMkI7NkRBQTNCLDJCQUEyQjtZQ3hCdEMsQUFERiw4QkFBb0QsYUFDZDtZQUNsQyxpRkFBMkY7WUFzQy9GLEFBREUsaUJBQU0sRUFDRjs7WUF0Q00sZUFBNkI7WUFBN0Isa0RBQTZCOzs7aUZEdUI1QiwyQkFBMkI7Y0FMdkMsU0FBUzsyQkFDRSwyQkFBMkI7MkdBVTlCLFNBQVM7a0JBRGYsS0FBSztZQUlDLGdCQUFnQjtrQkFEdEIsTUFBTTs7a0ZBUkksMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhc2VWaWV3IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VGaWVsZCwgSnVyaXNkaWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24nO1xuaW1wb3J0IHsgQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlTGluaywgTGlua1JlYXNvbiB9IGZyb20gJy4uLy4uL2RvbWFpbi9saW5rZWQtY2FzZXMubW9kZWwnO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5pbnRlcmZhY2UgTGlua2VkQ2FzZXNSZXNwb25zZSB7XG4gIGNhc2VSZWZlcmVuY2U6IHN0cmluZztcbiAgY2FzZU5hbWU6IHN0cmluZztcbiAgY2FzZVR5cGU6IHN0cmluZztcbiAgY2FzZVR5cGVEZXNjcmlwdGlvbjogc3RyaW5nO1xuICBzZXJ2aWNlOiBzdHJpbmc7XG4gIHN0YXRlOiBzdHJpbmc7XG4gIHN0YXRlRGVzY3JpcHRpb246IHN0cmluZztcbiAgcmVhc29uczogc3RyaW5nW107XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1saW5rZWQtY2FzZXMtdG8tdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlua2VkLWNhc2VzLXRvLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGlua2VkLWNhc2VzLXRvLXRhYmxlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTGlua2VkQ2FzZXNUb1RhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDQVNFX0NPTlNPTElEQVRFRF9SRUFTT05fQ09ERSA9ICdDTFJDMDE1JztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQ0FTRV9QUk9HUkVTU19SRUFTT05fQ09ERSA9ICdDTFJDMDE2JztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpZWxkOiBDYXNlRmllbGQ7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBub3RpZnlBUElGYWlsdXJlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKGZhbHNlKTtcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcbiAgcHVibGljIGlzTG9hZGVkOiBib29sZWFuO1xuICBwdWJsaWMgbGlua2VkQ2FzZXNGcm9tUmVzcG9uc2U6IExpbmtlZENhc2VzUmVzcG9uc2VbXSA9IFtdO1xuICBwdWJsaWMgY2FzZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBpc1NlcnZlckVycm9yID0gZmFsc2U7XG4gIHB1YmxpYyBpc1NlcnZlclJlYXNvbkNvZGVFcnJvciA9IGZhbHNlO1xuICBwdWJsaWMganVyaXNkaWN0aW9uc1Jlc3BvbnNlOiBKdXJpc2RpY3Rpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlc1NlcnZpY2U6IENhc2VzU2VydmljZSkgeyB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgbGFiZWxGaWVsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2dvdnVrLWhlYWRpbmctbCcpO1xuICAgIGlmIChsYWJlbEZpZWxkICYmIGxhYmVsRmllbGQubGVuZ3RoKSB7XG4gICAgICBsYWJlbEZpZWxkWzBdLnJlcGxhY2VXaXRoKCcnKTtcbiAgICB9XG4gICAgbGFiZWxGaWVsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2hlYWRpbmctaDInKTtcbiAgICBpZiAobGFiZWxGaWVsZCAmJiBsYWJlbEZpZWxkLmxlbmd0aCkge1xuICAgICAgbGFiZWxGaWVsZFswXS5yZXBsYWNlV2l0aCgnJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FzZUlkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdCAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEgJiYgdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UuY2FzZV9pZDtcbiAgICB0aGlzLmdldEFsbExpbmtlZENhc2VJbmZvcm1hdGlvbigpO1xuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZSkge1xuICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZURldGFpbHMgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZTtcbiAgICB9XG4gICAgdGhpcy5pc1NlcnZlclJlYXNvbkNvZGVFcnJvciA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmlzU2VydmVyUmVhc29uQ29kZUVycm9yO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VSZWZlcmVuZUxpbmsoY2FzZVJlZjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY2FzZVJlZi5zbGljZSh0aGlzLmNhc2VJZC5sZW5ndGggLSA0KTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0TGlua2VkQ2FzZXNCeVJlYXNvbkNvZGUoc2VhcmNoQ2FzZXNSZXNwb25zZSk6IExpbmtlZENhc2VzUmVzcG9uc2VbXSB7XG4gICAgY29uc3QgdG9wTGV2ZWxyZXN1bHRBcnJheSA9IFtdO1xuICAgIGxldCBzZWNvbmRMZXZlbHJlc3VsdEFycmF5ID0gW107XG4gICAgc2VhcmNoQ2FzZXNSZXNwb25zZS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IHJlYXNvbnMgPSBpdGVtICYmIGl0ZW0ucmVhc29ucyB8fCBbXTtcbiAgICAgIGNvbnN0IGNvbnNvbGlkYXRlZFN0YXRlUmVhc29uID0gcmVhc29ucy5tYXAoeCA9PiB4KS5maW5kKFxuICAgICAgICByZWFzb24gPT4gcmVhc29uID09PSBMaW5rZWRDYXNlc1RvVGFibGVDb21wb25lbnQuQ0FTRV9DT05TT0xJREFURURfUkVBU09OX0NPREVcbiAgICAgICk7XG4gICAgICBjb25zdCBwcm9ncmVzc2VkU3RhdGVSZWFzb24gPSByZWFzb25zLm1hcCh4ID0+IHgpLmZpbmQoXG4gICAgICAgIHJlYXNvbiA9PiByZWFzb24gPT09IExpbmtlZENhc2VzVG9UYWJsZUNvbXBvbmVudC5DQVNFX1BST0dSRVNTX1JFQVNPTl9DT0RFXG4gICAgICApO1xuICAgICAgY29uc3QgYXJyYXlJdGVtID0geyAuLi5pdGVtIH07XG4gICAgICBpZiAocHJvZ3Jlc3NlZFN0YXRlUmVhc29uKSB7XG4gICAgICAgIHRvcExldmVscmVzdWx0QXJyYXkucHVzaChhcnJheUl0ZW0pO1xuICAgICAgfSBlbHNlIGlmIChjb25zb2xpZGF0ZWRTdGF0ZVJlYXNvbikge1xuICAgICAgICBzZWNvbmRMZXZlbHJlc3VsdEFycmF5ID0gW3sgLi4uaXRlbSB9LCAuLi5zZWNvbmRMZXZlbHJlc3VsdEFycmF5XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNlY29uZExldmVscmVzdWx0QXJyYXkucHVzaCh7IC4uLml0ZW0gfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHRvcExldmVscmVzdWx0QXJyYXkuY29uY2F0KHNlY29uZExldmVscmVzdWx0QXJyYXkpO1xuICB9XG5cbiAgcHVibGljIGdldEFsbExpbmtlZENhc2VJbmZvcm1hdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBzZWFyY2hDYXNlc1Jlc3BvbnNlID0gW107XG4gICAgY29uc3QgY2FzZUZpZWxkVmFsdWUgPSB0aGlzLmNhc2VGaWVsZCAmJiB0aGlzLmNhc2VGaWVsZC5pZCA9PT0gJ2Nhc2VMaW5rcycgPyB0aGlzLmNhc2VGaWVsZC52YWx1ZSA6IFtdO1xuICAgIC8vIEdlbmVyYXRlIHRoZSBsaXN0IG9mIG9ic2VydmFibGVzXG4gICAgY2FzZUZpZWxkVmFsdWUuZm9yRWFjaChmaWVsZFZhbHVlID0+IHtcbiAgICAgIGlmIChmaWVsZFZhbHVlICYmIGZpZWxkVmFsdWUuaWQpIHtcbiAgICAgICAgc2VhcmNoQ2FzZXNSZXNwb25zZS5wdXNoKHRoaXMuY2FzZXNTZXJ2aWNlLmdldENhc2VWaWV3VjIoZmllbGRWYWx1ZS5pZCkpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlmIChzZWFyY2hDYXNlc1Jlc3BvbnNlLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZWFyY2hDYXNlc0J5Q2FzZUlkcyhzZWFyY2hDYXNlc1Jlc3BvbnNlKS5zdWJzY3JpYmUoKHNlYXJjaENhc2VzOiBhbnkpID0+IHtcbiAgICAgICAgbGV0IGNhc2VzUmVzcG9uc2UgPSBbXTtcbiAgICAgICAgc2VhcmNoQ2FzZXMuZm9yRWFjaChyZXNwb25zZSA9PiB7XG4gICAgICAgICAgY2FzZXNSZXNwb25zZS5wdXNoKHRoaXMubWFwUmVzcG9uc2UocmVzcG9uc2UpKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNhc2VzUmVzcG9uc2UgPSB0aGlzLnNvcnRSZWFzb25Db2RlcyhjYXNlc1Jlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5saW5rZWRDYXNlc0Zyb21SZXNwb25zZSA9IHRoaXMuc29ydExpbmtlZENhc2VzQnlSZWFzb25Db2RlKGNhc2VzUmVzcG9uc2UpO1xuICAgICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgY2FzZUxpbmtzID0gdGhpcy5saW5rZWRDYXNlc0Zyb21SZXNwb25zZS5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGNhc2VSZWZlcmVuY2U6IGl0ZW0uY2FzZVJlZmVyZW5jZSxcbiAgICAgICAgICAgIGNhc2VOYW1lOiBpdGVtLmNhc2VOYW1lLFxuICAgICAgICAgICAgY2FzZVNlcnZpY2U6IGl0ZW0uc2VydmljZSxcbiAgICAgICAgICAgIGNhc2VUeXBlOiBpdGVtLmNhc2VUeXBlLFxuICAgICAgICAgICAgdW5saW5rOiBmYWxzZSxcbiAgICAgICAgICAgIHJlYXNvbnM6IGl0ZW0ucmVhc29ucyAmJiBpdGVtLnJlYXNvbnMubWFwKHJlYXNvbiA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgUmVhc29uOiByZWFzb25cbiAgICAgICAgICAgICAgfSBhcyBMaW5rUmVhc29uO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSBhcyBDYXNlTGluaztcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmluaXRpYWxDYXNlTGlua3MgPSBjYXNlTGlua3M7XG4gICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzID0gY2FzZUxpbmtzO1xuICAgICAgICB0aGlzLmlzU2VydmVyRXJyb3IgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgICBlcnIgPT4ge1xuICAgICAgICAgIHRoaXMuaXNTZXJ2ZXJFcnJvciA9IHRydWU7XG4gICAgICAgICAgdGhpcy5ub3RpZnlBUElGYWlsdXJlLmVtaXQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNvcnRSZWFzb25Db2RlcyhzZWFyY2hDYXNlc1Jlc3BvbnNlKTogTGlua2VkQ2FzZXNSZXNwb25zZVtdIHtcbiAgICBzZWFyY2hDYXNlc1Jlc3BvbnNlLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAgICAgaWYgKGl0ZW0/LnJlYXNvbnM/Lmxlbmd0aCkge1xuICAgICAgICBpdGVtLnJlYXNvbnMuZm9yRWFjaCgocmVhc29uKSA9PiB7XG4gICAgICAgICAgcmVhc29uLnNvcnRPcmRlciA9IHRoaXMuZ2V0UmVhc29uU29ydE9yZGVyKHJlYXNvbi52YWx1ZS5SZWFzb24pO1xuICAgICAgICB9KTtcbiAgICAgICAgaXRlbS5yZWFzb25zID0gaXRlbS5yZWFzb25zLnNvcnQoKGEsIGIpID0+IGEuc29ydE9yZGVyIC0gYi5zb3J0T3JkZXIpO1xuICAgICAgICBpdGVtLnNvcnRPcmRlciA9IGl0ZW0ucmVhc29uc1swXS5zb3J0T3JkZXI7XG4gICAgICB9XG4gICAgfSk7XG4gICAgc2VhcmNoQ2FzZXNSZXNwb25zZSA9IHNlYXJjaENhc2VzUmVzcG9uc2U/LnNvcnQoKGEsIGIpID0+IGEuc29ydE9yZGVyIC0gYi5zb3J0T3JkZXIpO1xuICAgIHJldHVybiBzZWFyY2hDYXNlc1Jlc3BvbnNlO1xuICB9XG5cbiAgcHVibGljIGdldFJlYXNvblNvcnRPcmRlcihyZWFzb25Db2RlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGlmIChyZWFzb25Db2RlID09PSBMaW5rZWRDYXNlc1RvVGFibGVDb21wb25lbnQuQ0FTRV9QUk9HUkVTU19SRUFTT05fQ09ERSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIGlmIChyZWFzb25Db2RlID09PSBMaW5rZWRDYXNlc1RvVGFibGVDb21wb25lbnQuQ0FTRV9DT05TT0xJREFURURfUkVBU09OX0NPREUpIHtcbiAgICAgIHJldHVybiAyO1xuICAgIH1cbiAgICByZXR1cm4gMztcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hDYXNlc0J5Q2FzZUlkcyhzZWFyY2hDYXNlc1Jlc3BvbnNlOiBhbnlbXSk6IE9ic2VydmFibGU8dW5rbm93bltdPiB7XG4gICAgcmV0dXJuIGZvcmtKb2luKHNlYXJjaENhc2VzUmVzcG9uc2UpO1xuICB9XG5cbiAgcHVibGljIGhhc0xlYWRDYXNlT3JDb25zb2xpZGF0ZWQocmVhc29uQ29kZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJlYXNvbkNvZGUgPT09IExpbmtlZENhc2VzVG9UYWJsZUNvbXBvbmVudC5DQVNFX1BST0dSRVNTX1JFQVNPTl9DT0RFIHx8XG4gICAgICByZWFzb25Db2RlID09PSBMaW5rZWRDYXNlc1RvVGFibGVDb21wb25lbnQuQ0FTRV9DT05TT0xJREFURURfUkVBU09OX0NPREU7XG4gIH1cblxuICBwdWJsaWMgbWFwUmVzcG9uc2UoZXNTZWFyY2hDYXNlc1Jlc3BvbnNlKTogTGlua2VkQ2FzZXNSZXNwb25zZSB7XG4gICAgY29uc3QgY2FzZUluZm8gPSB0aGlzLmNhc2VGaWVsZC52YWx1ZS5maW5kKGl0ZW0gPT4gaXRlbS52YWx1ZSAmJiBpdGVtLnZhbHVlLkNhc2VSZWZlcmVuY2UgPT09IGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5jYXNlX2lkKTtcbiAgICByZXR1cm4gY2FzZUluZm8gJiYge1xuICAgICAgY2FzZVJlZmVyZW5jZTogZXNTZWFyY2hDYXNlc1Jlc3BvbnNlLmNhc2VfaWQsXG4gICAgICBjYXNlTmFtZTogdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuZ2V0Q2FzZU5hbWUoZXNTZWFyY2hDYXNlc1Jlc3BvbnNlKSxcbiAgICAgIGNhc2VUeXBlOiBlc1NlYXJjaENhc2VzUmVzcG9uc2UuY2FzZV90eXBlLm5hbWUgfHwgJycsXG4gICAgICBjYXNlVHlwZURlc2NyaXB0aW9uOiBlc1NlYXJjaENhc2VzUmVzcG9uc2UuY2FzZV90eXBlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgc2VydmljZTogZXNTZWFyY2hDYXNlc1Jlc3BvbnNlLmNhc2VfdHlwZSAmJiBlc1NlYXJjaENhc2VzUmVzcG9uc2UuY2FzZV90eXBlLmp1cmlzZGljdGlvbi5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIHN0YXRlOiBlc1NlYXJjaENhc2VzUmVzcG9uc2Uuc3RhdGUubmFtZSB8fCAnJyxcbiAgICAgIHN0YXRlRGVzY3JpcHRpb246IGVzU2VhcmNoQ2FzZXNSZXNwb25zZS5zdGF0ZS5kZXNjcmlwdGlvbiB8fCAnJyxcbiAgICAgIHJlYXNvbnM6IGNhc2VJbmZvPy52YWx1ZT8uUmVhc29uRm9yTGlua1xuICAgIH0gYXMgTGlua2VkQ2FzZXNSZXNwb25zZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93IGdvdnVrLSEtbWFyZ2luLWJvdHRvbS0yXCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1mdWxsXCI+XG4gICAgPHRhYmxlICpuZ0lmPVwibGlua2VkQ2FzZXNGcm9tUmVzcG9uc2VcIiBhcmlhLWRlc2NyaWJlZGJ5PVwidGFibGUgdG8gZGlzcGxheSBjYXNlcyBsaW5rZWQgVE9cIj5cbiAgICAgIDx0aGVhZD5cbiAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+Q2FzZSBuYW1lIGFuZCBudW1iZXI8L3RoPlxuICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlciBjYXNlLXRhYmxlLWNvbHVtblwiIHdpZHRoPVwiMjAlXCI+Q2FzZSB0eXBlIDwvdGg+XG4gICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyIGNhc2UtdGFibGUtY29sdW1uXCIgd2lkdGg9XCIyMCVcIj5TZXJ2aWNlPC90aD5cbiAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXIgY2FzZS10YWJsZS1jb2x1bW5cIiB3aWR0aD1cIjIwJVwiPlN0YXRlPC90aD5cbiAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXIgY2FzZS10YWJsZS1jb2x1bW5cIiB3aWR0aD1cIjIwJVwiPlJlYXNvbnMgZm9yIGNhc2UgbGluazwvdGg+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L3RoZWFkPlxuICAgICAgPHRib2R5IGNsYXNzPVwiZ292dWstdGFibGVfX2JvZHlcIj5cbiAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiICpuZ0Zvcj1cImxldCBjYXNlIG9mIGxpbmtlZENhc2VzRnJvbVJlc3BvbnNlXCI+XG4gICAgICAgICAgPHRkPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5XCI+PGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cImNhc2VzL2Nhc2UtZGV0YWlscy97eyBjYXNlLnNlcnZpY2UgfX0ve3sgY2FzZS5jYXNlVHlwZSB9fS97e2Nhc2UuY2FzZVJlZmVyZW5jZX19XCJcbiAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lclwiPjxzcGFuIGNsYXNzPVwiZ292dWstbGlua1wiPnt7Y2FzZS5jYXNlTmFtZX19IDxicj5cbiAgICAgICAgICAgICAgICAgIHt7Y2FzZS5jYXNlUmVmZXJlbmNlIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9zcGFuPjwvYT48L3A+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8dGQ+PHNwYW4gW3RpdGxlXT1cImNhc2UuY2FzZVR5cGVEZXNjcmlwdGlvblwiPnt7Y2FzZS5jYXNlVHlwZX19PC9zcGFuPjwvdGQ+XG4gICAgICAgICAgPHRkPjxzcGFuPnt7Y2FzZS5zZXJ2aWNlfX08L3NwYW4+PC90ZD5cbiAgICAgICAgICA8dGQ+PHNwYW4gW3RpdGxlXT1cImNhc2Uuc3RhdGVEZXNjcmlwdGlvblwiPnt7Y2FzZS5zdGF0ZX19PC9zcGFuPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgPHRkICpuZ0lmPVwiY2FzZSAmJiBjYXNlLnJlYXNvbnNcIj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCByZWFzb24gb2YgY2FzZS5yZWFzb25zOyBsZXQgaSA9IGluZGV4OyBsZXQgaXNMYXN0ID0gbGFzdFwiPlxuICAgICAgICAgICAgICB7e3JlYXNvbi52YWx1ZSB8IGNjZExpbmtDYXNlc1JlYXNvblZhbHVlfX08c3Bhbj48YSBjbGFzcz1cImdvdnVrLSEtcGFkZGluZy1sZWZ0LTFcIlxuICAgICAgICAgICAgICAgIGhyZWY9XCJjYXNlcy9jYXNlLWRldGFpbHMve3sgY2FzZS5zZXJ2aWNlIH19L3t7IGNhc2UuY2FzZVR5cGUgfX0ve3sgY2FzZS5jYXNlUmVmZXJlbmNlIH19XCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzTGVhZENhc2VPckNvbnNvbGlkYXRlZChyZWFzb24udmFsdWUuUmVhc29uKVwiPnt7Z2V0Q2FzZVJlZmVyZW5lTGluayhjYXNlLmNhc2VSZWZlcmVuY2UpfX08L2E+PC9zcGFuPlxuICAgICAgICAgICAgICA8YnIgKm5nSWY9XCIhaXNMYXN0XCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L3RyPlxuICAgICAgICA8dHIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fcm93XCIgKm5nSWY9XCJsaW5rZWRDYXNlc0Zyb21SZXNwb25zZS5sZW5ndGggPT09IDAgJiYgKCFpc1NlcnZlckVycm9yICYmICFpc1NlcnZlclJlYXNvbkNvZGVFcnJvcilcIj5cbiAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiIGNvbHNwYW49XCI1XCI+XG4gICAgICAgICAgICBOb25lXG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -42,15 +42,15 @@ export class NoLinkedCasesComponent extends AbstractJourneyComponent {
42
42
  this.serverLinkedApiError = this.linkedCasesService.serverLinkedApiError;
43
43
  }
44
44
  onBack() {
45
- this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseId], { fragment: 'Linked cases' });
45
+ this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseJurisdictionID, this.linkedCasesService.caseDetails.case_type, this.linkedCasesService.caseId], { fragment: 'Linked cases' });
46
46
  }
47
47
  static ɵfac = function NoLinkedCasesComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || NoLinkedCasesComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.LinkedCasesService), i0.ɵɵdirectiveInject(i3.MultipageComponentStateService)); };
48
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NoLinkedCasesComponent, selectors: [["ccd-no-linked-cases"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 12, vars: 3, consts: [["noLinkedCases", ""], [1, "govuk-grid-row"], [1, "govuk-grid-column-full"], ["class", "govuk-heading-xl", 4, "ngIf"], ["id", "unlink-cases-error", "class", "govuk-error-message", 4, "ngIf", "ngIfElse"], [1, "govuk-body"], ["href", "javascript:void(0)", 1, "govuk-link", 3, "click"], [1, "govuk-button-group"], ["type", "button", "id", "back-button", 1, "button", "button-primary", 3, "click"], [1, "govuk-heading-xl"], ["id", "unlink-cases-error", 1, "govuk-error-message"], [1, "govuk-visually-hidden"]], template: function NoLinkedCasesComponent_Template(rf, ctx) { if (rf & 1) {
48
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NoLinkedCasesComponent, selectors: [["ccd-no-linked-cases"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 12, vars: 3, consts: [["noLinkedCases", ""], [1, "govuk-grid-row"], [1, "govuk-grid-column-full"], ["class", "govuk-heading-xl", 4, "ngIf"], ["id", "unlink-cases-error", "class", "govuk-error-message", 4, "ngIf", "ngIfElse"], [1, "govuk-body"], ["type", "button", 1, "govuk-js-link", 3, "click"], [1, "govuk-button-group"], ["type", "button", "id", "back-button", 1, "button", "button-primary", 3, "click"], [1, "govuk-heading-xl"], ["id", "unlink-cases-error", 1, "govuk-error-message"], [1, "govuk-visually-hidden"]], template: function NoLinkedCasesComponent_Template(rf, ctx) { if (rf & 1) {
49
49
  const _r1 = i0.ɵɵgetCurrentView();
50
50
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
51
51
  i0.ɵɵtemplate(2, NoLinkedCasesComponent_h1_2_Template, 2, 0, "h1", 3)(3, NoLinkedCasesComponent_p_3_Template, 4, 1, "p", 4)(4, NoLinkedCasesComponent_ng_template_4_Template, 2, 0, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
52
- i0.ɵɵelementStart(6, "p", 5)(7, "a", 6);
53
- i0.ɵɵlistener("click", function NoLinkedCasesComponent_Template_a_click_7_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onBack()); });
52
+ i0.ɵɵelementStart(6, "p", 5)(7, "button", 6);
53
+ i0.ɵɵlistener("click", function NoLinkedCasesComponent_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.onBack()); });
54
54
  i0.ɵɵtext(8, "Go back to the Linked cases tab");
55
55
  i0.ɵɵelementEnd()();
56
56
  i0.ɵɵelementStart(9, "div", 7)(10, "button", 8);
@@ -67,7 +67,7 @@ export class NoLinkedCasesComponent extends AbstractJourneyComponent {
67
67
  }
68
68
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NoLinkedCasesComponent, [{
69
69
  type: Component,
70
- args: [{ selector: 'ccd-no-linked-cases', template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <h1 class=\"govuk-heading-xl\" *ngIf=\"serverLinkedApiError\">There is a problem</h1>\n <p id=\"unlink-cases-error\" class=\"govuk-error-message\"\n *ngIf=\"serverLinkedApiError;else noLinkedCases;\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{serverLinkedApiError.message}}\n </p>\n <ng-template #noLinkedCases>\n <p class=\"govuk-body\">There are no cases linked to this one.</p>\n </ng-template>\n <p class=\"govuk-body\">\n <a class=\"govuk-link\" href=\"javascript:void(0)\" (click)=\"onBack()\">Go back to the Linked cases tab</a>\n </p>\n <div class=\"govuk-button-group\">\n <button class=\"button button-primary\" type=\"button\" id=\"back-button\" (click)=\"onBack()\">Back</button>\n </div>\n </div>\n</div>\n" }]
70
+ args: [{ selector: 'ccd-no-linked-cases', template: "<div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <h1 class=\"govuk-heading-xl\" *ngIf=\"serverLinkedApiError\">There is a problem</h1>\n <p id=\"unlink-cases-error\" class=\"govuk-error-message\"\n *ngIf=\"serverLinkedApiError;else noLinkedCases;\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{serverLinkedApiError.message}}\n </p>\n <ng-template #noLinkedCases>\n <p class=\"govuk-body\">There are no cases linked to this one.</p>\n </ng-template>\n <p class=\"govuk-body\">\n <button type=\"button\" class=\"govuk-js-link\" (click)=\"onBack()\">Go back to the Linked cases tab</button>\n </p>\n <div class=\"govuk-button-group\">\n <button class=\"button button-primary\" type=\"button\" id=\"back-button\" (click)=\"onBack()\">Back</button>\n </div>\n </div>\n</div>\n" }]
71
71
  }], () => [{ type: i1.Router }, { type: i2.LinkedCasesService }, { type: i3.MultipageComponentStateService }], null); })();
72
72
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(NoLinkedCasesComponent, { className: "NoLinkedCasesComponent", filePath: "lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.ts", lineNumber: 12 }); })();
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tbGlua2VkLWNhc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL25vLWxpbmtlZC1jYXNlcy9uby1saW5rZWQtY2FzZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbm8tbGlua2VkLWNhc2VzL25vLWxpbmtlZC1jYXNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7OztJQ0ZyRSw2QkFBMEQ7SUFBQSxrQ0FBa0I7SUFBQSxpQkFBSzs7O0lBRy9FLEFBRkYsNkJBQ21ELGVBQ2I7SUFBQSxzQkFBTTtJQUFBLGlCQUFPO0lBQUMsWUFDcEQ7SUFBQSxpQkFBSTs7O0lBRGdELGVBQ3BEO0lBRG9ELG9FQUNwRDs7O0lBRUUsNEJBQXNCO0lBQUEsc0RBQXNDO0lBQUEsaUJBQUk7O0FER3RFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx3QkFBd0I7SUFJckM7SUFDVjtJQUhaLG9CQUFvQixDQUFrQztJQUU3RCxZQUE2QixNQUFjLEVBQ3hCLGtCQUFzQyxFQUN2RCw4QkFBOEQ7UUFDNUQsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFIYixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFHekQsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDO0lBQzNFLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ2hILENBQUM7Z0hBaEJVLHNCQUFzQjs2REFBdEIsc0JBQXNCOztZQ1ZqQyxBQURGLDhCQUE0QixhQUNVO1lBTWxDLEFBSkEsQUFEQSxxRUFBMEQsc0RBRVAsMkdBR3ZCO1lBSTFCLEFBREYsNEJBQXNCLFdBQytDO1lBQW5CLG9JQUFTLFlBQVEsS0FBQztZQUFDLCtDQUErQjtZQUNwRyxBQURvRyxpQkFBSSxFQUNwRztZQUVGLEFBREYsOEJBQWdDLGlCQUMwRDtZQUFuQiwwSUFBUyxZQUFRLEtBQUM7WUFBQyxxQkFBSTtZQUdsRyxBQURFLEFBREUsQUFEOEYsaUJBQVMsRUFDakcsRUFDRixFQUNGOzs7WUFmNEIsZUFBMEI7WUFBMUIsK0NBQTBCO1lBRXJELGNBQTJCO1lBQUEsQUFBM0IsK0NBQTJCLDhCQUFtQjs7O2lGRE94QyxzQkFBc0I7Y0FKbEMsU0FBUzsyQkFDRSxxQkFBcUI7O2tGQUdwQixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IExpbmtlZENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpbmtlZC1jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0Sm91cm5leUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Jhc2UtZmllbGQnO1xuaW1wb3J0IHsgTXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgSm91cm5leSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1uby1saW5rZWQtY2FzZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm8tbGlua2VkLWNhc2VzLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOb0xpbmtlZENhc2VzQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RKb3VybmV5Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBKb3VybmV5IHtcblxuICBwdWJsaWMgc2VydmVyTGlua2VkQXBpRXJyb3I6IHsgaWQ6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpbmtlZENhc2VzU2VydmljZTogTGlua2VkQ2FzZXNTZXJ2aWNlLFxuICAgIG11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZTogTXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlKSB7XG4gICAgICBzdXBlcihtdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2VydmVyTGlua2VkQXBpRXJyb3IgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5zZXJ2ZXJMaW5rZWRBcGlFcnJvcjtcbiAgfVxuXG4gIHB1YmxpYyBvbkJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjYXNlcycsICdjYXNlLWRldGFpbHMnLCB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWRdLCB7IGZyYWdtZW50OiAnTGlua2VkIGNhc2VzJyB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1mdWxsXCI+XG4gICAgPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy14bFwiICpuZ0lmPVwic2VydmVyTGlua2VkQXBpRXJyb3JcIj5UaGVyZSBpcyBhIHByb2JsZW08L2gxPlxuICAgIDxwIGlkPVwidW5saW5rLWNhc2VzLWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICpuZ0lmPVwic2VydmVyTGlua2VkQXBpRXJyb3I7ZWxzZSBub0xpbmtlZENhc2VzO1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7c2VydmVyTGlua2VkQXBpRXJyb3IubWVzc2FnZX19XG4gICAgPC9wPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9MaW5rZWRDYXNlcz5cbiAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPlRoZXJlIGFyZSBubyBjYXNlcyBsaW5rZWQgdG8gdGhpcyBvbmUuPC9wPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5XCI+XG4gICAgICA8YSBjbGFzcz1cImdvdnVrLWxpbmtcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cIm9uQmFjaygpXCI+R28gYmFjayB0byB0aGUgTGlua2VkIGNhc2VzIHRhYjwvYT5cbiAgICA8L3A+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWJ1dHRvbi1ncm91cFwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiBpZD1cImJhY2stYnV0dG9uXCIgKGNsaWNrKT1cIm9uQmFjaygpXCI+QmFjazwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tbGlua2VkLWNhc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL25vLWxpbmtlZC1jYXNlcy9uby1saW5rZWQtY2FzZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbm8tbGlua2VkLWNhc2VzL25vLWxpbmtlZC1jYXNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7OztJQ0ZyRSw2QkFBMEQ7SUFBQSxrQ0FBa0I7SUFBQSxpQkFBSzs7O0lBRy9FLEFBRkYsNkJBQ21ELGVBQ2I7SUFBQSxzQkFBTTtJQUFBLGlCQUFPO0lBQUMsWUFDcEQ7SUFBQSxpQkFBSTs7O0lBRGdELGVBQ3BEO0lBRG9ELG9FQUNwRDs7O0lBRUUsNEJBQXNCO0lBQUEsc0RBQXNDO0lBQUEsaUJBQUk7O0FER3RFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx3QkFBd0I7SUFJckM7SUFDVjtJQUhaLG9CQUFvQixDQUFrQztJQUU3RCxZQUE2QixNQUFjLEVBQ3hCLGtCQUFzQyxFQUN2RCw4QkFBOEQ7UUFDNUQsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7UUFIYixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7SUFHekQsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDO0lBQzNFLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUMzTSxDQUFDO2dIQWhCVSxzQkFBc0I7NkRBQXRCLHNCQUFzQjs7WUNWakMsQUFERiw4QkFBNEIsYUFDVTtZQU1sQyxBQUpBLEFBREEscUVBQTBELHNEQUVQLDJHQUd2QjtZQUkxQixBQURGLDRCQUFzQixnQkFDMkM7WUFBbkIseUlBQVMsWUFBUSxLQUFDO1lBQUMsK0NBQStCO1lBQ2hHLEFBRGdHLGlCQUFTLEVBQ3JHO1lBRUYsQUFERiw4QkFBZ0MsaUJBQzBEO1lBQW5CLDBJQUFTLFlBQVEsS0FBQztZQUFDLHFCQUFJO1lBR2xHLEFBREUsQUFERSxBQUQ4RixpQkFBUyxFQUNqRyxFQUNGLEVBQ0Y7OztZQWY0QixlQUEwQjtZQUExQiwrQ0FBMEI7WUFFckQsY0FBMkI7WUFBQSxBQUEzQiwrQ0FBMkIsOEJBQW1COzs7aUZET3hDLHNCQUFzQjtjQUpsQyxTQUFTOzJCQUNFLHFCQUFxQjs7a0ZBR3BCLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGlua2VkLWNhc2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWJzdHJhY3RKb3VybmV5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYmFzZS1maWVsZCc7XG5pbXBvcnQgeyBNdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBKb3VybmV5IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLW5vLWxpbmtlZC1jYXNlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9uby1saW5rZWQtY2FzZXMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE5vTGlua2VkQ2FzZXNDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEpvdXJuZXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEpvdXJuZXkge1xuXG4gIHB1YmxpYyBzZXJ2ZXJMaW5rZWRBcGlFcnJvcjogeyBpZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UsXG4gICAgbXVsdGlwYWdlQ29tcG9uZW50U3RhdGVTZXJ2aWNlOiBNdWx0aXBhZ2VDb21wb25lbnRTdGF0ZVNlcnZpY2UpIHtcbiAgICAgIHN1cGVyKG11bHRpcGFnZUNvbXBvbmVudFN0YXRlU2VydmljZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXJ2ZXJMaW5rZWRBcGlFcnJvciA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLnNlcnZlckxpbmtlZEFwaUVycm9yO1xuICB9XG5cbiAgcHVibGljIG9uQmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2Nhc2VzJywgJ2Nhc2UtZGV0YWlscycsIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VKdXJpc2RpY3Rpb25JRCwgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZURldGFpbHMuY2FzZV90eXBlLCB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWRdLCB7IGZyYWdtZW50OiAnTGlua2VkIGNhc2VzJyB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1mdWxsXCI+XG4gICAgPGgxIGNsYXNzPVwiZ292dWstaGVhZGluZy14bFwiICpuZ0lmPVwic2VydmVyTGlua2VkQXBpRXJyb3JcIj5UaGVyZSBpcyBhIHByb2JsZW08L2gxPlxuICAgIDxwIGlkPVwidW5saW5rLWNhc2VzLWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICpuZ0lmPVwic2VydmVyTGlua2VkQXBpRXJyb3I7ZWxzZSBub0xpbmtlZENhc2VzO1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7c2VydmVyTGlua2VkQXBpRXJyb3IubWVzc2FnZX19XG4gICAgPC9wPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9MaW5rZWRDYXNlcz5cbiAgICAgIDxwIGNsYXNzPVwiZ292dWstYm9keVwiPlRoZXJlIGFyZSBubyBjYXNlcyBsaW5rZWQgdG8gdGhpcyBvbmUuPC9wPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5XCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImdvdnVrLWpzLWxpbmtcIiAoY2xpY2spPVwib25CYWNrKClcIj5HbyBiYWNrIHRvIHRoZSBMaW5rZWQgY2FzZXMgdGFiPC9idXR0b24+XG4gICAgPC9wPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1idXR0b24tZ3JvdXBcIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgaWQ9XCJiYWNrLWJ1dHRvblwiIChjbGljayk9XCJvbkJhY2soKVwiPkJhY2s8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -26,7 +26,7 @@ function ReadLinkedCasesFieldComponent_ng_template_16_Template(rf, ctx) { if (rf
26
26
  i0.ɵɵtext(2);
27
27
  i0.ɵɵelementEnd();
28
28
  i0.ɵɵelementStart(3, "span", 10)(4, "a", 11);
29
- i0.ɵɵlistener("click", function ReadLinkedCasesFieldComponent_ng_template_16_Template_a_click_4_listener() { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.reloadCurrentRoute()); });
29
+ i0.ɵɵlistener("click", function ReadLinkedCasesFieldComponent_ng_template_16_Template_a_click_4_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r2 = i0.ɵɵnextContext(); ctx_r2.reloadCurrentRoute(); return i0.ɵɵresetView($event.preventDefault()); });
30
30
  i0.ɵɵtext(5, "Reload the Linked cases tab");
31
31
  i0.ɵɵelementEnd()()();
32
32
  } if (rf & 2) {
@@ -40,7 +40,7 @@ function ReadLinkedCasesFieldComponent_ng_template_18_Template(rf, ctx) { if (rf
40
40
  i0.ɵɵtext(2);
41
41
  i0.ɵɵelementEnd();
42
42
  i0.ɵɵelementStart(3, "span", 10)(4, "a", 11);
43
- i0.ɵɵlistener("click", function ReadLinkedCasesFieldComponent_ng_template_18_Template_a_click_4_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r2.reloadCurrentRoute()); });
43
+ i0.ɵɵlistener("click", function ReadLinkedCasesFieldComponent_ng_template_18_Template_a_click_4_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(); ctx_r2.reloadCurrentRoute(); return i0.ɵɵresetView($event.preventDefault()); });
44
44
  i0.ɵɵtext(5, "Reload the Linked cases tab");
45
45
  i0.ɵɵelementEnd()()();
46
46
  } if (rf & 2) {
@@ -96,7 +96,7 @@ export class ReadLinkedCasesFieldComponent {
96
96
  };
97
97
  }
98
98
  ngAfterViewInit() {
99
- this.linkedCasesService.caseFieldValue = this.caseField?.value || [];
99
+ this.linkedCasesService.caseFieldValue = this.caseField?.value ?? [];
100
100
  let labelField = document.getElementsByClassName('govuk-heading-l');
101
101
  if (labelField && labelField.length) {
102
102
  labelField[0].replaceWith('');
@@ -111,7 +111,7 @@ export class ReadLinkedCasesFieldComponent {
111
111
  }
112
112
  }
113
113
  reloadCurrentRoute() {
114
- this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseDetails.case_id], { fragment: 'Linked cases' });
114
+ this.router.navigate(['cases', 'case-details', this.linkedCasesService.caseJurisdictionID, this.linkedCasesService.caseDetails.case_type, this.linkedCasesService.caseDetails.case_id], { fragment: 'Linked cases' });
115
115
  }
116
116
  getFailureLinkedToNotification(evt) {
117
117
  this.isServerLinkedToError = true;
@@ -120,7 +120,7 @@ export class ReadLinkedCasesFieldComponent {
120
120
  this.isServerLinkedFromError = true;
121
121
  }
122
122
  static ɵfac = function ReadLinkedCasesFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ReadLinkedCasesFieldComponent)(i0.ɵɵdirectiveInject(i1.ActivatedRoute), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.LinkedCasesService), i0.ɵɵdirectiveInject(i3.AbstractAppConfig), i0.ɵɵdirectiveInject(i4.CommonDataService)); };
123
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadLinkedCasesFieldComponent, selectors: [["ccd-read-linked-cases-field"]], decls: 20, vars: 10, consts: [["singleApiError", ""], ["multiApisError", ""], [1, "govuk-!-margin-bottom-2"], [1, "heading-h1"], [1, "table-sub-heading"], ["reloadPage", "reload", 3, "notifyAPIFailure", "caseField"], [4, "ngIf", "ngIfThen"], [1, "govuk-!-margin-top-8"], [1, "govuk-main-wrapper"], [1, "govuk-body"], [1, "govuk-body", "align-left"], ["href", "javascript:void(0)", "id", "reload-linked-cases-tab", 1, "govuk-link", 3, "click"]], template: function ReadLinkedCasesFieldComponent_Template(rf, ctx) { if (rf & 1) {
123
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadLinkedCasesFieldComponent, selectors: [["ccd-read-linked-cases-field"]], decls: 20, vars: 10, consts: [["singleApiError", ""], ["multiApisError", ""], [1, "govuk-!-margin-bottom-2"], [1, "heading-h1"], [1, "table-sub-heading"], ["reloadPage", "reload", 3, "notifyAPIFailure", "caseField"], [4, "ngIf", "ngIfThen"], [1, "govuk-!-margin-top-8"], [1, "govuk-main-wrapper"], [1, "govuk-body"], [1, "govuk-body", "align-left"], ["href", "#", "id", "reload-linked-cases-tab", 1, "govuk-link", 3, "click"]], template: function ReadLinkedCasesFieldComponent_Template(rf, ctx) { if (rf & 1) {
124
124
  const _r1 = i0.ɵɵgetCurrentView();
125
125
  i0.ɵɵelementStart(0, "div")(1, "div", 2)(2, "h1", 3);
126
126
  i0.ɵɵtext(3, "Linked cases");
@@ -162,7 +162,7 @@ export class ReadLinkedCasesFieldComponent {
162
162
  }
163
163
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadLinkedCasesFieldComponent, [{
164
164
  type: Component,
165
- args: [{ selector: 'ccd-read-linked-cases-field', template: "<div>\n <div class=\"govuk-!-margin-bottom-2\">\n <h1 class=\"heading-h1\">Linked cases</h1>\n <label class=\"table-sub-heading\">This case is linked to</label>\n <ccd-linked-cases-to-table [caseField]=\"caseField\" (notifyAPIFailure)=\"getFailureLinkedToNotification($event)\"\n reloadPage=\"reload\"></ccd-linked-cases-to-table>\n <ng-container\n *ngIf=\"(isServerLinkedToError && isServerJurisdictionError && isServerReasonCodeError); then multiApisError;\">\n </ng-container>\n <ng-container\n *ngIf=\"!(isServerLinkedToError && isServerJurisdictionError && isServerReasonCodeError) && (isServerLinkedToError || isServerJurisdictionError || isServerReasonCodeError); then singleApiError;\">\n </ng-container>\n </div>\n <div class=\"govuk-!-margin-top-8\">\n <label class=\"table-sub-heading\">This case is linked from</label>\n <br>\n <ccd-linked-cases-from-table [caseField]=\"caseField\" (notifyAPIFailure)=\"getFailureLinkedFromNotification($event)\"\n reloadPage=\"reload\"></ccd-linked-cases-from-table>\n <ng-container\n *ngIf=\"(isServerLinkedFromError && isServerJurisdictionError && isServerReasonCodeError); then multiApisError;\">\n </ng-container>\n <ng-container\n *ngIf=\"!(isServerLinkedFromError && isServerJurisdictionError && isServerReasonCodeError) && (isServerLinkedFromError || isServerJurisdictionError || isServerReasonCodeError); then singleApiError;\">\n </ng-container>\n </div>\n</div>\n\n<ng-template #singleApiError>\n <div class=\"govuk-main-wrapper\">\n <p class=\"govuk-body\">{{serverLinkedApiError.message}}</p>\n <span class=\"govuk-body align-left\">\n <a href=\"javascript:void(0)\" (click)=\"reloadCurrentRoute()\" id=\"reload-linked-cases-tab\" class=\"govuk-link\">Reload\n the Linked cases tab</a>\n </span>\n </div>\n</ng-template>\n<ng-template #multiApisError>\n <div class=\"govuk-main-wrapper\">\n <p class=\"govuk-body\">{{serverError.message}}</p>\n <span class=\"govuk-body align-left\">\n <a href=\"javascript:void(0)\" (click)=\"reloadCurrentRoute()\" id=\"reload-linked-cases-tab\" class=\"govuk-link\">Reload\n the Linked cases tab</a>\n </span>\n </div>\n</ng-template>\n", styles: [".table-sub-heading{font-size:24px;font-weight:700}\n"] }]
165
+ args: [{ selector: 'ccd-read-linked-cases-field', template: "<div>\n <div class=\"govuk-!-margin-bottom-2\">\n <h1 class=\"heading-h1\">Linked cases</h1>\n <label class=\"table-sub-heading\">This case is linked to</label>\n <ccd-linked-cases-to-table [caseField]=\"caseField\" (notifyAPIFailure)=\"getFailureLinkedToNotification($event)\"\n reloadPage=\"reload\"></ccd-linked-cases-to-table>\n <ng-container\n *ngIf=\"(isServerLinkedToError && isServerJurisdictionError && isServerReasonCodeError); then multiApisError;\">\n </ng-container>\n <ng-container\n *ngIf=\"!(isServerLinkedToError && isServerJurisdictionError && isServerReasonCodeError) && (isServerLinkedToError || isServerJurisdictionError || isServerReasonCodeError); then singleApiError;\">\n </ng-container>\n </div>\n <div class=\"govuk-!-margin-top-8\">\n <label class=\"table-sub-heading\">This case is linked from</label>\n <br>\n <ccd-linked-cases-from-table [caseField]=\"caseField\" (notifyAPIFailure)=\"getFailureLinkedFromNotification($event)\"\n reloadPage=\"reload\"></ccd-linked-cases-from-table>\n <ng-container\n *ngIf=\"(isServerLinkedFromError && isServerJurisdictionError && isServerReasonCodeError); then multiApisError;\">\n </ng-container>\n <ng-container\n *ngIf=\"!(isServerLinkedFromError && isServerJurisdictionError && isServerReasonCodeError) && (isServerLinkedFromError || isServerJurisdictionError || isServerReasonCodeError); then singleApiError;\">\n </ng-container>\n </div>\n</div>\n\n<ng-template #singleApiError>\n <div class=\"govuk-main-wrapper\">\n <p class=\"govuk-body\">{{serverLinkedApiError.message}}</p>\n <span class=\"govuk-body align-left\">\n <a href=\"#\" (click)=\"reloadCurrentRoute(); $event.preventDefault()\" id=\"reload-linked-cases-tab\" class=\"govuk-link\">Reload\n the Linked cases tab</a>\n </span>\n </div>\n</ng-template>\n<ng-template #multiApisError>\n <div class=\"govuk-main-wrapper\">\n <p class=\"govuk-body\">{{serverError.message}}</p>\n <span class=\"govuk-body align-left\">\n <a href=\"#\" (click)=\"reloadCurrentRoute(); $event.preventDefault()\" id=\"reload-linked-cases-tab\" class=\"govuk-link\">Reload\n the Linked cases tab</a>\n </span>\n </div>\n</ng-template>\n", styles: [".table-sub-heading{font-size:24px;font-weight:700}\n"] }]
166
166
  }], () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.LinkedCasesService }, { type: i3.AbstractAppConfig }, { type: i4.CommonDataService }], null); })();
167
167
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadLinkedCasesFieldComponent, { className: "ReadLinkedCasesFieldComponent", filePath: "lib/shared/components/palette/linked-cases/read-linked-cases-field.component.ts", lineNumber: 13 }); })();
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1saW5rZWQtY2FzZXMtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL3JlYWQtbGlua2VkLWNhc2VzLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9yZWFkLWxpbmtlZC1jYXNlcy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7OztJQ0M1Qyx3QkFFZTs7O0lBQ2Ysd0JBRWU7OztJQU9mLHdCQUVlOzs7SUFDZix3QkFFZTs7OztJQU1mLEFBREYsOEJBQWdDLFdBQ1I7SUFBQSxZQUFnQztJQUFBLGlCQUFJO0lBRXhELEFBREYsZ0NBQW9DLFlBQzBFO0lBQS9FLDZMQUFTLDJCQUFvQixLQUFDO0lBQWlELDJDQUN0RjtJQUUxQixBQURFLEFBRHdCLGlCQUFJLEVBQ3JCLEVBQ0g7OztJQUxrQixlQUFnQztJQUFoQyx5REFBZ0M7Ozs7SUFTdEQsQUFERiw4QkFBZ0MsV0FDUjtJQUFBLFlBQXVCO0lBQUEsaUJBQUk7SUFFL0MsQUFE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LDhCQUE4QixDQUFDLEdBQUc7UUFDdkMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBRU0sZ0NBQWdDLENBQUMsR0FBRztRQUN6QyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDO0lBQ3RDLENBQUM7dUhBdkVVLDZCQUE2Qjs2REFBN0IsNkJBQTZCOztZQ1Z0QyxBQURGLEFBREYsMkJBQUssYUFDa0MsWUFDWjtZQUFBLDRCQUFZO1lBQUEsaUJBQUs7WUFDeEMsZ0NBQWlDO1lBQUEsc0NBQXNCO1lBQUEsaUJBQVE7WUFDL0Qsb0RBQ3NCO1lBRDZCLCtMQUFvQiwwQ0FBc0MsS0FBQztZQUN4RixpQkFBNEI7WUFJbEQsQUFIQSxnR0FDZ0gsbUZBR29GO1lBRXRNLGlCQUFNO1lBRUosQUFERiw4QkFBa0MsZ0JBQ0M7WUFBQSx5Q0FBd0I7WUFBQSxpQkFBUTtZQUNqRSxzQkFBSTtZQUNKLHVEQUNzQjtZQUQrQixrTUFBb0IsNENBQXdDLEtBQUM7WUFDNUYsaUJBQThCO1lBSXBELEFBSEEsa0dBQ2tILHFGQUdzRjtZQUc1TSxBQURFLGlCQUFNLEVBQ0Y7WUFXTixBQVRBLGlJQUE2QixvSEFTQTs7OztZQWhDRSxlQUF1QjtZQUF2Qix5Q0FBdUI7WUFHL0MsY0FBdUY7WUFBQSxBQUF2RixnSEFBdUYsK0JBQW9CO1lBRzNHLGNBQTJLO1lBQUEsQUFBM0ssa05BQTJLLCtCQUFvQjtZQU1ySyxlQUF1QjtZQUF2Qix5Q0FBdUI7WUFHakQsY0FBeUY7WUFBQSxBQUF6RixrSEFBeUYsK0JBQW9CO1lBRzdHLGNBQStLO1lBQUEsQUFBL0ssc05BQStLLCtCQUFvQjs7O2lGRFY3TCw2QkFBNkI7Y0FMekMsU0FBUzsyQkFDRSw2QkFBNkI7O2tGQUk1Qiw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkLCBDYXNlVGFiIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENvbW1vbkRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29tbW9uLWRhdGEtc2VydmljZS9jb21tb24tZGF0YS1zZXJ2aWNlJztcbmltcG9ydCB7IExpbmtlZENhc2VzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtcmVhZC1saW5rZWQtY2FzZXMtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVhZC1saW5rZWQtY2FzZXMtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWFkLWxpbmtlZC1jYXNlcy1maWVsZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlYWRMaW5rZWRDYXNlc0ZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIGNhc2VGaWVsZDogQ2FzZUZpZWxkO1xuICBwdWJsaWMgcmVhc29uTGlzdExvYWRlZCA9IGZhbHNlO1xuICBwdWJsaWMgcmVsb2FkID0gZmFsc2U7XG4gIHB1YmxpYyBzZXJ2ZXJFcnJvcjogeyBpZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfSA9IG51bGw7XG4gIHB1YmxpYyBzZXJ2ZXJMaW5rZWRBcGlFcnJvcjogeyBpZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfSA9IG51bGw7XG4gIHB1YmxpYyBpc1NlcnZlclJlYXNvbkNvZGVFcnJvciA9IGZhbHNlO1xuICBwdWJsaWMgaXNTZXJ2ZXJKdXJpc2RpY3Rpb25FcnJvciA9IGZhbHNlO1xuICBwdWJsaWMgaXNTZXJ2ZXJMaW5rZWRGcm9tRXJyb3IgPSBmYWxzZTtcbiAgcHVibGljIGlzU2VydmVyTGlua2VkVG9FcnJvciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaW5rZWRDYXNlc1NlcnZpY2U6IExpbmtlZENhc2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25EYXRhU2VydmljZTogQ29tbW9uRGF0YVNlcnZpY2UsXG4gICkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZSAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS50YWJzKSB7XG4gICAgICBjb25zdCB0YWJzID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UudGFicyBhcyBDYXNlVGFiW107XG4gICAgICBjb25zdCB0YWIgPSB0YWJzPy5maWx0ZXIodGFiSXRlbSA9PiB0YWJJdGVtLmZpZWxkcz8uc29tZShmaWVsZCA9PiBmaWVsZC5pZCA9PT0gJ2Nhc2VMaW5rcycpKVswXTtcbiAgICAgIHRoaXMuY2FzZUZpZWxkID0gdGFiPy5maWVsZHM/LmZpbmQoZmllbGQgPT4gZmllbGQuaWQgPT09ICdjYXNlTGlua3MnKTtcbiAgICB9XG4gICAgdGhpcy5pc1NlcnZlckp1cmlzZGljdGlvbkVycm9yID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2Uuc2VydmVySnVyaXNkaWN0aW9uRXJyb3IgfHwgZmFsc2U7XG4gICAgY29uc3QgcmVhc29uQ29kZUFQSXVybCA9IGAke3RoaXMuYXBwQ29uZmlnLmdldFJEQ29tbW9uRGF0YUFwaVVybCgpfS9sb3YvY2F0ZWdvcmllcy9DYXNlTGlua2luZ1JlYXNvbkNvZGVgO1xuICAgIHRoaXMuY29tbW9uRGF0YVNlcnZpY2UuZ2V0UmVmRGF0YShyZWFzb25Db2RlQVBJdXJsKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogcmVhc29ucyA9PiB7XG4gICAgICAgIHRoaXMucmVhc29uTGlzdExvYWRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtDYXNlUmVhc29ucyA9IHJlYXNvbnMubGlzdF9vZl92YWx1ZXMuc29ydCgoYSwgYikgPT4gKGEudmFsdWVfZW4gPiBiLnZhbHVlX2VuKSA/IDEgOiAtMSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5pc1NlcnZlclJlYXNvbkNvZGVFcnJvciA9IHRydWU7XG4gICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmlzU2VydmVyUmVhc29uQ29kZUVycm9yID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNlcnZlckxpbmtlZEFwaUVycm9yID0ge1xuICAgICAgaWQ6ICdiYWNrZW5kRXJyb3InLCBtZXNzYWdlOiAnU29tZSBjYXNlIGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgYXQgdGhlIG1vbWVudCdcbiAgICB9O1xuICAgIHRoaXMuc2VydmVyRXJyb3IgPSB7XG4gICAgICBpZDogJ2JhY2tlbmRFcnJvcicsIG1lc3NhZ2U6ICdUaGVyZSBoYXMgYmVlbiBhIHN5c3RlbSBlcnJvciBhbmQgeW91ciByZXF1ZXN0IGNvdWxkIG5vdCBiZSBwcm9jZXNzZWQuJ1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlID0gdGhpcy5jYXNlRmllbGQ/LnZhbHVlIHx8IFtdO1xuICAgIGxldCBsYWJlbEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZ292dWstaGVhZGluZy1sJyk7XG4gICAgaWYgKGxhYmVsRmllbGQgJiYgbGFiZWxGaWVsZC5sZW5ndGgpIHtcbiAgICAgIGxhYmVsRmllbGRbMF0ucmVwbGFjZVdpdGgoJycpO1xuICAgIH1cbiAgICBsYWJlbEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaGVhZGluZy1oMicpO1xuICAgIGlmIChsYWJlbEZpZWxkICYmIGxhYmVsRmllbGQubGVuZ3RoKSB7XG4gICAgICBsYWJlbEZpZWxkWzBdLnJlcGxhY2VXaXRoKCcnKTtcbiAgICB9XG4gICAgbGFiZWxGaWVsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2Nhc2Utdmlld2VyLWxhYmVsJyk7XG4gICAgaWYgKGxhYmVsRmllbGQgJiYgbGFiZWxGaWVsZC5sZW5ndGgpIHtcbiAgICAgIGxhYmVsRmllbGRbMF0ucmVwbGFjZVdpdGgoJycpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWxvYWRDdXJyZW50Um91dGUoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjYXNlcycsICdjYXNlLWRldGFpbHMnLCB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRGV0YWlscy5jYXNlX2lkXSwgeyBmcmFnbWVudDogJ0xpbmtlZCBjYXNlcycgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmFpbHVyZUxpbmtlZFRvTm90aWZpY2F0aW9uKGV2dCk6IHZvaWQge1xuICAgIHRoaXMuaXNTZXJ2ZXJMaW5rZWRUb0Vycm9yID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGYWlsdXJlTGlua2VkRnJvbU5vdGlmaWNhdGlvbihldnQpOiB2b2lkIHtcbiAgICB0aGlzLmlzU2VydmVyTGlua2VkRnJvbUVycm9yID0gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLSEtbWFyZ2luLWJvdHRvbS0yXCI+XG4gICAgPGgxIGNsYXNzPVwiaGVhZGluZy1oMVwiPkxpbmtlZCBjYXNlczwvaDE+XG4gICAgPGxhYmVsIGNsYXNzPVwidGFibGUtc3ViLWhlYWRpbmdcIj5UaGlzIGNhc2UgaXMgbGlua2VkIHRvPC9sYWJlbD5cbiAgICA8Y2NkLWxpbmtlZC1jYXNlcy10by10YWJsZSBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiIChub3RpZnlBUElGYWlsdXJlKT1cImdldEZhaWx1cmVMaW5rZWRUb05vdGlmaWNhdGlvbigkZXZlbnQpXCJcbiAgICAgIHJlbG9hZFBhZ2U9XCJyZWxvYWRcIj48L2NjZC1saW5rZWQtY2FzZXMtdG8tdGFibGU+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nSWY9XCIoaXNTZXJ2ZXJMaW5rZWRUb0Vycm9yICYmIGlzU2VydmVySnVyaXNkaWN0aW9uRXJyb3IgJiYgaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3IpOyB0aGVuIG11bHRpQXBpc0Vycm9yO1wiPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiIShpc1NlcnZlckxpbmtlZFRvRXJyb3IgJiYgaXNTZXJ2ZXJKdXJpc2RpY3Rpb25FcnJvciAmJiBpc1NlcnZlclJlYXNvbkNvZGVFcnJvcikgJiYgKGlzU2VydmVyTGlua2VkVG9FcnJvciB8fCBpc1NlcnZlckp1cmlzZGljdGlvbkVycm9yIHx8IGlzU2VydmVyUmVhc29uQ29kZUVycm9yKTsgdGhlbiBzaW5nbGVBcGlFcnJvcjtcIj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi10b3AtOFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cInRhYmxlLXN1Yi1oZWFkaW5nXCI+VGhpcyBjYXNlIGlzIGxpbmtlZCBmcm9tPC9sYWJlbD5cbiAgICA8YnI+XG4gICAgPGNjZC1saW5rZWQtY2FzZXMtZnJvbS10YWJsZSBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiIChub3RpZnlBUElGYWlsdXJlKT1cImdldEZhaWx1cmVMaW5rZWRGcm9tTm90aWZpY2F0aW9uKCRldmVudClcIlxuICAgICAgcmVsb2FkUGFnZT1cInJlbG9hZFwiPjwvY2NkLWxpbmtlZC1jYXNlcy1mcm9tLXRhYmxlPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiKGlzU2VydmVyTGlua2VkRnJvbUVycm9yICYmIGlzU2VydmVySnVyaXNkaWN0aW9uRXJyb3IgJiYgaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3IpOyB0aGVuIG11bHRpQXBpc0Vycm9yO1wiPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiIShpc1NlcnZlckxpbmtlZEZyb21FcnJvciAmJiBpc1NlcnZlckp1cmlzZGljdGlvbkVycm9yICYmIGlzU2VydmVyUmVhc29uQ29kZUVycm9yKSAmJiAoaXNTZXJ2ZXJMaW5rZWRGcm9tRXJyb3IgfHwgaXNTZXJ2ZXJKdXJpc2RpY3Rpb25FcnJvciB8fCBpc1NlcnZlclJlYXNvbkNvZGVFcnJvcik7IHRoZW4gc2luZ2xlQXBpRXJyb3I7XCI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjc2luZ2xlQXBpRXJyb3I+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1tYWluLXdyYXBwZXJcIj5cbiAgICA8cCBjbGFzcz1cImdvdnVrLWJvZHlcIj57e3NlcnZlckxpbmtlZEFwaUVycm9yLm1lc3NhZ2V9fTwvcD5cbiAgICA8c3BhbiBjbGFzcz1cImdvdnVrLWJvZHkgYWxpZ24tbGVmdFwiPlxuICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIChjbGljayk9XCJyZWxvYWRDdXJyZW50Um91dGUoKVwiIGlkPVwicmVsb2FkLWxpbmtlZC1jYXNlcy10YWJcIiBjbGFzcz1cImdvdnVrLWxpbmtcIj5SZWxvYWRcbiAgICAgICAgdGhlIExpbmtlZCBjYXNlcyB0YWI8L2E+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI211bHRpQXBpc0Vycm9yPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstbWFpbi13cmFwcGVyXCI+XG4gICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5XCI+e3tzZXJ2ZXJFcnJvci5tZXNzYWdlfX08L3A+XG4gICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1ib2R5IGFsaWduLWxlZnRcIj5cbiAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwicmVsb2FkQ3VycmVudFJvdXRlKClcIiBpZD1cInJlbG9hZC1saW5rZWQtY2FzZXMtdGFiXCIgY2xhc3M9XCJnb3Z1ay1saW5rXCI+UmVsb2FkXG4gICAgICAgIHRoZSBMaW5rZWQgY2FzZXMgdGFiPC9hPlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1saW5rZWQtY2FzZXMtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL3JlYWQtbGlua2VkLWNhc2VzLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9yZWFkLWxpbmtlZC1jYXNlcy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQzs7Ozs7OztJQ0M1Qyx3QkFFZTs7O0lBQ2Ysd0JBRWU7OztJQU9mLHdCQUVlOzs7SUFDZix3QkFFZTs7OztJQU1mLEFBREYsOEJBQWdDLFdBQ1I7SUFBQSxZQUFnQztJQUFBLGlCQUFJO0lBRXhELEFBREYsZ0NBQW9DLFlBQ2tGO0lBQXhHLDZLQUFTLDJCQUFvQix3QkFBRSx1QkFBdUIsS0FBQztJQUFpRCwyQ0FDOUY7SUFFMUIsQUFERSxBQUR3QixpQkFBSSxFQUNyQixFQUNIOzs7SUFMa0IsZUFBZ0M7SUFBaEMseURBQWdDOzs7O0lBU3RELEFBREYsOEJBQWdDLFdBQ1I7SUFBQSxZQUF1QjtJQUFBLGlC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WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkLCBDYXNlVGFiIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENvbW1vbkRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvY29tbW9uLWRhdGEtc2VydmljZS9jb21tb24tZGF0YS1zZXJ2aWNlJztcbmltcG9ydCB7IExpbmtlZENhc2VzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtcmVhZC1saW5rZWQtY2FzZXMtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVhZC1saW5rZWQtY2FzZXMtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9yZWFkLWxpbmtlZC1jYXNlcy1maWVsZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFJlYWRMaW5rZWRDYXNlc0ZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIGNhc2VGaWVsZDogQ2FzZUZpZWxkO1xuICBwdWJsaWMgcmVhc29uTGlzdExvYWRlZCA9IGZhbHNlO1xuICBwdWJsaWMgcmVsb2FkID0gZmFsc2U7XG4gIHB1YmxpYyBzZXJ2ZXJFcnJvcjogeyBpZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfSA9IG51bGw7XG4gIHB1YmxpYyBzZXJ2ZXJMaW5rZWRBcGlFcnJvcjogeyBpZDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcgfSA9IG51bGw7XG4gIHB1YmxpYyBpc1NlcnZlclJlYXNvbkNvZGVFcnJvciA9IGZhbHNlO1xuICBwdWJsaWMgaXNTZXJ2ZXJKdXJpc2RpY3Rpb25FcnJvciA9IGZhbHNlO1xuICBwdWJsaWMgaXNTZXJ2ZXJMaW5rZWRGcm9tRXJyb3IgPSBmYWxzZTtcbiAgcHVibGljIGlzU2VydmVyTGlua2VkVG9FcnJvciA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaW5rZWRDYXNlc1NlcnZpY2U6IExpbmtlZENhc2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25EYXRhU2VydmljZTogQ29tbW9uRGF0YVNlcnZpY2UsXG4gICkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZSAmJiB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS50YWJzKSB7XG4gICAgICBjb25zdCB0YWJzID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UudGFicyBhcyBDYXNlVGFiW107XG4gICAgICBjb25zdCB0YWIgPSB0YWJzPy5maWx0ZXIodGFiSXRlbSA9PiB0YWJJdGVtLmZpZWxkcz8uc29tZShmaWVsZCA9PiBmaWVsZC5pZCA9PT0gJ2Nhc2VMaW5rcycpKVswXTtcbiAgICAgIHRoaXMuY2FzZUZpZWxkID0gdGFiPy5maWVsZHM/LmZpbmQoZmllbGQgPT4gZmllbGQuaWQgPT09ICdjYXNlTGlua3MnKTtcbiAgICB9XG4gICAgdGhpcy5pc1NlcnZlckp1cmlzZGljdGlvbkVycm9yID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2Uuc2VydmVySnVyaXNkaWN0aW9uRXJyb3IgfHwgZmFsc2U7XG4gICAgY29uc3QgcmVhc29uQ29kZUFQSXVybCA9IGAke3RoaXMuYXBwQ29uZmlnLmdldFJEQ29tbW9uRGF0YUFwaVVybCgpfS9sb3YvY2F0ZWdvcmllcy9DYXNlTGlua2luZ1JlYXNvbkNvZGVgO1xuICAgIHRoaXMuY29tbW9uRGF0YVNlcnZpY2UuZ2V0UmVmRGF0YShyZWFzb25Db2RlQVBJdXJsKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogcmVhc29ucyA9PiB7XG4gICAgICAgIHRoaXMucmVhc29uTGlzdExvYWRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtDYXNlUmVhc29ucyA9IHJlYXNvbnMubGlzdF9vZl92YWx1ZXMuc29ydCgoYSwgYikgPT4gKGEudmFsdWVfZW4gPiBiLnZhbHVlX2VuKSA/IDEgOiAtMSk7XG4gICAgICB9LFxuICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgdGhpcy5pc1NlcnZlclJlYXNvbkNvZGVFcnJvciA9IHRydWU7XG4gICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmlzU2VydmVyUmVhc29uQ29kZUVycm9yID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnNlcnZlckxpbmtlZEFwaUVycm9yID0ge1xuICAgICAgaWQ6ICdiYWNrZW5kRXJyb3InLCBtZXNzYWdlOiAnU29tZSBjYXNlIGluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgYXQgdGhlIG1vbWVudCdcbiAgICB9O1xuICAgIHRoaXMuc2VydmVyRXJyb3IgPSB7XG4gICAgICBpZDogJ2JhY2tlbmRFcnJvcicsIG1lc3NhZ2U6ICdUaGVyZSBoYXMgYmVlbiBhIHN5c3RlbSBlcnJvciBhbmQgeW91ciByZXF1ZXN0IGNvdWxkIG5vdCBiZSBwcm9jZXNzZWQuJ1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlID0gdGhpcy5jYXNlRmllbGQ/LnZhbHVlID8/IFtdO1xuICAgIGxldCBsYWJlbEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZ292dWstaGVhZGluZy1sJyk7XG4gICAgaWYgKGxhYmVsRmllbGQgJiYgbGFiZWxGaWVsZC5sZW5ndGgpIHtcbiAgICAgIGxhYmVsRmllbGRbMF0ucmVwbGFjZVdpdGgoJycpO1xuICAgIH1cbiAgICBsYWJlbEZpZWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaGVhZGluZy1oMicpO1xuICAgIGlmIChsYWJlbEZpZWxkICYmIGxhYmVsRmllbGQubGVuZ3RoKSB7XG4gICAgICBsYWJlbEZpZWxkWzBdLnJlcGxhY2VXaXRoKCcnKTtcbiAgICB9XG4gICAgbGFiZWxGaWVsZCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2Nhc2Utdmlld2VyLWxhYmVsJyk7XG4gICAgaWYgKGxhYmVsRmllbGQgJiYgbGFiZWxGaWVsZC5sZW5ndGgpIHtcbiAgICAgIGxhYmVsRmllbGRbMF0ucmVwbGFjZVdpdGgoJycpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWxvYWRDdXJyZW50Um91dGUoKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjYXNlcycsICdjYXNlLWRldGFpbHMnLCB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSnVyaXNkaWN0aW9uSUQsIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VEZXRhaWxzLmNhc2VfdHlwZSwgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZURldGFpbHMuY2FzZV9pZF0sIHsgZnJhZ21lbnQ6ICdMaW5rZWQgY2FzZXMnIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZhaWx1cmVMaW5rZWRUb05vdGlmaWNhdGlvbihldnQpOiB2b2lkIHtcbiAgICB0aGlzLmlzU2VydmVyTGlua2VkVG9FcnJvciA9IHRydWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmFpbHVyZUxpbmtlZEZyb21Ob3RpZmljYXRpb24oZXZ0KTogdm9pZCB7XG4gICAgdGhpcy5pc1NlcnZlckxpbmtlZEZyb21FcnJvciA9IHRydWU7XG4gIH1cbn1cbiIsIjxkaXY+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay0hLW1hcmdpbi1ib3R0b20tMlwiPlxuICAgIDxoMSBjbGFzcz1cImhlYWRpbmctaDFcIj5MaW5rZWQgY2FzZXM8L2gxPlxuICAgIDxsYWJlbCBjbGFzcz1cInRhYmxlLXN1Yi1oZWFkaW5nXCI+VGhpcyBjYXNlIGlzIGxpbmtlZCB0bzwvbGFiZWw+XG4gICAgPGNjZC1saW5rZWQtY2FzZXMtdG8tdGFibGUgW2Nhc2VGaWVsZF09XCJjYXNlRmllbGRcIiAobm90aWZ5QVBJRmFpbHVyZSk9XCJnZXRGYWlsdXJlTGlua2VkVG9Ob3RpZmljYXRpb24oJGV2ZW50KVwiXG4gICAgICByZWxvYWRQYWdlPVwicmVsb2FkXCI+PC9jY2QtbGlua2VkLWNhc2VzLXRvLXRhYmxlPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ0lmPVwiKGlzU2VydmVyTGlua2VkVG9FcnJvciAmJiBpc1NlcnZlckp1cmlzZGljdGlvbkVycm9yICYmIGlzU2VydmVyUmVhc29uQ29kZUVycm9yKTsgdGhlbiBtdWx0aUFwaXNFcnJvcjtcIj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIiEoaXNTZXJ2ZXJMaW5rZWRUb0Vycm9yICYmIGlzU2VydmVySnVyaXNkaWN0aW9uRXJyb3IgJiYgaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3IpICYmIChpc1NlcnZlckxpbmtlZFRvRXJyb3IgfHwgaXNTZXJ2ZXJKdXJpc2RpY3Rpb25FcnJvciB8fCBpc1NlcnZlclJlYXNvbkNvZGVFcnJvcik7IHRoZW4gc2luZ2xlQXBpRXJyb3I7XCI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZ292dWstIS1tYXJnaW4tdG9wLThcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJ0YWJsZS1zdWItaGVhZGluZ1wiPlRoaXMgY2FzZSBpcyBsaW5rZWQgZnJvbTwvbGFiZWw+XG4gICAgPGJyPlxuICAgIDxjY2QtbGlua2VkLWNhc2VzLWZyb20tdGFibGUgW2Nhc2VGaWVsZF09XCJjYXNlRmllbGRcIiAobm90aWZ5QVBJRmFpbHVyZSk9XCJnZXRGYWlsdXJlTGlua2VkRnJvbU5vdGlmaWNhdGlvbigkZXZlbnQpXCJcbiAgICAgIHJlbG9hZFBhZ2U9XCJyZWxvYWRcIj48L2NjZC1saW5rZWQtY2FzZXMtZnJvbS10YWJsZT5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIihpc1NlcnZlckxpbmtlZEZyb21FcnJvciAmJiBpc1NlcnZlckp1cmlzZGljdGlvbkVycm9yICYmIGlzU2VydmVyUmVhc29uQ29kZUVycm9yKTsgdGhlbiBtdWx0aUFwaXNFcnJvcjtcIj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICAqbmdJZj1cIiEoaXNTZXJ2ZXJMaW5rZWRGcm9tRXJyb3IgJiYgaXNTZXJ2ZXJKdXJpc2RpY3Rpb25FcnJvciAmJiBpc1NlcnZlclJlYXNvbkNvZGVFcnJvcikgJiYgKGlzU2VydmVyTGlua2VkRnJvbUVycm9yIHx8IGlzU2VydmVySnVyaXNkaWN0aW9uRXJyb3IgfHwgaXNTZXJ2ZXJSZWFzb25Db2RlRXJyb3IpOyB0aGVuIHNpbmdsZUFwaUVycm9yO1wiPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI3NpbmdsZUFwaUVycm9yPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstbWFpbi13cmFwcGVyXCI+XG4gICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5XCI+e3tzZXJ2ZXJMaW5rZWRBcGlFcnJvci5tZXNzYWdlfX08L3A+XG4gICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1ib2R5IGFsaWduLWxlZnRcIj5cbiAgICAgIDxhIGhyZWY9XCIjXCIgKGNsaWNrKT1cInJlbG9hZEN1cnJlbnRSb3V0ZSgpOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIGlkPVwicmVsb2FkLWxpbmtlZC1jYXNlcy10YWJcIiBjbGFzcz1cImdvdnVrLWxpbmtcIj5SZWxvYWRcbiAgICAgICAgdGhlIExpbmtlZCBjYXNlcyB0YWI8L2E+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgI211bHRpQXBpc0Vycm9yPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstbWFpbi13cmFwcGVyXCI+XG4gICAgPHAgY2xhc3M9XCJnb3Z1ay1ib2R5XCI+e3tzZXJ2ZXJFcnJvci5tZXNzYWdlfX08L3A+XG4gICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1ib2R5IGFsaWduLWxlZnRcIj5cbiAgICAgIDxhIGhyZWY9XCIjXCIgKGNsaWNrKT1cInJlbG9hZEN1cnJlbnRSb3V0ZSgpOyAkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIGlkPVwicmVsb2FkLWxpbmtlZC1jYXNlcy10YWJcIiBjbGFzcz1cImdvdnVrLWxpbmtcIj5SZWxvYWRcbiAgICAgICAgdGhlIExpbmtlZCBjYXNlcyB0YWI8L2E+XG4gICAgPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=