@hmcts/ccd-case-ui-toolkit 7.1.56-srt-rc5 → 7.1.56-srt-rc6

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.
@@ -87,12 +87,6 @@ export class CaseEditComponent {
87
87
  this.cookieService = cookieService;
88
88
  }
89
89
  ngOnInit() {
90
- this.initializeComponent();
91
- this.route.queryParams.subscribe((params) => {
92
- this.navigationOrigin = params[CaseEditComponent.ORIGIN_QUERY_PARAM];
93
- });
94
- }
95
- initializeComponent() {
96
90
  this.wizard = this.wizardFactory.create(this.eventTrigger);
97
91
  this.initialUrl = this.sessionStorageService.getItem('eventUrl');
98
92
  this.isPageRefreshed = JSON.parse(this.sessionStorageService.getItem('isPageRefreshed'));
@@ -105,11 +99,9 @@ export class CaseEditComponent {
105
99
  description: ['']
106
100
  })
107
101
  });
108
- }
109
- ngOnChanges() {
110
- if (this.eventTrigger) {
111
- this.initializeComponent();
112
- }
102
+ this.route.queryParams.subscribe((params) => {
103
+ this.navigationOrigin = params[CaseEditComponent.ORIGIN_QUERY_PARAM];
104
+ });
113
105
  }
114
106
  ngOnDestroy() {
115
107
  /* istanbul ignore else */
@@ -546,7 +538,7 @@ export class CaseEditComponent {
546
538
  return task.case_id === eventDetails.caseId && (task.description?.includes(eventDetails.eventId));
547
539
  }
548
540
  static ɵfac = function CaseEditComponent_Factory(t) { return new (t || CaseEditComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i2.CaseNotifier), i0.ɵɵdirectiveInject(i3.Router), i0.ɵɵdirectiveInject(i3.ActivatedRoute), i0.ɵɵdirectiveInject(i4.FieldsUtils), i0.ɵɵdirectiveInject(i4.FieldsPurger), i0.ɵɵdirectiveInject(i5.ConditionalShowRegistrarService), i0.ɵɵdirectiveInject(i2.WizardFactoryService), i0.ɵɵdirectiveInject(i4.SessionStorageService), i0.ɵɵdirectiveInject(i4.WindowService), i0.ɵɵdirectiveInject(i4.FormValueService), i0.ɵɵdirectiveInject(i4.FormErrorService), i0.ɵɵdirectiveInject(i4.LoadingService), i0.ɵɵdirectiveInject(i6.ValidPageListCaseFieldsService), i0.ɵɵdirectiveInject(i2.WorkAllocationService), i0.ɵɵdirectiveInject(i4.AlertService), i0.ɵɵdirectiveInject(i7.AbstractAppConfig), i0.ɵɵdirectiveInject(i4.ReadCookieService)); };
549
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditComponent, selectors: [["ccd-case-edit"]], inputs: { eventTrigger: "eventTrigger", submit: "submit", validate: "validate", saveDraft: "saveDraft", caseDetails: "caseDetails" }, outputs: { cancelled: "cancelled", submitted: "submitted" }, features: [i0.ɵɵProvidersFeature([GreyBarService]), i0.ɵɵNgOnChangesFeature], decls: 1, vars: 0, template: function CaseEditComponent_Template(rf, ctx) { if (rf & 1) {
541
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditComponent, selectors: [["ccd-case-edit"]], inputs: { eventTrigger: "eventTrigger", submit: "submit", validate: "validate", saveDraft: "saveDraft", caseDetails: "caseDetails" }, outputs: { cancelled: "cancelled", submitted: "submitted" }, features: [i0.ɵɵProvidersFeature([GreyBarService])], decls: 1, vars: 0, template: function CaseEditComponent_Template(rf, ctx) { if (rf & 1) {
550
542
  i0.ɵɵelement(0, "router-outlet");
551
543
  } }, dependencies: [i3.RouterOutlet], styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:solid 1px #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:0px}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.no-bottom-border[_ngcontent-%COMP%]{border-bottom:none}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
552
544
  }
@@ -569,4 +561,4 @@ export class CaseEditComponent {
569
561
  type: Output
570
562
  }] }); })();
571
563
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditComponent, { className: "CaseEditComponent", filePath: "lib/shared/components/case-editor/case-edit/case-edit.component.ts", lineNumber: 37 }); })();
572
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBYyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RixPQUFPLEVBSVUsZ0JBQWdCLEVBQy9CLFFBQVEsRUFDVCxNQUFNLGlCQUFpQixDQUFDO0FBR3pCLE9BQU8sRUFDTCxZQUFZLEVBQ1osWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFB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RUFBRSxDQUFDO1lBQzVELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLGNBQWMsQ0FBQyxJQUFVLEVBQUUsWUFBMEI7UUFDM0QsNERBQTREO1FBQzVELHdFQUF3RTtRQUN4RSwySEFBMkg7UUFDM0gsdUdBQXVHO1FBQ3ZHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLG9DQUFvQyxJQUFJLENBQUMsRUFBRSxzQkFBc0IsSUFBSSxDQUFDLFdBQVcsZ0JBQWdCLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hKLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQzsyRUE5a0JVLGlCQUFpQjs2REFBakIsaUJBQWlCLHNRQUZqQixDQUFDLGNBQWMsQ0FBQztZQ2xDN0IsZ0NBQStCOzs7aUZEb0NsQixpQkFBaUI7Y0FON0IsU0FBUzsyQkFDRSxlQUFlLGFBR2QsQ0FBQyxjQUFjLENBQUM7c2tCQVNwQixZQUFZO2tCQURsQixLQUFLO1lBSUMsTUFBTTtrQkFEWixLQUFLO1lBSUMsUUFBUTtrQkFEZCxLQUFLO1lBSUMsU0FBUztrQkFEZixLQUFLO1lBSUMsV0FBVztrQkFEakIsS0FBSztZQUlDLFNBQVM7a0JBRGYsTUFBTTtZQUlBLFNBQVM7a0JBRGYsTUFBTTs7a0ZBeEJJLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi8uLi9jb21tb25zL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDb25kaXRpb25hbFNob3dSZWdpc3RyYXJTZXJ2aWNlLCBHcmV5QmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtcbiAgQ2FzZUVkaXRDYXNlU3VibWl0LCBDYXNlRWRpdEdlbmVyYXRlQ2FzZUV2ZW50RGF0YSwgQ2FzZUVkaXRHZXROZXh0UGFnZSxcbiAgQ2FzZUVkaXRTdWJtaXRGb3JtLFxuICBDYXNlRWRpdG9uRXZlbnRDYW5CZUNvbXBsZXRlZCxcbiAgQ2FzZUV2ZW50RGF0YSwgQ2FzZUV2ZW50VHJpZ2dlciwgQ2FzZUZpZWxkLFxuICBDYXNlVmlldywgRHJhZnQsIEh0dHBFcnJvciwgUHJvZmlsZVxufSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuLi8uLi8uLi9kb21haW4vdXNlci91c2VyLWluZm8ubW9kZWwnO1xuaW1wb3J0IHsgRXZlbnREZXRhaWxzLCBUYXNrLCBUYXNrRXZlbnRDb21wbGV0aW9uSW5mbyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi93b3JrLWFsbG9jYXRpb24vVGFzayc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIEZpZWxkc1B1cmdlciwgRmllbGRzVXRpbHMsIEZvcm1FcnJvclNlcnZpY2UsIEZvcm1WYWx1ZVNlcnZpY2UsIExvYWRpbmdTZXJ2aWNlLFxuICBSZWFkQ29va2llU2VydmljZSxcbiAgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLCBXaW5kb3dTZXJ2aWNlXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbiwgV2l6YXJkLCBXaXphcmRQYWdlIH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IEV2ZW50Q29tcGxldGlvblBhcmFtcyB9IGZyb20gJy4uL2RvbWFpbi9ldmVudC1jb21wbGV0aW9uLXBhcmFtcy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIsIFdpemFyZEZhY3RvcnlTZXJ2aWNlLCBXb3JrQWxsb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBWYWxpZFBhZ2VMaXN0Q2FzZUZpZWxkc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy92YWxpZC1wYWdlLWxpc3QtY2FzZUZpZWxkcy5zZXJ2aWNlJztcbmltcG9ydCB7IHJlbW92ZVRhc2tGcm9tQ2xpZW50Q29udGV4dCB9IGZyb20gJy4uL2Nhc2UtZWRpdC11dGlscy9jYXNlLWVkaXQudXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtY2FzZS1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICdjYXNlLWVkaXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vY2FzZS1lZGl0LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbR3JleUJhclNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIENhc2VFZGl0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SSUdJTl9RVUVSWV9QQVJBTSA9ICdvcmlnaW4nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFMRVJUX01FU1NBR0UgPSAnUGFnZSBpcyBiZWluZyByZWZyZXNoZWQgc28geW91IHdpbGwgYmUgcmVkaXJlY3RlZCB0byB0aGUgZmlyc3QgcGFnZSBvZiB0aGlzIGV2ZW50Lic7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0xJRU5UX0NPTlRFWFQgPSAnY2xpZW50Q29udGV4dCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVEFTS19FVkVOVF9DT01QTEVUSU9OX0lORk8gPSAndGFza0V2ZW50Q29tcGxldGlvbkluZm8nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN1Ym1pdDogKGNhc2VFdmVudERhdGE6IENhc2VFdmVudERhdGEsIHByb2ZpbGU/OiBQcm9maWxlKSA9PiBPYnNlcnZhYmxlPG9iamVjdD47XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZhbGlkYXRlOiAoY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSwgcGFnZUlkOiBzdHJpbmcpID0+IE9ic2VydmFibGU8b2JqZWN0PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2F2ZURyYWZ0OiAoY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSkgPT4gT2JzZXJ2YWJsZTxEcmFmdD47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhbmNlbGxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzdWJtaXR0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyB3aXphcmQ6IFdpemFyZDtcblxuICBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBjb25maXJtYXRpb246IENvbmZpcm1hdGlvbjtcblxuICBwdWJsaWMgbmF2aWdhdGlvbk9yaWdpbjogYW55O1xuXG4gIHB1YmxpYyBpbml0aWFsVXJsOiBzdHJpbmc7XG5cbiAgcHVibGljIGlzUGFnZVJlZnJlc2hlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgaXNTdWJtaXR0aW5nOiBib29sZWFuO1xuXG4gIHB1YmxpYyBldmVudENvbXBsZXRpb25QYXJhbXM6IEV2ZW50Q29tcGxldGlvblBhcmFtcztcblxuICBwdWJsaWMgc3VibWl0UmVzcG9uc2U6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgcHVibGljIGlzRXZlbnRDb21wbGV0aW9uQ2hlY2tzUmVxdWlyZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgaXNDYXNlRmxhZ1N1Ym1pc3Npb24gPSBmYWxzZTtcblxuICBwdWJsaWMgaWdub3JlV2FybmluZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBpc0xpbmtlZENhc2VzU3VibWlzc2lvbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBlcnJvcjogSHR0cEVycm9yO1xuXG4gIHB1YmxpYyBjYWxsYmFja0Vycm9yc1N1YmplY3Q6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIHZhbGlkUGFnZUxpc3Q6IFdpemFyZFBhZ2VbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZU5vdGlmaWVyOiBDYXNlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkc1V0aWxzOiBGaWVsZHNVdGlscyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkc1B1cmdlcjogRmllbGRzUHVyZ2VyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVnaXN0cmFyU2VydmljZTogQ29uZGl0aW9uYWxTaG93UmVnaXN0cmFyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpemFyZEZhY3Rvcnk6IFdpemFyZEZhY3RvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dzU2VydmljZTogV2luZG93U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1WYWx1ZVNlcnZpY2U6IEZvcm1WYWx1ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtRXJyb3JTZXJ2aWNlOiBGb3JtRXJyb3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9hZGluZ1NlcnZpY2U6IExvYWRpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmFsaWRQYWdlTGlzdENhc2VGaWVsZHNTZXJ2aWNlOiBWYWxpZFBhZ2VMaXN0Q2FzZUZpZWxkc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrQWxsb2NhdGlvblNlcnZpY2U6IFdvcmtBbGxvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWJzdHJhY3RDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29va2llU2VydmljZTogUmVhZENvb2tpZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVDb21wb25lbnQoKTtcblxuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXM6IFBhcmFtcykgPT4ge1xuICAgICAgdGhpcy5uYXZpZ2F0aW9uT3JpZ2luID0gcGFyYW1zW0Nhc2VFZGl0Q29tcG9uZW50Lk9SSUdJTl9RVUVSWV9QQVJBTV07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluaXRpYWxpemVDb21wb25lbnQoKTogdm9pZCB7XG4gICAgdGhpcy53aXphcmQgPSB0aGlzLndpemFyZEZhY3RvcnkuY3JlYXRlKHRoaXMuZXZlbnRUcmlnZ2VyKTtcbiAgICB0aGlzLmluaXRpYWxVcmwgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCdldmVudFVybCcpO1xuICAgIHRoaXMuaXNQYWdlUmVmcmVzaGVkID0gSlNPTi5wYXJzZSh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCdpc1BhZ2VSZWZyZXNoZWQnKSk7XG5cbiAgICB0aGlzLmNoZWNrUGFnZVJlZnJlc2goKTtcblxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgZGF0YTogbmV3IEZvcm1Hcm91cCh7fSksXG4gICAgICBldmVudDogdGhpcy5mYi5ncm91cCh7XG4gICAgICAgIGlkOiBbdGhpcy5ldmVudFRyaWdnZXIuaWQsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICBzdW1tYXJ5OiBbJyddLFxuICAgICAgICBkZXNjcmlwdGlvbjogWycnXVxuICAgICAgfSlcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5ldmVudFRyaWdnZXIpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZUNvbXBvbmVudCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmNhbGxiYWNrRXJyb3JzU3ViamVjdCkge1xuICAgICAgdGhpcy5jYWxsYmFja0Vycm9yc1N1YmplY3QudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2hlY2tQYWdlUmVmcmVzaCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc1BhZ2VSZWZyZXNoZWQgJiYgdGhpcy5pbml0aWFsVXJsKSB7XG4gICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKCdldmVudFVybCcpO1xuICAgICAgdGhpcy53aW5kb3dzU2VydmljZS5hbGVydChDYXNlRWRpdENvbXBvbmVudC5BTEVSVF9NRVNTQUdFKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmluaXRpYWxVcmxdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldFBhZ2UocGFnZUlkOiBzdHJpbmcpOiBXaXphcmRQYWdlIHtcbiAgICByZXR1cm4gdGhpcy53aXphcmQuZ2V0UGFnZShwYWdlSWQsIHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKHRoaXMuZXZlbnRUcmlnZ2VyLCB0aGlzLmZvcm0pKTtcbiAgfVxuXG4gIHB1YmxpYyBmaXJzdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBmaXJzdFBhZ2UgPSB0aGlzLndpemFyZC5maXJzdFBhZ2UodGhpcy5maWVsZHNVdGlscy5idWlsZENhblNob3dQcmVkaWNhdGUodGhpcy5ldmVudFRyaWdnZXIsIHRoaXMuZm9ybSkpO1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZmlyc3RQYWdlID8gZmlyc3RQYWdlLmlkIDogJ3N1Ym1pdCddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb1BhZ2UocGFnZUlkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBwYWdlID0gdGhpcy5nZXRQYWdlKHBhZ2VJZCk7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYWdlID8gcGFnZS5pZCA6ICdzdWJtaXQnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIG5leHQoY3VycmVudFBhZ2VJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5pbml0aWFsVXJsID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnZXZlbnRVcmwnKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnJvdXRlci51cmwgJiYgIXRoaXMuaW5pdGlhbFVybCkge1xuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgnZXZlbnRVcmwnLCB0aGlzLnJvdXRlci51cmwpO1xuICAgIH1cbiAgICB0aGlzLmZpZWxkc1B1cmdlci5jbGVhckhpZGRlbkZpZWxkcyh0aGlzLmZvcm0sIHRoaXMud2l6YXJkLCB0aGlzLmV2ZW50VHJpZ2dlciwgY3VycmVudFBhZ2VJZCk7XG4gICAgY29uc3QgbmV4dFBhZ2UgPSB0aGlzLmdldE5leHRQYWdlKHtcbiAgICAgIGN1cnJlbnRQYWdlSWQsXG4gICAgICB3aXphcmQ6IHRoaXMud2l6YXJkLFxuICAgICAgZXZlbnRUcmlnZ2VyOiB0aGlzLmV2ZW50VHJpZ2dlcixcbiAgICAgIGZvcm06IHRoaXMuZm9ybSxcbiAgICB9KTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCFuZXh0UGFnZSAmJlxuICAgICAgISh0aGlzLmV2ZW50VHJpZ2dlci5zaG93X3N1bW1hcnkgfHwgdGhpcy5ldmVudFRyaWdnZXIuc2hvd19zdW1tYXJ5ID09PSBudWxsKSAmJlxuICAgICAgIXRoaXMuZXZlbnRUcmlnZ2VyLnNob3dfZXZlbnRfbm90ZXMpIHtcbiAgICAgIHRoaXMuc3VibWl0Rm9ybSh7XG4gICAgICAgIGV2ZW50VHJpZ2dlcjogdGhpcy5ldmVudFRyaWdnZXIsXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcbiAgICAgICAgc3VibWl0OiB0aGlzLnN1Ym1pdCxcbiAgICAgICAgY2FzZURldGFpbHM6IHRoaXMuY2FzZURldGFpbHMsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlZ2lzdHJhclNlcnZpY2UucmVzZXQoKTtcblxuICAgIGNvbnN0IHRoZVF1ZXJ5UGFyYW1zOiBQYXJhbXMgPSB7fTtcbiAgICB0aGVRdWVyeVBhcmFtc1tDYXNlRWRpdENvbXBvbmVudC5PUklHSU5fUVVFUllfUEFSQU1dID0gdGhpcy5uYXZpZ2F0aW9uT3JpZ2luO1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbbmV4dFBhZ2UgPyBuZXh0UGFnZS5pZCA6ICdzdWJtaXQnXSwgeyBxdWVyeVBhcmFtczogdGhlUXVlcnlQYXJhbXMsIHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gIH1cblxuICBwdWJsaWMgcHJldmlvdXMoY3VycmVudFBhZ2VJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5maWVsZHNQdXJnZXIuY2xlYXJIaWRkZW5GaWVsZHModGhpcy5mb3JtLCB0aGlzLndpemFyZCwgdGhpcy5ldmVudFRyaWdnZXIsIGN1cnJlbnRQYWdlSWQpO1xuICAgIHRoaXMucmVnaXN0cmFyU2VydmljZS5yZXNldCgpO1xuXG4gICAgY29uc3QgcHJldmlvdXNQYWdlID0gdGhpcy53aXphcmQucHJldmlvdXNQYWdlKGN1cnJlbnRQYWdlSWQsIHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKHRoaXMuZXZlbnRUcmlnZ2VyLCB0aGlzLmZvcm0pKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghcHJldmlvdXNQYWdlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBjb25zdCB0aGVRdWVyeVBhcmFtczogUGFyYW1zID0ge307XG4gICAgdGhlUXVlcnlQYXJhbXNbQ2FzZUVkaXRDb21wb25lbnQuT1JJR0lOX1FVRVJZX1BBUkFNXSA9IHRoaXMubmF2aWdhdGlvbk9yaWdpbjtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3ByZXZpb3VzUGFnZS5pZF0sIHsgcXVlcnlQYXJhbXM6IHRoZVF1ZXJ5UGFyYW1zLCByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIGhhc1ByZXZpb3VzKGN1cnJlbnRQYWdlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLndpemFyZC5oYXNQcmV2aW91c1BhZ2UoY3VycmVudFBhZ2VJZCwgdGhpcy5maWVsZHNVdGlscy5idWlsZENhblNob3dQcmVkaWNhdGUodGhpcy5ldmVudFRyaWdnZXIsIHRoaXMuZm9ybSkpO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbGxlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFN1Ym1pdHRlZChyZXNwb25zZTogUmVjb3JkPHN0cmluZywgYW55Pik6IHZvaWQge1xuICAgIHRoaXMuc3VibWl0dGVkLmVtaXQoeyBjYXNlSWQ6IHJlc3BvbnNlWydpZCddLCBzdGF0dXM6IHRoaXMuZ2V0U3RhdHVzKHJlc3BvbnNlKSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROZXh0UGFnZSh7IHdpemFyZCwgY3VycmVudFBhZ2VJZCwgZXZlbnRUcmlnZ2VyLCBmb3JtIH06IENhc2VFZGl0R2V0TmV4dFBhZ2UpOiBXaXphcmRQYWdlIHtcbiAgICByZXR1cm4gd2l6YXJkLm5leHRQYWdlKFxuICAgICAgY3VycmVudFBhZ2VJZCxcbiAgICAgIHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKGV2ZW50VHJpZ2dlciwgZm9ybSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNvbmZpcm0oY29uZmlybWF0aW9uOiBDb25maXJtYXRpb24pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvbiA9IGNvbmZpcm1hdGlvbjtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjb25maXJtJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRGb3JtKHsgZXZlbnRUcmlnZ2VyLCBmb3JtLCBjYXNlRGV0YWlscywgc3VibWl0IH06IENhc2VFZGl0U3VibWl0Rm9ybSk6IHZvaWQge1xuICAgIHRoaXMuaXNTdWJtaXR0aW5nID0gdHJ1ZTtcbiAgICAvLyBXZSBoYXZlIHRvIHJ1biB0aGUgZXZlbnQgY29tcGxldGlvbiBjaGVja3MgaWYgdGFzayBpbiBzZXNzaW9uIHN0b3JhZ2VcbiAgICAvLyBhbmQgaWYgdGhlIHRhc2sgaXMgaW4gc2Vzc2lvbiBzdG9yYWdlLCB0aGVuIGlzIGl0IGFzc29jaWF0ZWQgdG8gdGhlIGNhc2VcbiAgICBjb25zdCBjbGllbnRDb250ZXh0U3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShDYXNlRWRpdENvbXBvbmVudC5DTElFTlRfQ09OVEVYVCk7XG4gICAgY29uc3QgdXNlclRhc2sgPSBGaWVsZHNVdGlscy5nZXRVc2VyVGFza0Zyb21DbGllbnRDb250ZXh0KGNsaWVudENvbnRleHRTdHIpO1xuICAgIGNvbnN0IHRhc2tJblNlc3Npb25TdG9yYWdlID0gdXNlclRhc2sgPyB1c2VyVGFzay50YXNrX2RhdGEgOiBudWxsO1xuICAgIGxldCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm87XG4gICAgbGV0IHVzZXJJbmZvOiBVc2VySW5mbztcbiAgICBjb25zdCB0YXNrRXZlbnRDb21wbGV0aW9uU3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShDYXNlRWRpdENvbXBvbmVudC5UQVNLX0VWRU5UX0NPTVBMRVRJT05fSU5GTyk7XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGNvbnN0IGFzc2lnbk5lZWRlZCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2Fzc2lnbk5lZWRlZCcpO1xuICAgIGlmICh0YXNrRXZlbnRDb21wbGV0aW9uU3RyKSB7XG4gICAgICB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbyA9IEpTT04ucGFyc2UodGFza0V2ZW50Q29tcGxldGlvblN0cik7XG4gICAgfVxuICAgIGlmICh1c2VySW5mb1N0cikge1xuICAgICAgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICB9XG4gICAgY29uc3QgZXZlbnRJZCA9IHRoaXMuZ2V0RXZlbnRJZChmb3JtKTtcbiAgICBjb25zdCBjYXNlSWQgPSB0aGlzLmdldENhc2VJZChjYXNlRGV0YWlscyk7XG4gICAgY29uc3QgdXNlcklkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICBjb25zdCBldmVudERldGFpbHM6IEV2ZW50RGV0YWlscyA9IHtldmVudElkLCBjYXNlSWQsIHVzZXJJZCwgYXNzaWduTmVlZGVkfTtcbiAgICBpZiAodGhpcy50YXNrRXhpc3RzRm9yVGhpc0V2ZW50KHRhc2tJblNlc3Npb25TdG9yYWdlLCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbywgZXZlbnREZXRhaWxzKSkge1xuICAgICAgdGhpcy5hYnN0cmFjdENvbmZpZy5sb2dNZXNzYWdlKGB0YXNrIGV4aXN0IGZvciB0aGlzIGV2ZW50IGZvciBjYXNlSWQgYW5kIGV2ZW50SWQgYXMgJHtjYXNlSWR9ICR7ZXZlbnRJZH1gKTtcbiAgICAgIC8vIFNob3cgZXZlbnQgY29tcGxldGlvbiBjb21wb25lbnQgdG8gcGVyZm9ybSBldmVudCBjb21wbGV0aW9uIGNoZWNrc1xuICAgICAgdGhpcy5ldmVudENvbXBsZXRpb25QYXJhbXMgPSAoe1xuICAgICAgICBjYXNlSWQsXG4gICAgICAgIGV2ZW50SWQsXG4gICAgICAgIHRhc2s6IHRhc2tJblNlc3Npb25TdG9yYWdlXG4gICAgICB9KTtcbiAgICAgIC8vIGFkZCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbyBhZ2FpbiB0byBlbnN1cmUgbGluayBjdXJyZW50IGV2ZW50IHdpdGggdGFzayBpZFxuICAgICAgLy8gbm90ZTogcHJldmlvdXMgdXNhZ2Ugd2FzIGNyZWF0ZWQgaGVyZSBzbyB0aGlzIGlzIHRvIGVuc3VyZSBjb3JyZWN0IGZ1bmN0aW9uYWxpdHkgY29udGludWVzXG4gICAgICBjb25zdCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm8gPSB7XG4gICAgICAgIGNhc2VJZCxcbiAgICAgICAgZXZlbnRJZCxcbiAgICAgICAgdXNlcklkLFxuICAgICAgICB0YXNrSWQ6IHRhc2tJblNlc3Npb25TdG9yYWdlLmlkLFxuICAgICAgICBjcmVhdGVkVGltZXN0YW1wOiBEYXRlLm5vdygpfTtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oQ2FzZUVkaXRDb21wb25lbnQuVEFTS19FVkVOVF9DT01QTEVUSU9OX0lORk8sIEpTT04uc3RyaW5naWZ5KHRhc2tFdmVudENvbXBsZXRpb25JbmZvKSk7XG4gICAgICB0aGlzLmlzRXZlbnRDb21wbGV0aW9uQ2hlY2tzUmVxdWlyZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUYXNrIG5vdCBpbiBzZXNzaW9uIHN0b3JhZ2UsIHByb2NlZWQgdG8gc3VibWl0XG4gICAgICBjb25zdCBjYXNlRXZlbnREYXRhID0gdGhpcy5nZW5lcmF0ZUNhc2VFdmVudERhdGEoe1xuICAgICAgICBldmVudFRyaWdnZXIsXG4gICAgICAgIGZvcm1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5jYXNlU3VibWl0KHtmb3JtLFxuICAgICAgICBjYXNlRXZlbnREYXRhLFxuICAgICAgICBzdWJtaXRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlSWQoY2FzZURldGFpbHM6IENhc2VWaWV3KTogc3RyaW5nIHtcbiAgICByZXR1cm4gKGNhc2VEZXRhaWxzID8gY2FzZURldGFpbHMuY2FzZV9pZCA6ICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXZlbnRJZChmb3JtOiBGb3JtR3JvdXApOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtLnZhbHVlLmV2ZW50LmlkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNhc2VFdmVudERhdGEoeyBldmVudFRyaWdnZXIsIGZvcm0gfTogQ2FzZUVkaXRHZW5lcmF0ZUNhc2VFdmVudERhdGEgKTogQ2FzZUV2ZW50RGF0YSB7XG4gICAgY29uc3QgY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSA9IHtcbiAgICAgIGRhdGE6IHRoaXMucmVwbGFjZUVtcHR5Q29tcGxleEZpZWxkVmFsdWVzKFxuICAgICAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2Uuc2FuaXRpc2UoXG4gICAgICAgICAgdGhpcy5yZXBsYWNlSGlkZGVuRm9ybVZhbHVlc1dpdGhPcmlnaW5hbENhc2VEYXRhKFxuICAgICAgICAgICAgZm9ybS5nZXQoJ2RhdGEnKSBhcyBGb3JtR3JvdXAsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcykpKSxcbiAgICAgIGV2ZW50OiBmb3JtLnZhbHVlLmV2ZW50XG4gICAgfSBhcyBDYXNlRXZlbnREYXRhO1xuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5jbGVhck5vbkNhc2VGaWVsZHMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5yZW1vdmVOdWxsTGFiZWxzKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlRW1wdHlEb2N1bWVudHMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAgIC8vIFJlbW92ZSBjb2xsZWN0aW9uIGZpZWxkcyB0aGF0IGhhdmUgXCJtaW5cIiB2YWxpZGF0aW9uIG9mIGdyZWF0ZXIgdGhhbiB6ZXJvIHNldCBvbiB0aGUgRmllbGRUeXBlIGJ1dCBhcmUgZW1wdHk7XG4gICAgLy8gdGhlc2Ugd2lsbCBmYWlsIHZhbGlkYXRpb25cbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlRW1wdHlDb2xsZWN0aW9uc1dpdGhNaW5WYWxpZGF0aW9uKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgICAvLyBGb3IgQ2FzZSBGbGFnIHN1Ym1pc3Npb25zICh3aGVyZSBhIEZsYWdMYXVuY2hlciBmaWVsZCBpcyBwcmVzZW50IGluIHRoZSBldmVudCB0cmlnZ2VyKSwgdGhlIGZsYWcgZGV0YWlscyBkYXRhXG4gICAgLy8gbmVlZHMgcG9wdWxhdGluZyBmb3IgZWFjaCBGbGFncyBmaWVsZCwgdGhlbiB0aGUgRmxhZ0xhdW5jaGVyIGZpZWxkIG5lZWRzIHJlbW92aW5nXG4gICAgdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLnJlcG9wdWxhdGVGb3JtRGF0YUZyb21DYXNlRmllbGRWYWx1ZXMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAgIC8vIERhdGEgcG9wdWxhdGlvbiBzdGVwIHJlcXVpcmVkIGZvciBMaW5rZWQgQ2FzZXNcbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucG9wdWxhdGVMaW5rZWRDYXNlc0RldGFpbHNGcm9tQ2FzZUZpZWxkcyhjYXNlRXZlbnREYXRhLmRhdGEsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcyk7XG4gICAgLy8gUmVtb3ZlIFwiTGF1bmNoZXJcIi10eXBlIGZpZWxkcyAodGhlc2UgaGF2ZSBubyB2YWx1ZXMgYW5kIGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgcGVyc2lzdGVkKVxuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5yZW1vdmVDYXNlRmllbGRzT2ZUeXBlKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzLCBbJ0ZsYWdMYXVuY2hlcicsICdDb21wb25lbnRMYXVuY2hlciddKTtcblxuICAgIC8vIGRlbGV0ZSBmaWVsZHMgd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSBjYXNlIGV2ZW50IGpvdXJuZXkgd2l6YXJkIHBhZ2VzIGNhc2UgZmllbGRzXG4gICAgdGhpcy52YWxpZFBhZ2VMaXN0Q2FzZUZpZWxkc1NlcnZpY2UuZGVsZXRlTm9uVmFsaWRhdGVkRmllbGRzKHRoaXMudmFsaWRQYWdlTGlzdCwgY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMsIGZhbHNlLCBmb3JtLmNvbnRyb2xzWydkYXRhJ10udmFsdWUpO1xuICAgIGNvbnN0IHBhZ2VMaXN0Q2FzZUZpZWxkcyA9IHRoaXMudmFsaWRQYWdlTGlzdENhc2VGaWVsZHNTZXJ2aWNlLnZhbGlkUGFnZUxpc3RDYXNlRmllbGRzKHRoaXMudmFsaWRQYWdlTGlzdCwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzLCBmb3JtLmNvbnRyb2xzWydkYXRhJ10udmFsdWUpO1xuICAgIC8vIFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXNlIGZpZWxkcyB3aGljaCBhcmUgaGlkZGVuLCBvbmx5IGlmIHRoZSBzdWJtaXNzaW9uIGlzICpub3QqIGZvciBDYXNlIEZsYWdzXG4gICAgaWYgKCF0aGlzLmlzQ2FzZUZsYWdTdWJtaXNzaW9uKSB7XG4gICAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlVW5uZWNlc3NhcnlGaWVsZHMoY2FzZUV2ZW50RGF0YS5kYXRhLCBwYWdlTGlzdENhc2VGaWVsZHMsIHRydWUsIHRydWUpO1xuICAgIH1cblxuICAgIGNhc2VFdmVudERhdGEuZXZlbnRfdG9rZW4gPSBldmVudFRyaWdnZXIuZXZlbnRfdG9rZW47XG4gICAgY2FzZUV2ZW50RGF0YS5pZ25vcmVfd2FybmluZyA9IHRoaXMuaWdub3JlV2FybmluZztcbiAgICBpZiAodGhpcy5jb25maXJtYXRpb24pIHtcbiAgICAgIGNhc2VFdmVudERhdGEuZGF0YSA9IHt9O1xuICAgIH1cblxuICAgIHJldHVybiBjYXNlRXZlbnREYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIG5vbi1hcnJheSB2YWx1ZSBvYmplY3RzIHdpdGggYG51bGxgIGZvciBhbnkgQ29tcGxleC10eXBlIGZpZWxkcyB3aG9zZSB2YWx1ZSBpcyBlZmZlY3RpdmVseSBlbXB0eSwgaS5lLlxuICAgKiBhbGwgaXRzIHN1Yi1maWVsZHMgYW5kIGRlc2NlbmRhbnRzIGFyZSBgbnVsbGAgb3IgYHVuZGVmaW5lZGAuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBvYmplY3QgdHJlZSByZXByZXNlbnRpbmcgYWxsIHRoZSBmb3JtIGZpZWxkIGRhdGFcbiAgICogQHJldHVybnMgVGhlIGZvcm0gZmllbGQgZGF0YSBtb2RpZmllZCBhY2NvcmRpbmdseVxuICAgKi9cbiAgcHJpdmF0ZSByZXBsYWNlRW1wdHlDb21wbGV4RmllbGRWYWx1ZXMoZGF0YTogb2JqZWN0KTogb2JqZWN0IHtcbiAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhW2tleV0pICYmIHR5cGVvZiBkYXRhW2tleV0gPT09ICdvYmplY3QnICYmICFGaWVsZHNVdGlscy5jb250YWluc05vbkVtcHR5VmFsdWVzKGRhdGFba2V5XSkpIHtcbiAgICAgICAgZGF0YVtrZXldID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYXZlcnNlICphbGwqIHZhbHVlcyBvZiBhIHtAbGluayBGb3JtR3JvdXB9LCBpbmNsdWRpbmcgdGhvc2UgZm9yIGRpc2FibGVkIGZpZWxkcyAoaS5lLiBoaWRkZW4gb25lcyksIHJlcGxhY2luZyB0aGVcbiAgICogdmFsdWUgb2YgYW55IHRoYXQgYXJlIGhpZGRlbiBBTkQgaGF2ZSBgcmV0YWluX2hpZGRlbl92YWx1ZWAgc2V0IHRvIGB0cnVlYCBpbiB0aGUgY29ycmVzcG9uZGluZyBgQ2FzZUZpZWxkYCwgd2l0aFxuICAgKiB0aGUgKm9yaWdpbmFsKiB2YWx1ZSBoZWxkIGluIHRoZSBgQ2FzZUZpZWxkYCBvYmplY3QuXG4gICAqXG4gICAqIFRoaXMgaXMgYXMgcGVyIGRlc2lnbiBpbiBFVUktMzYyMiwgd2hlcmUgYW55IHVzZXItZHJpdmVuIHVwZGF0ZXMgdG8gaGlkZGVuIGZpZWxkcyB3aXRoIGByZXRhaW5faGlkZGVuX3ZhbHVlYCA9XG4gICAqIGB0cnVlYCBhcmUgaWdub3JlZCAodGh1cyByZXRhaW5pbmcgdGhlIHZhbHVlIGRpc3BsYXllZCBvcmlnaW5hbGx5KS5cbiAgICpcbiAgICogKiBGb3IgQ29tcGxleCBmaWVsZCB0eXBlcywgdGhlIHJlcGxhY2VtZW50IGFib3ZlIGlzIHBlcmZvcm1lZCByZWN1cnNpdmVseSBmb3IgYWxsIGhpZGRlbiBzdWItZmllbGRzIHdpdGhcbiAgICogYHJldGFpbl9oaWRkZW5fdmFsdWVgID0gYHRydWVgLlxuICAgKlxuICAgKiAqIEZvciBDb2xsZWN0aW9uIGZpZWxkIHR5cGVzLCBpbmNsdWRpbmcgY29sbGVjdGlvbnMgb2YgQ29tcGxleCBhbmQgRG9jdW1lbnQgZmllbGQgdHlwZXMsIHRoZSByZXBsYWNlbWVudCBpc1xuICAgKiBwZXJmb3JtZWQgZm9yIGFsbCBmaWVsZHMgaW4gdGhlIGNvbGxlY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSBmb3JtR3JvdXAgVGhlIGBGb3JtR3JvdXBgIGluc3RhbmNlIHdob3NlIHJhdyB2YWx1ZXMgYXJlIHRvIGJlIHRyYXZlcnNlZFxuICAgKiBAcGFyYW0gY2FzZUZpZWxkcyBUaGUgYXJyYXkgb2Yge0BsaW5rIENhc2VGaWVsZH0gZG9tYWluIG1vZGVsIG9iamVjdHMgY29ycmVzcG9uZGluZyB0byBmaWVsZHMgaW4gYGZvcm1Hcm91cGBcbiAgICogQHBhcmFtIHBhcmVudEZpZWxkIFJlZmVyZW5jZSB0byB0aGUgcGFyZW50IGBDYXNlRmllbGRgLiBVc2VkIGZvciByZXRyaWV2aW5nIHRoZSBzdWItZmllbGQgdmFsdWVzIG9mIGEgQ29tcGxleCBmaWVsZFxuICAgKiB0byBwZXJmb3JtIHJlY3Vyc2l2ZSByZXBsYWNlbWVudCAtIHRoZSBzdWItZmllbGQgYENhc2VGaWVsZGBzIHRoZW1zZWx2ZXMgZG8gKm5vdCogY29udGFpbiBhbnkgdmFsdWVzXG4gICAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIHRoZSAqcmF3KiBmb3JtIHZhbHVlIGRhdGEgKGFzIGtleS12YWx1ZSBwYWlycyksIHdpdGggYW55IHZhbHVlIHJlcGxhY2VtZW50cyBhcyBuZWNlc3NhcnlcbiAgICovXG4gIHByaXZhdGUgcmVwbGFjZUhpZGRlbkZvcm1WYWx1ZXNXaXRoT3JpZ2luYWxDYXNlRGF0YShmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10sIHBhcmVudEZpZWxkPzogQ2FzZUZpZWxkKTogb2JqZWN0IHtcbiAgICAvLyBHZXQgdGhlIHJhdyBmb3JtIHZhbHVlIGRhdGEsIHdoaWNoIGluY2x1ZGVzIHRoZSB2YWx1ZXMgb2YgYW55IGRpc2FibGVkIGNvbnRyb2xzLCBhcyBrZXktdmFsdWUgcGFpcnNcbiAgICBjb25zdCByYXdGb3JtVmFsdWVEYXRhID0gZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG5cbiAgICAvLyBQbGFjZSBhbGwgY2FzZSBmaWVsZHMgaW4gYSBsb29rdXAgb2JqZWN0LCBzbyB0aGV5IGNhbiBiZSByZXRyaWV2ZWQgYnkgaWRcbiAgICBjb25zdCBjYXNlRmllbGRzTG9va3VwID0ge307XG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGNhc2VGaWVsZHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNhc2VGaWVsZHNMb29rdXBbY2FzZUZpZWxkc1tpXS5pZF0gPSBjYXNlRmllbGRzW2ldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2UgYW55IGZvcm0gdmFsdWUgd2l0aCB0aGUgb3JpZ2luYWwsIHdoZXJlIGl0cyBDYXNlRmllbGQgaXMgaGlkZGVuIEFORCBoYXMgdGhlIHJldGFpbl9oaWRkZW5fdmFsdWUgZmxhZyBzZXRcbiAgICAgKiB0byB0cnVlLlxuICAgICAqXG4gICAgICogSWYgdGhlIENhc2VGaWVsZCdzIGBoaWRkZW5gIGF0dHJpYnV0ZSBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlbiBjaGVjayB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgcGFyZW50IENhc2VGaWVsZCAoaWZcbiAgICAgKiBvbmUgZXhpc3RzKS4gVGhpcyBpcyBvY2N1cnJpbmcgKGFuZCBpcyBwb3NzaWJseSBhIGJ1Zykgd2hlbiBhIENhc2VGaWVsZCBpcyBhIHN1Yi1maWVsZCBvZiBhIENvbXBsZXggdHlwZSwgb3IgYW5cbiAgICAgKiBpdGVtIGluIGEgQ29sbGVjdGlvbiB0eXBlLlxuICAgICAqXG4gICAgICogSWYgdGhlIGZpZWxkIGlzIGEgQ29tcGxleCB0eXBlIHdpdGggcmV0YWluX2hpZGRlbl92YWx1ZSA9IHRydWUsIHBlcmZvcm0gYSByZWN1cnNpdmUgcmVwbGFjZW1lbnQgZm9yIGFsbCAoaGlkZGVuKVxuICAgICAqIHN1Yi1maWVsZHMgd2l0aCByZXRhaW5faGlkZGVuX3ZhbHVlID0gdHJ1ZSwgdXNpbmcgdGhlaXIgb3JpZ2luYWwgQ2FzZUZpZWxkIHZhbHVlcyAoZnJvbSB0aGUgYGZvcm1hdHRlZF92YWx1ZWBcbiAgICAgKiBhdHRyaWJ1dGUpLlxuICAgICAqXG4gICAgICogSWYgdGhlIGZpZWxkIGlzIGEgQ29sbGVjdGlvbiB0eXBlIHdpdGggcmV0YWluX2hpZGRlbl92YWx1ZSA9IHRydWUsIHRoZSBlbnRpcmUgY29sbGVjdGlvbiBpcyByZXBsYWNlZCB3aXRoIHRoZVxuICAgICAqIG9yaWdpbmFsIGZyb20gYGZvcm1hdHRlZF92YWx1ZWAuIFRoaXMgYXBwbGllcyB0byAqYWxsKiB0eXBlcyBvZiBDb2xsZWN0aW9ucy5cbiAgICAgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIE9iamVjdC5rZXlzKHJhd0Zvcm1WYWx1ZURhdGEpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgY29uc3QgY2FzZUZpZWxkOiBDYXNlRmllbGQgPSBjYXNlRmllbGRzTG9va3VwW2tleV07XG4gICAgICAvLyBJZiBjYXNlRmllbGQuaGlkZGVuIGlzIE5PVCB0cnV0aHkgYW5kIGFsc28gTk9UIGVxdWFsIHRvIGZhbHNlLCB0aGVuIGl0IG11c3QgYmUgbnVsbC91bmRlZmluZWQgKHJlbWVtYmVyIHRoYXRcbiAgICAgIC8vIGJvdGggbnVsbCBhbmQgdW5kZWZpbmVkIGFyZSBlcXVhbCB0byAqbmVpdGhlciBmYWxzZSBub3IgdHJ1ZSopXG4gICAgICBpZiAoY2FzZUZpZWxkPy5yZXRhaW5faGlkZGVuX3ZhbHVlICYmXG4gICAgICAgIChjYXNlRmllbGQ/LmhpZGRlbiB8fCAoY2FzZUZpZWxkPy5oaWRkZW4gIT09IGZhbHNlICYmIHBhcmVudEZpZWxkPy5oaWRkZW4pKSkge1xuICAgICAgICBpZiAoY2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVDb21wbGV4RmllbGQoY2FzZUZpZWxkLCBmb3JtR3JvdXAsIGtleSwgcmF3Rm9ybVZhbHVlRGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVOb25Db21wbGV4RmllbGQocGFyZW50RmllbGQsIHJhd0Zvcm1WYWx1ZURhdGEsIGtleSwgY2FzZUZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJhd0Zvcm1WYWx1ZURhdGE7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU5vbkNvbXBsZXhGaWVsZChwYXJlbnRGaWVsZDogQ2FzZUZpZWxkLCByYXdGb3JtVmFsdWVEYXRhLCBrZXk6IHN0cmluZywgY2FzZUZpZWxkOiBDYXNlRmllbGQpIHtcbiAgICAvLyBEZWZhdWx0IGNhc2UgYWxzbyBoYW5kbGVzIGNvbGxlY3Rpb25zIG9mICphbGwqIHR5cGVzOyB0aGUgZW50aXJlIGNvbGxlY3Rpb24gaW4gcmF3Rm9ybVZhbHVlRGF0YSB3aWxsIGJlXG4gICAgLy8gcmVwbGFjZWQgd2l0aCB0aGUgb3JpZ2luYWwgZnJvbSBmb3JtYXR0ZWRfdmFsdWVcbiAgICAvLyBVc2UgdGhlIENhc2VGaWVsZCdzIGV4aXN0aW5nICpmb3JtYXR0ZWRfdmFsdWUqIGZyb20gdGhlIHBhcmVudCwgaWYgYXZhaWxhYmxlLiAoVGhpcyBpcyBuZWNlc3NhcnkgZm9yXG4gICAgLy8gQ29tcGxleCBmaWVsZHMsIHdob3NlIHN1Yi1maWVsZHMgZG8gbm90IGhvbGQgYW55IHZhbHVlcyBpbiB0aGUgbW9kZWwuKSBPdGhlcndpc2UsIHVzZSBmb3JtYXR0ZWRfdmFsdWVcbiAgICAvLyBmcm9tIHRoZSBDYXNlRmllbGQgaXRzZWxmLlxuICAgIGlmIChwYXJlbnRGaWVsZCAmJiBwYXJlbnRGaWVsZC5mb3JtYXR0ZWRfdmFsdWUpIHtcbiAgICAgIHJhd0Zvcm1WYWx1ZURhdGFba2V5XSA9IHBhcmVudEZpZWxkLmZvcm1hdHRlZF92YWx1ZVtjYXNlRmllbGQuaWRdO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIShjYXNlRmllbGQuaGlkZGVuICYmIGNhc2VGaWVsZC5yZXRhaW5faGlkZGVuX3ZhbHVlKSkge1xuICAgICAgICByYXdGb3JtVmFsdWVEYXRhW2tleV0gPSBjYXNlRmllbGQuZm9ybWF0dGVkX3ZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ29tcGxleEZpZWxkKGNhc2VGaWVsZDogQ2FzZUZpZWxkLCBmb3JtR3JvdXA6IEZvcm1Hcm91cDxhbnk+LCBrZXk6IHN0cmluZywgcmF3Rm9ybVZhbHVlRGF0YSkge1xuICAgIC8vIE5vdGU6IERlbGliZXJhdGUgdXNlIG9mIGVxdWFsaXR5ICg9PSkgYW5kIG5vbi1lcXVhbGl0eSAoIT0pIG9wZXJhdG9ycyBmb3IgbnVsbCBjaGVja3MgdGhyb3VnaG91dCwgdG9cbiAgICAvLyBoYW5kbGUgYm90aCBudWxsIGFuZCB1bmRlZmluZWQgdmFsdWVzXG4gICAgaWYgKGNhc2VGaWVsZC52YWx1ZSAhPSBudWxsKSB7XG4gICAgICAvLyBDYWxsIHRoaXMgZnVuY3Rpb24gcmVjdXJzaXZlbHkgdG8gcmVwbGFjZSB0aGUgQ29tcGxleCBmaWVsZCdzIHN1Yi1maWVsZHMgYXMgbmVjZXNzYXJ5LCBwYXNzaW5nIHRoZVxuICAgICAgLy8gQ2FzZUZpZWxkIGl0c2VsZiAodGhlIHN1Yi1maWVsZHMgZG8gbm90IGNvbnRhaW4gYW55IHZhbHVlcywgc28gdGhlc2UgbmVlZCB0byBiZSBvYnRhaW5lZCBmcm9tIHRoZVxuICAgICAgLy8gcGFyZW50KVxuICAgICAgLy8gVXBkYXRlIHJhd0Zvcm1WYWx1ZURhdGEgZm9yIHRoaXMgZmllbGRcbiAgICAgIC8vIGNyZWF0aW5nIGZvcm0gZ3JvdXAgYW5kIGFkZGluZyBjb250cm9sIGludG8gaXQgaW4gY2FzZSBjYXNlRmllbGQgaXMgb2YgY29tcGxleHQgdHlwZSBhbmQgYW5kIHBhcnQgb2YgZm9ybUdyb3VwXG4gICAgICBjb25zdCBmb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICAgIGlmIChmb3JtR3JvdXAuY29udHJvbHNba2V5XS52YWx1ZSkge1xuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHNba2V5XS52YWx1ZSkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGZvcm0uYWRkQ29udHJvbChpdGVtLCBuZXcgRm9ybUNvbnRyb2woZm9ybUdyb3VwLmNvbnRyb2xzW2tleV0udmFsdWVbaXRlbV0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByYXdGb3JtVmFsdWVEYXRhW2tleV0gPSB0aGlzLnJlcGxhY2VIaWRkZW5Gb3JtVmFsdWVzV2l0aE9yaWdpbmFsQ2FzZURhdGEoXG4gICAgICAgIGZvcm0sIGNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLCBjYXNlRmllbGQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2FzZVN1Ym1pdCh7IGZvcm0sIGNhc2VFdmVudERhdGEsIHN1Ym1pdCB9OiBDYXNlRWRpdENhc2VTdWJtaXQpOiB2b2lkIHtcbiAgICBjb25zdCBsb2FkaW5nU3Bpbm5lclRva2VuID0gdGhpcy5sb2FkaW5nU2VydmljZS5yZWdpc3RlcigpO1xuICAgIC8vIGtlZXAgdGhlIGluaXRpYWwgZXZlbnQgcmVzcG9uc2UgdG8gZmluYWxpc2UgcHJvY2VzcyBhZnRlciB0YXNrIGNvbXBsZXRpb25cbiAgICBsZXQgZXZlbnRSZXNwb25zZTogb2JqZWN0O1xuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ3Rhc2tDb21wbGV0aW9uRXJyb3InLCAnZmFsc2UnKTtcbiAgICBzdWJtaXQoY2FzZUV2ZW50RGF0YSkucGlwZShzd2l0Y2hNYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICBldmVudFJlc3BvbnNlID0gcmVzcG9uc2U7XG4gICAgICByZXR1cm4gdGhpcy5wb3N0Q29tcGxldGVUYXNrSWZSZXF1aXJlZCgpO1xuICAgIH0pLGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS51bnJlZ2lzdGVyKGxvYWRpbmdTcGlubmVyVG9rZW4pO1xuICAgICAgICAvLyBvbiBldmVudCBjb21wbGV0aW9uIGVuc3VyZSB0aGUgcHJldmlvdXMgZXZlbnQgY2xpZW50Q29udGV4dC90YXNrRXZlbnRDb21wbGV0aW9uSW5mbyByZW1vdmVkXG4gICAgICAgIC8vIE5vdGUgLSBOb3QgcmVtb3ZlVGFza0Zyb21DbGllbnRDb250ZXh0IGJlY2F1c2UgY291bGQgaW50ZXJmZXJlIHdpdGggb3RoZXIgbG9naWNcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShDYXNlRWRpdENvbXBvbmVudC5DTElFTlRfQ09OVEVYVCk7XG4gICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oQ2FzZUVkaXRDb21wb25lbnQuVEFTS19FVkVOVF9DT01QTEVUSU9OX0lORk8pXG4gICAgICAgIHRoaXMuaXNTdWJtaXR0aW5nID0gZmFsc2U7XG4gICAgICB9KSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLmZpbmlzaEV2ZW50Q29tcGxldGlvbkxvZ2ljKGV2ZW50UmVzcG9uc2UpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgaWYgKCFldmVudFJlc3BvbnNlKSB7XG4gICAgICAgICAgICAvLyBldmVudCBzdWJtaXNzaW9uIGVycm9yXG4gICAgICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICB0aGlzLmNhbGxiYWNrRXJyb3JzU3ViamVjdC5uZXh0KGVycm9yKTtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAodGhpcy5lcnJvci5kZXRhaWxzKSB7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybUVycm9yU2VydmljZVxuICAgICAgICAgICAgICAgIC5tYXBGaWVsZEVycm9ycyh0aGlzLmVycm9yLmRldGFpbHMuZmllbGRfZXJyb3JzLCBmb3JtLmNvbnRyb2xzWydkYXRhJ10gYXMgRm9ybUdyb3VwLCAndmFsaWRhdGlvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKCd0YXNrQ29tcGxldGlvbkVycm9yJywgJ3RydWUnKTtcbiAgICAgICAgICAgIC8vIHRhc2sgYXNzaWdubWVudC9jb21wbGV0aW9uIGVycm9yIC0gaGFuZGxlZCB3aXRoaW4gd29ya2FsbG9jYXRpb24gc2VydmljZVxuICAgICAgICAgICAgLy8gY291bGQgc2V0IHRhc2sgdG8gYmUgZGVsZXRlZCAob3IgY29tcGxldGVkIGxhdGVyKT9cbiAgICAgICAgICAgIHRoaXMuZmluaXNoRXZlbnRDb21wbGV0aW9uTG9naWMoZXZlbnRSZXNwb25zZSk7XG4gICAgICAgICAgICAvLyBiZWxvdyBhbGxvd3MgZXJyb3IgdG8gYmUgc2hvd24gb24gbmF2aWdhdGlvbiB0byBjb25maXJtYXRpb24gcGFnZVxuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2V0UHJlc2VydmVBbGVydHModHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcih7cGhyYXNlOiBDb25zdGFudHMuVEFTS19DT01QTEVUSU9OX0VSUk9SfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBwb3N0Q29tcGxldGVUYXNrSWZSZXF1aXJlZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGNsaWVudENvbnRleHRTdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKENhc2VFZGl0Q29tcG9uZW50LkNMSUVOVF9DT05URVhUKTtcbiAgICBjb25zdCB1c2VyVGFzayA9IEZpZWxkc1V0aWxzLmdldFVzZXJUYXNrRnJvbUNsaWVudENvbnRleHQoY2xpZW50Q29udGV4dFN0cik7XG4gICAgY29uc3QgW3Rhc2ssIHRhc2tUb0JlQ29tcGxldGVkXSA9IHVzZXJUYXNrID8gW3VzZXJUYXNrLnRhc2tfZGF0YSwgdXNlclRhc2suY29tcGxldGVfdGFza10gOiBbbnVsbCwgZmFsc2VdO1xuICAgIGNvbnN0IGFzc2lnbk5lZWRlZCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2Fzc2lnbk5lZWRlZCcpID09PSAndHJ1ZSc7XG4gICAgaWYgKHRhc2sgJiYgYXNzaWduTmVlZGVkICYmIHRhc2tUb0JlQ29tcGxldGVkKSB7XG4gICAgICB0aGlzLmFic3RyYWN0Q29uZmlnLmxvZ01lc3NhZ2UoYHBvc3RDb21wbGV0ZVRhc2tJZlJlcXVpcmVkIHdpdGggYXNzaWduTmVlZGVkOiB0YXNrSWQgJHt0YXNrLmlkfSBhbmQgZXZlbnQgbmFtZSAke3RoaXMuZXZlbnRUcmlnZ2VyLm5hbWV9YCk7XG4gICAgICByZXR1cm4gdGhpcy53b3JrQWxsb2NhdGlvblNlcnZpY2UuYXNzaWduQW5kQ29tcGxldGVUYXNrKHRhc2suaWQsIHRoaXMuZXZlbnRUcmlnZ2VyLm5hbWUpO1xuICAgIH0gZWxzZSBpZiAodGFzayAmJiB0YXNrVG9CZUNvbXBsZXRlZCkge1xuICAgICAgdGhpcy5hYnN0cmFjdENvbmZpZy5sb2dNZXNzYWdlKGBwb3N0Q29tcGxldGVUYXNrSWZSZXF1aXJlZDogdGFza0lkICR7dGFzay5pZH0gYW5kIGV2ZW50IG5hbWUgJHt0aGlzLmV2ZW50VHJpZ2dlci5uYW1lfWApO1xuICAgICAgcmV0dXJuIHRoaXMud29ya0FsbG9jYXRpb25TZXJ2aWNlLmNvbXBsZXRlVGFzayh0YXNrLmlkLCB0aGlzLmV2ZW50VHJpZ2dlci5uYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5pc2hFdmVudENvbXBsZXRpb25Mb2dpYyhldmVudFJlc3BvbnNlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VOb3RpZmllci5jYWNoZWRDYXNlVmlldyA9IG51bGw7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgnZXZlbnRVcmwnKTtcbiAgICBjb25zdCBjb25maXJtYXRpb246IENvbmZpcm1hdGlvbiA9IHRoaXMuYnVpbGRDb25maXJtYXRpb24oZXZlbnRSZXNwb25zZSk7XG4gICAgaWYgKGNvbmZpcm1hdGlvbiAmJiAoY29uZmlybWF0aW9uLmdldEhlYWRlcigpIHx8IGNvbmZpcm1hdGlvbi5nZXRCb2R5KCkpKSB7XG4gICAgICB0aGlzLmNvbmZpcm0oY29uZmlybWF0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbWl0U3VibWl0dGVkKGV2ZW50UmVzcG9uc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDb25maXJtYXRpb24ocmVzcG9uc2U6IG9iamVjdCk6IENvbmZpcm1hdGlvbiB7XG4gICAgaWYgKHJlc3BvbnNlWydhZnRlcl9zdWJtaXRfY2FsbGJhY2tfcmVzcG9uc2UnXSkge1xuICAgICAgcmV0dXJuIG5ldyBDb25maXJtYXRpb24oXG4gICAgICAgIHJlc3BvbnNlWydpZCddLFxuICAgICAgICByZXNwb25zZVsnY2FsbGJhY2tfcmVzcG9uc2Vfc3RhdHVzJ10sXG4gICAgICAgIHJlc3BvbnNlWydhZnRlcl9zdWJtaXRfY2FsbGJhY2tfcmVzcG9uc2UnXVsnY29uZmlybWF0aW9uX2hlYWRlciddLFxuICAgICAgICByZXNwb25zZVsnYWZ0ZXJfc3VibWl0X2NhbGxiYWNrX3Jlc3BvbnNlJ11bJ2NvbmZpcm1hdGlvbl9ib2R5J11cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8vIGNoZWNrcyB3aGV0aGVyIGN1cnJlbnQgY2xpZW50Q29udGV4dCByZWxldmFudCBmb3IgdGhlIGV2ZW50XG4gIHB1YmxpYyB0YXNrRXhpc3RzRm9yVGhpc0V2ZW50KHRhc2tJblNlc3Npb25TdG9yYWdlOiBUYXNrLCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm8sIGV2ZW50RGV0YWlsczogRXZlbnREZXRhaWxzKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0YXNrSW5TZXNzaW9uU3RvcmFnZSB8fCB0YXNrSW5TZXNzaW9uU3RvcmFnZS5jYXNlX2lkICE9PSBldmVudERldGFpbHMuY2FzZUlkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghdGFza0V2ZW50Q29tcGxldGlvbkluZm8pIHtcbiAgICAgIC8vIGlmIG5vIHRhc2sgZXZlbnQgcHJlc2VudCB0aGVuIHRoZXJlIGlzIG5vIHRhc2sgdG8gY29tcGxldGUgZnJvbSBwcmV2aW91cyBldmVudCBwcmVzZW50XG4gICAgICAvLyBFWFVJLTI2NjggLSBBZGQgYWRkaXRpb25hbCBsb2dpYyB0byBjb25maXJtIHRoZSB0YXNrIGlzIHJlbGV2YW50IHRvIHRoZSBldmVudFxuICAgICAgaWYgKHRoaXMudGFza0lzRm9yRXZlbnQodGFza0luU2Vzc2lvblN0b3JhZ2UsIGV2ZW50RGV0YWlscykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjbGllbnQgY29udGV4dCBzdGlsbCBuZWVkZWQgZm9yIGxhbmd1YWdlXG4gICAgICAgIHJlbW92ZVRhc2tGcm9tQ2xpZW50Q29udGV4dCh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRhc2tFdmVudENvbXBsZXRpb25JbmZvLnRhc2tJZCAhPT0gdGFza0luU2Vzc2lvblN0b3JhZ2UuaWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKCh0YXNrRXZlbnRDb21wbGV0aW9uSW5mby50YXNrSWQgPT09IHRhc2tJblNlc3Npb25TdG9yYWdlLmlkICYmXG4gICAgICAgICAgdGhpcy5ldmVudERldGFpbHNEb05vdE1hdGNoKHRhc2tFdmVudENvbXBsZXRpb25JbmZvLCBldmVudERldGFpbHMpKVxuICAgICAgICB8fCB0aGlzLmV2ZW50TW9yZVRoYW5EYXlBZ28odGFza0V2ZW50Q29tcGxldGlvbkluZm8uY3JlYXRlZFRpbWVzdGFtcClcbiAgICAgICkge1xuICAgICAgICAvLyBpZiB0aGUgc2Vzc2lvbiBzdG9yYWdlIG5vdCByZWxhdGVkIHRvIGV2ZW50LCBpZ25vcmUgaXQgYW5kIHJlbW92ZVxuICAgICAgICByZW1vdmVUYXNrRnJvbUNsaWVudENvbnRleHQodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UpO1xuICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKENhc2VFZGl0Q29tcG9uZW50LlRBU0tfRVZFTlRfQ09NUExFVElPTl9JTkZPKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50RGV0YWlscy5hc3NpZ25OZWVkZWQgPT09ICdmYWxzZScgJiYgZXZlbnREZXRhaWxzLnVzZXJJZCAhPT0gdGFza0luU2Vzc2lvblN0b3JhZ2UuYXNzaWduZWUpIHtcbiAgICAgICAgLy8gaWYgdGhlIHVzZXIgZG9lcyBub3QgbWF0Y2ggdGFzayBhc3NpZ25lZSwgYXNzaWduIGlzIG5vdyBuZWVkZWRcbiAgICAgICAgLy8gZGF0YSBjYW5ub3QgYmUgZGVsZXRlZCBhbmQgaWdub3JlZCBhcyBpdCBtYXRjaGVzIHVuZGVyc3RhbmRpbmdcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgnYXNzaWduTmVlZGVkJywgJ3RydWUnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkV2ZW50Q2FuQmVDb21wbGV0ZWQoeyBldmVudFRyaWdnZXIsIGV2ZW50Q2FuQmVDb21wbGV0ZWQsIGNhc2VEZXRhaWxzLCBmb3JtLCBzdWJtaXQgfTogQ2FzZUVkaXRvbkV2ZW50Q2FuQmVDb21wbGV0ZWQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnRDYW5CZUNvbXBsZXRlZCkge1xuICAgICAgLy8gU3VibWl0XG4gICAgICBjb25zdCBjYXNlRXZlbnREYXRhID0gdGhpcy5nZW5lcmF0ZUNhc2VFdmVudERhdGEoeyBldmVudFRyaWdnZXIsIGZvcm0gfSk7XG4gICAgICB0aGlzLmNhc2VTdWJtaXQoeyBmb3JtLCBjYXNlRXZlbnREYXRhLCBzdWJtaXQgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5hdmlnYXRlIHRvIHRhc2tzIHRhYiBvbiBjYXNlIGRldGFpbHMgcGFnZVxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7dGhpcy5nZXRDYXNlSWQoY2FzZURldGFpbHMpfS90YXNrc2BdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFN0YXR1cyhyZXNwb25zZTogb2JqZWN0KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5oYXNDYWxsYmFja0ZhaWxlZChyZXNwb25zZSkgPyByZXNwb25zZVsnY2FsbGJhY2tfcmVzcG9uc2Vfc3RhdHVzJ10gOiByZXNwb25zZVsnZGVsZXRlX2RyYWZ0X3Jlc3BvbnNlX3N0YXR1cyddO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNDYWxsYmFja0ZhaWxlZChyZXNwb25zZTogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlWydjYWxsYmFja19yZXNwb25zZV9zdGF0dXMnXSAhPT0gJ0NBTExCQUNLX0NPTVBMRVRFRCc7XG4gIH1cblxuICBwcml2YXRlIGV2ZW50TW9yZVRoYW5EYXlBZ28odGltZXN0YW1wOiBudW1iZXIpIHtcbiAgICBpZiAoKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gdGltZXN0YW1wKSA+ICgyNCo2MCo2MCoxMDAwKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgZXZlbnREZXRhaWxzRG9Ob3RNYXRjaCh0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm8sIGV2ZW50RGV0YWlsczogRXZlbnREZXRhaWxzKSB7XG4gICAgaWYgKHRhc2tFdmVudENvbXBsZXRpb25JbmZvLmV2ZW50SWQgIT09IGV2ZW50RGV0YWlscy5ldmVudElkXG4gICAgICB8fCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mby5jYXNlSWQgIT09IGV2ZW50RGV0YWlscy5jYXNlSWRcbiAgICAgIHx8IHRhc2tFdmVudENvbXBsZXRpb25JbmZvLnVzZXJJZCAhPT0gZXZlbnREZXRhaWxzLnVzZXJJZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgdGFza0lzRm9yRXZlbnQodGFzazogVGFzaywgZXZlbnREZXRhaWxzOiBFdmVudERldGFpbHMpOiBib29sZWFuIHtcbiAgICAvLyBFWFVJLTI2NjggLSBFbnN1cmUgZGVzY3JpcHRpb24gZm9yIHRhc2sgaW5jbHVkZXMgZXZlbnQgSURcbiAgICAvLyBOb3RlIC0gVGhpcyBpcyBhIGZhaWxzYWZlIGZvciBhbiBlZGdlIGNhc2UgdGhhdCBtYXkgbmV2ZXIgb2NjdXIgYWdhaW5cbiAgICAvLyBEZXNjcmlwdGlvbiBtYXkgbm90IGluY2x1ZGUgZXZlbnRJZCBpbiBzb21lIGNhc2VzIHdoaWNoIG1heSBtZWFuIHRhc2sgbm90IGNvbXBsZXRlZCAoaG93ZXZlciB0aGlzIHdpbGwgYmUgZWFzeSB0byBjaGVjaylcbiAgICAvLyBJbiBpbnN0YW5jZXMgb2YgdGhlIGFib3ZlIHRhc2tFdmVudENvbXBsZXRpb25JbmZvIHdpbGwgYmUgY3JlYXRlZCB0byBibG9jayB0aGlzIGNoZWNrIGZyb20gb2NjdXJyaW5nXG4gICAgdGhpcy5hYnN0cmFjdENvbmZpZy5sb2dNZXNzYWdlKGBjaGVja2luZyB0YXNrSXNGb3JFdmVudDogdGFzayBJRCAke3Rhc2suaWR9LCB0YXNrIGRlc2NyaXB0aW9uICR7dGFzay5kZXNjcmlwdGlvbn0sIGV2ZW50IG5hbWUgJHtldmVudERldGFpbHMuZXZlbnRJZH1gKTtcbiAgICByZXR1cm4gdGFzay5jYXNlX2lkID09PSBldmVudERldGFpbHMuY2FzZUlkICYmICh0YXNrLmRlc2NyaXB0aW9uPy5pbmNsdWRlcyhldmVudERldGFpbHMuZXZlbnRJZCkpO1xuICB9XG59XG4iLCI8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4iXX0=
564
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBYyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RixPQUFPLEVBSVUsZ0JBQWdCLEVBQy9CLFFBQVEsRUFDVCxNQUFNLGlCQUFpQixDQUFDO0FBR3pCLE9BQU8sRUFDTCxZQUFZLEVBQ1osWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFB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Q3ZHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLG9DQUFvQyxJQUFJLENBQUMsRUFBRSxzQkFBc0IsSUFBSSxDQUFDLFdBQVcsZ0JBQWdCLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3hKLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQzsyRUFwa0JVLGlCQUFpQjs2REFBakIsaUJBQWlCLHNRQUZqQixDQUFDLGNBQWMsQ0FBQztZQ2xDN0IsZ0NBQStCOzs7aUZEb0NsQixpQkFBaUI7Y0FON0IsU0FBUzsyQkFDRSxlQUFlLGFBR2QsQ0FBQyxjQUFjLENBQUM7c2tCQVNwQixZQUFZO2tCQURsQixLQUFLO1lBSUMsTUFBTTtrQkFEWixLQUFLO1lBSUMsUUFBUTtrQkFEZCxLQUFLO1lBSUMsU0FBUztrQkFEZixLQUFLO1lBSUMsV0FBVztrQkFEakIsS0FBSztZQUlDLFNBQVM7a0JBRGYsTUFBTTtZQUlBLFNBQVM7a0JBRGYsTUFBTTs7a0ZBeEJJLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUGFyYW1zLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBDb25zdGFudHMgfSBmcm9tICcuLi8uLi8uLi9jb21tb25zL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDb25kaXRpb25hbFNob3dSZWdpc3RyYXJTZXJ2aWNlLCBHcmV5QmFyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtcbiAgQ2FzZUVkaXRDYXNlU3VibWl0LCBDYXNlRWRpdEdlbmVyYXRlQ2FzZUV2ZW50RGF0YSwgQ2FzZUVkaXRHZXROZXh0UGFnZSxcbiAgQ2FzZUVkaXRTdWJtaXRGb3JtLFxuICBDYXNlRWRpdG9uRXZlbnRDYW5CZUNvbXBsZXRlZCxcbiAgQ2FzZUV2ZW50RGF0YSwgQ2FzZUV2ZW50VHJpZ2dlciwgQ2FzZUZpZWxkLFxuICBDYXNlVmlldywgRHJhZnQsIEh0dHBFcnJvciwgUHJvZmlsZVxufSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgVXNlckluZm8gfSBmcm9tICcuLi8uLi8uLi9kb21haW4vdXNlci91c2VyLWluZm8ubW9kZWwnO1xuaW1wb3J0IHsgRXZlbnREZXRhaWxzLCBUYXNrLCBUYXNrRXZlbnRDb21wbGV0aW9uSW5mbyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi93b3JrLWFsbG9jYXRpb24vVGFzayc7XG5pbXBvcnQge1xuICBBbGVydFNlcnZpY2UsXG4gIEZpZWxkc1B1cmdlciwgRmllbGRzVXRpbHMsIEZvcm1FcnJvclNlcnZpY2UsIEZvcm1WYWx1ZVNlcnZpY2UsIExvYWRpbmdTZXJ2aWNlLFxuICBSZWFkQ29va2llU2VydmljZSxcbiAgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLCBXaW5kb3dTZXJ2aWNlXG59IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IENvbmZpcm1hdGlvbiwgV2l6YXJkLCBXaXphcmRQYWdlIH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IEV2ZW50Q29tcGxldGlvblBhcmFtcyB9IGZyb20gJy4uL2RvbWFpbi9ldmVudC1jb21wbGV0aW9uLXBhcmFtcy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIsIFdpemFyZEZhY3RvcnlTZXJ2aWNlLCBXb3JrQWxsb2NhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBWYWxpZFBhZ2VMaXN0Q2FzZUZpZWxkc1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy92YWxpZC1wYWdlLWxpc3QtY2FzZUZpZWxkcy5zZXJ2aWNlJztcbmltcG9ydCB7IHJlbW92ZVRhc2tGcm9tQ2xpZW50Q29udGV4dCB9IGZyb20gJy4uL2Nhc2UtZWRpdC11dGlscy9jYXNlLWVkaXQudXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtY2FzZS1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICdjYXNlLWVkaXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vY2FzZS1lZGl0LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbR3JleUJhclNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIENhc2VFZGl0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IE9SSUdJTl9RVUVSWV9QQVJBTSA9ICdvcmlnaW4nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFMRVJUX01FU1NBR0UgPSAnUGFnZSBpcyBiZWluZyByZWZyZXNoZWQgc28geW91IHdpbGwgYmUgcmVkaXJlY3RlZCB0byB0aGUgZmlyc3QgcGFnZSBvZiB0aGlzIGV2ZW50Lic7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0xJRU5UX0NPTlRFWFQgPSAnY2xpZW50Q29udGV4dCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVEFTS19FVkVOVF9DT01QTEVUSU9OX0lORk8gPSAndGFza0V2ZW50Q29tcGxldGlvbkluZm8nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN1Ym1pdDogKGNhc2VFdmVudERhdGE6IENhc2VFdmVudERhdGEsIHByb2ZpbGU/OiBQcm9maWxlKSA9PiBPYnNlcnZhYmxlPG9iamVjdD47XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZhbGlkYXRlOiAoY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSwgcGFnZUlkOiBzdHJpbmcpID0+IE9ic2VydmFibGU8b2JqZWN0PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2F2ZURyYWZ0OiAoY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSkgPT4gT2JzZXJ2YWJsZTxEcmFmdD47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhbmNlbGxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzdWJtaXR0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyB3aXphcmQ6IFdpemFyZDtcblxuICBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBjb25maXJtYXRpb246IENvbmZpcm1hdGlvbjtcblxuICBwdWJsaWMgbmF2aWdhdGlvbk9yaWdpbjogYW55O1xuXG4gIHB1YmxpYyBpbml0aWFsVXJsOiBzdHJpbmc7XG5cbiAgcHVibGljIGlzUGFnZVJlZnJlc2hlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgaXNTdWJtaXR0aW5nOiBib29sZWFuO1xuXG4gIHB1YmxpYyBldmVudENvbXBsZXRpb25QYXJhbXM6IEV2ZW50Q29tcGxldGlvblBhcmFtcztcblxuICBwdWJsaWMgc3VibWl0UmVzcG9uc2U6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgcHVibGljIGlzRXZlbnRDb21wbGV0aW9uQ2hlY2tzUmVxdWlyZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgaXNDYXNlRmxhZ1N1Ym1pc3Npb24gPSBmYWxzZTtcblxuICBwdWJsaWMgaWdub3JlV2FybmluZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBpc0xpbmtlZENhc2VzU3VibWlzc2lvbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBlcnJvcjogSHR0cEVycm9yO1xuXG4gIHB1YmxpYyBjYWxsYmFja0Vycm9yc1N1YmplY3Q6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIHZhbGlkUGFnZUxpc3Q6IFdpemFyZFBhZ2VbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZU5vdGlmaWVyOiBDYXNlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkc1V0aWxzOiBGaWVsZHNVdGlscyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkc1B1cmdlcjogRmllbGRzUHVyZ2VyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVnaXN0cmFyU2VydmljZTogQ29uZGl0aW9uYWxTaG93UmVnaXN0cmFyU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpemFyZEZhY3Rvcnk6IFdpemFyZEZhY3RvcnlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dzU2VydmljZTogV2luZG93U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1WYWx1ZVNlcnZpY2U6IEZvcm1WYWx1ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtRXJyb3JTZXJ2aWNlOiBGb3JtRXJyb3JTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9hZGluZ1NlcnZpY2U6IExvYWRpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmFsaWRQYWdlTGlzdENhc2VGaWVsZHNTZXJ2aWNlOiBWYWxpZFBhZ2VMaXN0Q2FzZUZpZWxkc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrQWxsb2NhdGlvblNlcnZpY2U6IFdvcmtBbGxvY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWJzdHJhY3RDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29va2llU2VydmljZTogUmVhZENvb2tpZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLndpemFyZCA9IHRoaXMud2l6YXJkRmFjdG9yeS5jcmVhdGUodGhpcy5ldmVudFRyaWdnZXIpO1xuICAgIHRoaXMuaW5pdGlhbFVybCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2V2ZW50VXJsJyk7XG4gICAgdGhpcy5pc1BhZ2VSZWZyZXNoZWQgPSBKU09OLnBhcnNlKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2lzUGFnZVJlZnJlc2hlZCcpKTtcblxuICAgIHRoaXMuY2hlY2tQYWdlUmVmcmVzaCgpO1xuXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBkYXRhOiBuZXcgRm9ybUdyb3VwKHt9KSxcbiAgICAgIGV2ZW50OiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgaWQ6IFt0aGlzLmV2ZW50VHJpZ2dlci5pZCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgIHN1bW1hcnk6IFsnJ10sXG4gICAgICAgIGRlc2NyaXB0aW9uOiBbJyddXG4gICAgICB9KVxuICAgIH0pO1xuXG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtczogUGFyYW1zKSA9PiB7XG4gICAgICB0aGlzLm5hdmlnYXRpb25PcmlnaW4gPSBwYXJhbXNbQ2FzZUVkaXRDb21wb25lbnQuT1JJR0lOX1FVRVJZX1BBUkFNXTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmNhbGxiYWNrRXJyb3JzU3ViamVjdCkge1xuICAgICAgdGhpcy5jYWxsYmFja0Vycm9yc1N1YmplY3QudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2hlY2tQYWdlUmVmcmVzaCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5pc1BhZ2VSZWZyZXNoZWQgJiYgdGhpcy5pbml0aWFsVXJsKSB7XG4gICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKCdldmVudFVybCcpO1xuICAgICAgdGhpcy53aW5kb3dzU2VydmljZS5hbGVydChDYXNlRWRpdENvbXBvbmVudC5BTEVSVF9NRVNTQUdFKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLmluaXRpYWxVcmxdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldFBhZ2UocGFnZUlkOiBzdHJpbmcpOiBXaXphcmRQYWdlIHtcbiAgICByZXR1cm4gdGhpcy53aXphcmQuZ2V0UGFnZShwYWdlSWQsIHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKHRoaXMuZXZlbnRUcmlnZ2VyLCB0aGlzLmZvcm0pKTtcbiAgfVxuXG4gIHB1YmxpYyBmaXJzdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBmaXJzdFBhZ2UgPSB0aGlzLndpemFyZC5maXJzdFBhZ2UodGhpcy5maWVsZHNVdGlscy5idWlsZENhblNob3dQcmVkaWNhdGUodGhpcy5ldmVudFRyaWdnZXIsIHRoaXMuZm9ybSkpO1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbZmlyc3RQYWdlID8gZmlyc3RQYWdlLmlkIDogJ3N1Ym1pdCddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVUb1BhZ2UocGFnZUlkOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBwYWdlID0gdGhpcy5nZXRQYWdlKHBhZ2VJZCk7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYWdlID8gcGFnZS5pZCA6ICdzdWJtaXQnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIG5leHQoY3VycmVudFBhZ2VJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5pbml0aWFsVXJsID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnZXZlbnRVcmwnKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnJvdXRlci51cmwgJiYgIXRoaXMuaW5pdGlhbFVybCkge1xuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgnZXZlbnRVcmwnLCB0aGlzLnJvdXRlci51cmwpO1xuICAgIH1cbiAgICB0aGlzLmZpZWxkc1B1cmdlci5jbGVhckhpZGRlbkZpZWxkcyh0aGlzLmZvcm0sIHRoaXMud2l6YXJkLCB0aGlzLmV2ZW50VHJpZ2dlciwgY3VycmVudFBhZ2VJZCk7XG4gICAgY29uc3QgbmV4dFBhZ2UgPSB0aGlzLmdldE5leHRQYWdlKHtcbiAgICAgIGN1cnJlbnRQYWdlSWQsXG4gICAgICB3aXphcmQ6IHRoaXMud2l6YXJkLFxuICAgICAgZXZlbnRUcmlnZ2VyOiB0aGlzLmV2ZW50VHJpZ2dlcixcbiAgICAgIGZvcm06IHRoaXMuZm9ybSxcbiAgICB9KTtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKCFuZXh0UGFnZSAmJlxuICAgICAgISh0aGlzLmV2ZW50VHJpZ2dlci5zaG93X3N1bW1hcnkgfHwgdGhpcy5ldmVudFRyaWdnZXIuc2hvd19zdW1tYXJ5ID09PSBudWxsKSAmJlxuICAgICAgIXRoaXMuZXZlbnRUcmlnZ2VyLnNob3dfZXZlbnRfbm90ZXMpIHtcbiAgICAgIHRoaXMuc3VibWl0Rm9ybSh7XG4gICAgICAgIGV2ZW50VHJpZ2dlcjogdGhpcy5ldmVudFRyaWdnZXIsXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcbiAgICAgICAgc3VibWl0OiB0aGlzLnN1Ym1pdCxcbiAgICAgICAgY2FzZURldGFpbHM6IHRoaXMuY2FzZURldGFpbHMsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlZ2lzdHJhclNlcnZpY2UucmVzZXQoKTtcblxuICAgIGNvbnN0IHRoZVF1ZXJ5UGFyYW1zOiBQYXJhbXMgPSB7fTtcbiAgICB0aGVRdWVyeVBhcmFtc1tDYXNlRWRpdENvbXBvbmVudC5PUklHSU5fUVVFUllfUEFSQU1dID0gdGhpcy5uYXZpZ2F0aW9uT3JpZ2luO1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbbmV4dFBhZ2UgPyBuZXh0UGFnZS5pZCA6ICdzdWJtaXQnXSwgeyBxdWVyeVBhcmFtczogdGhlUXVlcnlQYXJhbXMsIHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gIH1cblxuICBwdWJsaWMgcHJldmlvdXMoY3VycmVudFBhZ2VJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5maWVsZHNQdXJnZXIuY2xlYXJIaWRkZW5GaWVsZHModGhpcy5mb3JtLCB0aGlzLndpemFyZCwgdGhpcy5ldmVudFRyaWdnZXIsIGN1cnJlbnRQYWdlSWQpO1xuICAgIHRoaXMucmVnaXN0cmFyU2VydmljZS5yZXNldCgpO1xuXG4gICAgY29uc3QgcHJldmlvdXNQYWdlID0gdGhpcy53aXphcmQucHJldmlvdXNQYWdlKGN1cnJlbnRQYWdlSWQsIHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKHRoaXMuZXZlbnRUcmlnZ2VyLCB0aGlzLmZvcm0pKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghcHJldmlvdXNQYWdlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBjb25zdCB0aGVRdWVyeVBhcmFtczogUGFyYW1zID0ge307XG4gICAgdGhlUXVlcnlQYXJhbXNbQ2FzZUVkaXRDb21wb25lbnQuT1JJR0lOX1FVRVJZX1BBUkFNXSA9IHRoaXMubmF2aWdhdGlvbk9yaWdpbjtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3ByZXZpb3VzUGFnZS5pZF0sIHsgcXVlcnlQYXJhbXM6IHRoZVF1ZXJ5UGFyYW1zLCByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIGhhc1ByZXZpb3VzKGN1cnJlbnRQYWdlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLndpemFyZC5oYXNQcmV2aW91c1BhZ2UoY3VycmVudFBhZ2VJZCwgdGhpcy5maWVsZHNVdGlscy5idWlsZENhblNob3dQcmVkaWNhdGUodGhpcy5ldmVudFRyaWdnZXIsIHRoaXMuZm9ybSkpO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbGxlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFN1Ym1pdHRlZChyZXNwb25zZTogUmVjb3JkPHN0cmluZywgYW55Pik6IHZvaWQge1xuICAgIHRoaXMuc3VibWl0dGVkLmVtaXQoeyBjYXNlSWQ6IHJlc3BvbnNlWydpZCddLCBzdGF0dXM6IHRoaXMuZ2V0U3RhdHVzKHJlc3BvbnNlKSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXROZXh0UGFnZSh7IHdpemFyZCwgY3VycmVudFBhZ2VJZCwgZXZlbnRUcmlnZ2VyLCBmb3JtIH06IENhc2VFZGl0R2V0TmV4dFBhZ2UpOiBXaXphcmRQYWdlIHtcbiAgICByZXR1cm4gd2l6YXJkLm5leHRQYWdlKFxuICAgICAgY3VycmVudFBhZ2VJZCxcbiAgICAgIHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKGV2ZW50VHJpZ2dlciwgZm9ybSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNvbmZpcm0oY29uZmlybWF0aW9uOiBDb25maXJtYXRpb24pOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICB0aGlzLmNvbmZpcm1hdGlvbiA9IGNvbmZpcm1hdGlvbjtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoWydjb25maXJtJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRGb3JtKHsgZXZlbnRUcmlnZ2VyLCBmb3JtLCBjYXNlRGV0YWlscywgc3VibWl0IH06IENhc2VFZGl0U3VibWl0Rm9ybSk6IHZvaWQge1xuICAgIHRoaXMuaXNTdWJtaXR0aW5nID0gdHJ1ZTtcbiAgICAvLyBXZSBoYXZlIHRvIHJ1biB0aGUgZXZlbnQgY29tcGxldGlvbiBjaGVja3MgaWYgdGFzayBpbiBzZXNzaW9uIHN0b3JhZ2VcbiAgICAvLyBhbmQgaWYgdGhlIHRhc2sgaXMgaW4gc2Vzc2lvbiBzdG9yYWdlLCB0aGVuIGlzIGl0IGFzc29jaWF0ZWQgdG8gdGhlIGNhc2VcbiAgICBjb25zdCBjbGllbnRDb250ZXh0U3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShDYXNlRWRpdENvbXBvbmVudC5DTElFTlRfQ09OVEVYVCk7XG4gICAgY29uc3QgdXNlclRhc2sgPSBGaWVsZHNVdGlscy5nZXRVc2VyVGFza0Zyb21DbGllbnRDb250ZXh0KGNsaWVudENvbnRleHRTdHIpO1xuICAgIGNvbnN0IHRhc2tJblNlc3Npb25TdG9yYWdlID0gdXNlclRhc2sgPyB1c2VyVGFzay50YXNrX2RhdGEgOiBudWxsO1xuICAgIGxldCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm87XG4gICAgbGV0IHVzZXJJbmZvOiBVc2VySW5mbztcbiAgICBjb25zdCB0YXNrRXZlbnRDb21wbGV0aW9uU3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbShDYXNlRWRpdENvbXBvbmVudC5UQVNLX0VWRU5UX0NPTVBMRVRJT05fSU5GTyk7XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGNvbnN0IGFzc2lnbk5lZWRlZCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2Fzc2lnbk5lZWRlZCcpO1xuICAgIGlmICh0YXNrRXZlbnRDb21wbGV0aW9uU3RyKSB7XG4gICAgICB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbyA9IEpTT04ucGFyc2UodGFza0V2ZW50Q29tcGxldGlvblN0cik7XG4gICAgfVxuICAgIGlmICh1c2VySW5mb1N0cikge1xuICAgICAgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICB9XG4gICAgY29uc3QgZXZlbnRJZCA9IHRoaXMuZ2V0RXZlbnRJZChmb3JtKTtcbiAgICBjb25zdCBjYXNlSWQgPSB0aGlzLmdldENhc2VJZChjYXNlRGV0YWlscyk7XG4gICAgY29uc3QgdXNlcklkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICBjb25zdCBldmVudERldGFpbHM6IEV2ZW50RGV0YWlscyA9IHtldmVudElkLCBjYXNlSWQsIHVzZXJJZCwgYXNzaWduTmVlZGVkfTtcbiAgICBpZiAodGhpcy50YXNrRXhpc3RzRm9yVGhpc0V2ZW50KHRhc2tJblNlc3Npb25TdG9yYWdlLCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbywgZXZlbnREZXRhaWxzKSkge1xuICAgICAgdGhpcy5hYnN0cmFjdENvbmZpZy5sb2dNZXNzYWdlKGB0YXNrIGV4aXN0IGZvciB0aGlzIGV2ZW50IGZvciBjYXNlSWQgYW5kIGV2ZW50SWQgYXMgJHtjYXNlSWR9ICR7ZXZlbnRJZH1gKTtcbiAgICAgIC8vIFNob3cgZXZlbnQgY29tcGxldGlvbiBjb21wb25lbnQgdG8gcGVyZm9ybSBldmVudCBjb21wbGV0aW9uIGNoZWNrc1xuICAgICAgdGhpcy5ldmVudENvbXBsZXRpb25QYXJhbXMgPSAoe1xuICAgICAgICBjYXNlSWQsXG4gICAgICAgIGV2ZW50SWQsXG4gICAgICAgIHRhc2s6IHRhc2tJblNlc3Npb25TdG9yYWdlXG4gICAgICB9KTtcbiAgICAgIC8vIGFkZCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbyBhZ2FpbiB0byBlbnN1cmUgbGluayBjdXJyZW50IGV2ZW50IHdpdGggdGFzayBpZFxuICAgICAgLy8gbm90ZTogcHJldmlvdXMgdXNhZ2Ugd2FzIGNyZWF0ZWQgaGVyZSBzbyB0aGlzIGlzIHRvIGVuc3VyZSBjb3JyZWN0IGZ1bmN0aW9uYWxpdHkgY29udGludWVzXG4gICAgICBjb25zdCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm8gPSB7XG4gICAgICAgIGNhc2VJZCxcbiAgICAgICAgZXZlbnRJZCxcbiAgICAgICAgdXNlcklkLFxuICAgICAgICB0YXNrSWQ6IHRhc2tJblNlc3Npb25TdG9yYWdlLmlkLFxuICAgICAgICBjcmVhdGVkVGltZXN0YW1wOiBEYXRlLm5vdygpfTtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oQ2FzZUVkaXRDb21wb25lbnQuVEFTS19FVkVOVF9DT01QTEVUSU9OX0lORk8sIEpTT04uc3RyaW5naWZ5KHRhc2tFdmVudENvbXBsZXRpb25JbmZvKSk7XG4gICAgICB0aGlzLmlzRXZlbnRDb21wbGV0aW9uQ2hlY2tzUmVxdWlyZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUYXNrIG5vdCBpbiBzZXNzaW9uIHN0b3JhZ2UsIHByb2NlZWQgdG8gc3VibWl0XG4gICAgICBjb25zdCBjYXNlRXZlbnREYXRhID0gdGhpcy5nZW5lcmF0ZUNhc2VFdmVudERhdGEoe1xuICAgICAgICBldmVudFRyaWdnZXIsXG4gICAgICAgIGZvcm1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5jYXNlU3VibWl0KHtmb3JtLFxuICAgICAgICBjYXNlRXZlbnREYXRhLFxuICAgICAgICBzdWJtaXRcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlSWQoY2FzZURldGFpbHM6IENhc2VWaWV3KTogc3RyaW5nIHtcbiAgICByZXR1cm4gKGNhc2VEZXRhaWxzID8gY2FzZURldGFpbHMuY2FzZV9pZCA6ICcnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXZlbnRJZChmb3JtOiBGb3JtR3JvdXApOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtLnZhbHVlLmV2ZW50LmlkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNhc2VFdmVudERhdGEoeyBldmVudFRyaWdnZXIsIGZvcm0gfTogQ2FzZUVkaXRHZW5lcmF0ZUNhc2VFdmVudERhdGEgKTogQ2FzZUV2ZW50RGF0YSB7XG4gICAgY29uc3QgY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSA9IHtcbiAgICAgIGRhdGE6IHRoaXMucmVwbGFjZUVtcHR5Q29tcGxleEZpZWxkVmFsdWVzKFxuICAgICAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2Uuc2FuaXRpc2UoXG4gICAgICAgICAgdGhpcy5yZXBsYWNlSGlkZGVuRm9ybVZhbHVlc1dpdGhPcmlnaW5hbENhc2VEYXRhKFxuICAgICAgICAgICAgZm9ybS5nZXQoJ2RhdGEnKSBhcyBGb3JtR3JvdXAsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcykpKSxcbiAgICAgIGV2ZW50OiBmb3JtLnZhbHVlLmV2ZW50XG4gICAgfSBhcyBDYXNlRXZlbnREYXRhO1xuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5jbGVhck5vbkNhc2VGaWVsZHMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5yZW1vdmVOdWxsTGFiZWxzKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlRW1wdHlEb2N1bWVudHMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAgIC8vIFJlbW92ZSBjb2xsZWN0aW9uIGZpZWxkcyB0aGF0IGhhdmUgXCJtaW5cIiB2YWxpZGF0aW9uIG9mIGdyZWF0ZXIgdGhhbiB6ZXJvIHNldCBvbiB0aGUgRmllbGRUeXBlIGJ1dCBhcmUgZW1wdHk7XG4gICAgLy8gdGhlc2Ugd2lsbCBmYWlsIHZhbGlkYXRpb25cbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlRW1wdHlDb2xsZWN0aW9uc1dpdGhNaW5WYWxpZGF0aW9uKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgICAvLyBGb3IgQ2FzZSBGbGFnIHN1Ym1pc3Npb25zICh3aGVyZSBhIEZsYWdMYXVuY2hlciBmaWVsZCBpcyBwcmVzZW50IGluIHRoZSBldmVudCB0cmlnZ2VyKSwgdGhlIGZsYWcgZGV0YWlscyBkYXRhXG4gICAgLy8gbmVlZHMgcG9wdWxhdGluZyBmb3IgZWFjaCBGbGFncyBmaWVsZCwgdGhlbiB0aGUgRmxhZ0xhdW5jaGVyIGZpZWxkIG5lZWRzIHJlbW92aW5nXG4gICAgdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLnJlcG9wdWxhdGVGb3JtRGF0YUZyb21DYXNlRmllbGRWYWx1ZXMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAgIC8vIERhdGEgcG9wdWxhdGlvbiBzdGVwIHJlcXVpcmVkIGZvciBMaW5rZWQgQ2FzZXNcbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucG9wdWxhdGVMaW5rZWRDYXNlc0RldGFpbHNGcm9tQ2FzZUZpZWxkcyhjYXNlRXZlbnREYXRhLmRhdGEsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcyk7XG4gICAgLy8gUmVtb3ZlIFwiTGF1bmNoZXJcIi10eXBlIGZpZWxkcyAodGhlc2UgaGF2ZSBubyB2YWx1ZXMgYW5kIGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgcGVyc2lzdGVkKVxuICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5yZW1vdmVDYXNlRmllbGRzT2ZUeXBlKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzLCBbJ0ZsYWdMYXVuY2hlcicsICdDb21wb25lbnRMYXVuY2hlciddKTtcblxuICAgIC8vIGRlbGV0ZSBmaWVsZHMgd2hpY2ggYXJlIG5vdCBwYXJ0IG9mIHRoZSBjYXNlIGV2ZW50IGpvdXJuZXkgd2l6YXJkIHBhZ2VzIGNhc2UgZmllbGRzXG4gICAgdGhpcy52YWxpZFBhZ2VMaXN0Q2FzZUZpZWxkc1NlcnZpY2UuZGVsZXRlTm9uVmFsaWRhdGVkRmllbGRzKHRoaXMudmFsaWRQYWdlTGlzdCwgY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMsIGZhbHNlLCBmb3JtLmNvbnRyb2xzWydkYXRhJ10udmFsdWUpO1xuICAgIGNvbnN0IHBhZ2VMaXN0Q2FzZUZpZWxkcyA9IHRoaXMudmFsaWRQYWdlTGlzdENhc2VGaWVsZHNTZXJ2aWNlLnZhbGlkUGFnZUxpc3RDYXNlRmllbGRzKHRoaXMudmFsaWRQYWdlTGlzdCwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzLCBmb3JtLmNvbnRyb2xzWydkYXRhJ10udmFsdWUpO1xuICAgIC8vIFJlbW92ZSB1bm5lY2Vzc2FyeSBjYXNlIGZpZWxkcyB3aGljaCBhcmUgaGlkZGVuLCBvbmx5IGlmIHRoZSBzdWJtaXNzaW9uIGlzICpub3QqIGZvciBDYXNlIEZsYWdzXG4gICAgaWYgKCF0aGlzLmlzQ2FzZUZsYWdTdWJtaXNzaW9uKSB7XG4gICAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlVW5uZWNlc3NhcnlGaWVsZHMoY2FzZUV2ZW50RGF0YS5kYXRhLCBwYWdlTGlzdENhc2VGaWVsZHMsIHRydWUsIHRydWUpO1xuICAgIH1cblxuICAgIGNhc2VFdmVudERhdGEuZXZlbnRfdG9rZW4gPSBldmVudFRyaWdnZXIuZXZlbnRfdG9rZW47XG4gICAgY2FzZUV2ZW50RGF0YS5pZ25vcmVfd2FybmluZyA9IHRoaXMuaWdub3JlV2FybmluZztcbiAgICBpZiAodGhpcy5jb25maXJtYXRpb24pIHtcbiAgICAgIGNhc2VFdmVudERhdGEuZGF0YSA9IHt9O1xuICAgIH1cblxuICAgIHJldHVybiBjYXNlRXZlbnREYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2VzIG5vbi1hcnJheSB2YWx1ZSBvYmplY3RzIHdpdGggYG51bGxgIGZvciBhbnkgQ29tcGxleC10eXBlIGZpZWxkcyB3aG9zZSB2YWx1ZSBpcyBlZmZlY3RpdmVseSBlbXB0eSwgaS5lLlxuICAgKiBhbGwgaXRzIHN1Yi1maWVsZHMgYW5kIGRlc2NlbmRhbnRzIGFyZSBgbnVsbGAgb3IgYHVuZGVmaW5lZGAuXG4gICAqXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBvYmplY3QgdHJlZSByZXByZXNlbnRpbmcgYWxsIHRoZSBmb3JtIGZpZWxkIGRhdGFcbiAgICogQHJldHVybnMgVGhlIGZvcm0gZmllbGQgZGF0YSBtb2RpZmllZCBhY2NvcmRpbmdseVxuICAgKi9cbiAgcHJpdmF0ZSByZXBsYWNlRW1wdHlDb21wbGV4RmllbGRWYWx1ZXMoZGF0YTogb2JqZWN0KTogb2JqZWN0IHtcbiAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhW2tleV0pICYmIHR5cGVvZiBkYXRhW2tleV0gPT09ICdvYmplY3QnICYmICFGaWVsZHNVdGlscy5jb250YWluc05vbkVtcHR5VmFsdWVzKGRhdGFba2V5XSkpIHtcbiAgICAgICAgZGF0YVtrZXldID0gbnVsbDtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYXZlcnNlICphbGwqIHZhbHVlcyBvZiBhIHtAbGluayBGb3JtR3JvdXB9LCBpbmNsdWRpbmcgdGhvc2UgZm9yIGRpc2FibGVkIGZpZWxkcyAoaS5lLiBoaWRkZW4gb25lcyksIHJlcGxhY2luZyB0aGVcbiAgICogdmFsdWUgb2YgYW55IHRoYXQgYXJlIGhpZGRlbiBBTkQgaGF2ZSBgcmV0YWluX2hpZGRlbl92YWx1ZWAgc2V0IHRvIGB0cnVlYCBpbiB0aGUgY29ycmVzcG9uZGluZyBgQ2FzZUZpZWxkYCwgd2l0aFxuICAgKiB0aGUgKm9yaWdpbmFsKiB2YWx1ZSBoZWxkIGluIHRoZSBgQ2FzZUZpZWxkYCBvYmplY3QuXG4gICAqXG4gICAqIFRoaXMgaXMgYXMgcGVyIGRlc2lnbiBpbiBFVUktMzYyMiwgd2hlcmUgYW55IHVzZXItZHJpdmVuIHVwZGF0ZXMgdG8gaGlkZGVuIGZpZWxkcyB3aXRoIGByZXRhaW5faGlkZGVuX3ZhbHVlYCA9XG4gICAqIGB0cnVlYCBhcmUgaWdub3JlZCAodGh1cyByZXRhaW5pbmcgdGhlIHZhbHVlIGRpc3BsYXllZCBvcmlnaW5hbGx5KS5cbiAgICpcbiAgICogKiBGb3IgQ29tcGxleCBmaWVsZCB0eXBlcywgdGhlIHJlcGxhY2VtZW50IGFib3ZlIGlzIHBlcmZvcm1lZCByZWN1cnNpdmVseSBmb3IgYWxsIGhpZGRlbiBzdWItZmllbGRzIHdpdGhcbiAgICogYHJldGFpbl9oaWRkZW5fdmFsdWVgID0gYHRydWVgLlxuICAgKlxuICAgKiAqIEZvciBDb2xsZWN0aW9uIGZpZWxkIHR5cGVzLCBpbmNsdWRpbmcgY29sbGVjdGlvbnMgb2YgQ29tcGxleCBhbmQgRG9jdW1lbnQgZmllbGQgdHlwZXMsIHRoZSByZXBsYWNlbWVudCBpc1xuICAgKiBwZXJmb3JtZWQgZm9yIGFsbCBmaWVsZHMgaW4gdGhlIGNvbGxlY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSBmb3JtR3JvdXAgVGhlIGBGb3JtR3JvdXBgIGluc3RhbmNlIHdob3NlIHJhdyB2YWx1ZXMgYXJlIHRvIGJlIHRyYXZlcnNlZFxuICAgKiBAcGFyYW0gY2FzZUZpZWxkcyBUaGUgYXJyYXkgb2Yge0BsaW5rIENhc2VGaWVsZH0gZG9tYWluIG1vZGVsIG9iamVjdHMgY29ycmVzcG9uZGluZyB0byBmaWVsZHMgaW4gYGZvcm1Hcm91cGBcbiAgICogQHBhcmFtIHBhcmVudEZpZWxkIFJlZmVyZW5jZSB0byB0aGUgcGFyZW50IGBDYXNlRmllbGRgLiBVc2VkIGZvciByZXRyaWV2aW5nIHRoZSBzdWItZmllbGQgdmFsdWVzIG9mIGEgQ29tcGxleCBmaWVsZFxuICAgKiB0byBwZXJmb3JtIHJlY3Vyc2l2ZSByZXBsYWNlbWVudCAtIHRoZSBzdWItZmllbGQgYENhc2VGaWVsZGBzIHRoZW1zZWx2ZXMgZG8gKm5vdCogY29udGFpbiBhbnkgdmFsdWVzXG4gICAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIHRoZSAqcmF3KiBmb3JtIHZhbHVlIGRhdGEgKGFzIGtleS12YWx1ZSBwYWlycyksIHdpdGggYW55IHZhbHVlIHJlcGxhY2VtZW50cyBhcyBuZWNlc3NhcnlcbiAgICovXG4gIHByaXZhdGUgcmVwbGFjZUhpZGRlbkZvcm1WYWx1ZXNXaXRoT3JpZ2luYWxDYXNlRGF0YShmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10sIHBhcmVudEZpZWxkPzogQ2FzZUZpZWxkKTogb2JqZWN0IHtcbiAgICAvLyBHZXQgdGhlIHJhdyBmb3JtIHZhbHVlIGRhdGEsIHdoaWNoIGluY2x1ZGVzIHRoZSB2YWx1ZXMgb2YgYW55IGRpc2FibGVkIGNvbnRyb2xzLCBhcyBrZXktdmFsdWUgcGFpcnNcbiAgICBjb25zdCByYXdGb3JtVmFsdWVEYXRhID0gZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG5cbiAgICAvLyBQbGFjZSBhbGwgY2FzZSBmaWVsZHMgaW4gYSBsb29rdXAgb2JqZWN0LCBzbyB0aGV5IGNhbiBiZSByZXRyaWV2ZWQgYnkgaWRcbiAgICBjb25zdCBjYXNlRmllbGRzTG9va3VwID0ge307XG4gICAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IGNhc2VGaWVsZHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNhc2VGaWVsZHNMb29rdXBbY2FzZUZpZWxkc1tpXS5pZF0gPSBjYXNlRmllbGRzW2ldO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2UgYW55IGZvcm0gdmFsdWUgd2l0aCB0aGUgb3JpZ2luYWwsIHdoZXJlIGl0cyBDYXNlRmllbGQgaXMgaGlkZGVuIEFORCBoYXMgdGhlIHJldGFpbl9oaWRkZW5fdmFsdWUgZmxhZyBzZXRcbiAgICAgKiB0byB0cnVlLlxuICAgICAqXG4gICAgICogSWYgdGhlIENhc2VGaWVsZCdzIGBoaWRkZW5gIGF0dHJpYnV0ZSBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlbiBjaGVjayB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgcGFyZW50IENhc2VGaWVsZCAoaWZcbiAgICAgKiBvbmUgZXhpc3RzKS4gVGhpcyBpcyBvY2N1cnJpbmcgKGFuZCBpcyBwb3NzaWJseSBhIGJ1Zykgd2hlbiBhIENhc2VGaWVsZCBpcyBhIHN1Yi1maWVsZCBvZiBhIENvbXBsZXggdHlwZSwgb3IgYW5cbiAgICAgKiBpdGVtIGluIGEgQ29sbGVjdGlvbiB0eXBlLlxuICAgICAqXG4gICAgICogSWYgdGhlIGZpZWxkIGlzIGEgQ29tcGxleCB0eXBlIHdpdGggcmV0YWluX2hpZGRlbl92YWx1ZSA9IHRydWUsIHBlcmZvcm0gYSByZWN1cnNpdmUgcmVwbGFjZW1lbnQgZm9yIGFsbCAoaGlkZGVuKVxuICAgICAqIHN1Yi1maWVsZHMgd2l0aCByZXRhaW5faGlkZGVuX3ZhbHVlID0gdHJ1ZSwgdXNpbmcgdGhlaXIgb3JpZ2luYWwgQ2FzZUZpZWxkIHZhbHVlcyAoZnJvbSB0aGUgYGZvcm1hdHRlZF92YWx1ZWBcbiAgICAgKiBhdHRyaWJ1dGUpLlxuICAgICAqXG4gICAgICogSWYgdGhlIGZpZWxkIGlzIGEgQ29sbGVjdGlvbiB0eXBlIHdpdGggcmV0YWluX2hpZGRlbl92YWx1ZSA9IHRydWUsIHRoZSBlbnRpcmUgY29sbGVjdGlvbiBpcyByZXBsYWNlZCB3aXRoIHRoZVxuICAgICAqIG9yaWdpbmFsIGZyb20gYGZvcm1hdHRlZF92YWx1ZWAuIFRoaXMgYXBwbGllcyB0byAqYWxsKiB0eXBlcyBvZiBDb2xsZWN0aW9ucy5cbiAgICAgKi9cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIE9iamVjdC5rZXlzKHJhd0Zvcm1WYWx1ZURhdGEpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgY29uc3QgY2FzZUZpZWxkOiBDYXNlRmllbGQgPSBjYXNlRmllbGRzTG9va3VwW2tleV07XG4gICAgICAvLyBJZiBjYXNlRmllbGQuaGlkZGVuIGlzIE5PVCB0cnV0aHkgYW5kIGFsc28gTk9UIGVxdWFsIHRvIGZhbHNlLCB0aGVuIGl0IG11c3QgYmUgbnVsbC91bmRlZmluZWQgKHJlbWVtYmVyIHRoYXRcbiAgICAgIC8vIGJvdGggbnVsbCBhbmQgdW5kZWZpbmVkIGFyZSBlcXVhbCB0byAqbmVpdGhlciBmYWxzZSBub3IgdHJ1ZSopXG4gICAgICBpZiAoY2FzZUZpZWxkPy5yZXRhaW5faGlkZGVuX3ZhbHVlICYmXG4gICAgICAgIChjYXNlRmllbGQ/LmhpZGRlbiB8fCAoY2FzZUZpZWxkPy5oaWRkZW4gIT09IGZhbHNlICYmIHBhcmVudEZpZWxkPy5oaWRkZW4pKSkge1xuICAgICAgICBpZiAoY2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnKSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVDb21wbGV4RmllbGQoY2FzZUZpZWxkLCBmb3JtR3JvdXAsIGtleSwgcmF3Rm9ybVZhbHVlRGF0YSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVOb25Db21wbGV4RmllbGQocGFyZW50RmllbGQsIHJhd0Zvcm1WYWx1ZURhdGEsIGtleSwgY2FzZUZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJhd0Zvcm1WYWx1ZURhdGE7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU5vbkNvbXBsZXhGaWVsZChwYXJlbnRGaWVsZDogQ2FzZUZpZWxkLCByYXdGb3JtVmFsdWVEYXRhLCBrZXk6IHN0cmluZywgY2FzZUZpZWxkOiBDYXNlRmllbGQpIHtcbiAgICAvLyBEZWZhdWx0IGNhc2UgYWxzbyBoYW5kbGVzIGNvbGxlY3Rpb25zIG9mICphbGwqIHR5cGVzOyB0aGUgZW50aXJlIGNvbGxlY3Rpb24gaW4gcmF3Rm9ybVZhbHVlRGF0YSB3aWxsIGJlXG4gICAgLy8gcmVwbGFjZWQgd2l0aCB0aGUgb3JpZ2luYWwgZnJvbSBmb3JtYXR0ZWRfdmFsdWVcbiAgICAvLyBVc2UgdGhlIENhc2VGaWVsZCdzIGV4aXN0aW5nICpmb3JtYXR0ZWRfdmFsdWUqIGZyb20gdGhlIHBhcmVudCwgaWYgYXZhaWxhYmxlLiAoVGhpcyBpcyBuZWNlc3NhcnkgZm9yXG4gICAgLy8gQ29tcGxleCBmaWVsZHMsIHdob3NlIHN1Yi1maWVsZHMgZG8gbm90IGhvbGQgYW55IHZhbHVlcyBpbiB0aGUgbW9kZWwuKSBPdGhlcndpc2UsIHVzZSBmb3JtYXR0ZWRfdmFsdWVcbiAgICAvLyBmcm9tIHRoZSBDYXNlRmllbGQgaXRzZWxmLlxuICAgIGlmIChwYXJlbnRGaWVsZCAmJiBwYXJlbnRGaWVsZC5mb3JtYXR0ZWRfdmFsdWUpIHtcbiAgICAgIHJhd0Zvcm1WYWx1ZURhdGFba2V5XSA9IHBhcmVudEZpZWxkLmZvcm1hdHRlZF92YWx1ZVtjYXNlRmllbGQuaWRdO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIShjYXNlRmllbGQuaGlkZGVuICYmIGNhc2VGaWVsZC5yZXRhaW5faGlkZGVuX3ZhbHVlKSkge1xuICAgICAgICByYXdGb3JtVmFsdWVEYXRhW2tleV0gPSBjYXNlRmllbGQuZm9ybWF0dGVkX3ZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlQ29tcGxleEZpZWxkKGNhc2VGaWVsZDogQ2FzZUZpZWxkLCBmb3JtR3JvdXA6IEZvcm1Hcm91cDxhbnk+LCBrZXk6IHN0cmluZywgcmF3Rm9ybVZhbHVlRGF0YSkge1xuICAgIC8vIE5vdGU6IERlbGliZXJhdGUgdXNlIG9mIGVxdWFsaXR5ICg9PSkgYW5kIG5vbi1lcXVhbGl0eSAoIT0pIG9wZXJhdG9ycyBmb3IgbnVsbCBjaGVja3MgdGhyb3VnaG91dCwgdG9cbiAgICAvLyBoYW5kbGUgYm90aCBudWxsIGFuZCB1bmRlZmluZWQgdmFsdWVzXG4gICAgaWYgKGNhc2VGaWVsZC52YWx1ZSAhPSBudWxsKSB7XG4gICAgICAvLyBDYWxsIHRoaXMgZnVuY3Rpb24gcmVjdXJzaXZlbHkgdG8gcmVwbGFjZSB0aGUgQ29tcGxleCBmaWVsZCdzIHN1Yi1maWVsZHMgYXMgbmVjZXNzYXJ5LCBwYXNzaW5nIHRoZVxuICAgICAgLy8gQ2FzZUZpZWxkIGl0c2VsZiAodGhlIHN1Yi1maWVsZHMgZG8gbm90IGNvbnRhaW4gYW55IHZhbHVlcywgc28gdGhlc2UgbmVlZCB0byBiZSBvYnRhaW5lZCBmcm9tIHRoZVxuICAgICAgLy8gcGFyZW50KVxuICAgICAgLy8gVXBkYXRlIHJhd0Zvcm1WYWx1ZURhdGEgZm9yIHRoaXMgZmllbGRcbiAgICAgIC8vIGNyZWF0aW5nIGZvcm0gZ3JvdXAgYW5kIGFkZGluZyBjb250cm9sIGludG8gaXQgaW4gY2FzZSBjYXNlRmllbGQgaXMgb2YgY29tcGxleHQgdHlwZSBhbmQgYW5kIHBhcnQgb2YgZm9ybUdyb3VwXG4gICAgICBjb25zdCBmb3JtOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICAgIGlmIChmb3JtR3JvdXAuY29udHJvbHNba2V5XS52YWx1ZSkge1xuICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHNba2V5XS52YWx1ZSkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgIGZvcm0uYWRkQ29udHJvbChpdGVtLCBuZXcgRm9ybUNvbnRyb2woZm9ybUdyb3VwLmNvbnRyb2xzW2tleV0udmFsdWVbaXRlbV0pKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByYXdGb3JtVmFsdWVEYXRhW2tleV0gPSB0aGlzLnJlcGxhY2VIaWRkZW5Gb3JtVmFsdWVzV2l0aE9yaWdpbmFsQ2FzZURhdGEoXG4gICAgICAgIGZvcm0sIGNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLCBjYXNlRmllbGQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2FzZVN1Ym1pdCh7IGZvcm0sIGNhc2VFdmVudERhdGEsIHN1Ym1pdCB9OiBDYXNlRWRpdENhc2VTdWJtaXQpOiB2b2lkIHtcbiAgICBjb25zdCBsb2FkaW5nU3Bpbm5lclRva2VuID0gdGhpcy5sb2FkaW5nU2VydmljZS5yZWdpc3RlcigpO1xuICAgIC8vIGtlZXAgdGhlIGluaXRpYWwgZXZlbnQgcmVzcG9uc2UgdG8gZmluYWxpc2UgcHJvY2VzcyBhZnRlciB0YXNrIGNvbXBsZXRpb25cbiAgICBsZXQgZXZlbnRSZXNwb25zZTogb2JqZWN0O1xuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ3Rhc2tDb21wbGV0aW9uRXJyb3InLCAnZmFsc2UnKTtcbiAgICBzdWJtaXQoY2FzZUV2ZW50RGF0YSkucGlwZShzd2l0Y2hNYXAoKHJlc3BvbnNlKSA9PiB7XG4gICAgICBldmVudFJlc3BvbnNlID0gcmVzcG9uc2U7XG4gICAgICByZXR1cm4gdGhpcy5wb3N0Q29tcGxldGVUYXNrSWZSZXF1aXJlZCgpO1xuICAgIH0pLGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS51bnJlZ2lzdGVyKGxvYWRpbmdTcGlubmVyVG9rZW4pO1xuICAgICAgICAvLyBvbiBldmVudCBjb21wbGV0aW9uIGVuc3VyZSB0aGUgcHJldmlvdXMgZXZlbnQgY2xpZW50Q29udGV4dC90YXNrRXZlbnRDb21wbGV0aW9uSW5mbyByZW1vdmVkXG4gICAgICAgIC8vIE5vdGUgLSBOb3QgcmVtb3ZlVGFza0Zyb21DbGllbnRDb250ZXh0IGJlY2F1c2UgY291bGQgaW50ZXJmZXJlIHdpdGggb3RoZXIgbG9naWNcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShDYXNlRWRpdENvbXBvbmVudC5DTElFTlRfQ09OVEVYVCk7XG4gICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oQ2FzZUVkaXRDb21wb25lbnQuVEFTS19FVkVOVF9DT01QTEVUSU9OX0lORk8pXG4gICAgICAgIHRoaXMuaXNTdWJtaXR0aW5nID0gZmFsc2U7XG4gICAgICB9KSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLmZpbmlzaEV2ZW50Q29tcGxldGlvbkxvZ2ljKGV2ZW50UmVzcG9uc2UpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgaWYgKCFldmVudFJlc3BvbnNlKSB7XG4gICAgICAgICAgICAvLyBldmVudCBzdWJtaXNzaW9uIGVycm9yXG4gICAgICAgICAgICB0aGlzLmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICB0aGlzLmNhbGxiYWNrRXJyb3JzU3ViamVjdC5uZXh0KGVycm9yKTtcbiAgICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgICBpZiAodGhpcy5lcnJvci5kZXRhaWxzKSB7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybUVycm9yU2VydmljZVxuICAgICAgICAgICAgICAgIC5tYXBGaWVsZEVycm9ycyh0aGlzLmVycm9yLmRldGFpbHMuZmllbGRfZXJyb3JzLCBmb3JtLmNvbnRyb2xzWydkYXRhJ10gYXMgRm9ybUdyb3VwLCAndmFsaWRhdGlvbicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKCd0YXNrQ29tcGxldGlvbkVycm9yJywgJ3RydWUnKTtcbiAgICAgICAgICAgIC8vIHRhc2sgYXNzaWdubWVudC9jb21wbGV0aW9uIGVycm9yIC0gaGFuZGxlZCB3aXRoaW4gd29ya2FsbG9jYXRpb24gc2VydmljZVxuICAgICAgICAgICAgLy8gY291bGQgc2V0IHRhc2sgdG8gYmUgZGVsZXRlZCAob3IgY29tcGxldGVkIGxhdGVyKT9cbiAgICAgICAgICAgIHRoaXMuZmluaXNoRXZlbnRDb21wbGV0aW9uTG9naWMoZXZlbnRSZXNwb25zZSk7XG4gICAgICAgICAgICAvLyBiZWxvdyBhbGxvd3MgZXJyb3IgdG8gYmUgc2hvd24gb24gbmF2aWdhdGlvbiB0byBjb25maXJtYXRpb24gcGFnZVxuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2V0UHJlc2VydmVBbGVydHModHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcih7cGhyYXNlOiBDb25zdGFudHMuVEFTS19DT01QTEVUSU9OX0VSUk9SfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBwb3N0Q29tcGxldGVUYXNrSWZSZXF1aXJlZCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGNsaWVudENvbnRleHRTdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKENhc2VFZGl0Q29tcG9uZW50LkNMSUVOVF9DT05URVhUKTtcbiAgICBjb25zdCB1c2VyVGFzayA9IEZpZWxkc1V0aWxzLmdldFVzZXJUYXNrRnJvbUNsaWVudENvbnRleHQoY2xpZW50Q29udGV4dFN0cik7XG4gICAgY29uc3QgW3Rhc2ssIHRhc2tUb0JlQ29tcGxldGVkXSA9IHVzZXJUYXNrID8gW3VzZXJUYXNrLnRhc2tfZGF0YSwgdXNlclRhc2suY29tcGxldGVfdGFza10gOiBbbnVsbCwgZmFsc2VdO1xuICAgIGNvbnN0IGFzc2lnbk5lZWRlZCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2Fzc2lnbk5lZWRlZCcpID09PSAndHJ1ZSc7XG4gICAgaWYgKHRhc2sgJiYgYXNzaWduTmVlZGVkICYmIHRhc2tUb0JlQ29tcGxldGVkKSB7XG4gICAgICB0aGlzLmFic3RyYWN0Q29uZmlnLmxvZ01lc3NhZ2UoYHBvc3RDb21wbGV0ZVRhc2tJZlJlcXVpcmVkIHdpdGggYXNzaWduTmVlZGVkOiB0YXNrSWQgJHt0YXNrLmlkfSBhbmQgZXZlbnQgbmFtZSAke3RoaXMuZXZlbnRUcmlnZ2VyLm5hbWV9YCk7XG4gICAgICByZXR1cm4gdGhpcy53b3JrQWxsb2NhdGlvblNlcnZpY2UuYXNzaWduQW5kQ29tcGxldGVUYXNrKHRhc2suaWQsIHRoaXMuZXZlbnRUcmlnZ2VyLm5hbWUpO1xuICAgIH0gZWxzZSBpZiAodGFzayAmJiB0YXNrVG9CZUNvbXBsZXRlZCkge1xuICAgICAgdGhpcy5hYnN0cmFjdENvbmZpZy5sb2dNZXNzYWdlKGBwb3N0Q29tcGxldGVUYXNrSWZSZXF1aXJlZDogdGFza0lkICR7dGFzay5pZH0gYW5kIGV2ZW50IG5hbWUgJHt0aGlzLmV2ZW50VHJpZ2dlci5uYW1lfWApO1xuICAgICAgcmV0dXJuIHRoaXMud29ya0FsbG9jYXRpb25TZXJ2aWNlLmNvbXBsZXRlVGFzayh0YXNrLmlkLCB0aGlzLmV2ZW50VHJpZ2dlci5uYW1lKTtcbiAgICB9XG4gICAgcmV0dXJuIG9mKHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5pc2hFdmVudENvbXBsZXRpb25Mb2dpYyhldmVudFJlc3BvbnNlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VOb3RpZmllci5jYWNoZWRDYXNlVmlldyA9IG51bGw7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgnZXZlbnRVcmwnKTtcbiAgICBjb25zdCBjb25maXJtYXRpb246IENvbmZpcm1hdGlvbiA9IHRoaXMuYnVpbGRDb25maXJtYXRpb24oZXZlbnRSZXNwb25zZSk7XG4gICAgaWYgKGNvbmZpcm1hdGlvbiAmJiAoY29uZmlybWF0aW9uLmdldEhlYWRlcigpIHx8IGNvbmZpcm1hdGlvbi5nZXRCb2R5KCkpKSB7XG4gICAgICB0aGlzLmNvbmZpcm0oY29uZmlybWF0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lbWl0U3VibWl0dGVkKGV2ZW50UmVzcG9uc2UpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDb25maXJtYXRpb24ocmVzcG9uc2U6IG9iamVjdCk6IENvbmZpcm1hdGlvbiB7XG4gICAgaWYgKHJlc3BvbnNlWydhZnRlcl9zdWJtaXRfY2FsbGJhY2tfcmVzcG9uc2UnXSkge1xuICAgICAgcmV0dXJuIG5ldyBDb25maXJtYXRpb24oXG4gICAgICAgIHJlc3BvbnNlWydpZCddLFxuICAgICAgICByZXNwb25zZVsnY2FsbGJhY2tfcmVzcG9uc2Vfc3RhdHVzJ10sXG4gICAgICAgIHJlc3BvbnNlWydhZnRlcl9zdWJtaXRfY2FsbGJhY2tfcmVzcG9uc2UnXVsnY29uZmlybWF0aW9uX2hlYWRlciddLFxuICAgICAgICByZXNwb25zZVsnYWZ0ZXJfc3VibWl0X2NhbGxiYWNrX3Jlc3BvbnNlJ11bJ2NvbmZpcm1hdGlvbl9ib2R5J11cbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8vIGNoZWNrcyB3aGV0aGVyIGN1cnJlbnQgY2xpZW50Q29udGV4dCByZWxldmFudCBmb3IgdGhlIGV2ZW50XG4gIHB1YmxpYyB0YXNrRXhpc3RzRm9yVGhpc0V2ZW50KHRhc2tJblNlc3Npb25TdG9yYWdlOiBUYXNrLCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm8sIGV2ZW50RGV0YWlsczogRXZlbnREZXRhaWxzKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0YXNrSW5TZXNzaW9uU3RvcmFnZSB8fCB0YXNrSW5TZXNzaW9uU3RvcmFnZS5jYXNlX2lkICE9PSBldmVudERldGFpbHMuY2FzZUlkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghdGFza0V2ZW50Q29tcGxldGlvbkluZm8pIHtcbiAgICAgIC8vIGlmIG5vIHRhc2sgZXZlbnQgcHJlc2VudCB0aGVuIHRoZXJlIGlzIG5vIHRhc2sgdG8gY29tcGxldGUgZnJvbSBwcmV2aW91cyBldmVudCBwcmVzZW50XG4gICAgICAvLyBFWFVJLTI2NjggLSBBZGQgYWRkaXRpb25hbCBsb2dpYyB0byBjb25maXJtIHRoZSB0YXNrIGlzIHJlbGV2YW50IHRvIHRoZSBldmVudFxuICAgICAgaWYgKHRoaXMudGFza0lzRm9yRXZlbnQodGFza0luU2Vzc2lvblN0b3JhZ2UsIGV2ZW50RGV0YWlscykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBjbGllbnQgY29udGV4dCBzdGlsbCBuZWVkZWQgZm9yIGxhbmd1YWdlXG4gICAgICAgIHJlbW92ZVRhc2tGcm9tQ2xpZW50Q29udGV4dCh0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZSk7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRhc2tFdmVudENvbXBsZXRpb25JbmZvLnRhc2tJZCAhPT0gdGFza0luU2Vzc2lvblN0b3JhZ2UuaWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9IGVsc2UgaWYgKCh0YXNrRXZlbnRDb21wbGV0aW9uSW5mby50YXNrSWQgPT09IHRhc2tJblNlc3Npb25TdG9yYWdlLmlkICYmXG4gICAgICAgICAgdGhpcy5ldmVudERldGFpbHNEb05vdE1hdGNoKHRhc2tFdmVudENvbXBsZXRpb25JbmZvLCBldmVudERldGFpbHMpKVxuICAgICAgICB8fCB0aGlzLmV2ZW50TW9yZVRoYW5EYXlBZ28odGFza0V2ZW50Q29tcGxldGlvbkluZm8uY3JlYXRlZFRpbWVzdGFtcClcbiAgICAgICkge1xuICAgICAgICAvLyBpZiB0aGUgc2Vzc2lvbiBzdG9yYWdlIG5vdCByZWxhdGVkIHRvIGV2ZW50LCBpZ25vcmUgaXQgYW5kIHJlbW92ZVxuICAgICAgICByZW1vdmVUYXNrRnJvbUNsaWVudENvbnRleHQodGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UpO1xuICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKENhc2VFZGl0Q29tcG9uZW50LlRBU0tfRVZFTlRfQ09NUExFVElPTl9JTkZPKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKGV2ZW50RGV0YWlscy5hc3NpZ25OZWVkZWQgPT09ICdmYWxzZScgJiYgZXZlbnREZXRhaWxzLnVzZXJJZCAhPT0gdGFza0luU2Vzc2lvblN0b3JhZ2UuYXNzaWduZWUpIHtcbiAgICAgICAgLy8gaWYgdGhlIHVzZXIgZG9lcyBub3QgbWF0Y2ggdGFzayBhc3NpZ25lZSwgYXNzaWduIGlzIG5vdyBuZWVkZWRcbiAgICAgICAgLy8gZGF0YSBjYW5ub3QgYmUgZGVsZXRlZCBhbmQgaWdub3JlZCBhcyBpdCBtYXRjaGVzIHVuZGVyc3RhbmRpbmdcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgnYXNzaWduTmVlZGVkJywgJ3RydWUnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkV2ZW50Q2FuQmVDb21wbGV0ZWQoeyBldmVudFRyaWdnZXIsIGV2ZW50Q2FuQmVDb21wbGV0ZWQsIGNhc2VEZXRhaWxzLCBmb3JtLCBzdWJtaXQgfTogQ2FzZUVkaXRvbkV2ZW50Q2FuQmVDb21wbGV0ZWQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnRDYW5CZUNvbXBsZXRlZCkge1xuICAgICAgLy8gU3VibWl0XG4gICAgICBjb25zdCBjYXNlRXZlbnREYXRhID0gdGhpcy5nZW5lcmF0ZUNhc2VFdmVudERhdGEoeyBldmVudFRyaWdnZXIsIGZvcm0gfSk7XG4gICAgICB0aGlzLmNhc2VTdWJtaXQoeyBmb3JtLCBjYXNlRXZlbnREYXRhLCBzdWJtaXQgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5hdmlnYXRlIHRvIHRhc2tzIHRhYiBvbiBjYXNlIGRldGFpbHMgcGFnZVxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7dGhpcy5nZXRDYXNlSWQoY2FzZURldGFpbHMpfS90YXNrc2BdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFN0YXR1cyhyZXNwb25zZTogb2JqZWN0KTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5oYXNDYWxsYmFja0ZhaWxlZChyZXNwb25zZSkgPyByZXNwb25zZVsnY2FsbGJhY2tfcmVzcG9uc2Vfc3RhdHVzJ10gOiByZXNwb25zZVsnZGVsZXRlX2RyYWZ0X3Jlc3BvbnNlX3N0YXR1cyddO1xuICB9XG5cbiAgcHJpdmF0ZSBoYXNDYWxsYmFja0ZhaWxlZChyZXNwb25zZTogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlWydjYWxsYmFja19yZXNwb25zZV9zdGF0dXMnXSAhPT0gJ0NBTExCQUNLX0NPTVBMRVRFRCc7XG4gIH1cblxuICBwcml2YXRlIGV2ZW50TW9yZVRoYW5EYXlBZ28odGltZXN0YW1wOiBudW1iZXIpIHtcbiAgICBpZiAoKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gdGltZXN0YW1wKSA+ICgyNCo2MCo2MCoxMDAwKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgZXZlbnREZXRhaWxzRG9Ob3RNYXRjaCh0YXNrRXZlbnRDb21wbGV0aW9uSW5mbzogVGFza0V2ZW50Q29tcGxldGlvbkluZm8sIGV2ZW50RGV0YWlsczogRXZlbnREZXRhaWxzKSB7XG4gICAgaWYgKHRhc2tFdmVudENvbXBsZXRpb25JbmZvLmV2ZW50SWQgIT09IGV2ZW50RGV0YWlscy5ldmVudElkXG4gICAgICB8fCB0YXNrRXZlbnRDb21wbGV0aW9uSW5mby5jYXNlSWQgIT09IGV2ZW50RGV0YWlscy5jYXNlSWRcbiAgICAgIHx8IHRhc2tFdmVudENvbXBsZXRpb25JbmZvLnVzZXJJZCAhPT0gZXZlbnREZXRhaWxzLnVzZXJJZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgdGFza0lzRm9yRXZlbnQodGFzazogVGFzaywgZXZlbnREZXRhaWxzOiBFdmVudERldGFpbHMpOiBib29sZWFuIHtcbiAgICAvLyBFWFVJLTI2NjggLSBFbnN1cmUgZGVzY3JpcHRpb24gZm9yIHRhc2sgaW5jbHVkZXMgZXZlbnQgSURcbiAgICAvLyBOb3RlIC0gVGhpcyBpcyBhIGZhaWxzYWZlIGZvciBhbiBlZGdlIGNhc2UgdGhhdCBtYXkgbmV2ZXIgb2NjdXIgYWdhaW5cbiAgICAvLyBEZXNjcmlwdGlvbiBtYXkgbm90IGluY2x1ZGUgZXZlbnRJZCBpbiBzb21lIGNhc2VzIHdoaWNoIG1heSBtZWFuIHRhc2sgbm90IGNvbXBsZXRlZCAoaG93ZXZlciB0aGlzIHdpbGwgYmUgZWFzeSB0byBjaGVjaylcbiAgICAvLyBJbiBpbnN0YW5jZXMgb2YgdGhlIGFib3ZlIHRhc2tFdmVudENvbXBsZXRpb25JbmZvIHdpbGwgYmUgY3JlYXRlZCB0byBibG9jayB0aGlzIGNoZWNrIGZyb20gb2NjdXJyaW5nXG4gICAgdGhpcy5hYnN0cmFjdENvbmZpZy5sb2dNZXNzYWdlKGBjaGVja2luZyB0YXNrSXNGb3JFdmVudDogdGFzayBJRCAke3Rhc2suaWR9LCB0YXNrIGRlc2NyaXB0aW9uICR7dGFzay5kZXNjcmlwdGlvbn0sIGV2ZW50IG5hbWUgJHtldmVudERldGFpbHMuZXZlbnRJZH1gKTtcbiAgICByZXR1cm4gdGFzay5jYXNlX2lkID09PSBldmVudERldGFpbHMuY2FzZUlkICYmICh0YXNrLmRlc2NyaXB0aW9uPy5pbmNsdWRlcyhldmVudERldGFpbHMuZXZlbnRJZCkpO1xuICB9XG59XG4iLCI8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4iXX0=
@@ -70,11 +70,6 @@ export class CaseEventTriggerComponent {
70
70
  this.caseDetails = caseDetails;
71
71
  });
72
72
  }
73
- this.route.data.subscribe((data) => {
74
- if (data?.eventTrigger) {
75
- this.eventTrigger = data.eventTrigger;
76
- }
77
- });
78
73
  this.eventTrigger = this.route.snapshot.data.eventTrigger;
79
74
  if (this.activityPollingService.isEnabled) {
80
75
  this.ngZone.runOutsideAngular(() => {
@@ -173,4 +168,4 @@ export class CaseEventTriggerComponent {
173
168
  args: [{ selector: 'ccd-case-event-trigger', template: "<div *ngIf=\"isDataLoaded()\" class=\"screen-990\">\n <ccd-activity [caseId]=\"caseDetails.case_id\" [displayMode]=\"BANNER\"></ccd-activity>\n <ccd-case-edit [caseDetails]=\"caseDetails\"\n [submit]=\"submit()\"\n [validate]=\"validate()\"\n [eventTrigger]=\"eventTrigger\"\n (cancelled)=\"cancel()\"\n (submitted)=\"submitted($event)\"></ccd-case-edit>\n</div>\n" }]
174
169
  }], () => [{ type: i0.NgZone }, { type: i1.CasesService }, { type: i1.CaseNotifier }, { type: i2.Router }, { type: i3.AlertService }, { type: i2.ActivatedRoute }, { type: i4.CaseReferencePipe }, { type: i3.ActivityPollingService }, { type: i3.SessionStorageService }, { type: i3.LoadingService }], null); })();
175
170
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEventTriggerComponent, { className: "CaseEventTriggerComponent", filePath: "lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.ts", lineNumber: 14 }); })();
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1ldmVudC10cmlnZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWV2ZW50LXRyaWdnZXIvY2FzZS1ldmVudC10cmlnZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWV2ZW50LXRyaWdnZXIvY2FzZS1ldmVudC10cmlnZ2VyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQWMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUE0QixFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBdUQsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakosT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7SUNQL0QsOEJBQStDO0lBQzdDLGtDQUFtRjtJQUNuRix3Q0FLK0M7SUFBaEMsQUFEQSxvTUFBYSxlQUFRLEtBQUMsNkxBQ1Qsd0JBQWlC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UUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUM3QyxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFTSxZQUFZO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQzttRkFuSVUseUJBQXlCOzZEQUF6Qix5QkFBeUI7WUNidEMsMEVBQStDOztZQUF6Qyx5Q0FBb0I7OztpRkRhYix5QkFBeUI7Y0FKckMsU0FBUzsyQkFDRSx3QkFBd0I7O2tGQUd2Qix5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE5nWm9uZSwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9ucy9jb25zdGFudHMnO1xuaW1wb3J0IHsgQWN0aXZpdHksIENhc2VFdmVudERhdGEsIENhc2VFdmVudFRyaWdnZXIsIENhc2VWaWV3LCBEaXNwbGF5TW9kZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlUmVmZXJlbmNlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3BpcGVzJztcbmltcG9ydCB7IEFjdGl2aXR5UG9sbGluZ1NlcnZpY2UsIEFsZXJ0U2VydmljZSwgRXZlbnRTdGF0dXNTZXJ2aWNlLCBGaWVsZHNVdGlscywgTG9hZGluZ1NlcnZpY2UsIFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IENhc2VOb3RpZmllciwgQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtY2FzZS1ldmVudC10cmlnZ2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhc2UtZXZlbnQtdHJpZ2dlci5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBDYXNlRXZlbnRUcmlnZ2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEVWRU5UX0NPTVBMRVRJT05fTUVTU0FHRSA9IGBDYXNlICMlQ0FTRVJFRkVSRU5DRSUgaGFzIGJlZW4gdXBkYXRlZCB3aXRoIGV2ZW50OiAlTkFNRSVgO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENBTExCQUNLX0ZBSUxFRF9NRVNTQUdFID0gJyBidXQgdGhlIGNhbGxiYWNrIHNlcnZpY2UgY2Fubm90IGJlIGNvbXBsZXRlZCc7XG5cbiAgcHVibGljIEJBTk5FUiA9IERpc3BsYXlNb2RlLkJBTk5FUjtcbiAgcHVibGljIGV2ZW50VHJpZ2dlcjogQ2FzZUV2ZW50VHJpZ2dlcjtcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcbiAgcHVibGljIGFjdGl2aXR5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBjYXNlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBwYXJlbnRVcmw6IHN0cmluZztcbiAgcHVibGljIHJvdXRlckN1cnJlbnROYXZpZ2F0aW9uOiBOYXZpZ2F0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlc1NlcnZpY2U6IENhc2VzU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VOb3RpZmllcjogQ2FzZU5vdGlmaWVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VSZWZlcmVuY2VQaXBlOiBDYXNlUmVmZXJlbmNlUGlwZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2aXR5UG9sbGluZ1NlcnZpY2U6IEFjdGl2aXR5UG9sbGluZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvYWRpbmdTZXJ2aWNlOiBMb2FkaW5nU2VydmljZVxuICApIHtcbiAgICB0aGlzLnJvdXRlckN1cnJlbnROYXZpZ2F0aW9uID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nU2VydmljZS5oYXNTaGFyZWRTcGlubmVyKCkpe1xuICAgICAgdGhpcy5sb2FkaW5nU2VydmljZS51bnJlZ2lzdGVyU2hhcmVkU3Bpbm5lcigpO1xuICAgIH1cbiAgICBpZiAodGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2UpIHtcbiAgICAgIHRoaXMuY2FzZURldGFpbHMgPSB0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYXNlU3Vic2NyaXB0aW9uID0gdGhpcy5jYXNlTm90aWZpZXIuY2FzZVZpZXcuc3Vic2NyaWJlKGNhc2VEZXRhaWxzID0+IHtcbiAgICAgICAgdGhpcy5jYXNlRGV0YWlscyA9IGNhc2VEZXRhaWxzO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucm91dGUuZGF0YS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIGlmIChkYXRhPy5ldmVudFRyaWdnZXIpe1xuICAgICAgICB0aGlzLmV2ZW50VHJpZ2dlciA9IGRhdGEuZXZlbnRUcmlnZ2VyO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZXZlbnRUcmlnZ2VyID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmV2ZW50VHJpZ2dlcjtcbiAgICBpZiAodGhpcy5hY3Rpdml0eVBvbGxpbmdTZXJ2aWNlLmlzRW5hYmxlZCkge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoICgpID0+IHtcbiAgICAgICAgdGhpcy5hY3Rpdml0eVN1YnNjcmlwdGlvbiA9IHRoaXMucG9zdEVkaXRBY3Rpdml0eSgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ1Bvc3RlZCBFRElUIGFjdGl2aXR5IGFuZCByZXN1bHQgaXM6ICcgKyBKU09OLnN0cmluZ2lmeShfcmVzb2x2ZWQpKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5yb3V0ZS5wYXJlbnQudXJsLnN1YnNjcmliZShwYXRoID0+IHtcbiAgICAgIHRoaXMucGFyZW50VXJsID0gYC8ke3BhdGguam9pbignLycpfWA7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHlTdWJzY3JpcHRpb24gJiYgdGhpcy5hY3Rpdml0eVBvbGxpbmdTZXJ2aWNlLmlzRW5hYmxlZCkge1xuICAgICAgdGhpcy5hY3Rpdml0eVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlICYmIHRoaXMuY2FzZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jYXNlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHBvc3RFZGl0QWN0aXZpdHkoKTogT2JzZXJ2YWJsZTxBY3Rpdml0eVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZpdHlQb2xsaW5nU2VydmljZS5wb3N0RWRpdEFjdGl2aXR5KHRoaXMuY2FzZURldGFpbHMuY2FzZV9pZCk7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0KCk6IChzYW5pdGl6ZWRFZGl0Rm9ybTogQ2FzZUV2ZW50RGF0YSkgPT4gT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gKHNhbml0aXplZEVkaXRGb3JtOiBDYXNlRXZlbnREYXRhKSA9PlxuICAgICAgdGhpcy5jYXNlc1NlcnZpY2UuY3JlYXRlRXZlbnQodGhpcy5jYXNlRGV0YWlscywgc2FuaXRpemVkRWRpdEZvcm0pO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKCk6IChzYW5pdGl6ZWRFZGl0Rm9ybTogQ2FzZUV2ZW50RGF0YSwgcGFnZUlkOiBzdHJpbmcpID0+IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIChzYW5pdGl6ZWRFZGl0Rm9ybTogQ2FzZUV2ZW50RGF0YSwgcGFnZUlkOiBzdHJpbmcpID0+IHtcbiAgICAgIC8vIEJ5cGFzcyB2YWxpZGF0aW9uIGlmIHRoZSBldmVudFRyaWdnZXIgY2FzZSBmaWVsZHMgY29udGFpbiBhIEZsYWdMYXVuY2hlciBmaWVsZDsgdGhpcyBmaWVsZCB0eXBlIGNhbm5vdCBiZVxuICAgICAgLy8gdmFsaWRhdGVkLCB1bmxpa2UgcmVndWxhciBmaWVsZHNcbiAgICAgIHJldHVybiB0aGlzLmV2ZW50VHJpZ2dlcj8uY2FzZV9maWVsZHM/LnNvbWUoKGNhc2VGaWVsZCkgPT4gRmllbGRzVXRpbHMuaXNDYXNlRmllbGRPZlR5cGUoY2FzZUZpZWxkLCBbJ0ZsYWdMYXVuY2hlciddKSlcbiAgICAgICAgPyBvZihudWxsKVxuICAgICAgICA6IHRoaXMuY2FzZXNTZXJ2aWNlLnZhbGlkYXRlQ2FzZSh0aGlzLmNhc2VEZXRhaWxzLmNhc2VfdHlwZS5pZCwgc2FuaXRpemVkRWRpdEZvcm0sIHBhZ2VJZCk7XG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXR0ZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGV2ZW50U3RhdHVzOiBzdHJpbmcgPSBldmVudFsnc3RhdHVzJ107XG4gICAgY29uc3QgdGFza0NvbXBsZXRpb25GYWlsZWQgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd0YXNrQ29tcGxldGlvbkVycm9yJykgPT09ICd0cnVlJztcbiAgICB0aGlzLnJvdXRlclxuICAgICAgLm5hdmlnYXRlKFt0aGlzLnBhcmVudFVybF0pXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNhc2VSZWZlcmVuY2UgPSB0aGlzLmNhc2VSZWZlcmVuY2VQaXBlLnRyYW5zZm9ybSh0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWQudG9TdHJpbmcoKSk7XG4gICAgICAgIGNvbnN0IHJlcGxhY2VtZW50cyA9IHsgQ0FTRVJFRkVSRU5DRTogY2FzZVJlZmVyZW5jZSwgTkFNRTogdGhpcy5ldmVudFRyaWdnZXIubmFtZSB9O1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zZXRQcmVzZXJ2ZUFsZXJ0cyh0cnVlKTtcbiAgICAgICAgaWYgKHRhc2tDb21wbGV0aW9uRmFpbGVkKSB7XG4gICAgICAgICAgLy8gaWYgdGFzayBzdGlsbCBwcmVzZW50IGluIHNlc3Npb24gc3RvcmFnZSwgd2Uga25vdyB0aGF0IHRoZSB0YXNrIGhhcyBub3QgYmVlbiBjb3JyZWN0bHkgY29tcGxldGVkXG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uud2FybmluZyh7XG4gICAgICAgICAgICBwaHJhc2U6IENhc2VFdmVudFRyaWdnZXJDb21wb25lbnQuRVZFTlRfQ09NUExFVElPTl9NRVNTQUdFICsgJy4gJyArIENvbnN0YW50cy5UQVNLX0NPTVBMRVRJT05fRVJST1JcbiAgICAgICAgICAgICwgcmVwbGFjZW1lbnRzfSk7XG4gICAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgndGFza0NvbXBsZXRpb25FcnJvcicpO1xuICAgICAgICB9IGVsc2UgaWYgKEV2ZW50U3RhdHVzU2VydmljZS5pc0luY29tcGxldGUoZXZlbnRTdGF0dXMpKSB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uud2FybmluZyh7XG4gICAgICAgICAgICBwaHJhc2U6IENhc2VFdmVudFRyaWdnZXJDb21wb25lbnQuRVZFTlRfQ09NUExFVElPTl9NRVNTQUdFICsgQ2FzZUV2ZW50VHJpZ2dlckNvbXBvbmVudC5DQUxMQkFDS19GQUlMRURfTUVTU0FHRSxcbiAgICAgICAgICAgIHJlcGxhY2VtZW50c1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLnN1Y2Nlc3Moe1xuICAgICAgICAgICAgcGhyYXNlOiBDYXNlRXZlbnRUcmlnZ2VyQ29tcG9uZW50LkVWRU5UX0NPTVBMRVRJT05fTUVTU0FHRSxcbiAgICAgICAgICAgIHJlcGxhY2VtZW50cyxcbiAgICAgICAgICAgIHByZXNlcnZlOiB0cnVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBwcmV2aW91c1VybCA9IHRoaXMucm91dGVyQ3VycmVudE5hdmlnYXRpb24/LnByZXZpb3VzTmF2aWdhdGlvbj8uZmluYWxVcmw/LnRvU3RyaW5nKCk7XG4gICAgaWYgKHByZXZpb3VzVXJsKSB7XG4gICAgICBpZiAocHJldmlvdXNVcmwuaW5kZXhPZignIycpID4gLTEpIHtcbiAgICAgICAgY29uc3QgdXJsID0gcHJldmlvdXNVcmwuc3BsaXQoJyMnKVswXTtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBwcmV2aW91c1VybC5zcGxpdCgnIycpWzFdLnJlcGxhY2UoLyUyMC9nLCAnICcpO1xuICAgICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3VybF0sIHsgZnJhZ21lbnQ6IGZyYWdtZW50IH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwcmV2aW91c1VybF0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMucGFyZW50VXJsXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzRGF0YUxvYWRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5ldmVudFRyaWdnZXIgJiYgdGhpcy5jYXNlRGV0YWlscyk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJpc0RhdGFMb2FkZWQoKVwiIGNsYXNzPVwic2NyZWVuLTk5MFwiPlxuICA8Y2NkLWFjdGl2aXR5IFtjYXNlSWRdPVwiY2FzZURldGFpbHMuY2FzZV9pZFwiIFtkaXNwbGF5TW9kZV09XCJCQU5ORVJcIj48L2NjZC1hY3Rpdml0eT5cbiAgPGNjZC1jYXNlLWVkaXQgW2Nhc2VEZXRhaWxzXT1cImNhc2VEZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgW3N1Ym1pdF09XCJzdWJtaXQoKVwiXG4gICAgICAgICAgICAgICAgIFt2YWxpZGF0ZV09XCJ2YWxpZGF0ZSgpXCJcbiAgICAgICAgICAgICAgICAgW2V2ZW50VHJpZ2dlcl09XCJldmVudFRyaWdnZXJcIlxuICAgICAgICAgICAgICAgICAoY2FuY2VsbGVkKT1cImNhbmNlbCgpXCJcbiAgICAgICAgICAgICAgICAgKHN1Ym1pdHRlZCk9XCJzdWJtaXR0ZWQoJGV2ZW50KVwiPjwvY2NkLWNhc2UtZWRpdD5cbjwvZGl2PlxuIl19
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1ldmVudC10cmlnZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWV2ZW50LXRyaWdnZXIvY2FzZS1ldmVudC10cmlnZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLXZpZXdlci9jYXNlLWV2ZW50LXRyaWdnZXIvY2FzZS1ldmVudC10cmlnZ2VyLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQWMsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUE0QixFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZELE9BQU8sRUFBdUQsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakosT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7Ozs7SUNQL0QsOEJBQStDO0lBQzdDLGtDQUFtRjtJQUNuRix3Q0FLK0M7SUFBaEMsQUFEQSxvTUFBYSxlQUFRLEtBQUMsNkxBQ1Qsd0JBQWlC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QUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7bUZBOUhVLHlCQUF5Qjs2REFBekIseUJBQXlCO1lDYnRDLDBFQUErQzs7WUFBekMseUNBQW9COzs7aUZEYWIseUJBQXlCO2NBSnJDLFNBQVM7MkJBQ0Usd0JBQXdCOztrRkFHdkIseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgTmF2aWdhdGlvbiwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbnMvY29uc3RhbnRzJztcbmltcG9ydCB7IEFjdGl2aXR5LCBDYXNlRXZlbnREYXRhLCBDYXNlRXZlbnRUcmlnZ2VyLCBDYXNlVmlldywgRGlzcGxheU1vZGUgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZVJlZmVyZW5jZVBpcGUgfSBmcm9tICcuLi8uLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBBY3Rpdml0eVBvbGxpbmdTZXJ2aWNlLCBBbGVydFNlcnZpY2UsIEV2ZW50U3RhdHVzU2VydmljZSwgRmllbGRzVXRpbHMsIExvYWRpbmdTZXJ2aWNlLCBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIsIENhc2VzU2VydmljZSB9IGZyb20gJy4uLy4uL2Nhc2UtZWRpdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtZXZlbnQtdHJpZ2dlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXNlLWV2ZW50LXRyaWdnZXIuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQ2FzZUV2ZW50VHJpZ2dlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBFVkVOVF9DT01QTEVUSU9OX01FU1NBR0UgPSBgQ2FzZSAjJUNBU0VSRUZFUkVOQ0UlIGhhcyBiZWVuIHVwZGF0ZWQgd2l0aCBldmVudDogJU5BTUUlYDtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDQUxMQkFDS19GQUlMRURfTUVTU0FHRSA9ICcgYnV0IHRoZSBjYWxsYmFjayBzZXJ2aWNlIGNhbm5vdCBiZSBjb21wbGV0ZWQnO1xuXG4gIHB1YmxpYyBCQU5ORVIgPSBEaXNwbGF5TW9kZS5CQU5ORVI7XG4gIHB1YmxpYyBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXI7XG4gIHB1YmxpYyBjYXNlRGV0YWlsczogQ2FzZVZpZXc7XG4gIHB1YmxpYyBhY3Rpdml0eVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgY2FzZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgcGFyZW50VXJsOiBzdHJpbmc7XG4gIHB1YmxpYyByb3V0ZXJDdXJyZW50TmF2aWdhdGlvbjogTmF2aWdhdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZXNTZXJ2aWNlOiBDYXNlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXI6IENhc2VOb3RpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlUmVmZXJlbmNlUGlwZTogQ2FzZVJlZmVyZW5jZVBpcGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eVBvbGxpbmdTZXJ2aWNlOiBBY3Rpdml0eVBvbGxpbmdTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nU2VydmljZTogTG9hZGluZ1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5yb3V0ZXJDdXJyZW50TmF2aWdhdGlvbiA9IHRoaXMucm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubG9hZGluZ1NlcnZpY2UuaGFzU2hhcmVkU3Bpbm5lcigpKXtcbiAgICAgIHRoaXMubG9hZGluZ1NlcnZpY2UudW5yZWdpc3RlclNoYXJlZFNwaW5uZXIoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5jYXNlKSB7XG4gICAgICB0aGlzLmNhc2VEZXRhaWxzID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5kYXRhLmNhc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2FzZVN1YnNjcmlwdGlvbiA9IHRoaXMuY2FzZU5vdGlmaWVyLmNhc2VWaWV3LnN1YnNjcmliZShjYXNlRGV0YWlscyA9PiB7XG4gICAgICAgIHRoaXMuY2FzZURldGFpbHMgPSBjYXNlRGV0YWlscztcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmV2ZW50VHJpZ2dlciA9IHRoaXMucm91dGUuc25hcHNob3QuZGF0YS5ldmVudFRyaWdnZXI7XG4gICAgaWYgKHRoaXMuYWN0aXZpdHlQb2xsaW5nU2VydmljZS5pc0VuYWJsZWQpIHtcbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCAoKSA9PiB7XG4gICAgICAgIHRoaXMuYWN0aXZpdHlTdWJzY3JpcHRpb24gPSB0aGlzLnBvc3RFZGl0QWN0aXZpdHkoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdQb3N0ZWQgRURJVCBhY3Rpdml0eSBhbmQgcmVzdWx0IGlzOiAnICsgSlNPTi5zdHJpbmdpZnkoX3Jlc29sdmVkKSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucm91dGUucGFyZW50LnVybC5zdWJzY3JpYmUocGF0aCA9PiB7XG4gICAgICB0aGlzLnBhcmVudFVybCA9IGAvJHtwYXRoLmpvaW4oJy8nKX1gO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFjdGl2aXR5U3Vic2NyaXB0aW9uICYmIHRoaXMuYWN0aXZpdHlQb2xsaW5nU2VydmljZS5pc0VuYWJsZWQpIHtcbiAgICAgIHRoaXMuYWN0aXZpdHlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZSAmJiB0aGlzLmNhc2VTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuY2FzZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwb3N0RWRpdEFjdGl2aXR5KCk6IE9ic2VydmFibGU8QWN0aXZpdHlbXT4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5UG9sbGluZ1NlcnZpY2UucG9zdEVkaXRBY3Rpdml0eSh0aGlzLmNhc2VEZXRhaWxzLmNhc2VfaWQpO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdCgpOiAoc2FuaXRpemVkRWRpdEZvcm06IENhc2VFdmVudERhdGEpID0+IE9ic2VydmFibGU8b2JqZWN0PiB7XG4gICAgcmV0dXJuIChzYW5pdGl6ZWRFZGl0Rm9ybTogQ2FzZUV2ZW50RGF0YSkgPT5cbiAgICAgIHRoaXMuY2FzZXNTZXJ2aWNlLmNyZWF0ZUV2ZW50KHRoaXMuY2FzZURldGFpbHMsIHNhbml0aXplZEVkaXRGb3JtKTtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZSgpOiAoc2FuaXRpemVkRWRpdEZvcm06IENhc2VFdmVudERhdGEsIHBhZ2VJZDogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPG9iamVjdD4ge1xuICAgIHJldHVybiAoc2FuaXRpemVkRWRpdEZvcm06IENhc2VFdmVudERhdGEsIHBhZ2VJZDogc3RyaW5nKSA9PiB7XG4gICAgICAvLyBCeXBhc3MgdmFsaWRhdGlvbiBpZiB0aGUgZXZlbnRUcmlnZ2VyIGNhc2UgZmllbGRzIGNvbnRhaW4gYSBGbGFnTGF1bmNoZXIgZmllbGQ7IHRoaXMgZmllbGQgdHlwZSBjYW5ub3QgYmVcbiAgICAgIC8vIHZhbGlkYXRlZCwgdW5saWtlIHJlZ3VsYXIgZmllbGRzXG4gICAgICByZXR1cm4gdGhpcy5ldmVudFRyaWdnZXI/LmNhc2VfZmllbGRzPy5zb21lKChjYXNlRmllbGQpID0+IEZpZWxkc1V0aWxzLmlzQ2FzZUZpZWxkT2ZUeXBlKGNhc2VGaWVsZCwgWydGbGFnTGF1bmNoZXInXSkpXG4gICAgICAgID8gb2YobnVsbClcbiAgICAgICAgOiB0aGlzLmNhc2VzU2VydmljZS52YWxpZGF0ZUNhc2UodGhpcy5jYXNlRGV0YWlscy5jYXNlX3R5cGUuaWQsIHNhbml0aXplZEVkaXRGb3JtLCBwYWdlSWQpO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgc3VibWl0dGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBldmVudFN0YXR1czogc3RyaW5nID0gZXZlbnRbJ3N0YXR1cyddO1xuICAgIGNvbnN0IHRhc2tDb21wbGV0aW9uRmFpbGVkID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndGFza0NvbXBsZXRpb25FcnJvcicpID09PSAndHJ1ZSc7XG4gICAgdGhpcy5yb3V0ZXJcbiAgICAgIC5uYXZpZ2F0ZShbdGhpcy5wYXJlbnRVcmxdKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zdCBjYXNlUmVmZXJlbmNlID0gdGhpcy5jYXNlUmVmZXJlbmNlUGlwZS50cmFuc2Zvcm0odGhpcy5jYXNlRGV0YWlscy5jYXNlX2lkLnRvU3RyaW5nKCkpO1xuICAgICAgICBjb25zdCByZXBsYWNlbWVudHMgPSB7IENBU0VSRUZFUkVOQ0U6IGNhc2VSZWZlcmVuY2UsIE5BTUU6IHRoaXMuZXZlbnRUcmlnZ2VyLm5hbWUgfTtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2Uuc2V0UHJlc2VydmVBbGVydHModHJ1ZSk7XG4gICAgICAgIGlmICh0YXNrQ29tcGxldGlvbkZhaWxlZCkge1xuICAgICAgICAgIC8vIGlmIHRhc2sgc3RpbGwgcHJlc2VudCBpbiBzZXNzaW9uIHN0b3JhZ2UsIHdlIGtub3cgdGhhdCB0aGUgdGFzayBoYXMgbm90IGJlZW4gY29ycmVjdGx5IGNvbXBsZXRlZFxuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm5pbmcoe1xuICAgICAgICAgICAgcGhyYXNlOiBDYXNlRXZlbnRUcmlnZ2VyQ29tcG9uZW50LkVWRU5UX0NPTVBMRVRJT05fTUVTU0FHRSArICcuICcgKyBDb25zdGFudHMuVEFTS19DT01QTEVUSU9OX0VSUk9SXG4gICAgICAgICAgICAsIHJlcGxhY2VtZW50c30pO1xuICAgICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oJ3Rhc2tDb21wbGV0aW9uRXJyb3InKTtcbiAgICAgICAgfSBlbHNlIGlmIChFdmVudFN0YXR1c1NlcnZpY2UuaXNJbmNvbXBsZXRlKGV2ZW50U3RhdHVzKSkge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLndhcm5pbmcoe1xuICAgICAgICAgICAgcGhyYXNlOiBDYXNlRXZlbnRUcmlnZ2VyQ29tcG9uZW50LkVWRU5UX0NPTVBMRVRJT05fTUVTU0FHRSArIENhc2VFdmVudFRyaWdnZXJDb21wb25lbnQuQ0FMTEJBQ0tfRkFJTEVEX01FU1NBR0UsXG4gICAgICAgICAgICByZXBsYWNlbWVudHNcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5zdWNjZXNzKHtcbiAgICAgICAgICAgIHBocmFzZTogQ2FzZUV2ZW50VHJpZ2dlckNvbXBvbmVudC5FVkVOVF9DT01QTEVUSU9OX01FU1NBR0UsXG4gICAgICAgICAgICByZXBsYWNlbWVudHMsXG4gICAgICAgICAgICBwcmVzZXJ2ZTogdHJ1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWwoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgcHJldmlvdXNVcmwgPSB0aGlzLnJvdXRlckN1cnJlbnROYXZpZ2F0aW9uPy5wcmV2aW91c05hdmlnYXRpb24/LmZpbmFsVXJsPy50b1N0cmluZygpO1xuICAgIGlmIChwcmV2aW91c1VybCkge1xuICAgICAgaWYgKHByZXZpb3VzVXJsLmluZGV4T2YoJyMnKSA+IC0xKSB7XG4gICAgICAgIGNvbnN0IHVybCA9IHByZXZpb3VzVXJsLnNwbGl0KCcjJylbMF07XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gcHJldmlvdXNVcmwuc3BsaXQoJyMnKVsxXS5yZXBsYWNlKC8lMjAvZywgJyAnKTtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFt1cmxdLCB7IGZyYWdtZW50OiBmcmFnbWVudCB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcHJldmlvdXNVcmxdKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnBhcmVudFVybF0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpc0RhdGFMb2FkZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMuZXZlbnRUcmlnZ2VyICYmIHRoaXMuY2FzZURldGFpbHMpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaXNEYXRhTG9hZGVkKClcIiBjbGFzcz1cInNjcmVlbi05OTBcIj5cbiAgPGNjZC1hY3Rpdml0eSBbY2FzZUlkXT1cImNhc2VEZXRhaWxzLmNhc2VfaWRcIiBbZGlzcGxheU1vZGVdPVwiQkFOTkVSXCI+PC9jY2QtYWN0aXZpdHk+XG4gIDxjY2QtY2FzZS1lZGl0IFtjYXNlRGV0YWlsc109XCJjYXNlRGV0YWlsc1wiXG4gICAgICAgICAgICAgICAgIFtzdWJtaXRdPVwic3VibWl0KClcIlxuICAgICAgICAgICAgICAgICBbdmFsaWRhdGVdPVwidmFsaWRhdGUoKVwiXG4gICAgICAgICAgICAgICAgIFtldmVudFRyaWdnZXJdPVwiZXZlbnRUcmlnZ2VyXCJcbiAgICAgICAgICAgICAgICAgKGNhbmNlbGxlZCk9XCJjYW5jZWwoKVwiXG4gICAgICAgICAgICAgICAgIChzdWJtaXR0ZWQpPVwic3VibWl0dGVkKCRldmVudClcIj48L2NjZC1jYXNlLWVkaXQ+XG48L2Rpdj5cbiJdfQ==
@@ -29,10 +29,19 @@ export class MarkdownComponent {
29
29
  if (target.tagName.toLowerCase() === 'a') {
30
30
  const href = target.getAttribute('href');
31
31
  if (href && href.startsWith('/') && !href.startsWith('//')) {
32
- event.preventDefault();
33
- this.ngZone.run(() => {
34
- this.router.navigateByUrl(href);
35
- });
32
+ const currentUrl = window.location.href;
33
+ if (currentUrl.includes('trigger')) {
34
+ // if we are already in an event and there is a markdown we should reload the page as without the components will not reinitialise
35
+ this.ngZone.run(() => {
36
+ this.router.navigateByUrl(href);
37
+ });
38
+ }
39
+ else {
40
+ event.preventDefault();
41
+ this.ngZone.run(() => {
42
+ this.router.navigateByUrl(href);
43
+ });
44
+ }
36
45
  }
37
46
  }
38
47
  });
@@ -79,4 +88,4 @@ export class MarkdownComponent {
79
88
  type: Input
80
89
  }] }); })();
81
90
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MarkdownComponent, { className: "MarkdownComponent", filePath: "lib/shared/components/palette/markdown/markdown.component.ts", lineNumber: 10 }); })();
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbWFya2Rvd24vbWFya2Rvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbWFya2Rvd24vbWFya2Rvd24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBT3pDLE1BQU0sT0FBTyxpQkFBaUI7SUFJUjtJQUF3QjtJQUE2QjtJQUh6RCxPQUFPLENBQVM7SUFDaEIsc0JBQXNCLEdBQWEsSUFBSSxDQUFDO0lBRXhELFlBQW9CLE1BQWMsRUFBVSxRQUFtQixFQUFVLE1BQWM7UUFBbkUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUcsQ0FBQztJQUVwRixRQUFRO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckQsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFTSxjQUFjLENBQUMsS0FBaUI7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDakMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7WUFDM0MsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUN6QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUMzRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTt3QkFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2xDLENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZTtRQUNyQixNQUFNLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUV2QyxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDM0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksS0FBSyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFFLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxLQUFLLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDekYsQ0FBQyxDQUFDO1FBRUYsTUFBTSxDQUFDLFVBQVUsQ0FBQztZQUNoQixRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWSxDQUFDLEdBQVc7UUFDOUIsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDN0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRTVELE9BQU8sU0FBUyxLQUFLLGFBQWEsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsbUNBQW1DO0lBQ2hHLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxXQUFtQjtRQUM3QyxNQUFNLGlCQUFpQixHQUFHLDRCQUE0QixDQUFDO1FBQ3ZELE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7MkVBckRVLGlCQUFpQjs2REFBakIsaUJBQWlCO1lDVHpCLEFBQUwsMkJBQUssa0JBQStHOzs7WUFBcEYsc0dBQVMsMEJBQXNCLElBQUM7WUFBK0QsQUFBWCxpQkFBVyxFQUFNOztZQUFwRSxjQUFrRDtZQUFsRCw4RUFBa0Q7OztpRkRTdEcsaUJBQWlCO2NBTDdCLFNBQVM7MkJBQ0UsY0FBYyxtQkFFUCx1QkFBdUIsQ0FBQyxNQUFNO29GQUcvQixPQUFPO2tCQUF0QixLQUFLO1lBQ1Usc0JBQXNCO2tCQUFyQyxLQUFLOztrRkFGSyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgTmdab25lLCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgbWFya2VkIGZyb20gJ21hcmtlZCc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtbWFya2Rvd24nLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFya2Rvd24uaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1hcmtkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIGNvbnRlbnQ6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHJlbmRlclVybFRvVGV4dEZlYXR1cmU/OiBib29sZWFuID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudCA9IHRoaXMuY29udGVudC5yZXBsYWNlKC8gIFxcbi9nLCAnPGJyPicpO1xuICAgIGlmICh0aGlzLnJlbmRlclVybFRvVGV4dEZlYXR1cmUpIHtcbiAgICAgIHRoaXMucmVuZGVyVXJsVG9UZXh0KCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGludGVyY2VwdENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWYgKHRhcmdldC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdhJykge1xuICAgICAgICBjb25zdCBocmVmID0gdGFyZ2V0LmdldEF0dHJpYnV0ZSgnaHJlZicpO1xuICAgICAgICBpZiAoaHJlZiAmJiBocmVmLnN0YXJ0c1dpdGgoJy8nKSAmJiAhaHJlZi5zdGFydHNXaXRoKCcvLycpKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChocmVmKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW5kZXJVcmxUb1RleHQoKTogdm9pZCB7XG4gICAgY29uc3QgcmVuZGVyZXIgPSBuZXcgbWFya2VkLlJlbmRlcmVyKCk7XG5cbiAgICByZW5kZXJlci5saW5rID0gKGhyZWYsIHRpdGxlLCB0ZXh0KSA9PiB7XG4gICAgICBpZiAoIXRleHQgfHwgdGV4dCA9PT0gaHJlZikge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0FsbG93ZWRVcmwoaHJlZikgPyBgPGEgaHJlZj1cIiR7aHJlZn1cIj4ke2hyZWZ9PC9hPmAgOiBocmVmO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuZGV0ZWN0TWFya2Rvd25MaW5rcyh0aGlzLmNvbnRlbnQpID8gYDxhIGhyZWY9XCIke2hyZWZ9XCI+JHt0ZXh0fTwvYT5gIDogdGV4dDtcbiAgICB9O1xuXG4gICAgbWFya2VkLnNldE9wdGlvbnMoe1xuICAgICAgcmVuZGVyZXI6IHJlbmRlcmVyXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGlzQWxsb3dlZFVybCh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGN1cnJlbnRPcmlnaW4gPSB3aW5kb3cubG9jYXRpb24ub3JpZ2luO1xuICAgIGNvbnN0IHVybE9yaWdpbiA9IG5ldyBVUkwodXJsLCB3aW5kb3cubG9jYXRpb24uaHJlZikub3JpZ2luO1xuXG4gICAgcmV0dXJuIHVybE9yaWdpbiA9PT0gY3VycmVudE9yaWdpbiB8fCB1cmwuc3RhcnRzV2l0aCgnLycpOyAvLyBDaGVjayBpZiBzYW1lIG9yaWdpbiBvciByZWxhdGl2ZVxuICB9XG5cbiAgcHJpdmF0ZSBkZXRlY3RNYXJrZG93bkxpbmtzKGlucHV0U3RyaW5nOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBtYXJrZG93bkxpbmtSZWdleCA9IC9cXFsoW15cXF1dKylcXF1cXCg/KFteICldKylcXCkvZztcbiAgICByZXR1cm4gbWFya2Rvd25MaW5rUmVnZXgudGVzdChpbnB1dFN0cmluZyk7XG4gIH1cbn0iLCI8ZGl2PjxtYXJrZG93biBjbGFzcz1cIm1hcmtkb3duXCIgKGNsaWNrKT1cImludGVyY2VwdENsaWNrKCRldmVudClcIiBbZGF0YV09XCJjb250ZW50IHwgY2NkQ2FzZVJlZmVyZW5jZSB8IHJweFRyYW5zbGF0ZVwiPjwvbWFya2Rvd24+PC9kaXY+XG4iXX0=
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbWFya2Rvd24vbWFya2Rvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvbWFya2Rvd24vbWFya2Rvd24uaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7O0FBT3pDLE1BQU0sT0FBTyxpQkFBaUI7SUFJUjtJQUF3QjtJQUE2QjtJQUh6RCxPQUFPLENBQVM7SUFDaEIsc0JBQXNCLEdBQWEsSUFBSSxDQUFDO0lBRXhELFlBQW9CLE1BQWMsRUFBVSxRQUFtQixFQUFVLE1BQWM7UUFBbkUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQUcsQ0FBQztJQUVwRixRQUFRO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDckQsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFTSxjQUFjLENBQUMsS0FB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QUw3QixTQUFTOzJCQUNFLGNBQWMsbUJBRVAsdUJBQXVCLENBQUMsTUFBTTtvRkFHL0IsT0FBTztrQkFBdEIsS0FBSztZQUNVLHNCQUFzQjtrQkFBckMsS0FBSzs7a0ZBRkssaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE5nWm9uZSwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIG1hcmtlZCBmcm9tICdtYXJrZWQnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLW1hcmtkb3duJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcmtkb3duLmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNYXJrZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb250ZW50OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyByZW5kZXJVcmxUb1RleHRGZWF0dXJlPzogYm9vbGVhbiA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQucmVwbGFjZSgvICBcXG4vZywgJzxicj4nKTtcbiAgICBpZiAodGhpcy5yZW5kZXJVcmxUb1RleHRGZWF0dXJlKSB7XG4gICAgICB0aGlzLnJlbmRlclVybFRvVGV4dCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpbnRlcmNlcHRDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGlmICh0YXJnZXQudGFnTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnYScpIHtcbiAgICAgICAgY29uc3QgaHJlZiA9IHRhcmdldC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICAgICAgaWYgKGhyZWYgJiYgaHJlZi5zdGFydHNXaXRoKCcvJykgJiYgIWhyZWYuc3RhcnRzV2l0aCgnLy8nKSkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRVcmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICAgICAgICBpZiAoY3VycmVudFVybC5pbmNsdWRlcygndHJpZ2dlcicpKSB7XG4gICAgICAgICAgICAvLyBpZiB3ZSBhcmUgYWxyZWFkeSBpbiBhbiBldmVudCBhbmQgdGhlcmUgaXMgYSBtYXJrZG93biB3ZSBzaG91bGQgcmVsb2FkIHRoZSBwYWdlIGFzIHdpdGhvdXQgdGhlIGNvbXBvbmVudHMgd2lsbCBub3QgcmVpbml0aWFsaXNlXG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGhyZWYpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGhyZWYpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclVybFRvVGV4dCgpOiB2b2lkIHtcbiAgICBjb25zdCByZW5kZXJlciA9IG5ldyBtYXJrZWQuUmVuZGVyZXIoKTtcblxuICAgIHJlbmRlcmVyLmxpbmsgPSAoaHJlZiwgdGl0bGUsIHRleHQpID0+IHtcbiAgICAgIGlmICghdGV4dCB8fCB0ZXh0ID09PSBocmVmKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQWxsb3dlZFVybChocmVmKSA/IGA8YSBocmVmPVwiJHtocmVmfVwiPiR7aHJlZn08L2E+YCA6IGhyZWY7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5kZXRlY3RNYXJrZG93bkxpbmtzKHRoaXMuY29udGVudCkgPyBgPGEgaHJlZj1cIiR7aHJlZn1cIj4ke3RleHR9PC9hPmAgOiB0ZXh0O1xuICAgIH07XG5cbiAgICBtYXJrZWQuc2V0T3B0aW9ucyh7XG4gICAgICByZW5kZXJlcjogcmVuZGVyZXJcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBbGxvd2VkVXJsKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY3VycmVudE9yaWdpbiA9IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW47XG4gICAgY29uc3QgdXJsT3JpZ2luID0gbmV3IFVSTCh1cmwsIHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5vcmlnaW47XG5cbiAgICByZXR1cm4gdXJsT3JpZ2luID09PSBjdXJyZW50T3JpZ2luIHx8IHVybC5zdGFydHNXaXRoKCcvJyk7IC8vIENoZWNrIGlmIHNhbWUgb3JpZ2luIG9yIHJlbGF0aXZlXG4gIH1cblxuICBwcml2YXRlIGRldGVjdE1hcmtkb3duTGlua3MoaW5wdXRTdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1hcmtkb3duTGlua1JlZ2V4ID0gL1xcWyhbXlxcXV0rKVxcXVxcKD8oW14gKV0rKVxcKS9nO1xuICAgIHJldHVybiBtYXJrZG93bkxpbmtSZWdleC50ZXN0KGlucHV0U3RyaW5nKTtcbiAgfVxufSIsIjxkaXY+PG1hcmtkb3duIGNsYXNzPVwibWFya2Rvd25cIiAoY2xpY2spPVwiaW50ZXJjZXB0Q2xpY2soJGV2ZW50KVwiIFtkYXRhXT1cImNvbnRlbnQgfCBjY2RDYXNlUmVmZXJlbmNlIHwgcnB4VHJhbnNsYXRlXCI+PC9tYXJrZG93bj48L2Rpdj5cbiJdfQ==
@@ -9126,12 +9126,6 @@ class CaseEditComponent {
9126
9126
  this.cookieService = cookieService;
9127
9127
  }
9128
9128
  ngOnInit() {
9129
- this.initializeComponent();
9130
- this.route.queryParams.subscribe((params) => {
9131
- this.navigationOrigin = params[CaseEditComponent.ORIGIN_QUERY_PARAM];
9132
- });
9133
- }
9134
- initializeComponent() {
9135
9129
  this.wizard = this.wizardFactory.create(this.eventTrigger);
9136
9130
  this.initialUrl = this.sessionStorageService.getItem('eventUrl');
9137
9131
  this.isPageRefreshed = JSON.parse(this.sessionStorageService.getItem('isPageRefreshed'));
@@ -9144,11 +9138,9 @@ class CaseEditComponent {
9144
9138
  description: ['']
9145
9139
  })
9146
9140
  });
9147
- }
9148
- ngOnChanges() {
9149
- if (this.eventTrigger) {
9150
- this.initializeComponent();
9151
- }
9141
+ this.route.queryParams.subscribe((params) => {
9142
+ this.navigationOrigin = params[CaseEditComponent.ORIGIN_QUERY_PARAM];
9143
+ });
9152
9144
  }
9153
9145
  ngOnDestroy() {
9154
9146
  /* istanbul ignore else */
@@ -9585,7 +9577,7 @@ class CaseEditComponent {
9585
9577
  return task.case_id === eventDetails.caseId && (task.description?.includes(eventDetails.eventId));
9586
9578
  }
9587
9579
  static ɵfac = function CaseEditComponent_Factory(t) { return new (t || CaseEditComponent)(i0.ɵɵdirectiveInject(i4.FormBuilder), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(FieldsUtils), i0.ɵɵdirectiveInject(FieldsPurger), i0.ɵɵdirectiveInject(ConditionalShowRegistrarService), i0.ɵɵdirectiveInject(WizardFactoryService), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(WindowService), i0.ɵɵdirectiveInject(FormValueService), i0.ɵɵdirectiveInject(FormErrorService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(ValidPageListCaseFieldsService), i0.ɵɵdirectiveInject(WorkAllocationService), i0.ɵɵdirectiveInject(AlertService), i0.ɵɵdirectiveInject(AbstractAppConfig), i0.ɵɵdirectiveInject(ReadCookieService)); };
9588
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditComponent, selectors: [["ccd-case-edit"]], inputs: { eventTrigger: "eventTrigger", submit: "submit", validate: "validate", saveDraft: "saveDraft", caseDetails: "caseDetails" }, outputs: { cancelled: "cancelled", submitted: "submitted" }, features: [i0.ɵɵProvidersFeature([GreyBarService]), i0.ɵɵNgOnChangesFeature], decls: 1, vars: 0, template: function CaseEditComponent_Template(rf, ctx) { if (rf & 1) {
9580
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditComponent, selectors: [["ccd-case-edit"]], inputs: { eventTrigger: "eventTrigger", submit: "submit", validate: "validate", saveDraft: "saveDraft", caseDetails: "caseDetails" }, outputs: { cancelled: "cancelled", submitted: "submitted" }, features: [i0.ɵɵProvidersFeature([GreyBarService])], decls: 1, vars: 0, template: function CaseEditComponent_Template(rf, ctx) { if (rf & 1) {
9589
9581
  i0.ɵɵelement(0, "router-outlet");
9590
9582
  } }, dependencies: [i1$1.RouterOutlet], styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:solid 1px #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{border-bottom:0px}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.no-bottom-border[_ngcontent-%COMP%]{border-bottom:none}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
9591
9583
  }
@@ -15625,10 +15617,19 @@ class MarkdownComponent {
15625
15617
  if (target.tagName.toLowerCase() === 'a') {
15626
15618
  const href = target.getAttribute('href');
15627
15619
  if (href && href.startsWith('/') && !href.startsWith('//')) {
15628
- event.preventDefault();
15629
- this.ngZone.run(() => {
15630
- this.router.navigateByUrl(href);
15631
- });
15620
+ const currentUrl = window.location.href;
15621
+ if (currentUrl.includes('trigger')) {
15622
+ // if we are already in an event and there is a markdown we should reload the page as without the components will not reinitialise
15623
+ this.ngZone.run(() => {
15624
+ this.router.navigateByUrl(href);
15625
+ });
15626
+ }
15627
+ else {
15628
+ event.preventDefault();
15629
+ this.ngZone.run(() => {
15630
+ this.router.navigateByUrl(href);
15631
+ });
15632
+ }
15632
15633
  }
15633
15634
  }
15634
15635
  });
@@ -33729,11 +33730,6 @@ class CaseEventTriggerComponent {
33729
33730
  this.caseDetails = caseDetails;
33730
33731
  });
33731
33732
  }
33732
- this.route.data.subscribe((data) => {
33733
- if (data?.eventTrigger) {
33734
- this.eventTrigger = data.eventTrigger;
33735
- }
33736
- });
33737
33733
  this.eventTrigger = this.route.snapshot.data.eventTrigger;
33738
33734
  if (this.activityPollingService.isEnabled) {
33739
33735
  this.ngZone.runOutsideAngular(() => {