@hmcts/ccd-case-ui-toolkit 7.1.34 → 7.1.35-qm-wa

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 (23) hide show
  1. package/esm2022/lib/shared/components/palette/history/event-log/event-log.component.mjs +9 -9
  2. package/esm2022/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.mjs +17 -17
  3. package/esm2022/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.mjs +10 -10
  4. package/esm2022/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.mjs +13 -30
  5. package/esm2022/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.mjs +10 -12
  6. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +24 -4
  7. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +19 -5
  8. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.mjs +103 -114
  9. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +35 -45
  10. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +228 -236
  11. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  12. package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts.map +1 -1
  13. package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts.map +1 -1
  14. package/lib/shared/components/palette/query-management/components/qualifying-questions/qualifying-question-detail/qualifying-question-detail.component.d.ts.map +1 -1
  15. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +1 -0
  16. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  17. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +11 -4
  18. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -1
  19. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +1 -2
  20. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -1
  21. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +1 -2
  22. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +1 -1
  23. package/package.json +1 -1
@@ -2,7 +2,7 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  function EventLogComponent_ccd_event_log_table_3_Template(rf, ctx) { if (rf & 1) {
4
4
  const _r1 = i0.ɵɵgetCurrentView();
5
- i0.ɵɵelementStart(0, "ccd-event-log-table", 8);
5
+ i0.ɵɵelementStart(0, "ccd-event-log-table", 7);
6
6
  i0.ɵɵlistener("onSelect", function EventLogComponent_ccd_event_log_table_3_Template_ccd_event_log_table_onSelect_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.select($event)); })("onCaseHistory", function EventLogComponent_ccd_event_log_table_3_Template_ccd_event_log_table_onCaseHistory_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.caseHistoryClicked($event)); });
7
7
  i0.ɵɵelementEnd();
8
8
  } if (rf & 2) {
@@ -11,7 +11,7 @@ function EventLogComponent_ccd_event_log_table_3_Template(rf, ctx) { if (rf & 1)
11
11
  } }
12
12
  function EventLogComponent_ccd_event_log_table_4_Template(rf, ctx) { if (rf & 1) {
13
13
  const _r3 = i0.ɵɵgetCurrentView();
14
- i0.ɵɵelementStart(0, "ccd-event-log-table", 9);
14
+ i0.ɵɵelementStart(0, "ccd-event-log-table", 8);
15
15
  i0.ɵɵlistener("onSelect", function EventLogComponent_ccd_event_log_table_4_Template_ccd_event_log_table_onSelect_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.select($event)); });
16
16
  i0.ɵɵelementEnd();
17
17
  } if (rf & 2) {
@@ -19,7 +19,7 @@ function EventLogComponent_ccd_event_log_table_4_Template(rf, ctx) { if (rf & 1)
19
19
  i0.ɵɵproperty("events", ctx_r1.events)("selected", ctx_r1.selected);
20
20
  } }
21
21
  function EventLogComponent_ccd_event_log_details_7_Template(rf, ctx) { if (rf & 1) {
22
- i0.ɵɵelement(0, "ccd-event-log-details", 10);
22
+ i0.ɵɵelement(0, "ccd-event-log-details", 9);
23
23
  } if (rf & 2) {
24
24
  const ctx_r1 = i0.ɵɵnextContext();
25
25
  i0.ɵɵproperty("event", ctx_r1.selected);
@@ -40,14 +40,14 @@ export class EventLogComponent {
40
40
  this.onCaseHistory.emit(eventId);
41
41
  }
42
42
  static ɵfac = function EventLogComponent_Factory(t) { return new (t || EventLogComponent)(); };
43
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EventLogComponent, selectors: [["ccd-event-log"]], inputs: { events: "events" }, outputs: { onCaseHistory: "onCaseHistory" }, decls: 8, vars: 4, consts: [[1, "grid-row"], [1, "column-one-half", "scrollbar"], [3, "ngSwitch"], [3, "events", "selected", "onSelect", "onCaseHistory", 4, "ngSwitchCase"], [3, "events", "selected", "onSelect", 4, "ngSwitchCase"], [1, "column-one-half"], [1, "EventLog-DetailsPanel"], [3, "event", 4, "ngIf"], [3, "onSelect", "onCaseHistory", "events", "selected"], [3, "onSelect", "events", "selected"], [3, "event"]], template: function EventLogComponent_Template(rf, ctx) { if (rf & 1) {
43
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EventLogComponent, selectors: [["ccd-event-log"]], inputs: { events: "events" }, outputs: { onCaseHistory: "onCaseHistory" }, decls: 8, vars: 4, consts: [[1, "grid-row"], [1, "column-one-half"], [3, "ngSwitch"], [3, "events", "selected", "onSelect", "onCaseHistory", 4, "ngSwitchCase"], [3, "events", "selected", "onSelect", 4, "ngSwitchCase"], [1, "EventLog-DetailsPanel"], [3, "event", 4, "ngIf"], [3, "onSelect", "onCaseHistory", "events", "selected"], [3, "onSelect", "events", "selected"], [3, "event"]], template: function EventLogComponent_Template(rf, ctx) { if (rf & 1) {
44
44
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1);
45
45
  i0.ɵɵelementContainerStart(2, 2);
46
46
  i0.ɵɵtemplate(3, EventLogComponent_ccd_event_log_table_3_Template, 1, 2, "ccd-event-log-table", 3)(4, EventLogComponent_ccd_event_log_table_4_Template, 1, 2, "ccd-event-log-table", 4);
47
47
  i0.ɵɵelementContainerEnd();
48
48
  i0.ɵɵelementEnd();
49
- i0.ɵɵelementStart(5, "div", 5)(6, "div", 6);
50
- i0.ɵɵtemplate(7, EventLogComponent_ccd_event_log_details_7_Template, 1, 1, "ccd-event-log-details", 7);
49
+ i0.ɵɵelementStart(5, "div", 1)(6, "div", 5);
50
+ i0.ɵɵtemplate(7, EventLogComponent_ccd_event_log_details_7_Template, 1, 1, "ccd-event-log-details", 6);
51
51
  i0.ɵɵelementEnd()()();
52
52
  } if (rf & 2) {
53
53
  i0.ɵɵadvance(2);
@@ -58,15 +58,15 @@ export class EventLogComponent {
58
58
  i0.ɵɵproperty("ngSwitchCase", false);
59
59
  i0.ɵɵadvance(3);
60
60
  i0.ɵɵproperty("ngIf", ctx.selected);
61
- } }, styles: ["@media (max-width: 991px){[class*=col-md][_ngcontent-%COMP%]{margin-bottom:30px}}.column-half[_ngcontent-%COMP%], .column-one-half[_ngcontent-%COMP%]{float:left;width:50%}@media (min-width: 641px){.scrollbar[_ngcontent-%COMP%]{height:70vh;overflow-y:auto}}.EventLog-DetailsPanel[_ngcontent-%COMP%]{border:1px solid #bfc1c3;padding:0 10px 10px;margin-top:20px}"] });
61
+ } }, styles: ["@media (max-width: 991px){[class*=col-md][_ngcontent-%COMP%]{margin-bottom:30px}}.EventLog-DetailsPanel[_ngcontent-%COMP%]{border:1px solid #bfc1c3;padding:0 10px 10px;margin-top:20px}"] });
62
62
  }
63
63
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EventLogComponent, [{
64
64
  type: Component,
65
- args: [{ selector: 'ccd-event-log', template: "<div class=\"grid-row\">\n <div class=\"column-one-half scrollbar\">\n <ng-container [ngSwitch]=\"isPartOfCaseTimeline\">\n <ccd-event-log-table\n *ngSwitchCase=\"true\"\n [events]=\"events\"\n [selected]=\"selected\"\n (onSelect)=\"select($event)\"\n (onCaseHistory)=\"caseHistoryClicked($event)\"\n ></ccd-event-log-table>\n <ccd-event-log-table\n *ngSwitchCase=\"false\"\n [events]=\"events\"\n [selected]=\"selected\"\n (onSelect)=\"select($event)\"\n ></ccd-event-log-table>\n </ng-container>\n </div>\n <div class=\"column-one-half\">\n <div class=\"EventLog-DetailsPanel\">\n <ccd-event-log-details\n *ngIf=\"selected\"\n [event]=\"selected\"\n ></ccd-event-log-details>\n </div>\n </div>\n</div>\n", styles: ["@media (max-width: 991px){[class*=col-md]{margin-bottom:30px}}.column-half,.column-one-half{float:left;width:50%}@media (min-width: 641px){.scrollbar{height:70vh;overflow-y:auto}}.EventLog-DetailsPanel{border:1px solid #bfc1c3;padding:0 10px 10px;margin-top:20px}\n"] }]
65
+ args: [{ selector: 'ccd-event-log', template: "<div class=\"grid-row\">\n <div class=\"column-one-half\">\n <ng-container [ngSwitch]=\"isPartOfCaseTimeline\">\n <ccd-event-log-table *ngSwitchCase=\"true\" [events]=\"events\" [selected]=\"selected\" (onSelect)=\"select($event)\" (onCaseHistory)=\"caseHistoryClicked($event)\"></ccd-event-log-table>\n <ccd-event-log-table *ngSwitchCase=\"false\" [events]=\"events\" [selected]=\"selected\" (onSelect)=\"select($event)\"></ccd-event-log-table>\n </ng-container>\n </div>\n <div class=\"column-one-half\">\n <div class=\"EventLog-DetailsPanel\">\n <ccd-event-log-details *ngIf=\"selected\" [event]=\"selected\"></ccd-event-log-details>\n </div>\n </div>\n</div>\n", styles: ["@media (max-width: 991px){[class*=col-md]{margin-bottom:30px}}.EventLog-DetailsPanel{border:1px solid #bfc1c3;padding:0 10px 10px;margin-top:20px}\n"] }]
66
66
  }], null, { events: [{
67
67
  type: Input
68
68
  }], onCaseHistory: [{
69
69
  type: Output
70
70
  }] }); })();
71
71
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EventLogComponent, { className: "EventLogComponent", filePath: "lib/shared/components/palette/history/event-log/event-log.component.ts", lineNumber: 9 }); })();
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2hpc3RvcnkvZXZlbnQtbG9nL2V2ZW50LWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9oaXN0b3J5L2V2ZW50LWxvZy9ldmVudC1sb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztJQ0d6RSw4Q0FNQztJQURDLEFBREEsc05BQVkscUJBQWMsS0FBQyxtTkFDVixpQ0FBMEIsS0FBQztJQUM3QyxpQkFBc0I7OztJQUhyQixBQURBLHNDQUFpQiw2QkFDSTs7OztJQUl2Qiw4Q0FLQztJQURDLHNOQUFZLHFCQUFjLEtBQUM7SUFDNUIsaUJBQXNCOzs7SUFGckIsQUFEQSxzQ0FBaUIsNkJBQ0k7OztJQU92Qiw0Q0FHeUI7OztJQUR2Qix1Q0FBa0I7O0FEZDFCLE1BQU0sT0FBTyxpQkFBaUI7SUFHckIsTUFBTSxDQUFrQjtJQUd4QixhQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUUzQyxRQUFRLENBQWdCO0lBRXhCLG9CQUFvQixHQUFHLEtBQUssQ0FBQztJQUU3QixRQUFRO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBb0I7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVNLGtCQUFrQixDQUFDLE9BQWU7UUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQzsyRUF2QlUsaUJBQWlCOzZEQUFqQixpQkFBaUI7WUNQNUIsQUFERiw4QkFBc0IsYUFDbUI7WUFDckMsZ0NBQWdEO1lBUTlDLEFBUEEsa0dBTUMscUZBTUE7O1lBRUwsaUJBQU07WUFFSixBQURGLDhCQUE2QixhQUNRO1lBQ2pDLHNHQUdDO1lBR1AsQUFERSxBQURFLGlCQUFNLEVBQ0YsRUFDRjs7WUF4QlksZUFBaUM7WUFBakMsbURBQWlDO1lBRTFDLGNBQWtCO1lBQWxCLG1DQUFrQjtZQU9sQixjQUFtQjtZQUFuQixvQ0FBbUI7WUFVbkIsZUFBYztZQUFkLG1DQUFjOzs7aUZEYlYsaUJBQWlCO2NBTDdCLFNBQVM7MkJBQ0UsZUFBZTtnQkFPbEIsTUFBTTtrQkFEWixLQUFLO1lBSUMsYUFBYTtrQkFEbkIsTUFBTTs7a0ZBTEksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FzZVZpZXdFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1ldmVudC1sb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXZlbnQtbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZXZlbnQtbG9nLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFdmVudExvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGV2ZW50czogQ2FzZVZpZXdFdmVudFtdO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb25DYXNlSGlzdG9yeSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyBzZWxlY3RlZDogQ2FzZVZpZXdFdmVudDtcblxuICBwdWJsaWMgaXNQYXJ0T2ZDYXNlVGltZWxpbmUgPSBmYWxzZTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMuZXZlbnRzWzBdO1xuICAgIHRoaXMuaXNQYXJ0T2ZDYXNlVGltZWxpbmUgPSB0aGlzLm9uQ2FzZUhpc3Rvcnkub2JzZXJ2ZXJzLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0KGV2ZW50OiBDYXNlVmlld0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IGV2ZW50O1xuICB9XG5cbiAgcHVibGljIGNhc2VIaXN0b3J5Q2xpY2tlZChldmVudElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLm9uQ2FzZUhpc3RvcnkuZW1pdChldmVudElkKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZC1yb3dcIj5cbiAgPGRpdiBjbGFzcz1cImNvbHVtbi1vbmUtaGFsZiBzY3JvbGxiYXJcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJpc1BhcnRPZkNhc2VUaW1lbGluZVwiPlxuICAgICAgPGNjZC1ldmVudC1sb2ctdGFibGVcbiAgICAgICAgKm5nU3dpdGNoQ2FzZT1cInRydWVcIlxuICAgICAgICBbZXZlbnRzXT1cImV2ZW50c1wiXG4gICAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZFwiXG4gICAgICAgIChvblNlbGVjdCk9XCJzZWxlY3QoJGV2ZW50KVwiXG4gICAgICAgIChvbkNhc2VIaXN0b3J5KT1cImNhc2VIaXN0b3J5Q2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgID48L2NjZC1ldmVudC1sb2ctdGFibGU+XG4gICAgICA8Y2NkLWV2ZW50LWxvZy10YWJsZVxuICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIlxuICAgICAgICBbZXZlbnRzXT1cImV2ZW50c1wiXG4gICAgICAgIFtzZWxlY3RlZF09XCJzZWxlY3RlZFwiXG4gICAgICAgIChvblNlbGVjdCk9XCJzZWxlY3QoJGV2ZW50KVwiXG4gICAgICA+PC9jY2QtZXZlbnQtbG9nLXRhYmxlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbHVtbi1vbmUtaGFsZlwiPlxuICAgIDxkaXYgY2xhc3M9XCJFdmVudExvZy1EZXRhaWxzUGFuZWxcIj5cbiAgICAgIDxjY2QtZXZlbnQtbG9nLWRldGFpbHNcbiAgICAgICAgKm5nSWY9XCJzZWxlY3RlZFwiXG4gICAgICAgIFtldmVudF09XCJzZWxlY3RlZFwiXG4gICAgICA+PC9jY2QtZXZlbnQtbG9nLWRldGFpbHM+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2hpc3RvcnkvZXZlbnQtbG9nL2V2ZW50LWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9oaXN0b3J5L2V2ZW50LWxvZy9ldmVudC1sb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztJQ0d6RSw4Q0FBMko7SUFBN0MsQUFBNUIsc05BQVkscUJBQWMsS0FBQyxtTkFBa0IsaUNBQTBCLEtBQUM7SUFBQyxpQkFBc0I7OztJQUFySCxBQUFsQixzQ0FBaUIsNkJBQXNCOzs7O0lBQ2pGLDhDQUErRztJQUE1QixzTkFBWSxxQkFBYyxLQUFDO0lBQUMsaUJBQXNCOzs7SUFBeEUsQUFBbEIsc0NBQWlCLDZCQUFzQjs7O0lBS2xGLDJDQUFtRjs7O0lBQTNDLHVDQUFrQjs7QUREaEUsTUFBTSxPQUFPLGlCQUFpQjtJQUdyQixNQUFNLENBQWtCO0lBR3hCLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRTNDLFFBQVEsQ0FBZ0I7SUFFeEIsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0lBRTdCLFFBQVE7UUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFvQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRU0sa0JBQWtCLENBQUMsT0FBZTtRQUN2QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDOzJFQXZCVSxpQkFBaUI7NkRBQWpCLGlCQUFpQjtZQ1A1QixBQURGLDhCQUFzQixhQUNTO1lBQzNCLGdDQUFnRDtZQUU5QyxBQURBLGtHQUEySixxRkFDNUM7O1lBRW5ILGlCQUFNO1lBRUosQUFERiw4QkFBNkIsYUFDUTtZQUNqQyxzR0FBMkQ7WUFHakUsQUFERSxBQURFLGlCQUFNLEVBQ0YsRUFDRjs7WUFWWSxlQUFpQztZQUFqQyxtREFBaUM7WUFDdkIsY0FBa0I7WUFBbEIsbUNBQWtCO1lBQ2xCLGNBQW1CO1lBQW5CLG9DQUFtQjtZQUtqQixlQUFjO1lBQWQsbUNBQWM7OztpRkREL0IsaUJBQWlCO2NBTDdCLFNBQVM7MkJBQ0UsZUFBZTtnQkFPbEIsTUFBTTtrQkFEWixLQUFLO1lBSUMsYUFBYTtrQkFEbkIsTUFBTTs7a0ZBTEksaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FzZVZpZXdFdmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1ldmVudC1sb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXZlbnQtbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZXZlbnQtbG9nLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBFdmVudExvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGV2ZW50czogQ2FzZVZpZXdFdmVudFtdO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb25DYXNlSGlzdG9yeSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHB1YmxpYyBzZWxlY3RlZDogQ2FzZVZpZXdFdmVudDtcblxuICBwdWJsaWMgaXNQYXJ0T2ZDYXNlVGltZWxpbmUgPSBmYWxzZTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IHRoaXMuZXZlbnRzWzBdO1xuICAgIHRoaXMuaXNQYXJ0T2ZDYXNlVGltZWxpbmUgPSB0aGlzLm9uQ2FzZUhpc3Rvcnkub2JzZXJ2ZXJzLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0KGV2ZW50OiBDYXNlVmlld0V2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZCA9IGV2ZW50O1xuICB9XG5cbiAgcHVibGljIGNhc2VIaXN0b3J5Q2xpY2tlZChldmVudElkOiBzdHJpbmcpIHtcbiAgICB0aGlzLm9uQ2FzZUhpc3RvcnkuZW1pdChldmVudElkKTtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiZ3JpZC1yb3dcIj5cbiAgPGRpdiBjbGFzcz1cImNvbHVtbi1vbmUtaGFsZlwiPlxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImlzUGFydE9mQ2FzZVRpbWVsaW5lXCI+XG4gICAgICA8Y2NkLWV2ZW50LWxvZy10YWJsZSAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiIFtldmVudHNdPVwiZXZlbnRzXCIgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCIgKG9uU2VsZWN0KT1cInNlbGVjdCgkZXZlbnQpXCIgKG9uQ2FzZUhpc3RvcnkpPVwiY2FzZUhpc3RvcnlDbGlja2VkKCRldmVudClcIj48L2NjZC1ldmVudC1sb2ctdGFibGU+XG4gICAgICA8Y2NkLWV2ZW50LWxvZy10YWJsZSAqbmdTd2l0Y2hDYXNlPVwiZmFsc2VcIiBbZXZlbnRzXT1cImV2ZW50c1wiIFtzZWxlY3RlZF09XCJzZWxlY3RlZFwiIChvblNlbGVjdCk9XCJzZWxlY3QoJGV2ZW50KVwiPjwvY2NkLWV2ZW50LWxvZy10YWJsZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb2x1bW4tb25lLWhhbGZcIj5cbiAgICA8ZGl2IGNsYXNzPVwiRXZlbnRMb2ctRGV0YWlsc1BhbmVsXCI+XG4gICAgICA8Y2NkLWV2ZW50LWxvZy1kZXRhaWxzICpuZ0lmPVwic2VsZWN0ZWRcIiBbZXZlbnRdPVwic2VsZWN0ZWRcIj48L2NjZC1ldmVudC1sb2ctZGV0YWlscz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -272,8 +272,8 @@ export class LinkCasesComponent {
272
272
  })), this.validatorsUtils.formArraySelectedValidator());
273
273
  }
274
274
  toggleLinkCaseReasonOtherComments(event) {
275
- this.linkCaseReasons.find((reason) => reason.value_en === event.target.value).selected = event.target.checked;
276
- this.showComments = this.linkCaseReasons.find((reason) => reason.value_en === 'Other')?.selected;
275
+ this.linkCaseReasons.find(reason => reason.value_en === event.target.value).selected = event.target.checked;
276
+ this.showComments = this.linkCaseReasons.find(reason => reason.value_en === 'Other').selected;
277
277
  }
278
278
  submitCaseInfo() {
279
279
  this.errorMessages = [];
@@ -312,7 +312,7 @@ export class LinkCasesComponent {
312
312
  this.errorMessages.push({
313
313
  title: 'dummy-case-number',
314
314
  description: LinkedCasesErrorMessages.CaseNumberError,
315
- fieldId: 'caseNumber'
315
+ fieldId: 'caseNumber',
316
316
  });
317
317
  }
318
318
  if (this.linkCaseForm.controls.reasonType.invalid) {
@@ -320,17 +320,17 @@ export class LinkCasesComponent {
320
320
  this.errorMessages.push({
321
321
  title: 'dummy-case-reason',
322
322
  description: LinkedCasesErrorMessages.ReasonSelectionError,
323
- fieldId: 'caseReason'
323
+ fieldId: 'caseReason',
324
324
  });
325
325
  }
326
326
  if (this.linkCaseForm.controls.reasonType.valid
327
- && this.linkCaseReasons.find((reason) => reason.value_en === 'Other').selected) {
327
+ && this.linkCaseReasons.find(reason => reason.value_en === 'Other').selected) {
328
328
  if (this.linkCaseForm.controls.otherDescription.value.trim().length === 0) {
329
329
  this.caseReasonCommentsError = LinkedCasesErrorMessages.otherDescriptionError;
330
330
  this.errorMessages.push({
331
331
  title: 'dummy-case-reason-comments',
332
332
  description: LinkedCasesErrorMessages.otherDescriptionError,
333
- fieldId: 'otherDescription'
333
+ fieldId: 'otherDescription',
334
334
  });
335
335
  }
336
336
  if (this.linkCaseForm.controls.otherDescription.value.trim().length > 100) {
@@ -338,7 +338,7 @@ export class LinkCasesComponent {
338
338
  this.errorMessages.push({
339
339
  title: 'dummy-case-reason-comments',
340
340
  description: LinkedCasesErrorMessages.otherDescriptionMaxLengthError,
341
- fieldId: 'otherDescription'
341
+ fieldId: 'otherDescription',
342
342
  });
343
343
  }
344
344
  }
@@ -347,7 +347,7 @@ export class LinkCasesComponent {
347
347
  this.errorMessages.push({
348
348
  title: 'dummy-case-number',
349
349
  description: LinkedCasesErrorMessages.CaseProposedError,
350
- fieldId: 'caseNumber'
350
+ fieldId: 'caseNumber',
351
351
  });
352
352
  }
353
353
  if (this.isCaseSelected(this.linkedCasesService.linkedCases)) {
@@ -355,14 +355,14 @@ export class LinkCasesComponent {
355
355
  this.errorMessages.push({
356
356
  title: 'dummy-case-number',
357
357
  description: LinkedCasesErrorMessages.CasesLinkedError,
358
- fieldId: 'caseNumber'
358
+ fieldId: 'caseNumber',
359
359
  });
360
360
  }
361
361
  if (this.linkCaseForm.value.caseNumber.split('-').join('') === this.linkedCasesService.caseId.split('-').join('')) {
362
362
  this.errorMessages.push({
363
363
  title: 'dummy-case-number',
364
364
  description: LinkedCasesErrorMessages.ProposedCaseWithIn,
365
- fieldId: 'caseNumber'
365
+ fieldId: 'caseNumber',
366
366
  });
367
367
  }
368
368
  window.scrollTo(0, 0);
@@ -383,7 +383,7 @@ export class LinkCasesComponent {
383
383
  caseState: caseView.state.name || '',
384
384
  caseStateDescription: caseView.state.description || '',
385
385
  caseService: caseView.case_type && caseView.case_type.jurisdiction && caseView.case_type.jurisdiction.description || '',
386
- caseName: this.linkedCasesService.getCaseName(caseView)
386
+ caseName: this.linkedCasesService.getCaseName(caseView),
387
387
  };
388
388
  const ccdApiCaseLinkData = {
389
389
  CaseReference: caseView.case_id,
@@ -396,7 +396,7 @@ export class LinkCasesComponent {
396
396
  }
397
397
  this.linkedCasesService.caseFieldValue.push({ id: caseView.case_id.toString(), value: ccdApiCaseLinkData });
398
398
  this.selectedCases.push(caseLink);
399
- this.linkCaseReasons.forEach((reason) => reason.selected = false);
399
+ this.linkCaseReasons.forEach(reason => reason.selected = false);
400
400
  this.initForm();
401
401
  this.emitLinkedCasesState(false);
402
402
  }, (error) => {
@@ -404,7 +404,7 @@ export class LinkCasesComponent {
404
404
  this.errorMessages.push({
405
405
  title: 'dummy-case-number',
406
406
  description: LinkedCasesErrorMessages.CaseCheckAgainError,
407
- fieldId: 'caseNumber'
407
+ fieldId: 'caseNumber',
408
408
  });
409
409
  this.emitLinkedCasesState(false);
410
410
  window.scrollTo(0, 0);
@@ -416,7 +416,7 @@ export class LinkCasesComponent {
416
416
  this.linkedCasesStateEmitter.emit({
417
417
  currentLinkedCasesPage: LinkedCasesPages.LINK_CASE,
418
418
  errorMessages: this.errorMessages,
419
- navigateToNextPage: isNavigateToNextPage
419
+ navigateToNextPage: isNavigateToNextPage,
420
420
  });
421
421
  }
422
422
  getSelectedCaseReasons() {
@@ -451,7 +451,7 @@ export class LinkCasesComponent {
451
451
  }
452
452
  onSelectedLinkedCaseRemove(pos, selectedCaseReference) {
453
453
  const caseFieldValue = this.linkedCasesService.caseFieldValue || [];
454
- const updatedItems = caseFieldValue.filter((item) => item.value && item.value.CaseReference !== selectedCaseReference);
454
+ const updatedItems = caseFieldValue.filter(item => item.value && item.value.CaseReference !== selectedCaseReference);
455
455
  if (updatedItems) {
456
456
  this.linkedCasesService.caseFieldValue = updatedItems;
457
457
  }
@@ -472,7 +472,7 @@ export class LinkCasesComponent {
472
472
  this.errorMessages.push({
473
473
  title: 'dummy-case-selection',
474
474
  description: LinkedCasesErrorMessages.CaseSelectionError,
475
- fieldId: 'caseReason'
475
+ fieldId: 'caseReason',
476
476
  });
477
477
  navigateToNextPage = false;
478
478
  }
@@ -540,4 +540,4 @@ export class LinkCasesComponent {
540
540
  type: Output
541
541
  }] }); })();
542
542
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LinkCasesComponent, { className: "LinkCasesComponent", filePath: "lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.ts", lineNumber: 24 }); })();
543
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1jYXNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9saW5rZWQtY2FzZXMvY29tcG9uZW50cy9saW5rLWNhc2VzL2xpbmstY2FzZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbGluay1jYXNlcy9saW5rLWNhc2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQWEsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQVE5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7O0lDUG5ELEFBREYsZ0NBQTBELGVBQ3BCO0lBQUEsc0JBQU07SUFBQSxpQkFBTztJQUFDLFlBQ3BEO0lBQUEsaUJBQU87OztJQUQ2QyxlQUNwRDtJQURvRCx1REFDcEQ7OztJQVVFLEFB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QTJCO1lBQTNCLGdEQUEyQjs7O2lGRDdEeEQsa0JBQWtCO2NBTDlCLFNBQVM7MkJBQ0UsZ0JBQWdCO3NJQU1uQix1QkFBdUI7a0JBRDdCLE1BQU07O2tGQURJLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FzZVZpZXcsIEVycm9yTWVzc2FnZSwgSHR0cEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IExvdlJlZkRhdGFNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL2NvbW1vbi1kYXRhLXNlcnZpY2UvY29tbW9uLWRhdGEtc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IExpbmtlZENhc2VzU3RhdGUgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHtcbiAgQ2FzZUxpbmssXG4gIENDRENhc2VMaW5rVHlwZSxcbiAgTGlua0Nhc2VSZWFzb24sXG4gIExpbmtSZWFzb25cbn0gZnJvbSAnLi4vLi4vZG9tYWluL2xpbmtlZC1jYXNlcy5tb2RlbCc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMsIExpbmtlZENhc2VzUGFnZXMsIFBhdHRlcm5zIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGlua2VkLWNhc2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgVmFsaWRhdG9yc1V0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMvdmFsaWRhdG9ycy51dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1saW5rLWNhc2VzJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGluay1jYXNlcy5jb21wb25lbnQuc2NzcyddLFxuICB0ZW1wbGF0ZVVybDogJy4vbGluay1jYXNlcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgTGlua0Nhc2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBsaW5rZWRDYXNlc1N0YXRlRW1pdHRlcjogRXZlbnRFbWl0dGVyPExpbmtlZENhc2VzU3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxMaW5rZWRDYXNlc1N0YXRlPigpO1xuXG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgbGlua0Nhc2VGb3JtOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBzZWxlY3RlZENhc2VzOiBDYXNlTGlua1tdID0gW107XG4gIHB1YmxpYyBjYXNlTnVtYmVyRXJyb3I6IHN0cmluZztcbiAgcHVibGljIGNhc2VSZWFzb25FcnJvcjogc3RyaW5nO1xuICBwdWJsaWMgY2FzZVJlYXNvbkNvbW1lbnRzRXJyb3I6IHN0cmluZztcbiAgcHVibGljIGNhc2VTZWxlY3Rpb25FcnJvcjogc3RyaW5nO1xuICBwdWJsaWMgbm9TZWxlY3RlZENhc2VFcnJvcjogc3RyaW5nO1xuICBwdWJsaWMgY2FzZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBjYXNlTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgbGlua0Nhc2VSZWFzb25zOiBMb3ZSZWZEYXRhTW9kZWxbXTtcbiAgcHVibGljIHNob3dDb21tZW50cyA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IElTT19GT1JNQVQgPSAnWVlZWS1NTS1ERFRISDptbTpzcy5TU1MnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZXNTZXJ2aWNlOiBDYXNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2YWxpZGF0b3JzVXRpbHM6IFZhbGlkYXRvcnNVdGlscyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpbmtlZENhc2VzU2VydmljZTogTGlua2VkQ2FzZXNTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlSWQgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWQ7XG4gICAgdGhpcy5jYXNlTmFtZSA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VOYW1lO1xuICAgIHRoaXMubGlua0Nhc2VSZWFzb25zID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua0Nhc2VSZWFzb25zO1xuICAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgICBpZiAodGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuZWRpdE1vZGUpIHtcbiAgICAgIC8vIHRoaXMgbWF5IGhhdmUgaW5jbHVkZXMgdGhlIGN1cnJlbnRseSBhZGRlZCBvbmUgYnV0IHlldCB0byBiZSBzdWJtaXR0ZWQuXG4gICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcztcbiAgICB9IGVsc2UgaWYgKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmluaXRpYWxDYXNlTGlua3MubGVuZ3RoICE9PSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZS5sZW5ndGgpIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rcztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaW5pdEZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5saW5rQ2FzZUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGNhc2VOdW1iZXI6IFsnJywgW1ZhbGlkYXRvcnMubWluTGVuZ3RoKDE2KSwgdGhpcy52YWxpZGF0b3JzVXRpbHMucmVnZXhQYXR0ZXJuKFBhdHRlcm5zLkNBU0VfUkVGKV1dLFxuICAgICAgcmVhc29uVHlwZTogdGhpcy5nZXRSZWFzb25UeXBlRm9ybUFycmF5LFxuICAgICAgb3RoZXJEZXNjcmlwdGlvbjogWycnLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKV1dXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdldFJlYXNvblR5cGVGb3JtQXJyYXkoKTogRm9ybUFycmF5IHtcbiAgICByZXR1cm4gdGhpcy5mYi5hcnJheShcbiAgICAgIHRoaXMubGlua0Nhc2VSZWFzb25zLm1hcCgodmFsKSA9PlxuICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICBrZXk6IFt2YWwua2V5XSxcbiAgICAgICAgICB2YWx1ZV9lbjogW3ZhbC52YWx1ZV9lbl0sXG4gICAgICAgICAgdmFsdWVfY3k6IFt2YWwudmFsdWVfY3ldLFxuICAgICAgICAgIGhpbnRfdGV4dF9lbjogW3ZhbC5oaW50X3RleHRfZW5dLFxuICAgICAgICAgIGhpbnRfdGV4dF9jeTogW3ZhbC5oaW50X3RleHRfY3ldLFxuICAgICAgICAgIGxvdl9vcmRlcjogW3ZhbC5sb3Zfb3JkZXJdLFxuICAgICAgICAgIHBhcmVudF9rZXk6IFt2YWwucGFyZW50X2tleV0sXG4gICAgICAgICAgc2VsZWN0ZWQ6IFshIXZhbC5zZWxlY3RlZF0sXG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgdGhpcy52YWxpZGF0b3JzVXRpbHMuZm9ybUFycmF5U2VsZWN0ZWRWYWxpZGF0b3IoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlTGlua0Nhc2VSZWFzb25PdGhlckNvbW1lbnRzKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmxpbmtDYXNlUmVhc29ucy5maW5kKChyZWFzb24pID0+IHJlYXNvbi52YWx1ZV9lbiA9PT0gZXZlbnQudGFyZ2V0LnZhbHVlKS5zZWxlY3RlZCA9IGV2ZW50LnRhcmdldC5jaGVja2VkO1xuICAgIHRoaXMuc2hvd0NvbW1lbnRzID0gdGhpcy5saW5rQ2FzZVJlYXNvbnMuZmluZCgocmVhc29uKSA9PiByZWFzb24udmFsdWVfZW4gPT09ICdPdGhlcicpPy5zZWxlY3RlZDtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRDYXNlSW5mbygpOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcbiAgICB0aGlzLmNhc2VSZWFzb25FcnJvciA9IG51bGw7XG4gICAgdGhpcy5jYXNlUmVhc29uQ29tbWVudHNFcnJvciA9IG51bGw7XG4gICAgdGhpcy5jYXNlTnVtYmVyRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2FzZVNlbGVjdGlvbkVycm9yID0gbnVsbDtcbiAgICB0aGlzLm5vU2VsZWN0ZWRDYXNlRXJyb3IgPSBudWxsO1xuICAgIGlmIChcbiAgICAgIHRoaXMubGlua0Nhc2VGb3JtLnZhbGlkICYmXG4gICAgICAhdGhpcy5pc0Nhc2VTZWxlY3RlZCh0aGlzLnNlbGVjdGVkQ2FzZXMpICYmXG4gICAgICAhdGhpcy5pc0Nhc2VTZWxlY3RlZCh0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcykgJiZcbiAgICAgICF0aGlzLmlzQ2FzZVNlbGVjdGVkU2FtZUFzQ3VycmVudENhc2UoKSAmJlxuICAgICAgIXRoaXMuaXNPdGhlck9wdGlvblNlbGVjdGVkQnV0T3RoZXJEZXNjcmlwdGlvbk5vdEVudGVyZWQoKVxuICAgICkge1xuICAgICAgdGhpcy5nZXRDYXNlSW5mbygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNob3dFcnJvckluZm8oKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNDYXNlU2VsZWN0ZWQobGlua2VkQ2FzZXM6IENhc2VMaW5rW10pOiBib29sZWFuIHtcbiAgICBpZiAobGlua2VkQ2FzZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGNhc2VOdW1iZXIgPSB0aGlzLmxpbmtDYXNlRm9ybS52YWx1ZS5jYXNlTnVtYmVyO1xuICAgIHJldHVybiAhIWxpbmtlZENhc2VzLmZpbmQoXG4gICAgICAoY2FzZUxpbmspID0+IGNhc2VMaW5rLmNhc2VSZWZlcmVuY2Uuc3BsaXQoJy0nKS5qb2luKCcnKSA9PT0gY2FzZU51bWJlci5zcGxpdCgnLScpLmpvaW4oJycpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDYXNlU2VsZWN0ZWRTYW1lQXNDdXJyZW50Q2FzZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5saW5rQ2FzZUZvcm0udmFsdWUuY2FzZU51bWJlci5zcGxpdCgnLScpLmpvaW4oJycpID09PSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWQuc3BsaXQoJy0nKS5qb2luKCcnKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNPdGhlck9wdGlvblNlbGVjdGVkQnV0T3RoZXJEZXNjcmlwdGlvbk5vdEVudGVyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0NvbW1lbnRzICYmIHRoaXMubGlua0Nhc2VGb3JtLnZhbHVlLm90aGVyRGVzY3JpcHRpb24udHJpbSgpLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHB1YmxpYyBzaG93RXJyb3JJbmZvKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5jYXNlTnVtYmVyLmludmFsaWQpIHtcbiAgICAgIHRoaXMuY2FzZU51bWJlckVycm9yID0gTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VOdW1iZXJFcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLW51bWJlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZU51bWJlckVycm9yLFxuICAgICAgICBmaWVsZElkOiAnY2FzZU51bWJlcidcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5saW5rQ2FzZUZvcm0uY29udHJvbHMucmVhc29uVHlwZS5pbnZhbGlkKSB7XG4gICAgICB0aGlzLmNhc2VSZWFzb25FcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5SZWFzb25TZWxlY3Rpb25FcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLXJlYXNvbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuUmVhc29uU2VsZWN0aW9uRXJyb3IsXG4gICAgICAgIGZpZWxkSWQ6ICdjYXNlUmVhc29uJ1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5yZWFzb25UeXBlLnZhbGlkXG4gICAgICAmJiB0aGlzLmxpbmtDYXNlUmVhc29ucy5maW5kKChyZWFzb24pID0+IHJlYXNvbi52YWx1ZV9lbiA9PT0gJ090aGVyJykuc2VsZWN0ZWQpIHtcbiAgICAgIGlmICh0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5vdGhlckRlc2NyaXB0aW9uLnZhbHVlLnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdGhpcy5jYXNlUmVhc29uQ29tbWVudHNFcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5vdGhlckRlc2NyaXB0aW9uRXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJ2R1bW15LWNhc2UtcmVhc29uLWNvbW1lbnRzJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLm90aGVyRGVzY3JpcHRpb25FcnJvcixcbiAgICAgICAgICBmaWVsZElkOiAnb3RoZXJEZXNjcmlwdGlvbidcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5saW5rQ2FzZUZvcm0uY29udHJvbHMub3RoZXJEZXNjcmlwdGlvbi52YWx1ZS50cmltKCkubGVuZ3RoID4gMTAwKSB7XG4gICAgICAgIHRoaXMuY2FzZVJlYXNvbkNvbW1lbnRzRXJyb3IgPSBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMub3RoZXJEZXNjcmlwdGlvbk1heExlbmd0aEVycm9yO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLXJlYXNvbi1jb21tZW50cycsXG4gICAgICAgICAgZGVzY3JpcHRpb246IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5vdGhlckRlc2NyaXB0aW9uTWF4TGVuZ3RoRXJyb3IsXG4gICAgICAgICAgZmllbGRJZDogJ290aGVyRGVzY3JpcHRpb24nXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5pc0Nhc2VTZWxlY3RlZCh0aGlzLnNlbGVjdGVkQ2FzZXMpKSB7XG4gICAgICB0aGlzLmNhc2VTZWxlY3Rpb25FcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlUHJvcG9zZWRFcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLW51bWJlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZVByb3Bvc2VkRXJyb3IsXG4gICAgICAgIGZpZWxkSWQ6ICdjYXNlTnVtYmVyJ1xuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmlzQ2FzZVNlbGVjdGVkKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzKSkge1xuICAgICAgdGhpcy5jYXNlU2VsZWN0aW9uRXJyb3IgPSBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZXNMaW5rZWRFcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLW51bWJlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZXNMaW5rZWRFcnJvcixcbiAgICAgICAgZmllbGRJZDogJ2Nhc2VOdW1iZXInXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMubGlua0Nhc2VGb3JtLnZhbHVlLmNhc2VOdW1iZXIuc3BsaXQoJy0nKS5qb2luKCcnKSA9PT0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUlkLnNwbGl0KCctJykuam9pbignJykpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLW51bWJlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuUHJvcG9zZWRDYXNlV2l0aEluLFxuICAgICAgICBmaWVsZElkOiAnY2FzZU51bWJlcidcbiAgICAgIH0pO1xuICAgIH1cbiAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgdGhpcy5lbWl0TGlua2VkQ2FzZXNTdGF0ZShmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZUluZm8oKTogdm9pZCB7XG4gICAgY29uc3QgY2FzZU51bWJlckRhdGEgPSB0aGlzLmxpbmtDYXNlRm9ybS52YWx1ZS5jYXNlTnVtYmVyLnJlcGxhY2UoL1stIF0vZywgJycpO1xuICAgIHRoaXMuY2FzZXNTZXJ2aWNlXG4gICAgICAuZ2V0Q2FzZVZpZXdWMihjYXNlTnVtYmVyRGF0YSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChjYXNlVmlldzogQ2FzZVZpZXcpID0+IHtcbiAgICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRGV0YWlscyA9IGNhc2VWaWV3O1xuICAgICAgICAgIGNvbnN0IGNhc2VMaW5rOiBDYXNlTGluayA9IHtcbiAgICAgICAgICAgIGNhc2VSZWZlcmVuY2U6IGNhc2VWaWV3LmNhc2VfaWQsXG4gICAgICAgICAgICByZWFzb25zOiB0aGlzLmdldFNlbGVjdGVkQ2FzZVJlYXNvbnMoKSxcbiAgICAgICAgICAgIGNyZWF0ZWREYXRlVGltZTogbW9tZW50KG5ldyBEYXRlKCkpLmZvcm1hdCh0aGlzLklTT19GT1JNQVQpLFxuICAgICAgICAgICAgY2FzZVR5cGU6IGNhc2VWaWV3LmNhc2VfdHlwZS5uYW1lIHx8ICcnLFxuICAgICAgICAgICAgY2FzZVR5cGVEZXNjcmlwdGlvbjogY2FzZVZpZXcuY2FzZV90eXBlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgICAgICAgY2FzZVN0YXRlOiBjYXNlVmlldy5zdGF0ZS5uYW1lIHx8ICcnLFxuICAgICAgICAgICAgY2FzZVN0YXRlRGVzY3JpcHRpb246IGNhc2VWaWV3LnN0YXRlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgICAgICAgY2FzZVNlcnZpY2U6IGNhc2VWaWV3LmNhc2VfdHlwZSAmJiBjYXNlVmlldy5jYXNlX3R5cGUuanVyaXNkaWN0aW9uICYmIGNhc2VWaWV3LmNhc2VfdHlwZS5qdXJpc2RpY3Rpb24uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgICBjYXNlTmFtZTogdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuZ2V0Q2FzZU5hbWUoY2FzZVZpZXcpXG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCBjY2RBcGlDYXNlTGlua0RhdGE6IENDRENhc2VMaW5rVHlwZSA9IHtcbiAgICAgICAgICAgIENhc2VSZWZlcmVuY2U6IGNhc2VWaWV3LmNhc2VfaWQsXG4gICAgICAgICAgICBDYXNlVHlwZTogY2FzZVZpZXcuY2FzZV90eXBlLmlkLFxuICAgICAgICAgICAgQ3JlYXRlZERhdGVUaW1lOiBtb21lbnQobmV3IERhdGUoKSkuZm9ybWF0KHRoaXMuSVNPX0ZPUk1BVCksXG4gICAgICAgICAgICBSZWFzb25Gb3JMaW5rOiB0aGlzLmdldFNlbGVjdGVkQ0NEVHlwZUNhc2VSZWFzb24oKVxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKCF0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUgPSBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUucHVzaCh7IGlkOiBjYXNlVmlldy5jYXNlX2lkLnRvU3RyaW5nKCksIHZhbHVlOiBjY2RBcGlDYXNlTGlua0RhdGEgfSk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnB1c2goY2FzZUxpbmspO1xuICAgICAgICAgIHRoaXMubGlua0Nhc2VSZWFzb25zLmZvckVhY2goKHJlYXNvbikgPT4gcmVhc29uLnNlbGVjdGVkID0gZmFsc2UpO1xuICAgICAgICAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgICAgICAgICB0aGlzLmVtaXRMaW5rZWRDYXNlc1N0YXRlKGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yOiBIdHRwRXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmNhc2VOdW1iZXJFcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlQ2hlY2tBZ2FpbkVycm9yO1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiAnZHVtbXktY2FzZS1udW1iZXInLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlQ2hlY2tBZ2FpbkVycm9yLFxuICAgICAgICAgICAgZmllbGRJZDogJ2Nhc2VOdW1iZXInXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5lbWl0TGlua2VkQ2FzZXNTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIC8vIFJldHVybiBsaW5rZWQgY2FzZXMgc3RhdGUgYW5kIGVycm9yIG1lc3NhZ2VzIHRvIHRoZSBwYXJlbnRcbiAgcHVibGljIGVtaXRMaW5rZWRDYXNlc1N0YXRlKGlzTmF2aWdhdGVUb05leHRQYWdlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5saW5rZWRDYXNlc1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRMaW5rZWRDYXNlc1BhZ2U6IExpbmtlZENhc2VzUGFnZXMuTElOS19DQVNFLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzLFxuICAgICAgbmF2aWdhdGVUb05leHRQYWdlOiBpc05hdmlnYXRlVG9OZXh0UGFnZVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFNlbGVjdGVkQ2FzZVJlYXNvbnMoKTogTGlua1JlYXNvbltdIHtcbiAgICBjb25zdCBzZWxlY3RlZFJlYXNvbnMgPSBbXTtcbiAgICB0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5yZWFzb25UeXBlLnZhbHVlLmZvckVhY2goXG4gICAgICAoc2VsZWN0ZWRSZWFzb246IExpbmtDYXNlUmVhc29uKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZFJlYXNvbi5zZWxlY3RlZCkge1xuICAgICAgICAgIHNlbGVjdGVkUmVhc29ucy5wdXNoKHtcbiAgICAgICAgICAgIFJlYXNvbjogc2VsZWN0ZWRSZWFzb24ua2V5LFxuICAgICAgICAgICAgT3RoZXJEZXNjcmlwdGlvbjogc2VsZWN0ZWRSZWFzb24udmFsdWVfZW4gPT09ICdPdGhlcidcbiAgICAgICAgICAgICAgPyB0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5vdGhlckRlc2NyaXB0aW9uLnZhbHVlXG4gICAgICAgICAgICAgIDogJydcbiAgICAgICAgICB9IGFzIExpbmtSZWFzb24pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRSZWFzb25zO1xuICB9XG5cbiAgcHVibGljIGdldFNlbGVjdGVkQ0NEVHlwZUNhc2VSZWFzb24oKTogTGlua1JlYXNvbltdIHtcbiAgICBjb25zdCBzZWxlY3RlZFJlYXNvbnMgPSBbXTtcbiAgICB0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5yZWFzb25UeXBlLnZhbHVlLmZvckVhY2goXG4gICAgICAoc2VsZWN0ZWRSZWFzb246IExpbmtDYXNlUmVhc29uKSA9PiB7XG4gICAgICAgIGlmIChzZWxlY3RlZFJlYXNvbi5zZWxlY3RlZCkge1xuICAgICAgICAgIHNlbGVjdGVkUmVhc29ucy5wdXNoKHtcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgIFJlYXNvbjogc2VsZWN0ZWRSZWFzb24ua2V5LFxuICAgICAgICAgICAgICBPdGhlckRlc2NyaXB0aW9uOiBzZWxlY3RlZFJlYXNvbi52YWx1ZV9lbiA9PT0gJ090aGVyJ1xuICAgICAgICAgICAgICAgID8gdGhpcy5saW5rQ2FzZUZvcm0uY29udHJvbHMub3RoZXJEZXNjcmlwdGlvbi52YWx1ZVxuICAgICAgICAgICAgICAgIDogJydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHNlbGVjdGVkUmVhc29ucztcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdGVkTGlua2VkQ2FzZVJlbW92ZShwb3MsIHNlbGVjdGVkQ2FzZVJlZmVyZW5jZSk6IHZvaWQge1xuICAgIGNvbnN0IGNhc2VGaWVsZFZhbHVlID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUgfHwgW107XG4gICAgY29uc3QgdXBkYXRlZEl0ZW1zID0gY2FzZUZpZWxkVmFsdWUuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnZhbHVlICYmIGl0ZW0udmFsdWUuQ2FzZVJlZmVyZW5jZSAhPT0gc2VsZWN0ZWRDYXNlUmVmZXJlbmNlKTtcbiAgICBpZiAodXBkYXRlZEl0ZW1zKSB7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZSA9IHVwZGF0ZWRJdGVtcztcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZENhc2VzLnNwbGljZShwb3MsIDEpO1xuICB9XG5cbiAgcHVibGljIG9uTmV4dCgpOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcbiAgICB0aGlzLmNhc2VSZWFzb25FcnJvciA9IG51bGw7XG4gICAgdGhpcy5jYXNlTnVtYmVyRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2FzZVNlbGVjdGlvbkVycm9yID0gbnVsbDtcbiAgICB0aGlzLm5vU2VsZWN0ZWRDYXNlRXJyb3IgPSBudWxsO1xuICAgIGxldCBuYXZpZ2F0ZVRvTmV4dFBhZ2UgPSB0cnVlO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQ2FzZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcyA9IHRoaXMuc2VsZWN0ZWRDYXNlcztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5ub1NlbGVjdGVkQ2FzZUVycm9yID0gTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VTZWxlY3Rpb25FcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLXNlbGVjdGlvbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZVNlbGVjdGlvbkVycm9yLFxuICAgICAgICBmaWVsZElkOiAnY2FzZVJlYXNvbidcbiAgICAgIH0pO1xuICAgICAgbmF2aWdhdGVUb05leHRQYWdlID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuZW1pdExpbmtlZENhc2VzU3RhdGUobmF2aWdhdGVUb05leHRQYWdlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1mdWxsXCI+XG4gICAgPGRpdj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstY2FwdGlvbi1sXCI+TGluayBjYXNlcyB0byB7e2Nhc2VOYW1lfX0ge3tjYXNlSWQgfCBjY2RDYXNlUmVmZXJlbmNlfX08L3NwYW4+XG4gICAgICA8aDEgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLXhsXCI+U2VsZWN0IGEmbmJzcDtjYXNlIHlvdSB3YW50IHRvIGxpbmsgdG8gdGhpcyBjYXNlPC9oMT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW2Zvcm1Hcm91cF09XCJsaW5rQ2FzZUZvcm1cIiAqbmdJZj1cImxpbmtDYXNlRm9ybVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIGlkPVwiY2FzZU51bWJlclwiIFtuZ0NsYXNzXT1cInsnZ292dWstZm9ybS1ncm91cC0tZXJyb3InOiAhIWNhc2VOdW1iZXJFcnJvcn1cIj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLXNcIj5FbnRlciBjYXNlIHJlZmVyZW5jZTwvaDM+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJjYXNlTnVtYmVyRXJyb3JcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+RXJyb3I6PC9zcGFuPiB7e2Nhc2VOdW1iZXJFcnJvcn19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWlucHV0IGdvdnVrLWlucHV0LS13aWR0aC0yMFwiIGZvcm1Db250cm9sTmFtZT1cImNhc2VOdW1iZXJcIiBpZD1cIndpZHRoLTIwXCIgbmFtZT1cIndpZHRoLTIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnZ292dWstZm9ybS1ncm91cC0tZXJyb3InOiAhIWNhc2VSZWFzb25FcnJvcn1cIiBjbGFzcz1cImdvdnVrLSEtbWFyZ2luLXRvcC0zXCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwiZ292dWstaGVhZGluZy1zXCI+V2h5IHNob3VsZCB0aGVzZSBjYXNlcyBiZSBsaW5rZWQ/PC9oMz5cbiAgICAgICAgICA8ZGl2IGlkPVwid2FzdGUtaGludFwiIGNsYXNzPVwiZ292dWstaGludFwiPlxuICAgICAgICAgICAgU2VsZWN0IGFsbCB0aGF0IGFwcGx5LlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiY2FzZVJlYXNvbkVycm9yXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3tjYXNlUmVhc29uRXJyb3J9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc1wiIGRhdGEtbW9kdWxlPVwiZ292dWstY2hlY2tib3hlc1wiIGZvcm1BcnJheU5hbWU9XCJyZWFzb25UeXBlXCIgaWQ9XCJjYXNlUmVhc29uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiICpuZ0Zvcj1cImxldCByZWFzb24gb2YgbGlua0Nhc2VSZWFzb25zO2luZGV4IGFzIHBvc1wiIFtmb3JtR3JvdXBOYW1lXT1cInBvc1wiPlxuICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIGlkPVwie3tyZWFzb24ua2V5fX1cIiBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RlZFwiIG5hbWU9XCJwb3NcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIFt2YWx1ZV09XCJyZWFzb24udmFsdWVfZW5cIiAoY2hhbmdlKT1cInRvZ2dsZUxpbmtDYXNlUmVhc29uT3RoZXJDb21tZW50cygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwie3tyZWFzb24ua2V5fX1cIj57e3JlYXNvbi52YWx1ZV9lbn19PC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBpZD1cIm90aGVyLWRlc2NyaXB0aW9uLWNoYXItbGltaXQtZXJyb3JcIiBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogISFjYXNlUmVhc29uQ29tbWVudHNFcnJvcn1cIiBjbGFzcz1cImdvdnVrLSEtbWFyZ2luLXRvcC0zXCIgKm5nSWY9XCJzaG93Q29tbWVudHNcIj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLXNcIj5Db21tZW50czwvaDM+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJjYXNlUmVhc29uQ29tbWVudHNFcnJvclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7Y2FzZVJlYXNvbkNvbW1lbnRzRXJyb3J9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJnb3Z1ay10ZXh0YXJlYSBnb3Z1ay1pbnB1dC0td2lkdGgtMzBcIiBpZD1cIm90aGVyRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgbmFtZT1cIm90aGVyRGVzY3JpcHRpb25cIiBmb3JtQ29udHJvbE5hbWU9XCJvdGhlckRlc2NyaXB0aW9uXCIgcm93cz1cIjVcIlxuICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cIm90aGVyLWRlc2NyaXB0aW9uLWhpbnQgb3RoZXItZGVzY3JpcHRpb24tY2hhci1saW1pdC1pbmZvIG90aGVyLWRlc2NyaXB0aW9uLWNoYXItbGltaXQtZXJyb3JcIj5cbiAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICAgIDxkaXYgaWQ9XCJvdGhlci1kZXNjcmlwdGlvbi1jaGFyLWxpbWl0LWluZm9cIiBhcmlhLWxpdmU9XCJwb2xpdGVcIiBjbGFzcz1cImdvdnVrLWhpbnQgZ292dWstY2hhcmFjdGVyLWNvdW50X19tZXNzYWdlXCI+XG4gICAgICAgICAgICBZb3UgY2FuIGVudGVyIHVwIHRvIDEwMCBjaGFyYWN0ZXJzXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnI+PGJyPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImNhc2VTZWxlY3Rpb25FcnJvclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+RXJyb3I6PC9zcGFuPiB7e2Nhc2VTZWxlY3Rpb25FcnJvcn19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvbiBpZD1cInByb3Bvc2VcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstYnV0dG9uLS1zZWNvbmRhcnlcIiBkYXRhLW1vZHVsZT1cImdvdnVrLWJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdENhc2VJbmZvKClcIj5Qcm9wb3NlIGNhc2UgbGluazwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8aHI+XG4gICAgICA8YnI+PGJyPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBpZD1cImNhc2VOdW1iZXJcIiBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogISFub1NlbGVjdGVkQ2FzZUVycm9yfVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cIm5vU2VsZWN0ZWRDYXNlRXJyb3JcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3tub1NlbGVjdGVkQ2FzZUVycm9yfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8dGFibGUgY2xhc3M9XCJnb3Z1ay10YWJsZVwiPlxuICAgICAgICAgIDxjYXB0aW9uIGNsYXNzPVwiZ292dWstdGFibGVfX2NhcHRpb24gZ292dWstdGFibGVfX2NhcHRpb24tLW1cIj5Qcm9wb3NlZCBjYXNlIGxpbmtzIDwvY2FwdGlvbj5cbiAgICAgICAgICA8dGhlYWQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZFwiPlxuICAgICAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiB3aWR0aD1cIjMwMFwiPkNhc2UgbmFtZSBhbmQgbnVtYmVyPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgd2lkdGg9XCIxNTBcIj5DYXNlIHR5cGUgPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgd2lkdGg9XCIyMDBcIj5TZXJ2aWNlPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgd2lkdGg9XCIyMDBcIj5TdGF0ZTwvdGg+XG4gICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHdpZHRoPVwiNDAwXCI+UmVhc29ucyBmb3IgY2FzZSBsaW5rPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgd2lkdGg9XCI1MFwiPjwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgPHRib2R5IGNsYXNzPVwiZ292dWstdGFibGVfX2JvZHlcIj5cbiAgICAgICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIiAqbmdGb3I9XCJsZXQgY2FzZSBvZiBzZWxlY3RlZENhc2VzOyBsZXQgcG9zID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cC0tZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyd0YWJsZS1ncm91cC1lcnJvcic6Y2FzZVNlbGVjdGlvbkVycm9yICYmIGNhc2UuY2FzZVJlZmVyZW5jZSA9PT0gbGlua0Nhc2VGb3JtLnZhbHVlLmNhc2VOdW1iZXJ9XCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3tjYXNlLmNhc2VOYW1lfX0gPGJyPiB7e2Nhc2UuY2FzZVJlZmVyZW5jZSB8IGNjZENhc2VSZWZlcmVuY2V9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIiBbdGl0bGVdPVwiY2FzZS5jYXNlVHlwZURlc2NyaXB0aW9uXCI+e3tjYXNlLmNhc2VUeXBlfX08L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiPnt7Y2FzZS5jYXNlU2VydmljZX19PC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIiBbdGl0bGVdPVwiY2FzZS5jYXNlU3RhdGVEZXNjcmlwdGlvblwiPnt7Y2FzZS5jYXNlU3RhdGV9fTwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCI+PHNwYW5cbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCByZWFzb24gb2YgY2FzZS5yZWFzb25zXCI+e3tyZWFzb24gfCBjY2RMaW5rQ2FzZXNSZWFzb25WYWx1ZX19PGJyPjwvc3Bhbj48L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiPjxhIFthdHRyLmlkXT1cImNhc2UuY2FzZVJlZmVyZW5jZVwiIChjbGljayk9XCJvblNlbGVjdGVkTGlua2VkQ2FzZVJlbW92ZShwb3MsIGNhc2UuY2FzZVJlZmVyZW5jZSk7XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ292dWstbGluayBuby12aXNpdGVkLXN0YXRlXCI+UmVtb3ZlPC9hPjwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiICpuZ0lmPVwiIXNlbGVjdGVkQ2FzZXMubGVuZ3RoXCI+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCIgY29sc3Bhbj1cIjZcIj5cbiAgICAgICAgICAgICAgICBOb25lXG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1idXR0b24tZ3JvdXBcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiBpZD1cIm5leHQtYnV0dG9uXCIgKGNsaWNrKT1cIm9uTmV4dCgpXCI+TmV4dDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
543
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1jYXNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9saW5rZWQtY2FzZXMvY29tcG9uZW50cy9saW5rLWNhc2VzL2xpbmstY2FzZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvbGluay1jYXNlcy9saW5rLWNhc2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQWEsV0FBVyxFQUFhLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9FLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQVE5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7O0lDUG5ELEFBREYsZ0NBQTBELGVBQ3BCO0lBQUEsc0JBQU07SUFBQSxpQkFBTztJQUFDLFlBQ3BEO0lBQUEsaUJBQU87OztJQUQ2QyxlQUNwRDtJQURvRCx1REFDcEQ7OztJQVVFLEFB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RCxrQkFBa0I7Y0FMOUIsU0FBUzsyQkFDRSxnQkFBZ0I7c0lBTW5CLHVCQUF1QjtrQkFEN0IsTUFBTTs7a0ZBREksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXNlVmlldywgRXJyb3JNZXNzYWdlLCBIdHRwRXJyb3IgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgTG92UmVmRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2VydmljZXMvY29tbW9uLWRhdGEtc2VydmljZS9jb21tb24tZGF0YS1zZXJ2aWNlJztcbmltcG9ydCB7IENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Nhc2UtZWRpdG9yL3NlcnZpY2VzL2Nhc2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNTdGF0ZSB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQge1xuICBDYXNlTGluayxcbiAgQ0NEQ2FzZUxpbmtUeXBlLFxuICBMaW5rQ2FzZVJlYXNvbixcbiAgTGlua1JlYXNvblxufSBmcm9tICcuLi8uLi9kb21haW4vbGlua2VkLWNhc2VzLm1vZGVsJztcbmltcG9ydCB7IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcywgTGlua2VkQ2FzZXNQYWdlcywgUGF0dGVybnMgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9saW5rZWQtY2FzZXMuc2VydmljZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzVXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy92YWxpZGF0b3JzLnV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWxpbmstY2FzZXMnLFxuICBzdHlsZVVybHM6IFsnLi9saW5rLWNhc2VzLmNvbXBvbmVudC5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi9saW5rLWNhc2VzLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTGlua0Nhc2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBsaW5rZWRDYXNlc1N0YXRlRW1pdHRlcjogRXZlbnRFbWl0dGVyPExpbmtlZENhc2VzU3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxMaW5rZWRDYXNlc1N0YXRlPigpO1xuXG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgbGlua0Nhc2VGb3JtOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBzZWxlY3RlZENhc2VzOiBDYXNlTGlua1tdID0gW107XG4gIHB1YmxpYyBjYXNlTnVtYmVyRXJyb3I6IHN0cmluZztcbiAgcHVibGljIGNhc2VSZWFzb25FcnJvcjogc3RyaW5nO1xuICBwdWJsaWMgY2FzZVJlYXNvbkNvbW1lbnRzRXJyb3I6IHN0cmluZztcbiAgcHVibGljIGNhc2VTZWxlY3Rpb25FcnJvcjogc3RyaW5nO1xuICBwdWJsaWMgbm9TZWxlY3RlZENhc2VFcnJvcjogc3RyaW5nO1xuICBwdWJsaWMgY2FzZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyBjYXNlTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgbGlua0Nhc2VSZWFzb25zOiBMb3ZSZWZEYXRhTW9kZWxbXTtcbiAgcHVibGljIHNob3dDb21tZW50cyA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IElTT19GT1JNQVQgPSAnWVlZWS1NTS1ERFRISDptbTpzcy5TU1MnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZXNTZXJ2aWNlOiBDYXNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2YWxpZGF0b3JzVXRpbHM6IFZhbGlkYXRvcnNVdGlscyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxpbmtlZENhc2VzU2VydmljZTogTGlua2VkQ2FzZXNTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlSWQgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWQ7XG4gICAgdGhpcy5jYXNlTmFtZSA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VOYW1lO1xuICAgIHRoaXMubGlua0Nhc2VSZWFzb25zID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua0Nhc2VSZWFzb25zO1xuICAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgICBpZiAodGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuZWRpdE1vZGUpIHtcbiAgICAgIC8vIHRoaXMgbWF5IGhhdmUgaW5jbHVkZXMgdGhlIGN1cnJlbnRseSBhZGRlZCBvbmUgYnV0IHlldCB0byBiZSBzdWJtaXR0ZWQuXG4gICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcztcbiAgICB9IGVsc2UgaWYgKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmluaXRpYWxDYXNlTGlua3MubGVuZ3RoICE9PSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRmllbGRWYWx1ZS5sZW5ndGgpIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzID0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuaW5pdGlhbENhc2VMaW5rcztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaW5pdEZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5saW5rQ2FzZUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGNhc2VOdW1iZXI6IFsnJywgW1ZhbGlkYXRvcnMubWluTGVuZ3RoKDE2KSwgdGhpcy52YWxpZGF0b3JzVXRpbHMucmVnZXhQYXR0ZXJuKFBhdHRlcm5zLkNBU0VfUkVGKV1dLFxuICAgICAgcmVhc29uVHlwZTogdGhpcy5nZXRSZWFzb25UeXBlRm9ybUFycmF5LFxuICAgICAgb3RoZXJEZXNjcmlwdGlvbjogWycnLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKV1dXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdldFJlYXNvblR5cGVGb3JtQXJyYXkoKTogRm9ybUFycmF5IHtcbiAgICByZXR1cm4gdGhpcy5mYi5hcnJheShcbiAgICAgIHRoaXMubGlua0Nhc2VSZWFzb25zLm1hcCgodmFsKSA9PlxuICAgICAgICB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICBrZXk6IFt2YWwua2V5XSxcbiAgICAgICAgICB2YWx1ZV9lbjogW3ZhbC52YWx1ZV9lbl0sXG4gICAgICAgICAgdmFsdWVfY3k6IFt2YWwudmFsdWVfY3ldLFxuICAgICAgICAgIGhpbnRfdGV4dF9lbjogW3ZhbC5oaW50X3RleHRfZW5dLFxuICAgICAgICAgIGhpbnRfdGV4dF9jeTogW3ZhbC5oaW50X3RleHRfY3ldLFxuICAgICAgICAgIGxvdl9vcmRlcjogW3ZhbC5sb3Zfb3JkZXJdLFxuICAgICAgICAgIHBhcmVudF9rZXk6IFt2YWwucGFyZW50X2tleV0sXG4gICAgICAgICAgc2VsZWN0ZWQ6IFshIXZhbC5zZWxlY3RlZF0sXG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgdGhpcy52YWxpZGF0b3JzVXRpbHMuZm9ybUFycmF5U2VsZWN0ZWRWYWxpZGF0b3IoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlTGlua0Nhc2VSZWFzb25PdGhlckNvbW1lbnRzKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmxpbmtDYXNlUmVhc29ucy5maW5kKHJlYXNvbiA9PiByZWFzb24udmFsdWVfZW4gPT09IGV2ZW50LnRhcmdldC52YWx1ZSkuc2VsZWN0ZWQgPSBldmVudC50YXJnZXQuY2hlY2tlZDtcbiAgICB0aGlzLnNob3dDb21tZW50cyA9IHRoaXMubGlua0Nhc2VSZWFzb25zLmZpbmQocmVhc29uID0+IHJlYXNvbi52YWx1ZV9lbiA9PT0gJ090aGVyJykuc2VsZWN0ZWQ7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0Q2FzZUluZm8oKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgdGhpcy5jYXNlUmVhc29uRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2FzZVJlYXNvbkNvbW1lbnRzRXJyb3IgPSBudWxsO1xuICAgIHRoaXMuY2FzZU51bWJlckVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNhc2VTZWxlY3Rpb25FcnJvciA9IG51bGw7XG4gICAgdGhpcy5ub1NlbGVjdGVkQ2FzZUVycm9yID0gbnVsbDtcbiAgICBpZiAoXG4gICAgICB0aGlzLmxpbmtDYXNlRm9ybS52YWxpZCAmJlxuICAgICAgIXRoaXMuaXNDYXNlU2VsZWN0ZWQodGhpcy5zZWxlY3RlZENhc2VzKSAmJlxuICAgICAgIXRoaXMuaXNDYXNlU2VsZWN0ZWQodGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMpICYmXG4gICAgICAhdGhpcy5pc0Nhc2VTZWxlY3RlZFNhbWVBc0N1cnJlbnRDYXNlKCkgJiZcbiAgICAgICF0aGlzLmlzT3RoZXJPcHRpb25TZWxlY3RlZEJ1dE90aGVyRGVzY3JpcHRpb25Ob3RFbnRlcmVkKClcbiAgICApIHtcbiAgICAgIHRoaXMuZ2V0Q2FzZUluZm8oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zaG93RXJyb3JJbmZvKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzQ2FzZVNlbGVjdGVkKGxpbmtlZENhc2VzOiBDYXNlTGlua1tdKTogYm9vbGVhbiB7XG4gICAgaWYgKGxpbmtlZENhc2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBjYXNlTnVtYmVyID0gdGhpcy5saW5rQ2FzZUZvcm0udmFsdWUuY2FzZU51bWJlcjtcbiAgICByZXR1cm4gISFsaW5rZWRDYXNlcy5maW5kKFxuICAgICAgKGNhc2VMaW5rKSA9PiBjYXNlTGluay5jYXNlUmVmZXJlbmNlLnNwbGl0KCctJykuam9pbignJykgPT09IGNhc2VOdW1iZXIuc3BsaXQoJy0nKS5qb2luKCcnKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGlzQ2FzZVNlbGVjdGVkU2FtZUFzQ3VycmVudENhc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubGlua0Nhc2VGb3JtLnZhbHVlLmNhc2VOdW1iZXIuc3BsaXQoJy0nKS5qb2luKCcnKSA9PT0gdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUlkLnNwbGl0KCctJykuam9pbignJyk7XG4gIH1cblxuICBwcml2YXRlIGlzT3RoZXJPcHRpb25TZWxlY3RlZEJ1dE90aGVyRGVzY3JpcHRpb25Ob3RFbnRlcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3dDb21tZW50cyAmJiB0aGlzLmxpbmtDYXNlRm9ybS52YWx1ZS5vdGhlckRlc2NyaXB0aW9uLnRyaW0oKS5sZW5ndGggPT09IDA7XG4gIH1cblxuICBwdWJsaWMgc2hvd0Vycm9ySW5mbygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5saW5rQ2FzZUZvcm0uY29udHJvbHMuY2FzZU51bWJlci5pbnZhbGlkKSB7XG4gICAgICB0aGlzLmNhc2VOdW1iZXJFcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlTnVtYmVyRXJyb3I7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnZHVtbXktY2FzZS1udW1iZXInLFxuICAgICAgICBkZXNjcmlwdGlvbjogTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VOdW1iZXJFcnJvcixcbiAgICAgICAgZmllbGRJZDogJ2Nhc2VOdW1iZXInLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5yZWFzb25UeXBlLmludmFsaWQpIHtcbiAgICAgIHRoaXMuY2FzZVJlYXNvbkVycm9yID0gTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLlJlYXNvblNlbGVjdGlvbkVycm9yO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJ2R1bW15LWNhc2UtcmVhc29uJyxcbiAgICAgICAgZGVzY3JpcHRpb246IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5SZWFzb25TZWxlY3Rpb25FcnJvcixcbiAgICAgICAgZmllbGRJZDogJ2Nhc2VSZWFzb24nLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5yZWFzb25UeXBlLnZhbGlkXG4gICAgICAmJiB0aGlzLmxpbmtDYXNlUmVhc29ucy5maW5kKHJlYXNvbiA9PiByZWFzb24udmFsdWVfZW4gPT09ICdPdGhlcicpLnNlbGVjdGVkKSB7XG4gICAgICBpZiAodGhpcy5saW5rQ2FzZUZvcm0uY29udHJvbHMub3RoZXJEZXNjcmlwdGlvbi52YWx1ZS50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRoaXMuY2FzZVJlYXNvbkNvbW1lbnRzRXJyb3IgPSBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMub3RoZXJEZXNjcmlwdGlvbkVycm9yO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLXJlYXNvbi1jb21tZW50cycsXG4gICAgICAgICAgZGVzY3JpcHRpb246IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5vdGhlckRlc2NyaXB0aW9uRXJyb3IsXG4gICAgICAgICAgZmllbGRJZDogJ290aGVyRGVzY3JpcHRpb24nLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmxpbmtDYXNlRm9ybS5jb250cm9scy5vdGhlckRlc2NyaXB0aW9uLnZhbHVlLnRyaW0oKS5sZW5ndGggPiAxMDApIHtcbiAgICAgICAgdGhpcy5jYXNlUmVhc29uQ29tbWVudHNFcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5vdGhlckRlc2NyaXB0aW9uTWF4TGVuZ3RoRXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgICB0aXRsZTogJ2R1bW15LWNhc2UtcmVhc29uLWNvbW1lbnRzJyxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLm90aGVyRGVzY3JpcHRpb25NYXhMZW5ndGhFcnJvcixcbiAgICAgICAgICBmaWVsZElkOiAnb3RoZXJEZXNjcmlwdGlvbicsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5pc0Nhc2VTZWxlY3RlZCh0aGlzLnNlbGVjdGVkQ2FzZXMpKSB7XG4gICAgICB0aGlzLmNhc2VTZWxlY3Rpb25FcnJvciA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlUHJvcG9zZWRFcnJvcjtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLW51bWJlcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZVByb3Bvc2VkRXJyb3IsXG4gICAgICAgIGZpZWxkSWQ6ICdjYXNlTnVtYmVyJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0Nhc2VTZWxlY3RlZCh0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcykpIHtcbiAgICAgIHRoaXMuY2FzZVNlbGVjdGlvbkVycm9yID0gTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VzTGlua2VkRXJyb3I7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7XG4gICAgICAgIHRpdGxlOiAnZHVtbXktY2FzZS1udW1iZXInLFxuICAgICAgICBkZXNjcmlwdGlvbjogTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VzTGlua2VkRXJyb3IsXG4gICAgICAgIGZpZWxkSWQ6ICdjYXNlTnVtYmVyJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAodGhpcy5saW5rQ2FzZUZvcm0udmFsdWUuY2FzZU51bWJlci5zcGxpdCgnLScpLmpvaW4oJycpID09PSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWQuc3BsaXQoJy0nKS5qb2luKCcnKSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJ2R1bW15LWNhc2UtbnVtYmVyJyxcbiAgICAgICAgZGVzY3JpcHRpb246IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5Qcm9wb3NlZENhc2VXaXRoSW4sXG4gICAgICAgIGZpZWxkSWQ6ICdjYXNlTnVtYmVyJyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gICAgdGhpcy5lbWl0TGlua2VkQ2FzZXNTdGF0ZShmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZUluZm8oKTogdm9pZCB7XG4gICAgY29uc3QgY2FzZU51bWJlckRhdGEgPSB0aGlzLmxpbmtDYXNlRm9ybS52YWx1ZS5jYXNlTnVtYmVyLnJlcGxhY2UoL1stIF0vZywgJycpO1xuICAgIHRoaXMuY2FzZXNTZXJ2aWNlXG4gICAgICAuZ2V0Q2FzZVZpZXdWMihjYXNlTnVtYmVyRGF0YSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChjYXNlVmlldzogQ2FzZVZpZXcpID0+IHtcbiAgICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlRGV0YWlscyA9IGNhc2VWaWV3O1xuICAgICAgICAgIGNvbnN0IGNhc2VMaW5rOiBDYXNlTGluayA9IHtcbiAgICAgICAgICAgIGNhc2VSZWZlcmVuY2U6IGNhc2VWaWV3LmNhc2VfaWQsXG4gICAgICAgICAgICByZWFzb25zOiB0aGlzLmdldFNlbGVjdGVkQ2FzZVJlYXNvbnMoKSxcbiAgICAgICAgICAgIGNyZWF0ZWREYXRlVGltZTogbW9tZW50KG5ldyBEYXRlKCkpLmZvcm1hdCh0aGlzLklTT19GT1JNQVQpLFxuICAgICAgICAgICAgY2FzZVR5cGU6IGNhc2VWaWV3LmNhc2VfdHlwZS5uYW1lIHx8ICcnLFxuICAgICAgICAgICAgY2FzZVR5cGVEZXNjcmlwdGlvbjogY2FzZVZpZXcuY2FzZV90eXBlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgICAgICAgY2FzZVN0YXRlOiBjYXNlVmlldy5zdGF0ZS5uYW1lIHx8ICcnLFxuICAgICAgICAgICAgY2FzZVN0YXRlRGVzY3JpcHRpb246IGNhc2VWaWV3LnN0YXRlLmRlc2NyaXB0aW9uIHx8ICcnLFxuICAgICAgICAgICAgY2FzZVNlcnZpY2U6IGNhc2VWaWV3LmNhc2VfdHlwZSAmJiBjYXNlVmlldy5jYXNlX3R5cGUuanVyaXNkaWN0aW9uICYmIGNhc2VWaWV3LmNhc2VfdHlwZS5qdXJpc2RpY3Rpb24uZGVzY3JpcHRpb24gfHwgJycsXG4gICAgICAgICAgICBjYXNlTmFtZTogdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuZ2V0Q2FzZU5hbWUoY2FzZVZpZXcpLFxuICAgICAgICAgIH07XG4gICAgICAgICAgY29uc3QgY2NkQXBpQ2FzZUxpbmtEYXRhOiBDQ0RDYXNlTGlua1R5cGUgPSB7XG4gICAgICAgICAgICBDYXNlUmVmZXJlbmNlOiBjYXNlVmlldy5jYXNlX2lkLFxuICAgICAgICAgICAgQ2FzZVR5cGU6IGNhc2VWaWV3LmNhc2VfdHlwZS5pZCxcbiAgICAgICAgICAgIENyZWF0ZWREYXRlVGltZTogbW9tZW50KG5ldyBEYXRlKCkpLmZvcm1hdCh0aGlzLklTT19GT1JNQVQpLFxuICAgICAgICAgICAgUmVhc29uRm9yTGluazogdGhpcy5nZXRTZWxlY3RlZENDRFR5cGVDYXNlUmVhc29uKClcbiAgICAgICAgICB9O1xuICAgICAgICAgIGlmICghdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UuY2FzZUZpZWxkVmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlID0gW107XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlLnB1c2goeyBpZDogY2FzZVZpZXcuY2FzZV9pZC50b1N0cmluZygpLCB2YWx1ZTogY2NkQXBpQ2FzZUxpbmtEYXRhIH0pO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5wdXNoKGNhc2VMaW5rKTtcbiAgICAgICAgICB0aGlzLmxpbmtDYXNlUmVhc29ucy5mb3JFYWNoKHJlYXNvbiA9PiByZWFzb24uc2VsZWN0ZWQgPSBmYWxzZSk7XG4gICAgICAgICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgICAgICAgIHRoaXMuZW1pdExpbmtlZENhc2VzU3RhdGUoZmFsc2UpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3I6IEh0dHBFcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuY2FzZU51bWJlckVycm9yID0gTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VDaGVja0FnYWluRXJyb3I7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6ICdkdW1teS1jYXNlLW51bWJlcicsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLkNhc2VDaGVja0FnYWluRXJyb3IsXG4gICAgICAgICAgICBmaWVsZElkOiAnY2FzZU51bWJlcicsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdGhpcy5lbWl0TGlua2VkQ2FzZXNTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDApO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIC8vIFJldHVybiBsaW5rZWQgY2FzZXMgc3RhdGUgYW5kIGVycm9yIG1lc3NhZ2VzIHRvIHRoZSBwYXJlbnRcbiAgcHVibGljIGVtaXRMaW5rZWRDYXNlc1N0YXRlKGlzTmF2aWdhdGVUb05leHRQYWdlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5saW5rZWRDYXNlc1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRMaW5rZWRDYXNlc1BhZ2U6IExpbmtlZENhc2VzUGFnZXMuTElOS19DQVNFLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzLFxuICAgICAgbmF2aWdhdGVUb05leHRQYWdlOiBpc05hdmlnYXRlVG9OZXh0UGFnZSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTZWxlY3RlZENhc2VSZWFzb25zKCk6IExpbmtSZWFzb25bXSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRSZWFzb25zID0gW107XG4gICAgdGhpcy5saW5rQ2FzZUZvcm0uY29udHJvbHMucmVhc29uVHlwZS52YWx1ZS5mb3JFYWNoKFxuICAgICAgKHNlbGVjdGVkUmVhc29uOiBMaW5rQ2FzZVJlYXNvbikgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRSZWFzb24uc2VsZWN0ZWQpIHtcbiAgICAgICAgICBzZWxlY3RlZFJlYXNvbnMucHVzaCh7XG4gICAgICAgICAgICBSZWFzb246IHNlbGVjdGVkUmVhc29uLmtleSxcbiAgICAgICAgICAgIE90aGVyRGVzY3JpcHRpb246IHNlbGVjdGVkUmVhc29uLnZhbHVlX2VuID09PSAnT3RoZXInXG4gICAgICAgICAgICAgID8gdGhpcy5saW5rQ2FzZUZvcm0uY29udHJvbHMub3RoZXJEZXNjcmlwdGlvbi52YWx1ZVxuICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgfSBhcyBMaW5rUmVhc29uKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIHNlbGVjdGVkUmVhc29ucztcbiAgfVxuXG4gIHB1YmxpYyBnZXRTZWxlY3RlZENDRFR5cGVDYXNlUmVhc29uKCk6IExpbmtSZWFzb25bXSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRSZWFzb25zID0gW107XG4gICAgdGhpcy5saW5rQ2FzZUZvcm0uY29udHJvbHMucmVhc29uVHlwZS52YWx1ZS5mb3JFYWNoKFxuICAgICAgKHNlbGVjdGVkUmVhc29uOiBMaW5rQ2FzZVJlYXNvbikgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRSZWFzb24uc2VsZWN0ZWQpIHtcbiAgICAgICAgICBzZWxlY3RlZFJlYXNvbnMucHVzaCh7XG4gICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICBSZWFzb246IHNlbGVjdGVkUmVhc29uLmtleSxcbiAgICAgICAgICAgICAgT3RoZXJEZXNjcmlwdGlvbjogc2VsZWN0ZWRSZWFzb24udmFsdWVfZW4gPT09ICdPdGhlcidcbiAgICAgICAgICAgICAgICA/IHRoaXMubGlua0Nhc2VGb3JtLmNvbnRyb2xzLm90aGVyRGVzY3JpcHRpb24udmFsdWVcbiAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiBzZWxlY3RlZFJlYXNvbnM7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RlZExpbmtlZENhc2VSZW1vdmUocG9zLCBzZWxlY3RlZENhc2VSZWZlcmVuY2UpOiB2b2lkIHtcbiAgICBjb25zdCBjYXNlRmllbGRWYWx1ZSA9IHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlIHx8IFtdO1xuICAgIGNvbnN0IHVwZGF0ZWRJdGVtcyA9IGNhc2VGaWVsZFZhbHVlLmZpbHRlcihpdGVtID0+IGl0ZW0udmFsdWUgJiYgaXRlbS52YWx1ZS5DYXNlUmVmZXJlbmNlICE9PSBzZWxlY3RlZENhc2VSZWZlcmVuY2UpO1xuICAgIGlmICh1cGRhdGVkSXRlbXMpIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmNhc2VGaWVsZFZhbHVlID0gdXBkYXRlZEl0ZW1zO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuc3BsaWNlKHBvcywgMSk7XG4gIH1cblxuICBwdWJsaWMgb25OZXh0KCk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlcyA9IFtdO1xuICAgIHRoaXMuY2FzZVJlYXNvbkVycm9yID0gbnVsbDtcbiAgICB0aGlzLmNhc2VOdW1iZXJFcnJvciA9IG51bGw7XG4gICAgdGhpcy5jYXNlU2VsZWN0aW9uRXJyb3IgPSBudWxsO1xuICAgIHRoaXMubm9TZWxlY3RlZENhc2VFcnJvciA9IG51bGw7XG4gICAgbGV0IG5hdmlnYXRlVG9OZXh0UGFnZSA9IHRydWU7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXNlcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzID0gdGhpcy5zZWxlY3RlZENhc2VzO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5vU2VsZWN0ZWRDYXNlRXJyb3IgPSBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuQ2FzZVNlbGVjdGlvbkVycm9yO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJ2R1bW15LWNhc2Utc2VsZWN0aW9uJyxcbiAgICAgICAgZGVzY3JpcHRpb246IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5DYXNlU2VsZWN0aW9uRXJyb3IsXG4gICAgICAgIGZpZWxkSWQ6ICdjYXNlUmVhc29uJyxcbiAgICAgIH0pO1xuICAgICAgbmF2aWdhdGVUb05leHRQYWdlID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMuZW1pdExpbmtlZENhc2VzU3RhdGUobmF2aWdhdGVUb05leHRQYWdlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1mdWxsXCI+XG4gICAgPGRpdj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstY2FwdGlvbi1sXCI+TGluayBjYXNlcyB0byB7e2Nhc2VOYW1lfX0ge3tjYXNlSWQgfCBjY2RDYXNlUmVmZXJlbmNlfX08L3NwYW4+XG4gICAgICA8aDEgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLXhsXCI+U2VsZWN0IGEmbmJzcDtjYXNlIHlvdSB3YW50IHRvIGxpbmsgdG8gdGhpcyBjYXNlPC9oMT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW2Zvcm1Hcm91cF09XCJsaW5rQ2FzZUZvcm1cIiAqbmdJZj1cImxpbmtDYXNlRm9ybVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIGlkPVwiY2FzZU51bWJlclwiIFtuZ0NsYXNzXT1cInsnZ292dWstZm9ybS1ncm91cC0tZXJyb3InOiAhIWNhc2VOdW1iZXJFcnJvcn1cIj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLXNcIj5FbnRlciBjYXNlIHJlZmVyZW5jZTwvaDM+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJjYXNlTnVtYmVyRXJyb3JcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+RXJyb3I6PC9zcGFuPiB7e2Nhc2VOdW1iZXJFcnJvcn19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWlucHV0IGdvdnVrLWlucHV0LS13aWR0aC0yMFwiIGZvcm1Db250cm9sTmFtZT1cImNhc2VOdW1iZXJcIiBpZD1cIndpZHRoLTIwXCIgbmFtZT1cIndpZHRoLTIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnZ292dWstZm9ybS1ncm91cC0tZXJyb3InOiAhIWNhc2VSZWFzb25FcnJvcn1cIiBjbGFzcz1cImdvdnVrLSEtbWFyZ2luLXRvcC0zXCI+XG4gICAgICAgICAgPGgzIGNsYXNzPVwiZ292dWstaGVhZGluZy1zXCI+V2h5IHNob3VsZCB0aGVzZSBjYXNlcyBiZSBsaW5rZWQ/PC9oMz5cbiAgICAgICAgICA8ZGl2IGlkPVwid2FzdGUtaGludFwiIGNsYXNzPVwiZ292dWstaGludFwiPlxuICAgICAgICAgICAgU2VsZWN0IGFsbCB0aGF0IGFwcGx5LlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiY2FzZVJlYXNvbkVycm9yXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3tjYXNlUmVhc29uRXJyb3J9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc1wiIGRhdGEtbW9kdWxlPVwiZ292dWstY2hlY2tib3hlc1wiIGZvcm1BcnJheU5hbWU9XCJyZWFzb25UeXBlXCIgaWQ9XCJjYXNlUmVhc29uXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiICpuZ0Zvcj1cImxldCByZWFzb24gb2YgbGlua0Nhc2VSZWFzb25zO2luZGV4IGFzIHBvc1wiIFtmb3JtR3JvdXBOYW1lXT1cInBvc1wiPlxuICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIGlkPVwie3tyZWFzb24ua2V5fX1cIiBmb3JtQ29udHJvbE5hbWU9XCJzZWxlY3RlZFwiIG5hbWU9XCJwb3NcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIFt2YWx1ZV09XCJyZWFzb24udmFsdWVfZW5cIiAoY2hhbmdlKT1cInRvZ2dsZUxpbmtDYXNlUmVhc29uT3RoZXJDb21tZW50cygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwie3tyZWFzb24ua2V5fX1cIj57e3JlYXNvbi52YWx1ZV9lbn19PC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBpZD1cIm90aGVyLWRlc2NyaXB0aW9uLWNoYXItbGltaXQtZXJyb3JcIiBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogISFjYXNlUmVhc29uQ29tbWVudHNFcnJvcn1cIiBjbGFzcz1cImdvdnVrLSEtbWFyZ2luLXRvcC0zXCIgKm5nSWY9XCJzaG93Q29tbWVudHNcIj5cbiAgICAgICAgICA8aDMgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLXNcIj5Db21tZW50czwvaDM+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJjYXNlUmVhc29uQ29tbWVudHNFcnJvclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7Y2FzZVJlYXNvbkNvbW1lbnRzRXJyb3J9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJnb3Z1ay10ZXh0YXJlYSBnb3Z1ay1pbnB1dC0td2lkdGgtMzBcIiBpZD1cIm90aGVyRGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgbmFtZT1cIm90aGVyRGVzY3JpcHRpb25cIiBmb3JtQ29udHJvbE5hbWU9XCJvdGhlckRlc2NyaXB0aW9uXCIgcm93cz1cIjVcIlxuICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT1cIm90aGVyLWRlc2NyaXB0aW9uLWhpbnQgb3RoZXItZGVzY3JpcHRpb24tY2hhci1saW1pdC1pbmZvIG90aGVyLWRlc2NyaXB0aW9uLWNoYXItbGltaXQtZXJyb3JcIj5cbiAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICAgIDxkaXYgaWQ9XCJvdGhlci1kZXNjcmlwdGlvbi1jaGFyLWxpbWl0LWluZm9cIiBhcmlhLWxpdmU9XCJwb2xpdGVcIiBjbGFzcz1cImdvdnVrLWhpbnQgZ292dWstY2hhcmFjdGVyLWNvdW50X19tZXNzYWdlXCI+XG4gICAgICAgICAgICBZb3UgY2FuIGVudGVyIHVwIHRvIDEwMCBjaGFyYWN0ZXJzXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnI+PGJyPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImNhc2VTZWxlY3Rpb25FcnJvclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+RXJyb3I6PC9zcGFuPiB7e2Nhc2VTZWxlY3Rpb25FcnJvcn19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvbiBpZD1cInByb3Bvc2VcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstYnV0dG9uLS1zZWNvbmRhcnlcIiBkYXRhLW1vZHVsZT1cImdvdnVrLWJ1dHRvblwiXG4gICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdENhc2VJbmZvKClcIj5Qcm9wb3NlIGNhc2UgbGluazwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8aHI+XG4gICAgICA8YnI+PGJyPlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBpZD1cImNhc2VOdW1iZXJcIiBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogISFub1NlbGVjdGVkQ2FzZUVycm9yfVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLWVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cIm5vU2VsZWN0ZWRDYXNlRXJyb3JcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPkVycm9yOjwvc3Bhbj4ge3tub1NlbGVjdGVkQ2FzZUVycm9yfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8dGFibGUgY2xhc3M9XCJnb3Z1ay10YWJsZVwiPlxuICAgICAgICAgIDxjYXB0aW9uIGNsYXNzPVwiZ292dWstdGFibGVfX2NhcHRpb24gZ292dWstdGFibGVfX2NhcHRpb24tLW1cIj5Qcm9wb3NlZCBjYXNlIGxpbmtzIDwvY2FwdGlvbj5cbiAgICAgICAgICA8dGhlYWQgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZFwiPlxuICAgICAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiPlxuICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19oZWFkZXJcIiB3aWR0aD1cIjMwMFwiPkNhc2UgbmFtZSBhbmQgbnVtYmVyPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgd2lkdGg9XCIxNTBcIj5DYXNlIHR5cGUgPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgd2lkdGg9XCIyMDBcIj5TZXJ2aWNlPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgd2lkdGg9XCIyMDBcIj5TdGF0ZTwvdGg+XG4gICAgICAgICAgICAgIDx0aCBzY29wZT1cImNvbFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2hlYWRlclwiIHdpZHRoPVwiNDAwXCI+UmVhc29ucyBmb3IgY2FzZSBsaW5rPC90aD5cbiAgICAgICAgICAgICAgPHRoIHNjb3BlPVwiY29sXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9faGVhZGVyXCIgd2lkdGg9XCI1MFwiPjwvdGg+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgPHRib2R5IGNsYXNzPVwiZ292dWstdGFibGVfX2JvZHlcIj5cbiAgICAgICAgICAgIDx0ciBjbGFzcz1cImdvdnVrLXRhYmxlX19yb3dcIiAqbmdGb3I9XCJsZXQgY2FzZSBvZiBzZWxlY3RlZENhc2VzOyBsZXQgcG9zID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cC0tZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyd0YWJsZS1ncm91cC1lcnJvcic6Y2FzZVNlbGVjdGlvbkVycm9yICYmIGNhc2UuY2FzZVJlZmVyZW5jZSA9PT0gbGlua0Nhc2VGb3JtLnZhbHVlLmNhc2VOdW1iZXJ9XCI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3tjYXNlLmNhc2VOYW1lfX0gPGJyPiB7e2Nhc2UuY2FzZVJlZmVyZW5jZSB8IGNjZENhc2VSZWZlcmVuY2V9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIiBbdGl0bGVdPVwiY2FzZS5jYXNlVHlwZURlc2NyaXB0aW9uXCI+e3tjYXNlLmNhc2VUeXBlfX08L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiPnt7Y2FzZS5jYXNlU2VydmljZX19PC90ZD5cbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZ292dWstdGFibGVfX2NlbGxcIiBbdGl0bGVdPVwiY2FzZS5jYXNlU3RhdGVEZXNjcmlwdGlvblwiPnt7Y2FzZS5jYXNlU3RhdGV9fTwvdGQ+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCI+PHNwYW5cbiAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCByZWFzb24gb2YgY2FzZS5yZWFzb25zXCI+e3tyZWFzb24gfCBjY2RMaW5rQ2FzZXNSZWFzb25WYWx1ZX19PGJyPjwvc3Bhbj48L3RkPlxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2VsbFwiPjxhIFthdHRyLmlkXT1cImNhc2UuY2FzZVJlZmVyZW5jZVwiIChjbGljayk9XCJvblNlbGVjdGVkTGlua2VkQ2FzZVJlbW92ZShwb3MsIGNhc2UuY2FzZVJlZmVyZW5jZSk7XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZ292dWstbGluayBuby12aXNpdGVkLXN0YXRlXCI+UmVtb3ZlPC9hPjwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPHRyIGNsYXNzPVwiZ292dWstdGFibGVfX3Jvd1wiICpuZ0lmPVwiIXNlbGVjdGVkQ2FzZXMubGVuZ3RoXCI+XG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImdvdnVrLXRhYmxlX19jZWxsXCIgY29sc3Bhbj1cIjZcIj5cbiAgICAgICAgICAgICAgICBOb25lXG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L3RyPlxuICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1idXR0b24tZ3JvdXBcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiBpZD1cIm5leHQtYnV0dG9uXCIgKGNsaWNrKT1cIm9uTmV4dCgpXCI+TmV4dDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -101,7 +101,7 @@ export class UnLinkCasesComponent {
101
101
  }
102
102
  else {
103
103
  this.casesService.getCaseViewV2(this.caseId).subscribe((caseView) => {
104
- const linkedCasesTab = caseView.tabs.find((tab) => tab.id === UnLinkCasesComponent.LINKED_CASES_TAB_ID);
104
+ const linkedCasesTab = caseView.tabs.find(tab => tab.id === UnLinkCasesComponent.LINKED_CASES_TAB_ID);
105
105
  if (linkedCasesTab) {
106
106
  const linkedCases = linkedCasesTab.fields[0].value;
107
107
  this.linkedCases = linkedCases;
@@ -113,22 +113,22 @@ export class UnLinkCasesComponent {
113
113
  }
114
114
  getAllLinkedCaseInformation() {
115
115
  const searchCasesResponse = [];
116
- this.linkedCases.forEach((linkedCase) => {
116
+ this.linkedCases.forEach(linkedCase => {
117
117
  searchCasesResponse.push(this.casesService.getCaseViewV2(linkedCase.caseReference));
118
118
  });
119
119
  if (searchCasesResponse.length) {
120
120
  this.searchCasesByCaseIds(searchCasesResponse).subscribe((searchCases) => {
121
121
  searchCases.forEach((response) => {
122
- const linkedCaseFromList = this.linkedCases.find((linkedCase) => linkedCase.caseReference === response.case_id);
122
+ const linkedCaseFromList = this.linkedCases.find(linkedCase => linkedCase.caseReference === response.case_id);
123
123
  if (linkedCaseFromList) {
124
124
  const caseName = this.linkedCasesService.getCaseName(response);
125
- this.linkedCases.find((linkedCase) => linkedCase.caseReference === response.case_id).caseName = caseName;
125
+ this.linkedCases.find(linkedCase => linkedCase.caseReference === response.case_id).caseName = caseName;
126
126
  }
127
127
  });
128
128
  this.initForm();
129
129
  this.linkedCasesService.linkedCases = this.linkedCases;
130
130
  this.isServerError = false;
131
- }, (err) => {
131
+ }, err => {
132
132
  this.isServerError = true;
133
133
  this.notifyAPIFailure.emit(true);
134
134
  });
@@ -143,7 +143,7 @@ export class UnLinkCasesComponent {
143
143
  });
144
144
  }
145
145
  get getLinkedCasesFormArray() {
146
- const formFieldArray = this.linkedCases.map((val) => this.fb.group({
146
+ const formFieldArray = this.linkedCases.map(val => this.fb.group({
147
147
  caseReference: val.caseReference,
148
148
  reasons: val.reasons,
149
149
  createdDateTime: val.createdDateTime,
@@ -157,7 +157,7 @@ export class UnLinkCasesComponent {
157
157
  }
158
158
  onChange(caseSelected) {
159
159
  this.resetErrorMessages();
160
- const selectedCase = this.linkedCases.find((linkedCase) => linkedCase.caseReference === caseSelected.value);
160
+ const selectedCase = this.linkedCases.find(linkedCase => linkedCase.caseReference === caseSelected.value);
161
161
  if (selectedCase) {
162
162
  selectedCase.unlink = caseSelected.checked ? true : false;
163
163
  }
@@ -165,7 +165,7 @@ export class UnLinkCasesComponent {
165
165
  onNext() {
166
166
  this.resetErrorMessages();
167
167
  let navigateToNextPage = true;
168
- const casesMarkedToUnlink = this.linkedCases.find((linkedCase) => linkedCase.unlink && linkedCase.unlink === true);
168
+ const casesMarkedToUnlink = this.linkedCases.find(linkedCase => linkedCase.unlink && linkedCase.unlink === true);
169
169
  if (!casesMarkedToUnlink) {
170
170
  this.errorMessages.push({
171
171
  title: 'case-selection',
@@ -183,7 +183,7 @@ export class UnLinkCasesComponent {
183
183
  this.linkedCasesStateEmitter.emit({
184
184
  currentLinkedCasesPage: LinkedCasesPages.UNLINK_CASE,
185
185
  errorMessages: this.errorMessages,
186
- navigateToNextPage: isNavigateToNextPage
186
+ navigateToNextPage: isNavigateToNextPage,
187
187
  });
188
188
  }
189
189
  resetErrorMessages() {
@@ -206,4 +206,4 @@ export class UnLinkCasesComponent {
206
206
  type: Output
207
207
  }] }); })();
208
208
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UnLinkCasesComponent, { className: "UnLinkCasesComponent", filePath: "lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.ts", lineNumber: 14 }); })();
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5saW5rLWNhc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL3VubGluay1jYXNlcy91bmxpbmstY2FzZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvdW5saW5rLWNhc2VzL3VubGluay1jYXNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFhLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTlFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7SUNGakUsQUFERiw2QkFBa0YsZUFDNUM7SUFBQSxzQkFBTTtJQUFBLGlCQUFPO0lBQUMsWUFDcEQ7SUFBQSxpQkFBSTs7O0lBRGdELGVBQ3BEO0lBRG9ELDBEQUNwRDs7OztJQUdJLEFBREYsK0JBQXFFLGdCQUV1QztJQUFuQyxvTUFBVSw4QkFBdUIsS0FBQztJQUR6RyxpQkFDMEc7SUFDeEcsaUNBQWdGO0lBQzlFLFlBQ0o7O0lBQ0YsQUFERSxpQkFBUSxFQUNKOzs7SUFMbUMsY0FBMEM7SUFBMUMsNkVBQTBDO0lBQ2xDLEFBQTdCLDZDQUE0QiwyQkFBd0I7SUFDakIsY0FBNEI7SUFBNUIsc0RBQTRCO0lBQzdFLGNBQ0o7SUFESSxtR0FDSjs7O0lBVk4sOEJBQXlKO0lBQ3ZKLDZFQUFrRjtJQUdsRiw4QkFBNkQ7SUFDM0Qsa0ZBQXFFO0lBUXpFLEFBREUsaUJBQU0sRUFDRjs7O0lBYitGLEFBQTVELCtFQUEyRCxvQ0FBNkI7SUFDdkUsY0FBd0I7SUFBeEIsZ0RBQXdCO0lBSXpCLGVBQWM7SUFBZCw0Q0FBYzs7OztJQU52RSxBQURGLEFBREYsOEJBQTJELGFBQ3JCLFlBQ0w7SUFBQSxrRUFBa0Q7SUFBQSxpQkFBSztJQUNwRiwyRUFBeUo7SUFldkosQUFERiw4QkFBZ0MsZ0JBQzBEO0lBQW5CLGdMQUFTLGVBQVEsS0FBQztJQUFDLG9CQUFJO0lBR2xHLEFBREUsQUFERSxBQUQ4RixpQkFBUyxFQUNqRyxFQUNGLEVBQ0Y7OztJQWxCaUksZUFBb0I7SUFBcEIsNENBQW9COztBRFUzSixNQUFNLE9BQU8sb0JBQW9CO0lBbUJGO0lBQ1Y7SUFDQTtJQW5CWCxNQUFNLENBQVUsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7SUFDMUQsTUFBTSxDQUFVLHNCQUFzQixHQUFHLG1CQUFtQixDQUFDO0lBRzlELHVCQUF1QixHQUFtQyxJQUFJLFlBQVksRUFBb0IsQ0FBQztJQUcvRixnQkFBZ0IsR0FBMEIsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFbEUsY0FBYyxDQUFZO0lBQzFCLE1BQU0sQ0FBUztJQUNmLFdBQVcsR0FBZSxFQUFFLENBQUM7SUFDN0IsYUFBYSxHQUFtQixFQUFFLENBQUM7SUFDbkMsa0JBQWtCLENBQVM7SUFDM0IsUUFBUSxDQUFVO0lBQ2xCLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFFN0IsWUFBNkIsRUFBZSxFQUN6QixZQUEwQixFQUMxQixrQkFBc0M7UUFGNUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUN6QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQ3pELENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztRQUM3QyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQztZQUN2RCxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUNyQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFrQixFQUFFLEVBQUU7Z0JBQzVFLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLENBQUM7Z0JBQ3hHLElBQUksY0FBYyxFQUFFLENBQUM7b0JBQ25CLE1BQU0sV0FBVyxHQUFlLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO29CQUMvRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztvQkFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7b0JBQ2xELElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO2dCQUNyQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVNLDJCQUEyQjtRQUNoQyxNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3RDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUN0RixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLG9CQUFvQixDQUFDLG1CQUFtQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBZ0IsRUFBRSxFQUFFO2dCQUM1RSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFFO29CQUN6QyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxLQUFLLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDaEgsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO3dCQUN2QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUMvRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsS0FBSyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztvQkFDM0csQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDdkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDN0IsQ0FBQyxFQUNELENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVNLG9CQUFvQixDQUFDLG1CQUEwQjtRQUNwRCxPQUFPLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNsQyxXQUFXLEVBQUUsSUFBSSxDQUFDLHVCQUF1QjtTQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBVyx1QkFBdUI7UUFDaEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ2pFLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYTtZQUNoQyxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87WUFDcEIsZUFBZSxFQUFFLEdBQUcsQ0FBQyxlQUFlO1lBQ3BDLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtZQUN0QixTQUFTLEVBQUUsR0FBRyxDQUFDLFNBQVM7WUFDeEIsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXO1lBQzVCLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxJQUFJLG9CQUFvQixDQUFDLHNCQUFzQjtZQUNyRSxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07U0FDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxRQUFRLENBQUMsWUFBaUI7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDMUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEtBQUssWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVHLElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsWUFBWSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUM5QixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDbkgsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RCLEtBQUssRUFBRSxnQkFBZ0I7Z0JBQ3ZCLFdBQVcsRUFBRSx3QkFBd0IsQ0FBQyx3QkFBd0I7Z0JBQzlELE9BQU8sRUFBRSxrQkFBa0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQUU7YUFDL0QsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHdCQUF3QixDQUFDLHdCQUF3QixDQUFDO1lBQzVFLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUM3QixDQUFDO1FBQ0QsNkRBQTZEO1FBQzdELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCw2REFBNkQ7SUFDdEQsb0JBQW9CLENBQUMsb0JBQTZCO1FBQ3ZELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUM7WUFDaEMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUMsV0FBVztZQUNwRCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7WUFDakMsa0JBQWtCLEVBQUUsb0JBQW9CO1NBQ3pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztJQUNqQyxDQUFDOzhFQXBJVSxvQkFBb0I7NkRBQXBCLG9CQUFvQjtZQ2JqQyxxRUFBMkQ7O1lBQTlCLGlEQUE0Qjs7O2lGRGE1QyxvQkFBb0I7Y0FKaEMsU0FBUzsyQkFDRSxrQkFBa0I7d0dBU3JCLHVCQUF1QjtrQkFEN0IsTUFBTTtZQUlBLGdCQUFnQjtrQkFEdEIsTUFBTTs7a0ZBUkksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ2FzZVZpZXcsIEVycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlcy5zZXJ2aWNlJztcbmltcG9ydCB7IENhc2VMaW5rLCBMaW5rZWRDYXNlc1N0YXRlIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcywgTGlua2VkQ2FzZXNQYWdlcyB9IGZyb20gJy4uLy4uL2VudW1zL3dyaXRlLWxpbmtlZC1jYXNlcy1maWVsZC5lbnVtJztcbmltcG9ydCB7IExpbmtlZENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpbmtlZC1jYXNlcy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXVubGluay1jYXNlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi91bmxpbmstY2FzZXMuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVuTGlua0Nhc2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBMSU5LRURfQ0FTRVNfVEFCX0lEID0gJ2xpbmtlZF9jYXNlc19zc2NzJztcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQ0FTRV9OQU1FX01JU1NJTkdfVEVYVCA9ICdDYXNlIG5hbWUgbWlzc2luZyc7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBsaW5rZWRDYXNlc1N0YXRlRW1pdHRlcjogRXZlbnRFbWl0dGVyPExpbmtlZENhc2VzU3RhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxMaW5rZWRDYXNlc1N0YXRlPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgbm90aWZ5QVBJRmFpbHVyZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcihmYWxzZSk7XG5cbiAgcHVibGljIHVubGlua0Nhc2VGb3JtOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBjYXNlSWQ6IHN0cmluZztcbiAgcHVibGljIGxpbmtlZENhc2VzOiBDYXNlTGlua1tdID0gW107XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgdW5saW5rRXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIHB1YmxpYyBpc0xvYWRlZDogYm9vbGVhbjtcbiAgcHVibGljIGlzU2VydmVyRXJyb3IgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VzU2VydmljZTogQ2FzZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldExpbmtlZENhc2VzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlua2VkQ2FzZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlSWQgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWQ7XG4gICAgaWYgKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXMgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcztcbiAgICAgIHRoaXMuZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FzZXNTZXJ2aWNlLmdldENhc2VWaWV3VjIodGhpcy5jYXNlSWQpLnN1YnNjcmliZSgoY2FzZVZpZXc6IENhc2VWaWV3KSA9PiB7XG4gICAgICAgIGNvbnN0IGxpbmtlZENhc2VzVGFiID0gY2FzZVZpZXcudGFicy5maW5kKCh0YWIpID0+IHRhYi5pZCA9PT0gVW5MaW5rQ2FzZXNDb21wb25lbnQuTElOS0VEX0NBU0VTX1RBQl9JRCk7XG4gICAgICAgIGlmIChsaW5rZWRDYXNlc1RhYikge1xuICAgICAgICAgIGNvbnN0IGxpbmtlZENhc2VzOiBDYXNlTGlua1tdID0gbGlua2VkQ2FzZXNUYWIuZmllbGRzWzBdLnZhbHVlO1xuICAgICAgICAgIHRoaXMubGlua2VkQ2FzZXMgPSBsaW5rZWRDYXNlcztcbiAgICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcyA9IGxpbmtlZENhc2VzO1xuICAgICAgICAgIHRoaXMuZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRBbGxMaW5rZWRDYXNlSW5mb3JtYXRpb24oKTogdm9pZCB7XG4gICAgY29uc3Qgc2VhcmNoQ2FzZXNSZXNwb25zZSA9IFtdO1xuICAgIHRoaXMubGlua2VkQ2FzZXMuZm9yRWFjaCgobGlua2VkQ2FzZSkgPT4ge1xuICAgICAgc2VhcmNoQ2FzZXNSZXNwb25zZS5wdXNoKHRoaXMuY2FzZXNTZXJ2aWNlLmdldENhc2VWaWV3VjIobGlua2VkQ2FzZS5jYXNlUmVmZXJlbmNlKSk7XG4gICAgfSk7XG4gICAgaWYgKHNlYXJjaENhc2VzUmVzcG9uc2UubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNlYXJjaENhc2VzQnlDYXNlSWRzKHNlYXJjaENhc2VzUmVzcG9uc2UpLnN1YnNjcmliZSgoc2VhcmNoQ2FzZXM6IGFueSkgPT4ge1xuICAgICAgICBzZWFyY2hDYXNlcy5mb3JFYWNoKChyZXNwb25zZTogQ2FzZVZpZXcpID0+IHtcbiAgICAgICAgICBjb25zdCBsaW5rZWRDYXNlRnJvbUxpc3QgPSB0aGlzLmxpbmtlZENhc2VzLmZpbmQoKGxpbmtlZENhc2UpID0+IGxpbmtlZENhc2UuY2FzZVJlZmVyZW5jZSA9PT0gcmVzcG9uc2UuY2FzZV9pZCk7XG4gICAgICAgICAgaWYgKGxpbmtlZENhc2VGcm9tTGlzdCkge1xuICAgICAgICAgICAgY29uc3QgY2FzZU5hbWUgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5nZXRDYXNlTmFtZShyZXNwb25zZSk7XG4gICAgICAgICAgICB0aGlzLmxpbmtlZENhc2VzLmZpbmQoKGxpbmtlZENhc2UpID0+IGxpbmtlZENhc2UuY2FzZVJlZmVyZW5jZSA9PT0gcmVzcG9uc2UuY2FzZV9pZCkuY2FzZU5hbWUgPSBjYXNlTmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmluaXRGb3JtKCk7XG4gICAgICAgIHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzID0gdGhpcy5saW5rZWRDYXNlcztcbiAgICAgICAgdGhpcy5pc1NlcnZlckVycm9yID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgKGVycikgPT4ge1xuICAgICAgICB0aGlzLmlzU2VydmVyRXJyb3IgPSB0cnVlO1xuICAgICAgICB0aGlzLm5vdGlmeUFQSUZhaWx1cmUuZW1pdCh0cnVlKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hDYXNlc0J5Q2FzZUlkcyhzZWFyY2hDYXNlc1Jlc3BvbnNlOiBhbnlbXSk6IE9ic2VydmFibGU8dW5rbm93bltdPiB7XG4gICAgcmV0dXJuIGZvcmtKb2luKHNlYXJjaENhc2VzUmVzcG9uc2UpO1xuICB9XG5cbiAgcHVibGljIGluaXRGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMudW5saW5rQ2FzZUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGxpbmtlZENhc2VzOiB0aGlzLmdldExpbmtlZENhc2VzRm9ybUFycmF5XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGdldExpbmtlZENhc2VzRm9ybUFycmF5KCk6IEZvcm1BcnJheSB7XG4gICAgY29uc3QgZm9ybUZpZWxkQXJyYXkgPSB0aGlzLmxpbmtlZENhc2VzLm1hcCgodmFsKSA9PiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGNhc2VSZWZlcmVuY2U6IHZhbC5jYXNlUmVmZXJlbmNlLFxuICAgICAgcmVhc29uczogdmFsLnJlYXNvbnMsXG4gICAgICBjcmVhdGVkRGF0ZVRpbWU6IHZhbC5jcmVhdGVkRGF0ZVRpbWUsXG4gICAgICBjYXNlVHlwZTogdmFsLmNhc2VUeXBlLFxuICAgICAgY2FzZVN0YXRlOiB2YWwuY2FzZVN0YXRlLFxuICAgICAgY2FzZVNlcnZpY2U6IHZhbC5jYXNlU2VydmljZSxcbiAgICAgIGNhc2VOYW1lOiB2YWwuY2FzZU5hbWUgfHwgVW5MaW5rQ2FzZXNDb21wb25lbnQuQ0FTRV9OQU1FX01JU1NJTkdfVEVYVCxcbiAgICAgIHVubGluazogdmFsLnVubGlua1xuICAgIH0pKTtcbiAgICByZXR1cm4gdGhpcy5mYi5hcnJheShmb3JtRmllbGRBcnJheSk7XG4gIH1cblxuICBwdWJsaWMgb25DaGFuZ2UoY2FzZVNlbGVjdGVkOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0RXJyb3JNZXNzYWdlcygpO1xuICAgIGNvbnN0IHNlbGVjdGVkQ2FzZSA9IHRoaXMubGlua2VkQ2FzZXMuZmluZCgobGlua2VkQ2FzZSkgPT4gbGlua2VkQ2FzZS5jYXNlUmVmZXJlbmNlID09PSBjYXNlU2VsZWN0ZWQudmFsdWUpO1xuICAgIGlmIChzZWxlY3RlZENhc2UpIHtcbiAgICAgIHNlbGVjdGVkQ2FzZS51bmxpbmsgPSBjYXNlU2VsZWN0ZWQuY2hlY2tlZCA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25OZXh0KCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRFcnJvck1lc3NhZ2VzKCk7XG4gICAgbGV0IG5hdmlnYXRlVG9OZXh0UGFnZSA9IHRydWU7XG4gICAgY29uc3QgY2FzZXNNYXJrZWRUb1VubGluayA9IHRoaXMubGlua2VkQ2FzZXMuZmluZCgobGlua2VkQ2FzZSkgPT4gbGlua2VkQ2FzZS51bmxpbmsgJiYgbGlua2VkQ2FzZS51bmxpbmsgPT09IHRydWUpO1xuICAgIGlmICghY2FzZXNNYXJrZWRUb1VubGluaykge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJ2Nhc2Utc2VsZWN0aW9uJyxcbiAgICAgICAgZGVzY3JpcHRpb246IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5VbmxpbmtDYXNlU2VsZWN0aW9uRXJyb3IsXG4gICAgICAgIGZpZWxkSWQ6IGBjYXNlLXJlZmVyZW5jZS0ke3RoaXMubGlua2VkQ2FzZXNbMF0uY2FzZVJlZmVyZW5jZX1gXG4gICAgICB9KTtcbiAgICAgIHRoaXMudW5saW5rRXJyb3JNZXNzYWdlID0gTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLlVubGlua0Nhc2VTZWxlY3Rpb25FcnJvcjtcbiAgICAgIG5hdmlnYXRlVG9OZXh0UGFnZSA9IGZhbHNlO1xuICAgIH1cbiAgICAvLyBSZXR1cm4gbGlua2VkIGNhc2VzIHN0YXRlIGFuZCBlcnJvciBtZXNzYWdlcyB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5lbWl0TGlua2VkQ2FzZXNTdGF0ZShuYXZpZ2F0ZVRvTmV4dFBhZ2UpO1xuICB9XG5cbiAgLy8gUmV0dXJuIGxpbmtlZCBjYXNlcyBzdGF0ZSBhbmQgZXJyb3IgbWVzc2FnZXMgdG8gdGhlIHBhcmVudFxuICBwdWJsaWMgZW1pdExpbmtlZENhc2VzU3RhdGUoaXNOYXZpZ2F0ZVRvTmV4dFBhZ2U6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmxpbmtlZENhc2VzU3RhdGVFbWl0dGVyLmVtaXQoe1xuICAgICAgY3VycmVudExpbmtlZENhc2VzUGFnZTogTGlua2VkQ2FzZXNQYWdlcy5VTkxJTktfQ0FTRSxcbiAgICAgIGVycm9yTWVzc2FnZXM6IHRoaXMuZXJyb3JNZXNzYWdlcyxcbiAgICAgIG5hdmlnYXRlVG9OZXh0UGFnZTogaXNOYXZpZ2F0ZVRvTmV4dFBhZ2VcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldEVycm9yTWVzc2FnZXMoKTogdm9pZCB7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgdGhpcy51bmxpbmtFcnJvck1lc3NhZ2UgPSBudWxsO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIiAqbmdJZj1cImxpbmtlZENhc2VzLmxlbmd0aCA+IDBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLWZ1bGxcIj5cbiAgICA8aDEgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLXhsXCI+U2VsZWN0IHRoZSBjYXNlcyB5b3Ugd2FudCB0byB1bmxpbmsgZnJvbSB0aGlzIGNhc2U8L2gxPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1mb3JtLWdyb3VwIGZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2dvdnVrLWZvcm0tZ3JvdXAtLWVycm9yJzogdW5saW5rRXJyb3JNZXNzYWdlfVwiIFtmb3JtR3JvdXBdPVwidW5saW5rQ2FzZUZvcm1cIiAqbmdJZj1cInVubGlua0Nhc2VGb3JtXCI+XG4gICAgICA8cCBpZD1cInVubGluay1jYXNlcy1lcnJvclwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwidW5saW5rRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+RXJyb3I6PC9zcGFuPiB7e3VubGlua0Vycm9yTWVzc2FnZX19XG4gICAgICA8L3A+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc1wiIGRhdGEtbW9kdWxlPVwiZ292dWstY2hlY2tib3hlc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiICpuZ0Zvcj1cImxldCBjYXNlIG9mIGxpbmtlZENhc2VzXCI+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cImNhc2UtcmVmZXJlbmNlLXt7Y2FzZS5jYXNlUmVmZXJlbmNlfX1cIiBmb3JtQXJyYXlOYW1lPVwibGlua2VkQ2FzZXNcIiBuYW1lPVwibGlua2VkQ2FzZXNcIlxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgW3ZhbHVlXT1cImNhc2UuY2FzZVJlZmVyZW5jZVwiIFtjaGVja2VkXT1cImNhc2UudW5saW5rXCIgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQudGFyZ2V0KVwiPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIiBmb3I9XCJ7e2Nhc2UuY2FzZVJlZmVyZW5jZX19XCI+XG4gICAgICAgICAgICAgIHt7Y2FzZS5jYXNlTmFtZSB9fSB7e2Nhc2UuY2FzZVJlZmVyZW5jZSB8IGNjZENhc2VSZWZlcmVuY2V9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWJ1dHRvbi1ncm91cFwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiBpZD1cIm5leHQtYnV0dG9uXCIgKGNsaWNrKT1cIm9uTmV4dCgpXCI+TmV4dDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5saW5rLWNhc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2xpbmtlZC1jYXNlcy9jb21wb25lbnRzL3VubGluay1jYXNlcy91bmxpbmstY2FzZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbGlua2VkLWNhc2VzL2NvbXBvbmVudHMvdW5saW5rLWNhc2VzL3VubGluay1jYXNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFhLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFFNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRTlFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7SUNGakUsQUFERiw2QkFBa0YsZUFDNUM7SUFBQSxzQkFBTTtJQUFBLGlCQUFPO0lBQUMsWUFDcEQ7SUFBQSxpQkFBSTs7O0lBRGdELGVBQ3BEO0lBRG9ELDBEQUNwRDs7OztJQUdJLEFBREYsK0JBQXFFLGdCQUV1QztJQUFuQyxvTUFBVSw4QkFBdUIsS0FBQztJQUR6RyxpQkFDMEc7SUFDeEcsaUNBQWdGO0lBQzlFLFlBQ0o7O0lB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O0lBQ0wsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0lBQ2pDLENBQUM7OEVBbklVLG9CQUFvQjs2REFBcEIsb0JBQW9CO1lDYmpDLHFFQUEyRDs7WUFBOUIsaURBQTRCOzs7aUZEYTVDLG9CQUFvQjtjQUpoQyxTQUFTOzJCQUNFLGtCQUFrQjt3R0FTckIsdUJBQXVCO2tCQUQ3QixNQUFNO1lBR0EsZ0JBQWdCO2tCQUR0QixNQUFNOztrRkFQSSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXNlVmlldywgRXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Nhc2UtZWRpdG9yL3NlcnZpY2VzL2Nhc2VzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FzZUxpbmssIExpbmtlZENhc2VzU3RhdGUgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNFcnJvck1lc3NhZ2VzLCBMaW5rZWRDYXNlc1BhZ2VzIH0gZnJvbSAnLi4vLi4vZW51bXMvd3JpdGUtbGlua2VkLWNhc2VzLWZpZWxkLmVudW0nO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGlua2VkLWNhc2VzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtdW5saW5rLWNhc2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VubGluay1jYXNlcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVW5MaW5rQ2FzZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IExJTktFRF9DQVNFU19UQUJfSUQgPSAnbGlua2VkX2Nhc2VzX3NzY3MnO1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDQVNFX05BTUVfTUlTU0lOR19URVhUID0gJ0Nhc2UgbmFtZSBtaXNzaW5nJztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGxpbmtlZENhc2VzU3RhdGVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8TGlua2VkQ2FzZXNTdGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPExpbmtlZENhc2VzU3RhdGU+KCk7XG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgbm90aWZ5QVBJRmFpbHVyZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcihmYWxzZSk7XG5cbiAgcHVibGljIHVubGlua0Nhc2VGb3JtOiBGb3JtR3JvdXA7XG4gIHB1YmxpYyBjYXNlSWQ6IHN0cmluZztcbiAgcHVibGljIGxpbmtlZENhc2VzOiBDYXNlTGlua1tdID0gW107XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgdW5saW5rRXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIHB1YmxpYyBpc0xvYWRlZDogYm9vbGVhbjtcbiAgcHVibGljIGlzU2VydmVyRXJyb3IgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VzU2VydmljZTogQ2FzZXNTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGlua2VkQ2FzZXNTZXJ2aWNlOiBMaW5rZWRDYXNlc1NlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmdldExpbmtlZENhc2VzKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlua2VkQ2FzZXMoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlSWQgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5jYXNlSWQ7XG4gICAgaWYgKHRoaXMubGlua2VkQ2FzZXNTZXJ2aWNlLmxpbmtlZENhc2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMubGlua2VkQ2FzZXMgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcztcbiAgICAgIHRoaXMuZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FzZXNTZXJ2aWNlLmdldENhc2VWaWV3VjIodGhpcy5jYXNlSWQpLnN1YnNjcmliZSgoY2FzZVZpZXc6IENhc2VWaWV3KSA9PiB7XG4gICAgICAgIGNvbnN0IGxpbmtlZENhc2VzVGFiID0gY2FzZVZpZXcudGFicy5maW5kKHRhYiA9PiB0YWIuaWQgPT09IFVuTGlua0Nhc2VzQ29tcG9uZW50LkxJTktFRF9DQVNFU19UQUJfSUQpO1xuICAgICAgICBpZiAobGlua2VkQ2FzZXNUYWIpIHtcbiAgICAgICAgICBjb25zdCBsaW5rZWRDYXNlczogQ2FzZUxpbmtbXSA9IGxpbmtlZENhc2VzVGFiLmZpZWxkc1swXS52YWx1ZTtcbiAgICAgICAgICB0aGlzLmxpbmtlZENhc2VzID0gbGlua2VkQ2FzZXM7XG4gICAgICAgICAgdGhpcy5saW5rZWRDYXNlc1NlcnZpY2UubGlua2VkQ2FzZXMgPSBsaW5rZWRDYXNlcztcbiAgICAgICAgICB0aGlzLmdldEFsbExpbmtlZENhc2VJbmZvcm1hdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0QWxsTGlua2VkQ2FzZUluZm9ybWF0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IHNlYXJjaENhc2VzUmVzcG9uc2UgPSBbXTtcbiAgICB0aGlzLmxpbmtlZENhc2VzLmZvckVhY2gobGlua2VkQ2FzZSA9PiB7XG4gICAgICBzZWFyY2hDYXNlc1Jlc3BvbnNlLnB1c2godGhpcy5jYXNlc1NlcnZpY2UuZ2V0Q2FzZVZpZXdWMihsaW5rZWRDYXNlLmNhc2VSZWZlcmVuY2UpKTtcbiAgICB9KTtcbiAgICBpZiAoc2VhcmNoQ2FzZXNSZXNwb25zZS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2VhcmNoQ2FzZXNCeUNhc2VJZHMoc2VhcmNoQ2FzZXNSZXNwb25zZSkuc3Vic2NyaWJlKChzZWFyY2hDYXNlczogYW55KSA9PiB7XG4gICAgICAgIHNlYXJjaENhc2VzLmZvckVhY2goKHJlc3BvbnNlOiBDYXNlVmlldykgPT4ge1xuICAgICAgICAgIGNvbnN0IGxpbmtlZENhc2VGcm9tTGlzdCA9IHRoaXMubGlua2VkQ2FzZXMuZmluZChsaW5rZWRDYXNlID0+IGxpbmtlZENhc2UuY2FzZVJlZmVyZW5jZSA9PT0gcmVzcG9uc2UuY2FzZV9pZCk7XG4gICAgICAgICAgaWYgKGxpbmtlZENhc2VGcm9tTGlzdCkge1xuICAgICAgICAgICAgY29uc3QgY2FzZU5hbWUgPSB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5nZXRDYXNlTmFtZShyZXNwb25zZSk7XG4gICAgICAgICAgICB0aGlzLmxpbmtlZENhc2VzLmZpbmQobGlua2VkQ2FzZSA9PiBsaW5rZWRDYXNlLmNhc2VSZWZlcmVuY2UgPT09IHJlc3BvbnNlLmNhc2VfaWQpLmNhc2VOYW1lID0gY2FzZU5hbWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pbml0Rm9ybSgpO1xuICAgICAgICB0aGlzLmxpbmtlZENhc2VzU2VydmljZS5saW5rZWRDYXNlcyA9IHRoaXMubGlua2VkQ2FzZXM7XG4gICAgICAgIHRoaXMuaXNTZXJ2ZXJFcnJvciA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgICAgZXJyID0+IHtcbiAgICAgICAgICB0aGlzLmlzU2VydmVyRXJyb3IgPSB0cnVlO1xuICAgICAgICAgIHRoaXMubm90aWZ5QVBJRmFpbHVyZS5lbWl0KHRydWUpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoQ2FzZXNCeUNhc2VJZHMoc2VhcmNoQ2FzZXNSZXNwb25zZTogYW55W10pOiBPYnNlcnZhYmxlPHVua25vd25bXT4ge1xuICAgIHJldHVybiBmb3JrSm9pbihzZWFyY2hDYXNlc1Jlc3BvbnNlKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0Rm9ybSgpOiB2b2lkIHtcbiAgICB0aGlzLnVubGlua0Nhc2VGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBsaW5rZWRDYXNlczogdGhpcy5nZXRMaW5rZWRDYXNlc0Zvcm1BcnJheVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBnZXRMaW5rZWRDYXNlc0Zvcm1BcnJheSgpOiBGb3JtQXJyYXkge1xuICAgIGNvbnN0IGZvcm1GaWVsZEFycmF5ID0gdGhpcy5saW5rZWRDYXNlcy5tYXAodmFsID0+IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgY2FzZVJlZmVyZW5jZTogdmFsLmNhc2VSZWZlcmVuY2UsXG4gICAgICByZWFzb25zOiB2YWwucmVhc29ucyxcbiAgICAgIGNyZWF0ZWREYXRlVGltZTogdmFsLmNyZWF0ZWREYXRlVGltZSxcbiAgICAgIGNhc2VUeXBlOiB2YWwuY2FzZVR5cGUsXG4gICAgICBjYXNlU3RhdGU6IHZhbC5jYXNlU3RhdGUsXG4gICAgICBjYXNlU2VydmljZTogdmFsLmNhc2VTZXJ2aWNlLFxuICAgICAgY2FzZU5hbWU6IHZhbC5jYXNlTmFtZSB8fCBVbkxpbmtDYXNlc0NvbXBvbmVudC5DQVNFX05BTUVfTUlTU0lOR19URVhULFxuICAgICAgdW5saW5rOiB2YWwudW5saW5rXG4gICAgfSkpO1xuICAgIHJldHVybiB0aGlzLmZiLmFycmF5KGZvcm1GaWVsZEFycmF5KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoYW5nZShjYXNlU2VsZWN0ZWQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRFcnJvck1lc3NhZ2VzKCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRDYXNlID0gdGhpcy5saW5rZWRDYXNlcy5maW5kKGxpbmtlZENhc2UgPT4gbGlua2VkQ2FzZS5jYXNlUmVmZXJlbmNlID09PSBjYXNlU2VsZWN0ZWQudmFsdWUpO1xuICAgIGlmIChzZWxlY3RlZENhc2UpIHtcbiAgICAgIHNlbGVjdGVkQ2FzZS51bmxpbmsgPSBjYXNlU2VsZWN0ZWQuY2hlY2tlZCA/IHRydWUgOiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25OZXh0KCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRFcnJvck1lc3NhZ2VzKCk7XG4gICAgbGV0IG5hdmlnYXRlVG9OZXh0UGFnZSA9IHRydWU7XG4gICAgY29uc3QgY2FzZXNNYXJrZWRUb1VubGluayA9IHRoaXMubGlua2VkQ2FzZXMuZmluZChsaW5rZWRDYXNlID0+IGxpbmtlZENhc2UudW5saW5rICYmIGxpbmtlZENhc2UudW5saW5rID09PSB0cnVlKTtcbiAgICBpZiAoIWNhc2VzTWFya2VkVG9VbmxpbmspIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICdjYXNlLXNlbGVjdGlvbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBMaW5rZWRDYXNlc0Vycm9yTWVzc2FnZXMuVW5saW5rQ2FzZVNlbGVjdGlvbkVycm9yLFxuICAgICAgICBmaWVsZElkOiBgY2FzZS1yZWZlcmVuY2UtJHt0aGlzLmxpbmtlZENhc2VzWzBdLmNhc2VSZWZlcmVuY2V9YFxuICAgICAgfSk7XG4gICAgICB0aGlzLnVubGlua0Vycm9yTWVzc2FnZSA9IExpbmtlZENhc2VzRXJyb3JNZXNzYWdlcy5VbmxpbmtDYXNlU2VsZWN0aW9uRXJyb3I7XG4gICAgICBuYXZpZ2F0ZVRvTmV4dFBhZ2UgPSBmYWxzZTtcbiAgICB9XG4gICAgLy8gUmV0dXJuIGxpbmtlZCBjYXNlcyBzdGF0ZSBhbmQgZXJyb3IgbWVzc2FnZXMgdG8gdGhlIHBhcmVudFxuICAgIHRoaXMuZW1pdExpbmtlZENhc2VzU3RhdGUobmF2aWdhdGVUb05leHRQYWdlKTtcbiAgfVxuXG4gIC8vIFJldHVybiBsaW5rZWQgY2FzZXMgc3RhdGUgYW5kIGVycm9yIG1lc3NhZ2VzIHRvIHRoZSBwYXJlbnRcbiAgcHVibGljIGVtaXRMaW5rZWRDYXNlc1N0YXRlKGlzTmF2aWdhdGVUb05leHRQYWdlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5saW5rZWRDYXNlc1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRMaW5rZWRDYXNlc1BhZ2U6IExpbmtlZENhc2VzUGFnZXMuVU5MSU5LX0NBU0UsXG4gICAgICBlcnJvck1lc3NhZ2VzOiB0aGlzLmVycm9yTWVzc2FnZXMsXG4gICAgICBuYXZpZ2F0ZVRvTmV4dFBhZ2U6IGlzTmF2aWdhdGVUb05leHRQYWdlLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlc2V0RXJyb3JNZXNzYWdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcbiAgICB0aGlzLnVubGlua0Vycm9yTWVzc2FnZSA9IG51bGw7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiICpuZ0lmPVwibGlua2VkQ2FzZXMubGVuZ3RoID4gMFwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tZnVsbFwiPlxuICAgIDxoMSBjbGFzcz1cImdvdnVrLWhlYWRpbmcteGxcIj5TZWxlY3QgdGhlIGNhc2VzIHlvdSB3YW50IHRvIHVubGluayBmcm9tIHRoaXMgY2FzZTwvaDE+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXAgZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZ292dWstZm9ybS1ncm91cC0tZXJyb3InOiB1bmxpbmtFcnJvck1lc3NhZ2V9XCIgW2Zvcm1Hcm91cF09XCJ1bmxpbmtDYXNlRm9ybVwiICpuZ0lmPVwidW5saW5rQ2FzZUZvcm1cIj5cbiAgICAgIDxwIGlkPVwidW5saW5rLWNhc2VzLWVycm9yXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJ1bmxpbmtFcnJvck1lc3NhZ2VcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay12aXN1YWxseS1oaWRkZW5cIj5FcnJvcjo8L3NwYW4+IHt7dW5saW5rRXJyb3JNZXNzYWdlfX1cbiAgICAgIDwvcD5cbiAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1jaGVja2JveGVzXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCIgKm5nRm9yPVwibGV0IGNhc2Ugb2YgbGlua2VkQ2FzZXNcIj5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIGlkPVwiY2FzZS1yZWZlcmVuY2Ute3tjYXNlLmNhc2VSZWZlcmVuY2V9fVwiIGZvcm1BcnJheU5hbWU9XCJsaW5rZWRDYXNlc1wiIG5hbWU9XCJsaW5rZWRDYXNlc1wiXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBbdmFsdWVdPVwiY2FzZS5jYXNlUmVmZXJlbmNlXCIgW2NoZWNrZWRdPVwiY2FzZS51bmxpbmtcIiAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudC50YXJnZXQpXCI+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiIGZvcj1cInt7Y2FzZS5jYXNlUmVmZXJlbmNlfX1cIj5cbiAgICAgICAgICAgICAge3tjYXNlLmNhc2VOYW1lIH19IHt7Y2FzZS5jYXNlUmVmZXJlbmNlIHwgY2NkQ2FzZVJlZmVyZW5jZX19XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLWdyb3VwXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIGlkPVwibmV4dC1idXR0b25cIiAoY2xpY2spPVwib25OZXh0KClcIj5OZXh0PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=