vcomply-workflow-engine 3.4.22 → 3.4.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/esm2020/lib/add-multiple-responsibility/add-multiple-responsibility.component.mjs +2 -4
  2. package/esm2020/lib/add-multiple-risk/add-multiple-risk.component.mjs +2 -3
  3. package/esm2020/lib/formgroup/cs-select/cs-select.component.mjs +5 -5
  4. package/esm2020/lib/formgroup/cs-switch/cs-switch.component.mjs +1 -4
  5. package/esm2020/lib/log-an-issue/log-an-issue.component.mjs +1 -11
  6. package/esm2020/lib/more-option/more-option.component.mjs +5 -6
  7. package/esm2020/lib/pipes/filter.pipe.mjs +1 -2
  8. package/esm2020/lib/pipes/search.pipe.mjs +3 -5
  9. package/esm2020/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.mjs +3 -7
  10. package/esm2020/lib/sharedComponents/approval-workflow/approval-workflow-list/approval-workflow-list.component.mjs +1 -5
  11. package/esm2020/lib/sharedComponents/approval-workflow/approval-workflow.component.mjs +1 -7
  12. package/esm2020/lib/sharedComponents/assessment-editor/create-assessment-container/create-assessment-container.component.mjs +80 -36
  13. package/esm2020/lib/sharedComponents/assessment-list/assessment-list.component.mjs +27 -21
  14. package/esm2020/lib/sharedComponents/assessment-preview/preview/preview.component.mjs +7 -4
  15. package/esm2020/lib/sharedComponents/audit-category-list/audit-category-list.component.mjs +3 -4
  16. package/esm2020/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.mjs +3 -9
  17. package/esm2020/lib/sharedComponents/bulk-view/bulk-view.component.mjs +9 -7
  18. package/esm2020/lib/sharedComponents/category-multiselect/category-multi-select.component.mjs +6 -8
  19. package/esm2020/lib/sharedComponents/checkpoint/checkpoints/checkpoints.component.mjs +93 -27
  20. package/esm2020/lib/sharedComponents/checkpoint/checkpoints-questions/checkpoints-questions.component.mjs +11 -9
  21. package/esm2020/lib/sharedComponents/checkpoint-policy/checkpoints-policy-container/checkpoints-policy-container.component.mjs +13 -12
  22. package/esm2020/lib/sharedComponents/checkpoint-policy/checkpoints-policy-questions/checkpoints-policy-questions.component.mjs +28 -19
  23. package/esm2020/lib/sharedComponents/floating-bar/floating-bar.component.mjs +8 -8
  24. package/esm2020/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +35 -37
  25. package/esm2020/lib/sharedComponents/framework-list/parent-table/parent-table.component.mjs +7 -7
  26. package/esm2020/lib/sharedComponents/frequency/frequency-biannual/frequency-biannual.component.mjs +1 -12
  27. package/esm2020/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +1 -3
  28. package/esm2020/lib/sharedComponents/frequency/frequency-daily/frequency-daily.component.mjs +1 -13
  29. package/esm2020/lib/sharedComponents/frequency/frequency-due-date/frequency-due-date.component.mjs +1 -7
  30. package/esm2020/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.mjs +1 -26
  31. package/esm2020/lib/sharedComponents/frequency/frequency-monthly/frequency-monthly.component.mjs +1 -15
  32. package/esm2020/lib/sharedComponents/frequency/frequency-one-time/frequency-one-time.component.mjs +1 -14
  33. package/esm2020/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.mjs +14 -8
  34. package/esm2020/lib/sharedComponents/frequency/frequency-quarterly/frequency-quarterly.component.mjs +1 -13
  35. package/esm2020/lib/sharedComponents/frequency/frequency-radio-list/frequency-radio-list.component.mjs +1 -2
  36. package/esm2020/lib/sharedComponents/frequency/frequency-random/frequency-random.component.mjs +1 -18
  37. package/esm2020/lib/sharedComponents/frequency/frequency-top/frequency-top.component.mjs +2 -2
  38. package/esm2020/lib/sharedComponents/frequency/frequency-weekly/frequency-weekly.component.mjs +1 -12
  39. package/esm2020/lib/sharedComponents/frequency/frequency.service.mjs +2 -11
  40. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-annual/frequency-dialog-annual.component.mjs +1 -2
  41. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-biannual/frequency-dialog-biannual.component.mjs +1 -2
  42. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-monthly/frequency-dialog-monthly.component.mjs +1 -2
  43. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-one-time/frequency-dialog-one-time.component.mjs +1 -2
  44. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-quarterly/frequency-dialog-quarterly.component.mjs +1 -2
  45. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-radio-list/frequency-dialog-radio-list.component.mjs +1 -2
  46. package/esm2020/lib/sharedComponents/frequency-dialog/frequency-dialog-top/frequency-dialog-top.component.mjs +2 -2
  47. package/esm2020/lib/sharedComponents/group-users-list/group-users-list.component.mjs +1 -3
  48. package/esm2020/lib/sharedComponents/link-program/link-program/link-program.component.mjs +48 -38
  49. package/esm2020/lib/sharedComponents/link-program/restapi.service.mjs +31 -16
  50. package/esm2020/lib/sharedComponents/no-data/no-data.component.mjs +2 -4
  51. package/esm2020/lib/sharedComponents/owner-list/owner-list.component.mjs +12 -10
  52. package/esm2020/lib/sharedComponents/program-listing/program-listing.component.mjs +127 -58
  53. package/esm2020/lib/sharedComponents/radio-list-with-pagination/radio-list.component.mjs +4 -7
  54. package/esm2020/lib/sharedComponents/risk-classification/risk-classification.component.mjs +11 -6
  55. package/esm2020/lib/sharedComponents/select-approvers/select-approvers.component.mjs +1 -2
  56. package/esm2020/lib/sharedComponents/users-radio-list/users-radio-list.component.mjs +2 -3
  57. package/esm2020/lib/ui-kit/formgroup/cs-switch/cs-switch.component.mjs +1 -4
  58. package/esm2020/lib/ui-kit/popover/popover-longpress.directive.mjs +1 -3
  59. package/esm2020/lib/ui-kit/popover/popover.component.mjs +26 -12
  60. package/esm2020/lib/ui-kit/tooltip/tooltip.directive.mjs +8 -5
  61. package/esm2020/lib/workflow/shared/components/attributes/attributes.component.mjs +1 -2
  62. package/esm2020/lib/workflow/shared/components/edit-mode/edit-mode.component.mjs +1 -4
  63. package/esm2020/lib/workflow/shared/components/grc-object-list/grc-object-list.component.mjs +1 -2
  64. package/esm2020/lib/workflow/shared/components/list-popup/list-popup.component.mjs +1 -4
  65. package/esm2020/lib/workflow/shared/components/table-card/table-card.component.mjs +4 -8
  66. package/esm2020/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.mjs +245 -108
  67. package/esm2020/lib/workflow-assessment/workflow-assessment.component.mjs +2 -4
  68. package/esm2020/lib/workflow-compliance/workflow-compliance.component.mjs +10 -8
  69. package/esm2020/lib/workflow-engine-container/workflow-engine-container.component.mjs +1 -5
  70. package/esm2020/lib/workflow-policy/workflow-policy.component.mjs +5 -5
  71. package/esm2020/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.mjs +45 -45
  72. package/esm2020/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.mjs +43 -25
  73. package/esm2020/lib/workflow-program/create-program-ui/define-framework-listing/pipes/sub-cat-indeter.pipe.mjs +4 -4
  74. package/esm2020/lib/workflow-program/create-program-ui/floating-bar/floating-bar.component.mjs +1 -2
  75. package/esm2020/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.mjs +25 -14
  76. package/esm2020/lib/workflow-program/create-program-ui/pipes/assessment-resolver.pipe.mjs +6 -3
  77. package/esm2020/lib/workflow-program/create-program-ui/role-list/role-list.component.mjs +25 -19
  78. package/esm2020/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.mjs +1 -4
  79. package/esm2020/lib/workflow-program/workflow-program.component.mjs +232 -110
  80. package/esm2020/lib/workflow-services/add-risk.service.mjs +1 -2
  81. package/esm2020/lib/workflow-services/assessment.service.mjs +1 -5
  82. package/esm2020/lib/workflow-services/programs.service.mjs +173 -57
  83. package/fesm2015/vcomply-workflow-engine.mjs +1380 -938
  84. package/fesm2015/vcomply-workflow-engine.mjs.map +1 -1
  85. package/fesm2020/vcomply-workflow-engine.mjs +1390 -943
  86. package/fesm2020/vcomply-workflow-engine.mjs.map +1 -1
  87. package/lib/formgroup/cs-switch/cs-switch.component.d.ts +2 -3
  88. package/lib/sharedComponents/assessment-list/assessment-list.component.d.ts +4 -5
  89. package/lib/sharedComponents/bulk-responsibility-view/bulk-responsibility-view.component.d.ts +2 -3
  90. package/lib/sharedComponents/bulk-view/bulk-view.component.d.ts +2 -3
  91. package/lib/sharedComponents/frequency/frequency-lifecycle/frequency-lifecycle.component.d.ts +2 -4
  92. package/lib/sharedComponents/frequency/frequency-ongoing/frequency-ongoing.component.d.ts +1 -1
  93. package/lib/sharedComponents/link-program/restapi.service.d.ts +3 -3
  94. package/lib/sharedComponents/no-data/no-data.component.d.ts +2 -4
  95. package/lib/ui-kit/formgroup/cs-switch/cs-switch.component.d.ts +2 -3
  96. package/lib/workflow/shared/components/edit-mode/edit-mode.component.d.ts +2 -3
  97. package/lib/workflow/shared/components/list-popup/list-popup.component.d.ts +2 -3
  98. package/lib/workflow/shared/components/table-card/table-card.component.d.ts +2 -5
  99. package/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.d.ts +8 -9
  100. package/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.d.ts +2 -4
  101. package/package.json +1 -1
@@ -113,8 +113,6 @@ export class ApprovalCreateFormComponent {
113
113
  this.enableApprovalLevel = false;
114
114
  }
115
115
  deleteLevel(index) {
116
- // Approver Level delete
117
- console.log('this.approvalWorkflows ===>', this.approvalWorkflows);
118
116
  this.approvalWorkflows.splice(index, 1);
119
117
  this.levels = this.approvalWorkflows?.length + 1;
120
118
  for (let i = index; i < this.approvalWorkflows.length; i++) {
@@ -122,7 +120,6 @@ export class ApprovalCreateFormComponent {
122
120
  this.approvalWorkflows[index]['alias_name']) {
123
121
  this.approvalWorkflows[index]['alias_name'] = `Level ${i + 1}`;
124
122
  }
125
- console.log(' `Level ${i + 1}` ==>', `Level ${i + 1}`);
126
123
  this.approvalWorkflows[index]['level1'] = `Level ${i + 1}`;
127
124
  }
128
125
  }
@@ -177,7 +174,7 @@ export class ApprovalCreateFormComponent {
177
174
  this.saveApprovalWorkflow.emit(true);
178
175
  },
179
176
  error: (err) => {
180
- console.log(err);
177
+ console.error(err);
181
178
  },
182
179
  });
183
180
  }
@@ -189,12 +186,11 @@ export class ApprovalCreateFormComponent {
189
186
  this.saveApprovalWorkflow.emit(true);
190
187
  },
191
188
  error: (err) => {
192
- console.log(err);
189
+ console.error(err);
193
190
  },
194
191
  });
195
192
  }
196
193
  populateApprover() {
197
- console.log(' this.approverDetails ==>', this.approverDetails);
198
194
  const { workflow_name, approval_workflow, description, category_arr } = this.approverDetails;
199
195
  this.workflowName = workflow_name;
200
196
  this.approvalWorkflows = approval_workflow;
@@ -249,4 +245,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
249
245
  }], closeCreateClicked: [{
250
246
  type: Output
251
247
  }] } });
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtY3JlYXRlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9hcHByb3ZhbC13b3JrZmxvdy9hcHByb3ZhbC1jcmVhdGUtZm9ybS9hcHByb3ZhbC1jcmVhdGUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2FwcHJvdmFsLXdvcmtmbG93L2FwcHJvdmFsLWNyZWF0ZS1mb3JtL2FwcHJvdmFsLWNyZWF0ZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBVS9FLE1BQU0sT0FBTywyQkFBMkI7SUFxQ3RDLFlBQ1UsV0FBd0IsRUFDeEIsYUFBNEI7UUFENUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUF0Q3RDLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0Qyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBQ3RDLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLDBCQUFxQixHQUFVLEVBQUUsQ0FBQztRQUNsQywwQkFBcUIsR0FBVSxFQUFFLENBQUM7UUFDbEMsc0JBQWlCLEdBQVUsRUFBRSxDQUFDO1FBQzlCLHFCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUM3QixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLG1CQUFjLEdBQUc7WUFDZixVQUFVLEVBQUUsaUJBQWlCO1lBQzdCLG9CQUFvQixF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QUFDLEdBQUcsRUFBRSxTQUFTLEtBQUssUUFBUSxFQUFFLFNBQVMsQ0FDckQsQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FDcEQsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUM5QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQscUJBQXFCLENBQUMsSUFBUyxFQUFFLEtBQWM7UUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7O3dIQWpSVSwyQkFBMkI7NEdBQTNCLDJCQUEyQixtYUNWeEMsb3poQkE0WEE7MkZEbFhhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEI7OEhBOEIzQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFZGl0b3JDb25maWcgfSBmcm9tICd2Y29tcGx5LWVkaXRvcic7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUG9saWN5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3dvcmtmbG93LXNlcnZpY2VzL3BvbGljeS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWFwcHJvdmFsLWNyZWF0ZS1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXBwcm92YWwtY3JlYXRlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FwcHJvdmFsLWNyZWF0ZS1mb3JtLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHByb3ZhbENyZWF0ZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGVuYWJsZUFwcHJvdmFsQ3JlYXRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZW5hYmxlQXBwcm92YWxMZXZlbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGVuYWJsZVBvbGljeUNhdGVnb3J5OiBib29sZWFuID0gZmFsc2U7XHJcbiAgd29ya2Zsb3dOYW1lOiBzdHJpbmcgPSAnJztcclxuICBzZWxlY3RBcHByb3ZhbFBheWxvYWQ6IGFueVtdID0gW107XHJcbiAgY3JlYXRlQXBwcm92YWxQYXlsb2FkOiBhbnlbXSA9IFtdO1xyXG4gIGFwcHJvdmFsV29ya2Zsb3dzOiBhbnlbXSA9IFtdO1xyXG4gIGZpbHRlcmVkQ2F0ZWdvcnk6IGFueVtdID0gW107XHJcbiAgbGV2ZWxzOiBudW1iZXIgPSAxO1xyXG4gIGNhdGVnb3J5Q29uZmlnID0ge1xyXG4gICAgcGFuZWxUaXRsZTogJ1NlbGVjdCBDYXRlZ29yeScsXHJcbiAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ0NhdGVnb3J5IHNlbGVjdGVkJyxcclxuICAgIGZsb2F0aW5nVGV4dFBsdXJhbDogJ0NhdGVnb3JpZXMgc2VsZWN0ZWQnLFxyXG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggQ2F0ZWdvcnknLFxyXG4gICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgIHNlbGVjdEFsbEVuYWJsZWQ6IHRydWUsXHJcbiAgICB3b3JrZmxvdzogJ3BvbGljeScsXHJcbiAgfTtcclxuICBzZWxlY3RlZENhdDogYW55W10gPSBbXTtcclxuICBlZGl0QXBwcm92YWxEYXRhOiBhbnlbXSA9IFtdO1xyXG4gIGVkaXRJbmRleDogbnVtYmVyID0gLTE7XHJcbiAgY3JlYXRlRGVzY3JpcHRpb246IHN0cmluZyA9ICcnO1xyXG4gIHNlbGVjdGVkQ2F0ZWdvcnlJZDogYW55W10gPSBbXTtcclxuICBhcHByb3ZhbE5hbWUhOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgpIG1vZGU6ICdDUkVBVEUnIHwgJ0VESVQnID0gJ0NSRUFURSc7XHJcbiAgQElucHV0KCkgYXBwcm92ZXJEZXRhaWxzOiBhbnk7XHJcbiAgQElucHV0KCkgYXBwcm92ZXJXb3JrRmxvd0xpc3QhOiBhbnk7XHJcbiAgQElucHV0KCkgZW5hYmxlQ3JlYXRlRm9ybSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgYWxsQXBwcm92ZXJzITogYW55O1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkQ2F0ZWdvcnkhOiBhbnk7XHJcbiAgQElucHV0KCkgZWRpdFdvcmtmbG93TGV2ZWw6IGFueTtcclxuXHJcbiAgQE91dHB1dCgpIHNhdmVBcHByb3ZhbFdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUNyZWF0ZUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHBvbGljeVNlcnZpY2U6IFBvbGljeVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIGRlc2NyaXB0aW9uOiBFZGl0b3JDb25maWcgPSB7XHJcbiAgICBtb2RlOiAncHJpbWUnLFxyXG4gICAgY29sb3JQYWxldHRlOiB0cnVlLFxyXG4gICAgbGluazogdHJ1ZSxcclxuICAgIHBsYWNlaG9sZGVyOiAnQWRkIGEgZGVzY3JpcHRpb24gZm9yIHRoaXMgYXBwcm92YWwgd29ya2Zsb3cnLFxyXG4gIH07XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PSAnRURJVCcpIHtcclxuICAgICAgdGhpcy5wb3B1bGF0ZUFwcHJvdmVyKCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5lZGl0V29ya2Zsb3dMZXZlbD8uZWRpdExldmVsKSB7XHJcbiAgICAgIHRoaXMuZWRpdEFwcHJvdmFsKFxyXG4gICAgICAgIHRoaXMuZWRpdFdvcmtmbG93TGV2ZWw/LmVkaXRMZXZlbCxcclxuICAgICAgICB0aGlzLmVkaXRXb3JrZmxvd0xldmVsPy5pbmRleFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZW5hYmxlQ3JlYXRlRm9ybSkge1xyXG4gICAgICB0aGlzLmVuYWJsZUFwcHJvdmFsQ3JlYXRlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZUFwcHJvdmFsQWN0aW9uKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50b0xvd2VyQ2FzZSgpID09PSAnYXBwcm92YWwnKSB7XHJcbiAgICAgIHRoaXMuZW5hYmxlQXBwcm92YWxDcmVhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkTGV2ZWxzQ2xpY2tlZChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmVuYWJsZUFwcHJvdmFsTGV2ZWwgPSBldmVudDtcclxuICAgIGlmIChldmVudCkgdGhpcy5sZXZlbHMrKztcclxuICB9XHJcblxyXG4gIGdldENhdGVnb3J5SWQoY2F0ZWdvcnk6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5SWQgPSBjYXRlZ29yeS5tYXAoKGNhdDogYW55KSA9PiBjYXQuaXRlbV9pZCk7XHJcbiAgfVxyXG5cclxuICBzYXZlQ2F0ZWdvcnlMaXN0KGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRDYXQgPSBldmVudDtcclxuICAgIHRoaXMuZmlsdGVyU2VsZWN0ZWRDYXRlZ29yeShldmVudCk7XHJcbiAgICB0aGlzLmVuYWJsZVBvbGljeUNhdGVnb3J5ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJTZWxlY3RlZENhdGVnb3J5KHNlbGVjdGVkQ2F0ZWdvcnk6IGFueSkge1xyXG4gICAgdGhpcy5maWx0ZXJlZENhdGVnb3J5ID0gdGhpcy5zZWxlY3RlZENhdGVnb3J5LmZpbHRlcigoY2F0ZWdvcnk6IGFueSkgPT5cclxuICAgICAgc2VsZWN0ZWRDYXRlZ29yeS5pbmNsdWRlcyhjYXRlZ29yeS5faWQpXHJcbiAgICApO1xyXG4gICAgdGhpcy5nZXRDYXRlZ29yeUlkKHRoaXMuZmlsdGVyZWRDYXRlZ29yeSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVDYXRlZ29yeShldmVudDogYW55KSB7XHJcbiAgICBjb25zdCBjYXRlZ29yeUluZGV4ID0gdGhpcy5maWx0ZXJlZENhdGVnb3J5LmZpbmRJbmRleChcclxuICAgICAgKGNhdGVnb3J5OiBhbnkpID0+IGNhdGVnb3J5Py5pdGVtX2lkID09PSBldmVudD8uaXRlbV9pZFxyXG4gICAgKTtcclxuICAgIHRoaXMuZmlsdGVyZWRDYXRlZ29yeT8uc3BsaWNlKGNhdGVnb3J5SW5kZXgsIDEpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VDYXRlZ29yeUxpc3QoKSB7XHJcbiAgICB0aGlzLmVuYWJsZVBvbGljeUNhdGVnb3J5ID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBlbmFibGVDYXRlZ29yeShldmVudDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5lbmFibGVQb2xpY3lDYXRlZ29yeSA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgY2xvc2VTZWxlY3RBcHByb3ZlcigpIHtcclxuICAgIHRoaXMuZW5hYmxlQXBwcm92YWxMZXZlbCA9IGZhbHNlO1xyXG4gICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93cyA9IHRoaXMuYXBwcm92YWxXb3JrZmxvd3MuZmlsdGVyKFxyXG4gICAgICAod29ya2Zsb3c6IGFueSkgPT4gd29ya2Zsb3cuYXBwcm92ZXJzPy5sZW5ndGhcclxuICAgICk7XHJcbiAgICB0aGlzLmxldmVscyA9IHRoaXMuYXBwcm92YWxXb3JrZmxvd3M/Lmxlbmd0aCArIDE7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZEFwcHJvdmVyKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0QXBwcm92YWxQYXlsb2FkID0gZXZlbnQ7XHJcbiAgICBpZiAodGhpcy5lZGl0SW5kZXggIT09IC0xKSB7XHJcbiAgICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3M/LnNwbGljZSh0aGlzLmVkaXRJbmRleCwgMSk7XHJcbiAgICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3M/LnNwbGljZSh0aGlzLmVkaXRJbmRleCwgMCwgZXZlbnRbMF0pO1xyXG4gICAgICB0aGlzLmVkaXRJbmRleCA9IC0xO1xyXG4gICAgICB0aGlzLmVkaXRBcHByb3ZhbERhdGEgPSBbXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3MucHVzaChldmVudFswXSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzID0gdGhpcy5hcHByb3ZhbFdvcmtmbG93cy5maWx0ZXIoXHJcbiAgICAgICh3b3JrZmxvdzogYW55KSA9PiB3b3JrZmxvdy5hcHByb3ZlcnM/Lmxlbmd0aFxyXG4gICAgKTtcclxuICAgIHRoaXMubGV2ZWxzID0gdGhpcy5hcHByb3ZhbFdvcmtmbG93cz8ubGVuZ3RoICsgMTtcclxuXHJcbiAgICB0aGlzLmVuYWJsZUFwcHJvdmFsTGV2ZWwgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUxldmVsKGluZGV4OiBhbnkpIHtcclxuICAgIC8vIEFwcHJvdmVyIExldmVsIGRlbGV0ZVxyXG4gICAgY29uc29sZS5sb2coJ3RoaXMuYXBwcm92YWxXb3JrZmxvd3MgPT09PicsIHRoaXMuYXBwcm92YWxXb3JrZmxvd3MpO1xyXG4gICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5sZXZlbHMgPSB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzPy5sZW5ndGggKyAxO1xyXG4gICAgZm9yIChsZXQgaSA9IGluZGV4OyBpIDwgdGhpcy5hcHByb3ZhbFdvcmtmbG93cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93c1tpbmRleF1bJ2xldmVsMSddID09PVxyXG4gICAgICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3NbaW5kZXhdWydhbGlhc19uYW1lJ11cclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93c1tpbmRleF1bJ2FsaWFzX25hbWUnXSA9IGBMZXZlbCAke2kgKyAxfWA7XHJcbiAgICAgIH1cclxuICAgICAgY29uc29sZS5sb2coJyBgTGV2ZWwgJHtpICsgMX1gID09PicsIGBMZXZlbCAke2kgKyAxfWApO1xyXG4gICAgICB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzW2luZGV4XVsnbGV2ZWwxJ10gPSBgTGV2ZWwgJHtpICsgMX1gO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tMZXZlbCgpIHtcclxuICAgIGlmICh0aGlzLmxldmVscyA9PT0gMCkge1xyXG4gICAgICB0aGlzLmxldmVscyA9IDE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBlZGl0QXBwcm92YWwoYXBwcm92YWw6IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgdGhpcy5lZGl0QXBwcm92YWxEYXRhID0gW2FwcHJvdmFsXTtcclxuICAgIHRoaXMuZWRpdEluZGV4ID0gaW5kZXg7XHJcbiAgICB0aGlzLmVuYWJsZUFwcHJvdmFsTGV2ZWwgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VDcmVhdGVGb3JtKCkge1xyXG4gICAgdGhpcy5jbG9zZUNyZWF0ZUNsaWNrZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmV4dENsaWNrKCkge1xyXG4gICAgdGhpcy5yZW1vdmVNZW1iZXJOYW1lS2V5KCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNZW1iZXJOYW1lS2V5KCkge1xyXG4gICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93cyA9IHRoaXMuYXBwcm92YWxXb3JrZmxvd3MubWFwKFxyXG4gICAgICAoe1xyXG4gICAgICAgIGFwcHJvdmVycyxcclxuICAgICAgICAuLi5yZXN0XHJcbiAgICAgIH06IHtcclxuICAgICAgICBhcHByb3ZlcnM6IEFycmF5PHsgW2tleTogc3RyaW5nXTogYW55IH0+O1xyXG4gICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcclxuICAgICAgfSkgPT4gKHtcclxuICAgICAgICAuLi5yZXN0LFxyXG4gICAgICAgIGFwcHJvdmVyczogYXBwcm92ZXJzLm1hcChcclxuICAgICAgICAgICh7IG1lbWJlcl9uYW1lLCAuLi5yZXN0IH06IHsgW2tleTogc3RyaW5nXTogYW55IH0pID0+ICh7IC4uLnJlc3QgfSlcclxuICAgICAgICApLFxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICAgIHRoaXMuZ2VuZXJhdGVQYXlsb2FkKCk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZVBheWxvYWQoKSB7XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICB3b3JrZmxvd19tb2R1bGU6ICdQT0xJQ1knLFxyXG4gICAgICB3b3JrZmxvd19uYW1lOiB0aGlzLndvcmtmbG93TmFtZSxcclxuICAgICAgY2F0ZWdvcnlfaWQ6IHRoaXMuc2VsZWN0ZWRDYXRlZ29yeUlkLFxyXG4gICAgICBhcHByb3ZhbF93b3JrZmxvdzogdGhpcy5hcHByb3ZhbFdvcmtmbG93cyxcclxuICAgICAgY3JlYXRlZF9ieTogdGhpcy5hdXRoU2VydmljZS5nZXRNZW1iZXJJZCgpLFxyXG4gICAgICBvcmdhbmlzYXRpb25faWQ6IHRoaXMuYXV0aFNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uSWQoKSxcclxuICAgICAgZGVsZXRlX2ZsYWc6IDAsXHJcbiAgICAgIElzX2FwcHJvdmFsOiAxLFxyXG4gICAgICBkZXNjcmlwdGlvbjoge1xyXG4gICAgICAgIGF0dGFjaG1lbnRzOiBbXSxcclxuICAgICAgICB0ZXh0OiB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uLFxyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJykge1xyXG4gICAgICB0aGlzLl9lZGl0V29ya2Zsb3cocGF5bG9hZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNyZWF0ZU5ld1dvcmtmbG93KHBheWxvYWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlTmV3V29ya2Zsb3cocGF5bG9hZDogYW55KSB7XHJcbiAgICB0aGlzLnBvbGljeVNlcnZpY2UuY3JlYXRlQXBwcm92YWxXb3JrZmxvdyhwYXlsb2FkKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnNhdmVBcHByb3ZhbFdvcmtmbG93LmVtaXQodHJ1ZSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBfZWRpdFdvcmtmbG93KHBheWxvYWQ6IGFueSkge1xyXG4gICAgdGhpcy5wb2xpY3lTZXJ2aWNlXHJcbiAgICAgIC5lZGl0QXBwcm92YWxXb3JrZmxvdyhwYXlsb2FkLCB0aGlzLmFwcHJvdmVyRGV0YWlscy5faWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zYXZlQXBwcm92YWxXb3JrZmxvdy5lbWl0KHRydWUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgcG9wdWxhdGVBcHByb3ZlcigpIHtcclxuICAgIGNvbnNvbGUubG9nKCcgdGhpcy5hcHByb3ZlckRldGFpbHMgPT0+JywgdGhpcy5hcHByb3ZlckRldGFpbHMpO1xyXG4gICAgY29uc3QgeyB3b3JrZmxvd19uYW1lLCBhcHByb3ZhbF93b3JrZmxvdywgZGVzY3JpcHRpb24sIGNhdGVnb3J5X2FyciB9ID1cclxuICAgICAgdGhpcy5hcHByb3ZlckRldGFpbHM7XHJcbiAgICB0aGlzLndvcmtmbG93TmFtZSA9IHdvcmtmbG93X25hbWU7XHJcbiAgICB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzID0gYXBwcm92YWxfd29ya2Zsb3c7XHJcbiAgICB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24/LnRleHQgPz8gJyc7XHJcbiAgICBjb25zdCBjYXRlZ29yeURldGFpbHMgPSBjYXRlZ29yeV9hcnIubWFwKChjYXRlZ29yeTogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaXRlbV9pZDogY2F0ZWdvcnk/LmNhbF9jYXRlZ29yeV9pZCxcclxuICAgICAgICBpdGVtX25hbWU6IGNhdGVnb3J5Py5jYXRlZ29yeV9uYW1lLFxyXG4gICAgICAgIF9pZDogY2F0ZWdvcnk/Ll9pZCxcclxuICAgICAgICBwYXJlbnRfaXRlbXM6IFtdLFxyXG4gICAgICAgIHBhcmVudF9pdGVtX2lkczogW10sXHJcbiAgICAgICAgY3VzdG9tX3RhZ3M6IFtdLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlJZCA9IGNhdGVnb3J5X2Fyci5tYXAoXHJcbiAgICAgIChjYXRlZ29yeTogYW55KSA9PiBjYXRlZ29yeT8uY2FsX2NhdGVnb3J5X2lkXHJcbiAgICApO1xyXG4gICAgdGhpcy5maWx0ZXJlZENhdGVnb3J5ID0gY2F0ZWdvcnlEZXRhaWxzO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VGb3JtKCkge1xyXG4gICAgdGhpcy5zYXZlQXBwcm92YWxXb3JrZmxvdy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBkZXNlbGVjdFVzZXIoYXBwcm92ZXI6IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgY29uc3QgcmVtb3ZlSW5kZXggPSB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzW2luZGV4XT8uYXBwcm92ZXJzLmZpbmRJbmRleChcclxuICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCA9PT0gYXBwcm92ZXI/Lm1lbWJlcl9pZFxyXG4gICAgKTtcclxuICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3NbaW5kZXhdPy5hcHByb3ZlcnMuc3BsaWNlKHJlbW92ZUluZGV4LCAxKTtcclxuICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3MgPSB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzLmZpbHRlcihcclxuICAgICAgKHdvcmtmbG93OiBhbnkpID0+IHdvcmtmbG93LmFwcHJvdmVycz8ubGVuZ3RoXHJcbiAgICApO1xyXG4gICAgdGhpcy5sZXZlbHMgPSB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzPy5sZW5ndGggKyAxO1xyXG4gIH1cclxuXHJcbiAgYXBwcm92YWxOYW1lU2VsZWN0aW9uKHR5cGU6IGFueSwgZXZlbnQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuYXBwcm92YWxOYW1lID0gZXZlbnQgPyB0eXBlIDogJyc7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhcHByb3ZhbC13b3JrZmxvdy1kaWFsb2dcIiAqbmdJZj1cIiFlbmFibGVBcHByb3ZhbExldmVsICYmICFlbmFibGVQb2xpY3lDYXRlZ29yeVwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiYXBwcm92YWwtd29ya2Zsb3ctZGlhbG9nLWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlxyXG4gICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZUNyZWF0ZUZvcm0oKVwiIGNsYXNzPVwiYmFjay1idG4gdngtcC0wIHZ4LW0tMFwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtbXItMVwiPiYjeGU5MWQ7PC9pPjwvYnV0dG9uXHJcbiAgICAgID5TZWxlY3QgQXBwcm92YWwgV29ya2Zsb3dcclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhcHByb3ZhbC13b3JrZmxvdy1kaWFsb2ctYm9keVwiPlxyXG4gICAgPGFwcC1uby1kYXRhXHJcbiAgICAgICpuZ0lmPVwiIWFwcHJvdmVyV29ya0Zsb3dMaXN0Lmxlbmd0aCAmJiAhZW5hYmxlQXBwcm92YWxDcmVhdGVcIlxyXG4gICAgICBbbm9EYXRhSW1hZ2VdPVwiXHJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hcHByb3ZhbC13b3JrZmxvdy5zdmcnXHJcbiAgICAgIFwiXHJcbiAgICAgIFtub0RhdGFUZXh0XT1cIlxyXG4gICAgICAgICdZb3UgZGlkIG5vdCBzZXQgYW55IGFwcHJvdmFsIHdvcmtmbG93Ljxicj5DbGljayBvbiB0aGUgPHN0cm9uZz5DcmVhdGUgQW4gQXBwcm92YWwgV29ya2Zsb3c8L3N0cm9uZz4gYnV0dG9uIHRvIGJlZ2luLidcclxuICAgICAgXCJcclxuICAgICAgW25vRGF0YUJ1dHRvbl09XCInQ1JFQVRFIEFOIEFQUFJPVkFMIFdPUktGTE9XJ1wiXHJcbiAgICAgIFtidXR0b25dPVwiJ2FwcHJvdmFsJ1wiXHJcbiAgICAgIChidXR0b25BY3Rpb24pPVwiY3JlYXRlQXBwcm92YWxBY3Rpb24oJGV2ZW50KVwiXHJcbiAgICA+PC9hcHAtbm8tZGF0YT5cclxuXHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiZW5hYmxlQXBwcm92YWxDcmVhdGUgfHwgZW5hYmxlQ3JlYXRlRm9ybVwiXHJcbiAgICAgIGNsYXNzPVwiYXBwcm92YWwtd29ya2Zsb3ctZGlhbG9nLWJvZHktaW5uZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcHByb3ZhbC13b3JrZmxvdy1mb3JtXCI+XHJcbiAgICAgICAgPCEtLSBXb3JrZmxvdyBOYW1lIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcHByb3ZhbC13b3JrZmxvdy1mb3JtLXJvdyB2eC1tYi01XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1sZWZ0XCI+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hhdC5zdmdcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsYWJlbC1oZWFkaW5nIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTJcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgV09SS0ZMT1cgTkFNRSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkIHZ4LWZzLTE0IHZ4LWZ3LTUwMFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aW5wdXQgKm5nSWY9XCIhd29ya2Zsb3dOYW1lPy5sZW5ndGggfHwgYXBwcm92YWxOYW1lID09PSAnbmFtZSdcIlxyXG4gICAgICAgICAgICAgIChrZXlkb3duKT1cImFwcHJvdmFsTmFtZSA9ICduYW1lJ1wiXHJcbiAgICAgICAgICAgICAgKGZvY3VzaW4pPVwiYXBwcm92YWxOYW1lU2VsZWN0aW9uKCduYW1lJyx0cnVlKVwiXHJcbiAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cImFwcHJvdmFsTmFtZVNlbGVjdGlvbignbmFtZScsZmFsc2UpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInRleHRGaWVsZFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwid29ya2Zsb3dOYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk5hbWUgb2YgdGhlIGFwcHJvdmFsIHdvcmtmbG93XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIndvcmtmbG93TmFtZT8ubGVuZ3RoICYmIGFwcHJvdmFsTmFtZSAhPT0gJ25hbWUnXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdEJveFN1Y2Nlc3MgdngtcGwtMiB2eC1wci0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0Qm94VGV4dCB2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0XCIgW2FwcFRvb2x0aXBdPVwid29ya2Zsb3dOYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAge3t3b3JrZmxvd05hbWV9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFwcHJvdmFsTmFtZVNlbGVjdGlvbignbmFtZScsIHRydWUpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWRpdEJ0biB2eC1mcy0xMSB2eC1mdy02MDAgdngtdHh0LWJsdWUgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTkwYzs8L2k+IEVESVRcclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgPHZjb21wbHktZWRpdG9yXHJcbiAgICAgICAgICAgICAgICBbZWRpdG9yQ29uZmlnXT1cImRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3JlYXRlRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgID48L3Zjb21wbHktZWRpdG9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIFBvbGljeSBDYXRlZ29yeSAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwcm92YWwtd29ya2Zsb3ctZm9ybS1yb3cgdngtbWItNVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tbGVmdFwiPlxyXG4gICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NhdGVnb3J5LnN2Z1wiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImxhYmVsLWhlYWRpbmcgdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC10dC11cHBlcmNhc2UgdngtbWItMlwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICBTRUxFQ1QgUE9MSUNZIENBVEVHT1JZXHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZCB2eC1mcy0xNCB2eC1mdy01MDBcIj4qPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZmlsdGVyZWRDYXRlZ29yeT8ubGVuZ3RoID09PSAwXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZW5hYmxlQ2F0ZWdvcnkodHJ1ZSlcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0Qm94RW5hYmxlIHZ4LXBsLTMgdngtcHItMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RCb3hQbGFjZWhvZGVyIHZ4LWZzLTEzIHZ4LXBhcmFncmFwaC10eHQgdngtbGgtNFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgU2VsZWN0IHRoZSBwb2xpY3kgY2F0ZWdvcnkgdGhhdCB0aGlzIGFwcHJvdmFsPGJyIC8+d29ya2Zsb3dcclxuICAgICAgICAgICAgICAgIGFwcGxpZXMgdG9cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJmaWx0ZXJlZENhdGVnb3J5Py5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdEJveFN1Y2Nlc3MgdngtcGwtMiB2eC1wci0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTEgdngtcHItMlwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgICBsZXQgY2F0ZWdvcnkgb2YgZmlsdGVyZWRDYXRlZ29yeSB8IHNsaWNlIDogMCA6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNhdEluZGV4ID0gaW5kZXhcclxuICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlQ2F0ZWdvcnkoY2F0ZWdvcnkpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiY2F0ZWdvcnk/Lml0ZW1fbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPnt7IGNhdGVnb3J5Py5pdGVtX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsdGVyZWRDYXRlZ29yeT8ubGVuZ3RoID4gMVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXHJcbiAgICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBvbGljeU93bmVyUG9wb3Zlci5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICt7eyBmaWx0ZXJlZENhdGVnb3J5Py5sZW5ndGggLSAxIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3BvbGljeU93bmVyUG9wb3ZlciBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIGZpbHRlcmVkQ2F0ZWdvcnkgfCBzbGljZSA6IDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImNhdGVnb3J5Py5pdGVtX25hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKGNsaWNrKT1cInJlbW92ZUNhdGVnb3J5KGNhdGVnb3J5KVwiIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNhdGVnb3J5Py5pdGVtX25hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgZmlsdGVyZWRDYXRlZ29yeVxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImVuYWJsZUNhdGVnb3J5KHRydWUpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWRpdEJ0biB2eC1mcy0xMSB2eC1mdy02MDAgdngtdHh0LWJsdWUgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTkwYzs8L2k+IEVESVRcclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBBcHByb3ZhbCBXb3JrZmxvdyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwcm92YWwtd29ya2Zsb3ctZm9ybS1yb3cgdngtbWItNVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tbGVmdFwiPlxyXG4gICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2FwcHJvdmFsLnN2Z1wiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImxhYmVsLWhlYWRpbmcgdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC10dC11cHBlcmNhc2UgdngtbWItMlwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICBBUFBST1ZFUlMgJiBBUFBST1ZBTCBXT1JLRkxPV1xyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQgdngtZnMtMTQgdngtZnctNTAwXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAqbmdJZj1cImFwcHJvdmFsV29ya2Zsb3dzPy5sZW5ndGggPT09IDBcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJhZGRMZXZlbHNDbGlja2VkKHRydWUpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdEJveEVuYWJsZSB2eC1wbC0zIHZ4LXByLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0Qm94UGxhY2Vob2RlciB2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0IHZ4LWxoLTRcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIFNlbGVjdCBhcHByb3ZlcnMgYW5kIHNlbGVjdCB0aGUgb3JkZXIgb2YgYXBwcm92YWxcclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcHByb3ZhbFdvcmtmbG93cz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICBsZXQgYXBwcm92YWxXb3JrZmxvdyBvZiBhcHByb3ZhbFdvcmtmbG93cztcclxuICAgICAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleFxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0Qm94U3VjY2VzcyB2eC1wbC0yIHZ4LXByLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtbWItMlwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxldmVsLWxlZnQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGV2ZWwtbmFtZSB2eC1mcy05IHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1saC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiYXBwcm92YWxXb3JrZmxvdz8uYWxpYXNfbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBhcHByb3ZhbFdvcmtmbG93Py5hbGlhc19uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1mcy05IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LWxoLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIHt7IGFwcHJvdmFsV29ya2Zsb3c/LnR5cGUgfX0gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7KGFwcHJvdmFsV29ya2Zsb3c/LnR5cGUgfCBsb3dlcmNhc2UpID09PSBcInJvdW5kcm9iaW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiUk9VTkQtUk9CSU5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IChhcHByb3ZhbFdvcmtmbG93Py50eXBlIHwgbG93ZXJjYXNlKSA9PT0gXCJhbnlvbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiQU5ZIE9ORVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYXBwcm92YWxXb3JrZmxvdz8udHlwZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0xIHZ4LXByLTIgdngtbWwtMlwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8aSAoY2xpY2spPVwiZGVzZWxlY3RVc2VyKGFwcHJvdmFsV29ya2Zsb3c/LmFwcHJvdmVyc1swXSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsV29ya2Zsb3c/LnR5cGU/LnRvTG93ZXJDYXNlKCkgPT09ICdzZXF1ZW50aWFsJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsV29ya2Zsb3c/LmFwcHJvdmVycz8ubGVuZ3RoIDwgMlxyXG4gICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3b3JrZmxvd0xhdmVsIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wbC0xIHZ4LXByLTEgdngtbGgtNCB2eC1tci0xIHZ4LXRleHQtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgIDEgPT0gYXBwcm92YWxXb3JrZmxvdz8uYXBwcm92ZXJzPy5sZW5ndGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIkZpbmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAxXHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhcHByb3ZhbFdvcmtmbG93Py5hcHByb3ZlcnM/Lmxlbmd0aCA+IDEgJiYgYXBwcm92YWxXb3JrZmxvdz8udHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gJ3NlcXVlbnRpYWwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid29ya2Zsb3dMYXZlbCB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGwtMSB2eC1wci0xIHZ4LWxoLTQgdngtbXItMSB2eC10ZXh0LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgMVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJhcHByb3ZhbFdvcmtmbG93Py5hcHByb3ZlcnNbMF0/Lm1lbWJlcl9uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPnt7IGFwcHJvdmFsV29ya2Zsb3c/LmFwcHJvdmVyc1swXT8ubWVtYmVyX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhcHByb3ZhbFdvcmtmbG93Py5hcHByb3ZlcnM/Lmxlbmd0aCA+IDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ3b3JrZmxvd1BvcG92ZXIucG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICArIHt7IGFwcHJvdmFsV29ya2Zsb3c/LmFwcHJvdmVycz8ubGVuZ3RoIC0gMSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICN3b3JrZmxvd1BvcG92ZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBwcm92ZXIgb2YgYXBwcm92YWxXb3JrZmxvdz8uYXBwcm92ZXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2xpY2UgOiAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGogPSBpbmRleFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJhcHByb3Zlcj8ubWVtYmVyX25hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKGNsaWNrKT1cImRlc2VsZWN0VXNlcihhcHByb3ZlcixpKVwiICBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYXBwcm92YWxXb3JrZmxvdz8udHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gJ3NlcXVlbnRpYWwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIndvcmtmbG93TGF2ZWwgdngtZnMtMTEgdngtZnctNTAwIHZ4LXBsLTEgdngtcHItMSB2eC1saC00IHZ4LW1yLTEgdngtdGV4dC1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaisxID09PVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92YWxXb3JrZmxvdz8uYXBwcm92ZXJzPy5sZW5ndGggLSAxXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJGaW5hbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaiArIDJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFwcHJvdmVyPy5tZW1iZXJfbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdEFwcHJvdmFsKGFwcHJvdmFsV29ya2Zsb3csIGkpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVkaXRCdG4gdngtZnMtMTEgdngtZnctNjAwIHZ4LXR4dC1ibHVlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTkwYzs8L2k+IEVESVRcclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlTGV2ZWwoaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGVsZXRlQnRuIHZ4LWZzLTExIHZ4LWZ3LTYwMCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC1tbC00IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTlhZTs8L2k+IERFTEVURVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAqbmdJZj1cImFwcHJvdmFsV29ya2Zsb3dzPy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkTGV2ZWxzQ2xpY2tlZCh0cnVlKVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhZGRNb3JlQnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10eHQtYmx1ZSB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC1tdC0xXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICsgQUREIE1PUkUgTEVWRUxTXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHZ1aS1mbG9hdGluZy1iYXJcclxuICAgICAgKm5nSWY9XCJlbmFibGVBcHByb3ZhbENyZWF0ZSB8fCBlbmFibGVDcmVhdGVGb3JtXCJcclxuICAgICAgW25leHREaXNhYmxlZF09XCJcclxuICAgICAgICB3b3JrZmxvd05hbWU/LnRyaW0oKSA9PT0gJycgfHxcclxuICAgICAgICBhcHByb3ZhbFdvcmtmbG93cz8ubGVuZ3RoID09PSAwIHx8XHJcbiAgICAgICAgZmlsdGVyZWRDYXRlZ29yeT8ubGVuZ3RoID09PSAwXHJcbiAgICAgIFwiXHJcbiAgICAgIChjbG9zZUxpc3QpPVwiY2xvc2VDcmVhdGVGb3JtKClcIlxyXG4gICAgICAoY2xvc2VFdmVudCk9XCJuZXh0Q2xpY2soKVwiXHJcbiAgICA+PC92dWktZmxvYXRpbmctYmFyPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gW3NlbGVjdGVkSXRlbXNdPVwicG9saWN5Rm9ybS5zZWxlY3RlZENhdGVnb3JpZXNcIiAtLT5cclxuXHJcbjxhcHAtc2VsZWN0LWFwcHJvdmVyc1xyXG4gICpuZ0lmPVwiZW5hYmxlQXBwcm92YWxMZXZlbFwiXHJcbiAgW2FsbEFwcHJvdmVyc109XCJhbGxBcHByb3ZlcnNcIlxyXG4gIChjbG9zZVNlbGVjdEFwcHJvdmVyKT1cImNsb3NlU2VsZWN0QXBwcm92ZXIoKVwiXHJcbiAgKHNlbGVjdGVkQXBwcm92ZXIpPVwic2VsZWN0ZWRBcHByb3ZlcigkZXZlbnQpXCJcclxuICBbbGV2ZWxzXT1cImxldmVsc1wiXHJcbiAgW2VkaXRBcHByb3ZhbERhdGFdPVwiZWRpdEFwcHJvdmFsRGF0YVwiXHJcbj48L2FwcC1zZWxlY3QtYXBwcm92ZXJzPlxyXG5cclxuPGFwcC1jaGVja2JveC1saXN0XHJcbiAgKm5nSWY9XCJlbmFibGVQb2xpY3lDYXRlZ29yeVwiXHJcbiAgW2NvbmZpZ109XCJjYXRlZ29yeUNvbmZpZ1wiXHJcbiAgW3R3b0NvbHVtbl09XCJmYWxzZVwiXHJcbiAgW2l0ZW1zTGlzdF09XCJzZWxlY3RlZENhdGVnb3J5XCJcclxuICBbaWRlbnRpZmllcktleV09XCInX2lkJ1wiXHJcbiAgW2Rpc3BsYXlLZXldPVwiJ2l0ZW1fbmFtZSdcIlxyXG4gIFt0b29sdGlwS2V5XT1cIidpdGVtX25hbWUnXCJcclxuICAoc2F2ZUxpc3QpPVwic2F2ZUNhdGVnb3J5TGlzdCgkZXZlbnQpXCJcclxuICAoY2xvc2VMaXN0KT1cImNsb3NlQ2F0ZWdvcnlMaXN0KClcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cImZpbHRlcmVkQ2F0ZWdvcnlcIlxyXG4+XHJcbjwvYXBwLWNoZWNrYm94LWxpc3Q+XHJcbiJdfQ==
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtY3JlYXRlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9hcHByb3ZhbC13b3JrZmxvdy9hcHByb3ZhbC1jcmVhdGUtZm9ybS9hcHByb3ZhbC1jcmVhdGUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2FwcHJvdmFsLXdvcmtmbG93L2FwcHJvdmFsLWNyZWF0ZS1mb3JtL2FwcHJvdmFsLWNyZWF0ZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBVS9FLE1BQU0sT0FBTywyQkFBMkI7SUFxQ3RDLFlBQ1UsV0FBd0IsRUFDeEIsYUFBNEI7UUFENUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUF0Q3RDLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0Qyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBQ3RDLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLDBCQUFxQixHQUFVLEVBQUUsQ0FBQztRQUNsQywwQkFBcUIsR0FBVSxFQUFFLENBQUM7UUFDbEMsc0JBQWlCLEdBQVUsRUFBRSxDQUFDO1FBQzlCLHFCQUFnQixHQUFVLEVBQUUsQ0FBQztRQUM3QixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLG1CQUFjLEdBQUc7WUFDZixVQUFVLEVBQUUsaUJBQWlCO1lBQzdCLG9CQUFvQixF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QUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQzlDLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxJQUFTLEVBQUUsS0FBYztRQUM3QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDeEMsQ0FBQzs7d0hBN1FVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLG1hQ1Z4QyxvemhCQTRYQTsyRkRsWGEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDBCQUEwQjs4SEE4QjNCLElBQUk7c0JBQVosS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVJLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVkaXRvckNvbmZpZyB9IGZyb20gJ3Zjb21wbHktZWRpdG9yJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi93b3JrZmxvdy1zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb2xpY3lTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vd29ya2Zsb3ctc2VydmljZXMvcG9saWN5LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYXBwcm92YWwtY3JlYXRlLWZvcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1jcmVhdGUtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXBwcm92YWwtY3JlYXRlLWZvcm0uY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsQ3JlYXRlRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgZW5hYmxlQXBwcm92YWxDcmVhdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBlbmFibGVBcHByb3ZhbExldmVsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZW5hYmxlUG9saWN5Q2F0ZWdvcnk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB3b3JrZmxvd05hbWU6IHN0cmluZyA9ICcnO1xyXG4gIHNlbGVjdEFwcHJvdmFsUGF5bG9hZDogYW55W10gPSBbXTtcclxuICBjcmVhdGVBcHByb3ZhbFBheWxvYWQ6IGFueVtdID0gW107XHJcbiAgYXBwcm92YWxXb3JrZmxvd3M6IGFueVtdID0gW107XHJcbiAgZmlsdGVyZWRDYXRlZ29yeTogYW55W10gPSBbXTtcclxuICBsZXZlbHM6IG51bWJlciA9IDE7XHJcbiAgY2F0ZWdvcnlDb25maWcgPSB7XHJcbiAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IENhdGVnb3J5JyxcclxuICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnQ2F0ZWdvcnkgc2VsZWN0ZWQnLFxyXG4gICAgZmxvYXRpbmdUZXh0UGx1cmFsOiAnQ2F0ZWdvcmllcyBzZWxlY3RlZCcsXHJcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBDYXRlZ29yeScsXHJcbiAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgc2VsZWN0QWxsRW5hYmxlZDogdHJ1ZSxcclxuICAgIHdvcmtmbG93OiAncG9saWN5JyxcclxuICB9O1xyXG4gIHNlbGVjdGVkQ2F0OiBhbnlbXSA9IFtdO1xyXG4gIGVkaXRBcHByb3ZhbERhdGE6IGFueVtdID0gW107XHJcbiAgZWRpdEluZGV4OiBudW1iZXIgPSAtMTtcclxuICBjcmVhdGVEZXNjcmlwdGlvbjogc3RyaW5nID0gJyc7XHJcbiAgc2VsZWN0ZWRDYXRlZ29yeUlkOiBhbnlbXSA9IFtdO1xyXG4gIGFwcHJvdmFsTmFtZSE6IGFueTtcclxuXHJcbiAgQElucHV0KCkgbW9kZTogJ0NSRUFURScgfCAnRURJVCcgPSAnQ1JFQVRFJztcclxuICBASW5wdXQoKSBhcHByb3ZlckRldGFpbHM6IGFueTtcclxuICBASW5wdXQoKSBhcHByb3ZlcldvcmtGbG93TGlzdCE6IGFueTtcclxuICBASW5wdXQoKSBlbmFibGVDcmVhdGVGb3JtITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBhbGxBcHByb3ZlcnMhOiBhbnk7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRDYXRlZ29yeSE6IGFueTtcclxuICBASW5wdXQoKSBlZGl0V29ya2Zsb3dMZXZlbDogYW55O1xyXG5cclxuICBAT3V0cHV0KCkgc2F2ZUFwcHJvdmFsV29ya2Zsb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlQ3JlYXRlQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgcG9saWN5U2VydmljZTogUG9saWN5U2VydmljZVxyXG4gICkge31cclxuXHJcbiAgZGVzY3JpcHRpb246IEVkaXRvckNvbmZpZyA9IHtcclxuICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICBsaW5rOiB0cnVlLFxyXG4gICAgcGxhY2Vob2xkZXI6ICdBZGQgYSBkZXNjcmlwdGlvbiBmb3IgdGhpcyBhcHByb3ZhbCB3b3JrZmxvdycsXHJcbiAgfTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tb2RlID09ICdFRElUJykge1xyXG4gICAgICB0aGlzLnBvcHVsYXRlQXBwcm92ZXIoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmVkaXRXb3JrZmxvd0xldmVsPy5lZGl0TGV2ZWwpIHtcclxuICAgICAgdGhpcy5lZGl0QXBwcm92YWwoXHJcbiAgICAgICAgdGhpcy5lZGl0V29ya2Zsb3dMZXZlbD8uZWRpdExldmVsLFxyXG4gICAgICAgIHRoaXMuZWRpdFdvcmtmbG93TGV2ZWw/LmluZGV4XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5lbmFibGVDcmVhdGVGb3JtKSB7XHJcbiAgICAgIHRoaXMuZW5hYmxlQXBwcm92YWxDcmVhdGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlQXBwcm92YWxBY3Rpb24oZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LnRvTG93ZXJDYXNlKCkgPT09ICdhcHByb3ZhbCcpIHtcclxuICAgICAgdGhpcy5lbmFibGVBcHByb3ZhbENyZWF0ZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRMZXZlbHNDbGlja2VkKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuZW5hYmxlQXBwcm92YWxMZXZlbCA9IGV2ZW50O1xyXG4gICAgaWYgKGV2ZW50KSB0aGlzLmxldmVscysrO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2F0ZWdvcnlJZChjYXRlZ29yeTogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlJZCA9IGNhdGVnb3J5Lm1hcCgoY2F0OiBhbnkpID0+IGNhdC5pdGVtX2lkKTtcclxuICB9XHJcblxyXG4gIHNhdmVDYXRlZ29yeUxpc3QoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZENhdCA9IGV2ZW50O1xyXG4gICAgdGhpcy5maWx0ZXJTZWxlY3RlZENhdGVnb3J5KGV2ZW50KTtcclxuICAgIHRoaXMuZW5hYmxlUG9saWN5Q2F0ZWdvcnkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGZpbHRlclNlbGVjdGVkQ2F0ZWdvcnkoc2VsZWN0ZWRDYXRlZ29yeTogYW55KSB7XHJcbiAgICB0aGlzLmZpbHRlcmVkQ2F0ZWdvcnkgPSB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkuZmlsdGVyKChjYXRlZ29yeTogYW55KSA9PlxyXG4gICAgICBzZWxlY3RlZENhdGVnb3J5LmluY2x1ZGVzKGNhdGVnb3J5Ll9pZClcclxuICAgICk7XHJcbiAgICB0aGlzLmdldENhdGVnb3J5SWQodGhpcy5maWx0ZXJlZENhdGVnb3J5KTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUNhdGVnb3J5KGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGNhdGVnb3J5SW5kZXggPSB0aGlzLmZpbHRlcmVkQ2F0ZWdvcnkuZmluZEluZGV4KFxyXG4gICAgICAoY2F0ZWdvcnk6IGFueSkgPT4gY2F0ZWdvcnk/Lml0ZW1faWQgPT09IGV2ZW50Py5pdGVtX2lkXHJcbiAgICApO1xyXG4gICAgdGhpcy5maWx0ZXJlZENhdGVnb3J5Py5zcGxpY2UoY2F0ZWdvcnlJbmRleCwgMSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZUNhdGVnb3J5TGlzdCgpIHtcclxuICAgIHRoaXMuZW5hYmxlUG9saWN5Q2F0ZWdvcnkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGVuYWJsZUNhdGVnb3J5KGV2ZW50OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmVuYWJsZVBvbGljeUNhdGVnb3J5ID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBjbG9zZVNlbGVjdEFwcHJvdmVyKCkge1xyXG4gICAgdGhpcy5lbmFibGVBcHByb3ZhbExldmVsID0gZmFsc2U7XHJcbiAgICB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzID0gdGhpcy5hcHByb3ZhbFdvcmtmbG93cy5maWx0ZXIoXHJcbiAgICAgICh3b3JrZmxvdzogYW55KSA9PiB3b3JrZmxvdy5hcHByb3ZlcnM/Lmxlbmd0aFxyXG4gICAgKTtcclxuICAgIHRoaXMubGV2ZWxzID0gdGhpcy5hcHByb3ZhbFdvcmtmbG93cz8ubGVuZ3RoICsgMTtcclxuICB9XHJcblxyXG4gIHNlbGVjdGVkQXBwcm92ZXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RBcHByb3ZhbFBheWxvYWQgPSBldmVudDtcclxuICAgIGlmICh0aGlzLmVkaXRJbmRleCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93cz8uc3BsaWNlKHRoaXMuZWRpdEluZGV4LCAxKTtcclxuICAgICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93cz8uc3BsaWNlKHRoaXMuZWRpdEluZGV4LCAwLCBldmVudFswXSk7XHJcbiAgICAgIHRoaXMuZWRpdEluZGV4ID0gLTE7XHJcbiAgICAgIHRoaXMuZWRpdEFwcHJvdmFsRGF0YSA9IFtdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93cy5wdXNoKGV2ZW50WzBdKTtcclxuICAgIH1cclxuICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3MgPSB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzLmZpbHRlcihcclxuICAgICAgKHdvcmtmbG93OiBhbnkpID0+IHdvcmtmbG93LmFwcHJvdmVycz8ubGVuZ3RoXHJcbiAgICApO1xyXG4gICAgdGhpcy5sZXZlbHMgPSB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzPy5sZW5ndGggKyAxO1xyXG5cclxuICAgIHRoaXMuZW5hYmxlQXBwcm92YWxMZXZlbCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlTGV2ZWwoaW5kZXg6IGFueSkge1xyXG4gICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5sZXZlbHMgPSB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzPy5sZW5ndGggKyAxO1xyXG4gICAgZm9yIChsZXQgaSA9IGluZGV4OyBpIDwgdGhpcy5hcHByb3ZhbFdvcmtmbG93cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93c1tpbmRleF1bJ2xldmVsMSddID09PVxyXG4gICAgICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3NbaW5kZXhdWydhbGlhc19uYW1lJ11cclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93c1tpbmRleF1bJ2FsaWFzX25hbWUnXSA9IGBMZXZlbCAke2kgKyAxfWA7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hcHByb3ZhbFdvcmtmbG93c1tpbmRleF1bJ2xldmVsMSddID0gYExldmVsICR7aSArIDF9YDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoZWNrTGV2ZWwoKSB7XHJcbiAgICBpZiAodGhpcy5sZXZlbHMgPT09IDApIHtcclxuICAgICAgdGhpcy5sZXZlbHMgPSAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZWRpdEFwcHJvdmFsKGFwcHJvdmFsOiBhbnksIGluZGV4OiBhbnkpIHtcclxuICAgIHRoaXMuZWRpdEFwcHJvdmFsRGF0YSA9IFthcHByb3ZhbF07XHJcbiAgICB0aGlzLmVkaXRJbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5lbmFibGVBcHByb3ZhbExldmVsID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGNsb3NlQ3JlYXRlRm9ybSgpIHtcclxuICAgIHRoaXMuY2xvc2VDcmVhdGVDbGlja2VkLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG5leHRDbGljaygpIHtcclxuICAgIHRoaXMucmVtb3ZlTWVtYmVyTmFtZUtleSgpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTWVtYmVyTmFtZUtleSgpIHtcclxuICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3MgPSB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzLm1hcChcclxuICAgICAgKHtcclxuICAgICAgICBhcHByb3ZlcnMsXHJcbiAgICAgICAgLi4ucmVzdFxyXG4gICAgICB9OiB7XHJcbiAgICAgICAgYXBwcm92ZXJzOiBBcnJheTx7IFtrZXk6IHN0cmluZ106IGFueSB9PjtcclxuICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgICAgIH0pID0+ICh7XHJcbiAgICAgICAgLi4ucmVzdCxcclxuICAgICAgICBhcHByb3ZlcnM6IGFwcHJvdmVycy5tYXAoXHJcbiAgICAgICAgICAoeyBtZW1iZXJfbmFtZSwgLi4ucmVzdCB9OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KSA9PiAoeyAuLi5yZXN0IH0pXHJcbiAgICAgICAgKSxcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLmdlbmVyYXRlUGF5bG9hZCgpO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVQYXlsb2FkKCkge1xyXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcclxuICAgICAgd29ya2Zsb3dfbW9kdWxlOiAnUE9MSUNZJyxcclxuICAgICAgd29ya2Zsb3dfbmFtZTogdGhpcy53b3JrZmxvd05hbWUsXHJcbiAgICAgIGNhdGVnb3J5X2lkOiB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlJZCxcclxuICAgICAgYXBwcm92YWxfd29ya2Zsb3c6IHRoaXMuYXBwcm92YWxXb3JrZmxvd3MsXHJcbiAgICAgIGNyZWF0ZWRfYnk6IHRoaXMuYXV0aFNlcnZpY2UuZ2V0TWVtYmVySWQoKSxcclxuICAgICAgb3JnYW5pc2F0aW9uX2lkOiB0aGlzLmF1dGhTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbklkKCksXHJcbiAgICAgIGRlbGV0ZV9mbGFnOiAwLFxyXG4gICAgICBJc19hcHByb3ZhbDogMSxcclxuICAgICAgZGVzY3JpcHRpb246IHtcclxuICAgICAgICBhdHRhY2htZW50czogW10sXHJcbiAgICAgICAgdGV4dDogdGhpcy5jcmVhdGVEZXNjcmlwdGlvbixcclxuICAgICAgfSxcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgdGhpcy5fZWRpdFdvcmtmbG93KHBheWxvYWQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jcmVhdGVOZXdXb3JrZmxvdyhwYXlsb2FkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNyZWF0ZU5ld1dvcmtmbG93KHBheWxvYWQ6IGFueSkge1xyXG4gICAgdGhpcy5wb2xpY3lTZXJ2aWNlLmNyZWF0ZUFwcHJvdmFsV29ya2Zsb3cocGF5bG9hZCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zYXZlQXBwcm92YWxXb3JrZmxvdy5lbWl0KHRydWUpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBfZWRpdFdvcmtmbG93KHBheWxvYWQ6IGFueSkge1xyXG4gICAgdGhpcy5wb2xpY3lTZXJ2aWNlXHJcbiAgICAgIC5lZGl0QXBwcm92YWxXb3JrZmxvdyhwYXlsb2FkLCB0aGlzLmFwcHJvdmVyRGV0YWlscy5faWQpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zYXZlQXBwcm92YWxXb3JrZmxvdy5lbWl0KHRydWUpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBwb3B1bGF0ZUFwcHJvdmVyKCkge1xyXG4gICAgY29uc3QgeyB3b3JrZmxvd19uYW1lLCBhcHByb3ZhbF93b3JrZmxvdywgZGVzY3JpcHRpb24sIGNhdGVnb3J5X2FyciB9ID1cclxuICAgICAgdGhpcy5hcHByb3ZlckRldGFpbHM7XHJcbiAgICB0aGlzLndvcmtmbG93TmFtZSA9IHdvcmtmbG93X25hbWU7XHJcbiAgICB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzID0gYXBwcm92YWxfd29ya2Zsb3c7XHJcbiAgICB0aGlzLmNyZWF0ZURlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24/LnRleHQgPz8gJyc7XHJcbiAgICBjb25zdCBjYXRlZ29yeURldGFpbHMgPSBjYXRlZ29yeV9hcnIubWFwKChjYXRlZ29yeTogYW55KSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaXRlbV9pZDogY2F0ZWdvcnk/LmNhbF9jYXRlZ29yeV9pZCxcclxuICAgICAgICBpdGVtX25hbWU6IGNhdGVnb3J5Py5jYXRlZ29yeV9uYW1lLFxyXG4gICAgICAgIF9pZDogY2F0ZWdvcnk/Ll9pZCxcclxuICAgICAgICBwYXJlbnRfaXRlbXM6IFtdLFxyXG4gICAgICAgIHBhcmVudF9pdGVtX2lkczogW10sXHJcbiAgICAgICAgY3VzdG9tX3RhZ3M6IFtdLFxyXG4gICAgICB9O1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlJZCA9IGNhdGVnb3J5X2Fyci5tYXAoXHJcbiAgICAgIChjYXRlZ29yeTogYW55KSA9PiBjYXRlZ29yeT8uY2FsX2NhdGVnb3J5X2lkXHJcbiAgICApO1xyXG4gICAgdGhpcy5maWx0ZXJlZENhdGVnb3J5ID0gY2F0ZWdvcnlEZXRhaWxzO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VGb3JtKCkge1xyXG4gICAgdGhpcy5zYXZlQXBwcm92YWxXb3JrZmxvdy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBkZXNlbGVjdFVzZXIoYXBwcm92ZXI6IGFueSwgaW5kZXg6IGFueSkge1xyXG4gICAgY29uc3QgcmVtb3ZlSW5kZXggPSB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzW2luZGV4XT8uYXBwcm92ZXJzLmZpbmRJbmRleChcclxuICAgICAgKGVsZTogYW55KSA9PiBlbGU/Lm1lbWJlcl9pZCA9PT0gYXBwcm92ZXI/Lm1lbWJlcl9pZFxyXG4gICAgKTtcclxuICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3NbaW5kZXhdPy5hcHByb3ZlcnMuc3BsaWNlKHJlbW92ZUluZGV4LCAxKTtcclxuICAgIHRoaXMuYXBwcm92YWxXb3JrZmxvd3MgPSB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzLmZpbHRlcihcclxuICAgICAgKHdvcmtmbG93OiBhbnkpID0+IHdvcmtmbG93LmFwcHJvdmVycz8ubGVuZ3RoXHJcbiAgICApO1xyXG4gICAgdGhpcy5sZXZlbHMgPSB0aGlzLmFwcHJvdmFsV29ya2Zsb3dzPy5sZW5ndGggKyAxO1xyXG4gIH1cclxuXHJcbiAgYXBwcm92YWxOYW1lU2VsZWN0aW9uKHR5cGU6IGFueSwgZXZlbnQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuYXBwcm92YWxOYW1lID0gZXZlbnQgPyB0eXBlIDogJyc7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJhcHByb3ZhbC13b3JrZmxvdy1kaWFsb2dcIiAqbmdJZj1cIiFlbmFibGVBcHByb3ZhbExldmVsICYmICFlbmFibGVQb2xpY3lDYXRlZ29yeVwiPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiYXBwcm92YWwtd29ya2Zsb3ctZGlhbG9nLWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlxyXG4gICAgICA8YnV0dG9uIChjbGljayk9XCJjbG9zZUNyZWF0ZUZvcm0oKVwiIGNsYXNzPVwiYmFjay1idG4gdngtcC0wIHZ4LW0tMFwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtbXItMVwiPiYjeGU5MWQ7PC9pPjwvYnV0dG9uXHJcbiAgICAgID5TZWxlY3QgQXBwcm92YWwgV29ya2Zsb3dcclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhcHByb3ZhbC13b3JrZmxvdy1kaWFsb2ctYm9keVwiPlxyXG4gICAgPGFwcC1uby1kYXRhXHJcbiAgICAgICpuZ0lmPVwiIWFwcHJvdmVyV29ya0Zsb3dMaXN0Lmxlbmd0aCAmJiAhZW5hYmxlQXBwcm92YWxDcmVhdGVcIlxyXG4gICAgICBbbm9EYXRhSW1hZ2VdPVwiXHJcbiAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hcHByb3ZhbC13b3JrZmxvdy5zdmcnXHJcbiAgICAgIFwiXHJcbiAgICAgIFtub0RhdGFUZXh0XT1cIlxyXG4gICAgICAgICdZb3UgZGlkIG5vdCBzZXQgYW55IGFwcHJvdmFsIHdvcmtmbG93Ljxicj5DbGljayBvbiB0aGUgPHN0cm9uZz5DcmVhdGUgQW4gQXBwcm92YWwgV29ya2Zsb3c8L3N0cm9uZz4gYnV0dG9uIHRvIGJlZ2luLidcclxuICAgICAgXCJcclxuICAgICAgW25vRGF0YUJ1dHRvbl09XCInQ1JFQVRFIEFOIEFQUFJPVkFMIFdPUktGTE9XJ1wiXHJcbiAgICAgIFtidXR0b25dPVwiJ2FwcHJvdmFsJ1wiXHJcbiAgICAgIChidXR0b25BY3Rpb24pPVwiY3JlYXRlQXBwcm92YWxBY3Rpb24oJGV2ZW50KVwiXHJcbiAgICA+PC9hcHAtbm8tZGF0YT5cclxuXHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiZW5hYmxlQXBwcm92YWxDcmVhdGUgfHwgZW5hYmxlQ3JlYXRlRm9ybVwiXHJcbiAgICAgIGNsYXNzPVwiYXBwcm92YWwtd29ya2Zsb3ctZGlhbG9nLWJvZHktaW5uZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcHByb3ZhbC13b3JrZmxvdy1mb3JtXCI+XHJcbiAgICAgICAgPCEtLSBXb3JrZmxvdyBOYW1lIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhcHByb3ZhbC13b3JrZmxvdy1mb3JtLXJvdyB2eC1tYi01XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1sZWZ0XCI+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hhdC5zdmdcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1yaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJsYWJlbC1oZWFkaW5nIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2UgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTJcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgV09SS0ZMT1cgTkFNRSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkIHZ4LWZzLTE0IHZ4LWZ3LTUwMFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aW5wdXQgKm5nSWY9XCIhd29ya2Zsb3dOYW1lPy5sZW5ndGggfHwgYXBwcm92YWxOYW1lID09PSAnbmFtZSdcIlxyXG4gICAgICAgICAgICAgIChrZXlkb3duKT1cImFwcHJvdmFsTmFtZSA9ICduYW1lJ1wiXHJcbiAgICAgICAgICAgICAgKGZvY3VzaW4pPVwiYXBwcm92YWxOYW1lU2VsZWN0aW9uKCduYW1lJyx0cnVlKVwiXHJcbiAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cImFwcHJvdmFsTmFtZVNlbGVjdGlvbignbmFtZScsZmFsc2UpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInRleHRGaWVsZFwiXHJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwid29ya2Zsb3dOYW1lXCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk5hbWUgb2YgdGhlIGFwcHJvdmFsIHdvcmtmbG93XCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIndvcmtmbG93TmFtZT8ubGVuZ3RoICYmIGFwcHJvdmFsTmFtZSAhPT0gJ25hbWUnXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdEJveFN1Y2Nlc3MgdngtcGwtMiB2eC1wci0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0Qm94VGV4dCB2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0XCIgW2FwcFRvb2x0aXBdPVwid29ya2Zsb3dOYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgICAge3t3b3JrZmxvd05hbWV9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFwcHJvdmFsTmFtZVNlbGVjdGlvbignbmFtZScsIHRydWUpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWRpdEJ0biB2eC1mcy0xMSB2eC1mdy02MDAgdngtdHh0LWJsdWUgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTkwYzs8L2k+IEVESVRcclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgPHZjb21wbHktZWRpdG9yXHJcbiAgICAgICAgICAgICAgICBbZWRpdG9yQ29uZmlnXT1cImRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3JlYXRlRGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgID48L3Zjb21wbHktZWRpdG9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIFBvbGljeSBDYXRlZ29yeSAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwcm92YWwtd29ya2Zsb3ctZm9ybS1yb3cgdngtbWItNVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tbGVmdFwiPlxyXG4gICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NhdGVnb3J5LnN2Z1wiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImxhYmVsLWhlYWRpbmcgdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC10dC11cHBlcmNhc2UgdngtbWItMlwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICBTRUxFQ1QgUE9MSUNZIENBVEVHT1JZXHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZCB2eC1mcy0xNCB2eC1mdy01MDBcIj4qPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZmlsdGVyZWRDYXRlZ29yeT8ubGVuZ3RoID09PSAwXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZW5hYmxlQ2F0ZWdvcnkodHJ1ZSlcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0Qm94RW5hYmxlIHZ4LXBsLTMgdngtcHItMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3RCb3hQbGFjZWhvZGVyIHZ4LWZzLTEzIHZ4LXBhcmFncmFwaC10eHQgdngtbGgtNFwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgU2VsZWN0IHRoZSBwb2xpY3kgY2F0ZWdvcnkgdGhhdCB0aGlzIGFwcHJvdmFsPGJyIC8+d29ya2Zsb3dcclxuICAgICAgICAgICAgICAgIGFwcGxpZXMgdG9cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJmaWx0ZXJlZENhdGVnb3J5Py5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdEJveFN1Y2Nlc3MgdngtcGwtMiB2eC1wci0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTEgdngtcHItMlwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgICBsZXQgY2F0ZWdvcnkgb2YgZmlsdGVyZWRDYXRlZ29yeSB8IHNsaWNlIDogMCA6IDE7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNhdEluZGV4ID0gaW5kZXhcclxuICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlQ2F0ZWdvcnkoY2F0ZWdvcnkpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiY2F0ZWdvcnk/Lml0ZW1fbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPnt7IGNhdGVnb3J5Py5pdGVtX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsdGVyZWRDYXRlZ29yeT8ubGVuZ3RoID4gMVwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXHJcbiAgICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInBvbGljeU93bmVyUG9wb3Zlci5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICt7eyBmaWx0ZXJlZENhdGVnb3J5Py5sZW5ndGggLSAxIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI3BvbGljeU93bmVyUG9wb3ZlciBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIGZpbHRlcmVkQ2F0ZWdvcnkgfCBzbGljZSA6IDFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImNhdGVnb3J5Py5pdGVtX25hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKGNsaWNrKT1cInJlbW92ZUNhdGVnb3J5KGNhdGVnb3J5KVwiIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNhdGVnb3J5Py5pdGVtX25hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgZmlsdGVyZWRDYXRlZ29yeVxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImVuYWJsZUNhdGVnb3J5KHRydWUpXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWRpdEJ0biB2eC1mcy0xMSB2eC1mdy02MDAgdngtdHh0LWJsdWUgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTkwYzs8L2k+IEVESVRcclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBBcHByb3ZhbCBXb3JrZmxvdyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwcm92YWwtd29ya2Zsb3ctZm9ybS1yb3cgdngtbWItNVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tbGVmdFwiPlxyXG4gICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2FwcHJvdmFsLnN2Z1wiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImxhYmVsLWhlYWRpbmcgdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSB2eC10dC11cHBlcmNhc2UgdngtbWItMlwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICBBUFBST1ZFUlMgJiBBUFBST1ZBTCBXT1JLRkxPV1xyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQgdngtZnMtMTQgdngtZnctNTAwXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAqbmdJZj1cImFwcHJvdmFsV29ya2Zsb3dzPy5sZW5ndGggPT09IDBcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJhZGRMZXZlbHNDbGlja2VkKHRydWUpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInNlbGVjdEJveEVuYWJsZSB2eC1wbC0zIHZ4LXByLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0Qm94UGxhY2Vob2RlciB2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0IHZ4LWxoLTRcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIFNlbGVjdCBhcHByb3ZlcnMgYW5kIHNlbGVjdCB0aGUgb3JkZXIgb2YgYXBwcm92YWxcclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhcHByb3ZhbFdvcmtmbG93cz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICBsZXQgYXBwcm92YWxXb3JrZmxvdyBvZiBhcHByb3ZhbFdvcmtmbG93cztcclxuICAgICAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleFxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0Qm94U3VjY2VzcyB2eC1wbC0yIHZ4LXByLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtbWItMlwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxldmVsLWxlZnQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWJsb2NrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGV2ZWwtbmFtZSB2eC1mcy05IHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1saC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiYXBwcm92YWxXb3JrZmxvdz8uYWxpYXNfbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBhcHByb3ZhbFdvcmtmbG93Py5hbGlhc19uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1mcy05IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LWxoLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIHt7IGFwcHJvdmFsV29ya2Zsb3c/LnR5cGUgfX0gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7KGFwcHJvdmFsV29ya2Zsb3c/LnR5cGUgfCBsb3dlcmNhc2UpID09PSBcInJvdW5kcm9iaW5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiUk9VTkQtUk9CSU5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IChhcHByb3ZhbFdvcmtmbG93Py50eXBlIHwgbG93ZXJjYXNlKSA9PT0gXCJhbnlvbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiQU5ZIE9ORVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYXBwcm92YWxXb3JrZmxvdz8udHlwZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0xIHZ4LXByLTIgdngtbWwtMlwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8aSAoY2xpY2spPVwiZGVzZWxlY3RVc2VyKGFwcHJvdmFsV29ya2Zsb3c/LmFwcHJvdmVyc1swXSxpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsV29ya2Zsb3c/LnR5cGU/LnRvTG93ZXJDYXNlKCkgPT09ICdzZXF1ZW50aWFsJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcHJvdmFsV29ya2Zsb3c/LmFwcHJvdmVycz8ubGVuZ3RoIDwgMlxyXG4gICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3b3JrZmxvd0xhdmVsIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wbC0xIHZ4LXByLTEgdngtbGgtNCB2eC1tci0xIHZ4LXRleHQtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgIDEgPT0gYXBwcm92YWxXb3JrZmxvdz8uYXBwcm92ZXJzPy5sZW5ndGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIkZpbmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgOiAxXHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhcHByb3ZhbFdvcmtmbG93Py5hcHByb3ZlcnM/Lmxlbmd0aCA+IDEgJiYgYXBwcm92YWxXb3JrZmxvdz8udHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gJ3NlcXVlbnRpYWwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid29ya2Zsb3dMYXZlbCB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGwtMSB2eC1wci0xIHZ4LWxoLTQgdngtbXItMSB2eC10ZXh0LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgMVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJhcHByb3ZhbFdvcmtmbG93Py5hcHByb3ZlcnNbMF0/Lm1lbWJlcl9uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPnt7IGFwcHJvdmFsV29ya2Zsb3c/LmFwcHJvdmVyc1swXT8ubWVtYmVyX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhcHByb3ZhbFdvcmtmbG93Py5hcHByb3ZlcnM/Lmxlbmd0aCA+IDFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ3b3JrZmxvd1BvcG92ZXIucG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICArIHt7IGFwcHJvdmFsV29ya2Zsb3c/LmFwcHJvdmVycz8ubGVuZ3RoIC0gMSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICN3b3JrZmxvd1BvcG92ZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBwcm92ZXIgb2YgYXBwcm92YWxXb3JrZmxvdz8uYXBwcm92ZXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2xpY2UgOiAxO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGogPSBpbmRleFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJhcHByb3Zlcj8ubWVtYmVyX25hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKGNsaWNrKT1cImRlc2VsZWN0VXNlcihhcHByb3ZlcixpKVwiICBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiYXBwcm92YWxXb3JrZmxvdz8udHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gJ3NlcXVlbnRpYWwnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIndvcmtmbG93TGF2ZWwgdngtZnMtMTEgdngtZnctNTAwIHZ4LXBsLTEgdngtcHItMSB2eC1saC00IHZ4LW1yLTEgdngtdGV4dC1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaisxID09PVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92YWxXb3JrZmxvdz8uYXBwcm92ZXJzPy5sZW5ndGggLSAxXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJGaW5hbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaiArIDJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fTwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFwcHJvdmVyPy5tZW1iZXJfbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdEFwcHJvdmFsKGFwcHJvdmFsV29ya2Zsb3csIGkpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVkaXRCdG4gdngtZnMtMTEgdngtZnctNjAwIHZ4LXR4dC1ibHVlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTkwYzs8L2k+IEVESVRcclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlTGV2ZWwoaSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGVsZXRlQnRuIHZ4LWZzLTExIHZ4LWZ3LTYwMCB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC1tbC00IHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCI+JiN4ZTlhZTs8L2k+IERFTEVURVxyXG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAqbmdJZj1cImFwcHJvdmFsV29ya2Zsb3dzPy5sZW5ndGggPiAwXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkTGV2ZWxzQ2xpY2tlZCh0cnVlKVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhZGRNb3JlQnRuIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10eHQtYmx1ZSB2eC10dC11cHBlcmNhc2UgdngtcC0wIHZ4LW0tMCB2eC1tdC0xXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICsgQUREIE1PUkUgTEVWRUxTXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHZ1aS1mbG9hdGluZy1iYXJcclxuICAgICAgKm5nSWY9XCJlbmFibGVBcHByb3ZhbENyZWF0ZSB8fCBlbmFibGVDcmVhdGVGb3JtXCJcclxuICAgICAgW25leHREaXNhYmxlZF09XCJcclxuICAgICAgICB3b3JrZmxvd05hbWU/LnRyaW0oKSA9PT0gJycgfHxcclxuICAgICAgICBhcHByb3ZhbFdvcmtmbG93cz8ubGVuZ3RoID09PSAwIHx8XHJcbiAgICAgICAgZmlsdGVyZWRDYXRlZ29yeT8ubGVuZ3RoID09PSAwXHJcbiAgICAgIFwiXHJcbiAgICAgIChjbG9zZUxpc3QpPVwiY2xvc2VDcmVhdGVGb3JtKClcIlxyXG4gICAgICAoY2xvc2VFdmVudCk9XCJuZXh0Q2xpY2soKVwiXHJcbiAgICA+PC92dWktZmxvYXRpbmctYmFyPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gW3NlbGVjdGVkSXRlbXNdPVwicG9saWN5Rm9ybS5zZWxlY3RlZENhdGVnb3JpZXNcIiAtLT5cclxuXHJcbjxhcHAtc2VsZWN0LWFwcHJvdmVyc1xyXG4gICpuZ0lmPVwiZW5hYmxlQXBwcm92YWxMZXZlbFwiXHJcbiAgW2FsbEFwcHJvdmVyc109XCJhbGxBcHByb3ZlcnNcIlxyXG4gIChjbG9zZVNlbGVjdEFwcHJvdmVyKT1cImNsb3NlU2VsZWN0QXBwcm92ZXIoKVwiXHJcbiAgKHNlbGVjdGVkQXBwcm92ZXIpPVwic2VsZWN0ZWRBcHByb3ZlcigkZXZlbnQpXCJcclxuICBbbGV2ZWxzXT1cImxldmVsc1wiXHJcbiAgW2VkaXRBcHByb3ZhbERhdGFdPVwiZWRpdEFwcHJvdmFsRGF0YVwiXHJcbj48L2FwcC1zZWxlY3QtYXBwcm92ZXJzPlxyXG5cclxuPGFwcC1jaGVja2JveC1saXN0XHJcbiAgKm5nSWY9XCJlbmFibGVQb2xpY3lDYXRlZ29yeVwiXHJcbiAgW2NvbmZpZ109XCJjYXRlZ29yeUNvbmZpZ1wiXHJcbiAgW3R3b0NvbHVtbl09XCJmYWxzZVwiXHJcbiAgW2l0ZW1zTGlzdF09XCJzZWxlY3RlZENhdGVnb3J5XCJcclxuICBbaWRlbnRpZmllcktleV09XCInX2lkJ1wiXHJcbiAgW2Rpc3BsYXlLZXldPVwiJ2l0ZW1fbmFtZSdcIlxyXG4gIFt0b29sdGlwS2V5XT1cIidpdGVtX25hbWUnXCJcclxuICAoc2F2ZUxpc3QpPVwic2F2ZUNhdGVnb3J5TGlzdCgkZXZlbnQpXCJcclxuICAoY2xvc2VMaXN0KT1cImNsb3NlQ2F0ZWdvcnlMaXN0KClcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cImZpbHRlcmVkQ2F0ZWdvcnlcIlxyXG4+XHJcbjwvYXBwLWNoZWNrYm94LWxpc3Q+XHJcbiJdfQ==
@@ -18,14 +18,12 @@ export class ApprovalWorkflowListComponent {
18
18
  this.onApprovalEdit = new EventEmitter();
19
19
  }
20
20
  ngOnInit() {
21
- console.log('this.editApprovalWorkflow ==>', this.editApprovalWorkflow);
22
21
  this.selectedWorkflow = this.editApprovalWorkflow;
23
22
  if (this.editApprovalWorkflow) {
24
23
  this.isNextDisabled = false;
25
24
  }
26
25
  }
27
26
  ngOnChanges() {
28
- console.log('this.editApprovalWorkflow ==>', this.editApprovalWorkflow);
29
27
  this.selectedWorkflow = this.editApprovalWorkflow;
30
28
  }
31
29
  showDetails(id) {
@@ -38,13 +36,11 @@ export class ApprovalWorkflowListComponent {
38
36
  selectApproval(approval) {
39
37
  this.selectedWorkflow = approval;
40
38
  this.isNextDisabled = false;
41
- console.log('selectedWorkflow', approval);
42
39
  }
43
40
  cancelClicked() {
44
41
  this.listCancelClicked.emit(true);
45
42
  }
46
43
  nextClicked() {
47
- console.log('this.selectedWorkflow ==>', this.selectedWorkflow, this.approverWorkFlowList);
48
44
  this.selectedWorkflow = this.approverWorkFlowList.find((workflow) => workflow?._id === this.selectedWorkflow?._id);
49
45
  this.selectedWorkflowNext.emit(this.selectedWorkflow);
50
46
  }
@@ -74,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
74
70
  }], onApprovalEdit: [{
75
71
  type: Output
76
72
  }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtd29ya2Zsb3ctbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2FwcHJvdmFsLXdvcmtmbG93L2FwcHJvdmFsLXdvcmtmbG93LWxpc3QvYXBwcm92YWwtd29ya2Zsb3ctbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2FwcHJvdmFsLXdvcmtmbG93L2FwcHJvdmFsLXdvcmtmbG93LWxpc3QvYXBwcm92YWwtd29ya2Zsb3ctbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFPdkIsTUFBTSxPQUFPLDZCQUE2QjtJQWN4QztRQWJBLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFakIsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFLckIsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRS9CLENBQUM7SUFFaEIsUUFBUTtRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsK0JBQStCLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUNsRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ3BELENBQUM7SUFDRCxXQUFXLENBQUMsRUFBTztRQUNqQixJQUFJLENBQUMsV0FBVyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUN2QyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBYztRQUNoQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxjQUFjLENBQUMsUUFBYztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxDQUFDLEdBQUcsQ0FDVCwyQkFBMkIsRUFDM0IsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLENBQUMsb0JBQW9CLENBQzFCLENBQUM7UUFDRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FDcEQsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxHQUFHLEtBQUssSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FDaEUsQ0FBQztRQUNGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBcUI7UUFDMUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztJQUM3QixDQUFDOzswSEFsRVUsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsb1hDZDFDLDR2ZEErVUE7MkZEalVhLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSw0QkFBNEI7MEVBVTdCLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBRUkscUJBQXFCO3NCQUE5QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWFwcHJvdmFsLXdvcmtmbG93LWxpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC13b3JrZmxvdy1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hcHByb3ZhbC13b3JrZmxvdy1saXN0LmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHByb3ZhbFdvcmtmbG93TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBoaWRlRGV0YWlscyA9IGZhbHNlO1xyXG4gIG9wZW5JbmRleElkID0gLTE7XHJcbiAgc2VsZWN0ZWRXb3JrZmxvdyE6IGFueTtcclxuICBpc05leHREaXNhYmxlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIGFwcHJvdmVyV29ya0Zsb3dMaXN0ITogYW55O1xyXG4gIEBJbnB1dCgpIGVkaXRBcHByb3ZhbFdvcmtmbG93ITogYW55O1xyXG5cclxuICBAT3V0cHV0KCkgY3JlYXRlQXBwcm92YWxDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBsaXN0Q2FuY2VsQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRXb3JrZmxvd05leHQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uQXBwcm92YWxFZGl0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMuZWRpdEFwcHJvdmFsV29ya2Zsb3cgPT0+JywgdGhpcy5lZGl0QXBwcm92YWxXb3JrZmxvdyk7XHJcbiAgICB0aGlzLnNlbGVjdGVkV29ya2Zsb3cgPSB0aGlzLmVkaXRBcHByb3ZhbFdvcmtmbG93O1xyXG4gICAgaWYgKHRoaXMuZWRpdEFwcHJvdmFsV29ya2Zsb3cpIHtcclxuICAgICAgdGhpcy5pc05leHREaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICBjb25zb2xlLmxvZygndGhpcy5lZGl0QXBwcm92YWxXb3JrZmxvdyA9PT4nLCB0aGlzLmVkaXRBcHByb3ZhbFdvcmtmbG93KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRXb3JrZmxvdyA9IHRoaXMuZWRpdEFwcHJvdmFsV29ya2Zsb3c7XHJcbiAgfVxyXG4gIHNob3dEZXRhaWxzKGlkOiBhbnkpIHtcclxuICAgIHRoaXMub3BlbkluZGV4SWQgPT09IGlkID8gKHRoaXMub3BlbkluZGV4SWQgPSAtMSkgOiAodGhpcy5vcGVuSW5kZXhJZCA9IGlkKTtcclxuICAgIHRoaXMuaGlkZURldGFpbHMgPSAhdGhpcy5oaWRlRGV0YWlscztcclxuICB9XHJcblxyXG4gIGNyZWF0ZUFwcHJvdmFsQ2xpY2soZXZlbnQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuY3JlYXRlQXBwcm92YWxDbGlja2VkLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QXBwcm92YWwoYXBwcm92YWw/OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRXb3JrZmxvdyA9IGFwcHJvdmFsO1xyXG4gICAgdGhpcy5pc05leHREaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgY29uc29sZS5sb2coJ3NlbGVjdGVkV29ya2Zsb3cnLCBhcHByb3ZhbCk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWxDbGlja2VkKCkge1xyXG4gICAgdGhpcy5saXN0Q2FuY2VsQ2xpY2tlZC5lbWl0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgbmV4dENsaWNrZWQoKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcclxuICAgICAgJ3RoaXMuc2VsZWN0ZWRXb3JrZmxvdyA9PT4nLFxyXG4gICAgICB0aGlzLnNlbGVjdGVkV29ya2Zsb3csXHJcbiAgICAgIHRoaXMuYXBwcm92ZXJXb3JrRmxvd0xpc3RcclxuICAgICk7XHJcbiAgICB0aGlzLnNlbGVjdGVkV29ya2Zsb3cgPSB0aGlzLmFwcHJvdmVyV29ya0Zsb3dMaXN0LmZpbmQoXHJcbiAgICAgICh3b3JrZmxvdzogYW55KSA9PiB3b3JrZmxvdz8uX2lkID09PSB0aGlzLnNlbGVjdGVkV29ya2Zsb3c/Ll9pZFxyXG4gICAgKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRXb3JrZmxvd05leHQuZW1pdCh0aGlzLnNlbGVjdGVkV29ya2Zsb3cpO1xyXG4gIH1cclxuXHJcbiAgb25FZGl0KGFwcHJvdmVyV29ya2Zsb3c6IGFueSkge1xyXG4gICAgdGhpcy5vbkFwcHJvdmFsRWRpdC5lbWl0KEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYXBwcm92ZXJXb3JrZmxvdykpKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZVdvcmtmbG93KCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFdvcmtmbG93ID0gbnVsbDtcclxuICAgIHRoaXMuaXNOZXh0RGlzYWJsZWQgPSB0cnVlO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYXBwcm92YWwtd29ya2Zsb3ctbGlzdC1kaWFsb2dcIj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImFwcHJvdmFsLXdvcmtmbG93LWxpc3QtZGlhbG9nLWhlYWQgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtcGwtNCB2eC1wci00XCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNlbGVjdCBBcHByb3ZhbCBXb3JrZmxvdzwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhcHByb3ZhbC13b3JrZmxvdy1saXN0LWRpYWxvZy1ib2R5XCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwidHJ1ZVwiIGNsYXNzPVwiYXBwcm92YWwtd29ya2Zsb3ctbGlzdC1kaWFsb2ctYm9keS1pbm5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXBwcm92YWwtdGFibGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwcm92YWwtdGFibGUtaGVhZFwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFwcHJvdmFsLXRhYmxlLXJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhcHByb3ZhbC10YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR0LXVwcGVyY2FzZSBzZXJpYWxcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgI1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXBwcm92YWwtdGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2Ugd29ya2Zsb3dcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgQVBQUk9WQUwgV09SS0ZMT1dTXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNyZWF0ZUFwcHJvdmFsQ2xpY2sodHJ1ZSlcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY3JlYXRlLWFwcHJvdmFsLWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHh0LWJsdWUgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1tLTBcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgKyBDUkVBVEUgQSBORVcgQVBQUk9WQUwgV09SS0ZMT1dcclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwcm92YWwtdGFibGUtYm9keVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgYXBwcm92YWxXb3JrZmxvdyBvZiBhcHByb3ZlcldvcmtGbG93TGlzdDsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAoY2xpY2spPVwic2hvd0RldGFpbHMoYXBwcm92YWxXb3JrZmxvdz8uX2lkKVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhcHByb3ZhbC10YWJsZS1yb3cgY2xpY2thYmxlXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInNlbGVjdGVkV29ya2Zsb3c/Ll9pZCA9PT0gYXBwcm92YWxXb3JrZmxvdz8uX2lkXCJcclxuICAgICAgICAgICAgICBbY2xhc3Mub3Blbl09XCJhcHByb3ZhbFdvcmtmbG93Py5faWQgPT09IG9wZW5JbmRleElkXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHByb3ZhbC10YWJsZS1jb2x1bW4gc2VyaWFsXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3Itbm9cIlxyXG4gICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJpICsgMVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyBpICsgMSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvXHJcbiAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdGVkV29ya2Zsb3c/Ll9pZCA9PT0gYXBwcm92YWxXb3JrZmxvdz8uX2lkXCJcclxuICAgICAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZWxlY3RBcHByb3ZhbChhcHByb3ZhbFdvcmtmbG93KVwiXHJcbiAgICAgICAgICAgICAgICA+PC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwcHJvdmFsLXRhYmxlLWNvbHVtbiB3b3JrZmxvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hbWUgdngtZnMtMTIgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiYXBwcm92YWxXb3JrZmxvdz8ud29ya2Zsb3dfbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7eyBhcHByb3ZhbFdvcmtmbG93Py53b3JrZmxvd19uYW1lIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwcm92YWwtdGFibGUtY29sdW1uIGFjdGlvblwiIGFwcFN0b3BQcm9wYWdhdGlvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibW9yZUFjdGlvbi5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibW9yZS1hY3Rpb24gdngtZnMtMTYgdngtdHh0LWJsdWUgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MTE7PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI21vcmVBY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cIm9uRWRpdChhcHByb3ZhbFdvcmtmbG93KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBjOzwvaT4gRWRpdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxsaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyMzs8L2k+IERlbGV0ZTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9saT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHByb3ZhbC10YWJsZS1jb2x1bW4gYWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXJyb3cgdngtZnMtMTIgdngtcGFyYWdyYXBoLXR4dCB2eC1wLTAgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImFwcHJvdmFsV29ya2Zsb3c/Ll9pZCAhPT0gb3BlbkluZGV4SWRcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICA+JiN4ZTllODs8L2lcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImFwcHJvdmFsV29ya2Zsb3c/Ll9pZCA9PT0gb3BlbkluZGV4SWRcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICA+JiN4ZTllNzs8L2lcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhcHByb3ZhbFdvcmtmbG93Py5faWQgPT09IG9wZW5JbmRleElkXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImFwcHJvdmFsLXRhYmxlLWRldGFpbHNcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMtaXRlbSB2eC1tYi00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIFBPTElDWSBDQVRFR09SSUVTOlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTIgdngtbXItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgY2F0ZWdvcnkgb2YgYXBwcm92YWxXb3JrZmxvdz8uY2F0ZWdvcnlfYXJyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgc2xpY2UgOiAwIDogM1xyXG4gICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJjYXRlZ29yeT8uY2F0ZWdvcnlfbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7eyBjYXRlZ29yeT8uY2F0ZWdvcnlfbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYXBwcm92YWxXb3JrZmxvdz8uY2F0ZWdvcnlfYXJyPy5sZW5ndGggPiAzXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBQb3BvdmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNyaXRlcmlhQWN0aW9uLnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGV0YWlscy1jaGlwLWNvdW50IHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10eHQtYmx1ZSB2eC1wbC0xIHZ4LXByLTEgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgKyB7eyBhcHByb3ZhbFdvcmtmbG93Py5jYXRlZ29yeV9hcnI/Lmxlbmd0aCAtIDMgfX1cclxuICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtcG9wb3ZlciAjY3JpdGVyaWFBY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjYXRlZ29yeSBvZiBhcHByb3ZhbFdvcmtmbG93Py5jYXRlZ29yeV9hcnJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzbGljZSA6IDNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiY2F0ZWdvcnk/LmNhdGVnb3J5X25hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGNhdGVnb3J5Py5jYXRlZ29yeV9uYW1lIH19PC9zcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMtaXRlbSB2eC1tYi0xXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIEFQUFJPVkVSUzpcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgICBsZXQgYXBwcm92ZXJMZXZlbCBvZiBhcHByb3ZhbFdvcmtmbG93Py5hcHByb3ZhbF93b3JrZmxvdztcclxuICAgICAgICAgICAgICAgICAgICBsZXQgayA9IGluZGV4XHJcbiAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXBwcm92ZXItaXRlbSB2eC1tYi0yIHZ4LXBiLTIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYXZlbC1hcmVhIHZ4LXBsLTEgdngtcHItMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGF2ZWwtbmFtZSB2eC1mcy05IHZ4LWZ3LTUwMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1saC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZlckxldmVsPy5hbGlhc19uYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBhcHByb3ZlckxldmVsPy5hbGlhc19uYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhcHByb3ZlckxldmVsPy5sZXZlbDFcclxuICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZlckxldmVsPy5hbGlhc19uYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBhcHByb3ZlckxldmVsPy5hbGlhc19uYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhcHByb3ZlckxldmVsPy5sZXZlbDFcclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1mcy05IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LWxoLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChhcHByb3ZlckxldmVsPy50eXBlIHwgbG93ZXJjYXNlKSA9PT0gXCJyb3VuZHJvYmluXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiUk9VTkQtUk9CSU5cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogKGFwcHJvdmVyTGV2ZWw/LnR5cGUgfCBsb3dlcmNhc2UpID09PSBcImFueW9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIkFOWSBPTkVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogYXBwcm92ZXJMZXZlbD8udHlwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYXZlbC1jaGlwcyB2eC1kLWZsZXggdngtZmxleC13cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yIHZ4LW1yLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcHByb3ZlciBvZiBhcHByb3ZlckxldmVsPy5hcHByb3ZlcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNsaWNlIDogMCA6IDM7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcHByb3ZlckluZGV4ID0gaW5kZXhcclxuICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmVyTGV2ZWw/LnR5cGU/LnRvTG93ZXJDYXNlKCkgPT09ICdzZXF1ZW50aWFsJyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmVyTGV2ZWw/LmFwcHJvdmVycz8ubGVuZ3RoIDwgM1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIndvcmtmbG93TGF2ZWwgdngtZnMtMTEgdngtZnctNTAwIHZ4LXBsLTEgdngtcHItMSB2eC1saC00IHZ4LW1yLTEgdngtdGV4dC1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmVySW5kZXggPT0gYXBwcm92ZXJMZXZlbD8uYXBwcm92ZXJzPy5sZW5ndGggLSAxXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFwiRmluYWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhcHByb3ZlckluZGV4ICsgMVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92ZXJMZXZlbD8uYXBwcm92ZXJzPy5sZW5ndGggPiAzICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92ZXJMZXZlbD8udHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gJ3NlcXVlbnRpYWwnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid29ya2Zsb3dMYXZlbCB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGwtMSB2eC1wci0xIHZ4LWxoLTQgdngtbXItMSB2eC10ZXh0LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFwcHJvdmVySW5kZXggKyAxIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJhcHByb3Zlcj8ubWVtYmVyX25hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgYXBwcm92ZXI/Lm1lbWJlcl9uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFwcHJvdmVyTGV2ZWw/LmFwcHJvdmVycz8ubGVuZ3RoID4gM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhcHBQb3BvdmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYXBwcm92ZXJzQWN0aW9uLnBvcG92ZXIoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRldGFpbHMtY2hpcC1jb3VudCB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHh0LWJsdWUgdngtcGwtMSB2eC1wci0xIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICArIHt7IGFwcHJvdmVyTGV2ZWw/LmFwcHJvdmVycz8ubGVuZ3RoIC0gMyB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtcG9wb3ZlciAjYXBwcm92ZXJzQWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFwcHJvdmVyIG9mIGFwcHJvdmVyTGV2ZWw/LmFwcHJvdmVyc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2xpY2UgOiAzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBwcm92ZXJJbmRleCA9IGluZGV4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmVyTGV2ZWw/LnR5cGU/LnRvTG93ZXJDYXNlKCkgPT09XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2VxdWVudGlhbCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwid29ya2Zsb3dMYXZlbCB2eC1mcy0xMSB2eC1mdy01MDAgdngtcGwtMSB2eC1wci0xIHZ4LWxoLTQgdngtbXItMSB2eC10ZXh0LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92ZXJJbmRleCArIDMgPT09XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZlckxldmVsPy5hcHByb3ZlcnM/Lmxlbmd0aCAtIDFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIkZpbmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhcHByb3ZlckluZGV4ICsgNFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImFwcHJvdmVyPy5tZW1iZXJfbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGFwcHJvdmVyPy5tZW1iZXJfbmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8dnVpLWZsb2F0aW5nLWJhclxyXG4gICAgICAoY2xvc2VMaXN0KT1cImNhbmNlbENsaWNrZWQoKVwiXHJcbiAgICAgIChjbG9zZUV2ZW50KT1cIm5leHRDbGlja2VkKClcIlxyXG4gICAgICBbbmV4dERpc2FibGVkXT1cImlzTmV4dERpc2FibGVkXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkV29ya2Zsb3dcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTIgdngtbXItMlwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGlcclxuICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlV29ya2Zsb3coKVwiXHJcbiAgICAgICAgICAgID4mI3hlOWFlOzwvaVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIj5cclxuICAgICAgICAgICAge3sgc2VsZWN0ZWRXb3JrZmxvdz8ud29ya2Zsb3dfbmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvdnVpLWZsb2F0aW5nLWJhcj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtd29ya2Zsb3ctbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2FwcHJvdmFsLXdvcmtmbG93L2FwcHJvdmFsLXdvcmtmbG93LWxpc3QvYXBwcm92YWwtd29ya2Zsb3ctbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2FwcHJvdmFsLXdvcmtmbG93L2FwcHJvdmFsLXdvcmtmbG93LWxpc3QvYXBwcm92YWwtd29ya2Zsb3ctbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFPdkIsTUFBTSxPQUFPLDZCQUE2QjtJQWN4QztRQWJBLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFakIsbUJBQWMsR0FBWSxJQUFJLENBQUM7UUFLckIsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUMsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRS9CLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDbEQsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDcEQsQ0FBQztJQUNELFdBQVcsQ0FBQyxFQUFPO1FBQ2pCLElBQUksQ0FBQyxXQUFXLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFjO1FBQ2hDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGNBQWMsQ0FBQyxRQUFjO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQ3BELENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQ2hFLENBQUM7UUFDRixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxNQUFNLENBQUMsZ0JBQXFCO1FBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDN0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDN0IsQ0FBQzs7MEhBMURVLDZCQUE2Qjs4R0FBN0IsNkJBQTZCLG9YQ2QxQyw0dmRBK1VBOzJGRGpVYSw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UsNEJBQTRCOzBFQVU3QixvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVJLHFCQUFxQjtzQkFBOUIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hcHByb3ZhbC13b3JrZmxvdy1saXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXBwcm92YWwtd29ya2Zsb3ctbGlzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXBwcm92YWwtd29ya2Zsb3ctbGlzdC5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwcm92YWxXb3JrZmxvd0xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgaGlkZURldGFpbHMgPSBmYWxzZTtcclxuICBvcGVuSW5kZXhJZCA9IC0xO1xyXG4gIHNlbGVjdGVkV29ya2Zsb3chOiBhbnk7XHJcbiAgaXNOZXh0RGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBhcHByb3ZlcldvcmtGbG93TGlzdCE6IGFueTtcclxuICBASW5wdXQoKSBlZGl0QXBwcm92YWxXb3JrZmxvdyE6IGFueTtcclxuXHJcbiAgQE91dHB1dCgpIGNyZWF0ZUFwcHJvdmFsQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbGlzdENhbmNlbENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkV29ya2Zsb3dOZXh0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBvbkFwcHJvdmFsRWRpdCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRXb3JrZmxvdyA9IHRoaXMuZWRpdEFwcHJvdmFsV29ya2Zsb3c7XHJcbiAgICBpZiAodGhpcy5lZGl0QXBwcm92YWxXb3JrZmxvdykge1xyXG4gICAgICB0aGlzLmlzTmV4dERpc2FibGVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRXb3JrZmxvdyA9IHRoaXMuZWRpdEFwcHJvdmFsV29ya2Zsb3c7XHJcbiAgfVxyXG4gIHNob3dEZXRhaWxzKGlkOiBhbnkpIHtcclxuICAgIHRoaXMub3BlbkluZGV4SWQgPT09IGlkID8gKHRoaXMub3BlbkluZGV4SWQgPSAtMSkgOiAodGhpcy5vcGVuSW5kZXhJZCA9IGlkKTtcclxuICAgIHRoaXMuaGlkZURldGFpbHMgPSAhdGhpcy5oaWRlRGV0YWlscztcclxuICB9XHJcblxyXG4gIGNyZWF0ZUFwcHJvdmFsQ2xpY2soZXZlbnQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuY3JlYXRlQXBwcm92YWxDbGlja2VkLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0QXBwcm92YWwoYXBwcm92YWw/OiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRXb3JrZmxvdyA9IGFwcHJvdmFsO1xyXG4gICAgdGhpcy5pc05leHREaXNhYmxlZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsQ2xpY2tlZCgpIHtcclxuICAgIHRoaXMubGlzdENhbmNlbENsaWNrZWQuZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIG5leHRDbGlja2VkKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFdvcmtmbG93ID0gdGhpcy5hcHByb3ZlcldvcmtGbG93TGlzdC5maW5kKFxyXG4gICAgICAod29ya2Zsb3c6IGFueSkgPT4gd29ya2Zsb3c/Ll9pZCA9PT0gdGhpcy5zZWxlY3RlZFdvcmtmbG93Py5faWRcclxuICAgICk7XHJcbiAgICB0aGlzLnNlbGVjdGVkV29ya2Zsb3dOZXh0LmVtaXQodGhpcy5zZWxlY3RlZFdvcmtmbG93KTtcclxuICB9XHJcblxyXG4gIG9uRWRpdChhcHByb3ZlcldvcmtmbG93OiBhbnkpIHtcclxuICAgIHRoaXMub25BcHByb3ZhbEVkaXQuZW1pdChKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGFwcHJvdmVyV29ya2Zsb3cpKSk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVXb3JrZmxvdygpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRXb3JrZmxvdyA9IG51bGw7XHJcbiAgICB0aGlzLmlzTmV4dERpc2FibGVkID0gdHJ1ZTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImFwcHJvdmFsLXdvcmtmbG93LWxpc3QtZGlhbG9nXCI+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJhcHByb3ZhbC13b3JrZmxvdy1saXN0LWRpYWxvZy1oZWFkIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXBsLTQgdngtcHItNFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5TZWxlY3QgQXBwcm92YWwgV29ya2Zsb3c8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiYXBwcm92YWwtd29ya2Zsb3ctbGlzdC1kaWFsb2ctYm9keVwiPlxyXG4gICAgPGRpdiAqbmdJZj1cInRydWVcIiBjbGFzcz1cImFwcHJvdmFsLXdvcmtmbG93LWxpc3QtZGlhbG9nLWJvZHktaW5uZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFwcHJvdmFsLXRhYmxlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFwcHJvdmFsLXRhYmxlLWhlYWRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHByb3ZhbC10YWJsZS1yb3dcIj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXBwcm92YWwtdGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10dC11cHBlcmNhc2Ugc2VyaWFsXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICNcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImFwcHJvdmFsLXRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHQtdXBwZXJjYXNlIHdvcmtmbG93XCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIEFQUFJPVkFMIFdPUktGTE9XU1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjcmVhdGVBcHByb3ZhbENsaWNrKHRydWUpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImNyZWF0ZS1hcHByb3ZhbC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC1ibHVlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtbS0wXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICsgQ1JFQVRFIEEgTkVXIEFQUFJPVkFMIFdPUktGTE9XXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFwcHJvdmFsLXRhYmxlLWJvZHlcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFwcHJvdmFsV29ya2Zsb3cgb2YgYXBwcm92ZXJXb3JrRmxvd0xpc3Q7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dEZXRhaWxzKGFwcHJvdmFsV29ya2Zsb3c/Ll9pZClcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYXBwcm92YWwtdGFibGUtcm93IGNsaWNrYWJsZVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJzZWxlY3RlZFdvcmtmbG93Py5faWQgPT09IGFwcHJvdmFsV29ya2Zsb3c/Ll9pZFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLm9wZW5dPVwiYXBwcm92YWxXb3JrZmxvdz8uX2lkID09PSBvcGVuSW5kZXhJZFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwcm92YWwtdGFibGUtY29sdW1uIHNlcmlhbFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInNyLW5vXCJcclxuICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiaSArIDFcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgaSArIDEgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpb1xyXG4gICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJzZWxlY3RlZFdvcmtmbG93Py5faWQgPT09IGFwcHJvdmFsV29ya2Zsb3c/Ll9pZFwiXHJcbiAgICAgICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2VsZWN0QXBwcm92YWwoYXBwcm92YWxXb3JrZmxvdylcIlxyXG4gICAgICAgICAgICAgICAgPjwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHByb3ZhbC10YWJsZS1jb2x1bW4gd29ya2Zsb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYW1lIHZ4LWZzLTEyIHZ4LWxhYmVsLXR4dFwiXHJcbiAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImFwcHJvdmFsV29ya2Zsb3c/LndvcmtmbG93X25hbWVcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXHJcbiAgICAgICAgICAgICAgICAgIGRlbGF5PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3sgYXBwcm92YWxXb3JrZmxvdz8ud29ya2Zsb3dfbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFwcHJvdmFsLXRhYmxlLWNvbHVtbiBhY3Rpb25cIiBhcHBTdG9wUHJvcGFnYXRpb24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1vcmVBY3Rpb24ucG9wb3ZlcigpXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1vcmUtYWN0aW9uIHZ4LWZzLTE2IHZ4LXR4dC1ibHVlIHZ4LXAtMCB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTExOzwvaT5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNtb3JlQWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvbkVkaXQoYXBwcm92YWxXb3JrZmxvdylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwYzs8L2k+IEVkaXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MjM7PC9pPiBEZWxldGU8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbGk+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXBwcm92YWwtdGFibGUtY29sdW1uIGFjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImFycm93IHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtcC0wIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJhcHByb3ZhbFdvcmtmbG93Py5faWQgIT09IG9wZW5JbmRleElkXCIgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5ZTg7PC9pXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJhcHByb3ZhbFdvcmtmbG93Py5faWQgPT09IG9wZW5JbmRleElkXCIgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgPiYjeGU5ZTc7PC9pXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiYXBwcm92YWxXb3JrZmxvdz8uX2lkID09PSBvcGVuSW5kZXhJZFwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhcHByb3ZhbC10YWJsZS1kZXRhaWxzXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzLWl0ZW0gdngtbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICBQT0xJQ1kgQ0FURUdPUklFUzpcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yIHZ4LW1yLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IGNhdGVnb3J5IG9mIGFwcHJvdmFsV29ya2Zsb3c/LmNhdGVnb3J5X2FyclxyXG4gICAgICAgICAgICAgICAgICAgICAgICB8IHNsaWNlIDogMCA6IDNcclxuICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiY2F0ZWdvcnk/LmNhdGVnb3J5X25hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3sgY2F0ZWdvcnk/LmNhdGVnb3J5X25hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFwcHJvdmFsV29ya2Zsb3c/LmNhdGVnb3J5X2Fycj8ubGVuZ3RoID4gM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjcml0ZXJpYUFjdGlvbi5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImRldGFpbHMtY2hpcC1jb3VudCB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHh0LWJsdWUgdngtcGwtMSB2eC1wci0xIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICsge3sgYXBwcm92YWxXb3JrZmxvdz8uY2F0ZWdvcnlfYXJyPy5sZW5ndGggLSAzIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI2NyaXRlcmlhQWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY2F0ZWdvcnkgb2YgYXBwcm92YWxXb3JrZmxvdz8uY2F0ZWdvcnlfYXJyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2xpY2UgOiAzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImNhdGVnb3J5Py5jYXRlZ29yeV9uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBjYXRlZ29yeT8uY2F0ZWdvcnlfbmFtZSB9fTwvc3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzLWl0ZW0gdngtbWItMVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICBBUFBST1ZFUlM6XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGFwcHJvdmVyTGV2ZWwgb2YgYXBwcm92YWxXb3JrZmxvdz8uYXBwcm92YWxfd29ya2Zsb3c7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IGsgPSBpbmRleFxyXG4gICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImFwcHJvdmVyLWl0ZW0gdngtbWItMiB2eC1wYi0yIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGF2ZWwtYXJlYSB2eC1wbC0xIHZ4LXByLTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxhdmVsLW5hbWUgdngtZnMtOSB2eC1mdy01MDAgdngtcGFyYWdyYXBoLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbGgtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92ZXJMZXZlbD8uYWxpYXNfbmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gYXBwcm92ZXJMZXZlbD8uYWxpYXNfbmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogYXBwcm92ZXJMZXZlbD8ubGV2ZWwxXHJcbiAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92ZXJMZXZlbD8uYWxpYXNfbmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gYXBwcm92ZXJMZXZlbD8uYWxpYXNfbmFtZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogYXBwcm92ZXJMZXZlbD8ubGV2ZWwxXHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidngtZnMtOSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1saC0zXCJcclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAoYXBwcm92ZXJMZXZlbD8udHlwZSB8IGxvd2VyY2FzZSkgPT09IFwicm91bmRyb2JpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlJPVU5ELVJPQklOXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IChhcHByb3ZlckxldmVsPy50eXBlIHwgbG93ZXJjYXNlKSA9PT0gXCJhbnlvbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJBTlkgT05FXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA6IGFwcHJvdmVyTGV2ZWw/LnR5cGVcclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGF2ZWwtY2hpcHMgdngtZC1mbGV4IHZ4LWZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMiB2eC1tci0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBwcm92ZXIgb2YgYXBwcm92ZXJMZXZlbD8uYXBwcm92ZXJzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzbGljZSA6IDAgOiAzO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBwcm92ZXJJbmRleCA9IGluZGV4XHJcbiAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZlckxldmVsPy50eXBlPy50b0xvd2VyQ2FzZSgpID09PSAnc2VxdWVudGlhbCcgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZlckxldmVsPy5hcHByb3ZlcnM/Lmxlbmd0aCA8IDNcclxuICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3b3JrZmxvd0xhdmVsIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1wbC0xIHZ4LXByLTEgdngtbGgtNCB2eC1tci0xIHZ4LXRleHQtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZlckluZGV4ID09IGFwcHJvdmVyTGV2ZWw/LmFwcHJvdmVycz8ubGVuZ3RoIC0gMVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBcIkZpbmFsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYXBwcm92ZXJJbmRleCArIDFcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmVyTGV2ZWw/LmFwcHJvdmVycz8ubGVuZ3RoID4gMyAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmVyTGV2ZWw/LnR5cGU/LnRvTG93ZXJDYXNlKCkgPT09ICdzZXF1ZW50aWFsJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIndvcmtmbG93TGF2ZWwgdngtZnMtMTEgdngtZnctNTAwIHZ4LXBsLTEgdngtcHItMSB2eC1saC00IHZ4LW1yLTEgdngtdGV4dC1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBhcHByb3ZlckluZGV4ICsgMSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiYXBwcm92ZXI/Lm1lbWJlcl9uYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGFwcHJvdmVyPy5tZW1iZXJfbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhcHByb3ZlckxldmVsPy5hcHByb3ZlcnM/Lmxlbmd0aCA+IDNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgYXBwUG9wb3ZlclxyXG4gICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImFwcHJvdmVyc0FjdGlvbi5wb3BvdmVyKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkZXRhaWxzLWNoaXAtY291bnQgdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC1ibHVlIHZ4LXBsLTEgdngtcHItMSB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgKyB7eyBhcHByb3ZlckxldmVsPy5hcHByb3ZlcnM/Lmxlbmd0aCAtIDMgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI2FwcHJvdmVyc0FjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhcHByb3ZlciBvZiBhcHByb3ZlckxldmVsPy5hcHByb3ZlcnNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNsaWNlIDogMztcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFwcHJvdmVySW5kZXggPSBpbmRleFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHByb3ZlckxldmVsPy50eXBlPy50b0xvd2VyQ2FzZSgpID09PVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NlcXVlbnRpYWwnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIndvcmtmbG93TGF2ZWwgdngtZnMtMTEgdngtZnctNTAwIHZ4LXBsLTEgdngtcHItMSB2eC1saC00IHZ4LW1yLTEgdngtdGV4dC1jZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcHJvdmVySW5kZXggKyAzID09PVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwcm92ZXJMZXZlbD8uYXBwcm92ZXJzPy5sZW5ndGggLSAxXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJGaW5hbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYXBwcm92ZXJJbmRleCArIDRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJhcHByb3Zlcj8ubWVtYmVyX25hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxheT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyBhcHByb3Zlcj8ubWVtYmVyX25hbWUgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHZ1aS1mbG9hdGluZy1iYXJcclxuICAgICAgKGNsb3NlTGlzdCk9XCJjYW5jZWxDbGlja2VkKClcIlxyXG4gICAgICAoY2xvc2VFdmVudCk9XCJuZXh0Q2xpY2tlZCgpXCJcclxuICAgICAgW25leHREaXNhYmxlZF09XCJpc05leHREaXNhYmxlZFwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZFdvcmtmbG93XCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yIHZ4LW1yLTJcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVdvcmtmbG93KClcIlxyXG4gICAgICAgICAgICA+JiN4ZTlhZTs8L2lcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCI+XHJcbiAgICAgICAgICAgIHt7IHNlbGVjdGVkV29ya2Zsb3c/LndvcmtmbG93X25hbWUgfX08L3NwYW5cclxuICAgICAgICAgID5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3Z1aS1mbG9hdGluZy1iYXI+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -24,7 +24,6 @@ export class ApprovalWorkflowComponent {
24
24
  if (this.createApprovalClick) {
25
25
  this.enableCreateForm = true;
26
26
  }
27
- console.log('editWorkflowLevel', this.editWorkflowLevel, this.editApprovalWorkflow);
28
27
  if (this.editWorkflowLevel.editLevel) {
29
28
  this.enableCreateForm = true;
30
29
  }
@@ -33,20 +32,16 @@ export class ApprovalWorkflowComponent {
33
32
  this.hideDetails = !this.hideDetails;
34
33
  }
35
34
  createApprovalClicked(event) {
36
- console.log('this.enableCreateForm', event);
37
- console.log('approverWorkFlowList in output fn', this.approverWorkFlowList);
38
35
  this.enableCreateForm = event;
39
36
  }
40
37
  cancelClicked(event) {
41
38
  this.enableCreateForm = false;
42
- console.log('cancel clicked op in approval container', event);
43
39
  this.listCancelClicked.emit(event);
44
40
  }
45
41
  nextClicked(event) {
46
42
  this.selectedWorkflowNext.emit(event);
47
43
  }
48
44
  approvalWorkflowAPICalled(event) {
49
- console.log('this event was caled', event);
50
45
  this.enableCreateForm = false;
51
46
  this.saveApprovalWorkflow.emit(event);
52
47
  }
@@ -56,7 +51,6 @@ export class ApprovalWorkflowComponent {
56
51
  this.approverDetails = event;
57
52
  }
58
53
  closeCreateFormClicked() {
59
- console.log('close in approval workflow');
60
54
  this.closeCreateClicked.emit();
61
55
  }
62
56
  }
@@ -86,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
86
80
  }], closeCreateClicked: [{
87
81
  type: Output
88
82
  }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtd29ya2Zsb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9hcHByb3ZhbC13b3JrZmxvdy9hcHByb3ZhbC13b3JrZmxvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2FwcHJvdmFsLXdvcmtmbG93L2FwcHJvdmFsLXdvcmtmbG93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUS9FLE1BQU0sT0FBTyx5QkFBeUI7SUF5QnBDO1FBeEJBLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQU16Qix3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFHcEMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVsRCxnQkFBVyxHQUFpQjtZQUMxQixJQUFJLEVBQUUsT0FBTztZQUNiLFlBQVksRUFBRSxJQUFJO1lBQ2xCLElBQUksRUFBRSxJQUFJO1lBQ1YsV0FBVyxFQUFFLG1DQUFtQztTQUNqRCxDQUFDO1FBQ0YsU0FBSSxHQUFzQixRQUFRLENBQUM7SUFHcEIsQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztTQUM5QjtRQUNELE9BQU8sQ0FBQyxHQUFHLENBQ1QsbUJBQW1CLEVBQ25CLElBQUksQ0FBQyxpQkFBaUIsRUFDdEIsSUFBSSxDQUFDLG9CQUFvQixDQUMxQixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFjO1FBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQ0FBbUMsRUFBRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMseUNBQXlDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQVU7UUFDcEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQseUJBQXlCLENBQUMsS0FBVTtRQUNsQyxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQztRQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQzs7c0hBNUVVLHlCQUF5QjswR0FBekIseUJBQXlCLHdmQ1J0QywyOUJBcUJBOzJGRGJhLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSx1QkFBdUI7MEVBUXhCLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVkaXRvckNvbmZpZyB9IGZyb20gJ3Zjb21wbHktZWRpdG9yJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWFwcHJvdmFsLXdvcmtmbG93JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXBwcm92YWwtd29ya2Zsb3cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FwcHJvdmFsLXdvcmtmbG93LmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHByb3ZhbFdvcmtmbG93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBoaWRlRGV0YWlscyA9IGZhbHNlO1xyXG4gIGVuYWJsZUNyZWF0ZUZvcm06IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgYXBwcm92ZXJXb3JrRmxvd0xpc3QhOiBhbnk7XHJcbiAgQElucHV0KCkgYWxsQXBwcm92ZXJzITogYW55O1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkQ2F0ZWdvcnk6IGFueTtcclxuICBASW5wdXQoKSBlZGl0QXBwcm92YWxXb3JrZmxvdzogYW55O1xyXG4gIEBJbnB1dCgpIGNyZWF0ZUFwcHJvdmFsQ2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBlZGl0V29ya2Zsb3dMZXZlbCE6IGFueTtcclxuXHJcbiAgQE91dHB1dCgpIHNlbGVjdGVkV29ya2Zsb3dOZXh0ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBsaXN0Q2FuY2VsQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgc2F2ZUFwcHJvdmFsV29ya2Zsb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlQ3JlYXRlQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgZGVzY3JpcHRpb246IEVkaXRvckNvbmZpZyA9IHtcclxuICAgIG1vZGU6ICdwcmltZScsXHJcbiAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICBsaW5rOiB0cnVlLFxyXG4gICAgcGxhY2Vob2xkZXI6ICdBZGQgYSBkZXNjcmlwdGlvbiBmb3IgdGhpcyBwb2xpY3knLFxyXG4gIH07XHJcbiAgbW9kZTogJ0NSRUFURScgfCAnRURJVCcgPSAnQ1JFQVRFJztcclxuICBhcHByb3ZlckRldGFpbHM6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNyZWF0ZUFwcHJvdmFsQ2xpY2spIHtcclxuICAgICAgdGhpcy5lbmFibGVDcmVhdGVGb3JtID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAnZWRpdFdvcmtmbG93TGV2ZWwnLFxyXG4gICAgICB0aGlzLmVkaXRXb3JrZmxvd0xldmVsLFxyXG4gICAgICB0aGlzLmVkaXRBcHByb3ZhbFdvcmtmbG93XHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuZWRpdFdvcmtmbG93TGV2ZWwuZWRpdExldmVsKSB7XHJcbiAgICAgIHRoaXMuZW5hYmxlQ3JlYXRlRm9ybSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93RGV0YWlscygpIHtcclxuICAgIHRoaXMuaGlkZURldGFpbHMgPSAhdGhpcy5oaWRlRGV0YWlscztcclxuICB9XHJcblxyXG4gIGNyZWF0ZUFwcHJvdmFsQ2xpY2tlZChldmVudDogYm9vbGVhbikge1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMuZW5hYmxlQ3JlYXRlRm9ybScsIGV2ZW50KTtcclxuICAgIGNvbnNvbGUubG9nKCdhcHByb3ZlcldvcmtGbG93TGlzdCBpbiBvdXRwdXQgZm4nLCB0aGlzLmFwcHJvdmVyV29ya0Zsb3dMaXN0KTtcclxuICAgIHRoaXMuZW5hYmxlQ3JlYXRlRm9ybSA9IGV2ZW50O1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsQ2xpY2tlZChldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmVuYWJsZUNyZWF0ZUZvcm0gPSBmYWxzZTtcclxuICAgIGNvbnNvbGUubG9nKCdjYW5jZWwgY2xpY2tlZCBvcCBpbiBhcHByb3ZhbCBjb250YWluZXInLCBldmVudCk7XHJcbiAgICB0aGlzLmxpc3RDYW5jZWxDbGlja2VkLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgbmV4dENsaWNrZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFdvcmtmbG93TmV4dC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGFwcHJvdmFsV29ya2Zsb3dBUElDYWxsZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc29sZS5sb2coJ3RoaXMgZXZlbnQgd2FzIGNhbGVkJywgZXZlbnQpO1xyXG4gICAgdGhpcy5lbmFibGVDcmVhdGVGb3JtID0gZmFsc2U7XHJcbiAgICB0aGlzLnNhdmVBcHByb3ZhbFdvcmtmbG93LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25BcHByb3ZhbEVkaXQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5lbmFibGVDcmVhdGVGb3JtID0gdHJ1ZTtcclxuICAgIHRoaXMubW9kZSA9ICdFRElUJztcclxuICAgIHRoaXMuYXBwcm92ZXJEZXRhaWxzID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBjbG9zZUNyZWF0ZUZvcm1DbGlja2VkKCkge1xyXG4gICAgY29uc29sZS5sb2coJ2Nsb3NlIGluIGFwcHJvdmFsIHdvcmtmbG93Jyk7XHJcbiAgICB0aGlzLmNsb3NlQ3JlYXRlQ2xpY2tlZC5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxhcHAtYXBwcm92YWwtd29ya2Zsb3ctbGlzdFxyXG4gICpuZ0lmPVwiYXBwcm92ZXJXb3JrRmxvd0xpc3QubGVuZ3RoICYmICFlbmFibGVDcmVhdGVGb3JtXCJcclxuICBbYXBwcm92ZXJXb3JrRmxvd0xpc3RdPVwiYXBwcm92ZXJXb3JrRmxvd0xpc3RcIlxyXG4gIChjcmVhdGVBcHByb3ZhbENsaWNrZWQpPVwiY3JlYXRlQXBwcm92YWxDbGlja2VkKCRldmVudClcIlxyXG4gIChzZWxlY3RlZFdvcmtmbG93TmV4dCk9XCJuZXh0Q2xpY2tlZCgkZXZlbnQpXCJcclxuICAobGlzdENhbmNlbENsaWNrZWQpPVwiY2FuY2VsQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAob25BcHByb3ZhbEVkaXQpPVwib25BcHByb3ZhbEVkaXQoJGV2ZW50KVwiXHJcbiAgW2VkaXRBcHByb3ZhbFdvcmtmbG93XT1cImVkaXRBcHByb3ZhbFdvcmtmbG93XCJcclxuPjwvYXBwLWFwcHJvdmFsLXdvcmtmbG93LWxpc3Q+XHJcbjxhcHAtYXBwcm92YWwtY3JlYXRlLWZvcm1cclxuICAqbmdJZj1cIiFhcHByb3ZlcldvcmtGbG93TGlzdC5sZW5ndGggfHwgZW5hYmxlQ3JlYXRlRm9ybVwiXHJcbiAgW3NlbGVjdGVkQ2F0ZWdvcnldPVwic2VsZWN0ZWRDYXRlZ29yeVwiXHJcbiAgW2FwcHJvdmVyV29ya0Zsb3dMaXN0XT1cImFwcHJvdmVyV29ya0Zsb3dMaXN0XCJcclxuICBbZW5hYmxlQ3JlYXRlRm9ybV09XCJlbmFibGVDcmVhdGVGb3JtXCJcclxuICBbYWxsQXBwcm92ZXJzXT1cImFsbEFwcHJvdmVyc1wiXHJcbiAgW21vZGVdPVwibW9kZVwiXHJcbiAgW2FwcHJvdmVyRGV0YWlsc109XCJhcHByb3ZlckRldGFpbHNcIlxyXG4gIChzYXZlQXBwcm92YWxXb3JrZmxvdyk9XCJhcHByb3ZhbFdvcmtmbG93QVBJQ2FsbGVkKCRldmVudClcIlxyXG4gIChjbG9zZUNyZWF0ZUNsaWNrZWQpID0gY2xvc2VDcmVhdGVGb3JtQ2xpY2tlZCgpXHJcbiAgW2VkaXRXb3JrZmxvd0xldmVsXT1cImVkaXRXb3JrZmxvd0xldmVsXCJcclxuPjwvYXBwLWFwcHJvdmFsLWNyZWF0ZS1mb3JtPlxyXG4iXX0=
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtd29ya2Zsb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9hcHByb3ZhbC13b3JrZmxvdy9hcHByb3ZhbC13b3JrZmxvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2FwcHJvdmFsLXdvcmtmbG93L2FwcHJvdmFsLXdvcmtmbG93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUS9FLE1BQU0sT0FBTyx5QkFBeUI7SUF5QnBDO1FBeEJBLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQU16Qix3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFHcEMseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUMsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVsRCxnQkFBVyxHQUFpQjtZQUMxQixJQUFJLEVBQUUsT0FBTztZQUNiLFlBQVksRUFBRSxJQUFJO1lBQ2xCLElBQUksRUFBRSxJQUFJO1lBQ1YsV0FBVyxFQUFFLG1DQUFtQztTQUNqRCxDQUFDO1FBQ0YsU0FBSSxHQUFzQixRQUFRLENBQUM7SUFHcEIsQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztTQUM5QjtRQUNELElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRTtZQUNwQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1NBQzlCO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUN2QyxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBYztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELHlCQUF5QixDQUFDLEtBQVU7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUM5QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVTtRQUN2QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7O3NIQWxFVSx5QkFBeUI7MEdBQXpCLHlCQUF5Qix3ZkNSdEMsMjlCQXFCQTsyRkRiYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UsdUJBQXVCOzBFQVF4QixvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUksb0JBQW9CO3NCQUE3QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFZGl0b3JDb25maWcgfSBmcm9tICd2Y29tcGx5LWVkaXRvcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1hcHByb3ZhbC13b3JrZmxvdycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcHJvdmFsLXdvcmtmbG93LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hcHByb3ZhbC13b3JrZmxvdy5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXBwcm92YWxXb3JrZmxvd0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaGlkZURldGFpbHMgPSBmYWxzZTtcclxuICBlbmFibGVDcmVhdGVGb3JtOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGFwcHJvdmVyV29ya0Zsb3dMaXN0ITogYW55O1xyXG4gIEBJbnB1dCgpIGFsbEFwcHJvdmVycyE6IGFueTtcclxuICBASW5wdXQoKSBzZWxlY3RlZENhdGVnb3J5OiBhbnk7XHJcbiAgQElucHV0KCkgZWRpdEFwcHJvdmFsV29ya2Zsb3c6IGFueTtcclxuICBASW5wdXQoKSBjcmVhdGVBcHByb3ZhbENsaWNrOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZWRpdFdvcmtmbG93TGV2ZWwhOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZFdvcmtmbG93TmV4dCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbGlzdENhbmNlbENsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNhdmVBcHByb3ZhbFdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZUNyZWF0ZUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGRlc2NyaXB0aW9uOiBFZGl0b3JDb25maWcgPSB7XHJcbiAgICBtb2RlOiAncHJpbWUnLFxyXG4gICAgY29sb3JQYWxldHRlOiB0cnVlLFxyXG4gICAgbGluazogdHJ1ZSxcclxuICAgIHBsYWNlaG9sZGVyOiAnQWRkIGEgZGVzY3JpcHRpb24gZm9yIHRoaXMgcG9saWN5JyxcclxuICB9O1xyXG4gIG1vZGU6ICdDUkVBVEUnIHwgJ0VESVQnID0gJ0NSRUFURSc7XHJcbiAgYXBwcm92ZXJEZXRhaWxzOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jcmVhdGVBcHByb3ZhbENsaWNrKSB7XHJcbiAgICAgIHRoaXMuZW5hYmxlQ3JlYXRlRm9ybSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5lZGl0V29ya2Zsb3dMZXZlbC5lZGl0TGV2ZWwpIHtcclxuICAgICAgdGhpcy5lbmFibGVDcmVhdGVGb3JtID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3dEZXRhaWxzKCkge1xyXG4gICAgdGhpcy5oaWRlRGV0YWlscyA9ICF0aGlzLmhpZGVEZXRhaWxzO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlQXBwcm92YWxDbGlja2VkKGV2ZW50OiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmVuYWJsZUNyZWF0ZUZvcm0gPSBldmVudDtcclxuICB9XHJcblxyXG4gIGNhbmNlbENsaWNrZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5lbmFibGVDcmVhdGVGb3JtID0gZmFsc2U7XHJcbiAgICB0aGlzLmxpc3RDYW5jZWxDbGlja2VkLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgbmV4dENsaWNrZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFdvcmtmbG93TmV4dC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIGFwcHJvdmFsV29ya2Zsb3dBUElDYWxsZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5lbmFibGVDcmVhdGVGb3JtID0gZmFsc2U7XHJcbiAgICB0aGlzLnNhdmVBcHByb3ZhbFdvcmtmbG93LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25BcHByb3ZhbEVkaXQoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5lbmFibGVDcmVhdGVGb3JtID0gdHJ1ZTtcclxuICAgIHRoaXMubW9kZSA9ICdFRElUJztcclxuICAgIHRoaXMuYXBwcm92ZXJEZXRhaWxzID0gZXZlbnQ7XHJcbiAgfVxyXG5cclxuICBjbG9zZUNyZWF0ZUZvcm1DbGlja2VkKCkge1xyXG4gICAgdGhpcy5jbG9zZUNyZWF0ZUNsaWNrZWQuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8YXBwLWFwcHJvdmFsLXdvcmtmbG93LWxpc3RcclxuICAqbmdJZj1cImFwcHJvdmVyV29ya0Zsb3dMaXN0Lmxlbmd0aCAmJiAhZW5hYmxlQ3JlYXRlRm9ybVwiXHJcbiAgW2FwcHJvdmVyV29ya0Zsb3dMaXN0XT1cImFwcHJvdmVyV29ya0Zsb3dMaXN0XCJcclxuICAoY3JlYXRlQXBwcm92YWxDbGlja2VkKT1cImNyZWF0ZUFwcHJvdmFsQ2xpY2tlZCgkZXZlbnQpXCJcclxuICAoc2VsZWN0ZWRXb3JrZmxvd05leHQpPVwibmV4dENsaWNrZWQoJGV2ZW50KVwiXHJcbiAgKGxpc3RDYW5jZWxDbGlja2VkKT1cImNhbmNlbENsaWNrZWQoJGV2ZW50KVwiXHJcbiAgKG9uQXBwcm92YWxFZGl0KT1cIm9uQXBwcm92YWxFZGl0KCRldmVudClcIlxyXG4gIFtlZGl0QXBwcm92YWxXb3JrZmxvd109XCJlZGl0QXBwcm92YWxXb3JrZmxvd1wiXHJcbj48L2FwcC1hcHByb3ZhbC13b3JrZmxvdy1saXN0PlxyXG48YXBwLWFwcHJvdmFsLWNyZWF0ZS1mb3JtXHJcbiAgKm5nSWY9XCIhYXBwcm92ZXJXb3JrRmxvd0xpc3QubGVuZ3RoIHx8IGVuYWJsZUNyZWF0ZUZvcm1cIlxyXG4gIFtzZWxlY3RlZENhdGVnb3J5XT1cInNlbGVjdGVkQ2F0ZWdvcnlcIlxyXG4gIFthcHByb3ZlcldvcmtGbG93TGlzdF09XCJhcHByb3ZlcldvcmtGbG93TGlzdFwiXHJcbiAgW2VuYWJsZUNyZWF0ZUZvcm1dPVwiZW5hYmxlQ3JlYXRlRm9ybVwiXHJcbiAgW2FsbEFwcHJvdmVyc109XCJhbGxBcHByb3ZlcnNcIlxyXG4gIFttb2RlXT1cIm1vZGVcIlxyXG4gIFthcHByb3ZlckRldGFpbHNdPVwiYXBwcm92ZXJEZXRhaWxzXCJcclxuICAoc2F2ZUFwcHJvdmFsV29ya2Zsb3cpPVwiYXBwcm92YWxXb3JrZmxvd0FQSUNhbGxlZCgkZXZlbnQpXCJcclxuICAoY2xvc2VDcmVhdGVDbGlja2VkKSA9IGNsb3NlQ3JlYXRlRm9ybUNsaWNrZWQoKVxyXG4gIFtlZGl0V29ya2Zsb3dMZXZlbF09XCJlZGl0V29ya2Zsb3dMZXZlbFwiXHJcbj48L2FwcC1hcHByb3ZhbC1jcmVhdGUtZm9ybT5cclxuIl19