@resolveio/client-lib-core 2.0.12 → 15.0.0

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 (100) hide show
  1. package/esm2020/lib/account-manager.service.mjs +4 -4
  2. package/esm2020/lib/auth/auth-guard.service.mjs +138 -92
  3. package/esm2020/lib/auth/auth-permissions.service.mjs +4 -4
  4. package/esm2020/lib/auth/auth.service.mjs +7 -7
  5. package/esm2020/lib/auth/auth365.component.mjs +4 -4
  6. package/esm2020/lib/auth/can-deactivate-guard.service.mjs +13 -4
  7. package/esm2020/lib/auth/enroll.component.mjs +5 -5
  8. package/esm2020/lib/auth/forgot-password.component.mjs +5 -5
  9. package/esm2020/lib/core.component.mjs +8 -8
  10. package/esm2020/lib/core.module.mjs +11 -5
  11. package/esm2020/lib/core.service.mjs +4 -4
  12. package/esm2020/lib/directive/focus.mjs +4 -4
  13. package/esm2020/lib/directive/scroll.mjs +4 -4
  14. package/esm2020/lib/home/home.component.mjs +5 -5
  15. package/esm2020/lib/logger/logger.component.mjs +5 -5
  16. package/esm2020/lib/models/permission.model.mjs +1 -1
  17. package/esm2020/lib/models/user.model.mjs +1 -1
  18. package/esm2020/lib/offline-manager.service.mjs +4 -4
  19. package/esm2020/lib/pipes/domsanitizor.pipe.mjs +4 -4
  20. package/esm2020/lib/pipes/filter.pipe.mjs +7 -7
  21. package/esm2020/lib/pipes/json-parse.pipe.mjs +4 -4
  22. package/esm2020/lib/pipes/minus-currency.pipe.mjs +4 -4
  23. package/esm2020/lib/pipes/phone.pipe.mjs +4 -4
  24. package/esm2020/lib/pipes/pipe.module.mjs +5 -5
  25. package/esm2020/lib/pipes/reverse-list.pipe.mjs +4 -4
  26. package/esm2020/lib/pipes/titlecase.pipe.mjs +4 -4
  27. package/esm2020/lib/report-builder.permission.mjs +5 -5
  28. package/esm2020/lib/resolveio-class.mjs +4 -4
  29. package/esm2020/lib/shared/shared.module.mjs +5 -5
  30. package/esm2020/lib/socket-manager.service.mjs +59 -75
  31. package/esm2020/lib/socket.service.mjs +74 -9
  32. package/esm2020/lib/super-admin.permission.mjs +4 -4
  33. package/esm2020/lib/support-ticket/detail/support-ticket-detail.component.mjs +5 -5
  34. package/esm2020/lib/support-ticket/edit/support-ticket-edit.component.mjs +5 -5
  35. package/esm2020/lib/support-ticket/list/support-ticket-list.component.mjs +4 -4
  36. package/esm2020/lib/support-ticket/new/support-ticket-new.component.mjs +5 -5
  37. package/esm2020/lib/support-ticket/support-ticket.component.mjs +4 -4
  38. package/esm2020/lib/support-ticket/support-ticket.module.mjs +5 -5
  39. package/esm2020/lib/support-ticket/support-ticket.service.mjs +4 -4
  40. package/esm2020/lib/token-manager.service.mjs +4 -4
  41. package/esm2020/lib/user-settings/settings/users-settings.component.mjs +5 -5
  42. package/esm2020/lib/user-settings/user-settings.component.mjs +4 -4
  43. package/esm2020/lib/user-settings/user-settings.module.mjs +5 -5
  44. package/esm2020/lib/user-settings/user-settings.permission.mjs +2 -2
  45. package/esm2020/lib/user-settings/user-settings.service.mjs +4 -4
  46. package/esm2020/lib/util/aws.service.mjs +4 -4
  47. package/esm2020/lib/util/common.helper.mjs +28 -35
  48. package/esm2020/lib/util/validation.service.mjs +12 -4
  49. package/esm2020/lib/util/window-resize.service.mjs +4 -4
  50. package/esm2020/lib/util/window.service.mjs +4 -4
  51. package/esm2020/lib/widgets/alert/alert.service.mjs +7 -5
  52. package/esm2020/lib/widgets/collapse-table/collapse-table.component.mjs +5 -5
  53. package/esm2020/lib/widgets/collapse-table/collapse-table.module.mjs +5 -5
  54. package/esm2020/lib/widgets/data-table/data-table.component.mjs +5 -5
  55. package/esm2020/lib/widgets/data-table/data-table.module.mjs +5 -5
  56. package/esm2020/lib/widgets/date-shortcut/date-shortcut.component.mjs +4 -4
  57. package/esm2020/lib/widgets/date-shortcut/date-shortcut.module.mjs +5 -5
  58. package/esm2020/lib/widgets/dialog/dialog.confirm.content.mjs +4 -4
  59. package/esm2020/lib/widgets/dialog/dialog.error.content.mjs +4 -4
  60. package/esm2020/lib/widgets/dialog/dialog.input.content.mjs +4 -4
  61. package/esm2020/lib/widgets/dialog/dialog.login.content.mjs +4 -4
  62. package/esm2020/lib/widgets/dialog/dialog.notify.content.mjs +4 -4
  63. package/esm2020/lib/widgets/dialog/dialog.register.content.mjs +4 -4
  64. package/esm2020/lib/widgets/dialog/dialog.select-array-objs.content.mjs +4 -4
  65. package/esm2020/lib/widgets/dialog/dialog.select-array.content.mjs +4 -4
  66. package/esm2020/lib/widgets/dialog/dialog.select-data-labels.content.mjs +4 -4
  67. package/esm2020/lib/widgets/dialog/dialog.select-datetime.content.mjs +13 -9
  68. package/esm2020/lib/widgets/dialog/dialog.select-with-buttons-url.content.mjs +4 -4
  69. package/esm2020/lib/widgets/dialog/dialog.service.mjs +4 -4
  70. package/esm2020/lib/widgets/file/file-upload.component.mjs +5 -5
  71. package/esm2020/lib/widgets/file/file-upload.module.mjs +5 -5
  72. package/esm2020/lib/widgets/form-button/form-button.component.mjs +5 -5
  73. package/esm2020/lib/widgets/form-button/form-button.module.mjs +5 -5
  74. package/esm2020/lib/widgets/navbar-main/navbar-main.component.mjs +5 -5
  75. package/esm2020/lib/widgets/navbar-module/navbar-module.component.mjs +30 -57
  76. package/esm2020/lib/widgets/responsive-button-group/responsive-button-group.component.mjs +4 -4
  77. package/esm2020/lib/widgets/responsive-button-group/responsive-button-group.module.mjs +5 -5
  78. package/esm2020/lib/widgets/scheduler/scheduler.component.mjs +4 -4
  79. package/esm2020/lib/widgets/scheduler/scheduler.module.mjs +5 -5
  80. package/esm2020/lib/widgets/sort-table/sort-table-header.component.mjs +4 -4
  81. package/esm2020/lib/widgets/sort-table/sort-table-ngfor.component.mjs +4 -4
  82. package/esm2020/lib/widgets/sort-table/sort-table.directive.mjs +4 -4
  83. package/esm2020/lib/widgets/sort-table/sort-table.module.mjs +5 -5
  84. package/esm2020/lib/widgets/user-role/user-role.component.mjs +4 -4
  85. package/esm2020/lib/widgets/user-role/user-role.module.mjs +5 -5
  86. package/fesm2015/resolveio-client-lib-core.mjs +637 -560
  87. package/fesm2015/resolveio-client-lib-core.mjs.map +1 -1
  88. package/fesm2020/resolveio-client-lib-core.mjs +637 -560
  89. package/fesm2020/resolveio-client-lib-core.mjs.map +1 -1
  90. package/lib/auth/auth-guard.service.d.ts +26 -2
  91. package/lib/auth/can-deactivate-guard.service.d.ts +11 -1
  92. package/lib/models/permission.model.d.ts +2 -1
  93. package/lib/models/user.model.d.ts +1 -1
  94. package/lib/offline-manager.service.d.ts +1 -1
  95. package/lib/socket-manager.service.d.ts +1 -0
  96. package/lib/socket.service.d.ts +8 -3
  97. package/lib/token-manager.service.d.ts +1 -1
  98. package/lib/util/common.helper.d.ts +1 -1
  99. package/lib/util/validation.service.d.ts +3 -0
  100. package/package.json +5 -36
@@ -192,13 +192,13 @@ export class SupportTicketDetailComponent extends BaseComponent {
192
192
  return this._services._account.getUser()._id === message.id_user;
193
193
  }
194
194
  }
195
- SupportTicketDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SupportTicketDetailComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.SupportTicketService }, { token: i3.ProviderService }, { token: i4.DialogService }], target: i0.ɵɵFactoryTarget.Component });
196
- SupportTicketDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SupportTicketDetailComponent, selector: "ng-component", providers: [ProviderService], viewQueries: [{ propertyName: "fileUpload", first: true, predicate: ["fileUpload"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<style>\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n\n ngb-accordion {\n width: 100%;\n }\n\n dl {\n margin-bottom: 0px;\n }\n\n .selected {\n background-color: lightblue;\n }\n</style>\n\n<div class=\"col-lg-12\" *ngIf=\"data\">\n <div class=\"row\">\n <ngb-accordion #acc=\"ngbAccordion\" activeIds=\"supportTicketInfo, supportTicketMessages, files\">\n <ngb-panel id=\"supportTicketInfo\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Support Ticket Info</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-plus pull-right\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-minus pull-right\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"card\">\n <div class=\"card-header\"><b>General Info</b></div>\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col-lg-4\">\n <dl>\n <dt>Support Ticket #</dt>\n <dd>{{data.support_ticket_number | number}}</dd>\n <dt>Date Created</dt>\n <dd>{{data.date_created | date: 'short'}}</dd>\n </dl>\n </div>\n <div class=\"col-lg-4\">\n <dl>\n <dt>Type</dt>\n <dd>{{data.type}}</dd>\n <dt>User</dt>\n <dd>{{data.user_created}}</dd>\n </dl>\n </div>\n <div class=\"col-lg-4\">\n <dl>\n <dt>Status</dt>\n <dd>{{ data.status }}</dd>\n </dl>\n </div>\n </div>\n </div>\n </div>\n <div class=\"card\">\n <div class=\"card-header\"><b>Problem Description</b></div>\n <div class=\"card-body\">\n <pre>{{data.issue}}</pre>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n <ngb-panel id=\"supportTicketMessages\" *ngIf=\"data\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Messages</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketMessages')\" class=\"fa fa-plus pull-right\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketMessages')\" class=\"fa fa-minus pull-right\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <div class=\"card\" *ngFor=\"let message of data.messages; let i = index;\">\n <div class=\"card-header\"><b>User: {{message.user}} - Date: {{message.date | date : 'short'}}</b></div>\n <div class=\"card-body\" [ngClass]=\"[message.type === 'ResolveIO' ? 'selected' : '']\">\n <div class=\"row\" style=\"width: 100%\">\n <div class=\"col-lg-10\">\n <pre>{{message.message}}</pre>\n </div>\n <div class=\"col-lg-2\">\n <responsive-button-group collapseSize=\"900\">\n <button type=\"button\" class=\"btn btn-warning\" (click)=\"editMessage(i)\" *ngIf=\"isMyMessage(message)\">Edit</button>\n <button type=\"button\" class=\"btn btn-danger\" (click)=\"deleteMessage(i)\" *ngIf=\"isMyMessage(message)\">Delete</button>\n </responsive-button-group>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\" style=\"margin-top: 10px;\">\n <div class=\"col-lg-12\">\n <button type=\"button\" class=\"btn btn-success\" (click)=\"newMessage()\">New Message</button>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n <ngb-panel id=\"files\">\n\t\t\t\t<ng-template ngbPanelTitle>\n\t\t\t\t\t<div> \n\t\t\t\t\t\t<label class=\"label-accordion\">Support Ticket Files</label>\n\t\t\t\t\t\t<i *ngIf=\"!acc.activeIds.includes('files')\" class=\"fa fa-plus pull-right\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t<i *ngIf=\"acc.activeIds.includes('files')\" class=\"fa fa-minus pull-right\" aria-hidden=\"true\"></i>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template ngbPanelContent>\n\t\t\t\t\t<file-upload #fileUpload (fileAdded)=\"onFileAdded($event)\" (fileRemoved)=\"onFilesRemoved($event)\" [files]=\"files\" [allowDelete]=\"true\" [allowReplace]=\"true\"></file-upload>\n\t\t\t\t</ng-template>\n\t\t\t</ngb-panel>\n </ngb-accordion>\n </div>\n <div class=\"row\" style=\"padding-top: 15px;\">\n <responsive-button-group collapseSize=\"900\">\n <button class=\"btn btn-warning\" type=\"button\" (click)=\"edit()\">Edit Support Ticket</button>\n </responsive-button-group>\n </div>\n</div>\n ", styles: ["\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n\n ngb-accordion {\n width: 100%;\n }\n\n dl {\n margin-bottom: 0px;\n }\n\n .selected {\n background-color: lightblue;\n }\n"], dependencies: [{ kind: "component", type: i5.NgbAccordion, selector: "ngb-accordion", inputs: ["animation", "activeIds", "closeOthers", "destroyOnHide", "type"], outputs: ["panelChange", "shown", "hidden"], exportAs: ["ngbAccordion"] }, { kind: "directive", type: i5.NgbPanel, selector: "ngb-panel", inputs: ["disabled", "id", "title", "type", "cardClass"], outputs: ["shown", "hidden"] }, { kind: "directive", type: i5.NgbPanelTitle, selector: "ng-template[ngbPanelTitle]" }, { kind: "directive", type: i5.NgbPanelContent, selector: "ng-template[ngbPanelContent]" }, { kind: "component", type: i6.ResponsiveButtonGroupComponent, selector: "responsive-button-group", inputs: ["collapseSize"] }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.FileUploadComponent, selector: "file-upload", inputs: ["files", "allowDelete", "allowReplace", "showFileUpload", "fileType"], outputs: ["filesChanged", "fileAdded", "fileRemoved"] }, { kind: "pipe", type: i7.DecimalPipe, name: "number" }, { kind: "pipe", type: i7.DatePipe, name: "date" }] });
197
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SupportTicketDetailComponent, decorators: [{
195
+ SupportTicketDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SupportTicketDetailComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.SupportTicketService }, { token: i3.ProviderService }, { token: i4.DialogService }], target: i0.ɵɵFactoryTarget.Component });
196
+ SupportTicketDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SupportTicketDetailComponent, selector: "ng-component", providers: [ProviderService], viewQueries: [{ propertyName: "fileUpload", first: true, predicate: ["fileUpload"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<style>\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n\n ngb-accordion {\n width: 100%;\n }\n\n dl {\n margin-bottom: 0px;\n }\n\n .selected {\n background-color: lightblue;\n }\n</style>\n\n<div class=\"col-lg-12\" *ngIf=\"data\">\n <div class=\"row\">\n <ngb-accordion #acc=\"ngbAccordion\" activeIds=\"supportTicketInfo, supportTicketMessages, files\">\n <ngb-panel id=\"supportTicketInfo\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Support Ticket Info</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"card\">\n <div class=\"card-header\"><b>General Info</b></div>\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col-lg-4\">\n <dl>\n <dt>Support Ticket #</dt>\n <dd>{{data.support_ticket_number | number}}</dd>\n <dt>Date Created</dt>\n <dd>{{data.date_created | date: 'short'}}</dd>\n </dl>\n </div>\n <div class=\"col-lg-4\">\n <dl>\n <dt>Type</dt>\n <dd>{{data.type}}</dd>\n <dt>User</dt>\n <dd>{{data.user_created}}</dd>\n </dl>\n </div>\n <div class=\"col-lg-4\">\n <dl>\n <dt>Status</dt>\n <dd>{{ data.status }}</dd>\n </dl>\n </div>\n </div>\n </div>\n </div>\n <div class=\"card\">\n <div class=\"card-header\"><b>Problem Description</b></div>\n <div class=\"card-body\">\n <pre>{{data.issue}}</pre>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n <ngb-panel id=\"supportTicketMessages\" *ngIf=\"data\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Messages</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketMessages')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketMessages')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <div class=\"card\" *ngFor=\"let message of data.messages; let i = index;\">\n <div class=\"card-header\"><b>User: {{message.user}} - Date: {{message.date | date : 'short'}}</b></div>\n <div class=\"card-body\" [ngClass]=\"[message.type === 'ResolveIO' ? 'selected' : '']\">\n <div class=\"row\" style=\"width: 100%\">\n <div class=\"col-lg-10\">\n <pre>{{message.message}}</pre>\n </div>\n <div class=\"col-lg-2\">\n <responsive-button-group collapseSize=\"900\">\n <button type=\"button\" class=\"btn btn-warning\" (click)=\"editMessage(i)\" *ngIf=\"isMyMessage(message)\">Edit</button>\n <button type=\"button\" class=\"btn btn-danger\" (click)=\"deleteMessage(i)\" *ngIf=\"isMyMessage(message)\">Delete</button>\n </responsive-button-group>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\" style=\"margin-top: 10px;\">\n <div class=\"col-lg-12\">\n <button type=\"button\" class=\"btn btn-success\" (click)=\"newMessage()\">New Message</button>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n <ngb-panel id=\"files\">\n\t\t\t\t<ng-template ngbPanelTitle>\n\t\t\t\t\t<div> \n\t\t\t\t\t\t<label class=\"label-accordion\">Support Ticket Files</label>\n\t\t\t\t\t\t<i *ngIf=\"!acc.activeIds.includes('files')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t<i *ngIf=\"acc.activeIds.includes('files')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template ngbPanelContent>\n\t\t\t\t\t<file-upload #fileUpload (fileAdded)=\"onFileAdded($event)\" (fileRemoved)=\"onFilesRemoved($event)\" [files]=\"files\" [allowDelete]=\"true\" [allowReplace]=\"true\"></file-upload>\n\t\t\t\t</ng-template>\n\t\t\t</ngb-panel>\n </ngb-accordion>\n </div>\n <div class=\"row\" style=\"padding-top: 15px;\">\n <responsive-button-group collapseSize=\"900\">\n <button class=\"btn btn-warning\" type=\"button\" (click)=\"edit()\">Edit Support Ticket</button>\n </responsive-button-group>\n </div>\n</div>\n ", styles: ["\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n\n ngb-accordion {\n width: 100%;\n }\n\n dl {\n margin-bottom: 0px;\n }\n\n .selected {\n background-color: lightblue;\n }\n"], dependencies: [{ kind: "component", type: i5.NgbAccordion, selector: "ngb-accordion", inputs: ["animation", "activeIds", "closeOthers", "destroyOnHide", "type"], outputs: ["panelChange", "shown", "hidden"], exportAs: ["ngbAccordion"] }, { kind: "directive", type: i5.NgbPanel, selector: "ngb-panel", inputs: ["disabled", "id", "title", "type", "cardClass"], outputs: ["shown", "hidden"] }, { kind: "directive", type: i5.NgbPanelTitle, selector: "ng-template[ngbPanelTitle]" }, { kind: "directive", type: i5.NgbPanelContent, selector: "ng-template[ngbPanelContent]" }, { kind: "component", type: i6.ResponsiveButtonGroupComponent, selector: "responsive-button-group", inputs: ["collapseSize"] }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.FileUploadComponent, selector: "file-upload", inputs: ["files", "allowDelete", "allowReplace", "showFileUpload", "fileType"], outputs: ["filesChanged", "fileAdded", "fileRemoved"] }, { kind: "pipe", type: i7.DecimalPipe, name: "number" }, { kind: "pipe", type: i7.DatePipe, name: "date" }] });
197
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SupportTicketDetailComponent, decorators: [{
198
198
  type: Component,
199
- args: [{ providers: [ProviderService], template: "<style>\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n\n ngb-accordion {\n width: 100%;\n }\n\n dl {\n margin-bottom: 0px;\n }\n\n .selected {\n background-color: lightblue;\n }\n</style>\n\n<div class=\"col-lg-12\" *ngIf=\"data\">\n <div class=\"row\">\n <ngb-accordion #acc=\"ngbAccordion\" activeIds=\"supportTicketInfo, supportTicketMessages, files\">\n <ngb-panel id=\"supportTicketInfo\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Support Ticket Info</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-plus pull-right\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-minus pull-right\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"card\">\n <div class=\"card-header\"><b>General Info</b></div>\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col-lg-4\">\n <dl>\n <dt>Support Ticket #</dt>\n <dd>{{data.support_ticket_number | number}}</dd>\n <dt>Date Created</dt>\n <dd>{{data.date_created | date: 'short'}}</dd>\n </dl>\n </div>\n <div class=\"col-lg-4\">\n <dl>\n <dt>Type</dt>\n <dd>{{data.type}}</dd>\n <dt>User</dt>\n <dd>{{data.user_created}}</dd>\n </dl>\n </div>\n <div class=\"col-lg-4\">\n <dl>\n <dt>Status</dt>\n <dd>{{ data.status }}</dd>\n </dl>\n </div>\n </div>\n </div>\n </div>\n <div class=\"card\">\n <div class=\"card-header\"><b>Problem Description</b></div>\n <div class=\"card-body\">\n <pre>{{data.issue}}</pre>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n <ngb-panel id=\"supportTicketMessages\" *ngIf=\"data\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Messages</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketMessages')\" class=\"fa fa-plus pull-right\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketMessages')\" class=\"fa fa-minus pull-right\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <div class=\"card\" *ngFor=\"let message of data.messages; let i = index;\">\n <div class=\"card-header\"><b>User: {{message.user}} - Date: {{message.date | date : 'short'}}</b></div>\n <div class=\"card-body\" [ngClass]=\"[message.type === 'ResolveIO' ? 'selected' : '']\">\n <div class=\"row\" style=\"width: 100%\">\n <div class=\"col-lg-10\">\n <pre>{{message.message}}</pre>\n </div>\n <div class=\"col-lg-2\">\n <responsive-button-group collapseSize=\"900\">\n <button type=\"button\" class=\"btn btn-warning\" (click)=\"editMessage(i)\" *ngIf=\"isMyMessage(message)\">Edit</button>\n <button type=\"button\" class=\"btn btn-danger\" (click)=\"deleteMessage(i)\" *ngIf=\"isMyMessage(message)\">Delete</button>\n </responsive-button-group>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\" style=\"margin-top: 10px;\">\n <div class=\"col-lg-12\">\n <button type=\"button\" class=\"btn btn-success\" (click)=\"newMessage()\">New Message</button>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n <ngb-panel id=\"files\">\n\t\t\t\t<ng-template ngbPanelTitle>\n\t\t\t\t\t<div> \n\t\t\t\t\t\t<label class=\"label-accordion\">Support Ticket Files</label>\n\t\t\t\t\t\t<i *ngIf=\"!acc.activeIds.includes('files')\" class=\"fa fa-plus pull-right\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t<i *ngIf=\"acc.activeIds.includes('files')\" class=\"fa fa-minus pull-right\" aria-hidden=\"true\"></i>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template ngbPanelContent>\n\t\t\t\t\t<file-upload #fileUpload (fileAdded)=\"onFileAdded($event)\" (fileRemoved)=\"onFilesRemoved($event)\" [files]=\"files\" [allowDelete]=\"true\" [allowReplace]=\"true\"></file-upload>\n\t\t\t\t</ng-template>\n\t\t\t</ngb-panel>\n </ngb-accordion>\n </div>\n <div class=\"row\" style=\"padding-top: 15px;\">\n <responsive-button-group collapseSize=\"900\">\n <button class=\"btn btn-warning\" type=\"button\" (click)=\"edit()\">Edit Support Ticket</button>\n </responsive-button-group>\n </div>\n</div>\n " }]
199
+ args: [{ providers: [ProviderService], template: "<style>\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n\n ngb-accordion {\n width: 100%;\n }\n\n dl {\n margin-bottom: 0px;\n }\n\n .selected {\n background-color: lightblue;\n }\n</style>\n\n<div class=\"col-lg-12\" *ngIf=\"data\">\n <div class=\"row\">\n <ngb-accordion #acc=\"ngbAccordion\" activeIds=\"supportTicketInfo, supportTicketMessages, files\">\n <ngb-panel id=\"supportTicketInfo\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Support Ticket Info</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"card\">\n <div class=\"card-header\"><b>General Info</b></div>\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col-lg-4\">\n <dl>\n <dt>Support Ticket #</dt>\n <dd>{{data.support_ticket_number | number}}</dd>\n <dt>Date Created</dt>\n <dd>{{data.date_created | date: 'short'}}</dd>\n </dl>\n </div>\n <div class=\"col-lg-4\">\n <dl>\n <dt>Type</dt>\n <dd>{{data.type}}</dd>\n <dt>User</dt>\n <dd>{{data.user_created}}</dd>\n </dl>\n </div>\n <div class=\"col-lg-4\">\n <dl>\n <dt>Status</dt>\n <dd>{{ data.status }}</dd>\n </dl>\n </div>\n </div>\n </div>\n </div>\n <div class=\"card\">\n <div class=\"card-header\"><b>Problem Description</b></div>\n <div class=\"card-body\">\n <pre>{{data.issue}}</pre>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n <ngb-panel id=\"supportTicketMessages\" *ngIf=\"data\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Messages</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketMessages')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketMessages')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <div class=\"card\" *ngFor=\"let message of data.messages; let i = index;\">\n <div class=\"card-header\"><b>User: {{message.user}} - Date: {{message.date | date : 'short'}}</b></div>\n <div class=\"card-body\" [ngClass]=\"[message.type === 'ResolveIO' ? 'selected' : '']\">\n <div class=\"row\" style=\"width: 100%\">\n <div class=\"col-lg-10\">\n <pre>{{message.message}}</pre>\n </div>\n <div class=\"col-lg-2\">\n <responsive-button-group collapseSize=\"900\">\n <button type=\"button\" class=\"btn btn-warning\" (click)=\"editMessage(i)\" *ngIf=\"isMyMessage(message)\">Edit</button>\n <button type=\"button\" class=\"btn btn-danger\" (click)=\"deleteMessage(i)\" *ngIf=\"isMyMessage(message)\">Delete</button>\n </responsive-button-group>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\" style=\"margin-top: 10px;\">\n <div class=\"col-lg-12\">\n <button type=\"button\" class=\"btn btn-success\" (click)=\"newMessage()\">New Message</button>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n <ngb-panel id=\"files\">\n\t\t\t\t<ng-template ngbPanelTitle>\n\t\t\t\t\t<div> \n\t\t\t\t\t\t<label class=\"label-accordion\">Support Ticket Files</label>\n\t\t\t\t\t\t<i *ngIf=\"!acc.activeIds.includes('files')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t<i *ngIf=\"acc.activeIds.includes('files')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template ngbPanelContent>\n\t\t\t\t\t<file-upload #fileUpload (fileAdded)=\"onFileAdded($event)\" (fileRemoved)=\"onFilesRemoved($event)\" [files]=\"files\" [allowDelete]=\"true\" [allowReplace]=\"true\"></file-upload>\n\t\t\t\t</ng-template>\n\t\t\t</ngb-panel>\n </ngb-accordion>\n </div>\n <div class=\"row\" style=\"padding-top: 15px;\">\n <responsive-button-group collapseSize=\"900\">\n <button class=\"btn btn-warning\" type=\"button\" (click)=\"edit()\">Edit Support Ticket</button>\n </responsive-button-group>\n </div>\n</div>\n " }]
200
200
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.SupportTicketService }, { type: i3.ProviderService }, { type: i4.DialogService }]; }, propDecorators: { fileUpload: [{
201
201
  type: ViewChild,
202
202
  args: ['fileUpload', { static: true }]
203
203
  }] } });
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC10aWNrZXQtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zdXBwb3J0LXRpY2tldC9kZXRhaWwvc3VwcG9ydC10aWNrZXQtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zdXBwb3J0LXRpY2tldC9kZXRhaWwvc3VwcG9ydC10aWNrZXQtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7O0FBQ2hCLENBQUM7QUFPckQsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGFBQWE7SUFXOUQsWUFBb0IsTUFBc0IsRUFBVSxJQUEwQixFQUFVLFNBQTBCLEVBQVUsR0FBa0I7UUFDN0ksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFzQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQVA5SSxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFLbkMsVUFBSyxHQUFnQixFQUFFLENBQUM7SUFJeEIsQ0FBQztJQUVELFFBQVE7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b0JBQzdILGdDQUFnQztvQkFDaEMsc0RBQXNEO29CQUN0RCxvR0FBb0c7b0JBQ3BHLHdEQUF3RDtvQkFDeEQsUUFBUTtvQkFDUixLQUFLO29CQUNMLFVBQVU7b0JBQ1YscUZBQXFGO29CQUNyRixLQUFLO29CQUNMLE1BQU07aUJBQ047cUJBQ0k7b0JBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLHFDQUFxQyxDQUFDLENBQUM7b0JBQ3JGLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7aUJBQ2xEO1lBQ0YsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQU87UUFDbEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNsRSxDQUFDOzt5SEF6TVcsNEJBQTRCOzZHQUE1Qiw0QkFBNEIsdUNBSjdCLENBQUMsZUFBZSxDQUFDLHlLQ1g3QixvOU1BcUlJOzJGRHRIUyw0QkFBNEI7a0JBTHhDLFNBQVM7Z0NBQ0UsQ0FBQyxlQUFlLENBQUM7a01BTWEsVUFBVTtzQkFBbEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdXBwb3J0VGlja2V0U2VydmljZSB9IGZyb20gJy4uL3N1cHBvcnQtdGlja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcm92aWRlclNlcnZpY2UsIEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9yZXNvbHZlaW8tY2xhc3MnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1cHBvcnRUaWNrZXRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zdXBwb3J0LXRpY2tldC5tb2RlbCc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbGUubW9kZWwnOztcblxuQENvbXBvbmVudCh7XG5cdHByb3ZpZGVyczogW1Byb3ZpZGVyU2VydmljZV0sXG5cdHRlbXBsYXRlVXJsOiAnLi9zdXBwb3J0LXRpY2tldC1kZXRhaWwuY29tcG9uZW50Lmh0bWwnXG59KVxuXG5leHBvcnQgY2xhc3MgU3VwcG9ydFRpY2tldERldGFpbENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7IFxuXG5cdEBWaWV3Q2hpbGQoJ2ZpbGVVcGxvYWQnLCB7c3RhdGljOiB0cnVlfSkgZmlsZVVwbG9hZDtcblxuXHRzdWJzY3JpcHRpb24kOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG5cdGlkOiBzdHJpbmc7XG5cdGRhdGE6IFN1cHBvcnRUaWNrZXRNb2RlbDtcblxuXHRmaWxlczogRmlsZU1vZGVsW10gPSBbXTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgX3N0czogU3VwcG9ydFRpY2tldFNlcnZpY2UsIHByaXZhdGUgX3NlcnZpY2VzOiBQcm92aWRlclNlcnZpY2UsIHByaXZhdGUgX2RzOiBEaWFsb2dTZXJ2aWNlKSB7XG5cdFx0c3VwZXIoX3NlcnZpY2VzKTtcblx0fVxuXHRcdFxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLmlkID0gdGhpcy5fcm91dGUuc25hcHNob3QucGFyYW1zWydpZCddO1xuXHRcdHRoaXMuX3N0cy5zZXRTZWxlY3RlZFN1cHBvcnRUaWNrZXQodGhpcy5pZCk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ3N1cHBvcnRHZXRTdXBwb3J0VGlja2V0V2l0aElkJywgdGhpcy5pZCwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRpZiAoIXJlcykge1xuXHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9zdXBwb3J0LXRpY2tldC9saXN0Jyk7XG5cdFx0XHRcdHRoaXMuX2RzLmVycm9yKCdDb3VsZCBub3QgZmluZCBzdXBwb3J0IHRpY2tldCcpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdHRoaXMuZGF0YSA9IHJlcztcblx0XHR9KTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdHRoaXMuc3Vic2NyaXB0aW9uJC5mb3JFYWNoKHN1YiA9PiB7XG5cdFx0XHRzdWIudW5zdWJzY3JpYmUoKTtcblx0XHR9KTtcblx0fVxuXG5cdG9uRmlsZUFkZGVkKGZpbGU6IEZpbGVNb2RlbCkge1x0XG5cdFx0dGhpcy5kYXRhLmZpbGVzLnB1c2goZmlsZS5faWQpO1xuXG5cdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdzdXBwb3J0VXBkYXRlU3VwcG9ydFRpY2tldCcsIHRoaXMuZGF0YSwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRpZiAoZXJyIHx8ICFyZXMpIHtcblx0XHRcdFx0dGhpcy5fZHMuZXJyb3IoJ0NvdWxkIG5vdCB1cGRhdGUgc3VwcG9ydCB0aWNrZXQgZmlsZXMnKTtcblx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdzdXBwb3J0LXRpY2tldC1kZXRhaWwgLSB1cGRhdGUgc3VwcG9ydC10aWNrZXQgZmlsZXMgYWRkJywgW1xuXHRcdFx0XHRcdHRoaXMuZGF0YS5maWxlcywgZXJyXG5cdFx0XHRcdF0pO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0Ly8gdGhpcy5fc2VydmljZXMuX2FsZXJ0LnNldEFsZXJ0KCdpbmZvJywgJ1NlbmRpbmcgZW1haWwocykuJyk7XG5cblx0XHRcdFx0Ly8gdGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsU3VwcG9ydCgnc2VuZFN1cHBvcnRUaWNrZXRNb2RpZmllZEVtYWlsJywgdGhpcy5kYXRhLCB0aGlzLmRhdGEuZmlsZXMsIChlcnJFbWFpbCwgcmVzRW1haWwpID0+IHtcblx0XHRcdFx0Ly8gXHRpZiAoZXJyRW1haWwgfHwgIXJlc0VtYWlsKSB7XG5cdFx0XHRcdC8vIFx0XHR0aGlzLl9kcy5lcnJvcignQ291bGQgbm90IGVtYWlsIHN1cHBvcnQgdGlja2V0Jyk7XG5cdFx0XHRcdC8vIFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ2luc2VydEVycm9yTG9nJywgJ3N1cHBvcnQtdGlja2V0LWRldGFpbCAtIGVtYWlsIHN1cHBvcnQtdGlja2V0JywgW1xuXHRcdFx0XHQvLyBcdFx0XHR7cHJvcDogJ3N0YXR1cycsIGRhdGE6IHRoaXMuZGF0YS5zdGF0dXN9LCBlcnJFbWFpbFxuXHRcdFx0XHQvLyBcdFx0XSk7XG5cdFx0XHRcdC8vIFx0fVxuXHRcdFx0XHQvLyBcdGVsc2Uge1xuXHRcdFx0XHQvLyBcdFx0dGhpcy5fc2VydmljZXMuX2FsZXJ0LnNldEFsZXJ0KCdzdWNjZXNzJywgJ1N1cHBvcnQgVGlja2V0IGVtYWlsIGhhcyBiZWVuIHNlbnQnKTtcblx0XHRcdFx0Ly8gXHR9XG5cdFx0XHRcdC8vIH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0b25GaWxlc1JlbW92ZWQoZmlsZTogRmlsZU1vZGVsKSB7XG5cdFx0dGhpcy5fZHMuY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlbW92ZSBhIGZpbGU/IFRoaXMgd2lsbCBlbWFpbCBhbGwgY3VycmVudCB3YXRjaGVycz8nKS50aGVuKHllcyA9PiB7XG5cdFx0XHRpZiAodGhpcy5kYXRhLmZpbGVzLmluZGV4T2YoZmlsZS5faWQpICE9PSAtMSkge1xuXHRcdFx0XHR0aGlzLmRhdGEuZmlsZXMuc3BsaWNlKHRoaXMuZGF0YS5maWxlcy5pbmRleE9mKGZpbGUuX2lkKSwgMSk7XG5cblx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdzdXBwb3J0VXBkYXRlU3VwcG9ydFRpY2tldCcsIHRoaXMuZGF0YSwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRcdFx0aWYgKGVyciB8fCAhcmVzKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9kcy5lcnJvcignQ291bGQgbm90IHVwZGF0ZSBzdXBwb3J0LXRpY2tldCBmaWxlcycpO1xuXHRcdFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdzdXBwb3J0LXRpY2tldC1kZXRhaWwgLSB1cGRhdGUgZmlsZXMgcmVtb3ZlJywgW1xuXHRcdFx0XHRcdFx0XHR7cHJvcDogJ2ZpbGVzJywgZGF0YTogdGhpcy5kYXRhLmZpbGVzfSwgZXJyXG5cdFx0XHRcdFx0XHRdKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0sICgpID0+IHt9KTtcblx0fVxuXG5cdGVkaXQoKSB7XG5cdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvc3VwcG9ydC10aWNrZXQvZWRpdC8nICsgdGhpcy5pZCk7XG5cdH1cblxuXHRuZXdNZXNzYWdlKCkge1xuXHRcdHRoaXMuX2RzLmlucHV0KCdJbnB1dCBNZXNzYWdlJywgW1xuXHRcdFx0e1xuXHRcdFx0XHRsYWJlbDogJ01lc3NhZ2UnLFxuXHRcdFx0XHRmb3JtOiAnbWVzc2FnZScsXG5cdFx0XHRcdGRhdGE6ICcnLFxuXHRcdFx0XHR2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG5cdFx0XHRcdHZhbGlkYXRvckVycm9yczogWydyZXF1aXJlZCddLFxuXHRcdFx0XHR2YWxpZGF0b3JNc2c6IFsnTWVzc2FnZSBpcyByZXF1aXJlZCddLFxuXHRcdFx0XHRyZXF1aXJlZDogdHJ1ZSxcblx0XHRcdFx0dHlwZTogJ3RleHRhcmVhJ1xuXHRcdFx0fVxuXHRcdF0pLnRoZW4oY2xvc2UgPT4ge1xuXHRcdFx0dGhpcy5kYXRhLm1lc3NhZ2VzLnB1c2goe1xuXHRcdFx0XHRtZXNzYWdlOiBjbG9zZS5tZXNzYWdlLnZhbHVlLFxuXHRcdFx0XHRpZF91c2VyOiB0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRVc2VyKCkuX2lkLFxuXHRcdFx0XHR1c2VyOiB0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRVc2VyKCkuZnVsbG5hbWUsXG5cdFx0XHRcdGRhdGU6IG5ldyBEYXRlKCksXG5cdFx0XHRcdHR5cGU6ICdDbGllbnQnXG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdzdXBwb3J0VXBkYXRlU3VwcG9ydFRpY2tldCcsIHRoaXMuZGF0YSwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRcdGlmIChyZXMpIHtcblx0XHRcdFx0XHQvLyB0aGlzLl9zZXJ2aWNlcy5fYWxlcnQuc2V0QWxlcnQoJ3N1Y2Nlc3MnLCAnU3VwcG9ydCB0aWNrZXQgaGFzIGJlZW4gdXBkYXRlZCcpO1xuXG5cdFx0XHRcdFx0Ly8gdGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsU3VwcG9ydCgnc2VuZFN1cHBvcnRUaWNrZXRNb2RpZmllZEVtYWlsJywgdGhpcy5kYXRhLCB0aGlzLmRhdGEuZmlsZXMsIChlcnJFbWFpbCwgcmVzRW1haWwpID0+IHtcblx0XHRcdFx0XHQvLyBcdGlmIChlcnJFbWFpbCB8fCAhcmVzRW1haWwpIHtcblx0XHRcdFx0XHQvLyBcdFx0dGhpcy5fZHMuZXJyb3IoJ0NvdWxkIG5vdCBlbWFpbCBzdXBwb3J0IHRpY2tldCcpO1xuXHRcdFx0XHRcdC8vIFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ2luc2VydEVycm9yTG9nJywgJ3N1cHBvcnQtdGlja2V0LWRldGFpbCAtIGVtYWlsIHN1cHBvcnQtdGlja2V0JywgW1xuXHRcdFx0XHRcdC8vIFx0XHRcdHtwcm9wOiAnc3RhdHVzJywgZGF0YTogdGhpcy5kYXRhLnN0YXR1c30sIGVyckVtYWlsXG5cdFx0XHRcdFx0Ly8gXHRcdF0pO1xuXHRcdFx0XHRcdC8vIFx0fVxuXHRcdFx0XHRcdC8vIFx0ZWxzZSB7XG5cdFx0XHRcdFx0Ly8gXHRcdHRoaXMuX3NlcnZpY2VzLl9hbGVydC5zZXRBbGVydCgnc3VjY2VzcycsICdTdXBwb3J0IFRpY2tldCBlbWFpbCBoYXMgYmVlbiBzZW50Jyk7XG5cdFx0XHRcdFx0Ly8gXHR9XG5cdFx0XHRcdFx0Ly8gfSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdTdXBwb3J0IFRpY2tldCBEZXRhaWwgLSBBZGQgTWVzc2FnZScpO1xuXHRcdFx0XHRcdHRoaXMuX2RzLmVycm9yKCdTdXBwb3J0IHRpY2tldCBjb3VsZCBub3QgdXBkYXRlJyk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0sICgpID0+IHt9KTtcblx0fVxuXG5cdGVkaXRNZXNzYWdlKGluZGV4KSB7XG5cdFx0bGV0IG1lc3NhZ2UgPSB0aGlzLmRhdGEubWVzc2FnZXNbaW5kZXhdO1xuXHRcdHRoaXMuX2RzLmlucHV0KCdJbnB1dCBNZXNzYWdlJywgW1xuXHRcdFx0e1xuXHRcdFx0XHRsYWJlbDogJ01lc3NhZ2UnLFxuXHRcdFx0XHRmb3JtOiAnbWVzc2FnZScsXG5cdFx0XHRcdGRhdGE6IG1lc3NhZ2UubWVzc2FnZSxcblx0XHRcdFx0dmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuXHRcdFx0XHR2YWxpZGF0b3JFcnJvcnM6IFsncmVxdWlyZWQnXSxcblx0XHRcdFx0dmFsaWRhdG9yTXNnOiBbJ01lc3NhZ2UgaXMgcmVxdWlyZWQnXSxcblx0XHRcdFx0cmVxdWlyZWQ6IHRydWUsXG5cdFx0XHRcdHR5cGU6ICd0ZXh0YXJlYSdcblx0XHRcdH1cblx0XHRdKS50aGVuKGNsb3NlID0+IHtcblx0XHRcdG1lc3NhZ2UubWVzc2FnZSA9IGNsb3NlLm1lc3NhZ2UudmFsdWU7XG5cblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbCgnc3VwcG9ydFVwZGF0ZVN1cHBvcnRUaWNrZXQnLCB0aGlzLmRhdGEsIChlcnIsIHJlcykgPT4ge1xuXHRcdFx0XHRpZiAocmVzKSB7XG5cdFx0XHRcdFx0Ly8gdGhpcy5fc2VydmljZXMuX2FsZXJ0LnNldEFsZXJ0KCdzdWNjZXNzJywgJ1N1cHBvcnQgdGlja2V0IGhhcyBiZWVuIHVwZGF0ZWQnKTtcblxuXHRcdFx0XHRcdC8vIHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbFN1cHBvcnQoJ3NlbmRTdXBwb3J0VGlja2V0TW9kaWZpZWRFbWFpbCcsIHRoaXMuZGF0YSwgdGhpcy5kYXRhLmZpbGVzLCAoZXJyRW1haWwsIHJlc0VtYWlsKSA9PiB7XG5cdFx0XHRcdFx0Ly8gXHRpZiAoZXJyRW1haWwgfHwgIXJlc0VtYWlsKSB7XG5cdFx0XHRcdFx0Ly8gXHRcdHRoaXMuX2RzLmVycm9yKCdDb3VsZCBub3QgZW1haWwgc3VwcG9ydCB0aWNrZXQnKTtcblx0XHRcdFx0XHQvLyBcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdzdXBwb3J0LXRpY2tldC1kZXRhaWwgLSBlbWFpbCBzdXBwb3J0LXRpY2tldCcsIFtcblx0XHRcdFx0XHQvLyBcdFx0XHR7cHJvcDogJ3N0YXR1cycsIGRhdGE6IHRoaXMuZGF0YS5zdGF0dXN9LCBlcnJFbWFpbFxuXHRcdFx0XHRcdC8vIFx0XHRdKTtcblx0XHRcdFx0XHQvLyBcdH1cblx0XHRcdFx0XHQvLyBcdGVsc2Uge1xuXHRcdFx0XHRcdC8vIFx0XHR0aGlzLl9zZXJ2aWNlcy5fYWxlcnQuc2V0QWxlcnQoJ3N1Y2Nlc3MnLCAnU3VwcG9ydCBUaWNrZXQgZW1haWwgaGFzIGJlZW4gc2VudCcpO1xuXHRcdFx0XHRcdC8vIFx0fVxuXHRcdFx0XHRcdC8vIH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbCgnaW5zZXJ0RXJyb3JMb2cnLCAnU3VwcG9ydCBUaWNrZXQgRGV0YWlsIC0gQWRkIE1lc3NhZ2UnKTtcblx0XHRcdFx0XHR0aGlzLl9kcy5lcnJvcignU3VwcG9ydCB0aWNrZXQgY291bGQgbm90IHVwZGF0ZScpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9LCAoKSA9PiB7fSk7XG5cdH1cblxuXHRkZWxldGVNZXNzYWdlKGluZGV4KSB7XG5cdFx0dGhpcy5fZHMuY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlbW92ZSB0aGlzIG1lc3NhZ2U/JykudGhlbigoKSA9PiB7XG5cdFx0XHR0aGlzLmRhdGEubWVzc2FnZXMuc3BsaWNlKGluZGV4LCAxKTtcblxuXHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdzdXBwb3J0VXBkYXRlU3VwcG9ydFRpY2tldCcsIHRoaXMuZGF0YSwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRcdGlmIChyZXMpIHtcblx0XHRcdFx0XHQvLyB0aGlzLl9zZXJ2aWNlcy5fYWxlcnQuc2V0QWxlcnQoJ3N1Y2Nlc3MnLCAnU3VwcG9ydCB0aWNrZXQgaGFzIGJlZW4gdXBkYXRlZCcpO1xuXG5cdFx0XHRcdFx0Ly8gdGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsU3VwcG9ydCgnc2VuZFN1cHBvcnRUaWNrZXRNb2RpZmllZEVtYWlsJywgdGhpcy5kYXRhLCB0aGlzLmRhdGEuZmlsZXMsIChlcnJFbWFpbCwgcmVzRW1haWwpID0+IHtcblx0XHRcdFx0XHQvLyBcdGlmIChlcnJFbWFpbCB8fCAhcmVzRW1haWwpIHtcblx0XHRcdFx0XHQvLyBcdFx0dGhpcy5fZHMuZXJyb3IoJ0NvdWxkIG5vdCBlbWFpbCBzdXBwb3J0IHRpY2tldCcpO1xuXHRcdFx0XHRcdC8vIFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ2luc2VydEVycm9yTG9nJywgJ3N1cHBvcnQtdGlja2V0LWRldGFpbCAtIGVtYWlsIHN1cHBvcnQtdGlja2V0JywgW1xuXHRcdFx0XHRcdC8vIFx0XHRcdHtwcm9wOiAnc3RhdHVzJywgZGF0YTogdGhpcy5kYXRhLnN0YXR1c30sIGVyckVtYWlsXG5cdFx0XHRcdFx0Ly8gXHRcdF0pO1xuXHRcdFx0XHRcdC8vIFx0fVxuXHRcdFx0XHRcdC8vIFx0ZWxzZSB7XG5cdFx0XHRcdFx0Ly8gXHRcdHRoaXMuX3NlcnZpY2VzLl9hbGVydC5zZXRBbGVydCgnc3VjY2VzcycsICdTdXBwb3J0IFRpY2tldCBlbWFpbCBoYXMgYmVlbiBzZW50Jyk7XG5cdFx0XHRcdFx0Ly8gXHR9XG5cdFx0XHRcdFx0Ly8gfSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdTdXBwb3J0IFRpY2tldCBEZXRhaWwgLSBBZGQgTWVzc2FnZScpO1xuXHRcdFx0XHRcdHRoaXMuX2RzLmVycm9yKCdTdXBwb3J0IHRpY2tldCBjb3VsZCBub3QgdXBkYXRlJyk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0sICgpID0+IHt9KTtcblx0fVxuXG5cdGlzTXlNZXNzYWdlKG1lc3NhZ2UpIHtcblx0XHRyZXR1cm4gdGhpcy5fc2VydmljZXMuX2FjY291bnQuZ2V0VXNlcigpLl9pZCA9PT0gbWVzc2FnZS5pZF91c2VyO1xuXHR9XG59IiwiPHN0eWxlPlxuICAgIC5sYWJlbC1hY2NvcmRpb24ge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgfVxuXG4gICAgLmZhLXBsdXMge1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgfVxuXG4gICAgLmZhLW1pbnVzIHtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgIH1cblxuICAgIG5nYi1hY2NvcmRpb24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBkbCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICB9XG5cbiAgICAuc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG4gICAgfVxuPC9zdHlsZT5cblxuPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiICpuZ0lmPVwiZGF0YVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPG5nYi1hY2NvcmRpb24gI2FjYz1cIm5nYkFjY29yZGlvblwiIGFjdGl2ZUlkcz1cInN1cHBvcnRUaWNrZXRJbmZvLCBzdXBwb3J0VGlja2V0TWVzc2FnZXMsIGZpbGVzXCI+XG4gICAgICAgICAgICA8bmdiLXBhbmVsIGlkPVwic3VwcG9ydFRpY2tldEluZm9cIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiUGFuZWxUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj4gXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbC1hY2NvcmRpb25cIj5TdXBwb3J0IFRpY2tldCBJbmZvPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWFjYy5hY3RpdmVJZHMuaW5jbHVkZXMoJ3N1cHBvcnRUaWNrZXRJbmZvJylcIiBjbGFzcz1cImZhIGZhLXBsdXMgcHVsbC1yaWdodFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiYWNjLmFjdGl2ZUlkcy5pbmNsdWRlcygnc3VwcG9ydFRpY2tldEluZm8nKVwiIGNsYXNzPVwiZmEgZmEtbWludXMgcHVsbC1yaWdodFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiUGFuZWxDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+PGI+R2VuZXJhbCBJbmZvPC9iPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR0PlN1cHBvcnQgVGlja2V0ICM8L2R0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZD57e2RhdGEuc3VwcG9ydF90aWNrZXRfbnVtYmVyIHwgbnVtYmVyfX08L2RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkdD5EYXRlIENyZWF0ZWQ8L2R0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZD57e2RhdGEuZGF0ZV9jcmVhdGVkIHwgZGF0ZTogJ3Nob3J0J319PC9kZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHQ+VHlwZTwvZHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRkPnt7ZGF0YS50eXBlfX08L2RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkdD5Vc2VyPC9kdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGQ+e3tkYXRhLnVzZXJfY3JlYXRlZH19PC9kZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHQ+U3RhdHVzPC9kdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGQ+e3sgZGF0YS5zdGF0dXMgfX08L2RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj48Yj5Qcm9ibGVtIERlc2NyaXB0aW9uPC9iPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcmU+e3tkYXRhLmlzc3VlfX08L3ByZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZ2ItcGFuZWw+XG4gICAgICAgICAgICA8bmdiLXBhbmVsIGlkPVwic3VwcG9ydFRpY2tldE1lc3NhZ2VzXCIgKm5nSWY9XCJkYXRhXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYlBhbmVsVGl0bGU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+IFxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGFiZWwtYWNjb3JkaW9uXCI+TWVzc2FnZXM8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCIhYWNjLmFjdGl2ZUlkcy5pbmNsdWRlcygnc3VwcG9ydFRpY2tldE1lc3NhZ2VzJylcIiBjbGFzcz1cImZhIGZhLXBsdXMgcHVsbC1yaWdodFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiYWNjLmFjdGl2ZUlkcy5pbmNsdWRlcygnc3VwcG9ydFRpY2tldE1lc3NhZ2VzJylcIiBjbGFzcz1cImZhIGZhLW1pbnVzIHB1bGwtcmlnaHRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYlBhbmVsQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCIgKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2YgZGF0YS5tZXNzYWdlczsgbGV0IGkgPSBpbmRleDtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+PGI+VXNlcjoge3ttZXNzYWdlLnVzZXJ9fSAtIERhdGU6IHt7bWVzc2FnZS5kYXRlIHwgZGF0ZSA6ICdzaG9ydCd9fTwvYj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiIFtuZ0NsYXNzXT1cIlttZXNzYWdlLnR5cGUgPT09ICdSZXNvbHZlSU8nID8gJ3NlbGVjdGVkJyA6ICcnXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiICBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJlPnt7bWVzc2FnZS5tZXNzYWdlfX08L3ByZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlc3BvbnNpdmUtYnV0dG9uLWdyb3VwIGNvbGxhcHNlU2l6ZT1cIjkwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXdhcm5pbmdcIiAoY2xpY2spPVwiZWRpdE1lc3NhZ2UoaSlcIiAqbmdJZj1cImlzTXlNZXNzYWdlKG1lc3NhZ2UpXCI+RWRpdDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRhbmdlclwiIChjbGljayk9XCJkZWxldGVNZXNzYWdlKGkpXCIgKm5nSWY9XCJpc015TWVzc2FnZShtZXNzYWdlKVwiPkRlbGV0ZTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3Jlc3BvbnNpdmUtYnV0dG9uLWdyb3VwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgc3R5bGU9XCJtYXJnaW4tdG9wOiAxMHB4O1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzXCIgKGNsaWNrKT1cIm5ld01lc3NhZ2UoKVwiPk5ldyBNZXNzYWdlPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmdiLXBhbmVsPlxuICAgICAgICAgICAgPG5nYi1wYW5lbCBpZD1cImZpbGVzXCI+XG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSBuZ2JQYW5lbFRpdGxlPlxuXHRcdFx0XHRcdDxkaXY+IFxuXHRcdFx0XHRcdFx0PGxhYmVsIGNsYXNzPVwibGFiZWwtYWNjb3JkaW9uXCI+U3VwcG9ydCBUaWNrZXQgRmlsZXM8L2xhYmVsPlxuXHRcdFx0XHRcdFx0PGkgKm5nSWY9XCIhYWNjLmFjdGl2ZUlkcy5pbmNsdWRlcygnZmlsZXMnKVwiIGNsYXNzPVwiZmEgZmEtcGx1cyBwdWxsLXJpZ2h0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuXHRcdFx0XHRcdFx0PGkgKm5nSWY9XCJhY2MuYWN0aXZlSWRzLmluY2x1ZGVzKCdmaWxlcycpXCIgY2xhc3M9XCJmYSBmYS1taW51cyBwdWxsLXJpZ2h0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgbmdiUGFuZWxDb250ZW50PlxuXHRcdFx0XHRcdDxmaWxlLXVwbG9hZCAjZmlsZVVwbG9hZCAoZmlsZUFkZGVkKT1cIm9uRmlsZUFkZGVkKCRldmVudClcIiAoZmlsZVJlbW92ZWQpPVwib25GaWxlc1JlbW92ZWQoJGV2ZW50KVwiIFtmaWxlc109XCJmaWxlc1wiIFthbGxvd0RlbGV0ZV09XCJ0cnVlXCIgW2FsbG93UmVwbGFjZV09XCJ0cnVlXCI+PC9maWxlLXVwbG9hZD5cblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvbmdiLXBhbmVsPlxuICAgICAgICA8L25nYi1hY2NvcmRpb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiIHN0eWxlPVwicGFkZGluZy10b3A6IDE1cHg7XCI+XG4gICAgICAgIDxyZXNwb25zaXZlLWJ1dHRvbi1ncm91cCBjb2xsYXBzZVNpemU9XCI5MDBcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXdhcm5pbmdcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImVkaXQoKVwiPkVkaXQgU3VwcG9ydCBUaWNrZXQ8L2J1dHRvbj5cbiAgICAgICAgPC9yZXNwb25zaXZlLWJ1dHRvbi1ncm91cD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuICAgICJdfQ==
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC10aWNrZXQtZGV0YWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zdXBwb3J0LXRpY2tldC9kZXRhaWwvc3VwcG9ydC10aWNrZXQtZGV0YWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zdXBwb3J0LXRpY2tldC9kZXRhaWwvc3VwcG9ydC10aWNrZXQtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7O0FBQ2hCLENBQUM7QUFPckQsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGFBQWE7SUFXOUQsWUFBb0IsTUFBc0IsRUFBVSxJQUEwQixFQUFVLFNBQTBCLEVBQVUsR0FBa0I7UUFDN0ksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFzQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQVA5SSxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFLbkMsVUFBSyxHQUFnQixFQUFFLENBQUM7SUFJeEIsQ0FBQztJQUVELFFBQVE7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b0JBQzdILGdDQUFnQztvQkFDaEMsc0RBQXNEO29CQUN0RCxvR0FBb0c7b0JBQ3BHLHdEQUF3RDtvQkFDeEQsUUFBUTtvQkFDUixLQUFLO29CQUNMLFVBQVU7b0JBQ1YscUZBQXFGO29CQUNyRixLQUFLO29CQUNMLE1BQU07aUJBQ047cUJBQ0k7b0JBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLHFDQUFxQyxDQUFDLENBQUM7b0JBQ3JGLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7aUJBQ2xEO1lBQ0YsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQU87UUFDbEIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUNsRSxDQUFDOzswSEF6TVcsNEJBQTRCOzhHQUE1Qiw0QkFBNEIsdUNBSjdCLENBQUMsZUFBZSxDQUFDLHlLQ1g3Qiw4OE1BcUlJOzRGRHRIUyw0QkFBNEI7a0JBTHhDLFNBQVM7Z0NBQ0UsQ0FBQyxlQUFlLENBQUM7a01BTWEsVUFBVTtzQkFBbEQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdXBwb3J0VGlja2V0U2VydmljZSB9IGZyb20gJy4uL3N1cHBvcnQtdGlja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQcm92aWRlclNlcnZpY2UsIEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi9yZXNvbHZlaW8tY2xhc3MnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1cHBvcnRUaWNrZXRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zdXBwb3J0LXRpY2tldC5tb2RlbCc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2ZpbGUubW9kZWwnOztcblxuQENvbXBvbmVudCh7XG5cdHByb3ZpZGVyczogW1Byb3ZpZGVyU2VydmljZV0sXG5cdHRlbXBsYXRlVXJsOiAnLi9zdXBwb3J0LXRpY2tldC1kZXRhaWwuY29tcG9uZW50Lmh0bWwnXG59KVxuXG5leHBvcnQgY2xhc3MgU3VwcG9ydFRpY2tldERldGFpbENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7IFxuXG5cdEBWaWV3Q2hpbGQoJ2ZpbGVVcGxvYWQnLCB7c3RhdGljOiB0cnVlfSkgZmlsZVVwbG9hZDtcblxuXHRzdWJzY3JpcHRpb24kOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG5cdGlkOiBzdHJpbmc7XG5cdGRhdGE6IFN1cHBvcnRUaWNrZXRNb2RlbDtcblxuXHRmaWxlczogRmlsZU1vZGVsW10gPSBbXTtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgX3N0czogU3VwcG9ydFRpY2tldFNlcnZpY2UsIHByaXZhdGUgX3NlcnZpY2VzOiBQcm92aWRlclNlcnZpY2UsIHByaXZhdGUgX2RzOiBEaWFsb2dTZXJ2aWNlKSB7XG5cdFx0c3VwZXIoX3NlcnZpY2VzKTtcblx0fVxuXHRcdFxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLmlkID0gdGhpcy5fcm91dGUuc25hcHNob3QucGFyYW1zWydpZCddO1xuXHRcdHRoaXMuX3N0cy5zZXRTZWxlY3RlZFN1cHBvcnRUaWNrZXQodGhpcy5pZCk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ3N1cHBvcnRHZXRTdXBwb3J0VGlja2V0V2l0aElkJywgdGhpcy5pZCwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRpZiAoIXJlcykge1xuXHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9zdXBwb3J0LXRpY2tldC9saXN0Jyk7XG5cdFx0XHRcdHRoaXMuX2RzLmVycm9yKCdDb3VsZCBub3QgZmluZCBzdXBwb3J0IHRpY2tldCcpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRcblx0XHRcdHRoaXMuZGF0YSA9IHJlcztcblx0XHR9KTtcblx0fVxuXG5cdG5nT25EZXN0cm95KCkge1xuXHRcdHRoaXMuc3Vic2NyaXB0aW9uJC5mb3JFYWNoKHN1YiA9PiB7XG5cdFx0XHRzdWIudW5zdWJzY3JpYmUoKTtcblx0XHR9KTtcblx0fVxuXG5cdG9uRmlsZUFkZGVkKGZpbGU6IEZpbGVNb2RlbCkge1x0XG5cdFx0dGhpcy5kYXRhLmZpbGVzLnB1c2goZmlsZS5faWQpO1xuXG5cdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdzdXBwb3J0VXBkYXRlU3VwcG9ydFRpY2tldCcsIHRoaXMuZGF0YSwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRpZiAoZXJyIHx8ICFyZXMpIHtcblx0XHRcdFx0dGhpcy5fZHMuZXJyb3IoJ0NvdWxkIG5vdCB1cGRhdGUgc3VwcG9ydCB0aWNrZXQgZmlsZXMnKTtcblx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdzdXBwb3J0LXRpY2tldC1kZXRhaWwgLSB1cGRhdGUgc3VwcG9ydC10aWNrZXQgZmlsZXMgYWRkJywgW1xuXHRcdFx0XHRcdHRoaXMuZGF0YS5maWxlcywgZXJyXG5cdFx0XHRcdF0pO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0Ly8gdGhpcy5fc2VydmljZXMuX2FsZXJ0LnNldEFsZXJ0KCdpbmZvJywgJ1NlbmRpbmcgZW1haWwocykuJyk7XG5cblx0XHRcdFx0Ly8gdGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsU3VwcG9ydCgnc2VuZFN1cHBvcnRUaWNrZXRNb2RpZmllZEVtYWlsJywgdGhpcy5kYXRhLCB0aGlzLmRhdGEuZmlsZXMsIChlcnJFbWFpbCwgcmVzRW1haWwpID0+IHtcblx0XHRcdFx0Ly8gXHRpZiAoZXJyRW1haWwgfHwgIXJlc0VtYWlsKSB7XG5cdFx0XHRcdC8vIFx0XHR0aGlzLl9kcy5lcnJvcignQ291bGQgbm90IGVtYWlsIHN1cHBvcnQgdGlja2V0Jyk7XG5cdFx0XHRcdC8vIFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ2luc2VydEVycm9yTG9nJywgJ3N1cHBvcnQtdGlja2V0LWRldGFpbCAtIGVtYWlsIHN1cHBvcnQtdGlja2V0JywgW1xuXHRcdFx0XHQvLyBcdFx0XHR7cHJvcDogJ3N0YXR1cycsIGRhdGE6IHRoaXMuZGF0YS5zdGF0dXN9LCBlcnJFbWFpbFxuXHRcdFx0XHQvLyBcdFx0XSk7XG5cdFx0XHRcdC8vIFx0fVxuXHRcdFx0XHQvLyBcdGVsc2Uge1xuXHRcdFx0XHQvLyBcdFx0dGhpcy5fc2VydmljZXMuX2FsZXJ0LnNldEFsZXJ0KCdzdWNjZXNzJywgJ1N1cHBvcnQgVGlja2V0IGVtYWlsIGhhcyBiZWVuIHNlbnQnKTtcblx0XHRcdFx0Ly8gXHR9XG5cdFx0XHRcdC8vIH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0b25GaWxlc1JlbW92ZWQoZmlsZTogRmlsZU1vZGVsKSB7XG5cdFx0dGhpcy5fZHMuY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlbW92ZSBhIGZpbGU/IFRoaXMgd2lsbCBlbWFpbCBhbGwgY3VycmVudCB3YXRjaGVycz8nKS50aGVuKHllcyA9PiB7XG5cdFx0XHRpZiAodGhpcy5kYXRhLmZpbGVzLmluZGV4T2YoZmlsZS5faWQpICE9PSAtMSkge1xuXHRcdFx0XHR0aGlzLmRhdGEuZmlsZXMuc3BsaWNlKHRoaXMuZGF0YS5maWxlcy5pbmRleE9mKGZpbGUuX2lkKSwgMSk7XG5cblx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdzdXBwb3J0VXBkYXRlU3VwcG9ydFRpY2tldCcsIHRoaXMuZGF0YSwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRcdFx0aWYgKGVyciB8fCAhcmVzKSB7XG5cdFx0XHRcdFx0XHR0aGlzLl9kcy5lcnJvcignQ291bGQgbm90IHVwZGF0ZSBzdXBwb3J0LXRpY2tldCBmaWxlcycpO1xuXHRcdFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdzdXBwb3J0LXRpY2tldC1kZXRhaWwgLSB1cGRhdGUgZmlsZXMgcmVtb3ZlJywgW1xuXHRcdFx0XHRcdFx0XHR7cHJvcDogJ2ZpbGVzJywgZGF0YTogdGhpcy5kYXRhLmZpbGVzfSwgZXJyXG5cdFx0XHRcdFx0XHRdKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0sICgpID0+IHt9KTtcblx0fVxuXG5cdGVkaXQoKSB7XG5cdFx0dGhpcy5fc2VydmljZXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvc3VwcG9ydC10aWNrZXQvZWRpdC8nICsgdGhpcy5pZCk7XG5cdH1cblxuXHRuZXdNZXNzYWdlKCkge1xuXHRcdHRoaXMuX2RzLmlucHV0KCdJbnB1dCBNZXNzYWdlJywgW1xuXHRcdFx0e1xuXHRcdFx0XHRsYWJlbDogJ01lc3NhZ2UnLFxuXHRcdFx0XHRmb3JtOiAnbWVzc2FnZScsXG5cdFx0XHRcdGRhdGE6ICcnLFxuXHRcdFx0XHR2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG5cdFx0XHRcdHZhbGlkYXRvckVycm9yczogWydyZXF1aXJlZCddLFxuXHRcdFx0XHR2YWxpZGF0b3JNc2c6IFsnTWVzc2FnZSBpcyByZXF1aXJlZCddLFxuXHRcdFx0XHRyZXF1aXJlZDogdHJ1ZSxcblx0XHRcdFx0dHlwZTogJ3RleHRhcmVhJ1xuXHRcdFx0fVxuXHRcdF0pLnRoZW4oY2xvc2UgPT4ge1xuXHRcdFx0dGhpcy5kYXRhLm1lc3NhZ2VzLnB1c2goe1xuXHRcdFx0XHRtZXNzYWdlOiBjbG9zZS5tZXNzYWdlLnZhbHVlLFxuXHRcdFx0XHRpZF91c2VyOiB0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRVc2VyKCkuX2lkLFxuXHRcdFx0XHR1c2VyOiB0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRVc2VyKCkuZnVsbG5hbWUsXG5cdFx0XHRcdGRhdGU6IG5ldyBEYXRlKCksXG5cdFx0XHRcdHR5cGU6ICdDbGllbnQnXG5cdFx0XHR9KTtcblxuXHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdzdXBwb3J0VXBkYXRlU3VwcG9ydFRpY2tldCcsIHRoaXMuZGF0YSwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRcdGlmIChyZXMpIHtcblx0XHRcdFx0XHQvLyB0aGlzLl9zZXJ2aWNlcy5fYWxlcnQuc2V0QWxlcnQoJ3N1Y2Nlc3MnLCAnU3VwcG9ydCB0aWNrZXQgaGFzIGJlZW4gdXBkYXRlZCcpO1xuXG5cdFx0XHRcdFx0Ly8gdGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsU3VwcG9ydCgnc2VuZFN1cHBvcnRUaWNrZXRNb2RpZmllZEVtYWlsJywgdGhpcy5kYXRhLCB0aGlzLmRhdGEuZmlsZXMsIChlcnJFbWFpbCwgcmVzRW1haWwpID0+IHtcblx0XHRcdFx0XHQvLyBcdGlmIChlcnJFbWFpbCB8fCAhcmVzRW1haWwpIHtcblx0XHRcdFx0XHQvLyBcdFx0dGhpcy5fZHMuZXJyb3IoJ0NvdWxkIG5vdCBlbWFpbCBzdXBwb3J0IHRpY2tldCcpO1xuXHRcdFx0XHRcdC8vIFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ2luc2VydEVycm9yTG9nJywgJ3N1cHBvcnQtdGlja2V0LWRldGFpbCAtIGVtYWlsIHN1cHBvcnQtdGlja2V0JywgW1xuXHRcdFx0XHRcdC8vIFx0XHRcdHtwcm9wOiAnc3RhdHVzJywgZGF0YTogdGhpcy5kYXRhLnN0YXR1c30sIGVyckVtYWlsXG5cdFx0XHRcdFx0Ly8gXHRcdF0pO1xuXHRcdFx0XHRcdC8vIFx0fVxuXHRcdFx0XHRcdC8vIFx0ZWxzZSB7XG5cdFx0XHRcdFx0Ly8gXHRcdHRoaXMuX3NlcnZpY2VzLl9hbGVydC5zZXRBbGVydCgnc3VjY2VzcycsICdTdXBwb3J0IFRpY2tldCBlbWFpbCBoYXMgYmVlbiBzZW50Jyk7XG5cdFx0XHRcdFx0Ly8gXHR9XG5cdFx0XHRcdFx0Ly8gfSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdTdXBwb3J0IFRpY2tldCBEZXRhaWwgLSBBZGQgTWVzc2FnZScpO1xuXHRcdFx0XHRcdHRoaXMuX2RzLmVycm9yKCdTdXBwb3J0IHRpY2tldCBjb3VsZCBub3QgdXBkYXRlJyk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0sICgpID0+IHt9KTtcblx0fVxuXG5cdGVkaXRNZXNzYWdlKGluZGV4KSB7XG5cdFx0bGV0IG1lc3NhZ2UgPSB0aGlzLmRhdGEubWVzc2FnZXNbaW5kZXhdO1xuXHRcdHRoaXMuX2RzLmlucHV0KCdJbnB1dCBNZXNzYWdlJywgW1xuXHRcdFx0e1xuXHRcdFx0XHRsYWJlbDogJ01lc3NhZ2UnLFxuXHRcdFx0XHRmb3JtOiAnbWVzc2FnZScsXG5cdFx0XHRcdGRhdGE6IG1lc3NhZ2UubWVzc2FnZSxcblx0XHRcdFx0dmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuXHRcdFx0XHR2YWxpZGF0b3JFcnJvcnM6IFsncmVxdWlyZWQnXSxcblx0XHRcdFx0dmFsaWRhdG9yTXNnOiBbJ01lc3NhZ2UgaXMgcmVxdWlyZWQnXSxcblx0XHRcdFx0cmVxdWlyZWQ6IHRydWUsXG5cdFx0XHRcdHR5cGU6ICd0ZXh0YXJlYSdcblx0XHRcdH1cblx0XHRdKS50aGVuKGNsb3NlID0+IHtcblx0XHRcdG1lc3NhZ2UubWVzc2FnZSA9IGNsb3NlLm1lc3NhZ2UudmFsdWU7XG5cblx0XHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbCgnc3VwcG9ydFVwZGF0ZVN1cHBvcnRUaWNrZXQnLCB0aGlzLmRhdGEsIChlcnIsIHJlcykgPT4ge1xuXHRcdFx0XHRpZiAocmVzKSB7XG5cdFx0XHRcdFx0Ly8gdGhpcy5fc2VydmljZXMuX2FsZXJ0LnNldEFsZXJ0KCdzdWNjZXNzJywgJ1N1cHBvcnQgdGlja2V0IGhhcyBiZWVuIHVwZGF0ZWQnKTtcblxuXHRcdFx0XHRcdC8vIHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbFN1cHBvcnQoJ3NlbmRTdXBwb3J0VGlja2V0TW9kaWZpZWRFbWFpbCcsIHRoaXMuZGF0YSwgdGhpcy5kYXRhLmZpbGVzLCAoZXJyRW1haWwsIHJlc0VtYWlsKSA9PiB7XG5cdFx0XHRcdFx0Ly8gXHRpZiAoZXJyRW1haWwgfHwgIXJlc0VtYWlsKSB7XG5cdFx0XHRcdFx0Ly8gXHRcdHRoaXMuX2RzLmVycm9yKCdDb3VsZCBub3QgZW1haWwgc3VwcG9ydCB0aWNrZXQnKTtcblx0XHRcdFx0XHQvLyBcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdzdXBwb3J0LXRpY2tldC1kZXRhaWwgLSBlbWFpbCBzdXBwb3J0LXRpY2tldCcsIFtcblx0XHRcdFx0XHQvLyBcdFx0XHR7cHJvcDogJ3N0YXR1cycsIGRhdGE6IHRoaXMuZGF0YS5zdGF0dXN9LCBlcnJFbWFpbFxuXHRcdFx0XHRcdC8vIFx0XHRdKTtcblx0XHRcdFx0XHQvLyBcdH1cblx0XHRcdFx0XHQvLyBcdGVsc2Uge1xuXHRcdFx0XHRcdC8vIFx0XHR0aGlzLl9zZXJ2aWNlcy5fYWxlcnQuc2V0QWxlcnQoJ3N1Y2Nlc3MnLCAnU3VwcG9ydCBUaWNrZXQgZW1haWwgaGFzIGJlZW4gc2VudCcpO1xuXHRcdFx0XHRcdC8vIFx0fVxuXHRcdFx0XHRcdC8vIH0pO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbCgnaW5zZXJ0RXJyb3JMb2cnLCAnU3VwcG9ydCBUaWNrZXQgRGV0YWlsIC0gQWRkIE1lc3NhZ2UnKTtcblx0XHRcdFx0XHR0aGlzLl9kcy5lcnJvcignU3VwcG9ydCB0aWNrZXQgY291bGQgbm90IHVwZGF0ZScpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9LCAoKSA9PiB7fSk7XG5cdH1cblxuXHRkZWxldGVNZXNzYWdlKGluZGV4KSB7XG5cdFx0dGhpcy5fZHMuY29uZmlybSgnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlbW92ZSB0aGlzIG1lc3NhZ2U/JykudGhlbigoKSA9PiB7XG5cdFx0XHR0aGlzLmRhdGEubWVzc2FnZXMuc3BsaWNlKGluZGV4LCAxKTtcblxuXHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdzdXBwb3J0VXBkYXRlU3VwcG9ydFRpY2tldCcsIHRoaXMuZGF0YSwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRcdGlmIChyZXMpIHtcblx0XHRcdFx0XHQvLyB0aGlzLl9zZXJ2aWNlcy5fYWxlcnQuc2V0QWxlcnQoJ3N1Y2Nlc3MnLCAnU3VwcG9ydCB0aWNrZXQgaGFzIGJlZW4gdXBkYXRlZCcpO1xuXG5cdFx0XHRcdFx0Ly8gdGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsU3VwcG9ydCgnc2VuZFN1cHBvcnRUaWNrZXRNb2RpZmllZEVtYWlsJywgdGhpcy5kYXRhLCB0aGlzLmRhdGEuZmlsZXMsIChlcnJFbWFpbCwgcmVzRW1haWwpID0+IHtcblx0XHRcdFx0XHQvLyBcdGlmIChlcnJFbWFpbCB8fCAhcmVzRW1haWwpIHtcblx0XHRcdFx0XHQvLyBcdFx0dGhpcy5fZHMuZXJyb3IoJ0NvdWxkIG5vdCBlbWFpbCBzdXBwb3J0IHRpY2tldCcpO1xuXHRcdFx0XHRcdC8vIFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ2luc2VydEVycm9yTG9nJywgJ3N1cHBvcnQtdGlja2V0LWRldGFpbCAtIGVtYWlsIHN1cHBvcnQtdGlja2V0JywgW1xuXHRcdFx0XHRcdC8vIFx0XHRcdHtwcm9wOiAnc3RhdHVzJywgZGF0YTogdGhpcy5kYXRhLnN0YXR1c30sIGVyckVtYWlsXG5cdFx0XHRcdFx0Ly8gXHRcdF0pO1xuXHRcdFx0XHRcdC8vIFx0fVxuXHRcdFx0XHRcdC8vIFx0ZWxzZSB7XG5cdFx0XHRcdFx0Ly8gXHRcdHRoaXMuX3NlcnZpY2VzLl9hbGVydC5zZXRBbGVydCgnc3VjY2VzcycsICdTdXBwb3J0IFRpY2tldCBlbWFpbCBoYXMgYmVlbiBzZW50Jyk7XG5cdFx0XHRcdFx0Ly8gXHR9XG5cdFx0XHRcdFx0Ly8gfSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdTdXBwb3J0IFRpY2tldCBEZXRhaWwgLSBBZGQgTWVzc2FnZScpO1xuXHRcdFx0XHRcdHRoaXMuX2RzLmVycm9yKCdTdXBwb3J0IHRpY2tldCBjb3VsZCBub3QgdXBkYXRlJyk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdH0sICgpID0+IHt9KTtcblx0fVxuXG5cdGlzTXlNZXNzYWdlKG1lc3NhZ2UpIHtcblx0XHRyZXR1cm4gdGhpcy5fc2VydmljZXMuX2FjY291bnQuZ2V0VXNlcigpLl9pZCA9PT0gbWVzc2FnZS5pZF91c2VyO1xuXHR9XG59IiwiPHN0eWxlPlxuICAgIC5sYWJlbC1hY2NvcmRpb24ge1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwcHg7XG4gICAgfVxuXG4gICAgLmZhLXBsdXMge1xuICAgICAgICBjb2xvcjogYmxhY2s7XG4gICAgfVxuXG4gICAgLmZhLW1pbnVzIHtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgIH1cblxuICAgIG5nYi1hY2NvcmRpb24ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBkbCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICB9XG5cbiAgICAuc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGJsdWU7XG4gICAgfVxuPC9zdHlsZT5cblxuPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiICpuZ0lmPVwiZGF0YVwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPG5nYi1hY2NvcmRpb24gI2FjYz1cIm5nYkFjY29yZGlvblwiIGFjdGl2ZUlkcz1cInN1cHBvcnRUaWNrZXRJbmZvLCBzdXBwb3J0VGlja2V0TWVzc2FnZXMsIGZpbGVzXCI+XG4gICAgICAgICAgICA8bmdiLXBhbmVsIGlkPVwic3VwcG9ydFRpY2tldEluZm9cIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiUGFuZWxUaXRsZT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj4gXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbC1hY2NvcmRpb25cIj5TdXBwb3J0IFRpY2tldCBJbmZvPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWFjYy5hY3RpdmVJZHMuaW5jbHVkZXMoJ3N1cHBvcnRUaWNrZXRJbmZvJylcIiBjbGFzcz1cImZhIGZhLXBsdXMgZmxvYXQtZW5kXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJhY2MuYWN0aXZlSWRzLmluY2x1ZGVzKCdzdXBwb3J0VGlja2V0SW5mbycpXCIgY2xhc3M9XCJmYSBmYS1taW51cyBmbG9hdC1lbmRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYlBhbmVsQ29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPjxiPkdlbmVyYWwgSW5mbzwvYj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkdD5TdXBwb3J0IFRpY2tldCAjPC9kdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGQ+e3tkYXRhLnN1cHBvcnRfdGlja2V0X251bWJlciB8IG51bWJlcn19PC9kZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHQ+RGF0ZSBDcmVhdGVkPC9kdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGQ+e3tkYXRhLmRhdGVfY3JlYXRlZCB8IGRhdGU6ICdzaG9ydCd9fTwvZGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR0PlR5cGU8L2R0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZD57e2RhdGEudHlwZX19PC9kZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHQ+VXNlcjwvZHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRkPnt7ZGF0YS51c2VyX2NyZWF0ZWR9fTwvZGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR0PlN0YXR1czwvZHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRkPnt7IGRhdGEuc3RhdHVzIH19PC9kZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+PGI+UHJvYmxlbSBEZXNjcmlwdGlvbjwvYj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cHJlPnt7ZGF0YS5pc3N1ZX19PC9wcmU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmdiLXBhbmVsPlxuICAgICAgICAgICAgPG5nYi1wYW5lbCBpZD1cInN1cHBvcnRUaWNrZXRNZXNzYWdlc1wiICpuZ0lmPVwiZGF0YVwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JQYW5lbFRpdGxlPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PiBcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImxhYmVsLWFjY29yZGlvblwiPk1lc3NhZ2VzPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIWFjYy5hY3RpdmVJZHMuaW5jbHVkZXMoJ3N1cHBvcnRUaWNrZXRNZXNzYWdlcycpXCIgY2xhc3M9XCJmYSBmYS1wbHVzIGZsb2F0LWVuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiYWNjLmFjdGl2ZUlkcy5pbmNsdWRlcygnc3VwcG9ydFRpY2tldE1lc3NhZ2VzJylcIiBjbGFzcz1cImZhIGZhLW1pbnVzIGZsb2F0LWVuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiUGFuZWxDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIiAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBkYXRhLm1lc3NhZ2VzOyBsZXQgaSA9IGluZGV4O1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj48Yj5Vc2VyOiB7e21lc3NhZ2UudXNlcn19IC0gRGF0ZToge3ttZXNzYWdlLmRhdGUgfCBkYXRlIDogJ3Nob3J0J319PC9iPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCIgW25nQ2xhc3NdPVwiW21lc3NhZ2UudHlwZSA9PT0gJ1Jlc29sdmVJTycgPyAnc2VsZWN0ZWQnIDogJyddXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwcmU+e3ttZXNzYWdlLm1lc3NhZ2V9fTwvcHJlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVzcG9uc2l2ZS1idXR0b24tZ3JvdXAgY29sbGFwc2VTaXplPVwiOTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4td2FybmluZ1wiIChjbGljayk9XCJlZGl0TWVzc2FnZShpKVwiICpuZ0lmPVwiaXNNeU1lc3NhZ2UobWVzc2FnZSlcIj5FZGl0PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tZGFuZ2VyXCIgKGNsaWNrKT1cImRlbGV0ZU1lc3NhZ2UoaSlcIiAqbmdJZj1cImlzTXlNZXNzYWdlKG1lc3NhZ2UpXCI+RGVsZXRlPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcmVzcG9uc2l2ZS1idXR0b24tZ3JvdXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcHg7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXN1Y2Nlc3NcIiAoY2xpY2spPVwibmV3TWVzc2FnZSgpXCI+TmV3IE1lc3NhZ2U8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZ2ItcGFuZWw+XG4gICAgICAgICAgICA8bmdiLXBhbmVsIGlkPVwiZmlsZXNcIj5cblx0XHRcdFx0PG5nLXRlbXBsYXRlIG5nYlBhbmVsVGl0bGU+XG5cdFx0XHRcdFx0PGRpdj4gXG5cdFx0XHRcdFx0XHQ8bGFiZWwgY2xhc3M9XCJsYWJlbC1hY2NvcmRpb25cIj5TdXBwb3J0IFRpY2tldCBGaWxlczwvbGFiZWw+XG5cdFx0XHRcdFx0XHQ8aSAqbmdJZj1cIiFhY2MuYWN0aXZlSWRzLmluY2x1ZGVzKCdmaWxlcycpXCIgY2xhc3M9XCJmYSBmYS1wbHVzIGZsb2F0LWVuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cblx0XHRcdFx0XHRcdDxpICpuZ0lmPVwiYWNjLmFjdGl2ZUlkcy5pbmNsdWRlcygnZmlsZXMnKVwiIGNsYXNzPVwiZmEgZmEtbWludXMgZmxvYXQtZW5kXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgbmdiUGFuZWxDb250ZW50PlxuXHRcdFx0XHRcdDxmaWxlLXVwbG9hZCAjZmlsZVVwbG9hZCAoZmlsZUFkZGVkKT1cIm9uRmlsZUFkZGVkKCRldmVudClcIiAoZmlsZVJlbW92ZWQpPVwib25GaWxlc1JlbW92ZWQoJGV2ZW50KVwiIFtmaWxlc109XCJmaWxlc1wiIFthbGxvd0RlbGV0ZV09XCJ0cnVlXCIgW2FsbG93UmVwbGFjZV09XCJ0cnVlXCI+PC9maWxlLXVwbG9hZD5cblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvbmdiLXBhbmVsPlxuICAgICAgICA8L25nYi1hY2NvcmRpb24+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiIHN0eWxlPVwicGFkZGluZy10b3A6IDE1cHg7XCI+XG4gICAgICAgIDxyZXNwb25zaXZlLWJ1dHRvbi1ncm91cCBjb2xsYXBzZVNpemU9XCI5MDBcIj5cbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXdhcm5pbmdcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImVkaXQoKVwiPkVkaXQgU3VwcG9ydCBUaWNrZXQ8L2J1dHRvbj5cbiAgICAgICAgPC9yZXNwb25zaXZlLWJ1dHRvbi1ncm91cD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuICAgICJdfQ==
@@ -107,11 +107,11 @@ export class SupportTicketEditComponent extends BaseComponent {
107
107
  });
108
108
  }
109
109
  }
110
- SupportTicketEditComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SupportTicketEditComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.SupportTicketService }, { token: i3.ProviderService }, { token: i4.DialogService }], target: i0.ɵɵFactoryTarget.Component });
111
- SupportTicketEditComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SupportTicketEditComponent, selector: "ng-component", providers: [ProviderService], viewQueries: [{ propertyName: "fileUpload", first: true, predicate: ["fileUpload"], descendants: true, static: true }, { propertyName: "selectType", first: true, predicate: ["selectType"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<style>\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n</style>\n\n<div class=\"col-lg-12\">\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"submitForm(form)\">\n <div class=\"row\">\n <ngb-accordion #acc=\"ngbAccordion\" activeIds=\"supportTicketInfo\">\n <ngb-panel id=\"supportTicketInfo\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Support Ticket Info</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-plus pull-right\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-minus pull-right\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"mb-3\">\n <label class=\"form-control-label\">Support Ticket Type</label>\n <em *ngIf=\"!form.controls.type.valid\">- Required</em>\n <select [ngClass]=\"['form-control', form.controls.type.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"type\" (change)=\"onTypeChange()\">\n <option value=\"\">Select Type</option>\n <option value=\"General Inquery\">General Inquery</option>\n <option value=\"System Impairment\">System Impairment</option>\n <option value=\"Request New Feature\">Request New Feature</option>\n </select>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.type.valid\">Type is required</div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <div class=\"mb-3\">\n <label class=\"form-control-label\">Problem Description</label>\n <em *ngIf=\"!form.controls.issue.valid\">- Required</em>\n <textarea formControlName=\"issue\" [ngClass]=\"['form-control', form.controls.issue.valid ? 'is-valid' : 'is-invalid' ]\" [rows]=\"5\" style=\"overflow-x: hidden\"></textarea>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.issue.valid\">Problem Description is required</div>\n </div>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n </ngb-accordion>\n </div>\n <div class=\"row\" style=\"padding-top: 15px;\">\n <form-button [form]=\"form\" [disabled]=\"disableFormButton\"></form-button>\n </div>\n </form>\n</div>\n ", styles: ["\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n"], dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.NgbAccordion, selector: "ngb-accordion", inputs: ["animation", "activeIds", "closeOthers", "destroyOnHide", "type"], outputs: ["panelChange", "shown", "hidden"], exportAs: ["ngbAccordion"] }, { kind: "directive", type: i6.NgbPanel, selector: "ngb-panel", inputs: ["disabled", "id", "title", "type", "cardClass"], outputs: ["shown", "hidden"] }, { kind: "directive", type: i6.NgbPanelTitle, selector: "ng-template[ngbPanelTitle]" }, { kind: "directive", type: i6.NgbPanelContent, selector: "ng-template[ngbPanelContent]" }, { kind: "component", type: i7.FormButtonComponent, selector: "form-button", inputs: ["form", "disabled", "type"] }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SupportTicketEditComponent, decorators: [{
110
+ SupportTicketEditComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SupportTicketEditComponent, deps: [{ token: i1.ActivatedRoute }, { token: i2.SupportTicketService }, { token: i3.ProviderService }, { token: i4.DialogService }], target: i0.ɵɵFactoryTarget.Component });
111
+ SupportTicketEditComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SupportTicketEditComponent, selector: "ng-component", providers: [ProviderService], viewQueries: [{ propertyName: "fileUpload", first: true, predicate: ["fileUpload"], descendants: true, static: true }, { propertyName: "selectType", first: true, predicate: ["selectType"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<style>\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n</style>\n\n<div class=\"col-lg-12\">\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"submitForm(form)\">\n <div class=\"row\">\n <ngb-accordion #acc=\"ngbAccordion\" activeIds=\"supportTicketInfo\">\n <ngb-panel id=\"supportTicketInfo\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Support Ticket Info</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Support Ticket Type</label>\n <em *ngIf=\"!form.controls.type.valid\">- Required</em>\n <select [ngClass]=\"['form-control', form.controls.type.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"type\" (change)=\"onTypeChange()\">\n <option value=\"\">Select Type</option>\n <option value=\"General Inquery\">General Inquery</option>\n <option value=\"System Impairment\">System Impairment</option>\n <option value=\"Request New Feature\">Request New Feature</option>\n </select>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.type.valid\">Type is required</div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Problem Description</label>\n <em *ngIf=\"!form.controls.issue.valid\">- Required</em>\n <textarea formControlName=\"issue\" [ngClass]=\"['form-control', form.controls.issue.valid ? 'is-valid' : 'is-invalid' ]\" [rows]=\"5\" style=\"overflow-x: hidden\"></textarea>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.issue.valid\">Problem Description is required</div>\n </div>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n </ngb-accordion>\n </div>\n <div class=\"row\" style=\"padding-top: 15px;\">\n <form-button [form]=\"form\" [disabled]=\"disableFormButton\"></form-button>\n </div>\n </form>\n</div>\n ", styles: ["\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n"], dependencies: [{ kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.NgbAccordion, selector: "ngb-accordion", inputs: ["animation", "activeIds", "closeOthers", "destroyOnHide", "type"], outputs: ["panelChange", "shown", "hidden"], exportAs: ["ngbAccordion"] }, { kind: "directive", type: i6.NgbPanel, selector: "ngb-panel", inputs: ["disabled", "id", "title", "type", "cardClass"], outputs: ["shown", "hidden"] }, { kind: "directive", type: i6.NgbPanelTitle, selector: "ng-template[ngbPanelTitle]" }, { kind: "directive", type: i6.NgbPanelContent, selector: "ng-template[ngbPanelContent]" }, { kind: "component", type: i7.FormButtonComponent, selector: "form-button", inputs: ["form", "disabled", "type"] }, { kind: "directive", type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SupportTicketEditComponent, decorators: [{
113
113
  type: Component,
114
- args: [{ providers: [ProviderService], template: "<style>\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n</style>\n\n<div class=\"col-lg-12\">\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"submitForm(form)\">\n <div class=\"row\">\n <ngb-accordion #acc=\"ngbAccordion\" activeIds=\"supportTicketInfo\">\n <ngb-panel id=\"supportTicketInfo\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Support Ticket Info</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-plus pull-right\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-minus pull-right\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"mb-3\">\n <label class=\"form-control-label\">Support Ticket Type</label>\n <em *ngIf=\"!form.controls.type.valid\">- Required</em>\n <select [ngClass]=\"['form-control', form.controls.type.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"type\" (change)=\"onTypeChange()\">\n <option value=\"\">Select Type</option>\n <option value=\"General Inquery\">General Inquery</option>\n <option value=\"System Impairment\">System Impairment</option>\n <option value=\"Request New Feature\">Request New Feature</option>\n </select>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.type.valid\">Type is required</div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <div class=\"mb-3\">\n <label class=\"form-control-label\">Problem Description</label>\n <em *ngIf=\"!form.controls.issue.valid\">- Required</em>\n <textarea formControlName=\"issue\" [ngClass]=\"['form-control', form.controls.issue.valid ? 'is-valid' : 'is-invalid' ]\" [rows]=\"5\" style=\"overflow-x: hidden\"></textarea>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.issue.valid\">Problem Description is required</div>\n </div>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n </ngb-accordion>\n </div>\n <div class=\"row\" style=\"padding-top: 15px;\">\n <form-button [form]=\"form\" [disabled]=\"disableFormButton\"></form-button>\n </div>\n </form>\n</div>\n " }]
114
+ args: [{ providers: [ProviderService], template: "<style>\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n</style>\n\n<div class=\"col-lg-12\">\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"submitForm(form)\">\n <div class=\"row\">\n <ngb-accordion #acc=\"ngbAccordion\" activeIds=\"supportTicketInfo\">\n <ngb-panel id=\"supportTicketInfo\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Support Ticket Info</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Support Ticket Type</label>\n <em *ngIf=\"!form.controls.type.valid\">- Required</em>\n <select [ngClass]=\"['form-control', form.controls.type.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"type\" (change)=\"onTypeChange()\">\n <option value=\"\">Select Type</option>\n <option value=\"General Inquery\">General Inquery</option>\n <option value=\"System Impairment\">System Impairment</option>\n <option value=\"Request New Feature\">Request New Feature</option>\n </select>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.type.valid\">Type is required</div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Problem Description</label>\n <em *ngIf=\"!form.controls.issue.valid\">- Required</em>\n <textarea formControlName=\"issue\" [ngClass]=\"['form-control', form.controls.issue.valid ? 'is-valid' : 'is-invalid' ]\" [rows]=\"5\" style=\"overflow-x: hidden\"></textarea>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.issue.valid\">Problem Description is required</div>\n </div>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n </ngb-accordion>\n </div>\n <div class=\"row\" style=\"padding-top: 15px;\">\n <form-button [form]=\"form\" [disabled]=\"disableFormButton\"></form-button>\n </div>\n </form>\n</div>\n " }]
115
115
  }], ctorParameters: function () { return [{ type: i1.ActivatedRoute }, { type: i2.SupportTicketService }, { type: i3.ProviderService }, { type: i4.DialogService }]; }, propDecorators: { fileUpload: [{
116
116
  type: ViewChild,
117
117
  args: ['fileUpload', { static: true }]
@@ -119,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
119
119
  type: ViewChild,
120
120
  args: ['selectType', { static: true }]
121
121
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC10aWNrZXQtZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc3VwcG9ydC10aWNrZXQvZWRpdC9zdXBwb3J0LXRpY2tldC1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zdXBwb3J0LXRpY2tldC9lZGl0L3N1cHBvcnQtdGlja2V0LWVkaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7QUFPcEUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGFBQWE7SUFjNUQsWUFBb0IsTUFBc0IsRUFBVSxJQUEwQixFQUFVLFNBQTBCLEVBQVUsR0FBa0I7UUFDN0ksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFzQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQU45SSxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFJbkMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO0lBSTFCLENBQUM7SUFFRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLEVBQUUs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SUFFRCxVQUFVLENBQUMsSUFBSTtRQUNkLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFFOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ3ZGLElBQUksR0FBRyxFQUFFO2dCQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUscUNBQXFDLENBQUMsQ0FBQztnQkFDOUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUMxRTtpQkFDSTtnQkFDSixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsNkNBQTZDLEVBQUU7b0JBQzVGLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUc7aUJBQ3BCLENBQUMsQ0FBQzthQUNIO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzt1SEE3R1csMEJBQTBCOzJHQUExQiwwQkFBMEIsdUNBSjNCLENBQUMsZUFBZSxDQUFDLGtSQ1Y3QixpMkdBK0RJOzJGRGpEUywwQkFBMEI7a0JBTHRDLFNBQVM7Z0NBQ0UsQ0FBQyxlQUFlLENBQUM7a01BTWMsVUFBVTtzQkFBbkQsU0FBUzt1QkFBRSxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNFLFVBQVU7c0JBQW5ELFNBQVM7dUJBQUUsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3VwcG9ydFRpY2tldFNlcnZpY2UgfSBmcm9tICcuLi9zdXBwb3J0LXRpY2tldC5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRvcnMsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJvdmlkZXJTZXJ2aWNlLCBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcmVzb2x2ZWlvLWNsYXNzJztcbmltcG9ydCB7IFN1cHBvcnRUaWNrZXRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zdXBwb3J0LXRpY2tldC5tb2RlbCc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcblx0cHJvdmlkZXJzOiBbUHJvdmlkZXJTZXJ2aWNlXSxcblx0dGVtcGxhdGVVcmw6ICcuL3N1cHBvcnQtdGlja2V0LWVkaXQuY29tcG9uZW50Lmh0bWwnXG59KVxuXG5leHBvcnQgY2xhc3MgU3VwcG9ydFRpY2tldEVkaXRDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kgeyBcblxuXHRAVmlld0NoaWxkICgnZmlsZVVwbG9hZCcsIHtzdGF0aWM6IHRydWV9KSBmaWxlVXBsb2FkO1xuXHRAVmlld0NoaWxkICgnc2VsZWN0VHlwZScsIHtzdGF0aWM6IHRydWV9KSBzZWxlY3RUeXBlO1xuXG5cdGlkOiBzdHJpbmc7XG5cdGRhdGE6IFN1cHBvcnRUaWNrZXRNb2RlbDtcblx0XG5cdHN1YnNjcmlwdGlvbiQ6IFN1YnNjcmlwdGlvbltdID0gW107XG5cblx0Zm9ybTogRm9ybUdyb3VwO1xuXG5cdGRpc2FibGVGb3JtQnV0dG9uID0gZmFsc2U7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIF9zdHM6IFN1cHBvcnRUaWNrZXRTZXJ2aWNlLCBwcml2YXRlIF9zZXJ2aWNlczogUHJvdmlkZXJTZXJ2aWNlLCBwcml2YXRlIF9kczogRGlhbG9nU2VydmljZSkge1xuXHRcdHN1cGVyKF9zZXJ2aWNlcyk7XG5cdH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLmlkID0gdGhpcy5fcm91dGUuc25hcHNob3QucGFyYW1zWydpZCddO1xuXHRcdHRoaXMuX3N0cy5zZXRTZWxlY3RlZFN1cHBvcnRUaWNrZXQodGhpcy5pZC50b1N0cmluZygpKTtcblxuXHRcdHRoaXMuZm9ybSA9IHRoaXMuX3NlcnZpY2VzLl9mYi5ncm91cCh7XG5cdFx0XHRfaWQ6IFsnJ10sXG5cdFx0XHRfX3Y6IFswXSxcblx0XHRcdHR5cGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcblx0XHRcdHByaW9yaXR5OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG5cdFx0XHRpc3N1ZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuXHRcdFx0c3VwcG9ydF90aWNrZXRfbnVtYmVyOiBbbnVsbF0sXG5cdFx0XHRzdXBwb3J0X3RpY2tldF9udW1iZXJfc3RyaW5nOiBbbnVsbF0sXG5cdFx0XHRzdGF0dXM6IFsnT3BlbmVkJ10sXG5cdFx0XHRzdWJzdGF0dXM6IFsnTmV3J10sXG5cdFx0XHRjbGllbnQ6IFsnJ10sXG5cdFx0XHRpZF9jbGllbnQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcblx0XHRcdG1lc3NhZ2VzOiBbW11dLFxuXHRcdFx0ZGF0ZV9jcmVhdGVkOiBbbnVsbF0sXG5cdFx0XHRkYXRlX2NyZWF0ZWRfc3RyaW5nOiBbJyddLFxuXHRcdFx0aWRfdXNlcl9jcmVhdGVkOiBbdGhpcy5fc2VydmljZXMuX2FjY291bnQuZ2V0VXNlcigpLl9pZF0sXG5cdFx0XHR1c2VyX2NyZWF0ZWQ6IFt0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRVc2VyKCkuZnVsbG5hbWVdLFxuXHRcdFx0YmlsbGFibGU6IFtmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcblx0XHRcdGRhdGVfaW52ZXN0aWdhdGlvbjogW251bGxdLFxuXHRcdFx0ZGF0ZV9jbG9zZWQ6IFtudWxsXSxcblx0XHRcdGZpbGVzOiBbW11dLFxuXHRcdFx0Y3VycmVudF93YXRjaGVyczogW1tdXSxcblx0XHRcdGNsaWVudF91c2VyOiBbbnVsbF0sXG5cdFx0XHR1c2Vyc19hc3NpZ25lZDogW1tdXSxcblx0XHRcdGJpbGxfZGVzY3JpcHRpb246IFsnJ10sXG5cdFx0XHR0YXNrczogW1tdXSxcblx0XHRcdG5vdGVzOiBbW11dLFxuXHRcdFx0ZGlmZmljdWx0eTogWzFdXG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ3N1cHBvcnRHZXRTdXBwb3J0VGlja2V0V2l0aElkJywgdGhpcy5pZCwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRpZiAoIXJlcykge1xuXHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9zdXBwb3J0LXRpY2tldC9saXN0Jyk7XG5cdFx0XHRcdHRoaXMuX2RzLmVycm9yKCdDb3VsZCBub3QgZmluZCBzdXBwb3J0IHRpY2tldCcpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuZGF0YSA9IHJlcztcblxuXHRcdFx0dGhpcy5sb2FkRm9ybSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5zdWJzY3JpcHRpb24kLmZvckVhY2goc3ViID0+IHtcblx0XHRcdHN1Yi51bnN1YnNjcmliZSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0bG9hZEZvcm0oKSB7XG5cdFx0dGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5kYXRhKTtcblx0fVxuXG5cdG9uVHlwZUNoYW5nZSgpIHtcblx0XHRpZiAodGhpcy5mb3JtLmNvbnRyb2xzLnR5cGUudmFsdWUgPT09ICdTeXN0ZW0gSW1wYWlybWVudCcpIHtcblx0XHRcdHRoaXMuZm9ybS5jb250cm9scy5wcmlvcml0eS5zZXRWYWx1ZSgnSGlnaCcpO1xuXHRcdFx0dGhpcy5mb3JtLmNvbnRyb2xzLmJpbGxhYmxlLnNldFZhbHVlKGZhbHNlKTtcblx0XHR9XG5cdFx0ZWxzZSBpZiAodGhpcy5mb3JtLmNvbnRyb2xzLnR5cGUudmFsdWUgPT09ICdSZXF1ZXN0IE5ldyBGZWF0dXJlJykge1xuXHRcdFx0dGhpcy5mb3JtLmNvbnRyb2xzLnByaW9yaXR5LnNldFZhbHVlKCdMb3cnKTtcblx0XHRcdHRoaXMuZm9ybS5jb250cm9scy5iaWxsYWJsZS5zZXRWYWx1ZSh0cnVlKTtcblx0XHR9XG5cdFx0ZWxzZSBpZiAodGhpcy5mb3JtLmNvbnRyb2xzLnR5cGUudmFsdWUgPT09ICdHZW5lcmFsIElucXVlcnknKSB7XG5cdFx0XHR0aGlzLmZvcm0uY29udHJvbHMucHJpb3JpdHkuc2V0VmFsdWUoJ0xvdycpO1xuXHRcdFx0dGhpcy5mb3JtLmNvbnRyb2xzLmJpbGxhYmxlLnNldFZhbHVlKHRydWUpO1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdHRoaXMuZm9ybS5jb250cm9scy5wcmlvcml0eS5zZXRWYWx1ZSgnJyk7XG5cdFx0XHR0aGlzLmZvcm0uY29udHJvbHMuYmlsbGFibGUuc2V0VmFsdWUoZmFsc2UpO1xuXHRcdH1cblx0fVxuXG5cdHN1Ym1pdEZvcm0oZm9ybSkge1xuXHRcdHRoaXMuZGlzYWJsZUZvcm1CdXR0b24gPSB0cnVlO1xuXG5cdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdzdXBwb3J0VXBkYXRlU3VwcG9ydFRpY2tldCcsIHRoaXMuZm9ybS52YWx1ZSwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRpZiAocmVzKSB7XG5cdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hbGVydC5zZXRBbGVydCgnaW5mbycsICdFZGl0aW5nIHN1cHBvcnQgdGlja2V0LCBwbGVhc2Ugd2FpdCcpO1xuXHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9zdXBwb3J0LXRpY2tldC9kZXRhaWwvJyArIHRoaXMuaWQpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdHRoaXMuX2RzLmVycm9yKCdDb3VsZCBub3QgZWRpdCBzdXBwb3J0IHRpY2tldCcpO1xuXHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ2luc2VydEVycm9yTG9nJywgJ1N1cHBvcnQtdGlja2V0LWVkaXQgLSB1cGRhdGUgc3VwcG9ydCB0aWNrZXQnLCBbXG5cdFx0XHRcdFx0dGhpcy5mb3JtLnZhbHVlLCBlcnJcblx0XHRcdFx0XSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiIsIjxzdHlsZT5cbiAgICAubGFiZWwtYWNjb3JkaW9uIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cblxuICAgIC5mYS1wbHVzIHtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgIH1cblxuICAgIC5mYS1taW51cyB7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICB9XG48L3N0eWxlPlxuXG48ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgbm92YWxpZGF0ZSAobmdTdWJtaXQpPVwic3VibWl0Rm9ybShmb3JtKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8bmdiLWFjY29yZGlvbiAjYWNjPVwibmdiQWNjb3JkaW9uXCIgYWN0aXZlSWRzPVwic3VwcG9ydFRpY2tldEluZm9cIj5cbiAgICAgICAgICAgICAgICA8bmdiLXBhbmVsIGlkPVwic3VwcG9ydFRpY2tldEluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYlBhbmVsVGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbC1hY2NvcmRpb25cIj5TdXBwb3J0IFRpY2tldCBJbmZvPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFhY2MuYWN0aXZlSWRzLmluY2x1ZGVzKCdzdXBwb3J0VGlja2V0SW5mbycpXCIgY2xhc3M9XCJmYSBmYS1wbHVzIHB1bGwtcmlnaHRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgKm5nSWY9XCJhY2MuYWN0aXZlSWRzLmluY2x1ZGVzKCdzdXBwb3J0VGlja2V0SW5mbycpXCIgY2xhc3M9XCJmYSBmYS1taW51cyBwdWxsLXJpZ2h0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JQYW5lbENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sLWxhYmVsXCI+U3VwcG9ydCBUaWNrZXQgVHlwZTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0gKm5nSWY9XCIhZm9ybS5jb250cm9scy50eXBlLnZhbGlkXCI+LSBSZXF1aXJlZDwvZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBbbmdDbGFzc109XCJbJ2Zvcm0tY29udHJvbCcsIGZvcm0uY29udHJvbHMudHlwZS52YWxpZCA/ICdpcy12YWxpZCcgOiAnaXMtaW52YWxpZCddXCIgZm9ybUNvbnRyb2xOYW1lPVwidHlwZVwiIChjaGFuZ2UpPVwib25UeXBlQ2hhbmdlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlNlbGVjdCBUeXBlPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJHZW5lcmFsIElucXVlcnlcIj5HZW5lcmFsIElucXVlcnk8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlN5c3RlbSBJbXBhaXJtZW50XCI+U3lzdGVtIEltcGFpcm1lbnQ8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlJlcXVlc3QgTmV3IEZlYXR1cmVcIj5SZXF1ZXN0IE5ldyBGZWF0dXJlPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiIWZvcm0uY29udHJvbHMudHlwZS52YWxpZFwiPlR5cGUgaXMgcmVxdWlyZWQ8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wtbGFiZWxcIj5Qcm9ibGVtIERlc2NyaXB0aW9uPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxlbSAqbmdJZj1cIiFmb3JtLmNvbnRyb2xzLmlzc3VlLnZhbGlkXCI+LSBSZXF1aXJlZDwvZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgZm9ybUNvbnRyb2xOYW1lPVwiaXNzdWVcIiBbbmdDbGFzc109XCJbJ2Zvcm0tY29udHJvbCcsIGZvcm0uY29udHJvbHMuaXNzdWUudmFsaWQgPyAnaXMtdmFsaWQnIDogJ2lzLWludmFsaWQnIF1cIiBbcm93c109XCI1XCIgc3R5bGU9XCJvdmVyZmxvdy14OiBoaWRkZW5cIj48L3RleHRhcmVhPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cIiFmb3JtLmNvbnRyb2xzLmlzc3VlLnZhbGlkXCI+UHJvYmxlbSBEZXNjcmlwdGlvbiBpcyByZXF1aXJlZDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmdiLXBhbmVsPlxuICAgICAgICAgICAgPC9uZ2ItYWNjb3JkaW9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIHN0eWxlPVwicGFkZGluZy10b3A6IDE1cHg7XCI+XG4gICAgICAgICAgICA8Zm9ybS1idXR0b24gW2Zvcm1dPVwiZm9ybVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlRm9ybUJ1dHRvblwiPjwvZm9ybS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbjwvZGl2PlxuICAgICJdfQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC10aWNrZXQtZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc3VwcG9ydC10aWNrZXQvZWRpdC9zdXBwb3J0LXRpY2tldC1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zdXBwb3J0LXRpY2tldC9lZGl0L3N1cHBvcnQtdGlja2V0LWVkaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7QUFPcEUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGFBQWE7SUFjNUQsWUFBb0IsTUFBc0IsRUFBVSxJQUEwQixFQUFVLFNBQTBCLEVBQVUsR0FBa0I7UUFDN0ksS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBREUsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFzQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQU45SSxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFJbkMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO0lBSTFCLENBQUM7SUFFRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLEVBQUUs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SUFFRCxVQUFVLENBQUMsSUFBSTtRQUNkLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFFOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ3ZGLElBQUksR0FBRyxFQUFFO2dCQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUscUNBQXFDLENBQUMsQ0FBQztnQkFDOUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUMxRTtpQkFDSTtnQkFDSixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsNkNBQTZDLEVBQUU7b0JBQzVGLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUc7aUJBQ3BCLENBQUMsQ0FBQzthQUNIO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzt3SEE3R1csMEJBQTBCOzRHQUExQiwwQkFBMEIsdUNBSjNCLENBQUMsZUFBZSxDQUFDLGtSQ1Y3QiwyMkdBK0RJOzRGRGpEUywwQkFBMEI7a0JBTHRDLFNBQVM7Z0NBQ0UsQ0FBQyxlQUFlLENBQUM7a01BTWMsVUFBVTtzQkFBbkQsU0FBUzt1QkFBRSxZQUFZLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNFLFVBQVU7c0JBQW5ELFNBQVM7dUJBQUUsWUFBWSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3VwcG9ydFRpY2tldFNlcnZpY2UgfSBmcm9tICcuLi9zdXBwb3J0LXRpY2tldC5zZXJ2aWNlJztcbmltcG9ydCB7IFZhbGlkYXRvcnMsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUHJvdmlkZXJTZXJ2aWNlLCBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcmVzb2x2ZWlvLWNsYXNzJztcbmltcG9ydCB7IFN1cHBvcnRUaWNrZXRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zdXBwb3J0LXRpY2tldC5tb2RlbCc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcblx0cHJvdmlkZXJzOiBbUHJvdmlkZXJTZXJ2aWNlXSxcblx0dGVtcGxhdGVVcmw6ICcuL3N1cHBvcnQtdGlja2V0LWVkaXQuY29tcG9uZW50Lmh0bWwnXG59KVxuXG5leHBvcnQgY2xhc3MgU3VwcG9ydFRpY2tldEVkaXRDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kgeyBcblxuXHRAVmlld0NoaWxkICgnZmlsZVVwbG9hZCcsIHtzdGF0aWM6IHRydWV9KSBmaWxlVXBsb2FkO1xuXHRAVmlld0NoaWxkICgnc2VsZWN0VHlwZScsIHtzdGF0aWM6IHRydWV9KSBzZWxlY3RUeXBlO1xuXG5cdGlkOiBzdHJpbmc7XG5cdGRhdGE6IFN1cHBvcnRUaWNrZXRNb2RlbDtcblx0XG5cdHN1YnNjcmlwdGlvbiQ6IFN1YnNjcmlwdGlvbltdID0gW107XG5cblx0Zm9ybTogRm9ybUdyb3VwO1xuXG5cdGRpc2FibGVGb3JtQnV0dG9uID0gZmFsc2U7XG5cblx0Y29uc3RydWN0b3IocHJpdmF0ZSBfcm91dGU6IEFjdGl2YXRlZFJvdXRlLCBwcml2YXRlIF9zdHM6IFN1cHBvcnRUaWNrZXRTZXJ2aWNlLCBwcml2YXRlIF9zZXJ2aWNlczogUHJvdmlkZXJTZXJ2aWNlLCBwcml2YXRlIF9kczogRGlhbG9nU2VydmljZSkge1xuXHRcdHN1cGVyKF9zZXJ2aWNlcyk7XG5cdH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLmlkID0gdGhpcy5fcm91dGUuc25hcHNob3QucGFyYW1zWydpZCddO1xuXHRcdHRoaXMuX3N0cy5zZXRTZWxlY3RlZFN1cHBvcnRUaWNrZXQodGhpcy5pZC50b1N0cmluZygpKTtcblxuXHRcdHRoaXMuZm9ybSA9IHRoaXMuX3NlcnZpY2VzLl9mYi5ncm91cCh7XG5cdFx0XHRfaWQ6IFsnJ10sXG5cdFx0XHRfX3Y6IFswXSxcblx0XHRcdHR5cGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcblx0XHRcdHByaW9yaXR5OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG5cdFx0XHRpc3N1ZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuXHRcdFx0c3VwcG9ydF90aWNrZXRfbnVtYmVyOiBbbnVsbF0sXG5cdFx0XHRzdXBwb3J0X3RpY2tldF9udW1iZXJfc3RyaW5nOiBbbnVsbF0sXG5cdFx0XHRzdGF0dXM6IFsnT3BlbmVkJ10sXG5cdFx0XHRzdWJzdGF0dXM6IFsnTmV3J10sXG5cdFx0XHRjbGllbnQ6IFsnJ10sXG5cdFx0XHRpZF9jbGllbnQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcblx0XHRcdG1lc3NhZ2VzOiBbW11dLFxuXHRcdFx0ZGF0ZV9jcmVhdGVkOiBbbnVsbF0sXG5cdFx0XHRkYXRlX2NyZWF0ZWRfc3RyaW5nOiBbJyddLFxuXHRcdFx0aWRfdXNlcl9jcmVhdGVkOiBbdGhpcy5fc2VydmljZXMuX2FjY291bnQuZ2V0VXNlcigpLl9pZF0sXG5cdFx0XHR1c2VyX2NyZWF0ZWQ6IFt0aGlzLl9zZXJ2aWNlcy5fYWNjb3VudC5nZXRVc2VyKCkuZnVsbG5hbWVdLFxuXHRcdFx0YmlsbGFibGU6IFtmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcblx0XHRcdGRhdGVfaW52ZXN0aWdhdGlvbjogW251bGxdLFxuXHRcdFx0ZGF0ZV9jbG9zZWQ6IFtudWxsXSxcblx0XHRcdGZpbGVzOiBbW11dLFxuXHRcdFx0Y3VycmVudF93YXRjaGVyczogW1tdXSxcblx0XHRcdGNsaWVudF91c2VyOiBbbnVsbF0sXG5cdFx0XHR1c2Vyc19hc3NpZ25lZDogW1tdXSxcblx0XHRcdGJpbGxfZGVzY3JpcHRpb246IFsnJ10sXG5cdFx0XHR0YXNrczogW1tdXSxcblx0XHRcdG5vdGVzOiBbW11dLFxuXHRcdFx0ZGlmZmljdWx0eTogWzFdXG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ3N1cHBvcnRHZXRTdXBwb3J0VGlja2V0V2l0aElkJywgdGhpcy5pZCwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRpZiAoIXJlcykge1xuXHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9zdXBwb3J0LXRpY2tldC9saXN0Jyk7XG5cdFx0XHRcdHRoaXMuX2RzLmVycm9yKCdDb3VsZCBub3QgZmluZCBzdXBwb3J0IHRpY2tldCcpO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdHRoaXMuZGF0YSA9IHJlcztcblxuXHRcdFx0dGhpcy5sb2FkRm9ybSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5zdWJzY3JpcHRpb24kLmZvckVhY2goc3ViID0+IHtcblx0XHRcdHN1Yi51bnN1YnNjcmliZSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0bG9hZEZvcm0oKSB7XG5cdFx0dGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5kYXRhKTtcblx0fVxuXG5cdG9uVHlwZUNoYW5nZSgpIHtcblx0XHRpZiAodGhpcy5mb3JtLmNvbnRyb2xzLnR5cGUudmFsdWUgPT09ICdTeXN0ZW0gSW1wYWlybWVudCcpIHtcblx0XHRcdHRoaXMuZm9ybS5jb250cm9scy5wcmlvcml0eS5zZXRWYWx1ZSgnSGlnaCcpO1xuXHRcdFx0dGhpcy5mb3JtLmNvbnRyb2xzLmJpbGxhYmxlLnNldFZhbHVlKGZhbHNlKTtcblx0XHR9XG5cdFx0ZWxzZSBpZiAodGhpcy5mb3JtLmNvbnRyb2xzLnR5cGUudmFsdWUgPT09ICdSZXF1ZXN0IE5ldyBGZWF0dXJlJykge1xuXHRcdFx0dGhpcy5mb3JtLmNvbnRyb2xzLnByaW9yaXR5LnNldFZhbHVlKCdMb3cnKTtcblx0XHRcdHRoaXMuZm9ybS5jb250cm9scy5iaWxsYWJsZS5zZXRWYWx1ZSh0cnVlKTtcblx0XHR9XG5cdFx0ZWxzZSBpZiAodGhpcy5mb3JtLmNvbnRyb2xzLnR5cGUudmFsdWUgPT09ICdHZW5lcmFsIElucXVlcnknKSB7XG5cdFx0XHR0aGlzLmZvcm0uY29udHJvbHMucHJpb3JpdHkuc2V0VmFsdWUoJ0xvdycpO1xuXHRcdFx0dGhpcy5mb3JtLmNvbnRyb2xzLmJpbGxhYmxlLnNldFZhbHVlKHRydWUpO1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdHRoaXMuZm9ybS5jb250cm9scy5wcmlvcml0eS5zZXRWYWx1ZSgnJyk7XG5cdFx0XHR0aGlzLmZvcm0uY29udHJvbHMuYmlsbGFibGUuc2V0VmFsdWUoZmFsc2UpO1xuXHRcdH1cblx0fVxuXG5cdHN1Ym1pdEZvcm0oZm9ybSkge1xuXHRcdHRoaXMuZGlzYWJsZUZvcm1CdXR0b24gPSB0cnVlO1xuXG5cdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdzdXBwb3J0VXBkYXRlU3VwcG9ydFRpY2tldCcsIHRoaXMuZm9ybS52YWx1ZSwgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHRpZiAocmVzKSB7XG5cdFx0XHRcdHRoaXMuX3NlcnZpY2VzLl9hbGVydC5zZXRBbGVydCgnaW5mbycsICdFZGl0aW5nIHN1cHBvcnQgdGlja2V0LCBwbGVhc2Ugd2FpdCcpO1xuXHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJy9zdXBwb3J0LXRpY2tldC9kZXRhaWwvJyArIHRoaXMuaWQpO1xuXHRcdFx0fVxuXHRcdFx0ZWxzZSB7XG5cdFx0XHRcdHRoaXMuX2RzLmVycm9yKCdDb3VsZCBub3QgZWRpdCBzdXBwb3J0IHRpY2tldCcpO1xuXHRcdFx0XHR0aGlzLl9zZXJ2aWNlcy5fc29ja2V0LmNhbGwoJ2luc2VydEVycm9yTG9nJywgJ1N1cHBvcnQtdGlja2V0LWVkaXQgLSB1cGRhdGUgc3VwcG9ydCB0aWNrZXQnLCBbXG5cdFx0XHRcdFx0dGhpcy5mb3JtLnZhbHVlLCBlcnJcblx0XHRcdFx0XSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiIsIjxzdHlsZT5cbiAgICAubGFiZWwtYWNjb3JkaW9uIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMHB4O1xuICAgIH1cblxuICAgIC5mYS1wbHVzIHtcbiAgICAgICAgY29sb3I6IGJsYWNrO1xuICAgIH1cblxuICAgIC5mYS1taW51cyB7XG4gICAgICAgIGNvbG9yOiBibGFjaztcbiAgICB9XG48L3N0eWxlPlxuXG48ZGl2IGNsYXNzPVwiY29sLWxnLTEyXCI+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgbm92YWxpZGF0ZSAobmdTdWJtaXQpPVwic3VibWl0Rm9ybShmb3JtKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8bmdiLWFjY29yZGlvbiAjYWNjPVwibmdiQWNjb3JkaW9uXCIgYWN0aXZlSWRzPVwic3VwcG9ydFRpY2tldEluZm9cIj5cbiAgICAgICAgICAgICAgICA8bmdiLXBhbmVsIGlkPVwic3VwcG9ydFRpY2tldEluZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5nYlBhbmVsVGl0bGU+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbC1hY2NvcmRpb25cIj5TdXBwb3J0IFRpY2tldCBJbmZvPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFhY2MuYWN0aXZlSWRzLmluY2x1ZGVzKCdzdXBwb3J0VGlja2V0SW5mbycpXCIgY2xhc3M9XCJmYSBmYS1wbHVzIGZsb2F0LWVuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cImFjYy5hY3RpdmVJZHMuaW5jbHVkZXMoJ3N1cHBvcnRUaWNrZXRJbmZvJylcIiBjbGFzcz1cImZhIGZhLW1pbnVzIGZsb2F0LWVuZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmdiUGFuZWxDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY29udHJvbC1sYWJlbFwiPlN1cHBvcnQgVGlja2V0IFR5cGU8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGVtICpuZ0lmPVwiIWZvcm0uY29udHJvbHMudHlwZS52YWxpZFwiPi0gUmVxdWlyZWQ8L2VtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgW25nQ2xhc3NdPVwiWydmb3JtLWNvbnRyb2wnLCBmb3JtLmNvbnRyb2xzLnR5cGUudmFsaWQgPyAnaXMtdmFsaWQnIDogJ2lzLWludmFsaWQnXVwiIGZvcm1Db250cm9sTmFtZT1cInR5cGVcIiAoY2hhbmdlKT1cIm9uVHlwZUNoYW5nZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj5TZWxlY3QgVHlwZTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiR2VuZXJhbCBJbnF1ZXJ5XCI+R2VuZXJhbCBJbnF1ZXJ5PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJTeXN0ZW0gSW1wYWlybWVudFwiPlN5c3RlbSBJbXBhaXJtZW50PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJSZXF1ZXN0IE5ldyBGZWF0dXJlXCI+UmVxdWVzdCBOZXcgRmVhdHVyZTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cIiFmb3JtLmNvbnRyb2xzLnR5cGUudmFsaWRcIj5UeXBlIGlzIHJlcXVpcmVkPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sLWxhYmVsXCI+UHJvYmxlbSBEZXNjcmlwdGlvbjwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZW0gKm5nSWY9XCIhZm9ybS5jb250cm9scy5pc3N1ZS52YWxpZFwiPi0gUmVxdWlyZWQ8L2VtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIGZvcm1Db250cm9sTmFtZT1cImlzc3VlXCIgW25nQ2xhc3NdPVwiWydmb3JtLWNvbnRyb2wnLCBmb3JtLmNvbnRyb2xzLmlzc3VlLnZhbGlkID8gJ2lzLXZhbGlkJyA6ICdpcy1pbnZhbGlkJyBdXCIgW3Jvd3NdPVwiNVwiIHN0eWxlPVwib3ZlcmZsb3cteDogaGlkZGVuXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCIhZm9ybS5jb250cm9scy5pc3N1ZS52YWxpZFwiPlByb2JsZW0gRGVzY3JpcHRpb24gaXMgcmVxdWlyZWQ8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L25nYi1wYW5lbD5cbiAgICAgICAgICAgIDwvbmdiLWFjY29yZGlvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAxNXB4O1wiPlxuICAgICAgICAgICAgPGZvcm0tYnV0dG9uIFtmb3JtXT1cImZvcm1cIiBbZGlzYWJsZWRdPVwiZGlzYWJsZUZvcm1CdXR0b25cIj48L2Zvcm0tYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG48L2Rpdj5cbiAgICAiXX0=
@@ -128,10 +128,10 @@ export class SupportTicketListComponent extends BaseComponent {
128
128
  });
129
129
  }
130
130
  }
131
- SupportTicketListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SupportTicketListComponent, deps: [{ token: i1.SupportTicketService }, { token: i2.ActivatedRoute }, { token: i3.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
132
- SupportTicketListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SupportTicketListComponent, selector: "ng-component", providers: [ProviderService], usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-sm-6\">\n <b>Filter Support Ticket By Status</b><br>\n <select class=\"form-control\" [(ngModel)]=\"tableData.filters['status']\" (change)=\"onQueryDataChanged()\" tourAnchor=\"supportListFilter\">\n <option value=\"All\">All</option>\n <option value=\"Opened\">Opened</option>\n <option value=\"Resolved\">Resolved</option>\n </select>\n </div>\n <div class=\"col-sm-6\">\n <b>Filter Support Ticket By Sub-Status</b><br>\n <select class=\"form-control\" [(ngModel)]=\"tableData.filters['substatus']\" (change)=\"onQueryDataChanged()\">\n <option value=\"All\">All</option>\n <option value=\"Investigating\">Investigating</option>\n <option value=\"Awaiting Customer Interaction\">Awaiting Customer Interaction</option>\n <option value=\"Resolved\">Resolved</option>\n </select>\n </div>\n</div>\n<div class=\"row\">\n <div class=\"col-md-12\">\n <div style=\"padding-left: 15px; padding-right: 15px; padding-top: 15px;\">\n <data-table #dataTable\n [urlClick]=\"'/support-ticket/detail/'\"\n [columns]=\"columns\"\n [data]=\"support_tickets\"\n [collapseSize]=\"990\"\n [searchTitle]=\"'Search For Support Ticket...'\"\n [totalItems]=\"totalItems\"\n (onChangeTableData)=\"onQueryDataChanged()\"\n [tableData]=\"tableData\"\n tourAnchor=\"supportListDatatable\">\n </data-table>\n </div>\n </div>\n</div>\n ", dependencies: [{ kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.DatatableComponent, selector: "data-table", inputs: ["urlClick", "columns", "data", "collapseSize", "searchTitle", "totalItems", "tableData"], outputs: ["onChangeTableData"] }] });
133
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SupportTicketListComponent, decorators: [{
131
+ SupportTicketListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SupportTicketListComponent, deps: [{ token: i1.SupportTicketService }, { token: i2.ActivatedRoute }, { token: i3.ProviderService }], target: i0.ɵɵFactoryTarget.Component });
132
+ SupportTicketListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SupportTicketListComponent, selector: "ng-component", providers: [ProviderService], usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n <div class=\"col-sm-6\">\n <b>Filter Support Ticket By Status</b><br>\n <select class=\"form-control\" [(ngModel)]=\"tableData.filters['status']\" (change)=\"onQueryDataChanged()\" tourAnchor=\"supportListFilter\">\n <option value=\"All\">All</option>\n <option value=\"Opened\">Opened</option>\n <option value=\"Resolved\">Resolved</option>\n </select>\n </div>\n <div class=\"col-sm-6\">\n <b>Filter Support Ticket By Sub-Status</b><br>\n <select class=\"form-control\" [(ngModel)]=\"tableData.filters['substatus']\" (change)=\"onQueryDataChanged()\">\n <option value=\"All\">All</option>\n <option value=\"Investigating\">Investigating</option>\n <option value=\"Awaiting Customer Interaction\">Awaiting Customer Interaction</option>\n <option value=\"Resolved\">Resolved</option>\n </select>\n </div>\n</div>\n<div class=\"row\">\n <div class=\"col-md-12\">\n <div style=\"padding-left: 15px; padding-right: 15px; padding-top: 15px;\">\n <data-table #dataTable\n [urlClick]=\"'/support-ticket/detail/'\"\n [columns]=\"columns\"\n [data]=\"support_tickets\"\n [collapseSize]=\"990\"\n [searchTitle]=\"'Search For Support Ticket...'\"\n [totalItems]=\"totalItems\"\n (onChangeTableData)=\"onQueryDataChanged()\"\n [tableData]=\"tableData\"\n tourAnchor=\"supportListDatatable\">\n </data-table>\n </div>\n </div>\n</div>\n ", dependencies: [{ kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.DatatableComponent, selector: "data-table", inputs: ["urlClick", "columns", "data", "collapseSize", "searchTitle", "totalItems", "tableData"], outputs: ["onChangeTableData"] }] });
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SupportTicketListComponent, decorators: [{
134
134
  type: Component,
135
135
  args: [{ providers: [ProviderService], template: "<div class=\"row\">\n <div class=\"col-sm-6\">\n <b>Filter Support Ticket By Status</b><br>\n <select class=\"form-control\" [(ngModel)]=\"tableData.filters['status']\" (change)=\"onQueryDataChanged()\" tourAnchor=\"supportListFilter\">\n <option value=\"All\">All</option>\n <option value=\"Opened\">Opened</option>\n <option value=\"Resolved\">Resolved</option>\n </select>\n </div>\n <div class=\"col-sm-6\">\n <b>Filter Support Ticket By Sub-Status</b><br>\n <select class=\"form-control\" [(ngModel)]=\"tableData.filters['substatus']\" (change)=\"onQueryDataChanged()\">\n <option value=\"All\">All</option>\n <option value=\"Investigating\">Investigating</option>\n <option value=\"Awaiting Customer Interaction\">Awaiting Customer Interaction</option>\n <option value=\"Resolved\">Resolved</option>\n </select>\n </div>\n</div>\n<div class=\"row\">\n <div class=\"col-md-12\">\n <div style=\"padding-left: 15px; padding-right: 15px; padding-top: 15px;\">\n <data-table #dataTable\n [urlClick]=\"'/support-ticket/detail/'\"\n [columns]=\"columns\"\n [data]=\"support_tickets\"\n [collapseSize]=\"990\"\n [searchTitle]=\"'Search For Support Ticket...'\"\n [totalItems]=\"totalItems\"\n (onChangeTableData)=\"onQueryDataChanged()\"\n [tableData]=\"tableData\"\n tourAnchor=\"supportListDatatable\">\n </data-table>\n </div>\n </div>\n</div>\n " }]
136
136
  }], ctorParameters: function () { return [{ type: i1.SupportTicketService }, { type: i2.ActivatedRoute }, { type: i3.ProviderService }]; } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC10aWNrZXQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc3VwcG9ydC10aWNrZXQvbGlzdC9zdXBwb3J0LXRpY2tldC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zdXBwb3J0LXRpY2tldC9saXN0L3N1cHBvcnQtdGlja2V0LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFRdkUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGFBQWE7SUErQjVELFlBQW9CLElBQTBCLEVBQVUsTUFBc0IsRUFBVSxTQUEwQjtRQUNqSCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFERSxTQUFJLEdBQUosSUFBSSxDQUFzQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUF6QmxILGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyxZQUFPLEdBQTJCO1lBQ2pDLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBQztZQUMxRCxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBQztZQUM3QyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUM5QixFQUFFLElBQUksRUFBRSxPQUFPLEVB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SSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7WUFDOUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO1lBQzVFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7WUFDL0gsTUFBTSxFQUFFLE1BQU07U0FDZCxDQUFDO1FBRUYsSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBQyxDQUFDLENBQUM7UUFDOUUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDL0MsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQztTQUN2RTtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxFQUFFO1lBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBQyxDQUFDLENBQUM7U0FDN0U7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNwSCxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDcEcsSUFBSSxHQUFHLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLG1DQUFtQyxFQUFFO29CQUNsRixHQUFHO2lCQUNILENBQUMsQ0FBQzthQUNIO2lCQUNJO2dCQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO2FBQ3RCO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzt1SEFoSlcsMEJBQTBCOzJHQUExQiwwQkFBMEIsdUNBSDNCLENBQUMsZUFBZSxDQUFDLGlEQ1Y3Qiw0bkRBb0NJOzJGRHZCUywwQkFBMEI7a0JBSnRDLFNBQVM7Z0NBQ0UsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdXBwb3J0VGlja2V0U2VydmljZSB9IGZyb20gJy4uL3N1cHBvcnQtdGlja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRhdGFibGVNb2RlbCwgRGF0YXRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy9kYXRhLXRhYmxlL2RhdGEtdGFibGUubW9kZWwnO1xuaW1wb3J0IHsgUHJvdmlkZXJTZXJ2aWNlLCBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcmVzb2x2ZWlvLWNsYXNzJztcbmltcG9ydCB7IFN1cHBvcnRUaWNrZXRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zdXBwb3J0LXRpY2tldC5tb2RlbCc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy9wYWdpbmF0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG5cdHByb3ZpZGVyczogW1Byb3ZpZGVyU2VydmljZV0sXG5cdHRlbXBsYXRlVXJsOiAnLi9zdXBwb3J0LXRpY2tldC1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTdXBwb3J0VGlja2V0TGlzdENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7IFxuXG5cdHJvdXRlJDogU3Vic2NyaXB0aW9uO1xuXG5cdHN1cHBvcnRfdGlja2V0czogU3VwcG9ydFRpY2tldE1vZGVsO1xuXG5cdHN1YnNjcmlwdGlvbiQ6IFN1YnNjcmlwdGlvbltdID0gW107XG5cblx0Y29sdW1uczogQXJyYXk8RGF0YXRhYmxlQ29sdW1uPiA9IFtcblx0XHR7IG5hbWU6ICdTdXBwb3J0IFRpY2tldCAjJywgZGF0YTogJ3N1cHBvcnRfdGlja2V0X251bWJlcid9LFxuXHRcdHsgbmFtZTogJ0RhdGUgQ3JlYXRlZCcsIGRhdGE6ICdkYXRlX2NyZWF0ZWQnfSxcblx0XHR7IG5hbWU6ICdUeXBlJywgZGF0YTogJ3R5cGUnIH0sXG5cdFx0eyBuYW1lOiAnSXNzdWUnLCBkYXRhOiAnaXNzdWUnIH0sXG5cdFx0eyBuYW1lOiAnU3RhdHVzJywgZGF0YTogJ3N0YXR1cyd9LFxuXHRcdHsgbmFtZTogJ0NyZWF0ZWQgQnknLCBkYXRhOiAndXNlcl9jcmVhdGVkJ31cblx0XTtcblxuXHR0YWJsZURhdGE6IERhdGF0YWJsZU1vZGVsID0ge1xuXHRcdHNlYXJjaFN0cmluZzogJycsXG5cdFx0ZW50cmllc1BlclBhZ2U6ICcyNScsXG5cdFx0cGFnZU51bTogMSxcblx0XHRzb3J0Q29sdW1uOiAnJyxcblx0XHRzb3J0T3JkZXI6ICdkZXNjJyxcblx0XHRmaWx0ZXJzOiB7XG5cdFx0XHRzdGF0dXM6ICdPcGVuZWQnLFxuXHRcdFx0c3Vic3RhdHVzOiAnQWxsJ1xuXHRcdH1cblx0fTtcblxuXHR0b3RhbEl0ZW1zID0gMTAwMDtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdHM6IFN1cHBvcnRUaWNrZXRTZXJ2aWNlLCBwcml2YXRlIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgX3NlcnZpY2VzOiBQcm92aWRlclNlcnZpY2UpIHtcblx0XHRzdXBlcihfc2VydmljZXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5fc3RzLnNldFNlbGVjdGVkU3VwcG9ydFRpY2tldCgnMCcpO1xuXG5cdFx0dGhpcy5yb3V0ZSQgPSB0aGlzLl9yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKCkgPT4ge1xuXG5cdFx0XHRsZXQga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMudGFibGVEYXRhKTtcblx0XHRcdGxldCBmaWx0ZXJLZXlzID0gT2JqZWN0LmtleXModGhpcy50YWJsZURhdGEuZmlsdGVycyk7XG5cblx0XHRcdGlmICh0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmtleXMubGVuZ3RoKSB7XG5cdFx0XHRcdGtleXMuc3BsaWNlKGtleXMuaW5kZXhPZignZmlsdGVycycsIDEpKTtcblxuXHRcdFx0XHRmaWx0ZXJLZXlzLmZvckVhY2goa2V5ID0+IHtcblx0XHRcdFx0XHRrZXlzLnB1c2goJ2ZpbHRlcnMuJyArIGtleSk7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdGtleXMuZmlsdGVyKGEgPT4gYSBpbiB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcykuZm9yRWFjaChrZXkgPT4ge1xuXHRcdFx0XHRcdGlmIChrZXkuaW5jbHVkZXMoJ2ZpbHRlcnMuJykpIHtcblx0XHRcdFx0XHRcdGxldCB0bXBLZXkgPSBrZXk7XG5cdFx0XHRcdFx0XHR0bXBLZXkgPSB0bXBLZXkucmVwbGFjZSgnZmlsdGVycy4nLCAnJyk7XG5cdFx0XHRcdFx0XHR0aGlzLnRhYmxlRGF0YS5maWx0ZXJzW3RtcEtleV0gPSB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1trZXldO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdHRoaXMudGFibGVEYXRhW2tleV0gPSB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1trZXldO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0dGhpcy50YWJsZURhdGEgPSB7XG5cdFx0XHRcdFx0c2VhcmNoU3RyaW5nOiAnJyxcblx0XHRcdFx0XHRlbnRyaWVzUGVyUGFnZTogJzI1Jyxcblx0XHRcdFx0XHRwYWdlTnVtOiAxLFxuXHRcdFx0XHRcdHNvcnRDb2x1bW46ICcnLFxuXHRcdFx0XHRcdHNvcnRPcmRlcjogJ2Rlc2MnLFxuXHRcdFx0XHRcdGZpbHRlcnM6IHtcblx0XHRcdFx0XHRcdHN0YXR1czogJ09wZW5lZCcsXG5cdFx0XHRcdFx0XHRzdWJzdGF0dXM6ICdBbGwnXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnF1ZXJ5RGF0YSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5zdWJzY3JpcHRpb24kLmZvckVhY2goc3ViID0+IHtcblx0XHRcdHN1Yi51bnN1YnNjcmliZSgpO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5yb3V0ZSQudW5zdWJzY3JpYmUoKTtcblx0fVxuXG5cdG9uUXVlcnlEYXRhQ2hhbmdlZCgpIHtcblx0XHRsZXQgcXVlcnlQYXJhbXMgPSB7fTtcblxuXHRcdGxldCBrZXlzID0gT2JqZWN0LmtleXModGhpcy50YWJsZURhdGEpO1xuXHRcdGxldCBmaWx0ZXJLZXlzID0gT2JqZWN0LmtleXModGhpcy50YWJsZURhdGEuZmlsdGVycyk7XG5cblx0XHRrZXlzLmZvckVhY2goa2V5ID0+IHtcblx0XHRcdGlmIChrZXkgPT09ICdmaWx0ZXJzJykge1xuXHRcdFx0XHRmaWx0ZXJLZXlzLmZvckVhY2goZmlsdGVyS2V5ID0+IHtcblx0XHRcdFx0XHRxdWVyeVBhcmFtc1snZmlsdGVycy4nICsgZmlsdGVyS2V5XSA9IHRoaXMudGFibGVEYXRhLmZpbHRlcnNbZmlsdGVyS2V5XTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0cXVlcnlQYXJhbXNba2V5XSA9IHRoaXMudGFibGVEYXRhW2tleV07XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlKFsnL3N1cHBvcnQtdGlja2V0L2xpc3QnXSwgeyBxdWVyeVBhcmFtcyB9ICk7XG5cdH1cblxuXHRxdWVyeURhdGEoKSB7XG5cblx0XHRsZXQgZmllbGRzID0ge307XG5cblx0XHR0aGlzLmNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuXHRcdFx0ZmllbGRzW2NvbC5kYXRhXSA9IDE7XG5cdFx0fSk7XG5cblx0XHRjb25zdCBvcHRpb25zOiBQYWdpbmF0aW9uT3B0aW9ucyA9IHtcblx0XHRcdGxpbWl0OiBwYXJzZUludCh0aGlzLnRhYmxlRGF0YS5lbnRyaWVzUGVyUGFnZSksXG5cdFx0XHRza2lwOiAodGhpcy50YWJsZURhdGEucGFnZU51bSAtIDEpICogcGFyc2VJbnQodGhpcy50YWJsZURhdGEuZW50cmllc1BlclBhZ2UpLFxuXHRcdFx0c29ydDogdGhpcy50YWJsZURhdGEuc29ydENvbHVtbiA/IHsgW3RoaXMudGFibGVEYXRhLnNvcnRDb2x1bW5dIDogKHRoaXMudGFibGVEYXRhLnNvcnRPcmRlciA9PT0gJ2FzYycgPyAxIDogLTEpIH0gOiB7IG5hbWU6IDEgfSxcblx0XHRcdGZpZWxkczogZmllbGRzXG5cdFx0fTtcblxuXHRcdGxldCBmaWx0ZXJzID0gW3twcm9wOiAnY2xpZW50JywgZGF0YTogdGhpcy5fc2VydmljZXMuX2FwcC5jbGllbnQuZ2V0VmFsdWUoKX1dO1xuXHRcdGlmICh0aGlzLnRhYmxlRGF0YS5maWx0ZXJzWydzdGF0dXMnXSAhPT0gJ0FsbCcpIHtcblx0XHRcdGZpbHRlcnMucHVzaCh7cHJvcDogJ3N0YXR1cycsIGRhdGE6IHRoaXMudGFibGVEYXRhLmZpbHRlcnNbJ3N0YXR1cyddfSk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLnRhYmxlRGF0YS5maWx0ZXJzWydzdWJzdGF0dXMnXSAhPT0gJ0FsbCcpIHtcblx0XHRcdGZpbHRlcnMucHVzaCh7cHJvcDogJ3N1YnN0YXR1cycsIGRhdGE6IHRoaXMudGFibGVEYXRhLmZpbHRlcnNbJ3N1YnN0YXR1cyddfSk7XG5cdFx0fVxuXHRcdFxuXHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbCgnc3VwcG9ydHRpY2tldHNXaXRoT3B0aW9ucycsIG9wdGlvbnMsIHRoaXMudGFibGVEYXRhLnNlYXJjaFN0cmluZywgZmlsdGVycywgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHR0aGlzLnN1cHBvcnRfdGlja2V0cyA9IHJlcztcblx0XHR9KTtcblxuXHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbCgnc3VwcG9ydHRpY2tldENvdW50JywgdGhpcy50YWJsZURhdGEuc2VhcmNoU3RyaW5nLCBmaWx0ZXJzLCAoZXJyLCByZXMpID0+IHtcblx0XHRcdGlmIChlcnIpIHtcblx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdjb3VudFF1ZXJ5IC0gcmVzb2x2ZWlvU3VwcG9ydExpc3QnLCBbXG5cdFx0XHRcdFx0ZXJyXG5cdFx0XHRcdF0pO1xuXHRcdFx0fSBcblx0XHRcdGVsc2Uge1xuXHRcdFx0XHR0aGlzLnRvdGFsSXRlbXMgPSByZXM7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cbiAgICAgICAgPGI+RmlsdGVyIFN1cHBvcnQgVGlja2V0IEJ5IFN0YXR1czwvYj48YnI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInRhYmxlRGF0YS5maWx0ZXJzWydzdGF0dXMnXVwiIChjaGFuZ2UpPVwib25RdWVyeURhdGFDaGFuZ2VkKClcIiB0b3VyQW5jaG9yPVwic3VwcG9ydExpc3RGaWx0ZXJcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJBbGxcIj5BbGw8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJPcGVuZWRcIj5PcGVuZWQ8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJSZXNvbHZlZFwiPlJlc29sdmVkPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxuICAgICAgICA8Yj5GaWx0ZXIgU3VwcG9ydCBUaWNrZXQgQnkgU3ViLVN0YXR1czwvYj48YnI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInRhYmxlRGF0YS5maWx0ZXJzWydzdWJzdGF0dXMnXVwiIChjaGFuZ2UpPVwib25RdWVyeURhdGFDaGFuZ2VkKClcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJBbGxcIj5BbGw8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJJbnZlc3RpZ2F0aW5nXCI+SW52ZXN0aWdhdGluZzwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkF3YWl0aW5nIEN1c3RvbWVyIEludGVyYWN0aW9uXCI+QXdhaXRpbmcgQ3VzdG9tZXIgSW50ZXJhY3Rpb248L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJSZXNvbHZlZFwiPlJlc29sdmVkPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICA8ZGl2IHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxNXB4OyBwYWRkaW5nLXJpZ2h0OiAxNXB4OyBwYWRkaW5nLXRvcDogMTVweDtcIj5cbiAgICAgICAgICAgIDxkYXRhLXRhYmxlICNkYXRhVGFibGVcbiAgICAgICAgICAgICAgICBbdXJsQ2xpY2tdPVwiJy9zdXBwb3J0LXRpY2tldC9kZXRhaWwvJ1wiXG4gICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwic3VwcG9ydF90aWNrZXRzXCJcbiAgICAgICAgICAgICAgICBbY29sbGFwc2VTaXplXT1cIjk5MFwiXG4gICAgICAgICAgICAgICAgW3NlYXJjaFRpdGxlXT1cIidTZWFyY2ggRm9yIFN1cHBvcnQgVGlja2V0Li4uJ1wiXG4gICAgICAgICAgICAgICAgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtc1wiXG4gICAgICAgICAgICAgICAgKG9uQ2hhbmdlVGFibGVEYXRhKT1cIm9uUXVlcnlEYXRhQ2hhbmdlZCgpXCJcbiAgICAgICAgICAgICAgICBbdGFibGVEYXRhXT1cInRhYmxlRGF0YVwiXG4gICAgICAgICAgICAgICAgdG91ckFuY2hvcj1cInN1cHBvcnRMaXN0RGF0YXRhYmxlXCI+XG4gICAgICAgICAgICA8L2RhdGEtdGFibGU+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4gICAgIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VwcG9ydC10aWNrZXQtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9saWIvc3VwcG9ydC10aWNrZXQvbGlzdC9zdXBwb3J0LXRpY2tldC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvc3JjL2xpYi9zdXBwb3J0LXRpY2tldC9saXN0L3N1cHBvcnQtdGlja2V0LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFRdkUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGFBQWE7SUErQjVELFlBQW9CLElBQTBCLEVBQVUsTUFBc0IsRUFBVSxTQUEwQjtRQUNqSCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFERSxTQUFJLEdBQUosSUFBSSxDQUFzQjtRQUFVLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUF6QmxILGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyxZQUFPLEdBQTJCO1lBQ2pDLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBQztZQUMxRCxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBQztZQUM3QyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUM5QixFQUFFLElBQUksRUFBRSxPQUFPLEVB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SSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7WUFDOUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDO1lBQzVFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7WUFDL0gsTUFBTSxFQUFFLE1BQU07U0FDZCxDQUFDO1FBRUYsSUFBSSxPQUFPLEdBQUcsQ0FBQyxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBQyxDQUFDLENBQUM7UUFDOUUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLEVBQUU7WUFDL0MsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQztTQUN2RTtRQUNELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxFQUFFO1lBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBQyxDQUFDLENBQUM7U0FDN0U7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtZQUNwSCxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDcEcsSUFBSSxHQUFHLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLG1DQUFtQyxFQUFFO29CQUNsRixHQUFHO2lCQUNILENBQUMsQ0FBQzthQUNIO2lCQUNJO2dCQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO2FBQ3RCO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzt3SEFoSlcsMEJBQTBCOzRHQUExQiwwQkFBMEIsdUNBSDNCLENBQUMsZUFBZSxDQUFDLGlEQ1Y3Qiw0bkRBb0NJOzRGRHZCUywwQkFBMEI7a0JBSnRDLFNBQVM7Z0NBQ0UsQ0FBQyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdXBwb3J0VGlja2V0U2VydmljZSB9IGZyb20gJy4uL3N1cHBvcnQtdGlja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYXRhdGFibGVNb2RlbCwgRGF0YXRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vLi4vd2lkZ2V0cy9kYXRhLXRhYmxlL2RhdGEtdGFibGUubW9kZWwnO1xuaW1wb3J0IHsgUHJvdmlkZXJTZXJ2aWNlLCBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcmVzb2x2ZWlvLWNsYXNzJztcbmltcG9ydCB7IFN1cHBvcnRUaWNrZXRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zdXBwb3J0LXRpY2tldC5tb2RlbCc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy9wYWdpbmF0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG5cdHByb3ZpZGVyczogW1Byb3ZpZGVyU2VydmljZV0sXG5cdHRlbXBsYXRlVXJsOiAnLi9zdXBwb3J0LXRpY2tldC1saXN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTdXBwb3J0VGlja2V0TGlzdENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7IFxuXG5cdHJvdXRlJDogU3Vic2NyaXB0aW9uO1xuXG5cdHN1cHBvcnRfdGlja2V0czogU3VwcG9ydFRpY2tldE1vZGVsO1xuXG5cdHN1YnNjcmlwdGlvbiQ6IFN1YnNjcmlwdGlvbltdID0gW107XG5cblx0Y29sdW1uczogQXJyYXk8RGF0YXRhYmxlQ29sdW1uPiA9IFtcblx0XHR7IG5hbWU6ICdTdXBwb3J0IFRpY2tldCAjJywgZGF0YTogJ3N1cHBvcnRfdGlja2V0X251bWJlcid9LFxuXHRcdHsgbmFtZTogJ0RhdGUgQ3JlYXRlZCcsIGRhdGE6ICdkYXRlX2NyZWF0ZWQnfSxcblx0XHR7IG5hbWU6ICdUeXBlJywgZGF0YTogJ3R5cGUnIH0sXG5cdFx0eyBuYW1lOiAnSXNzdWUnLCBkYXRhOiAnaXNzdWUnIH0sXG5cdFx0eyBuYW1lOiAnU3RhdHVzJywgZGF0YTogJ3N0YXR1cyd9LFxuXHRcdHsgbmFtZTogJ0NyZWF0ZWQgQnknLCBkYXRhOiAndXNlcl9jcmVhdGVkJ31cblx0XTtcblxuXHR0YWJsZURhdGE6IERhdGF0YWJsZU1vZGVsID0ge1xuXHRcdHNlYXJjaFN0cmluZzogJycsXG5cdFx0ZW50cmllc1BlclBhZ2U6ICcyNScsXG5cdFx0cGFnZU51bTogMSxcblx0XHRzb3J0Q29sdW1uOiAnJyxcblx0XHRzb3J0T3JkZXI6ICdkZXNjJyxcblx0XHRmaWx0ZXJzOiB7XG5cdFx0XHRzdGF0dXM6ICdPcGVuZWQnLFxuXHRcdFx0c3Vic3RhdHVzOiAnQWxsJ1xuXHRcdH1cblx0fTtcblxuXHR0b3RhbEl0ZW1zID0gMTAwMDtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIF9zdHM6IFN1cHBvcnRUaWNrZXRTZXJ2aWNlLCBwcml2YXRlIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgX3NlcnZpY2VzOiBQcm92aWRlclNlcnZpY2UpIHtcblx0XHRzdXBlcihfc2VydmljZXMpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5fc3RzLnNldFNlbGVjdGVkU3VwcG9ydFRpY2tldCgnMCcpO1xuXG5cdFx0dGhpcy5yb3V0ZSQgPSB0aGlzLl9yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKCkgPT4ge1xuXG5cdFx0XHRsZXQga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMudGFibGVEYXRhKTtcblx0XHRcdGxldCBmaWx0ZXJLZXlzID0gT2JqZWN0LmtleXModGhpcy50YWJsZURhdGEuZmlsdGVycyk7XG5cblx0XHRcdGlmICh0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmtleXMubGVuZ3RoKSB7XG5cdFx0XHRcdGtleXMuc3BsaWNlKGtleXMuaW5kZXhPZignZmlsdGVycycsIDEpKTtcblxuXHRcdFx0XHRmaWx0ZXJLZXlzLmZvckVhY2goa2V5ID0+IHtcblx0XHRcdFx0XHRrZXlzLnB1c2goJ2ZpbHRlcnMuJyArIGtleSk7XG5cdFx0XHRcdH0pO1xuXG5cdFx0XHRcdGtleXMuZmlsdGVyKGEgPT4gYSBpbiB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcykuZm9yRWFjaChrZXkgPT4ge1xuXHRcdFx0XHRcdGlmIChrZXkuaW5jbHVkZXMoJ2ZpbHRlcnMuJykpIHtcblx0XHRcdFx0XHRcdGxldCB0bXBLZXkgPSBrZXk7XG5cdFx0XHRcdFx0XHR0bXBLZXkgPSB0bXBLZXkucmVwbGFjZSgnZmlsdGVycy4nLCAnJyk7XG5cdFx0XHRcdFx0XHR0aGlzLnRhYmxlRGF0YS5maWx0ZXJzW3RtcEtleV0gPSB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1trZXldO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRlbHNlIHtcblx0XHRcdFx0XHRcdHRoaXMudGFibGVEYXRhW2tleV0gPSB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1trZXldO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0dGhpcy50YWJsZURhdGEgPSB7XG5cdFx0XHRcdFx0c2VhcmNoU3RyaW5nOiAnJyxcblx0XHRcdFx0XHRlbnRyaWVzUGVyUGFnZTogJzI1Jyxcblx0XHRcdFx0XHRwYWdlTnVtOiAxLFxuXHRcdFx0XHRcdHNvcnRDb2x1bW46ICcnLFxuXHRcdFx0XHRcdHNvcnRPcmRlcjogJ2Rlc2MnLFxuXHRcdFx0XHRcdGZpbHRlcnM6IHtcblx0XHRcdFx0XHRcdHN0YXR1czogJ09wZW5lZCcsXG5cdFx0XHRcdFx0XHRzdWJzdGF0dXM6ICdBbGwnXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXG5cdFx0XHR0aGlzLnF1ZXJ5RGF0YSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0dGhpcy5zdWJzY3JpcHRpb24kLmZvckVhY2goc3ViID0+IHtcblx0XHRcdHN1Yi51bnN1YnNjcmliZSgpO1xuXHRcdH0pO1xuXG5cdFx0dGhpcy5yb3V0ZSQudW5zdWJzY3JpYmUoKTtcblx0fVxuXG5cdG9uUXVlcnlEYXRhQ2hhbmdlZCgpIHtcblx0XHRsZXQgcXVlcnlQYXJhbXMgPSB7fTtcblxuXHRcdGxldCBrZXlzID0gT2JqZWN0LmtleXModGhpcy50YWJsZURhdGEpO1xuXHRcdGxldCBmaWx0ZXJLZXlzID0gT2JqZWN0LmtleXModGhpcy50YWJsZURhdGEuZmlsdGVycyk7XG5cblx0XHRrZXlzLmZvckVhY2goa2V5ID0+IHtcblx0XHRcdGlmIChrZXkgPT09ICdmaWx0ZXJzJykge1xuXHRcdFx0XHRmaWx0ZXJLZXlzLmZvckVhY2goZmlsdGVyS2V5ID0+IHtcblx0XHRcdFx0XHRxdWVyeVBhcmFtc1snZmlsdGVycy4nICsgZmlsdGVyS2V5XSA9IHRoaXMudGFibGVEYXRhLmZpbHRlcnNbZmlsdGVyS2V5XTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRlbHNlIHtcblx0XHRcdFx0cXVlcnlQYXJhbXNba2V5XSA9IHRoaXMudGFibGVEYXRhW2tleV07XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9zZXJ2aWNlcy5fcm91dGVyLm5hdmlnYXRlKFsnL3N1cHBvcnQtdGlja2V0L2xpc3QnXSwgeyBxdWVyeVBhcmFtcyB9ICk7XG5cdH1cblxuXHRxdWVyeURhdGEoKSB7XG5cblx0XHRsZXQgZmllbGRzID0ge307XG5cblx0XHR0aGlzLmNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuXHRcdFx0ZmllbGRzW2NvbC5kYXRhXSA9IDE7XG5cdFx0fSk7XG5cblx0XHRjb25zdCBvcHRpb25zOiBQYWdpbmF0aW9uT3B0aW9ucyA9IHtcblx0XHRcdGxpbWl0OiBwYXJzZUludCh0aGlzLnRhYmxlRGF0YS5lbnRyaWVzUGVyUGFnZSksXG5cdFx0XHRza2lwOiAodGhpcy50YWJsZURhdGEucGFnZU51bSAtIDEpICogcGFyc2VJbnQodGhpcy50YWJsZURhdGEuZW50cmllc1BlclBhZ2UpLFxuXHRcdFx0c29ydDogdGhpcy50YWJsZURhdGEuc29ydENvbHVtbiA/IHsgW3RoaXMudGFibGVEYXRhLnNvcnRDb2x1bW5dIDogKHRoaXMudGFibGVEYXRhLnNvcnRPcmRlciA9PT0gJ2FzYycgPyAxIDogLTEpIH0gOiB7IG5hbWU6IDEgfSxcblx0XHRcdGZpZWxkczogZmllbGRzXG5cdFx0fTtcblxuXHRcdGxldCBmaWx0ZXJzID0gW3twcm9wOiAnY2xpZW50JywgZGF0YTogdGhpcy5fc2VydmljZXMuX2FwcC5jbGllbnQuZ2V0VmFsdWUoKX1dO1xuXHRcdGlmICh0aGlzLnRhYmxlRGF0YS5maWx0ZXJzWydzdGF0dXMnXSAhPT0gJ0FsbCcpIHtcblx0XHRcdGZpbHRlcnMucHVzaCh7cHJvcDogJ3N0YXR1cycsIGRhdGE6IHRoaXMudGFibGVEYXRhLmZpbHRlcnNbJ3N0YXR1cyddfSk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLnRhYmxlRGF0YS5maWx0ZXJzWydzdWJzdGF0dXMnXSAhPT0gJ0FsbCcpIHtcblx0XHRcdGZpbHRlcnMucHVzaCh7cHJvcDogJ3N1YnN0YXR1cycsIGRhdGE6IHRoaXMudGFibGVEYXRhLmZpbHRlcnNbJ3N1YnN0YXR1cyddfSk7XG5cdFx0fVxuXHRcdFxuXHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbCgnc3VwcG9ydHRpY2tldHNXaXRoT3B0aW9ucycsIG9wdGlvbnMsIHRoaXMudGFibGVEYXRhLnNlYXJjaFN0cmluZywgZmlsdGVycywgKGVyciwgcmVzKSA9PiB7XG5cdFx0XHR0aGlzLnN1cHBvcnRfdGlja2V0cyA9IHJlcztcblx0XHR9KTtcblxuXHRcdHRoaXMuX3NlcnZpY2VzLl9zb2NrZXQuY2FsbCgnc3VwcG9ydHRpY2tldENvdW50JywgdGhpcy50YWJsZURhdGEuc2VhcmNoU3RyaW5nLCBmaWx0ZXJzLCAoZXJyLCByZXMpID0+IHtcblx0XHRcdGlmIChlcnIpIHtcblx0XHRcdFx0dGhpcy5fc2VydmljZXMuX3NvY2tldC5jYWxsKCdpbnNlcnRFcnJvckxvZycsICdjb3VudFF1ZXJ5IC0gcmVzb2x2ZWlvU3VwcG9ydExpc3QnLCBbXG5cdFx0XHRcdFx0ZXJyXG5cdFx0XHRcdF0pO1xuXHRcdFx0fSBcblx0XHRcdGVsc2Uge1xuXHRcdFx0XHR0aGlzLnRvdGFsSXRlbXMgPSByZXM7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTZcIj5cbiAgICAgICAgPGI+RmlsdGVyIFN1cHBvcnQgVGlja2V0IEJ5IFN0YXR1czwvYj48YnI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInRhYmxlRGF0YS5maWx0ZXJzWydzdGF0dXMnXVwiIChjaGFuZ2UpPVwib25RdWVyeURhdGFDaGFuZ2VkKClcIiB0b3VyQW5jaG9yPVwic3VwcG9ydExpc3RGaWx0ZXJcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJBbGxcIj5BbGw8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJPcGVuZWRcIj5PcGVuZWQ8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJSZXNvbHZlZFwiPlJlc29sdmVkPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tNlwiPlxuICAgICAgICA8Yj5GaWx0ZXIgU3VwcG9ydCBUaWNrZXQgQnkgU3ViLVN0YXR1czwvYj48YnI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cInRhYmxlRGF0YS5maWx0ZXJzWydzdWJzdGF0dXMnXVwiIChjaGFuZ2UpPVwib25RdWVyeURhdGFDaGFuZ2VkKClcIj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJBbGxcIj5BbGw8L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJJbnZlc3RpZ2F0aW5nXCI+SW52ZXN0aWdhdGluZzwvb3B0aW9uPlxuICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkF3YWl0aW5nIEN1c3RvbWVyIEludGVyYWN0aW9uXCI+QXdhaXRpbmcgQ3VzdG9tZXIgSW50ZXJhY3Rpb248L29wdGlvbj5cbiAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJSZXNvbHZlZFwiPlJlc29sdmVkPC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxuICAgICAgICA8ZGl2IHN0eWxlPVwicGFkZGluZy1sZWZ0OiAxNXB4OyBwYWRkaW5nLXJpZ2h0OiAxNXB4OyBwYWRkaW5nLXRvcDogMTVweDtcIj5cbiAgICAgICAgICAgIDxkYXRhLXRhYmxlICNkYXRhVGFibGVcbiAgICAgICAgICAgICAgICBbdXJsQ2xpY2tdPVwiJy9zdXBwb3J0LXRpY2tldC9kZXRhaWwvJ1wiXG4gICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwic3VwcG9ydF90aWNrZXRzXCJcbiAgICAgICAgICAgICAgICBbY29sbGFwc2VTaXplXT1cIjk5MFwiXG4gICAgICAgICAgICAgICAgW3NlYXJjaFRpdGxlXT1cIidTZWFyY2ggRm9yIFN1cHBvcnQgVGlja2V0Li4uJ1wiXG4gICAgICAgICAgICAgICAgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtc1wiXG4gICAgICAgICAgICAgICAgKG9uQ2hhbmdlVGFibGVEYXRhKT1cIm9uUXVlcnlEYXRhQ2hhbmdlZCgpXCJcbiAgICAgICAgICAgICAgICBbdGFibGVEYXRhXT1cInRhYmxlRGF0YVwiXG4gICAgICAgICAgICAgICAgdG91ckFuY2hvcj1cInN1cHBvcnRMaXN0RGF0YXRhYmxlXCI+XG4gICAgICAgICAgICA8L2RhdGEtdGFibGU+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4gICAgIl19