vcomply-workflow-engine 6.0.52 → 6.0.53

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 (73) hide show
  1. package/esm2022/lib/add-multiple-responsibility-container/add-multiple-responsibility-container.component.mjs +2 -2
  2. package/esm2022/lib/add-multiple-risk/add-multiple-risk.component.mjs +2 -2
  3. package/esm2022/lib/constants/assets.constants.mjs +57 -0
  4. package/esm2022/lib/constants/link-responsibility.constants.mjs +2 -2
  5. package/esm2022/lib/log-an-issue/log-an-issue.component.mjs +2 -2
  6. package/esm2022/lib/more-option/more-option.component.mjs +2 -2
  7. package/esm2022/lib/report-a-case/components/assignee/assignee.component.mjs +2 -2
  8. package/esm2022/lib/report-a-case/components/case-assignees/case-assignees.component.mjs +2 -2
  9. package/esm2022/lib/report-a-case/components/case-category/case-category.component.mjs +2 -2
  10. package/esm2022/lib/report-a-case/components/case-details/case-details.component.mjs +2 -2
  11. package/esm2022/lib/report-a-case/components/case-owners/case-owners.component.mjs +2 -2
  12. package/esm2022/lib/report-a-case/components/case-priority/case-priority.component.mjs +2 -2
  13. package/esm2022/lib/report-a-case/components/case-resolution-deadline/case-resolution-deadline.component.mjs +2 -2
  14. package/esm2022/lib/report-a-case/components/case-type-dropdown/case-dropdown.component.mjs +2 -2
  15. package/esm2022/lib/report-a-case/components/due-date/due-date.component.mjs +2 -2
  16. package/esm2022/lib/report-a-case/components/field-holder/field-holder.component.mjs +2 -2
  17. package/esm2022/lib/report-a-case/components/linked assessment/linked-assessment.component.mjs +2 -2
  18. package/esm2022/lib/report-a-case/components/linked-responsibilities/linked-responsibilities.component.mjs +2 -2
  19. package/esm2022/lib/report-a-case/components/rc-details/rc-details.component.mjs +2 -2
  20. package/esm2022/lib/report-a-case/components/report-date/report-date.component.mjs +2 -2
  21. package/esm2022/lib/report-a-case/workflow-case/workflow-case.component.mjs +2 -2
  22. package/esm2022/lib/sharedComponents/approval-workflow/approval-create-form/approval-create-form.component.mjs +2 -2
  23. package/esm2022/lib/sharedComponents/assessment-editor/components/build/image-choice/image-choice.component.mjs +2 -2
  24. package/esm2022/lib/sharedComponents/assessment-editor/components/build/thank-you/thank-you.component.mjs +2 -2
  25. package/esm2022/lib/sharedComponents/assessment-editor/components/build/welcome/welcome.component.mjs +2 -2
  26. package/esm2022/lib/sharedComponents/assessment-editor/components/logic/logic.component.mjs +2 -2
  27. package/esm2022/lib/sharedComponents/assessment-editor/components/logic-questions/logic-image-choice/logic-image-choice.component.mjs +2 -2
  28. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/thank-you/thank-you.component.mjs +2 -2
  29. package/esm2022/lib/sharedComponents/assessment-editor/components/preview/welcome/welcome.component.mjs +2 -2
  30. package/esm2022/lib/sharedComponents/assessment-editor/components/welcome-thankyou/welcome-thankyou.component.mjs +2 -2
  31. package/esm2022/lib/sharedComponents/assessment-list/assessment-list.component.mjs +2 -2
  32. package/esm2022/lib/sharedComponents/audit-category-list/audit-category-list.component.mjs +2 -2
  33. package/esm2022/lib/sharedComponents/category-list/category-list.component.mjs +2 -2
  34. package/esm2022/lib/sharedComponents/category-list-selection/category-list-selection/category-list-selection.component.mjs +2 -2
  35. package/esm2022/lib/sharedComponents/category-multiselect/category-multi-select.component.mjs +2 -2
  36. package/esm2022/lib/sharedComponents/checkbox-list/checkbox-list.component.mjs +2 -2
  37. package/esm2022/lib/sharedComponents/format-and-evidence/format-and-evidence.component.mjs +2 -2
  38. package/esm2022/lib/sharedComponents/framework-list/framework-list.component.mjs +2 -2
  39. package/esm2022/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.mjs +2 -2
  40. package/esm2022/lib/sharedComponents/group-users-list/group-users-list.component.mjs +2 -2
  41. package/esm2022/lib/sharedComponents/link-program/link-program/link-program.component.mjs +2 -2
  42. package/esm2022/lib/sharedComponents/owner-list/owner-list.component.mjs +2 -2
  43. package/esm2022/lib/sharedComponents/policy-access/policy-access.component.mjs +2 -2
  44. package/esm2022/lib/sharedComponents/policy-template/constants/template.constant.mjs +2 -2
  45. package/esm2022/lib/sharedComponents/program-listing/program-listing.component.mjs +2 -2
  46. package/esm2022/lib/sharedComponents/radio-list/radio-list.component.mjs +2 -2
  47. package/esm2022/lib/sharedComponents/radio-list-with-pagination/radio-list.component.mjs +2 -2
  48. package/esm2022/lib/sharedComponents/responsibility-centers-list/responsibility-centers-list.component.mjs +2 -2
  49. package/esm2022/lib/sharedComponents/responsibility-risk-selector/responsibility-risk-selector.component.mjs +2 -2
  50. package/esm2022/lib/sharedComponents/review-frequency/review-frequency.component.mjs +2 -2
  51. package/esm2022/lib/sharedComponents/roles-list/roles-list.component.mjs +2 -2
  52. package/esm2022/lib/sharedComponents/select-approvers/select-approvers.component.mjs +2 -2
  53. package/esm2022/lib/sharedComponents/users-radio-list/users-radio-list.component.mjs +2 -2
  54. package/esm2022/lib/ui-kit/pagination/pagination/pagination.component.mjs +2 -2
  55. package/esm2022/lib/workflow/shared/components/attributes/attributes-checkbox/attributes-checkbox.component.mjs +2 -2
  56. package/esm2022/lib/workflow/shared/constants/cdn-link.constant.mjs +2 -2
  57. package/esm2022/lib/workflow-assessment/import-an-assessment/import-an-assessment.component.mjs +2 -2
  58. package/esm2022/lib/workflow-assessment/workflow-assessment.component.mjs +2 -2
  59. package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +2 -2
  60. package/esm2022/lib/workflow-policy/workflow-policy.component.mjs +2 -2
  61. package/esm2022/lib/workflow-program/create-program-ui/assessment-picker/assessment-picker.component.mjs +2 -2
  62. package/esm2022/lib/workflow-program/create-program-ui/define-framework-listing/define-framework-listing.component.mjs +2 -2
  63. package/esm2022/lib/workflow-program/create-program-ui/pagination/pagination/pagination.component.mjs +2 -2
  64. package/esm2022/lib/workflow-program/create-program-ui/role-list/role-list.component.mjs +2 -2
  65. package/esm2022/lib/workflow-program/create-program-ui/user-group-list/user-group-list.component.mjs +2 -2
  66. package/esm2022/lib/workflow-program/workflow-program.component.mjs +2 -2
  67. package/esm2022/lib/workflow-risk/workflow-risk.component.mjs +2 -2
  68. package/esm2022/lib/workflow-survey-form/workflow-survey-form.component.mjs +2 -2
  69. package/fesm2022/vcomply-workflow-engine.mjs +14 -15
  70. package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
  71. package/package.json +1 -1
  72. package/esm2022/lib/constants/assessts.constants.mjs +0 -57
  73. /package/lib/constants/{assessts.constants.d.ts → assets.constants.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { Component, EventEmitter, Input, Optional, Output, } from '@angular/core';
2
- import { ASSETS } from '../constants/assessts.constants';
2
+ import { ASSETS } from '../constants/assets.constants';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../workflow-services/assessment.service";
5
5
  import * as i2 from "../workflow-services/auth.service";
@@ -257,4 +257,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
257
257
  }], closeWorkflow: [{
258
258
  type: Output
259
259
  }] } });
260
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctYXNzZXNzbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1hc3Nlc3NtZW50L3dvcmtmbG93LWFzc2Vzc21lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctYXNzZXNzbWVudC93b3JrZmxvdy1hc3Nlc3NtZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBU3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU96RCxNQUFNLE9BQU8sMkJBQTJCO0lBZ0N0QyxZQUNTLGlCQUFvQyxFQUNuQyxXQUF3QixFQUN4QixZQUEwQixFQUMxQixRQUF5QixFQUN6QixhQUE0QixFQUN4QixNQUF1QjtRQUw1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ25DLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBcEN0QyxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDVixTQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ2QsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsZUFBVSxH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cnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEVkaXRvckNvbmZpZyB9IGZyb20gJ3Zjb21wbHktZWRpdG9yJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbnMnO1xuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBBc3Nlc3NtZW50U2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2Fzc2Vzc21lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XG5pbXBvcnQgeyBJZnJhbWVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaWZyYW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2Fzc2Vzc3RzLmNvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC13b3JrZmxvdy1hc3Nlc3NtZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtmbG93LWFzc2Vzc21lbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93b3JrZmxvdy1hc3Nlc3NtZW50LmNvbXBvbmVudC5sZXNzJywgJy4uL2Zvcm1zLmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgV29ya2Zsb3dBc3Nlc3NtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQVNTRVRTID0gQVNTRVRTO1xuICBhY3RpdmVTZWxlY3RvcjogYW55ID0gJyc7XG4gIHN1Ym1pdHRlZCA9IGZhbHNlO1xuICBsb2FkZXIgPSBmYWxzZTtcbiAgc2hvd1NtaWxleSA9IGZhbHNlO1xuICBASW5wdXQoKSBtb2RlID0gJ0VESVQnO1xuICBASW5wdXQoKSBhc3Nlc3NtZW50SWQgPSAnJztcbiAgQElucHV0KCkgb3BlbmVkRnJvbSA9ICcnO1xuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHNpZGVTZWxlY3RvckVsZW1lbnRzOiBhbnkgPSBbJ2NhdGVnb3J5J107XG4gIGFjdGlvbkJ1dHRvbnMgPSBbXG4gICAgLy8geyBidXR0b25UZXh0OiAnQWRkIE1vcmUgQXNzZXNzbWVudHMnLCBjbGFzczogJ3doaXRlLWJ0bicsIGlkOiAnYWRkTW9yZScgfSxcbiAgICB7XG4gICAgICBidXR0b25UZXh0OiAnR28gdG8gYXNzZXNzbWVudCB3b3Jrcm9vbScsXG4gICAgICBjbGFzczogJ2JsdWUtYnRuJyxcbiAgICAgIGlkOiAndmlld0Fzc2Vzc21lbnQnLFxuICAgIH0sXG4gIF07XG4gIGFzc2Vzc21lbnRUeXBlQ2hhbmdlQWxsb3dlZCA9IHRydWU7XG4gIHRpbWV6b25lITogc3RyaW5nO1xuICBAT3V0cHV0KCkgcGlja2VyQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNsb3NlV29ya2Zsb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGFzc2Vzc21lbnRGb3JtOiBhbnkgPSB7XG4gICAgYXNzZXNzbWVudFR5cGU6ICdjb21wbGlhbmNlJyxcbiAgICBuYW1lOiAnJyxcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgY2F0ZWdvcnk6IFtdLFxuICAgIGN1c3RvbVRhZ3M6IFtdLFxuICB9O1xuICBhc3Nlc3NtZW50RGF0YTogYW55O1xuICBvcmdhbml6YXRpb25JZCA9IDA7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBhc3Nlc3NtZW50U2VydmljZTogQXNzZXNzbWVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXG4gICAgcHJpdmF0ZSB1aUtpdFNlcnZpY2U6IFVpS2l0U2VydmljZSxcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBTbmFja0JhclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpZnJhbWVTZXJ2aWNlOiBJZnJhbWVTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIGNvbmZpZz86IENvbmZpZ3VyYXRpb25zXG4gICkge1xuICAgIHRoaXMudGltZXpvbmUgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXJUaW1lWm9uZSgpO1xuICB9XG4gIHNlbGVjdG9yQ29uZmlnID0ge1xuICAgIEFTU0VTU01FTlRfQ0FUR09SWToge1xuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCBhbiBBc3Nlc3NtZW50IENhdGVnb3J5JyxcbiAgICAgIGVudGl0eVNpbmd1bGFyOiAnQ2F0ZWdvcnkgc2VsZWN0ZWQuJyxcbiAgICAgIGVudGl0eVBsdXJhbDogJ0NhdGVnb3JpZXMgc2VsZWN0ZWQuJyxcbiAgICAgIGRpc3BsYXlLZXk6ICdjYXRlZ29yeV9uYW1lJyxcbiAgICAgIGlkZW50aWZpZXJLZXk6ICdpZCcsXG4gICAgICBwYXJlbnRLZXk6ICdjYXRlZ29yeV9wYXJlbnRzJyxcbiAgICAgIHBhcmVudERpc3BsYXlLZXk6ICdwYXJlbnRfdHJlZScsXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBhbiBhc3Nlc3NtZW50IGNhdGVnb3J5LicsXG4gICAgICBub0RhdGFUZXh0OiAnTm8gYXNzZXNzbWVudCBjYXRlZ29yaWVzIGZvdW5kLicsXG4gICAgfSxcbiAgfTtcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy90aGlzLmxvYWRlciA9IHRydWU7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0NSRUFURScpIHtcbiAgICAgIHRoaXMub3JnYW5pemF0aW9uSWQgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldE9yZ2FuaXphdGlvbklkKCk7XG4gICAgfVxuICAgIC8vdGhpcy5zZXRDYXRlZ29yeSh7IHNlYXJjaEtleTogJycsIHBhZ2U6IDEgfSk7XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XG4gICAgICB0aGlzLmdldEFzc2Vzc21lbnREZXRhaWxzKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QXNzZXNzbWVudERldGFpbHMoKSB7XG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZ2V0QXNzZXNzbWVudERldGFpbHModGhpcy5hc3Nlc3NtZW50SWQpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5hc3Nlc3NtZW50Rm9ybS5uYW1lID0gcmVzPy5hc3Nlc3NtZW50X25hbWUgPz8gJyc7XG4gICAgICAgIHRoaXMuYXNzZXNzbWVudEZvcm0uZGVzY3JpcHRpb24gPSByZXM/LmRlc2NyaXB0aW9uID8/ICcnO1xuICAgICAgICB0aGlzLmFzc2Vzc21lbnRGb3JtLmFzc2Vzc21lbnRUeXBlID1cbiAgICAgICAgICByZXM/LmFzc2Vzc21lbnRfdHlwZSA/PyAnY29tcGxpYW5jZSc7XG4gICAgICAgIHRoaXMuYXNzZXNzbWVudEZvcm0uY2F0ZWdvcnkgPSByZXMuY2F0ZWdvcnlfYXJyLm1hcCgoZWxlOiBhbnkpID0+IHtcbiAgICAgICAgICByZXR1cm4geyBpZDogZWxlPy5faWQsIGNhdGVnb3J5X25hbWU6IGVsZT8uY2F0ZWdvcnlfbmFtZSB9O1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5hc3Nlc3NtZW50VHlwZUNoYW5nZUFsbG93ZWQgPVxuICAgICAgICAgIHJlcz8uYXNzZXNzbWVudF90eXBlID09PSAnY29tcGxpYW5jZSc7XG4gICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coXG4gICAgICAgICAgJ09PUFMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB0aGUgcGFnZSBjb3VsZCBub3QgYmUgbG9hZGVkLiBDb3VsZCB5b3UgcGxlYXNlIHRyeSBvbmUgbW9yZSB0aW1lPycsXG4gICAgICAgICAgJ2FsZXJ0J1xuICAgICAgICApO1xuICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vVGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgZmV0Y2hpbmcgdGhlIGxpc3Qgb2YgY2F0ZWdvcmllc1xuICBzZXRDYXRlZ29yeShldnQ6IGFueSkge1xuICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuZmV0Y2hDYXRlZ29yeSh7XG4gICAgICBzZWFyY2hfdGl0bGU6IGV2dC5zZWFyY2hLZXksXG4gICAgICBwYWdlX25vOiBldnQucGFnZSxcbiAgICB9KTtcbiAgfVxuXG4gIGFjdGl2YXRlU2VsZWN0b3IodHlwZTogYW55LCBldmVudDogYm9vbGVhbikge1xuICAgIGlmICh0eXBlID09PSAnY2F0ZWdvcnknKSB7XG4gICAgICB0aGlzLnNldENhdGVnb3J5KHsgc2VhcmNoS2V5OiAnJywgcGFnZTogMSB9KTtcbiAgICB9XG4gICAgdGhpcy5hY3RpdmVTZWxlY3RvciA9IGV2ZW50ID8gdHlwZSA6ICcnO1xuICAgIGlmICh0aGlzLnNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgYWN0aXZlRGVzZWxlY3RvcigpIHtcbiAgICB0aGlzLmFjdGl2ZVNlbGVjdG9yID0gJyc7XG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgbmV4dCh0eXBlOiBzdHJpbmcsIHBheWxvYWQ6IGFueSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnQ0FURUdPUlknOiB7XG4gICAgICAgIHRoaXMuYWN0aXZlRGVzZWxlY3RvcigpO1xuICAgICAgICB0aGlzLmFzc2Vzc21lbnRGb3JtLmNhdGVnb3J5ID0gcGF5bG9hZDtcbiAgICAgICAgaWYgKHRoaXMuYXNzZXNzbWVudEZvcm0uY2F0ZWdvcnk/Lmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICB0aGlzLmFzc2Vzc21lbnRGb3JtLmNhdGVnb3J5ID0gdGhpcy5hc3Nlc3NtZW50Rm9ybS5jYXRlZ29yeS5maWx0ZXIoXG4gICAgICAgICAgICAoZWxlOiBhbnkpID0+IGVsZT8uY2F0ZWdvcnlfbmFtZSAhPSAndW5jYXRlZ29yaXplZCdcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlKHR5cGU6IGFueSwgZXZlbnQ6IGFueSkge1xuICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgY2FzZSAnY2F0ZWdvcnknOlxuICAgICAgICB0aGlzLmFzc2Vzc21lbnRGb3JtLmNhdGVnb3J5ID0gdGhpcy5hc3Nlc3NtZW50Rm9ybS5jYXRlZ29yeS5maWx0ZXIoXG4gICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/LmlkICE9PSBldmVudD8uaWRcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBkZXNjcmlwdGlvbjogRWRpdG9yQ29uZmlnID0ge1xuICAgIG1vZGU6ICdwcmltZScsXG4gICAgY29sb3JQYWxldHRlOiB0cnVlLFxuICAgIGxpbms6IHRydWUsXG4gICAgcGxhY2Vob2xkZXI6ICdBZGQgYSBkZXNjcmlwdGlvbicsXG4gIH07XG5cbiAgY2hhbmdlQXNzZXNzbWVudCh0eXBlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFzc2Vzc21lbnRGb3JtID0ge1xuICAgICAgLi4udGhpcy5hc3Nlc3NtZW50Rm9ybSxcbiAgICAgIC4uLnsgYXNzZXNzbWVudFR5cGU6IHR5cGU/LnRvTG9jYWxlTG93ZXJDYXNlKCkgfSxcbiAgICB9O1xuICAgIGNvbnNvbGUubG9nKCd0aGlzLmFzc2Vzc21lbnRGb3JtID09PT4nLCB0aGlzLmFzc2Vzc21lbnRGb3JtKTtcbiAgfVxuICBjbG9zZVNtaWxleShldnQ6IGFueSkge1xuICAgIHRoaXMuY2xvc2VXb3JrZmxvdy5lbWl0KHsgZXZ0OiB0aGlzLmFzc2Vzc21lbnRJZCwgY29uZmlybTogZmFsc2UgfSk7XG4gIH1cblxuICBhY3Rpb24oZXZ0OiBhbnkpIHtcbiAgICBpZiAoZXZ0ID09PSAndmlld0Fzc2Vzc21lbnQnKSB7XG4gICAgICB0aGlzLmRpc2Nvbm5lY3RSZWZyZXNoLmVtaXQoZmFsc2UpO1xuICAgICAgY29uc3QgdXJsID0gYGh0dHBzOi8vJHt3aW5kb3cubG9jYXRpb24uaG9zdG5hbWV9L2Fzc2Vzc21lbnQvYXNzZXNzbWVudC13b3Jrcm9vbS8/aWQ9JHt0aGlzLmFzc2Vzc21lbnRJZH1gO1xuICAgICAgdGhpcy5pZnJhbWVTZXJ2aWNlLnJlZGlyZWN0SWZJbklmcmFtZSh1cmwsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrRGVzY3JpcHRpb24oKSB7XG4gICAgaWYgKHRoaXMuYXNzZXNzbWVudEZvcm0uZGVzY3JpcHRpb24gPT0gJzxicj4nKSB7XG4gICAgICB0aGlzLmFzc2Vzc21lbnRGb3JtLmRlc2NyaXB0aW9uID0gJyc7XG4gICAgfVxuICB9XG5cbiAgc3VibWl0QXNzZXNzbWVudCgpIHtcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XG4gICAgY29uc3QgdmFsaWQgPSB0aGlzLnZhbGlkYXRlQXNzZXNzbWVudCgpO1xuICAgIGlmICghdmFsaWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jcmVhdGVBc3Nlc3NtZW50KHRoaXMuYXNzZXNzbWVudEZvcm0pO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlQXNzZXNzbWVudCgpIHtcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuYXNzZXNzbWVudEZvcm0ubmFtZS50cmltKCkgfHxcbiAgICAgIHRoaXMuYXNzZXNzbWVudEZvcm0uY2F0ZWdvcnkubGVuZ3RoID09IDBcbiAgICApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlQXNzZXNzbWVudChhc3Nlc3NtZW50Rm9ybTogYW55KSB7XG4gICAgdGhpcy5sb2FkZXIgPSB0cnVlO1xuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XG5cbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgYXNzZXNzbWVudF9uYW1lOiBhc3Nlc3NtZW50Rm9ybS5uYW1lLnRyaW0oKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBhc3Nlc3NtZW50Rm9ybS5kZXNjcmlwdGlvbixcbiAgICAgIGFzc2Vzc21lbnRfdHlwZTogYXNzZXNzbWVudEZvcm0uYXNzZXNzbWVudFR5cGUsXG4gICAgICBjYXRlZ29yeV9hcnI6IHRoaXMuYXNzZXNzbWVudEZvcm0uY2F0ZWdvcnkubWFwKChlbGU6IGFueSkgPT4gZWxlLmlkKSxcbiAgICAgIGFwcHJvdmFsX3dvcmtmbG93X2Fycjoge1xuICAgICAgICB0ZXN0OiAndGVzdCcsXG4gICAgICB9LFxuICAgICAgYXBwcm92YWxfcmVxdWlyZWQ6IHRydWUsXG4gICAgICBzb3VyY2VfcGFnZTogJ2NvbXBsaWFuY2UnLFxuICAgIH07XG4gICAgaWYgKHRoaXMubW9kZSA9PSAnQ1JFQVRFJykge1xuICAgICAgdGhpcy5hc3Nlc3NtZW50U2VydmljZS5hZGRBc3Nlc3NtZW50KHBheWxvYWQpLnN1YnNjcmliZShcbiAgICAgICAgKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmFzc2Vzc21lbnRJZCA9IHJlcz8uX2lkO1xuICAgICAgICAgIGNvbnN0IHVybCA9IGBodHRwczovLyR7d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lfS9hc3Nlc3NtZW50L2NyZWF0ZS8ke3Jlcz8uX2lkfWA7XG4gICAgICAgICAgdGhpcy5pZnJhbWVTZXJ2aWNlLnJlZGlyZWN0SWZJbklmcmFtZSh1cmwsIHRydWUpO1xuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFxuICAgICAgICAgICAgJ09PUFMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB0aGUgcGFnZSBjb3VsZCBub3QgYmUgbG9hZGVkLiBDb3VsZCB5b3UgcGxlYXNlIHRyeSBvbmUgbW9yZSB0aW1lPycsXG4gICAgICAgICAgICAnYWxlcnQnXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XG4gICAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlXG4gICAgICAgIC51cGRhdGVBc3Nlc3NtZW50KHRoaXMuYXNzZXNzbWVudElkLCBwYXlsb2FkKVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGVycj8uZXJyb3IubWVzc2FnZS5zdGFydHNXaXRoKCdObyBjaGFuZ2VzJykpIHtcbiAgICAgICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcbiAgICAgICAgICAgICAgICAnT09QUyEgU29tZXRoaW5nIHdlbnQgd3JvbmcgYW5kIHRoZSBwYWdlIGNvdWxkIG5vdCBiZSBsb2FkZWQuIENvdWxkIHlvdSBwbGVhc2UgdHJ5IG9uZSBtb3JlIHRpbWU/JyxcbiAgICAgICAgICAgICAgICAnYWxlcnQnXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwid29ya2Zsb3ctYXNzZXNzbWVudFwiPlxuICA8IS0tIEFzc2Vzc21lbnQgVHlwZSAtLT5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgW2NsYXNzLmFjdGl2ZV09XCJmYWxzZVwiIFtjbGFzcy5kaXNhYmxlZF09XCJmYWxzZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0IGNoZWNrZWRcIj5cbiAgICAgIDxzdmdcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXG4gICAgICA+XG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgICAgPkFTU0VTU01FTlQgVFlQRSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXG4gICAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJpc2stdHlwZS1maWVsZFwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidHlwZS1pdGVtXCJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiXG4gICAgICAgICAgICAgIGFzc2Vzc21lbnRGb3JtPy5hc3Nlc3NtZW50VHlwZSA9PT0gJ2NvbXBsaWFuY2VfYXVkaXQnXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFhc3Nlc3NtZW50VHlwZUNoYW5nZUFsbG93ZWRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlQXNzZXNzbWVudCgnY29tcGxpYW5jZV9hdWRpdCcpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQ09NUExJQU5DRSBBVURJVFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGluZm9cIlxuICAgICAgICAgICAgICBhcHBUb29sdGlwPVwiVGhpcyBvcHRpb24gbGV0cyB5b3UgY3JlYXRlIGEgJ0NvbXBsaWFuY2UgQXVkaXQgVGVtcGxhdGUnIHRoYXQgY2FuIGJlIHVzZWQgdG8gY29uZHVjdCB2YXJpb3VzIHNpdGUsIHVzZXIgYW5kIGRlcGFydG1lbnQgbGV2ZWwgYXVkaXRzLiBPbmNlIHRoZSBhc3Nlc3NtZW50IHRlbXBsYXRlIGlzIGNyZWF0ZWQsIHlvdSBjYW4gZGlyZWN0bHkgY3JlYXRlIHRoZSByZXNwb25zaWJpbGl0eSBhbmQgYXNzaWduIGl0IHRvIHRoZSByZWxldmFudCBhc3NpZ25lZS48YnI+PGI+Tm90ZTo8L2I+IFRoZXNlIGNvbXBsaWFuY2UgYXVkaXQgdGVtcGxhdGVzIGNhbiBvbmx5IGJlIGxpbmtlZCB3aXRoIGFuIGF1ZGl0IHJlc3BvbnNpYmlsaXR5IHRoYXQgaXMgY3JlYXRlZCBhcyBhIHBhcnQgb2YgdGhlIGNyZWF0aW5nIHN1Y2ggYXNzZXNzbWVudHMuXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgdHlwZT1cIndoaXRlXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID4mI3hlOTMyOzwvaVxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidHlwZS1pdGVtXCJcbiAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgICBhc3Nlc3NtZW50VHlwZUNoYW5nZUFsbG93ZWRcbiAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgOiAnWW91IENhbm5vdCBjaGFuZ2UgdGhlIGFzc2Vzc21lbnQgdHlwZS4nXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgIHR5cGU9XCJibGFja1wiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYXNzZXNzbWVudEZvcm0/LmFzc2Vzc21lbnRUeXBlID09PSAnY29tcGxpYW5jZSdcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFhc3Nlc3NtZW50VHlwZUNoYW5nZUFsbG93ZWRcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlQXNzZXNzbWVudCgnY29tcGxpYW5jZScpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgT3RoZXJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBpbmZvXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIiFhc3Nlc3NtZW50VHlwZUNoYW5nZUFsbG93ZWRcIlxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAnVGhpcyBvcHRpb24gY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGFueSBvdXRjb21lIGJhc2VkIHF1ZXN0aW9ubmFpcmUgb3Igc2VsZi1hc3Nlc3NtZW50IHF1ZXN0aW9ubmFpcmVzLiBPbmNlIHRoZSB0ZW1wbGF0ZXMgYXJlIGNyZWF0ZWQsIHRoZXkgY2FuIGJlIGxpbmtlZCB3aXRoIG11bHRpcGxlIHJlc3BvbnNpYmlsaXRpZXMuJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICB0eXBlPVwid2hpdGVcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgPiYjeGU5MzI7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWNrZ3JvdW5kLWdsaWRlclwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxwICpuZ0lmPVwiZmFsc2VcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5BZGQgYW4gYXNzZXNzbWVudCB0eXBlPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQXNzZXNzbWVudCBOYW1lIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJmYWxzZVwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cIlxuICAgICAgYWN0aXZlU2VsZWN0b3IgJiZcbiAgICAgIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZScgJiZcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZVNlbGVjdG9yKVxuICAgIFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImZhbHNlXCI+XG4gICAgICA8aW1nXG4gICAgICAgIFtzcmNdPVwiQVNTRVRTLndoYXRcIlxuICAgICAgICBhbHQ9XCJpbVwiXG4gICAgICAgICpuZ0lmPVwiIWFzc2Vzc21lbnRGb3JtLm5hbWUudHJpbSgpIHx8IGFjdGl2ZVNlbGVjdG9yID09PSAnbmFtZSdcIlxuICAgICAgLz5cblxuICAgICAgPHN2Z1xuICAgICAgICAqbmdJZj1cImFzc2Vzc21lbnRGb3JtLm5hbWUudHJpbSgpICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZSdcIlxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcbiAgICAgID5cbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxuICAgICAgICAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcbiAgICAgICAgICA+QXNzZXNzbWVudCBOYW1lIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcbiAgICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgKGtleWRvd24pPVwiYWN0aXZlU2VsZWN0b3IgPSAnbmFtZSdcIlxuICAgICAgICAgIChmb2N1c2luKT1cImFjdGl2YXRlU2VsZWN0b3IoJ25hbWUnLCB0cnVlKVwiXG4gICAgICAgICAgKGZvY3Vzb3V0KT1cImFjdGl2YXRlU2VsZWN0b3IoJ25hbWUnLCBmYWxzZSlcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwiYXNzZXNzbWVudEZvcm0ubmFtZVwiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJBZGQgYW4gYXNzZXNzbWVudCBuYW1lXCJcbiAgICAgICAgICAqbmdJZj1cImFzc2Vzc21lbnRGb3JtLm5hbWUgPT0gJycgfHwgYWN0aXZlU2VsZWN0b3IgPT09ICduYW1lJ1wiXG4gICAgICAgIC8+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNlbGVjdGVkXCJcbiAgICAgICAgICAqbmdJZj1cImFzc2Vzc21lbnRGb3JtLm5hbWUubGVuZ3RoICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnbmFtZSdcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+e3sgYXNzZXNzbWVudEZvcm0ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2YXRlU2VsZWN0b3IoJ25hbWUnLCB0cnVlKVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXRcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxwXG4gICAgICAgICAgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgIWFzc2Vzc21lbnRGb3JtLm5hbWUudHJpbSgpXCJcbiAgICAgICAgICBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxuICAgICAgICA+XG4gICAgICAgICAgRW50ZXIgYSBuYW1lIGZvciB0aGlzIEFzc2Vzc21lbnQuXG4gICAgICAgIDwvcD5cbiAgICAgICAgPHZjb21wbHktZWRpdG9yXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJhc3Nlc3NtZW50Rm9ybS5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgW2VkaXRvckNvbmZpZ109XCJkZXNjcmlwdGlvblwiXG4gICAgICAgICAgKGNsaWNrT3V0c2lkZSk9XCJjaGVja0Rlc2NyaXB0aW9uKClcIlxuICAgICAgICA+PC92Y29tcGx5LWVkaXRvcj5cbiAgICAgICAgPCEtLSA8cCAqbmdJZj1cInN1Ym1pdHRlZCAmJiAoYXNzZXNzbWVudEZvcm0uYXNzZXNzbWVudFR5cGUgPT09J0NPTVBMSUFOQ0UnICYmICFhc3Nlc3NtZW50Rm9ybT8uZGVzY3JpcHRpb24/LnRyaW0oKT8ubGVuZ3RoKVwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPkFkZCBhbiBhc3Nlc3NtZW50IGRlc2NyaXB0aW9uPC9wPiAtLT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIEFzc2Vzc21lbnQgQ2F0ZWdvcnkgLS0+XG4gIDxkaXZcbiAgICBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcbiAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZVNlbGVjdG9yID09PSAnY2F0ZWdvcnknXCJcbiAgICBbY2xhc3MuZGlzYWJsZWRdPVwiXG4gICAgICBhY3RpdmVTZWxlY3RvciAmJlxuICAgICAgYWN0aXZlU2VsZWN0b3IgIT09ICdjYXRlZ29yeScgJiZcbiAgICAgIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZVNlbGVjdG9yKVxuICAgIFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImFzc2Vzc21lbnRGb3JtPy5jYXRlZ29yeT8ubGVuZ3RoXCI+XG4gICAgICA8aW1nXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgIWFzc2Vzc21lbnRGb3JtPy5jYXRlZ29yeT8ubGVuZ3RoIHx8IGFjdGl2ZVNlbGVjdG9yID09PSAnY2F0ZWdvcnknXG4gICAgICAgIFwiXG4gICAgICAgIFtzcmNdPVwiQVNTRVRTLmNhc2VfY2F0ZWdvcnlcIlxuICAgICAgICBhbHQ9XCJcIlxuICAgICAgLz5cblxuICAgICAgPHN2Z1xuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgYXNzZXNzbWVudEZvcm0/LmNhdGVnb3J5Py5sZW5ndGggJiYgYWN0aXZlU2VsZWN0b3IgIT09ICdjYXRlZ29yeSdcbiAgICAgICAgXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxuICAgICAgPlxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxuICAgICAgICAgID5BU1NFU1NNRU5UIENBVEVHT1JZIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPjwvbGFiZWxcbiAgICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCIgKm5nSWY9XCIhYXNzZXNzbWVudEZvcm0/LmNhdGVnb3J5Py5sZW5ndGhcIj5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCdjYXRlZ29yeScsIHRydWUpXCJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGNhdGVnb3J5IGZvciB0aGlzIGFzc2Vzc21lbnRcIlxuICAgICAgICAgICAgcmVhZG9ubHlcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJhc3Nlc3NtZW50Rm9ybT8uY2F0ZWdvcnk/Lmxlbmd0aFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XG4gICAgICAgICAgICA8aVxuICAgICAgICAgICAgICBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgYXNzZXNzbWVudEZvcm0/LmNhdGVnb3J5WzBdPy5jYXRlZ29yeV9uYW1lICE9PSAndW5jYXRlZ29yaXplZCdcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZSgnY2F0ZWdvcnknLCBhc3Nlc3NtZW50Rm9ybS5jYXRlZ29yeVswXSlcIlxuICAgICAgICAgICAgICA+JiN4ZTlhZTs8L2lcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiYXNzZXNzbWVudEZvcm0/LmNhdGVnb3J5WzBdPy5jYXRlZ29yeV9uYW1lXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgID57eyBhc3Nlc3NtZW50Rm9ybT8uY2F0ZWdvcnlbMF0/LmNhdGVnb3J5X25hbWUgfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCJcbiAgICAgICAgICAgICAgYXBwUG9wb3ZlclxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2F0ZWdvcnkucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAqbmdJZj1cImFzc2Vzc21lbnRGb3JtPy5jYXRlZ29yeT8ubGVuZ3RoID4gMVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICt7eyBhc3Nlc3NtZW50Rm9ybT8uY2F0ZWdvcnk/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpICpuZ0lmPVwiYXNzZXNzbWVudEZvcm0/LmNhdGVnb3J5WzBdPy5jYXRlZ29yeV9uYW1lICE9PSAndW5jYXRlZ29yaXplZCdcIiBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cInJlbW92ZSgnY2F0ZWdvcnknLGFzc2Vzc21lbnRGb3JtLmNhdGVnb3J5WzBdKVwiPiYjeGU5MGQ7PC9pPnt7YXNzZXNzbWVudEZvcm0/LmNhdGVnb3J5WzBdPy5jYXRlZ29yeV9uYW1lfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY291bnRcIiAqbmdJZj1cImFzc2Vzc21lbnRGb3JtPy5jYXRlZ29yeT8ubGVuZ3RoID4gMVwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cImNhdGVnb3J5LnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7YXNzZXNzbWVudEZvcm0/LmNhdGVnb3J5Py5sZW5ndGggLTF9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciAhPT0gJ2NhdGVnb3J5J1wiXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3RvcignY2F0ZWdvcnknLCB0cnVlKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cFxuICAgICAgICAgICpuZ0lmPVwic3VibWl0dGVkICYmICFhc3Nlc3NtZW50Rm9ybT8uY2F0ZWdvcnk/Lmxlbmd0aFwiXG4gICAgICAgICAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcbiAgICAgICAgPlxuICAgICAgICAgIFNlbGVjdCB0aGUgQXNzZXNzbWVudCBDYXRlZ29yeS5cbiAgICAgICAgPC9wPlxuICAgICAgICA8YXBwLXBvcG92ZXIgI2NhdGVnb3J5IFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgbGV0IGNhdGVnb3J5IG9mIGFzc2Vzc21lbnRGb3JtPy5jYXRlZ29yeSB8IHNsaWNlIDogMTtcbiAgICAgICAgICAgICAgICAgIGxldCBqID0gaW5kZXhcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwicmVtb3ZlKCdjYXRlZ29yeScsIGNhdGVnb3J5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgPiYjeGU5MGQ7PC9pXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgY2F0ZWdvcnk/LmNhdGVnb3J5X25hbWUgfX1cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhc3Nlc3NtZW50Rm9ybT8uY3VzdG9tVGFncz8ubGVuZ3RoID4gMFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgdGFnIG9mIGFzc2Vzc21lbnRGb3JtLmN1c3RvbVRhZ3NcIlxuICAgICAgICA+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPnt7IHRhZy5jdXN0b21fdGFnX25hbWUgfX08L2xhYmVsPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0YWcuY3VzdG9tX3RhZ192YWx1ZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidGFnLmN1c3RvbV90YWdfbmFtZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBBc3Nlc3NtZW50IEFwcHJvdmFsIFdvcmtmbG93IC0tPlxuICA8ZGl2XG4gICAgKm5nSWY9XCJmYWxzZVwiXG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJmYWxzZVwiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cImZhbHNlXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwiZmFsc2VcIj5cbiAgICAgIDxpbWcgKm5nSWY9XCJ0cnVlXCIgW3NyY109XCJBU1NFVFMuYXBwcm92YWxcIiBhbHQ9XCJpbVwiIC8+XG5cbiAgICAgIDxzdmdcbiAgICAgICAgKm5nSWY9XCJmYWxzZVwiXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxuICAgICAgPlxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwIGFwcHJvdmFsLXdvcmtmbG93XCIgW2NsYXNzLmRpc2FibGVkXT1cImZhbHNlXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5cbiAgICAgICAgICBBcHByb3ZhbCB3b3JrZmxvdyA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uXCI+Q1JFQVRFIEEgTkVXIEFQUFJPVkFMIFdPUktGTE9XPC9idXR0b24+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZmFsc2VcIiAqbmdJZj1cInRydWVcIj5cbiAgICAgICAgICA8Y3Mtc2VsZWN0IFtwbGFjZWhvbGRlcl09XCInU2VsZWN0IGFwcHJvdmVycyBmb3IgdGhpcyBhc3Nlc3NtZW50J1wiPlxuICAgICAgICAgICAgPGNzLW9wdGlvbj50ZXN0PC9jcy1vcHRpb24+XG4gICAgICAgICAgICA8Y3Mtb3B0aW9uPkNyZWF0ZSBhIG5ldyBhcHByb3ZhbCB3b3JrZmxvdzwvY3Mtb3B0aW9uPlxuICAgICAgICAgIDwvY3Mtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGFwcC1jcy1zd2l0Y2hcbiAgICAgICAgICA+QVBQUk9WQUwgTk9UIFJFUVVJUkVEXG4gICAgICAgICAgPGlcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxuICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ0FwcHJvdmFsIHdvcmtmbG93IGluZm8gdGV4dCBoZXJlLi4uJ1wiXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIlxuICAgICAgICAgICAgdHlwZT1cIndoaXRlXCJcbiAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCJcbiAgICAgICAgICAgID4mI3hlOTMyOzwvaVxuICAgICAgICAgID48L2FwcC1jcy1zd2l0Y2hcbiAgICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidHJ1ZVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndvcmtmbG93LWxhYmVsXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwidGl0bGVcIj5MZXZlbCAxPC9wPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cImRlc2NyaXB0aW9uXCI+bGF2ZWwgbmFtZTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0ZXBcIiAqbmdJZj1cInRydWVcIj4xPC9zcGFuPmFwcHJvdmFsIG5hbWVcbiAgICAgICAgICAgICAgICA8L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImNvdW50XCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJsYWJlbE5hbWUucG9wb3ZlcigpXCJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICArOFxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxhcHAtcG9wb3ZlciAjbGFiZWxOYW1lIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZGF0YSBvZiBbMSwgMSwgMSwgMSwgMSwgMSwgMV1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3RlcFwiPjI8L3NwYW4+YXBwcm92YWwgbmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJlZGl0XCIgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY2xvc2UtYnRuXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPjwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxwICpuZ0lmPVwidHJ1ZVwiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxuICAgICAgICAgIFNlbGVjdCBvciBjcmVhdGUgYW4gYXBwcm92YWwgd29ya2Zsb3cgZm9yIHRoaXMgYXNzZXNzbWVudC5cbiAgICAgICAgPC9wPlxuXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIiAqbmdJZj1cInRydWVcIj5cbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uXCI+KyBBZGQgTW9yZSBMZXZlbHM8L2J1dHRvbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cImFzc2Vzc21lbnRTZXJ2aWNlPy5jYXRlZ29yaWVzTGlzdERhdGEkIHwgYXN5bmMgYXMgY2F0ZWdvcmllc1wiXG4+XG4gIDxhcHAtcmFkaW8tbGlzdC13aXRoLXBhZ2luYXRpb25cbiAgICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yID09PSAnY2F0ZWdvcnknXCJcbiAgICBbY2F0ZWdvcnlMaXN0XT1cImNhdGVnb3JpZXM/LmRhdGFcIlxuICAgIFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LkFTU0VTU01FTlRfQ0FUR09SWVwiXG4gICAgW2N1cnJlbnRQYWdlXT1cImNhdGVnb3JpZXM/LmN1cnJlbnRQYWdlXCJcbiAgICBbcmVjb3JkU3RhcnRdPVwiY2F0ZWdvcmllcz8uc3RhcnRfdmFsdWVcIlxuICAgIFtyZWNvcmRFbmRdPVwiY2F0ZWdvcmllcz8uZW5kX3ZhbHVlXCJcbiAgICBbdG90YWxSZWNvcmRzXT1cImNhdGVnb3JpZXM/LnRvdGFsUmVjb3Jkc1wiXG4gICAgW3RvdGFsUGFnZXNdPVwiY2F0ZWdvcmllcz8udG90YWxQYWdlXCJcbiAgICBbbG9hZGluZ109XCJhc3Nlc3NtZW50U2VydmljZT8uY2F0ZWdvcmllc0xvYWRpbmckIHwgYXN5bmNcIlxuICAgIChmZXRjaERhdGEpPVwic2V0Q2F0ZWdvcnkoJGV2ZW50KVwiXG4gICAgKG5leHQpPVwibmV4dCgnQ0FURUdPUlknLCAkZXZlbnQpXCJcbiAgICBbc2VsZWN0ZWRMaXN0XT1cImFzc2Vzc21lbnRGb3JtPy5jYXRlZ29yeSB8IHVuY2F0ZWdvcml6ZWRGaWx0ZXJcIlxuICAgIChjYW5jZWwpPVwiYWN0aXZlRGVzZWxlY3RvcigpXCJcbiAgICAoYmFjayk9XCJhY3RpdmVEZXNlbGVjdG9yKClcIlxuICA+PC9hcHAtcmFkaW8tbGlzdC13aXRoLXBhZ2luYXRpb24+XG48L25nLWNvbnRhaW5lcj5cbjxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XG48YXBwLXNtaWxleS1kaWFsb2ctaW5saW5lXG4gICpuZ0lmPVwic2hvd1NtaWxleVwiXG4gIFttZXNzYWdlXT1cInNtaWxleU1lc3NhZ2VcIlxuICBbYWN0aW9uQnV0dG9uc109XCJhY3Rpb25CdXR0b25zXCJcbiAgKGFjdGlvbik9XCJhY3Rpb24oJGV2ZW50KVwiXG4gIChjbG9zZVNtaWxleSk9XCJjbG9zZVNtaWxleSgkZXZlbnQpXCJcbj5cbjwvYXBwLXNtaWxleS1kaWFsb2ctaW5saW5lPlxuPCEtLSA8YXBwLWNyZWF0ZS1hc3Nlc3NtZW50LWNvbnRhaW5lcj48L2FwcC1jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXI+IC0tPlxuIl19
260
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctYXNzZXNzbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi93b3JrZmxvdy1hc3Nlc3NtZW50L3dvcmtmbG93LWFzc2Vzc21lbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvd29ya2Zsb3ctYXNzZXNzbWVudC93b3JrZmxvdy1hc3Nlc3NtZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBU3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU92RCxNQUFNLE9BQU8sMkJBQTJCO0lBZ0N0QyxZQUNTLGlCQUFvQyxFQUNuQyxXQUF3QixFQUN4QixZQUEwQixFQUMxQixRQUF5QixFQUN6QixhQUE0QixFQUN4QixNQUF1QjtRQUw1QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ25DLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBcEN0QyxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDVixTQUFJLEdBQUcsTUFBTSxDQUFDO1FBQ2QsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsZUFBVSxH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cnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEVkaXRvckNvbmZpZyB9IGZyb20gJ3Zjb21wbHktZWRpdG9yJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25zIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbnMnO1xuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBBc3Nlc3NtZW50U2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2Fzc2Vzc21lbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XG5pbXBvcnQgeyBJZnJhbWVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaWZyYW1lLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtd29ya2Zsb3ctYXNzZXNzbWVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrZmxvdy1hc3Nlc3NtZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd29ya2Zsb3ctYXNzZXNzbWVudC5jb21wb25lbnQubGVzcycsICcuLi9mb3Jtcy5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtmbG93QXNzZXNzbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEFTU0VUUyA9IEFTU0VUUztcbiAgYWN0aXZlU2VsZWN0b3I6IGFueSA9ICcnO1xuICBzdWJtaXR0ZWQgPSBmYWxzZTtcbiAgbG9hZGVyID0gZmFsc2U7XG4gIHNob3dTbWlsZXkgPSBmYWxzZTtcbiAgQElucHV0KCkgbW9kZSA9ICdFRElUJztcbiAgQElucHV0KCkgYXNzZXNzbWVudElkID0gJyc7XG4gIEBJbnB1dCgpIG9wZW5lZEZyb20gPSAnJztcbiAgQE91dHB1dCgpIGRpc2Nvbm5lY3RSZWZyZXNoID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBzaWRlU2VsZWN0b3JFbGVtZW50czogYW55ID0gWydjYXRlZ29yeSddO1xuICBhY3Rpb25CdXR0b25zID0gW1xuICAgIC8vIHsgYnV0dG9uVGV4dDogJ0FkZCBNb3JlIEFzc2Vzc21lbnRzJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogJ2FkZE1vcmUnIH0sXG4gICAge1xuICAgICAgYnV0dG9uVGV4dDogJ0dvIHRvIGFzc2Vzc21lbnQgd29ya3Jvb20nLFxuICAgICAgY2xhc3M6ICdibHVlLWJ0bicsXG4gICAgICBpZDogJ3ZpZXdBc3Nlc3NtZW50JyxcbiAgICB9LFxuICBdO1xuICBhc3Nlc3NtZW50VHlwZUNoYW5nZUFsbG93ZWQgPSB0cnVlO1xuICB0aW1lem9uZSE6IHN0cmluZztcbiAgQE91dHB1dCgpIHBpY2tlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBjbG9zZVdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBhc3Nlc3NtZW50Rm9ybTogYW55ID0ge1xuICAgIGFzc2Vzc21lbnRUeXBlOiAnY29tcGxpYW5jZScsXG4gICAgbmFtZTogJycsXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICAgIGNhdGVnb3J5OiBbXSxcbiAgICBjdXN0b21UYWdzOiBbXSxcbiAgfTtcbiAgYXNzZXNzbWVudERhdGE6IGFueTtcbiAgb3JnYW5pemF0aW9uSWQgPSAwO1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgYXNzZXNzbWVudFNlcnZpY2U6IEFzc2Vzc21lbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxuICAgIHByaXZhdGUgdWlLaXRTZXJ2aWNlOiBVaUtpdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaWZyYW1lU2VydmljZTogSWZyYW1lU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBjb25maWc/OiBDb25maWd1cmF0aW9uc1xuICApIHtcbiAgICB0aGlzLnRpbWV6b25lID0gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyVGltZVpvbmUoKTtcbiAgfVxuICBzZWxlY3RvckNvbmZpZyA9IHtcbiAgICBBU1NFU1NNRU5UX0NBVEdPUlk6IHtcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgYW4gQXNzZXNzbWVudCBDYXRlZ29yeScsXG4gICAgICBlbnRpdHlTaW5ndWxhcjogJ0NhdGVnb3J5IHNlbGVjdGVkLicsXG4gICAgICBlbnRpdHlQbHVyYWw6ICdDYXRlZ29yaWVzIHNlbGVjdGVkLicsXG4gICAgICBkaXNwbGF5S2V5OiAnY2F0ZWdvcnlfbmFtZScsXG4gICAgICBpZGVudGlmaWVyS2V5OiAnaWQnLFxuICAgICAgcGFyZW50S2V5OiAnY2F0ZWdvcnlfcGFyZW50cycsXG4gICAgICBwYXJlbnREaXNwbGF5S2V5OiAncGFyZW50X3RyZWUnLFxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggYW4gYXNzZXNzbWVudCBjYXRlZ29yeS4nLFxuICAgICAgbm9EYXRhVGV4dDogJ05vIGFzc2Vzc21lbnQgY2F0ZWdvcmllcyBmb3VuZC4nLFxuICAgIH0sXG4gIH07XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vdGhpcy5sb2FkZXIgPSB0cnVlO1xuICAgIGlmICh0aGlzLm1vZGUgPT09ICdDUkVBVEUnKSB7XG4gICAgICB0aGlzLm9yZ2FuaXphdGlvbklkID0gdGhpcy5hdXRoU2VydmljZS5nZXRPcmdhbml6YXRpb25JZCgpO1xuICAgIH1cbiAgICAvL3RoaXMuc2V0Q2F0ZWdvcnkoeyBzZWFyY2hLZXk6ICcnLCBwYWdlOiAxIH0pO1xuICAgIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJykge1xuICAgICAgdGhpcy5nZXRBc3Nlc3NtZW50RGV0YWlscygpO1xuICAgIH1cbiAgfVxuXG4gIGdldEFzc2Vzc21lbnREZXRhaWxzKCkge1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmdldEFzc2Vzc21lbnREZXRhaWxzKHRoaXMuYXNzZXNzbWVudElkKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuYXNzZXNzbWVudEZvcm0ubmFtZSA9IHJlcz8uYXNzZXNzbWVudF9uYW1lID8/ICcnO1xuICAgICAgICB0aGlzLmFzc2Vzc21lbnRGb3JtLmRlc2NyaXB0aW9uID0gcmVzPy5kZXNjcmlwdGlvbiA/PyAnJztcbiAgICAgICAgdGhpcy5hc3Nlc3NtZW50Rm9ybS5hc3Nlc3NtZW50VHlwZSA9XG4gICAgICAgICAgcmVzPy5hc3Nlc3NtZW50X3R5cGUgPz8gJ2NvbXBsaWFuY2UnO1xuICAgICAgICB0aGlzLmFzc2Vzc21lbnRGb3JtLmNhdGVnb3J5ID0gcmVzLmNhdGVnb3J5X2Fyci5tYXAoKGVsZTogYW55KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHsgaWQ6IGVsZT8uX2lkLCBjYXRlZ29yeV9uYW1lOiBlbGU/LmNhdGVnb3J5X25hbWUgfTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXNzZXNzbWVudFR5cGVDaGFuZ2VBbGxvd2VkID1cbiAgICAgICAgICByZXM/LmFzc2Vzc21lbnRfdHlwZSA9PT0gJ2NvbXBsaWFuY2UnO1xuICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5zbmFja0Jhci5zaG93KFxuICAgICAgICAgICdPT1BTISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgdGhlIHBhZ2UgY291bGQgbm90IGJlIGxvYWRlZC4gQ291bGQgeW91IHBsZWFzZSB0cnkgb25lIG1vcmUgdGltZT8nLFxuICAgICAgICAgICdhbGVydCdcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvL1RoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIGZldGNoaW5nIHRoZSBsaXN0IG9mIGNhdGVnb3JpZXNcbiAgc2V0Q2F0ZWdvcnkoZXZ0OiBhbnkpIHtcbiAgICB0aGlzLmFzc2Vzc21lbnRTZXJ2aWNlLmZldGNoQ2F0ZWdvcnkoe1xuICAgICAgc2VhcmNoX3RpdGxlOiBldnQuc2VhcmNoS2V5LFxuICAgICAgcGFnZV9ubzogZXZ0LnBhZ2UsXG4gICAgfSk7XG4gIH1cblxuICBhY3RpdmF0ZVNlbGVjdG9yKHR5cGU6IGFueSwgZXZlbnQ6IGJvb2xlYW4pIHtcbiAgICBpZiAodHlwZSA9PT0gJ2NhdGVnb3J5Jykge1xuICAgICAgdGhpcy5zZXRDYXRlZ29yeSh7IHNlYXJjaEtleTogJycsIHBhZ2U6IDEgfSk7XG4gICAgfVxuICAgIHRoaXMuYWN0aXZlU2VsZWN0b3IgPSBldmVudCA/IHR5cGUgOiAnJztcbiAgICBpZiAodGhpcy5zaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyh0eXBlKSkge1xuICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGFjdGl2ZURlc2VsZWN0b3IoKSB7XG4gICAgdGhpcy5hY3RpdmVTZWxlY3RvciA9ICcnO1xuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIG5leHQodHlwZTogc3RyaW5nLCBwYXlsb2FkOiBhbnkpIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ0NBVEVHT1JZJzoge1xuICAgICAgICB0aGlzLmFjdGl2ZURlc2VsZWN0b3IoKTtcbiAgICAgICAgdGhpcy5hc3Nlc3NtZW50Rm9ybS5jYXRlZ29yeSA9IHBheWxvYWQ7XG4gICAgICAgIGlmICh0aGlzLmFzc2Vzc21lbnRGb3JtLmNhdGVnb3J5Py5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgdGhpcy5hc3Nlc3NtZW50Rm9ybS5jYXRlZ29yeSA9IHRoaXMuYXNzZXNzbWVudEZvcm0uY2F0ZWdvcnkuZmlsdGVyKFxuICAgICAgICAgICAgKGVsZTogYW55KSA9PiBlbGU/LmNhdGVnb3J5X25hbWUgIT0gJ3VuY2F0ZWdvcml6ZWQnXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJlbW92ZSh0eXBlOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgIGNhc2UgJ2NhdGVnb3J5JzpcbiAgICAgICAgdGhpcy5hc3Nlc3NtZW50Rm9ybS5jYXRlZ29yeSA9IHRoaXMuYXNzZXNzbWVudEZvcm0uY2F0ZWdvcnkuZmlsdGVyKFxuICAgICAgICAgIChlbGU6IGFueSkgPT4gZWxlPy5pZCAhPT0gZXZlbnQ/LmlkXG4gICAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgZGVzY3JpcHRpb246IEVkaXRvckNvbmZpZyA9IHtcbiAgICBtb2RlOiAncHJpbWUnLFxuICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcbiAgICBsaW5rOiB0cnVlLFxuICAgIHBsYWNlaG9sZGVyOiAnQWRkIGEgZGVzY3JpcHRpb24nLFxuICB9O1xuXG4gIGNoYW5nZUFzc2Vzc21lbnQodHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy5hc3Nlc3NtZW50Rm9ybSA9IHtcbiAgICAgIC4uLnRoaXMuYXNzZXNzbWVudEZvcm0sXG4gICAgICAuLi57IGFzc2Vzc21lbnRUeXBlOiB0eXBlPy50b0xvY2FsZUxvd2VyQ2FzZSgpIH0sXG4gICAgfTtcbiAgICBjb25zb2xlLmxvZygndGhpcy5hc3Nlc3NtZW50Rm9ybSA9PT0+JywgdGhpcy5hc3Nlc3NtZW50Rm9ybSk7XG4gIH1cbiAgY2xvc2VTbWlsZXkoZXZ0OiBhbnkpIHtcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dDogdGhpcy5hc3Nlc3NtZW50SWQsIGNvbmZpcm06IGZhbHNlIH0pO1xuICB9XG5cbiAgYWN0aW9uKGV2dDogYW55KSB7XG4gICAgaWYgKGV2dCA9PT0gJ3ZpZXdBc3Nlc3NtZW50Jykge1xuICAgICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcbiAgICAgIGNvbnN0IHVybCA9IGBodHRwczovLyR7d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lfS9hc3Nlc3NtZW50L2Fzc2Vzc21lbnQtd29ya3Jvb20vP2lkPSR7dGhpcy5hc3Nlc3NtZW50SWR9YDtcbiAgICAgIHRoaXMuaWZyYW1lU2VydmljZS5yZWRpcmVjdElmSW5JZnJhbWUodXJsLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBjaGVja0Rlc2NyaXB0aW9uKCkge1xuICAgIGlmICh0aGlzLmFzc2Vzc21lbnRGb3JtLmRlc2NyaXB0aW9uID09ICc8YnI+Jykge1xuICAgICAgdGhpcy5hc3Nlc3NtZW50Rm9ybS5kZXNjcmlwdGlvbiA9ICcnO1xuICAgIH1cbiAgfVxuXG4gIHN1Ym1pdEFzc2Vzc21lbnQoKSB7XG4gICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xuICAgIGNvbnN0IHZhbGlkID0gdGhpcy52YWxpZGF0ZUFzc2Vzc21lbnQoKTtcbiAgICBpZiAoIXZhbGlkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3JlYXRlQXNzZXNzbWVudCh0aGlzLmFzc2Vzc21lbnRGb3JtKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUFzc2Vzc21lbnQoKSB7XG4gICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xuICAgIGlmIChcbiAgICAgICF0aGlzLmFzc2Vzc21lbnRGb3JtLm5hbWUudHJpbSgpIHx8XG4gICAgICB0aGlzLmFzc2Vzc21lbnRGb3JtLmNhdGVnb3J5Lmxlbmd0aCA9PSAwXG4gICAgKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZUFzc2Vzc21lbnQoYXNzZXNzbWVudEZvcm06IGFueSkge1xuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xuXG4gICAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICAgIGFzc2Vzc21lbnRfbmFtZTogYXNzZXNzbWVudEZvcm0ubmFtZS50cmltKCksXG4gICAgICBkZXNjcmlwdGlvbjogYXNzZXNzbWVudEZvcm0uZGVzY3JpcHRpb24sXG4gICAgICBhc3Nlc3NtZW50X3R5cGU6IGFzc2Vzc21lbnRGb3JtLmFzc2Vzc21lbnRUeXBlLFxuICAgICAgY2F0ZWdvcnlfYXJyOiB0aGlzLmFzc2Vzc21lbnRGb3JtLmNhdGVnb3J5Lm1hcCgoZWxlOiBhbnkpID0+IGVsZS5pZCksXG4gICAgICBhcHByb3ZhbF93b3JrZmxvd19hcnI6IHtcbiAgICAgICAgdGVzdDogJ3Rlc3QnLFxuICAgICAgfSxcbiAgICAgIGFwcHJvdmFsX3JlcXVpcmVkOiB0cnVlLFxuICAgICAgc291cmNlX3BhZ2U6ICdjb21wbGlhbmNlJyxcbiAgICB9O1xuICAgIGlmICh0aGlzLm1vZGUgPT0gJ0NSRUFURScpIHtcbiAgICAgIHRoaXMuYXNzZXNzbWVudFNlcnZpY2UuYWRkQXNzZXNzbWVudChwYXlsb2FkKS5zdWJzY3JpYmUoXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZGlzY29ubmVjdFJlZnJlc2guZW1pdChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5hc3Nlc3NtZW50SWQgPSByZXM/Ll9pZDtcbiAgICAgICAgICBjb25zdCB1cmwgPSBgaHR0cHM6Ly8ke3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZX0vYXNzZXNzbWVudC9jcmVhdGUvJHtyZXM/Ll9pZH1gO1xuICAgICAgICAgIHRoaXMuaWZyYW1lU2VydmljZS5yZWRpcmVjdElmSW5JZnJhbWUodXJsLCB0cnVlKTtcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcbiAgICAgICAgICAgICdPT1BTISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgdGhlIHBhZ2UgY291bGQgbm90IGJlIGxvYWRlZC4gQ291bGQgeW91IHBsZWFzZSB0cnkgb25lIG1vcmUgdGltZT8nLFxuICAgICAgICAgICAgJ2FsZXJ0J1xuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJykge1xuICAgICAgdGhpcy5hc3Nlc3NtZW50U2VydmljZVxuICAgICAgICAudXBkYXRlQXNzZXNzbWVudCh0aGlzLmFzc2Vzc21lbnRJZCwgcGF5bG9hZClcbiAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zaG93U21pbGV5ID0gdHJ1ZTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnI/LmVycm9yLm1lc3NhZ2Uuc3RhcnRzV2l0aCgnTm8gY2hhbmdlcycpKSB7XG4gICAgICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coXG4gICAgICAgICAgICAgICAgJ09PUFMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB0aGUgcGFnZSBjb3VsZCBub3QgYmUgbG9hZGVkLiBDb3VsZCB5b3UgcGxlYXNlIHRyeSBvbmUgbW9yZSB0aW1lPycsXG4gICAgICAgICAgICAgICAgJ2FsZXJ0J1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIndvcmtmbG93LWFzc2Vzc21lbnRcIj5cbiAgPCEtLSBBc3Nlc3NtZW50IFR5cGUgLS0+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiIFtjbGFzcy5hY3RpdmVdPVwiZmFsc2VcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZmFsc2VcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGVmdCBjaGVja2VkXCI+XG4gICAgICA8c3ZnXG4gICAgICAgIGNsYXNzPVwiY2hlY2tJY29uXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxuICAgICAgPlxuICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIlxuICAgICAgICAgID5BU1NFU1NNRU5UIFRZUEUgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbFxuICAgICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaXNrLXR5cGUtZmllbGRcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInR5cGUtaXRlbVwiXG4gICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cIlxuICAgICAgICAgICAgICBhc3Nlc3NtZW50Rm9ybT8uYXNzZXNzbWVudFR5cGUgPT09ICdjb21wbGlhbmNlX2F1ZGl0J1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhYXNzZXNzbWVudFR5cGVDaGFuZ2VBbGxvd2VkXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZUFzc2Vzc21lbnQoJ2NvbXBsaWFuY2VfYXVkaXQnKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIENPTVBMSUFOQ0UgQVVESVRcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBpbmZvXCJcbiAgICAgICAgICAgICAgYXBwVG9vbHRpcD1cIlRoaXMgb3B0aW9uIGxldHMgeW91IGNyZWF0ZSBhICdDb21wbGlhbmNlIEF1ZGl0IFRlbXBsYXRlJyB0aGF0IGNhbiBiZSB1c2VkIHRvIGNvbmR1Y3QgdmFyaW91cyBzaXRlLCB1c2VyIGFuZCBkZXBhcnRtZW50IGxldmVsIGF1ZGl0cy4gT25jZSB0aGUgYXNzZXNzbWVudCB0ZW1wbGF0ZSBpcyBjcmVhdGVkLCB5b3UgY2FuIGRpcmVjdGx5IGNyZWF0ZSB0aGUgcmVzcG9uc2liaWxpdHkgYW5kIGFzc2lnbiBpdCB0byB0aGUgcmVsZXZhbnQgYXNzaWduZWUuPGJyPjxiPk5vdGU6PC9iPiBUaGVzZSBjb21wbGlhbmNlIGF1ZGl0IHRlbXBsYXRlcyBjYW4gb25seSBiZSBsaW5rZWQgd2l0aCBhbiBhdWRpdCByZXNwb25zaWJpbGl0eSB0aGF0IGlzIGNyZWF0ZWQgYXMgYSBwYXJ0IG9mIHRoZSBjcmVhdGluZyBzdWNoIGFzc2Vzc21lbnRzLlwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIlxuICAgICAgICAgICAgICA+JiN4ZTkzMjs8L2lcbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInR5cGUtaXRlbVwiXG4gICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgYXNzZXNzbWVudFR5cGVDaGFuZ2VBbGxvd2VkXG4gICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgIDogJ1lvdSBDYW5ub3QgY2hhbmdlIHRoZSBhc3Nlc3NtZW50IHR5cGUuJ1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICB0eXBlPVwiYmxhY2tcIlxuICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFzc2Vzc21lbnRGb3JtPy5hc3Nlc3NtZW50VHlwZSA9PT0gJ2NvbXBsaWFuY2UnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhYXNzZXNzbWVudFR5cGVDaGFuZ2VBbGxvd2VkXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZUFzc2Vzc21lbnQoJ2NvbXBsaWFuY2UnKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIE90aGVyXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnMgaW5mb1wiXG4gICAgICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCIhYXNzZXNzbWVudFR5cGVDaGFuZ2VBbGxvd2VkXCJcbiAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgJ1RoaXMgb3B0aW9uIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhbnkgb3V0Y29tZSBiYXNlZCBxdWVzdGlvbm5haXJlIG9yIHNlbGYtYXNzZXNzbWVudCBxdWVzdGlvbm5haXJlcy4gT25jZSB0aGUgdGVtcGxhdGVzIGFyZSBjcmVhdGVkLCB0aGV5IGNhbiBiZSBsaW5rZWQgd2l0aCBtdWx0aXBsZSByZXNwb25zaWJpbGl0aWVzLidcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgdHlwZT1cIndoaXRlXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgID4mI3hlOTMyOzwvaVxuICAgICAgICAgICAgPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFja2dyb3VuZC1nbGlkZXJcIj48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cCAqbmdJZj1cImZhbHNlXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+QWRkIGFuIGFzc2Vzc21lbnQgdHlwZTwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIEFzc2Vzc21lbnQgTmFtZSAtLT5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxuICAgIFtjbGFzcy5hY3RpdmVdPVwiZmFsc2VcIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJcbiAgICAgIGFjdGl2ZVNlbGVjdG9yICYmXG4gICAgICBhY3RpdmVTZWxlY3RvciAhPT0gJ25hbWUnICYmXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVTZWxlY3RvcilcbiAgICBcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJmYWxzZVwiPlxuICAgICAgPGltZ1xuICAgICAgICBbc3JjXT1cIkFTU0VUUy53aGF0XCJcbiAgICAgICAgYWx0PVwiaW1cIlxuICAgICAgICAqbmdJZj1cIiFhc3Nlc3NtZW50Rm9ybS5uYW1lLnRyaW0oKSB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ25hbWUnXCJcbiAgICAgIC8+XG5cbiAgICAgIDxzdmdcbiAgICAgICAgKm5nSWY9XCJhc3Nlc3NtZW50Rm9ybS5uYW1lLnRyaW0oKSAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ25hbWUnXCJcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXG4gICAgICA+XG4gICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxuICAgICAgICA8cGF0aFxuICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXG4gICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcbiAgICAgICAgLz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cbiAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiXG4gICAgICAgICAgPkFzc2Vzc21lbnQgTmFtZSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXG4gICAgICAgID5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgIChrZXlkb3duKT1cImFjdGl2ZVNlbGVjdG9yID0gJ25hbWUnXCJcbiAgICAgICAgICAoZm9jdXNpbik9XCJhY3RpdmF0ZVNlbGVjdG9yKCduYW1lJywgdHJ1ZSlcIlxuICAgICAgICAgIChmb2N1c291dCk9XCJhY3RpdmF0ZVNlbGVjdG9yKCduYW1lJywgZmFsc2UpXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cImFzc2Vzc21lbnRGb3JtLm5hbWVcIlxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiQWRkIGFuIGFzc2Vzc21lbnQgbmFtZVwiXG4gICAgICAgICAgKm5nSWY9XCJhc3Nlc3NtZW50Rm9ybS5uYW1lID09ICcnIHx8IGFjdGl2ZVNlbGVjdG9yID09PSAnbmFtZSdcIlxuICAgICAgICAvPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJzZWxlY3RlZFwiXG4gICAgICAgICAgKm5nSWY9XCJhc3Nlc3NtZW50Rm9ybS5uYW1lLmxlbmd0aCAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ25hbWUnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7IGFzc2Vzc21lbnRGb3JtLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJhY3RpdmF0ZVNlbGVjdG9yKCduYW1lJywgdHJ1ZSlcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8cFxuICAgICAgICAgICpuZ0lmPVwic3VibWl0dGVkICYmICFhc3Nlc3NtZW50Rm9ybS5uYW1lLnRyaW0oKVwiXG4gICAgICAgICAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcbiAgICAgICAgPlxuICAgICAgICAgIEVudGVyIGEgbmFtZSBmb3IgdGhpcyBBc3Nlc3NtZW50LlxuICAgICAgICA8L3A+XG4gICAgICAgIDx2Y29tcGx5LWVkaXRvclxuICAgICAgICAgIFsobmdNb2RlbCldPVwiYXNzZXNzbWVudEZvcm0uZGVzY3JpcHRpb25cIlxuICAgICAgICAgIFtlZGl0b3JDb25maWddPVwiZGVzY3JpcHRpb25cIlxuICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCJcbiAgICAgICAgPjwvdmNvbXBseS1lZGl0b3I+XG4gICAgICAgIDwhLS0gPHAgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgKGFzc2Vzc21lbnRGb3JtLmFzc2Vzc21lbnRUeXBlID09PSdDT01QTElBTkNFJyAmJiAhYXNzZXNzbWVudEZvcm0/LmRlc2NyaXB0aW9uPy50cmltKCk/Lmxlbmd0aClcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5BZGQgYW4gYXNzZXNzbWVudCBkZXNjcmlwdGlvbjwvcD4gLS0+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBBc3Nlc3NtZW50IENhdGVnb3J5IC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVTZWxlY3RvciA9PT0gJ2NhdGVnb3J5J1wiXG4gICAgW2NsYXNzLmRpc2FibGVkXT1cIlxuICAgICAgYWN0aXZlU2VsZWN0b3IgJiZcbiAgICAgIGFjdGl2ZVNlbGVjdG9yICE9PSAnY2F0ZWdvcnknICYmXG4gICAgICBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVTZWxlY3RvcilcbiAgICBcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJhc3Nlc3NtZW50Rm9ybT8uY2F0ZWdvcnk/Lmxlbmd0aFwiPlxuICAgICAgPGltZ1xuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICFhc3Nlc3NtZW50Rm9ybT8uY2F0ZWdvcnk/Lmxlbmd0aCB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ2NhdGVnb3J5J1xuICAgICAgICBcIlxuICAgICAgICBbc3JjXT1cIkFTU0VUUy5jYXNlX2NhdGVnb3J5XCJcbiAgICAgICAgYWx0PVwiXCJcbiAgICAgIC8+XG5cbiAgICAgIDxzdmdcbiAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIGFzc2Vzc21lbnRGb3JtPy5jYXRlZ29yeT8ubGVuZ3RoICYmIGFjdGl2ZVNlbGVjdG9yICE9PSAnY2F0ZWdvcnknXG4gICAgICAgIFwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcbiAgICAgID5cbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxuICAgICAgICAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCJcbiAgICAgICAgICA+QVNTRVNTTUVOVCBDQVRFR09SWSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXG4gICAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiICpuZ0lmPVwiIWFzc2Vzc21lbnRGb3JtPy5jYXRlZ29yeT8ubGVuZ3RoXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aXZhdGVTZWxlY3RvcignY2F0ZWdvcnknLCB0cnVlKVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCBjYXRlZ29yeSBmb3IgdGhpcyBhc3Nlc3NtZW50XCJcbiAgICAgICAgICAgIHJlYWRvbmx5XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwiYXNzZXNzbWVudEZvcm0/LmNhdGVnb3J5Py5sZW5ndGhcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxuICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIlxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIGFzc2Vzc21lbnRGb3JtPy5jYXRlZ29yeVswXT8uY2F0ZWdvcnlfbmFtZSAhPT0gJ3VuY2F0ZWdvcml6ZWQnXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmUoJ2NhdGVnb3J5JywgYXNzZXNzbWVudEZvcm0uY2F0ZWdvcnlbMF0pXCJcbiAgICAgICAgICAgICAgPiYjeGU5YWU7PC9pXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImFzc2Vzc21lbnRGb3JtPy5jYXRlZ29yeVswXT8uY2F0ZWdvcnlfbmFtZVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCJcbiAgICAgICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJsYWNrXCJcbiAgICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIlxuICAgICAgICAgICAgICA+e3sgYXNzZXNzbWVudEZvcm0/LmNhdGVnb3J5WzBdPy5jYXRlZ29yeV9uYW1lIH19PC9zcGFuXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiXG4gICAgICAgICAgICAgIGFwcFBvcG92ZXJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNhdGVnb3J5LnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhc3Nlc3NtZW50Rm9ybT8uY2F0ZWdvcnk/Lmxlbmd0aCA+IDFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAre3sgYXNzZXNzbWVudEZvcm0/LmNhdGVnb3J5Py5sZW5ndGggLSAxIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSAqbmdJZj1cImFzc2Vzc21lbnRGb3JtPy5jYXRlZ29yeVswXT8uY2F0ZWdvcnlfbmFtZSAhPT0gJ3VuY2F0ZWdvcml6ZWQnXCIgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJyZW1vdmUoJ2NhdGVnb3J5Jyxhc3Nlc3NtZW50Rm9ybS5jYXRlZ29yeVswXSlcIj4mI3hlOTBkOzwvaT57e2Fzc2Vzc21lbnRGb3JtPy5jYXRlZ29yeVswXT8uY2F0ZWdvcnlfbmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJhc3Nlc3NtZW50Rm9ybT8uY2F0ZWdvcnk/Lmxlbmd0aCA+IDFcIiBhcHBQb3BvdmVyIChjbGljayk9XCJjYXRlZ29yeS5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPit7e2Fzc2Vzc21lbnRGb3JtPy5jYXRlZ29yeT8ubGVuZ3RoIC0xfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3IgIT09ICdjYXRlZ29yeSdcIlxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0XCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgKGNsaWNrKT1cImFjdGl2YXRlU2VsZWN0b3IoJ2NhdGVnb3J5JywgdHJ1ZSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT4gRWRpdFxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHBcbiAgICAgICAgICAqbmdJZj1cInN1Ym1pdHRlZCAmJiAhYXNzZXNzbWVudEZvcm0/LmNhdGVnb3J5Py5sZW5ndGhcIlxuICAgICAgICAgIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgID5cbiAgICAgICAgICBTZWxlY3QgdGhlIEFzc2Vzc21lbnQgQ2F0ZWdvcnkuXG4gICAgICAgIDwvcD5cbiAgICAgICAgPGFwcC1wb3BvdmVyICNjYXRlZ29yeSBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxuICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgIGxldCBjYXRlZ29yeSBvZiBhc3Nlc3NtZW50Rm9ybT8uY2F0ZWdvcnkgfCBzbGljZSA6IDE7XG4gICAgICAgICAgICAgICAgICBsZXQgaiA9IGluZGV4XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cInJlbW92ZSgnY2F0ZWdvcnknLCBjYXRlZ29yeSlcIlxuICAgICAgICAgICAgICAgICAgICAgID4mI3hlOTBkOzwvaVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGNhdGVnb3J5Py5jYXRlZ29yeV9uYW1lIH19XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXNzZXNzbWVudEZvcm0/LmN1c3RvbVRhZ3M/Lmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidngtZm9ybS1ncm91cFwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHRhZyBvZiBhc3Nlc3NtZW50Rm9ybS5jdXN0b21UYWdzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj57eyB0YWcuY3VzdG9tX3RhZ19uYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGFnLmN1c3RvbV90YWdfdmFsdWVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInRhZy5jdXN0b21fdGFnX25hbWVcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQXNzZXNzbWVudCBBcHByb3ZhbCBXb3JrZmxvdyAtLT5cbiAgPGRpdlxuICAgICpuZ0lmPVwiZmFsc2VcIlxuICAgIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxuICAgIFtjbGFzcy5hY3RpdmVdPVwiZmFsc2VcIlxuICAgIFtjbGFzcy5kaXNhYmxlZF09XCJmYWxzZVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImZhbHNlXCI+XG4gICAgICA8aW1nICpuZ0lmPVwidHJ1ZVwiIFtzcmNdPVwiQVNTRVRTLmFwcHJvdmFsXCIgYWx0PVwiaW1cIiAvPlxuXG4gICAgICA8c3ZnXG4gICAgICAgICpuZ0lmPVwiZmFsc2VcIlxuICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcbiAgICAgID5cbiAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCJcbiAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIlxuICAgICAgICAvPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cCBhcHByb3ZhbC13b3JrZmxvd1wiIFtjbGFzcy5kaXNhYmxlZF09XCJmYWxzZVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+XG4gICAgICAgICAgQXBwcm92YWwgd29ya2Zsb3cgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiPkNSRUFURSBBIE5FVyBBUFBST1ZBTCBXT1JLRkxPVzwvYnV0dG9uPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCIgW2NsYXNzLmRpc2FibGVkXT1cImZhbHNlXCIgKm5nSWY9XCJ0cnVlXCI+XG4gICAgICAgICAgPGNzLXNlbGVjdCBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjdCBhcHByb3ZlcnMgZm9yIHRoaXMgYXNzZXNzbWVudCdcIj5cbiAgICAgICAgICAgIDxjcy1vcHRpb24+dGVzdDwvY3Mtb3B0aW9uPlxuICAgICAgICAgICAgPGNzLW9wdGlvbj5DcmVhdGUgYSBuZXcgYXBwcm92YWwgd29ya2Zsb3c8L2NzLW9wdGlvbj5cbiAgICAgICAgICA8L2NzLXNlbGVjdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxhcHAtY3Mtc3dpdGNoXG4gICAgICAgICAgPkFQUFJPVkFMIE5PVCBSRVFVSVJFRFxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBjbGFzcz1cImljb25zXCJcbiAgICAgICAgICAgIFthcHBUb29sdGlwXT1cIidBcHByb3ZhbCB3b3JrZmxvdyBpbmZvIHRleHQgaGVyZS4uLidcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCJcbiAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiXG4gICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICA+JiN4ZTkzMjs8L2lcbiAgICAgICAgICA+PC9hcHAtY3Mtc3dpdGNoXG4gICAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRydWVcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3b3JrZmxvdy1sYWJlbFwiPlxuICAgICAgICAgICAgICA8cCBjbGFzcz1cInRpdGxlXCI+TGV2ZWwgMTwvcD5cbiAgICAgICAgICAgICAgPHAgY2xhc3M9XCJkZXNjcmlwdGlvblwiPmxhdmVsIG5hbWU8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdGVwXCIgKm5nSWY9XCJ0cnVlXCI+MTwvc3Bhbj5hcHByb3ZhbCBuYW1lXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb3VudFwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBhcHBQb3BvdmVyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibGFiZWxOYW1lLnBvcG92ZXIoKVwiXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgKzhcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YXBwLXBvcG92ZXIgI2xhYmVsTmFtZSBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGRhdGEgb2YgWzEsIDEsIDEsIDEsIDEsIDEsIDFdXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN0ZXBcIj4yPC9zcGFuPmFwcHJvdmFsIG5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWRpdFwiIHR5cGU9XCJidXR0b25cIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+RWRpdFxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ0blwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT48L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8cCAqbmdJZj1cInRydWVcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cbiAgICAgICAgICBTZWxlY3Qgb3IgY3JlYXRlIGFuIGFwcHJvdmFsIHdvcmtmbG93IGZvciB0aGlzIGFzc2Vzc21lbnQuXG4gICAgICAgIDwvcD5cblxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCIgKm5nSWY9XCJ0cnVlXCI+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvblwiPisgQWRkIE1vcmUgTGV2ZWxzPC9idXR0b24+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJhc3Nlc3NtZW50U2VydmljZT8uY2F0ZWdvcmllc0xpc3REYXRhJCB8IGFzeW5jIGFzIGNhdGVnb3JpZXNcIlxuPlxuICA8YXBwLXJhZGlvLWxpc3Qtd2l0aC1wYWdpbmF0aW9uXG4gICAgKm5nSWY9XCJhY3RpdmVTZWxlY3RvciA9PT0gJ2NhdGVnb3J5J1wiXG4gICAgW2NhdGVnb3J5TGlzdF09XCJjYXRlZ29yaWVzPy5kYXRhXCJcbiAgICBbY29uZmlnXT1cInNlbGVjdG9yQ29uZmlnPy5BU1NFU1NNRU5UX0NBVEdPUllcIlxuICAgIFtjdXJyZW50UGFnZV09XCJjYXRlZ29yaWVzPy5jdXJyZW50UGFnZVwiXG4gICAgW3JlY29yZFN0YXJ0XT1cImNhdGVnb3JpZXM/LnN0YXJ0X3ZhbHVlXCJcbiAgICBbcmVjb3JkRW5kXT1cImNhdGVnb3JpZXM/LmVuZF92YWx1ZVwiXG4gICAgW3RvdGFsUmVjb3Jkc109XCJjYXRlZ29yaWVzPy50b3RhbFJlY29yZHNcIlxuICAgIFt0b3RhbFBhZ2VzXT1cImNhdGVnb3JpZXM/LnRvdGFsUGFnZVwiXG4gICAgW2xvYWRpbmddPVwiYXNzZXNzbWVudFNlcnZpY2U/LmNhdGVnb3JpZXNMb2FkaW5nJCB8IGFzeW5jXCJcbiAgICAoZmV0Y2hEYXRhKT1cInNldENhdGVnb3J5KCRldmVudClcIlxuICAgIChuZXh0KT1cIm5leHQoJ0NBVEVHT1JZJywgJGV2ZW50KVwiXG4gICAgW3NlbGVjdGVkTGlzdF09XCJhc3Nlc3NtZW50Rm9ybT8uY2F0ZWdvcnkgfCB1bmNhdGVnb3JpemVkRmlsdGVyXCJcbiAgICAoY2FuY2VsKT1cImFjdGl2ZURlc2VsZWN0b3IoKVwiXG4gICAgKGJhY2spPVwiYWN0aXZlRGVzZWxlY3RvcigpXCJcbiAgPjwvYXBwLXJhZGlvLWxpc3Qtd2l0aC1wYWdpbmF0aW9uPlxuPC9uZy1jb250YWluZXI+XG48YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxuPGFwcC1zbWlsZXktZGlhbG9nLWlubGluZVxuICAqbmdJZj1cInNob3dTbWlsZXlcIlxuICBbbWVzc2FnZV09XCJzbWlsZXlNZXNzYWdlXCJcbiAgW2FjdGlvbkJ1dHRvbnNdPVwiYWN0aW9uQnV0dG9uc1wiXG4gIChhY3Rpb24pPVwiYWN0aW9uKCRldmVudClcIlxuICAoY2xvc2VTbWlsZXkpPVwiY2xvc2VTbWlsZXkoJGV2ZW50KVwiXG4+XG48L2FwcC1zbWlsZXktZGlhbG9nLWlubGluZT5cbjwhLS0gPGFwcC1jcmVhdGUtYXNzZXNzbWVudC1jb250YWluZXI+PC9hcHAtY3JlYXRlLWFzc2Vzc21lbnQtY29udGFpbmVyPiAtLT5cbiJdfQ==