@colijnit/sharedcomponents 255.1.3 → 255.1.4

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.
@@ -12,15 +12,16 @@ import { ArrayUtils } from "../../utils/array-utils";
12
12
  import { activityEmailRequestData } from "@colijnit/mainapi/build/model/activity-email-request-data";
13
13
  import { SharedService } from "../../service/shared.service";
14
14
  import { ReportType } from "@colijnit/mainapi/build/enum/report-type.enum";
15
- import { CoreDialogService, FormComponent } from "@colijnit/corecomponents_v12";
15
+ import { CoreDialogService, FormComponent, FormMasterService } from "@colijnit/corecomponents_v12";
16
16
  import { DictionaryService } from "../../service/dictionary.service";
17
17
  import { ActivityEmailHistory } from "@colijnit/mainapi/build/model/activity-email-history.bo";
18
18
  export class TaskCreatorComponent {
19
- constructor(iconService, dictionaryService, sharedService, _dialogService) {
19
+ constructor(iconService, dictionaryService, sharedService, _dialogService, _formMasterService) {
20
20
  this.iconService = iconService;
21
21
  this.dictionaryService = dictionaryService;
22
22
  this.sharedService = sharedService;
23
23
  this._dialogService = _dialogService;
24
+ this._formMasterService = _formMasterService;
24
25
  this.icons = Icon;
25
26
  this.table = TableName.Transactions;
26
27
  this.activityCreated = new EventEmitter();
@@ -65,7 +66,7 @@ export class TaskCreatorComponent {
65
66
  }
66
67
  createRemarkClicked() {
67
68
  return __awaiter(this, void 0, void 0, function* () {
68
- this.createForm.submit();
69
+ this._formMasterService.submitSlaves();
69
70
  if (this.createForm.isValid()) {
70
71
  let remark = this.createRemark();
71
72
  let activity = new Activity();
@@ -94,7 +95,7 @@ export class TaskCreatorComponent {
94
95
  }
95
96
  createWorkClicked() {
96
97
  return __awaiter(this, void 0, void 0, function* () {
97
- this.createForm.submit();
98
+ this._formMasterService.submitSlaves();
98
99
  if (this.createForm.isValid()) {
99
100
  let work = this.createWork();
100
101
  let activity = new Activity();
@@ -111,7 +112,7 @@ export class TaskCreatorComponent {
111
112
  }
112
113
  createTaskClicked() {
113
114
  return __awaiter(this, void 0, void 0, function* () {
114
- this.createForm.submit();
115
+ this._formMasterService.submitSlaves();
115
116
  if (this.createForm.isValid()) {
116
117
  const task = this.createTask();
117
118
  let activity = new Activity();
@@ -356,14 +357,18 @@ TaskCreatorComponent.decorators = [
356
357
  (click)="emailDialogClosed()"></co-button>
357
358
  </div>
358
359
  </ng-template>
359
- `
360
+ `,
361
+ providers: [
362
+ FormMasterService
363
+ ]
360
364
  },] }
361
365
  ];
362
366
  TaskCreatorComponent.ctorParameters = () => [
363
367
  { type: IconCacheService },
364
368
  { type: DictionaryService },
365
369
  { type: SharedService },
366
- { type: CoreDialogService }
370
+ { type: CoreDialogService },
371
+ { type: FormMasterService }
367
372
  ];
368
373
  TaskCreatorComponent.propDecorators = {
369
374
  createForm: [{ type: ViewChild, args: [FormComponent,] }],
@@ -376,4 +381,4 @@ TaskCreatorComponent.propDecorators = {
376
381
  activityCreated: [{ type: Output }],
377
382
  showClass: [{ type: HostBinding, args: ["class.co-task-creator",] }]
378
383
  };
379
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jcmVhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3Rhc2stY3JlYXRvci90YXNrLWNyZWF0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBRS9ELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0QsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRzNELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNuRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBRXpFLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUU5RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFB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Q0FBQztTQUNoRDtJQUNILENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQzs7O1lBdlhGLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E4Q1Q7YUFDSjs7O1lBeEVPLGdCQUFnQjtZQWtCaEIsaUJBQWlCO1lBTGpCLGFBQWE7WUFHYixpQkFBaUI7Ozt5QkE0RHRCLFNBQVMsU0FBQyxhQUFhO3FCQUd2QixLQUFLO3VCQUdMLEtBQUs7b0JBR0wsS0FBSzsrQkFHTCxLQUFLO3NCQUdMLEtBQUs7bUNBR0wsS0FBSzs4QkFHTCxNQUFNO3dCQUdOLFdBQVcsU0FBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uLy4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QWN0aXZpdHl9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS5ib1wiO1xyXG5pbXBvcnQge0FjdGl2aXR5VHlwZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vYWN0aXZpdHktdHlwZVwiO1xyXG5pbXBvcnQge1JlbWFya30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlbWFyay5ib1wiO1xyXG5pbXBvcnQge1JlbGF0aW9uU21hbGxPYmplY3R9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1zbWFsbC1vYmplY3QuYm9cIjtcclxuaW1wb3J0IHtUYWJsZU5hbWV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3RhYmxlLW5hbWUuZW51bVwiO1xyXG5pbXBvcnQge1dvcmt9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC93b3JrLmJvXCI7XHJcbmltcG9ydCB7VGFza30gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3Rhc2suYm9cIjtcclxuaW1wb3J0IHtXb3JrZmxvd0NhdGVnb3J5VHlwZX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL2VudW0vd29ya2Zsb3ctY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge0NvRG9jdW1lbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb2N1bWVudFwiO1xyXG5pbXBvcnQge0FycmF5VXRpbHN9IGZyb20gXCIuLi8uLi91dGlscy9hcnJheS11dGlsc1wiO1xyXG5pbXBvcnQge1JvbGVFbWFpbGFkZHJlc3N9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yb2xlLWVtYWlsLWFkZHJlc3NcIjtcclxuaW1wb3J0IHthY3Rpdml0eUVtYWlsUmVxdWVzdERhdGF9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9hY3Rpdml0eS1lbWFpbC1yZXF1ZXN0LWRhdGFcIjtcclxuaW1wb3J0IHtTaGFyZWRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9zaGFyZWQuc2VydmljZVwiO1xyXG5pbXBvcnQge1JlcG9ydFR5cGV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3JlcG9ydC10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtSZXBvcnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQuYm9cIjtcclxuaW1wb3J0IHtDb3JlRGlhbG9nU2VydmljZSwgRm9ybUNvbXBvbmVudH0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtJY29uTGlzdEl0ZW19IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyL2xpYi9tb2RlbC9pY29uLWxpc3QtaXRlbVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtBY3Rpdml0eUVtYWlsSGlzdG9yeX0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2FjdGl2aXR5LWVtYWlsLWhpc3RvcnkuYm9cIjtcclxuaW1wb3J0IHtDb0VtYWlsQXR0YWNobWVudH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL2NvLWVtYWlsLWF0dGFjaG1lbnQuYm9cIjtcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLXRhc2stY3JlYXRvclwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgPGNvLWZvcm0gI2NyZWF0ZUZvcm0gY2xhc3M9XCJpbnB1dC1maWVsZHNcIj5cclxuICAgICAgICA8Y28tbGlzdC1vZi1pY29ucyBbY29sbGVjdGlvbl09XCJvcHRpb25Db2xsZWN0aW9uXCIgKGl0ZW1TZWxlY3RlZCk9XCJpdGVtU2VsZWN0ZWQoJGV2ZW50KVwiPjwvY28tbGlzdC1vZi1pY29ucz5cclxuICAgICAgICA8Y28taW5wdXQtdGV4dCAqbmdJZj1cImNob3NlbkFjdGl2aXR5VHlwZSA9PT0gb3B0aW9uQ29sbGVjdGlvblswXVwiIFtyZXF1aXJlZF09XCJjaG9zZW5BY3Rpdml0eVR5cGUgPT09IG9wdGlvbkNvbGxlY3Rpb25bMF1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInUkVNQVJLJyB8IGxvY2FsaXplXCIgWyhtb2RlbCldPVwicmVtYXJrVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JpZ2h0SWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5QYXBlclBsYW5lVG9wU29saWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAocmlnaHRJY29uQ2xpY2spPVwiY3JlYXRlUmVtYXJrQ2xpY2tlZCgpXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgIDxjby1pbnB1dC10ZXh0ICpuZ0lmPVwiY2hvc2VuQWN0aXZpdHlUeXBlID09PSBvcHRpb25Db2xsZWN0aW9uWzFdXCIgW3JlcXVpcmVkXT1cImNob3NlbkFjdGl2aXR5VHlwZSA9PT0gb3B0aW9uQ29sbGVjdGlvblsxXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidERVNDUklQVElPTicgfCBsb2NhbGl6ZVwiIFsobW9kZWwpXT1cIndvcmtEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3JpZ2h0SWNvbkRhdGFdPVwiaWNvblNlcnZpY2UuZ2V0SWNvbihpY29ucy5QYXBlclBsYW5lVG9wU29saWQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAocmlnaHRJY29uQ2xpY2spPVwiY3JlYXRlV29ya0NsaWNrZWQoKVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFzay1pbnB1dC1maWVsZHNcIiAqbmdJZj1cImNob3NlbkFjdGl2aXR5VHlwZSA9PT0gb3B0aW9uQ29sbGVjdGlvblsyXVwiPlxyXG4gICAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwidGFza05hbWVcIiBbcGxhY2Vob2xkZXJdPVwiJ05BTUUnIHwgbG9jYWxpemVcIiAgW3JlcXVpcmVkXT1cImNob3NlbkFjdGl2aXR5VHlwZSA9PT0gb3B0aW9uQ29sbGVjdGlvblsyXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmlnaHRJY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlBhcGVyUGxhbmVUb3BTb2xpZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgKHJpZ2h0SWNvbkNsaWNrKT1cImNyZWF0ZVRhc2tDbGlja2VkKClcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJ0YXNrRGVzY3JpcHRpb25cIiBbcGxhY2Vob2xkZXJdPVwiJ0RFU0NSSVBUSU9OJyB8IGxvY2FsaXplXCIgW3JlcXVpcmVkXT1cImNob3NlbkFjdGl2aXR5VHlwZSA9PT0gb3B0aW9uQ29sbGVjdGlvblsyXVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9jby1mb3JtPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZXh0cmFzLWJ1dHRvbnNcIj5cclxuICAgICAgICA8Y28tYnV0dG9uIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkVtYWlsUmVndWxhcilcIiAgKGNsaWNrKT1cInNob3dFbWFpbERpYWxvZyA9IHRydWVcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICA8Y28tYnV0dG9uIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlBhcGVyY2xpcFJlZ3VsYXIpXCIgIChjbGljayk9XCJzaG93RmlsZXNEaWFsb2cgPSB0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJkb2N1bWVudHMubGVuZ3RoID09PSAwID8gJycgOiBkb2N1bWVudHMubGVuZ3RoLnRvU3RyaW5nKClcIiA+PC9jby1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGNvLWRpYWxvZyAqbmdJZj1cInNob3dGaWxlc0RpYWxvZ1wiIChjbG9zZUNsaWNrKT1cInNob3dGaWxlc0RpYWxvZyA9IGZhbHNlXCI+XHJcbiAgICAgICAgPGNvLWZpbGVzLXVwbG9hZCAoZG9jdW1lbnRzQWRkZWQpPVwiYWRkZWREb2N1bWVudCgkZXZlbnQpXCIgKGRvY3VtZW50RGVsZXRlZCk9XCJkZWxldGVkRG9jdW1lbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2RvY3VtZW50c109XCJkb2N1bWVudHNcIiBbdXNlV2l0aG91dFNldHRpbmdQcm9wc109XCJ0cnVlXCI+PC9jby1maWxlcy11cGxvYWQ+XHJcbiAgICAgIDwvY28tZGlhbG9nPlxyXG4gICAgICA8Y28tZGlhbG9nICpuZ0lmPVwic2hvd0VtYWlsRGlhbG9nXCIgKGNsb3NlQ2xpY2spPVwiZW1haWxEaWFsb2dDbG9zZWQoKVwiIFtmb290ZXJUZW1wbGF0ZV09XCJmb290ZXJUZW1wbGF0ZVwiPlxyXG4gICAgICAgIDxjby1yb2xlLWVtYWlsLXNlbGVjdG9yIFsobW9kZWwpXT1cImVtYWlsQWRkcmVzc2VzXCIgW2tleV09XCJyZW1hcmtBbmRXb3JrS2V5XCIgW3dvcmtmbG93Q2F0ZWdvcnlUeXBlXT1cIndvcmtmbG93Q2F0ZWdvcnlUeXBlXCI+PC9jby1yb2xlLWVtYWlsLXNlbGVjdG9yPlxyXG4gICAgICAgIDxjby1yb2xlLWVtYWlsLXNlbGVjdG9yIFsobW9kZWwpXT1cImJjY0VtYWlsQWRkcmVzc2VzXCIgW2tleV09XCJyZW1hcmtBbmRXb3JrS2V5XCIgW3dvcmtmbG93Q2F0ZWdvcnlUeXBlXT1cIndvcmtmbG93Q2F0ZWdvcnlUeXBlXCIgW3JlY2lwaWVudExhYmVsXT1cIidCQ0NfUkVDSVBJRU5UJ1wiIFtleHRyYUxhYmVsXT1cIidCQ0NfRVhUUkFfRU1BSUxfQUREUkVTU0VTJ1wiPjwvY28tcm9sZS1lbWFpbC1zZWxlY3Rvcj5cclxuICAgICAgICA8IS0tVE9ETzogcmVpbXBsZW1lbnQgb25jZSB3ZSBoYXZlIHRoZSBiYWNrZW5kIGZ1bmN0aW9uYWxpdHkgZm9yIHRoaXMtLT5cclxuICAgICAgIDwhLS08Y28taW5wdXQtdGV4dCBbcmVhZG9ubHldPVwiZmFsc2VcIiBbbGFiZWxdPVwiJ1NFTkRFUicgfCBsb2NhbGl6ZVwiIFsobW9kZWwpXT1cInNlbmRlckFkZHJlc3NcIj48L2NvLWlucHV0LXRleHQ+LS0+XHJcblxyXG4gICAgICA8L2NvLWRpYWxvZz5cclxuXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1mb290ZXItYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJzYXZlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkNoZWNrRHVvdG9uZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZW1haWxEaWFsb2dDbG9zZWQoKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLkNyb3NzU2tpbm55KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlbWFpbERpYWxvZ0Nsb3NlZCgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFza0NyZWF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBWaWV3Q2hpbGQoRm9ybUNvbXBvbmVudClcclxuICBwdWJsaWMgY3JlYXRlRm9ybTogRm9ybUNvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgYXV0aG9yOiBSZWxhdGlvblNtYWxsT2JqZWN0O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBicmFuY2hObzogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0YWJsZTogVGFibGVOYW1lID0gVGFibGVOYW1lLlRyYW5zYWN0aW9ucztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmVtYXJrQW5kV29ya0tleTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyB0YXNrS2V5OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHdvcmtmbG93Q2F0ZWdvcnlUeXBlOiBXb3JrZmxvd0NhdGVnb3J5VHlwZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGFjdGl2aXR5Q3JlYXRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10YXNrLWNyZWF0b3JcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3B0aW9uQ29sbGVjdGlvbjogSWNvbkxpc3RJdGVtW10gPSBbXHJcbiAgICB7IGljb246IHRoaXMuaWNvblNlcnZpY2UuZ2V0SWNvbih0aGlzLmljb25zLkNvbW1lbnRSZWd1bGFyKSxsYWJlbDogdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoJ1JFTUFSSycsIHRydWUpIH0sXHJcbiAgICB7IGljb246IHRoaXMuaWNvblNlcnZpY2UuZ2V0SWNvbih0aGlzLmljb25zLlBlcnNvbkRpZ2dpbmdSZWd1bGFyKSwgbGFiZWw6IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KCdXT1JLJywgdHJ1ZSkgfSxcclxuICAgIHsgaWNvbjogdGhpcy5pY29uU2VydmljZS5nZXRJY29uKHRoaXMuaWNvbnMuVGFzayksIGxhYmVsOiB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldCgnVEFTSycsIHRydWUpIH0sXHJcbiAgXTtcclxuXHJcbiAgcHVibGljIHNob3dGaWxlc0RpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBkb2N1bWVudHM6IENvRG9jdW1lbnRbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgc2hvd0VtYWlsRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNlbmRlckFkZHJlc3M6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBlbWFpbEFkZHJlc3Nlczogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgYmNjRW1haWxBZGRyZXNzZXM6IHN0cmluZ1tdID0gW107XHJcbiAgcHVibGljIGVtYWlsUmVxdWVzdDogYWN0aXZpdHlFbWFpbFJlcXVlc3REYXRhID0gbnVsbDtcclxuXHJcbiAgcHVibGljIGNyZWF0ZWRUYXNrOiBUYXNrO1xyXG4gIHB1YmxpYyBjcmVhdGVkUmVtYXJrOiBSZW1hcms7XHJcbiAgcHVibGljIGNyZWF0ZWRXb3JrOiBXb3JrO1xyXG4gIHB1YmxpYyBjaG9zZW5BY3Rpdml0eVR5cGU6IEljb25MaXN0SXRlbTtcclxuXHJcbiAgcHVibGljIHJlbWFya1RleHQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHdvcmtEZXNjcmlwdGlvbjogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgdGFza05hbWU6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHRhc2tEZXNjcmlwdGlvbjogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGljb25TZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIHNoYXJlZFNlcnZpY2U6IFNoYXJlZFNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogQ29yZURpYWxvZ1NlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY2hvc2VuQWN0aXZpdHlUeXBlID0gdGhpcy5vcHRpb25Db2xsZWN0aW9uWzBdO1xyXG4gICAgdGhpcy5zZW5kZXJBZGRyZXNzID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmdldEVtYWlsU2VuZGVyQnlXb3JrZmxvd0NhdGVnb3J5QW5kS2V5KCdTRVJWSUNFX09SREVSJywgdGhpcy5yZW1hcmtBbmRXb3JrS2V5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpdGVtU2VsZWN0ZWQoaXRlbTogSWNvbkxpc3RJdGVtKTogdm9pZCB7XHJcbiAgICB0aGlzLmNob3NlbkFjdGl2aXR5VHlwZSA9IGl0ZW07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgYWRkZWREb2N1bWVudChkb2NzOiBDb0RvY3VtZW50W10pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuZG9jdW1lbnRzID0gdGhpcy5kb2N1bWVudHMuY29uY2F0KGRvY3MpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRlbGV0ZWREb2N1bWVudChkb2M6IENvRG9jdW1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIEFycmF5VXRpbHMuUmVtb3ZlRWxlbWVudChkb2MsIHRoaXMuZG9jdW1lbnRzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVSZW1hcmtDbGlja2VkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtLnN1Ym1pdCgpO1xyXG4gICAgaWYgKHRoaXMuY3JlYXRlRm9ybS5pc1ZhbGlkKCkpIHtcclxuICAgICAgbGV0IHJlbWFyazogUmVtYXJrID0gdGhpcy5jcmVhdGVSZW1hcmsoKTtcclxuXHJcbiAgICAgIGxldCBhY3Rpdml0eTogQWN0aXZpdHkgPSBuZXcgQWN0aXZpdHkoKTtcclxuICAgICAgYWN0aXZpdHkuYWN0aXZpdHlUeXBlID0gQWN0aXZpdHlUeXBlLlJlbWFyaztcclxuICAgICAgYWN0aXZpdHkucmVtYXJrID0gcmVtYXJrO1xyXG5cclxuICAgICAgdGhpcy5jcmVhdGVkUmVtYXJrID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmluc2VydFJlbWFyayhhY3Rpdml0eSk7XHJcbiAgICAgIGlmICh0aGlzLmNyZWF0ZWRSZW1hcmspIHtcclxuICAgICAgICB0aGlzLmhhbmRsZUFmdGVyQ3JlYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGVtYWlsRGlhbG9nQ2xvc2VkKCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5lbWFpbEFkZHJlc3Nlcy5sZW5ndGggPj0gMCl7XHJcbiAgICAgIHRoaXMuZW1haWxSZXF1ZXN0ID0gbmV3IGFjdGl2aXR5RW1haWxSZXF1ZXN0RGF0YTtcclxuICAgICAgdGhpcy5lbWFpbFJlcXVlc3QudGFibGUgPSB0aGlzLnRhYmxlO1xyXG4gICAgICB0aGlzLmVtYWlsUmVxdWVzdC5rZXkgPSB0aGlzLnJlbWFya0FuZFdvcmtLZXk7XHJcbiAgICAgIHRoaXMuZW1haWxSZXF1ZXN0LnNlbmRlckFkZHJlc3MgPSB0aGlzLnNlbmRlckFkZHJlc3M7XHJcbiAgICAgIHRoaXMuZW1haWxSZXF1ZXN0LnNlbmRBZGRyZXNzZXMgPSB0aGlzLmVtYWlsQWRkcmVzc2VzO1xyXG4gICAgICB0aGlzLmVtYWlsUmVxdWVzdC5jY0FkZHJlc3NlcyA9IHRoaXMuYmNjRW1haWxBZGRyZXNzZXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVtYWlsUmVxdWVzdCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dFbWFpbERpYWxvZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNyZWF0ZVdvcmtDbGlja2VkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtLnN1Ym1pdCgpO1xyXG4gICAgaWYgKHRoaXMuY3JlYXRlRm9ybS5pc1ZhbGlkKCkpIHtcclxuICAgICAgbGV0IHdvcms6IFdvcmsgPSB0aGlzLmNyZWF0ZVdvcmsoKTtcclxuXHJcbiAgICAgIGxldCBhY3Rpdml0eTogQWN0aXZpdHkgPSBuZXcgQWN0aXZpdHkoKTtcclxuICAgICAgYWN0aXZpdHkuYWN0aXZpdHlUeXBlID0gQWN0aXZpdHlUeXBlLldvcms7XHJcbiAgICAgIGFjdGl2aXR5LndvcmsgPSB3b3JrO1xyXG5cclxuICAgICAgdGhpcy5jcmVhdGVkV29yayA9IGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5pbnNlcnRXb3JrKGFjdGl2aXR5KTtcclxuICAgICAgaWYgKHRoaXMuY3JlYXRlZFdvcmspIHtcclxuICAgICAgICB0aGlzLmFjdGl2aXR5Q3JlYXRlZC5lbWl0KCk7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zZW5kRW1haWxJZk5lY2Nlc2FyeSgpO1xyXG4gICAgICAgIHRoaXMuY2xlYXJGaWVsZHMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBwdWJsaWMgYXN5bmMgY3JlYXRlVGFza0NsaWNrZWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm0uc3VibWl0KCk7XHJcbiAgICBpZiAodGhpcy5jcmVhdGVGb3JtLmlzVmFsaWQoKSkge1xyXG4gICAgICBjb25zdCB0YXNrID0gdGhpcy5jcmVhdGVUYXNrKCk7XHJcblxyXG4gICAgICBsZXQgYWN0aXZpdHk6IEFjdGl2aXR5ID0gbmV3IEFjdGl2aXR5KCk7XHJcbiAgICAgIGFjdGl2aXR5LmFjdGl2aXR5VHlwZSA9IEFjdGl2aXR5VHlwZS5UYXNrO1xyXG4gICAgICBhY3Rpdml0eS50YXNrID0gdGFzaztcclxuXHJcbiAgICAgIHRoaXMuY3JlYXRlZFRhc2sgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuaW5zZXJ0VGFzayhhY3Rpdml0eSk7XHJcbiAgICAgIGlmICh0aGlzLmNyZWF0ZWRUYXNrKSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpdml0eUNyZWF0ZWQuZW1pdCgpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2VuZEVtYWlsSWZOZWNjZXNhcnkoKTtcclxuICAgICAgICB0aGlzLmNsZWFyRmllbGRzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlUmVtYXJrKCk6IFJlbWFyayB7XHJcbiAgICBsZXQgcmVtYXJrOiBSZW1hcmsgPSBuZXcgUmVtYXJrKCk7XHJcbiAgICByZW1hcmsuYXV0aG9yID0gdGhpcy5hdXRob3I7XHJcbiAgICByZW1hcmsuYXV0aG9yLmltYWdlID0gdW5kZWZpbmVkO1xyXG4gICAgcmVtYXJrLmRvY3VtZW50cyA9IHRoaXMuZG9jdW1lbnRzO1xyXG4gICAgcmVtYXJrLnJlbWFyayA9IHRoaXMucmVtYXJrVGV4dDtcclxuICAgIHJlbWFyay5kYXRlVGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICByZW1hcmsudGFibGUgPSB0aGlzLnRhYmxlO1xyXG4gICAgcmVtYXJrLmtleSA9IHRoaXMucmVtYXJrQW5kV29ya0tleTtcclxuICAgIHJlbWFyay5yZWFkID0gZmFsc2U7XHJcbiAgICByZW1hcmsuY3VycmVudCA9IHRydWU7XHJcblxyXG4gICAgcmV0dXJuIHJlbWFyaztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlV29yaygpOiBXb3JrIHtcclxuICAgIGxldCB3b3JrOiBXb3JrID0gbmV3IFdvcmsoKTtcclxuICAgIHdvcmsuZXhlY3V0aXZlID0gdGhpcy5hdXRob3I7XHJcbiAgICB3b3JrLmV4ZWN1dGl2ZS5pbWFnZSA9IHVuZGVmaW5lZDtcclxuICAgIHdvcmsuZG9jdW1lbnRzID0gdGhpcy5kb2N1bWVudHM7XHJcbiAgICB3b3JrLndvcmtlZFRpbWUgPSAwO1xyXG4gICAgd29yay53b3JrRGVzY3JpcHRpb24gPSB0aGlzLndvcmtEZXNjcmlwdGlvblxyXG4gICAgd29yay5kYXRlVGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB3b3JrLnRhYmxlID0gdGhpcy50YWJsZTtcclxuICAgIHdvcmsua2V5ID0gdGhpcy5yZW1hcmtBbmRXb3JrS2V5O1xyXG5cclxuICAgIHJldHVybiB3b3JrO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVUYXNrKCk6IFRhc2sge1xyXG4gICAgbGV0IHRhc2s6IFRhc2sgPSBuZXcgVGFzaygpO1xyXG4gICAgdGFzay5leGVjdXRpdmUgPSB0aGlzLmF1dGhvcjtcclxuICAgIHRhc2suZXhlY3V0aXZlLmltYWdlID0gdW5kZWZpbmVkO1xyXG4gICAgdGFzay5yZXBvcnRlciA9IHRoaXMuYXV0aG9yO1xyXG4gICAgdGFzay5yZXBvcnRlci5pbWFnZSA9IHVuZGVmaW5lZDtcclxuICAgIHRhc2suZG9jdW1lbnRzID0gdGhpcy5kb2N1bWVudHM7XHJcbiAgICB0YXNrLm5hbWUgPSB0aGlzLnRhc2tOYW1lO1xyXG4gICAgdGFzay5kZXNjcmlwdGlvbiA9IHRoaXMudGFza0Rlc2NyaXB0aW9uO1xyXG4gICAgdGFzay5jcmVhdGlvbkRhdGVUaW1lID0gbmV3IERhdGUoKTtcclxuICAgIHRhc2suZGF0ZURlZmluYXRlID0gZmFsc2U7XHJcbiAgICB0YXNrLm5lZWRzUGxhbm5pbmcgPSB0cnVlO1xyXG4gICAgdGFzay5wcmlvcml0eSA9IDA7XHJcbiAgICB0YXNrLndvcmtmbG93Q2F0ZWdvcnkgPSB0aGlzLndvcmtmbG93Q2F0ZWdvcnlUeXBlO1xyXG4gICAgdGFzay5yZWZlcmVuY2UgPSB0aGlzLnRhc2tLZXk7XHJcbiAgICB0YXNrLmVtYWlsQWRkcmVzc2VzID0gdGhpcy5lbWFpbEFkZHJlc3NlcztcclxuXHJcbiAgICByZXR1cm4gdGFzaztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlQWZ0ZXJDcmVhdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuYWN0aXZpdHlDcmVhdGVkLmVtaXQoKTtcclxuICAgIGF3YWl0IHRoaXMuc2VuZEVtYWlsSWZOZWNjZXNhcnkoKTtcclxuICAgIHRoaXMuY2xlYXJGaWVsZHMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgc2VuZEVtYWlsSWZOZWNjZXNhcnkoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5lbWFpbEFkZHJlc3Nlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCB0ZW1wbGF0ZXM6IFJlcG9ydFtdID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmdldERlZmF1bHRFbWFpbFJlcG9ydFRlbXBsYXRlc0ZvckJyYW5jaCh0aGlzLmJyYW5jaE5vLCB0aGlzLmZpbmRSZXBvcnRUeXBlKCkpO1xyXG4gICAgICBpZiAodGVtcGxhdGVzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgbGV0IHRlbXBsYXRlOiBSZXBvcnQgPSB0aGlzLmZpbmREZWZhdWx0KHRlbXBsYXRlcyk7XHJcbiAgICAgICAgaWYgKHRlbXBsYXRlKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnN0YXJ0RW1haWxpbmcodGVtcGxhdGUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dFcnJvcignTk9fREVGQVVMVF9FTUFJTF9URU1QTEFURV9GT1JfUkVQT1JUJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRSZXBvcnRUeXBlKCk6IFJlcG9ydFR5cGUge1xyXG4gICAgaWYgKHRoaXMuY2hvc2VuQWN0aXZpdHlUeXBlID09PSB0aGlzLm9wdGlvbkNvbGxlY3Rpb25bMF0pIHtcclxuICAgICAgcmV0dXJuIFJlcG9ydFR5cGUuUmVtYXJrTWVzc2FnZTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jaG9zZW5BY3Rpdml0eVR5cGUgPT09IHRoaXMub3B0aW9uQ29sbGVjdGlvblsxXSkge1xyXG4gICAgICByZXR1cm4gUmVwb3J0VHlwZS5Xb3JrTWVzc2FnZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBSZXBvcnRUeXBlLlRhc2tNZXNzYWdlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kRGVmYXVsdChyZXBvcnRMaXN0OiBSZXBvcnRbXSk6IFJlcG9ydCB7XHJcbiAgICBsZXQgZGVmYXVsdFRlbXBsYXRlOiBSZXBvcnQgPSBudWxsO1xyXG4gICAgcmVwb3J0TGlzdC5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICBpZihyLmlzRGVmYXVsdCkge1xyXG4gICAgICAgIGRlZmF1bHRUZW1wbGF0ZSA9ICByO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkZWZhdWx0VGVtcGxhdGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHN0YXJ0RW1haWxpbmcodGVtcGxhdGU6IFJlcG9ydCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgZW1haWxzU2VudDpib29sZWFuID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmVtYWlsVmlhVGVtcGxhdGUodGVtcGxhdGUsIHRoaXMuY3JlYXRlRW1haWxBZGRyZXNzU3RyaW5nKHRoaXMuZW1haWxBZGRyZXNzZXMpLCB0aGlzLmNyZWF0ZUVtYWlsQWRkcmVzc1N0cmluZyh0aGlzLmJjY0VtYWlsQWRkcmVzc2VzKSxcclxuICAgICAgdGhpcy5zZW5kZXJBZGRyZXNzLCB0aGlzLmNyZWF0ZUVtYWlsU3ViamVjdCgpLCBcIlwiLCBudWxsLyp0aGlzLmNyZWF0ZUF0dGFjaG1lbnRzU3RyaW5nQXJyYXkoKSovLCB0aGlzLmNyZWF0ZUVtYWlsUGFyYW1zKCkpO1xyXG4gICAgaWYoZW1haWxzU2VudCkge1xyXG4gICAgICBsZXQgaGlzdG9yeTogQWN0aXZpdHlFbWFpbEhpc3RvcnkgPSBuZXcgQWN0aXZpdHlFbWFpbEhpc3RvcnkoKTtcclxuICAgICAgaGlzdG9yeS5lbWFpbEFkZHJlc3NlcyA9IHRoaXMuY3JlYXRlRW1haWxBZGRyZXNzU3RyaW5nKHRoaXMuZW1haWxBZGRyZXNzZXMpO1xyXG4gICAgICBoaXN0b3J5LmVtYWlsRGF0ZVRpbWUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBoaXN0b3J5Lm1lc3NhZ2UgPSAnRW1haWwgQ29udGVudCBjcmVhdGVkIHZpYSBSZXBvcnQnO1xyXG4gICAgICBpZiAodGhpcy5jaG9zZW5BY3Rpdml0eVR5cGUgPT09IHRoaXMub3B0aW9uQ29sbGVjdGlvblswXSkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5pbnNlcnRFbWFpbEhpc3RvcnlGb3JSZW1hcmsodGhpcy5jcmVhdGVkUmVtYXJrLnJlbWFya0lkLCBoaXN0b3J5KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmNob3NlbkFjdGl2aXR5VHlwZSA9PT0gdGhpcy5vcHRpb25Db2xsZWN0aW9uWzFdKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmluc2VydEVtYWlsSGlzdG9yeUZvcldvcmsodGhpcy5jcmVhdGVkV29yay53b3JrSWQsIGhpc3RvcnkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5pbnNlcnRFbWFpbEhpc3RvcnlGb3JUYXNrKHRoaXMuY3JlYXRlZFRhc2sudGFza0lkLCBoaXN0b3J5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyByZWdpc3RlclNlbnRFbWFpbHMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgaGlzdG9yeTogQWN0aXZpdHlFbWFpbEhpc3RvcnkgPSBuZXcgQWN0aXZpdHlFbWFpbEhpc3RvcnkoKTtcclxuICAgIGhpc3RvcnkuZW1haWxBZGRyZXNzZXMgPSB0aGlzLmNyZWF0ZUVtYWlsQWRkcmVzc1N0cmluZyh0aGlzLmVtYWlsQWRkcmVzc2VzKSArICc7JyArICB0aGlzLmNyZWF0ZUVtYWlsQWRkcmVzc1N0cmluZyh0aGlzLmJjY0VtYWlsQWRkcmVzc2VzKTtcclxuICAgIC8vaGlzdG9yeS5hdHRhY2htZW50cyA9ICB0aGlzLmNyZWF0ZUF0dGFjaG1lbnRzU3RyaW5nQXJyYXkoKTtcclxuICAgIGhpc3RvcnkubWVzc2FnZSA9ICcnO1xyXG4gICAgaGlzdG9yeS5lbWFpbERhdGVUaW1lID0gbmV3IERhdGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRW1haWxBZGRyZXNzU3RyaW5nKGFkZHJlc3Nlczogc3RyaW5nW10gKTogc3RyaW5nIHtcclxuICAgIGlmIChhZGRyZXNzZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBhZGRyZXNzZXMuam9pbignOycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVFbWFpbFN1YmplY3QoKTogc3RyaW5nIHtcclxuICAgIGxldCBzdWJqZWN0OiBzdHJpbmcgPSBcIi0gXCI7XHJcbiAgICBpZiAodGhpcy5jcmVhdGVkUmVtYXJrKSB7XHJcbiAgICAgIHN1YmplY3QgKz0gdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJSRU1BUktcIikgKyBcIiBcIiArIHRoaXMuY3JlYXRlZFJlbWFyay5yZW1hcmtJZDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jcmVhdGVkV29yaykge1xyXG4gICAgICBzdWJqZWN0ICs9IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiV09SS1wiKSArIFwiIFwiICsgdGhpcy5jcmVhdGVkV29yay53b3JrSWQ7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JlYXRlZFRhc2spIHtcclxuICAgICAgc3ViamVjdCArPSAodGhpcy5jcmVhdGVkVGFzay53b3JrZmxvd0NhdGVnb3J5ID8gdGhpcy5jcmVhdGVkVGFzay53b3JrZmxvd0NhdGVnb3J5IDogdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJUQVNLXCIpKSArIFwiIFwiICtcclxuICAgICAgICAodGhpcy5jcmVhdGVkVGFzay53b3JrZmxvd0NhdGVnb3J5ID90aGlzLmNyZWF0ZWRUYXNrLnJlZmVyZW5jZSA6IHRoaXMuY3JlYXRlZFRhc2sudGFza0lkKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdWJqZWN0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVBdHRhY2htZW50c0FycmF5KCk6IENvRW1haWxBdHRhY2htZW50W10ge1xyXG4gICAgbGV0IGF0dGFjaG1lbnRzOiBDb0VtYWlsQXR0YWNobWVudFtdID0gW107XHJcbiAgICBpZiAodGhpcy5kb2N1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZG9jdW1lbnRzLmZvckVhY2goZCA9PiB7XHJcbiAgICAgICAgLypsZXQgYXR0YWNobWVudDogQ29FbWFpbEF0dGFjaG1lbnQgPSBuZXcgQ29FbWFpbEF0dGFjaG1lbnQoKTtcclxuICAgICAgICBhdHRhY2htZW50LmZpbGVuYW1lID0gZC5maWxlTmFtZTtcclxuICAgICAgICBpZiAoZC5maWxlTmFtZS5zcGxpdChcIi5cIikubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgY29uc3Qgc3RyOiBzdHJpbmdbXSA9IGQuZmlsZU5hbWUuc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgYXR0YWNobWVudC5leHRlbnNpb24gPSBzdHJbc3RyLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0ZXh0RW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xyXG4gICAgICAgIGF0dGFjaG1lbnQuYm9keSA9IHRleHRFbmNvZGVyLmVuY29kZShcIllvdXIgc3RyaW5nIGhlcmVcIik7Ki9cclxuICAgICAgfSlcclxuICAgICAgcmV0dXJuIGF0dGFjaG1lbnRzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVFbWFpbFBhcmFtcygpOiBvYmplY3Qge1xyXG4gICAgaWYgKHRoaXMuY3JlYXRlZFJlbWFyaykge1xyXG4gICAgICByZXR1cm4ge29wbWVya2luZ19pZDogdGhpcy5jcmVhdGVkUmVtYXJrLnJlbWFya0lkICsgXCJcIn07XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JlYXRlZFdvcmspIHtcclxuICAgICAgcmV0dXJuIHt3ZXJremhfaWQ6IHRoaXMuY3JlYXRlZFdvcmsud29ya0lkICsgXCJcIn07XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JlYXRlZFRhc2spIHtcclxuICAgICAgcmV0dXJuIHt0YWFrX2lkOiB0aGlzLmNyZWF0ZWRUYXNrLnRhc2tJZCArIFwiXCJ9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhckZpZWxkcygpOiB2b2lkIHtcclxuICAgIHRoaXMucmVtYXJrVGV4dCA9IFwiXCI7XHJcbiAgICB0aGlzLndvcmtEZXNjcmlwdGlvbiA9IFwiXCI7XHJcbiAgICB0aGlzLnRhc2tOYW1lID0gXCJcIjtcclxuICAgIHRoaXMudGFza0Rlc2NyaXB0aW9uID0gXCJcIjtcclxuXHJcbiAgICB0aGlzLnNlbmRlckFkZHJlc3MgPSBcIlwiO1xyXG4gICAgdGhpcy5lbWFpbEFkZHJlc3NlcyA9IFtdO1xyXG4gICAgdGhpcy5iY2NFbWFpbEFkZHJlc3NlcyA9IFtdO1xyXG4gICAgdGhpcy5lbWFpbFJlcXVlc3QgPSBudWxsO1xyXG5cclxuICAgIHRoaXMuY3JlYXRlZFdvcmsgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmNyZWF0ZWRSZW1hcmsgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmNyZWF0ZWRUYXNrID0gdW5kZWZpbmVkO1xyXG4gIH1cclxufVxyXG4iXX0=
384
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay1jcmVhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NoYXJlZGNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3Rhc2stY3JlYXRvci90YXNrLWNyZWF0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzFDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDeEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBRS9ELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0QsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBRzNELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVuRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUNuRyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBRXpFLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUVqRyxPQUFPLEVBQUMsaUJB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dEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0FjdGl2aXR5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHkuYm9cIjtcclxuaW1wb3J0IHtBY3Rpdml0eVR5cGV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL2FjdGl2aXR5LXR5cGVcIjtcclxuaW1wb3J0IHtSZW1hcmt9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZW1hcmsuYm9cIjtcclxuaW1wb3J0IHtSZWxhdGlvblNtYWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tc21hbGwtb2JqZWN0LmJvXCI7XHJcbmltcG9ydCB7VGFibGVOYW1lfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS90YWJsZS1uYW1lLmVudW1cIjtcclxuaW1wb3J0IHtXb3JrfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvd29yay5ib1wiO1xyXG5pbXBvcnQge1Rhc2t9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC90YXNrLmJvXCI7XHJcbmltcG9ydCB7V29ya2Zsb3dDYXRlZ29yeVR5cGV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9lbnVtL3dvcmtmbG93LWNhdGVnb3J5LmVudW1cIjtcclxuaW1wb3J0IHtDb0RvY3VtZW50fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZG9jdW1lbnRcIjtcclxuaW1wb3J0IHtBcnJheVV0aWxzfSBmcm9tIFwiLi4vLi4vdXRpbHMvYXJyYXktdXRpbHNcIjtcclxuaW1wb3J0IHtSb2xlRW1haWxhZGRyZXNzfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcm9sZS1lbWFpbC1hZGRyZXNzXCI7XHJcbmltcG9ydCB7YWN0aXZpdHlFbWFpbFJlcXVlc3REYXRhfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHktZW1haWwtcmVxdWVzdC1kYXRhXCI7XHJcbmltcG9ydCB7U2hhcmVkU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2Uvc2hhcmVkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSZXBvcnRUeXBlfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9yZXBvcnQtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7UmVwb3J0fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcmVwb3J0LmJvXCI7XHJcbmltcG9ydCB7Q29yZURpYWxvZ1NlcnZpY2UsIEZvcm1Db21wb25lbnQsIEZvcm1NYXN0ZXJTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xyXG5pbXBvcnQge0ljb25MaXN0SXRlbX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTIvbGliL21vZGVsL2ljb24tbGlzdC1pdGVtXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5pbXBvcnQge0FjdGl2aXR5RW1haWxIaXN0b3J5fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvYWN0aXZpdHktZW1haWwtaGlzdG9yeS5ib1wiO1xyXG5pbXBvcnQge0NvRW1haWxBdHRhY2htZW50fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvY28tZW1haWwtYXR0YWNobWVudC5ib1wiO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwiY28tdGFzay1jcmVhdG9yXCIsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8Y28tZm9ybSAjY3JlYXRlRm9ybSBjbGFzcz1cImlucHV0LWZpZWxkc1wiPlxyXG4gICAgICAgIDxjby1saXN0LW9mLWljb25zIFtjb2xsZWN0aW9uXT1cIm9wdGlvbkNvbGxlY3Rpb25cIiAoaXRlbVNlbGVjdGVkKT1cIml0ZW1TZWxlY3RlZCgkZXZlbnQpXCI+PC9jby1saXN0LW9mLWljb25zPlxyXG4gICAgICAgIDxjby1pbnB1dC10ZXh0ICpuZ0lmPVwiY2hvc2VuQWN0aXZpdHlUeXBlID09PSBvcHRpb25Db2xsZWN0aW9uWzBdXCIgW3JlcXVpcmVkXT1cImNob3NlbkFjdGl2aXR5VHlwZSA9PT0gb3B0aW9uQ29sbGVjdGlvblswXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidSRU1BUksnIHwgbG9jYWxpemVcIiBbKG1vZGVsKV09XCJyZW1hcmtUZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcmlnaHRJY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlBhcGVyUGxhbmVUb3BTb2xpZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChyaWdodEljb25DbGljayk9XCJjcmVhdGVSZW1hcmtDbGlja2VkKClcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgPGNvLWlucHV0LXRleHQgKm5nSWY9XCJjaG9zZW5BY3Rpdml0eVR5cGUgPT09IG9wdGlvbkNvbGxlY3Rpb25bMV1cIiBbcmVxdWlyZWRdPVwiY2hvc2VuQWN0aXZpdHlUeXBlID09PSBvcHRpb25Db2xsZWN0aW9uWzFdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0RFU0NSSVBUSU9OJyB8IGxvY2FsaXplXCIgWyhtb2RlbCldPVwid29ya0Rlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbcmlnaHRJY29uRGF0YV09XCJpY29uU2VydmljZS5nZXRJY29uKGljb25zLlBhcGVyUGxhbmVUb3BTb2xpZClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChyaWdodEljb25DbGljayk9XCJjcmVhdGVXb3JrQ2xpY2tlZCgpXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YXNrLWlucHV0LWZpZWxkc1wiICpuZ0lmPVwiY2hvc2VuQWN0aXZpdHlUeXBlID09PSBvcHRpb25Db2xsZWN0aW9uWzJdXCI+XHJcbiAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJ0YXNrTmFtZVwiIFtwbGFjZWhvbGRlcl09XCInTkFNRScgfCBsb2NhbGl6ZVwiICBbcmVxdWlyZWRdPVwiY2hvc2VuQWN0aXZpdHlUeXBlID09PSBvcHRpb25Db2xsZWN0aW9uWzJdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyaWdodEljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuUGFwZXJQbGFuZVRvcFNvbGlkKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAocmlnaHRJY29uQ2xpY2spPVwiY3JlYXRlVGFza0NsaWNrZWQoKVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInRhc2tEZXNjcmlwdGlvblwiIFtwbGFjZWhvbGRlcl09XCInREVTQ1JJUFRJT04nIHwgbG9jYWxpemVcIiBbcmVxdWlyZWRdPVwiY2hvc2VuQWN0aXZpdHlUeXBlID09PSBvcHRpb25Db2xsZWN0aW9uWzJdXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2NvLWZvcm0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJleHRyYXMtYnV0dG9uc1wiPlxyXG4gICAgICAgIDxjby1idXR0b24gW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuRW1haWxSZWd1bGFyKVwiICAoY2xpY2spPVwic2hvd0VtYWlsRGlhbG9nID0gdHJ1ZVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgIDxjby1idXR0b24gW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuUGFwZXJjbGlwUmVndWxhcilcIiAgKGNsaWNrKT1cInNob3dGaWxlc0RpYWxvZyA9IHRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImRvY3VtZW50cy5sZW5ndGggPT09IDAgPyAnJyA6IGRvY3VtZW50cy5sZW5ndGgudG9TdHJpbmcoKVwiID48L2NvLWJ1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8Y28tZGlhbG9nICpuZ0lmPVwic2hvd0ZpbGVzRGlhbG9nXCIgKGNsb3NlQ2xpY2spPVwic2hvd0ZpbGVzRGlhbG9nID0gZmFsc2VcIj5cclxuICAgICAgICA8Y28tZmlsZXMtdXBsb2FkIChkb2N1bWVudHNBZGRlZCk9XCJhZGRlZERvY3VtZW50KCRldmVudClcIiAoZG9jdW1lbnREZWxldGVkKT1cImRlbGV0ZWREb2N1bWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZG9jdW1lbnRzXT1cImRvY3VtZW50c1wiIFt1c2VXaXRob3V0U2V0dGluZ1Byb3BzXT1cInRydWVcIj48L2NvLWZpbGVzLXVwbG9hZD5cclxuICAgICAgPC9jby1kaWFsb2c+XHJcbiAgICAgIDxjby1kaWFsb2cgKm5nSWY9XCJzaG93RW1haWxEaWFsb2dcIiAoY2xvc2VDbGljayk9XCJlbWFpbERpYWxvZ0Nsb3NlZCgpXCIgW2Zvb3RlclRlbXBsYXRlXT1cImZvb3RlclRlbXBsYXRlXCI+XHJcbiAgICAgICAgPGNvLXJvbGUtZW1haWwtc2VsZWN0b3IgWyhtb2RlbCldPVwiZW1haWxBZGRyZXNzZXNcIiBba2V5XT1cInJlbWFya0FuZFdvcmtLZXlcIiBbd29ya2Zsb3dDYXRlZ29yeVR5cGVdPVwid29ya2Zsb3dDYXRlZ29yeVR5cGVcIj48L2NvLXJvbGUtZW1haWwtc2VsZWN0b3I+XHJcbiAgICAgICAgPGNvLXJvbGUtZW1haWwtc2VsZWN0b3IgWyhtb2RlbCldPVwiYmNjRW1haWxBZGRyZXNzZXNcIiBba2V5XT1cInJlbWFya0FuZFdvcmtLZXlcIiBbd29ya2Zsb3dDYXRlZ29yeVR5cGVdPVwid29ya2Zsb3dDYXRlZ29yeVR5cGVcIiBbcmVjaXBpZW50TGFiZWxdPVwiJ0JDQ19SRUNJUElFTlQnXCIgW2V4dHJhTGFiZWxdPVwiJ0JDQ19FWFRSQV9FTUFJTF9BRERSRVNTRVMnXCI+PC9jby1yb2xlLWVtYWlsLXNlbGVjdG9yPlxyXG4gICAgICAgIDwhLS1UT0RPOiByZWltcGxlbWVudCBvbmNlIHdlIGhhdmUgdGhlIGJhY2tlbmQgZnVuY3Rpb25hbGl0eSBmb3IgdGhpcy0tPlxyXG4gICAgICAgPCEtLTxjby1pbnB1dC10ZXh0IFtyZWFkb25seV09XCJmYWxzZVwiIFtsYWJlbF09XCInU0VOREVSJyB8IGxvY2FsaXplXCIgWyhtb2RlbCldPVwic2VuZGVyQWRkcmVzc1wiPjwvY28taW5wdXQtdGV4dD4tLT5cclxuXHJcbiAgICAgIDwvY28tZGlhbG9nPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlICNmb290ZXJUZW1wbGF0ZT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWZvb3Rlci1idXR0b24td3JhcHBlclwiPlxyXG4gICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInNhdmUtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tEdW90b25lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJlbWFpbERpYWxvZ0Nsb3NlZCgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25TZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3NTa2lubnkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVtYWlsRGlhbG9nQ2xvc2VkKClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBGb3JtTWFzdGVyU2VydmljZVxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYXNrQ3JlYXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcclxuICBwdWJsaWMgcmVhZG9ubHkgaWNvbnM6IHR5cGVvZiBJY29uID0gSWNvbjtcclxuXHJcbiAgQFZpZXdDaGlsZChGb3JtQ29tcG9uZW50KVxyXG4gIHB1YmxpYyBjcmVhdGVGb3JtOiBGb3JtQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhdXRob3I6IFJlbGF0aW9uU21hbGxPYmplY3Q7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGJyYW5jaE5vOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRhYmxlOiBUYWJsZU5hbWUgPSBUYWJsZU5hbWUuVHJhbnNhY3Rpb25zO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZW1hcmtBbmRXb3JrS2V5OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHRhc2tLZXk6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgd29ya2Zsb3dDYXRlZ29yeVR5cGU6IFdvcmtmbG93Q2F0ZWdvcnlUeXBlO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgYWN0aXZpdHlDcmVhdGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRhc2stY3JlYXRvclwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcHRpb25Db2xsZWN0aW9uOiBJY29uTGlzdEl0ZW1bXSA9IFtcclxuICAgIHsgaWNvbjogdGhpcy5pY29uU2VydmljZS5nZXRJY29uKHRoaXMuaWNvbnMuQ29tbWVudFJlZ3VsYXIpLGxhYmVsOiB0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldCgnUkVNQVJLJywgdHJ1ZSkgfSxcclxuICAgIHsgaWNvbjogdGhpcy5pY29uU2VydmljZS5nZXRJY29uKHRoaXMuaWNvbnMuUGVyc29uRGlnZ2luZ1JlZ3VsYXIpLCBsYWJlbDogdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoJ1dPUksnLCB0cnVlKSB9LFxyXG4gICAgeyBpY29uOiB0aGlzLmljb25TZXJ2aWNlLmdldEljb24odGhpcy5pY29ucy5UYXNrKSwgbGFiZWw6IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KCdUQVNLJywgdHJ1ZSkgfSxcclxuICBdO1xyXG5cclxuICBwdWJsaWMgc2hvd0ZpbGVzRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGRvY3VtZW50czogQ29Eb2N1bWVudFtdID0gW107XHJcblxyXG4gIHB1YmxpYyBzaG93RW1haWxEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2VuZGVyQWRkcmVzczogc3RyaW5nID0gJyc7XHJcbiAgcHVibGljIGVtYWlsQWRkcmVzc2VzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHB1YmxpYyBiY2NFbWFpbEFkZHJlc3Nlczogc3RyaW5nW10gPSBbXTtcclxuICBwdWJsaWMgZW1haWxSZXF1ZXN0OiBhY3Rpdml0eUVtYWlsUmVxdWVzdERhdGEgPSBudWxsO1xyXG5cclxuICBwdWJsaWMgY3JlYXRlZFRhc2s6IFRhc2s7XHJcbiAgcHVibGljIGNyZWF0ZWRSZW1hcms6IFJlbWFyaztcclxuICBwdWJsaWMgY3JlYXRlZFdvcms6IFdvcms7XHJcbiAgcHVibGljIGNob3NlbkFjdGl2aXR5VHlwZTogSWNvbkxpc3RJdGVtO1xyXG5cclxuICBwdWJsaWMgcmVtYXJrVGV4dDogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgd29ya0Rlc2NyaXB0aW9uOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyB0YXNrTmFtZTogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgdGFza0Rlc2NyaXB0aW9uOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgaWNvblNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIGRpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBDb3JlRGlhbG9nU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIF9mb3JtTWFzdGVyU2VydmljZTogRm9ybU1hc3RlclNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY2hvc2VuQWN0aXZpdHlUeXBlID0gdGhpcy5vcHRpb25Db2xsZWN0aW9uWzBdO1xyXG4gICAgdGhpcy5zZW5kZXJBZGRyZXNzID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmdldEVtYWlsU2VuZGVyQnlXb3JrZmxvd0NhdGVnb3J5QW5kS2V5KCdTRVJWSUNFX09SREVSJywgdGhpcy5yZW1hcmtBbmRXb3JrS2V5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpdGVtU2VsZWN0ZWQoaXRlbTogSWNvbkxpc3RJdGVtKTogdm9pZCB7XHJcbiAgICB0aGlzLmNob3NlbkFjdGl2aXR5VHlwZSA9IGl0ZW07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgYWRkZWREb2N1bWVudChkb2NzOiBDb0RvY3VtZW50W10pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuZG9jdW1lbnRzID0gdGhpcy5kb2N1bWVudHMuY29uY2F0KGRvY3MpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRlbGV0ZWREb2N1bWVudChkb2M6IENvRG9jdW1lbnQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIEFycmF5VXRpbHMuUmVtb3ZlRWxlbWVudChkb2MsIHRoaXMuZG9jdW1lbnRzKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVSZW1hcmtDbGlja2VkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5fZm9ybU1hc3RlclNlcnZpY2Uuc3VibWl0U2xhdmVzKCk7XHJcbiAgICBpZiAodGhpcy5jcmVhdGVGb3JtLmlzVmFsaWQoKSkge1xyXG4gICAgICBsZXQgcmVtYXJrOiBSZW1hcmsgPSB0aGlzLmNyZWF0ZVJlbWFyaygpO1xyXG5cclxuICAgICAgbGV0IGFjdGl2aXR5OiBBY3Rpdml0eSA9IG5ldyBBY3Rpdml0eSgpO1xyXG4gICAgICBhY3Rpdml0eS5hY3Rpdml0eVR5cGUgPSBBY3Rpdml0eVR5cGUuUmVtYXJrO1xyXG4gICAgICBhY3Rpdml0eS5yZW1hcmsgPSByZW1hcms7XHJcblxyXG4gICAgICB0aGlzLmNyZWF0ZWRSZW1hcmsgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuaW5zZXJ0UmVtYXJrKGFjdGl2aXR5KTtcclxuICAgICAgaWYgKHRoaXMuY3JlYXRlZFJlbWFyaykge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlQWZ0ZXJDcmVhdGlvbigpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZW1haWxEaWFsb2dDbG9zZWQoKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLmVtYWlsQWRkcmVzc2VzLmxlbmd0aCA+PSAwKXtcclxuICAgICAgdGhpcy5lbWFpbFJlcXVlc3QgPSBuZXcgYWN0aXZpdHlFbWFpbFJlcXVlc3REYXRhO1xyXG4gICAgICB0aGlzLmVtYWlsUmVxdWVzdC50YWJsZSA9IHRoaXMudGFibGU7XHJcbiAgICAgIHRoaXMuZW1haWxSZXF1ZXN0LmtleSA9IHRoaXMucmVtYXJrQW5kV29ya0tleTtcclxuICAgICAgdGhpcy5lbWFpbFJlcXVlc3Quc2VuZGVyQWRkcmVzcyA9IHRoaXMuc2VuZGVyQWRkcmVzcztcclxuICAgICAgdGhpcy5lbWFpbFJlcXVlc3Quc2VuZEFkZHJlc3NlcyA9IHRoaXMuZW1haWxBZGRyZXNzZXM7XHJcbiAgICAgIHRoaXMuZW1haWxSZXF1ZXN0LmNjQWRkcmVzc2VzID0gdGhpcy5iY2NFbWFpbEFkZHJlc3NlcztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZW1haWxSZXF1ZXN0ID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuc2hvd0VtYWlsRGlhbG9nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY3JlYXRlV29ya0NsaWNrZWQoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLl9mb3JtTWFzdGVyU2VydmljZS5zdWJtaXRTbGF2ZXMoKTtcclxuICAgIGlmICh0aGlzLmNyZWF0ZUZvcm0uaXNWYWxpZCgpKSB7XHJcbiAgICAgIGxldCB3b3JrOiBXb3JrID0gdGhpcy5jcmVhdGVXb3JrKCk7XHJcblxyXG4gICAgICBsZXQgYWN0aXZpdHk6IEFjdGl2aXR5ID0gbmV3IEFjdGl2aXR5KCk7XHJcbiAgICAgIGFjdGl2aXR5LmFjdGl2aXR5VHlwZSA9IEFjdGl2aXR5VHlwZS5Xb3JrO1xyXG4gICAgICBhY3Rpdml0eS53b3JrID0gd29yaztcclxuXHJcbiAgICAgIHRoaXMuY3JlYXRlZFdvcmsgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuaW5zZXJ0V29yayhhY3Rpdml0eSk7XHJcbiAgICAgIGlmICh0aGlzLmNyZWF0ZWRXb3JrKSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpdml0eUNyZWF0ZWQuZW1pdCgpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2VuZEVtYWlsSWZOZWNjZXNhcnkoKTtcclxuICAgICAgICB0aGlzLmNsZWFyRmllbGRzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcHVibGljIGFzeW5jIGNyZWF0ZVRhc2tDbGlja2VkKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5fZm9ybU1hc3RlclNlcnZpY2Uuc3VibWl0U2xhdmVzKCk7XHJcbiAgICBpZiAodGhpcy5jcmVhdGVGb3JtLmlzVmFsaWQoKSkge1xyXG4gICAgICBjb25zdCB0YXNrID0gdGhpcy5jcmVhdGVUYXNrKCk7XHJcblxyXG4gICAgICBsZXQgYWN0aXZpdHk6IEFjdGl2aXR5ID0gbmV3IEFjdGl2aXR5KCk7XHJcbiAgICAgIGFjdGl2aXR5LmFjdGl2aXR5VHlwZSA9IEFjdGl2aXR5VHlwZS5UYXNrO1xyXG4gICAgICBhY3Rpdml0eS50YXNrID0gdGFzaztcclxuXHJcbiAgICAgIHRoaXMuY3JlYXRlZFRhc2sgPSBhd2FpdCB0aGlzLnNoYXJlZFNlcnZpY2UuaW5zZXJ0VGFzayhhY3Rpdml0eSk7XHJcbiAgICAgIGlmICh0aGlzLmNyZWF0ZWRUYXNrKSB7XHJcbiAgICAgICAgdGhpcy5hY3Rpdml0eUNyZWF0ZWQuZW1pdCgpO1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2VuZEVtYWlsSWZOZWNjZXNhcnkoKTtcclxuICAgICAgICB0aGlzLmNsZWFyRmllbGRzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlUmVtYXJrKCk6IFJlbWFyayB7XHJcbiAgICBsZXQgcmVtYXJrOiBSZW1hcmsgPSBuZXcgUmVtYXJrKCk7XHJcbiAgICByZW1hcmsuYXV0aG9yID0gdGhpcy5hdXRob3I7XHJcbiAgICByZW1hcmsuYXV0aG9yLmltYWdlID0gdW5kZWZpbmVkO1xyXG4gICAgcmVtYXJrLmRvY3VtZW50cyA9IHRoaXMuZG9jdW1lbnRzO1xyXG4gICAgcmVtYXJrLnJlbWFyayA9IHRoaXMucmVtYXJrVGV4dDtcclxuICAgIHJlbWFyay5kYXRlVGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICByZW1hcmsudGFibGUgPSB0aGlzLnRhYmxlO1xyXG4gICAgcmVtYXJrLmtleSA9IHRoaXMucmVtYXJrQW5kV29ya0tleTtcclxuICAgIHJlbWFyay5yZWFkID0gZmFsc2U7XHJcbiAgICByZW1hcmsuY3VycmVudCA9IHRydWU7XHJcblxyXG4gICAgcmV0dXJuIHJlbWFyaztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlV29yaygpOiBXb3JrIHtcclxuICAgIGxldCB3b3JrOiBXb3JrID0gbmV3IFdvcmsoKTtcclxuICAgIHdvcmsuZXhlY3V0aXZlID0gdGhpcy5hdXRob3I7XHJcbiAgICB3b3JrLmV4ZWN1dGl2ZS5pbWFnZSA9IHVuZGVmaW5lZDtcclxuICAgIHdvcmsuZG9jdW1lbnRzID0gdGhpcy5kb2N1bWVudHM7XHJcbiAgICB3b3JrLndvcmtlZFRpbWUgPSAwO1xyXG4gICAgd29yay53b3JrRGVzY3JpcHRpb24gPSB0aGlzLndvcmtEZXNjcmlwdGlvblxyXG4gICAgd29yay5kYXRlVGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB3b3JrLnRhYmxlID0gdGhpcy50YWJsZTtcclxuICAgIHdvcmsua2V5ID0gdGhpcy5yZW1hcmtBbmRXb3JrS2V5O1xyXG5cclxuICAgIHJldHVybiB3b3JrO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVUYXNrKCk6IFRhc2sge1xyXG4gICAgbGV0IHRhc2s6IFRhc2sgPSBuZXcgVGFzaygpO1xyXG4gICAgdGFzay5leGVjdXRpdmUgPSB0aGlzLmF1dGhvcjtcclxuICAgIHRhc2suZXhlY3V0aXZlLmltYWdlID0gdW5kZWZpbmVkO1xyXG4gICAgdGFzay5yZXBvcnRlciA9IHRoaXMuYXV0aG9yO1xyXG4gICAgdGFzay5yZXBvcnRlci5pbWFnZSA9IHVuZGVmaW5lZDtcclxuICAgIHRhc2suZG9jdW1lbnRzID0gdGhpcy5kb2N1bWVudHM7XHJcbiAgICB0YXNrLm5hbWUgPSB0aGlzLnRhc2tOYW1lO1xyXG4gICAgdGFzay5kZXNjcmlwdGlvbiA9IHRoaXMudGFza0Rlc2NyaXB0aW9uO1xyXG4gICAgdGFzay5jcmVhdGlvbkRhdGVUaW1lID0gbmV3IERhdGUoKTtcclxuICAgIHRhc2suZGF0ZURlZmluYXRlID0gZmFsc2U7XHJcbiAgICB0YXNrLm5lZWRzUGxhbm5pbmcgPSB0cnVlO1xyXG4gICAgdGFzay5wcmlvcml0eSA9IDA7XHJcbiAgICB0YXNrLndvcmtmbG93Q2F0ZWdvcnkgPSB0aGlzLndvcmtmbG93Q2F0ZWdvcnlUeXBlO1xyXG4gICAgdGFzay5yZWZlcmVuY2UgPSB0aGlzLnRhc2tLZXk7XHJcbiAgICB0YXNrLmVtYWlsQWRkcmVzc2VzID0gdGhpcy5lbWFpbEFkZHJlc3NlcztcclxuXHJcbiAgICByZXR1cm4gdGFzaztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlQWZ0ZXJDcmVhdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuYWN0aXZpdHlDcmVhdGVkLmVtaXQoKTtcclxuICAgIGF3YWl0IHRoaXMuc2VuZEVtYWlsSWZOZWNjZXNhcnkoKTtcclxuICAgIHRoaXMuY2xlYXJGaWVsZHMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgc2VuZEVtYWlsSWZOZWNjZXNhcnkoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAodGhpcy5lbWFpbEFkZHJlc3Nlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCB0ZW1wbGF0ZXM6IFJlcG9ydFtdID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmdldERlZmF1bHRFbWFpbFJlcG9ydFRlbXBsYXRlc0ZvckJyYW5jaCh0aGlzLmJyYW5jaE5vLCB0aGlzLmZpbmRSZXBvcnRUeXBlKCkpO1xyXG4gICAgICBpZiAodGVtcGxhdGVzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgICAgbGV0IHRlbXBsYXRlOiBSZXBvcnQgPSB0aGlzLmZpbmREZWZhdWx0KHRlbXBsYXRlcyk7XHJcbiAgICAgICAgaWYgKHRlbXBsYXRlKSB7XHJcbiAgICAgICAgICBhd2FpdCB0aGlzLnN0YXJ0RW1haWxpbmcodGVtcGxhdGUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9kaWFsb2dTZXJ2aWNlLnNob3dFcnJvcignTk9fREVGQVVMVF9FTUFJTF9URU1QTEFURV9GT1JfUkVQT1JUJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRSZXBvcnRUeXBlKCk6IFJlcG9ydFR5cGUge1xyXG4gICAgaWYgKHRoaXMuY2hvc2VuQWN0aXZpdHlUeXBlID09PSB0aGlzLm9wdGlvbkNvbGxlY3Rpb25bMF0pIHtcclxuICAgICAgcmV0dXJuIFJlcG9ydFR5cGUuUmVtYXJrTWVzc2FnZTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jaG9zZW5BY3Rpdml0eVR5cGUgPT09IHRoaXMub3B0aW9uQ29sbGVjdGlvblsxXSkge1xyXG4gICAgICByZXR1cm4gUmVwb3J0VHlwZS5Xb3JrTWVzc2FnZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBSZXBvcnRUeXBlLlRhc2tNZXNzYWdlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kRGVmYXVsdChyZXBvcnRMaXN0OiBSZXBvcnRbXSk6IFJlcG9ydCB7XHJcbiAgICBsZXQgZGVmYXVsdFRlbXBsYXRlOiBSZXBvcnQgPSBudWxsO1xyXG4gICAgcmVwb3J0TGlzdC5mb3JFYWNoKHIgPT4ge1xyXG4gICAgICBpZihyLmlzRGVmYXVsdCkge1xyXG4gICAgICAgIGRlZmF1bHRUZW1wbGF0ZSA9ICByO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkZWZhdWx0VGVtcGxhdGU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIHN0YXJ0RW1haWxpbmcodGVtcGxhdGU6IFJlcG9ydCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgZW1haWxzU2VudDpib29sZWFuID0gYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmVtYWlsVmlhVGVtcGxhdGUodGVtcGxhdGUsIHRoaXMuY3JlYXRlRW1haWxBZGRyZXNzU3RyaW5nKHRoaXMuZW1haWxBZGRyZXNzZXMpLCB0aGlzLmNyZWF0ZUVtYWlsQWRkcmVzc1N0cmluZyh0aGlzLmJjY0VtYWlsQWRkcmVzc2VzKSxcclxuICAgICAgdGhpcy5zZW5kZXJBZGRyZXNzLCB0aGlzLmNyZWF0ZUVtYWlsU3ViamVjdCgpLCBcIlwiLCBudWxsLyp0aGlzLmNyZWF0ZUF0dGFjaG1lbnRzU3RyaW5nQXJyYXkoKSovLCB0aGlzLmNyZWF0ZUVtYWlsUGFyYW1zKCkpO1xyXG4gICAgaWYoZW1haWxzU2VudCkge1xyXG4gICAgICBsZXQgaGlzdG9yeTogQWN0aXZpdHlFbWFpbEhpc3RvcnkgPSBuZXcgQWN0aXZpdHlFbWFpbEhpc3RvcnkoKTtcclxuICAgICAgaGlzdG9yeS5lbWFpbEFkZHJlc3NlcyA9IHRoaXMuY3JlYXRlRW1haWxBZGRyZXNzU3RyaW5nKHRoaXMuZW1haWxBZGRyZXNzZXMpO1xyXG4gICAgICBoaXN0b3J5LmVtYWlsRGF0ZVRpbWUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBoaXN0b3J5Lm1lc3NhZ2UgPSAnRW1haWwgQ29udGVudCBjcmVhdGVkIHZpYSBSZXBvcnQnO1xyXG4gICAgICBpZiAodGhpcy5jaG9zZW5BY3Rpdml0eVR5cGUgPT09IHRoaXMub3B0aW9uQ29sbGVjdGlvblswXSkge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5pbnNlcnRFbWFpbEhpc3RvcnlGb3JSZW1hcmsodGhpcy5jcmVhdGVkUmVtYXJrLnJlbWFya0lkLCBoaXN0b3J5KTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLmNob3NlbkFjdGl2aXR5VHlwZSA9PT0gdGhpcy5vcHRpb25Db2xsZWN0aW9uWzFdKSB7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5zaGFyZWRTZXJ2aWNlLmluc2VydEVtYWlsSGlzdG9yeUZvcldvcmsodGhpcy5jcmVhdGVkV29yay53b3JrSWQsIGhpc3RvcnkpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGF3YWl0IHRoaXMuc2hhcmVkU2VydmljZS5pbnNlcnRFbWFpbEhpc3RvcnlGb3JUYXNrKHRoaXMuY3JlYXRlZFRhc2sudGFza0lkLCBoaXN0b3J5KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyByZWdpc3RlclNlbnRFbWFpbHMoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgaGlzdG9yeTogQWN0aXZpdHlFbWFpbEhpc3RvcnkgPSBuZXcgQWN0aXZpdHlFbWFpbEhpc3RvcnkoKTtcclxuICAgIGhpc3RvcnkuZW1haWxBZGRyZXNzZXMgPSB0aGlzLmNyZWF0ZUVtYWlsQWRkcmVzc1N0cmluZyh0aGlzLmVtYWlsQWRkcmVzc2VzKSArICc7JyArICB0aGlzLmNyZWF0ZUVtYWlsQWRkcmVzc1N0cmluZyh0aGlzLmJjY0VtYWlsQWRkcmVzc2VzKTtcclxuICAgIC8vaGlzdG9yeS5hdHRhY2htZW50cyA9ICB0aGlzLmNyZWF0ZUF0dGFjaG1lbnRzU3RyaW5nQXJyYXkoKTtcclxuICAgIGhpc3RvcnkubWVzc2FnZSA9ICcnO1xyXG4gICAgaGlzdG9yeS5lbWFpbERhdGVUaW1lID0gbmV3IERhdGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRW1haWxBZGRyZXNzU3RyaW5nKGFkZHJlc3Nlczogc3RyaW5nW10gKTogc3RyaW5nIHtcclxuICAgIGlmIChhZGRyZXNzZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBhZGRyZXNzZXMuam9pbignOycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVFbWFpbFN1YmplY3QoKTogc3RyaW5nIHtcclxuICAgIGxldCBzdWJqZWN0OiBzdHJpbmcgPSBcIi0gXCI7XHJcbiAgICBpZiAodGhpcy5jcmVhdGVkUmVtYXJrKSB7XHJcbiAgICAgIHN1YmplY3QgKz0gdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJSRU1BUktcIikgKyBcIiBcIiArIHRoaXMuY3JlYXRlZFJlbWFyay5yZW1hcmtJZDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jcmVhdGVkV29yaykge1xyXG4gICAgICBzdWJqZWN0ICs9IHRoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiV09SS1wiKSArIFwiIFwiICsgdGhpcy5jcmVhdGVkV29yay53b3JrSWQ7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JlYXRlZFRhc2spIHtcclxuICAgICAgc3ViamVjdCArPSAodGhpcy5jcmVhdGVkVGFzay53b3JrZmxvd0NhdGVnb3J5ID8gdGhpcy5jcmVhdGVkVGFzay53b3JrZmxvd0NhdGVnb3J5IDogdGhpcy5kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJUQVNLXCIpKSArIFwiIFwiICtcclxuICAgICAgICAodGhpcy5jcmVhdGVkVGFzay53b3JrZmxvd0NhdGVnb3J5ID90aGlzLmNyZWF0ZWRUYXNrLnJlZmVyZW5jZSA6IHRoaXMuY3JlYXRlZFRhc2sudGFza0lkKTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdWJqZWN0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVBdHRhY2htZW50c0FycmF5KCk6IENvRW1haWxBdHRhY2htZW50W10ge1xyXG4gICAgbGV0IGF0dGFjaG1lbnRzOiBDb0VtYWlsQXR0YWNobWVudFtdID0gW107XHJcbiAgICBpZiAodGhpcy5kb2N1bWVudHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZG9jdW1lbnRzLmZvckVhY2goZCA9PiB7XHJcbiAgICAgICAgLypsZXQgYXR0YWNobWVudDogQ29FbWFpbEF0dGFjaG1lbnQgPSBuZXcgQ29FbWFpbEF0dGFjaG1lbnQoKTtcclxuICAgICAgICBhdHRhY2htZW50LmZpbGVuYW1lID0gZC5maWxlTmFtZTtcclxuICAgICAgICBpZiAoZC5maWxlTmFtZS5zcGxpdChcIi5cIikubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgY29uc3Qgc3RyOiBzdHJpbmdbXSA9IGQuZmlsZU5hbWUuc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgICAgYXR0YWNobWVudC5leHRlbnNpb24gPSBzdHJbc3RyLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0ZXh0RW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xyXG4gICAgICAgIGF0dGFjaG1lbnQuYm9keSA9IHRleHRFbmNvZGVyLmVuY29kZShcIllvdXIgc3RyaW5nIGhlcmVcIik7Ki9cclxuICAgICAgfSlcclxuICAgICAgcmV0dXJuIGF0dGFjaG1lbnRzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVFbWFpbFBhcmFtcygpOiBvYmplY3Qge1xyXG4gICAgaWYgKHRoaXMuY3JlYXRlZFJlbWFyaykge1xyXG4gICAgICByZXR1cm4ge29wbWVya2luZ19pZDogdGhpcy5jcmVhdGVkUmVtYXJrLnJlbWFya0lkICsgXCJcIn07XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JlYXRlZFdvcmspIHtcclxuICAgICAgcmV0dXJuIHt3ZXJremhfaWQ6IHRoaXMuY3JlYXRlZFdvcmsud29ya0lkICsgXCJcIn07XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JlYXRlZFRhc2spIHtcclxuICAgICAgcmV0dXJuIHt0YWFrX2lkOiB0aGlzLmNyZWF0ZWRUYXNrLnRhc2tJZCArIFwiXCJ9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhckZpZWxkcygpOiB2b2lkIHtcclxuICAgIHRoaXMucmVtYXJrVGV4dCA9IFwiXCI7XHJcbiAgICB0aGlzLndvcmtEZXNjcmlwdGlvbiA9IFwiXCI7XHJcbiAgICB0aGlzLnRhc2tOYW1lID0gXCJcIjtcclxuICAgIHRoaXMudGFza0Rlc2NyaXB0aW9uID0gXCJcIjtcclxuXHJcbiAgICB0aGlzLnNlbmRlckFkZHJlc3MgPSBcIlwiO1xyXG4gICAgdGhpcy5lbWFpbEFkZHJlc3NlcyA9IFtdO1xyXG4gICAgdGhpcy5iY2NFbWFpbEFkZHJlc3NlcyA9IFtdO1xyXG4gICAgdGhpcy5lbWFpbFJlcXVlc3QgPSBudWxsO1xyXG5cclxuICAgIHRoaXMuY3JlYXRlZFdvcmsgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmNyZWF0ZWRSZW1hcmsgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmNyZWF0ZWRUYXNrID0gdW5kZWZpbmVkO1xyXG4gIH1cclxufVxyXG4iXX0=
package/favicon.ico ADDED
Binary file
@@ -15270,11 +15270,12 @@ WorkflowInfoTilesModule.decorators = [
15270
15270
  ];
15271
15271
 
15272
15272
  class TaskCreatorComponent {
15273
- constructor(iconService, dictionaryService, sharedService, _dialogService) {
15273
+ constructor(iconService, dictionaryService, sharedService, _dialogService, _formMasterService) {
15274
15274
  this.iconService = iconService;
15275
15275
  this.dictionaryService = dictionaryService;
15276
15276
  this.sharedService = sharedService;
15277
15277
  this._dialogService = _dialogService;
15278
+ this._formMasterService = _formMasterService;
15278
15279
  this.icons = Icon;
15279
15280
  this.table = TableName$1.Transactions;
15280
15281
  this.activityCreated = new EventEmitter();
@@ -15319,7 +15320,7 @@ class TaskCreatorComponent {
15319
15320
  }
15320
15321
  createRemarkClicked() {
15321
15322
  return __awaiter(this, void 0, void 0, function* () {
15322
- this.createForm.submit();
15323
+ this._formMasterService.submitSlaves();
15323
15324
  if (this.createForm.isValid()) {
15324
15325
  let remark = this.createRemark();
15325
15326
  let activity = new Activity();
@@ -15348,7 +15349,7 @@ class TaskCreatorComponent {
15348
15349
  }
15349
15350
  createWorkClicked() {
15350
15351
  return __awaiter(this, void 0, void 0, function* () {
15351
- this.createForm.submit();
15352
+ this._formMasterService.submitSlaves();
15352
15353
  if (this.createForm.isValid()) {
15353
15354
  let work = this.createWork();
15354
15355
  let activity = new Activity();
@@ -15365,7 +15366,7 @@ class TaskCreatorComponent {
15365
15366
  }
15366
15367
  createTaskClicked() {
15367
15368
  return __awaiter(this, void 0, void 0, function* () {
15368
- this.createForm.submit();
15369
+ this._formMasterService.submitSlaves();
15369
15370
  if (this.createForm.isValid()) {
15370
15371
  const task = this.createTask();
15371
15372
  let activity = new Activity();
@@ -15610,14 +15611,18 @@ TaskCreatorComponent.decorators = [
15610
15611
  (click)="emailDialogClosed()"></co-button>
15611
15612
  </div>
15612
15613
  </ng-template>
15613
- `
15614
+ `,
15615
+ providers: [
15616
+ FormMasterService
15617
+ ]
15614
15618
  },] }
15615
15619
  ];
15616
15620
  TaskCreatorComponent.ctorParameters = () => [
15617
15621
  { type: IconCacheService },
15618
15622
  { type: DictionaryService },
15619
15623
  { type: SharedService },
15620
- { type: CoreDialogService }
15624
+ { type: CoreDialogService },
15625
+ { type: FormMasterService }
15621
15626
  ];
15622
15627
  TaskCreatorComponent.propDecorators = {
15623
15628
  createForm: [{ type: ViewChild, args: [FormComponent,] }],