bpm-core 0.0.52 → 0.0.54

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 (84) hide show
  1. package/esm2022/lib/app/app.component.mjs +20 -9
  2. package/esm2022/lib/components/app-component-sections/activities/activities.component.mjs +6 -3
  3. package/esm2022/lib/components/app-component-sections/approvals/approvals.component.mjs +3 -6
  4. package/esm2022/lib/components/app-component-sections/approvals-workflow/approvals-workflow.component.mjs +69 -56
  5. package/esm2022/lib/components/app-component-sections/faqs/faqs.component.mjs +1 -1
  6. package/esm2022/lib/components/app-component-sections/feedback-section/feedback-section.component.mjs +5 -6
  7. package/esm2022/lib/components/app-component-sections/previous-requests/previous-requests.component.mjs +3 -5
  8. package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +7 -5
  9. package/esm2022/lib/components/shared-components/action-buttons/action-buttons.component.mjs +4 -6
  10. package/esm2022/lib/components/shared-components/dialogs/delete-dialog/delete-dialog.component.mjs +5 -4
  11. package/esm2022/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.mjs +76 -51
  12. package/esm2022/lib/components/shared-components/form-field/attachment-section/attachment-section.component.mjs +153 -110
  13. package/esm2022/lib/components/shared-components/form-field/checkbox/checkbox.component.mjs +9 -9
  14. package/esm2022/lib/components/shared-components/form-field/control-value-accessor.directive.mjs +31 -8
  15. package/esm2022/lib/components/shared-components/form-field/custom-searchable-autocomplete/custom-searchable.component.mjs +15 -18
  16. package/esm2022/lib/components/shared-components/form-field/date-picker/date-picker.component.mjs +15 -18
  17. package/esm2022/lib/components/shared-components/form-field/date-range-picker/date-range-picker.component.mjs +12 -14
  18. package/esm2022/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.mjs +141 -212
  19. package/esm2022/lib/components/shared-components/form-field/form-label/form-label.component.mjs +9 -9
  20. package/esm2022/lib/components/shared-components/form-field/index.mjs +2 -1
  21. package/esm2022/lib/components/shared-components/form-field/info-item/info-item.component.mjs +3 -3
  22. package/esm2022/lib/components/shared-components/form-field/input/input.component.mjs +19 -33
  23. package/esm2022/lib/components/shared-components/form-field/input-currency/input-currency.component.mjs +16 -26
  24. package/esm2022/lib/components/shared-components/form-field/input-email/input-email.component.mjs +16 -27
  25. package/esm2022/lib/components/shared-components/form-field/input-mask/input-mask.component.mjs +16 -12
  26. package/esm2022/lib/components/shared-components/form-field/input-number/input-number.component.mjs +16 -24
  27. package/esm2022/lib/components/shared-components/form-field/input-telephone/input-telephone.component.mjs +11 -12
  28. package/esm2022/lib/components/shared-components/form-field/radio/radio.component.mjs +10 -10
  29. package/esm2022/lib/components/shared-components/form-field/search-employee/search-employee.component.mjs +43 -108
  30. package/esm2022/lib/components/shared-components/form-field/select/select.component.mjs +2 -2
  31. package/esm2022/lib/components/shared-components/form-field/shared-imports.mjs +19 -1
  32. package/esm2022/lib/components/shared-components/form-field/textarea/textarea.component.mjs +17 -29
  33. package/esm2022/lib/components/shared-components/form-field/toggle-button/toggle-button.component.mjs +11 -20
  34. package/esm2022/lib/components/shared-components/index.mjs +1 -3
  35. package/esm2022/lib/i18n/ar.mjs +5 -3
  36. package/esm2022/lib/i18n/en.mjs +5 -3
  37. package/esm2022/lib/services/core.service.ts.mjs +11 -1
  38. package/esm2022/lib/services/i18n.service.mjs +4 -4
  39. package/esm2022/lib/testComponent/general-approver-section/general-approver-section.component.mjs +2 -2
  40. package/esm2022/lib/testComponent/request-details-section/request-details-section.component.mjs +303 -35
  41. package/esm2022/lib/testComponent/services/i18n.service.mjs +3 -3
  42. package/fesm2022/bpm-core.mjs +1230 -1103
  43. package/fesm2022/bpm-core.mjs.map +1 -1
  44. package/lib/app/app.component.d.ts +5 -2
  45. package/lib/components/app-component-sections/activities/activities.component.d.ts +2 -0
  46. package/lib/components/app-component-sections/approvals/approvals.component.d.ts +1 -1
  47. package/lib/components/app-component-sections/approvals-workflow/approvals-workflow.component.d.ts +19 -5
  48. package/lib/components/app-component-sections/feedback-section/feedback-section.component.d.ts +1 -1
  49. package/lib/components/app-component-sections/service-header/service-header.component.d.ts +2 -2
  50. package/lib/components/shared-components/action-buttons/action-buttons.component.d.ts +2 -3
  51. package/lib/components/shared-components/form-field/add-attachment-section/add-attachment-section.component.d.ts +12 -3
  52. package/lib/components/shared-components/form-field/attachment-section/attachment-section.component.d.ts +23 -12
  53. package/lib/components/shared-components/form-field/control-value-accessor.directive.d.ts +7 -3
  54. package/lib/components/shared-components/form-field/date-picker/date-picker.component.d.ts +1 -2
  55. package/lib/components/shared-components/form-field/doc-uploader/docs-uploader.component.d.ts +14 -14
  56. package/lib/components/shared-components/form-field/form-label/form-label.component.d.ts +2 -3
  57. package/lib/components/shared-components/form-field/index.d.ts +1 -0
  58. package/lib/components/shared-components/form-field/info-item/info-item.component.d.ts +1 -1
  59. package/lib/components/shared-components/form-field/input/input.component.d.ts +1 -2
  60. package/lib/components/shared-components/form-field/input-currency/input-currency.component.d.ts +1 -2
  61. package/lib/components/shared-components/form-field/input-email/input-email.component.d.ts +1 -2
  62. package/lib/components/shared-components/form-field/input-mask/input-mask.component.d.ts +1 -2
  63. package/lib/components/shared-components/form-field/input-number/input-number.component.d.ts +1 -2
  64. package/lib/components/shared-components/form-field/search-employee/search-employee.component.d.ts +2 -10
  65. package/lib/components/shared-components/form-field/shared-imports.d.ts +11 -2
  66. package/lib/components/shared-components/form-field/textarea/textarea.component.d.ts +0 -3
  67. package/lib/components/shared-components/form-field/toggle-button/toggle-button.component.d.ts +1 -3
  68. package/lib/components/shared-components/index.d.ts +0 -2
  69. package/lib/i18n/ar.d.ts +3 -1
  70. package/lib/i18n/en.d.ts +3 -1
  71. package/lib/services/core.service.ts.d.ts +1 -0
  72. package/lib/testComponent/request-details-section/request-details-section.component.d.ts +40 -2
  73. package/package.json +1 -1
  74. package/src/lib/assets/images/user.svg +6 -0
  75. package/src/lib/assets/scss/_general.scss +4 -1
  76. package/src/lib/assets/scss/_upgrade.scss +4 -2
  77. package/esm2022/lib/components/shared-components/confirmation-popup/confirmation-popup.component.mjs +0 -39
  78. package/esm2022/lib/components/shared-components/delete-popup/delete-popup.component.mjs +0 -19
  79. package/esm2022/lib/components/shared-components/doc-uploader/docs-uploader.component.mjs +0 -686
  80. package/esm2022/lib/environments/environment.local.mjs +0 -27
  81. package/lib/components/shared-components/confirmation-popup/confirmation-popup.component.d.ts +0 -25
  82. package/lib/components/shared-components/delete-popup/delete-popup.component.d.ts +0 -6
  83. package/lib/components/shared-components/doc-uploader/docs-uploader.component.d.ts +0 -144
  84. package/lib/environments/environment.local.d.ts +0 -26
@@ -5,8 +5,7 @@ import * as Constants from '../../../constants/constants';
5
5
  import { NgIf } from '@angular/common';
6
6
  import { InfoItemComponent, SearchEmployeeComponent, TextareaComponent } from "../../shared-components";
7
7
  import * as i0 from "@angular/core";
8
- import * as i1 from "../../../services/feedBack.service";
9
- import * as i2 from "../../../services";
8
+ import * as i1 from "../../../services";
10
9
  export class FeedbackSectionComponent {
11
10
  feedBackService;
12
11
  i18n;
@@ -211,8 +210,8 @@ export class FeedbackSectionComponent {
211
210
  this.isFeedbackValidated = false;
212
211
  }
213
212
  }
214
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeedbackSectionComponent, deps: [{ token: i1.FeedBackService }, { token: i2.CoreI18nService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
215
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FeedbackSectionComponent, isStandalone: true, selector: "app-feedback-section", inputs: { inboxItem: "inboxItem", profile: "profile" }, ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3>{{i18n.translate('requestFeedback')}}</h3>\r\n <ds-button square icon matDialogClose>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\" *ngIf=\"submitted\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\" />\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\" />\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\" />\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{i18n.translate('submittedSuccessfully')}}\r\n </h2>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!submitted\">\r\n <div class=\"mb-3\" *ngIf=\"feedBackService.feedbackForm \">\r\n <app-search-employee #employee label=\"{{i18n.translate('requestTo')}}\" [field]=\"searchEmp\"\r\n [labelTextReadMode]=\"i18n.translate('requestTo')\" [labelTextWriteMode]=\"i18n.translate('requestTo')\"\r\n [name]=\"'searchEmp'\" (emitedValue)=\"handleUserSelected($event)\">\r\n </app-search-employee>\r\n <app-textarea #request [field]=\"employeeInput\" name=\"employeeInput\" label=\"{{i18n.translate('feedback')}}\"\r\n [required]=\"true\" [minLength]='1' (emitedValue)=\"handleFeedbackQuestion($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </div>\r\n\r\n <div class=\"info-section\" *ngIf=\"!feedBackService.feedbackForm\">\r\n <ng-container *ngIf=\"feedBackService.responderForm\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n <app-textarea #request class=\"full mx-3 mt-3 section-item\" [field]=\"employeeInput\" name=\"employeeInput\"\r\n label=\"{{i18n.translate('feedback')}}\" [required]=\"true\" [minLength]='1'\r\n (emitedValue)=\"handleFeedbackResponse($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"feedBackService.pendingForm\" id=\"responce_form\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center justify-content-center w-100 gap-3\" *ngIf=\"!submitted\">\r\n <ds-button shape=\"outline\" matDialogClose>\r\n {{i18n.translate('Cancel')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"feedBackService.feedbackForm\" (click)=\"addFeedback()\"\r\n disabled=\"{{!(isFeedbackValidated)}}\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"!feedBackService.feedbackForm && feedBackService.responderForm\"\r\n disabled=\"{{!(isResponseValidated)}}\" (click)=\"addResponse()\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n </div>\r\n </ng-container>\r\n\r\n </mat-dialog-content>\r\n\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 700px !important;--popup-width: 100% !important}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchEmployeeComponent, selector: "app-search-employee", inputs: ["valueName", "tooltip", "className", "showLabel", "optional", "data", "floatLabel", "error", "showEdit", "arrayList", "isUniqueUsers"], outputs: ["selectedEmp", "onInputChange", "editDirectManger", "deleteDirectManger", "emitedDeletedValue"] }, { kind: "component", type: TextareaComponent, selector: "app-textarea", inputs: ["className", "preventSpecailChar"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
213
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeedbackSectionComponent, deps: [{ token: i1.FeedBackService }, { token: i1.CoreI18nService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
214
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FeedbackSectionComponent, isStandalone: true, selector: "app-feedback-section", inputs: { inboxItem: "inboxItem", profile: "profile" }, ngImport: i0, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3>{{i18n.translate('requestFeedback')}}</h3>\r\n <ds-button square icon matDialogClose>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\" *ngIf=\"submitted\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\" />\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\" />\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\" />\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{i18n.translate('submittedSuccessfully')}}\r\n </h2>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!submitted\">\r\n <div class=\"mb-3\" *ngIf=\"feedBackService.feedbackForm \">\r\n <app-search-employee #employee label=\"{{i18n.translate('requestTo')}}\" [field]=\"searchEmp\"\r\n [labelTextReadMode]=\"i18n.translate('requestTo')\" [labelTextWriteMode]=\"i18n.translate('requestTo')\"\r\n [name]=\"'searchEmp'\" (emitedValue)=\"handleUserSelected($event)\">\r\n </app-search-employee>\r\n <app-textarea #request [field]=\"employeeInput\" name=\"employeeInput\" label=\"{{i18n.translate('feedback')}}\"\r\n [required]=\"true\" [minLength]='1' (emitedValue)=\"handleFeedbackQuestion($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </div>\r\n\r\n <div class=\"info-section\" *ngIf=\"!feedBackService.feedbackForm\">\r\n <ng-container *ngIf=\"feedBackService.responderForm\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n <app-textarea #request class=\"full mx-3 mt-3 section-item\" [field]=\"employeeInput\" name=\"employeeInput\"\r\n label=\"{{i18n.translate('feedback')}}\" [required]=\"true\" [minLength]='1'\r\n (emitedValue)=\"handleFeedbackResponse($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"feedBackService.pendingForm\" id=\"responce_form\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center justify-content-center w-100 gap-3\" *ngIf=\"!submitted\">\r\n <ds-button shape=\"outline\" matDialogClose>\r\n {{i18n.translate('Cancel')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"feedBackService.feedbackForm\" (click)=\"addFeedback()\"\r\n disabled=\"{{!(isFeedbackValidated)}}\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"!feedBackService.feedbackForm && feedBackService.responderForm\"\r\n disabled=\"{{!(isResponseValidated)}}\" (click)=\"addResponse()\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n </div>\r\n </ng-container>\r\n\r\n </mat-dialog-content>\r\n\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 700px !important;--popup-width: 100% !important}\n"], dependencies: [{ kind: "directive", type: MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchEmployeeComponent, selector: "app-search-employee", inputs: ["valueName", "className", "optional", "data", "floatLabel", "error", "showEdit", "arrayList", "isUniqueUsers"], outputs: ["selectedEmp", "onInputChange", "editDirectManger", "deleteDirectManger", "emitedDeletedValue"] }, { kind: "component", type: TextareaComponent, selector: "app-textarea", inputs: ["className", "preventSpecailChar"] }, { kind: "component", type: InfoItemComponent, selector: "app-info-item", inputs: ["label", "value", "name", "type", "dateType", "multiple", "insideTable", "hasLabel", "arrayList", "actionType", "download"] }, { kind: "directive", type: MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
216
215
  }
217
216
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FeedbackSectionComponent, decorators: [{
218
217
  type: Component,
@@ -225,7 +224,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
225
224
  MatDialogTitle,
226
225
  MatDialogClose
227
226
  ], standalone: true, template: "<div class=\"popup-container\">\r\n <div class=\"d-flex align-items-center justify-content-between\" mat-dialog-title>\r\n <h3>{{i18n.translate('requestFeedback')}}</h3>\r\n <ds-button square icon matDialogClose>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n <mat-dialog-content>\r\n <div class=\"d-flex flex-column align-items-center justify-content-center py-4\" *ngIf=\"submitted\">\r\n <div class=\"text-center mb-4\">\r\n <svg width=\"79\" height=\"76\" viewBox=\"0 0 79 76\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M59.9804 0.0998676L1.39239 19.2479C1.02223 19.3692 0.69498 19.5948 0.44999 19.8976C0.205 20.2005 0.0526985 20.5676 0.0113985 20.955C-0.0299016 21.3423 0.0415576 21.7333 0.217184 22.081C0.39281 22.4287 0.665128 22.7183 1.00139 22.9149L23.1454 35.7899C23.487 35.9886 23.8794 36.0828 24.274 36.0608C24.6686 36.0388 25.0481 35.9014 25.3654 35.6659L31.5894 31.0439L26.9674 37.2679C26.7318 37.5852 26.5944 37.9646 26.5722 38.3591C26.5499 38.7537 26.6439 39.1461 26.8424 39.4879L39.7174 61.6289C39.9138 61.9652 40.2031 62.2377 40.5506 62.4135C40.8981 62.5894 41.289 62.6611 41.6763 62.6201C42.0636 62.5791 42.4308 62.4272 42.7338 62.1825C43.0369 61.9378 43.2628 61.6108 43.3844 61.2409L62.5294 2.65187C62.6458 2.29686 62.6615 1.91654 62.5749 1.55313C62.4883 1.18971 62.3026 0.857401 62.0386 0.593071C61.7746 0.328741 61.4425 0.142726 61.0792 0.0556665C60.7159 -0.0313933 60.3355 -0.0160937 59.9804 0.0998676ZM40.9434 55.6999L31.0014 38.6069L42.9894 22.4689C43.2797 22.0798 43.4202 21.5993 43.3852 21.1152C43.3502 20.631 43.142 20.1757 42.7988 19.8325C42.4556 19.4893 42.0002 19.2811 41.5161 19.2461C41.032 19.2111 40.5514 19.3516 40.1624 19.6419L24.0254 31.6279L6.93339 21.6889L57.4514 5.18087L40.9434 55.6999ZM21.2134 44.2759L7.80139 57.6909C7.42253 58.0701 6.90853 58.2833 6.37246 58.2836C5.83638 58.2839 5.32215 58.0712 4.94289 57.6924C4.56363 57.3135 4.35041 56.7995 4.35013 56.2634C4.34985 55.7274 4.56253 55.2131 4.94139 54.8339L18.3564 41.4189C18.7353 41.04 19.2491 40.8272 19.7849 40.8272C20.3207 40.8272 20.8345 41.04 21.2134 41.4189C21.5923 41.7977 21.8051 42.3116 21.8051 42.8474C21.8051 43.3832 21.5923 43.897 21.2134 44.2759ZM3.49139 44.7839C3.30378 44.5963 3.15495 44.3736 3.05341 44.1285C2.95187 43.8834 2.89961 43.6207 2.89961 43.3554C2.89961 43.0901 2.95187 42.8274 3.05341 42.5823C3.15495 42.3371 3.30378 42.1144 3.49139 41.9269L8.78439 36.6339C9.16326 36.255 9.6771 36.0422 10.2129 36.0422C10.7487 36.0422 11.2625 36.255 11.6414 36.6339C12.0203 37.0127 12.2331 37.5266 12.2331 38.0624C12.2331 38.5982 12.0203 39.112 11.6414 39.4909L6.34939 44.7839C6.1618 44.9716 5.93903 45.1206 5.69384 45.2222C5.44864 45.3238 5.18582 45.3762 4.92039 45.3762C4.65497 45.3762 4.39215 45.3238 4.14695 45.2222C3.90176 45.1206 3.67899 44.9716 3.49139 44.7839ZM26.0014 50.9899C26.189 51.1774 26.3378 51.4001 26.4394 51.6453C26.5409 51.8904 26.5932 52.1531 26.5932 52.4184C26.5932 52.6837 26.5409 52.9464 26.4394 53.1915C26.3378 53.4366 26.189 53.6593 26.0014 53.8469L20.7014 59.1409C20.3225 59.5197 19.8087 59.7326 19.2729 59.7326C18.7371 59.7326 18.2233 59.5197 17.8444 59.1409C17.4655 58.762 17.2527 58.2482 17.2527 57.7124C17.2527 57.1766 17.4655 56.6627 17.8444 56.2839L23.1374 50.9909C23.325 50.8032 23.5477 50.6544 23.7928 50.5529C24.0379 50.4513 24.3006 50.3991 24.5659 50.3991C24.8312 50.3991 25.0939 50.4513 25.339 50.5529C25.5841 50.6544 25.8068 50.8032 25.9944 50.9909L26.0014 50.9899Z\"\r\n fill=\"#8E9AA0\" />\r\n <path\r\n d=\"M58.0015 75.3119C69.0472 75.3119 78.0015 66.3576 78.0015 55.3119C78.0015 44.2662 69.0472 35.3119 58.0015 35.3119C46.9558 35.3119 38.0015 44.2662 38.0015 55.3119C38.0015 66.3576 46.9558 75.3119 58.0015 75.3119Z\"\r\n fill=\"#00C48C\" />\r\n <path\r\n d=\"M56.8804 57.3183L54.0346 54.4725L52.9743 55.5336L56.8774 59.4367L65.8354 50.5267L65.4927 50.0138C63.8557 47.5812 61.1134 46.002 58.0015 46.002C53.0313 46.002 49.0015 50.031 49.0015 55.002C49.0015 59.9729 53.0305 64.002 58.0015 64.002C62.9716 64.002 67.0007 59.9729 67.0015 55.0035H65.5017C65.5017 55.005 65.5017 55.0072 65.5017 55.0095C65.5017 59.1503 62.1453 62.5067 58.0045 62.5067C53.8637 62.5067 50.5072 59.1503 50.5072 55.0095C50.5072 50.8686 53.8637 47.5122 58.0045 47.5122C60.3793 47.5122 62.4962 48.6168 63.87 50.3392L63.882 50.3542L56.8804 57.3183Z\"\r\n fill=\"white\" />\r\n </svg>\r\n\r\n </div>\r\n <h2 class=\"fs-16 fw-medium fc-black mb-4 text-center\">\r\n {{i18n.translate('submittedSuccessfully')}}\r\n </h2>\r\n </div>\r\n\r\n <ng-container *ngIf=\"!submitted\">\r\n <div class=\"mb-3\" *ngIf=\"feedBackService.feedbackForm \">\r\n <app-search-employee #employee label=\"{{i18n.translate('requestTo')}}\" [field]=\"searchEmp\"\r\n [labelTextReadMode]=\"i18n.translate('requestTo')\" [labelTextWriteMode]=\"i18n.translate('requestTo')\"\r\n [name]=\"'searchEmp'\" (emitedValue)=\"handleUserSelected($event)\">\r\n </app-search-employee>\r\n <app-textarea #request [field]=\"employeeInput\" name=\"employeeInput\" label=\"{{i18n.translate('feedback')}}\"\r\n [required]=\"true\" [minLength]='1' (emitedValue)=\"handleFeedbackQuestion($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </div>\r\n\r\n <div class=\"info-section\" *ngIf=\"!feedBackService.feedbackForm\">\r\n <ng-container *ngIf=\"feedBackService.responderForm\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n <app-textarea #request class=\"full mx-3 mt-3 section-item\" [field]=\"employeeInput\" name=\"employeeInput\"\r\n label=\"{{i18n.translate('feedback')}}\" [required]=\"true\" [minLength]='1'\r\n (emitedValue)=\"handleFeedbackResponse($event)\" [maxLength]='500'\r\n [errorMessage]=\"i18n.translate('lenghtMin1Max500')\">\r\n </app-textarea>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"feedBackService.pendingForm\" id=\"responce_form\">\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestFrom')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFrom}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('requestTo')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestTo}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedbackQuestion')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.requestFeedback}}\"></app-info-item>\r\n <app-info-item class=\"info-item w-100\" label=\"{{i18n.translate('feedback')}}\"\r\n value=\"{{feedBackService?.feedbackResponse?.responseFeedback}}\"></app-info-item>\r\n\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center justify-content-center w-100 gap-3\" *ngIf=\"!submitted\">\r\n <ds-button shape=\"outline\" matDialogClose>\r\n {{i18n.translate('Cancel')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"feedBackService.feedbackForm\" (click)=\"addFeedback()\"\r\n disabled=\"{{!(isFeedbackValidated)}}\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n <ds-button *ngIf=\"!feedBackService.feedbackForm && feedBackService.responderForm\"\r\n disabled=\"{{!(isResponseValidated)}}\" (click)=\"addResponse()\">\r\n {{i18n.translate('submit')}}\r\n </ds-button>\r\n </div>\r\n </ng-container>\r\n\r\n </mat-dialog-content>\r\n\r\n</div>\r\n", styles: ["::ng-deep .main-popup{--popup-max-width: 700px !important;--popup-width: 100% !important}\n"] }]
228
- }], ctorParameters: () => [{ type: i1.FeedBackService }, { type: i2.CoreI18nService }, { type: undefined, decorators: [{
227
+ }], ctorParameters: () => [{ type: i1.FeedBackService }, { type: i1.CoreI18nService }, { type: undefined, decorators: [{
229
228
  type: Inject,
230
229
  args: [MAT_DIALOG_DATA]
231
230
  }] }], propDecorators: { inboxItem: [{
@@ -233,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
233
232
  }], profile: [{
234
233
  type: Input
235
234
  }] } });
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZGJhY2stc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvYXBwLWNvbXBvbmVudC1zZWN0aW9ucy9mZWVkYmFjay1zZWN0aW9uL2ZlZWRiYWNrLXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvZmVlZGJhY2stc2VjdGlvbi9mZWVkYmFjay1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzNHLE9BQU8sRUFBQyxTQUFTLEVBQUUsc0JBQXNCLEVBQVUsTUFBTSxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUUvRixPQUFPLEVBQUMsSUFBSSxFQUFhLFFBQVEsRUFBa0IsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEtBQUssU0FBUyxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQTRCdEcsTUFBTSxPQUFPLHdCQUF3QjtJQWUxQjtJQUNBO0lBQ3lCO0lBaEJ6QixTQUFTLENBQVk7SUFDckIsT0FBTyxDQUFrQjtJQUNsQyxJQUFJLENBQU87SUFDWCxTQUFTLENBQU07SUFDZixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLGNBQWMsR0FBVyxJQUFJLENBQUM7SUFDOUIsZ0JBQWdCLEdBQVcsSUFBSSxD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RyxLQUFLLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFRCx3QkFBd0I7UUFDdEIsSUFDRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxJQUFJLENBQUM7WUFDakMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxHQUFHO1lBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUMxQixDQUFDO1lBQ0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztRQUNsQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7dUdBdE9VLHdCQUF3QixnRkFpQnpCLGVBQWU7MkZBakJkLHdCQUF3Qix3SUNsQ3JDLDZ6UUF3RkEscUpEdkVJLGdCQUFnQix5R0FDaEIsSUFBSSw2RkFDSix1QkFBdUIsNFRBQ3ZCLGlCQUFpQixzR0FDakIsaUJBQWlCLGdNQUNqQixjQUFjLCtIQUNkLGNBQWM7OzJGQVdMLHdCQUF3QjtrQkF2QnBDLFNBQVM7K0JBQ0Usc0JBQXNCLFdBR3ZCLENBQUMsc0JBQXNCLENBQUMsV0FDeEI7d0JBQ1AsZ0JBQWdCO3dCQUNoQixJQUFJO3dCQUNKLHVCQUF1Qjt3QkFDdkIsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsY0FBYztxQkFDZixjQUNXLElBQUk7OzBCQTBCYixNQUFNOzJCQUFDLGVBQWU7eUNBaEJoQixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dDbG9zZSwgTWF0RGlhbG9nQ29udGVudCwgTWF0RGlhbG9nVGl0bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7Q29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBlZmZlY3QsIEluamVjdCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29yZUkxOG5TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7Rm9ybSwgSW5ib3hJdGVtLCBNZXNzYWdlcywgUHJvZmlsZUluZm9Ecm9wfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0ICogYXMgQ29uc3RhbnRzIGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25zdGFudHMnO1xyXG5pbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7SW5mb0l0ZW1Db21wb25lbnQsIFNlYXJjaEVtcGxveWVlQ29tcG9uZW50LCBUZXh0YXJlYUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL3NoYXJlZC1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7RmVlZEJhY2tTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXMvZmVlZEJhY2suc2VydmljZVwiO1xyXG5pbXBvcnQge01ZX0xJQl9DT05GSUdfVE9LRU59IGZyb20gXCIuLi8uLi8uLi8uLi9wdWJsaWMtYXBpXCI7XHJcbmltcG9ydCB7ZW52aXJvbm1lbnR9IGZyb20gXCIuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQubG9jYWxcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZlZWRiYWNrLXNlY3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWVkYmFjay1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mZWVkYmFjay1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdERpYWxvZ0NvbnRlbnQsXHJcbiAgICBOZ0lmLFxyXG4gICAgU2VhcmNoRW1wbG95ZWVDb21wb25lbnQsXHJcbiAgICBUZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIEluZm9JdGVtQ29tcG9uZW50LFxyXG4gICAgTWF0RGlhbG9nVGl0bGUsXHJcbiAgICBNYXREaWFsb2dDbG9zZVxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuLyogIHByb3ZpZGVyczogW1xyXG4gICAgRmVlZEJhY2tTZXJ2aWNlLFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBNWV9MSUJfQ09ORklHX1RPS0VOLFxyXG4gICAgICB1c2VWYWx1ZTogZW52aXJvbm1lbnRcclxuICAgIH1cclxuICBdKi9cclxufSlcclxuZXhwb3J0IGNsYXNzIEZlZWRiYWNrU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgaW5ib3hJdGVtOiBJbmJveEl0ZW07XHJcbiAgQElucHV0KCkgcHJvZmlsZTogUHJvZmlsZUluZm9Ecm9wO1xyXG4gIGZvcm06IEZvcm07XHJcbiAgc2VhcmNoRW1wOiBhbnk7XHJcbiAgc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgZmVlZGJhY2tTdGF0dXM6IHN0cmluZyA9IG51bGw7XHJcbiAgZmVlZEJhY2tRdWVzdGlvbjogc3RyaW5nID0gbnVsbDtcclxuICBmZWVkQmFja1Jlc3BvbnNlOiBzdHJpbmcgPSBudWxsO1xyXG4gIGlzRmVlZGJhY2tWYWxpZGF0ZWQgPSBmYWxzZTtcclxuICBpc1Jlc3BvbnNlVmFsaWRhdGVkID0gZmFsc2U7XHJcbiAgZW1wbG95ZWVJbnB1dDogc3RyaW5nID0gbnVsbDtcclxuICBmZWVkYmFja0lkOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBmZWVkQmFja1NlcnZpY2U6IEZlZWRCYWNrU2VydmljZSxcclxuICAgIHB1YmxpYyBpMThuOiBDb3JlSTE4blNlcnZpY2UsXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueVxyXG4gICkge1xyXG4gICAgdGhpcy5wcm9maWxlID0gZGF0YS5wcm9maWxlO1xyXG4gICAgdGhpcy5pbmJveEl0ZW0gPSBkYXRhLmluYm94SXRlbTtcclxuICAgIHRoaXMuZm9ybSA9IGRhdGEuZm9ybTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLmZlZWRCYWNrU2VydmljZS5mZWVkQmFja1NlbnQpIHtcclxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaW5ib3hJdGVtO1xyXG4gICAgICBpZiAoaXRlbT8uY2FuUmVxdWVzdEZlZWRiYWNrID09PSAndHJ1ZScpIHtcclxuICAgICAgICB0aGlzLmZlZWRiYWNrU3RhdHVzID0gQ29uc3RhbnRzLkZFRURCQUNLX1NUQVRVU19SRVFVRVNUO1xyXG4gICAgICAgIHRoaXMuZmVlZEJhY2tTZXJ2aWNlLmZlZWRiYWNrRm9ybSA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICBpdGVtLmlzUmVxdWVzdGVkID09PSAndHJ1ZScgJiZcclxuICAgICAgICBpdGVtLmhhc0ZlZWRiYWNrID09PSAndHJ1ZScgJiZcclxuICAgICAgICBpdGVtLmlzUGVuZGluZyA9PT0gJ2ZhbHNlJyAmJlxyXG4gICAgICAgIGl0ZW0uaXNSZXNwb25kZWQgPT09ICdmYWxzZSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5mZWVkYmFja1N0YXR1cyA9IENvbnN0YW50cy5GRUVEQkFDS19TVEFUVVNfV0FJVElORztcclxuICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5wZW5kaW5nRm9ybSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5nZXRGZWVkQmFjaygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgaXRlbS5pc1JlcXVlc3RlZCA9PT0gJ2ZhbHNlJyAmJlxyXG4gICAgICAgIGl0ZW0uaGFzRmVlZGJhY2sgPT09ICd0cnVlJyAmJlxyXG4gICAgICAgIGl0ZW0uaXNQZW5kaW5nID09PSAndHJ1ZScgJiZcclxuICAgICAgICBpdGVtLmlzUmVzcG9uZGVkID09PSAnZmFsc2UnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZmVlZGJhY2tTdGF0dXMgPSBDb25zdGFudHMuRkVFREJBQ0tfU1RBVFVTX1JFU1BPTkQ7XHJcbiAgICAgICAgdGhpcy5mZWVkQmFja1NlcnZpY2UucmVzcG9uZGVyRm9ybSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5nZXRGZWVkQmFjaygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgaXRlbS5pc1JlcXVlc3RlZCA9PT0gJ3RydWUnICYmXHJcbiAgICAgICAgaXRlbS5oYXNGZWVkYmFjayA9PT0gJ3RydWUnICYmXHJcbiAgICAgICAgaXRlbS5pc1BlbmRpbmcgPT09ICdmYWxzZScgJiZcclxuICAgICAgICBpdGVtLmlzUmVzcG9uZGVkID09PSAndHJ1ZSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5mZWVkYmFja1N0YXR1cyA9IENvbnN0YW50cy5GRUVEQkFDS19TVEFUVVNfUkVTUE9OREVEO1xyXG4gICAgICAgIHRoaXMuZmVlZEJhY2tTZXJ2aWNlLnBlbmRpbmdGb3JtID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmdldEZlZWRCYWNrKCk7XHJcbiAgICAgIH1cclxuICAgICAgLyogICAgICBjb25zdCBvYmogPSB7XHJcbiAgICAgICAgICAgICAgbmFtZTogJ2NoYW5nZUZlZWRiYWNrU3RhdHVzJyxcclxuICAgICAgICAgICAgICBkYXRhOiB0aGlzLmZlZWRiYWNrU3RhdHVzIVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5lclNlcnZpY2UuZmlsdGVyKG9iaik7Ki9cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEZlZWRCYWNrKCkge1xyXG4gICAgdGhpcy5mZWVkQmFja1NlcnZpY2UuZ2V0RmVlZGJhY2sodGhpcy5wcm9maWxlLmVtcGxveWVlRW1haWwpLnN1YnNjcmliZSgoUmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoUmVzcG9uc2UpIHtcclxuICAgICAgICBpZiAoUmVzcG9uc2UgaW5zdGFuY2VvZiBNZXNzYWdlcykge1xyXG4gICAgICAgICAgdGhpcy5zaG93RXJyb3IoUmVzcG9uc2UpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCByZXNwID0gUmVzcG9uc2VbJ2l0ZW1zJ11bMF07XHJcbiAgICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5mZWVkYmFja1Jlc3BvbnNlLnJlcXVlc3RGcm9tID1cclxuICAgICAgICAgICAgcmVzcC5mcm9tWydmaXJzdE5hbWUnXSArXHJcbiAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgIHJlc3AuZnJvbVsnbWlkZGxlTmFtZSddICtcclxuICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgcmVzcC5mcm9tWydmYW1pbHlOYW1lJ107XHJcbiAgICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5mZWVkYmFja1Jlc3BvbnNlLnJlcXVlc3RUbyA9XHJcbiAgICAgICAgICAgIHJlc3AudG9bJ2ZpcnN0TmFtZSddICtcclxuICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgcmVzcC50b1snbWlkZGxlTmFtZSddICtcclxuICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgcmVzcC50b1snZmFtaWx5TmFtZSddO1xyXG4gICAgICAgICAgdGhpcy5mZWVkQmFja1NlcnZpY2UuZmVlZGJhY2tSZXNwb25zZS5yZXF1ZXN0RmVlZGJhY2sgPVxyXG4gICAgICAgICAgICByZXNwLnF1ZXJ5O1xyXG4gICAgICAgICAgdGhpcy5mZWVkQmFja1NlcnZpY2UuZmVlZGJhY2tSZXNwb25zZS5yZXNwb25zZUZlZWRiYWNrID1cclxuICAgICAgICAgICAgcmVzcC5yZXNwb25zZTtcclxuICAgICAgICAgIHRoaXMuZmVlZGJhY2tJZCA9IHJlc3AuaWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgYWRkRmVlZGJhY2soKSB7XHJcbiAgICBpZiAodGhpcy5pc0ZlZWRiYWNrVmFsaWRhdGVkKSB7XHJcbiAgICAgIGNvbnN0IGVtYWlsID0gdGhpcy5zZWFyY2hFbXAucGVyc29uRW1haWwsXHJcbiAgICAgICAgcXVlc3Rpb24gPSB0aGlzLmZlZWRCYWNrUXVlc3Rpb247XHJcbiAgICAgIHRoaXMuZmVlZEJhY2tTZXJ2aWNlLnN1Ym1pdEZlZWRiYWNrKHtlbWFpbCwgcXVlc3Rpb259KS5zdWJzY3JpYmUoKFJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoUmVzcG9uc2UpIHtcclxuICAgICAgICAgIGlmIChSZXNwb25zZSBpbnN0YW5jZW9mIE1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yKFJlc3BvbnNlKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZmVlZGJhY2tTdGF0dXMgPSBDb25zdGFudHMuRkVFREJBQ0tfU1RBVFVTX1dBSVRJTkc7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IG9iaiA9IHtcclxuICAgICAgICAgICAgLy8gICBuYW1lOiAnY2hhbmdlRmVlZGJhY2tTdGF0dXMnLFxyXG4gICAgICAgICAgICAvLyAgIGRhdGE6IHRoaXMuZmVlZGJhY2tTdGF0dXNcclxuICAgICAgICAgICAgLy8gfTtcclxuICAgICAgICAgICAgLy8gdGhpcy5fbGlzdGVuZXJTZXJ2aWNlLmZpbHRlcihvYmopO1xyXG4gICAgICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5mZWVkYmFja0Zvcm0gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5mZWVkQmFja1NlcnZpY2UucGVuZGluZ0Zvcm0gPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5mZWVkQmFja1NlbnQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5mZWVkYmFja1Jlc3BvbnNlLnJlcXVlc3RGcm9tID1cclxuICAgICAgICAgICAgICB0aGlzLnByb2ZpbGUuZnVsbE5hbWU7XHJcbiAgICAgICAgICAgIHRoaXMuZmVlZEJhY2tTZXJ2aWNlLmZlZWRiYWNrUmVzcG9uc2UucmVxdWVzdFRvID1cclxuICAgICAgICAgICAgICB0aGlzLnNlYXJjaEVtcC5wZXJzb25OYW1lO1xyXG4gICAgICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5mZWVkYmFja1Jlc3BvbnNlLnJlcXVlc3RGZWVkYmFjayA9XHJcbiAgICAgICAgICAgICAgdGhpcy5mZWVkQmFja1F1ZXN0aW9uO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGFkZFJlc3BvbnNlKCkge1xyXG4gICAgaWYgKHRoaXMuaXNGZWVkYmFja1ZhbGlkYXRlZCkge1xyXG4gICAgICBjb25zdCBmZWVkYmFja0lkID0gdGhpcy5mZWVkYmFja0lkLFxyXG4gICAgICAgIGZlZWRiYWNrUmVzcG9uc2UgPSB0aGlzLmZlZWRCYWNrUmVzcG9uc2U7XHJcbiAgICAgIHRoaXMuZmVlZEJhY2tTZXJ2aWNlLmFkZFJlc3BvbnNlKHtmZWVkYmFja0lkLCBmZWVkYmFja1Jlc3BvbnNlfSkuc3Vic2NyaWJlKChSZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICBpZiAoUmVzcG9uc2UgaW5zdGFuY2VvZiBNZXNzYWdlcykge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dFcnJvcihSZXNwb25zZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZmVlZGJhY2tTdGF0dXMgPSBDb25zdGFudHMuRkVFREJBQ0tfU1RBVFVTX1JFU1BPTkRFRDtcclxuICAgICAgICAgICAgLypjb25zdCBvYmogPSB7XHJcbiAgICAgICAgICAgICAgbmFtZTogJ2NoYW5nZUZlZWRiYWNrU3RhdHVzJyxcclxuICAgICAgICAgICAgICBkYXRhOiB0aGlzLmZlZWRiYWNrU3RhdHVzXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuX2xpc3RlbmVyU2VydmljZS5maWx0ZXIob2JqKTsqL1xyXG4gICAgICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5yZXNwb25kZXJGb3JtID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuZmVlZEJhY2tTZXJ2aWNlLmZlZWRCYWNrU2VudCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZmVlZEJhY2tTZXJ2aWNlLnBlbmRpbmdGb3JtID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5mZWVkQmFja1NlcnZpY2UuZmVlZGJhY2tSZXNwb25zZS5yZXNwb25zZUZlZWRiYWNrID1cclxuICAgICAgICAgICAgICB0aGlzLmZlZWRCYWNrUmVzcG9uc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBlcnJvck9jY3VyZWQgPSBmYWxzZTtcclxuICBpc1N1Ym1pdGluZyA9IGZhbHNlO1xyXG4gIGVycm9yTXNnID0gJyc7XHJcblxyXG4gIHNob3dFcnJvcihSZXNwb25zZTogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybSkge1xyXG4gICAgICB0aGlzLmZvcm0gPSBuZXcgRm9ybShcclxuICAgICAgICBDb25zdGFudHMuTk9fVkFMVUUsXHJcbiAgICAgICAgQ29uc3RhbnRzLk5PX1ZBTFVFLFxyXG4gICAgICAgIENvbnN0YW50cy5OT19WQUxVRSxcclxuICAgICAgICBDb25zdGFudHMuTk9fVkFMVUUsXHJcbiAgICAgICAgQ29uc3RhbnRzLk5PX1ZBTFVFLFxyXG4gICAgICAgIENvbnN0YW50cy5OT19WQUxVRSxcclxuICAgICAgICBSZXNwb25zZVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lcnJvck9jY3VyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVycm9yTXNnID0gUmVzcG9uc2U/LmVycm9yWzBdO1xyXG4gICAgICAvLyB0aGlzLmZvcm0ubWVzc2FnZXMgPSBSZXNwb25zZTtcclxuICAgIH1cclxuICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZlZWRiYWNrUXVlc3Rpb24oZXZlbnQpIHtcclxuICAgIHRoaXMuZmVlZEJhY2tRdWVzdGlvbiA9IGV2ZW50O1xyXG4gICAgdGhpcy5oYW5kbGVGZWVkYmFja1ZhbGlkYXRpb24oKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZlZWRiYWNrUmVzcG9uc2UoZXZlbnQpIHtcclxuICAgIHRoaXMuZmVlZEJhY2tSZXNwb25zZSA9IGV2ZW50O1xyXG4gICAgdGhpcy5oYW5kbGVSZXNwb25zZVZhbGlkYXRpb24oKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVVzZXJTZWxlY3RlZChldmVudCkge1xyXG4gICAgdGhpcy5zZWFyY2hFbXAgPSB7XHJcbiAgICAgIHBlcnNvbkVtYWlsOiBldmVudC5wZXJzb25FbWFpbCxcclxuICAgICAgcGVyc29uTmFtZTogZXZlbnQucGVyc29uTmFtZVxyXG4gICAgfTtcclxuICAgIGlmICghdGhpcy5mZWVkQmFja1F1ZXN0aW9uKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaGFuZGxlRmVlZGJhY2tWYWxpZGF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVSZXNwb25zZVZhbGlkYXRpb24oKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZmVlZEJhY2tSZXNwb25zZS5sZW5ndGggPj0gMSAmJlxyXG4gICAgICB0aGlzLmZlZWRCYWNrUmVzcG9uc2UubGVuZ3RoIDwgNTAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc1Jlc3BvbnNlVmFsaWRhdGVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNSZXNwb25zZVZhbGlkYXRlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRmVlZGJhY2tWYWxpZGF0aW9uKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmZlZWRCYWNrUXVlc3Rpb24ubGVuZ3RoID49IDEgJiZcclxuICAgICAgdGhpcy5mZWVkQmFja1F1ZXN0aW9uLmxlbmd0aCA8IDUwMCAmJlxyXG4gICAgICB0aGlzLnNlYXJjaEVtcC5wZXJzb25FbWFpbFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaXNGZWVkYmFja1ZhbGlkYXRlZCA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzRmVlZGJhY2tWYWxpZGF0ZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgbWF0LWRpYWxvZy10aXRsZT5cclxuICAgIDxoMz57e2kxOG4udHJhbnNsYXRlKCdyZXF1ZXN0RmVlZGJhY2snKX19PC9oMz5cclxuICAgIDxkcy1idXR0b24gc3F1YXJlIGljb24gbWF0RGlhbG9nQ2xvc2U+XHJcbiAgICAgIDxkcy1pY29uIGljb249XCJjbG9zZVwiIGNsYXNzPVwiZnMtMjAgZmMtYmxhY2tcIj48L2RzLWljb24+XHJcbiAgICA8L2RzLWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8bWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBweS00XCIgKm5nSWY9XCJzdWJtaXR0ZWRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG1iLTRcIj5cclxuICAgICAgICA8c3ZnIHdpZHRoPVwiNzlcIiBoZWlnaHQ9XCI3NlwiIHZpZXdCb3g9XCIwIDAgNzkgNzZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgIGQ9XCJNNTkuOTgwNCAwLjA5OTg2NzZMMS4zOTIzOSAxOS4yNDc5QzEuMDIyMjMgMTkuMzY5MiAwLjY5NDk4IDE5LjU5NDggMC40NDk5OSAxOS44OTc2QzAuMjA1IDIwLjIwMDUgMC4wNTI2OTg1IDIwLjU2NzYgMC4wMTEzOTg1IDIwLjk1NUMtMC4wMjk5MDE2IDIxLjM0MjMgMC4wNDE1NTc2IDIxLjczMzMgMC4yMTcxODQgMjIuMDgxQzAuMzkyODEgMjIuNDI4NyAwLjY2NTEyOCAyMi43MTgzIDEuMDAxMzkgMjIuOTE0OUwyMy4xNDU0IDM1Ljc4OTlDMjMuNDg3IDM1Ljk4ODYgMjMuODc5NCAzNi4wODI4IDI0LjI3NCAzNi4wNjA4QzI0LjY2ODYgMzYuMDM4OCAyNS4wNDgxIDM1LjkwMTQgMjUuMzY1NCAzNS42NjU5TDMxLjU4OTQgMzEuMDQzOUwyNi45Njc0IDM3LjI2NzlDMjYuNzMxOCAzNy41ODUyIDI2LjU5NDQgMzcuOTY0NiAyNi41NzIyIDM4LjM1OTFDMjYuNTQ5OSAzOC43NTM3IDI2LjY0MzkgMzkuMTQ2MSAyNi44NDI0IDM5LjQ4NzlMMzkuNzE3NCA2MS42Mjg5QzM5LjkxMzggNjEuOTY1MiA0MC4yMDMxIDYyLjIzNzcgNDAuNTUwNiA2Mi40MTM1QzQwLjg5ODEgNjIuNTg5NCA0MS4yODkgNjIuNjYxMSA0MS42NzYzIDYyLjYyMDFDNDIuMDYzNiA2Mi41NzkxIDQyLjQzMDggNjIuNDI3MiA0Mi43MzM4IDYyLjE4MjVDNDMuMDM2OSA2MS45Mzc4IDQzLjI2MjggNjEuNjEwOCA0My4zODQ0IDYxLjI0MDlMNjIuNTI5NCAyLjY1MTg3QzYyLjY0NTggMi4yOTY4NiA2Mi42NjE1IDEuOTE2NTQgNjIuNTc0OSAxLjU1MzEzQzYyLjQ4ODMgMS4xODk3MSA2Mi4zMDI2IDAuODU3NDAxIDYyLjAzODYgMC41OTMwNzFDNjEuNzc0NiAwLjMyODc0MSA2MS40NDI1IDAuMTQyNzI2IDYxLjA3OTIgMC4wNTU2NjY1QzYwLjcxNTkgLTAuMDMxMzkzMyA2MC4zMzU1IC0wLjAxNjA5MzcgNTkuOTgwNCAwLjA5OTg2NzZaTTQwLjk0MzQgNTUuNjk5OUwzMS4wMDE0IDM4LjYwNjlMNDIuOTg5NCAyMi40Njg5QzQzLjI3OTcgMjIuMDc5OCA0My40MjAyIDIxLjU5OTMgNDMuMzg1MiAyMS4xMTUyQzQzLjM1MDIgMjAuNjMxIDQzLjE0MiAyMC4xNzU3IDQyLjc5ODggMTkuODMyNUM0Mi40NTU2IDE5LjQ4OTMgNDIuMDAwMiAxOS4yODExIDQxLjUxNjEgMTkuMjQ2MUM0MS4wMzIgMTkuMjExMSA0MC41NTE0IDE5LjM1MTYgNDAuMTYyNCAxOS42NDE5TDI0LjAyNTQgMzEuNjI3OUw2LjkzMzM5IDIxLjY4ODlMNTcuNDUxNCA1LjE4MDg3TDQwLjk0MzQgNTUuNjk5OVpNMjEuMjEzNCA0NC4yNzU5TDcuODAxMzkgNTcuNjkwOUM3LjQyMjUzIDU4LjA3MDEgNi45MDg1MyA1OC4yODMzIDYuMzcyNDYgNTguMjgzNkM1LjgzNjM4IDU4LjI4MzkgNS4zMjIxNSA1OC4wNzEyIDQuOTQyODkgNTcuNjkyNEM0LjU2MzYzIDU3LjMxMzUgNC4zNTA0MSA1Ni43OTk1IDQuMzUwMTMgNTYuMjYzNEM0LjM0OTg1IDU1LjcyNzQgNC41NjI1MyA1NS4yMTMxIDQuOTQxMzkgNTQuODMzOUwxOC4zNTY0IDQxLjQxODlDMTguNzM1MyA0MS4wNCAxOS4yNDkxIDQwLjgyNzIgMTkuNzg0OSA0MC44MjcyQzIwLjMyMDcgNDAuODI3MiAyMC44MzQ1IDQxLjA0IDIxLjIxMzQgNDEuNDE4OUMyMS41OTIzIDQxLjc5NzcgMjEuODA1MSA0Mi4zMTE2IDIxLjgwNTEgNDIuODQ3NEMyMS44MDUxIDQzLjM4MzIgMjEuNTkyMyA0My44OTcgMjEuMjEzNCA0NC4yNzU5Wk0zLjQ5MTM5IDQ0Ljc4MzlDMy4zMDM3OCA0NC41OTYzIDMuMTU0OTUgNDQuMzczNiAzLjA1MzQxIDQ0LjEyODVDMi45NTE4NyA0My44ODM0IDIuODk5NjEgNDMuNjIwNyAyLjg5OTYxIDQzLjM1NTRDMi44OTk2MSA0My4wOTAxIDIuOTUxODcgNDIuODI3NCAzLjA1MzQxIDQyLjU4MjNDMy4xNTQ5NSA0Mi4zMzcxIDMuMzAzNzggNDIuMTE0NCAzLjQ5MTM5IDQxLjkyNjlMOC43ODQzOSAzNi42MzM5QzkuMTYzMjYgMzYuMjU1IDkuNjc3MSAzNi4wNDIyIDEwLjIxMjkgMzYuMDQyMkMxMC43NDg3IDM2LjA0MjIgMTEuMjYyNSAzNi4yNTUgMTEuNjQxNCAzNi42MzM5QzEyLjAyMDMgMzcuMDEyNyAxMi4yMzMxIDM3LjUyNjYgMTIuMjMzMSAzOC4wNjI0QzEyLjIzMzEgMzguNTk4MiAxMi4wMjAzIDM5LjExMiAxMS42NDE0IDM5LjQ5MDlMNi4zNDkzOSA0NC43ODM5QzYuMTYxOCA0NC45NzE2IDUuOTM5MDMgNDUuMTIwNiA1LjY5Mzg0IDQ1LjIyMjJDNS40NDg2NCA0NS4zMjM4IDUuMTg1ODIgNDUuMzc2MiA0LjkyMDM5IDQ1LjM3NjJDNC42NTQ5NyA0NS4zNzYyIDQuMzkyMTUgNDUuMzIzOCA0LjE0Njk1IDQ1LjIyMjJDMy45MDE3NiA0NS4xMjA2IDMuNjc4OTkgNDQuOTcxNiAzLjQ5MTM5IDQ0Ljc4MzlaTTI2LjAwMTQgNTAuOTg5OUMyNi4xODkgNTEuMTc3NCAyNi4zMzc4IDUxLjQwMDEgMjYuNDM5NCA1MS42NDUzQzI2LjU0MDkgNTEuODkwNCAyNi41OTMyIDUyLjE1MzEgMjYuNTkzMiA1Mi40MTg0QzI2LjU5MzIgNTIuNjgzNyAyNi41NDA5IDUyLjk0NjQgMjYuNDM5NCA1My4xOTE1QzI2LjMzNzggNTMuNDM2NiAyNi4xODkgNTMuNjU5MyAyNi4wMDE0IDUzLjg0NjlMMjAuNzAxNCA1OS4xNDA5QzIwLjMyMjUgNTkuNTE5NyAxOS44MDg3IDU5LjczMjYgMTkuMjcyOSA1OS43MzI2QzE4LjczNzEgNTkuNzMyNiAxOC4yMjMzIDU5LjUxOTcgMTcuODQ0NCA1OS4xNDA5QzE3LjQ2NTUgNTguNzYyIDE3LjI1MjcgNTguMjQ4MiAxNy4yNTI3IDU3LjcxMjRDMTcuMjUyNyA1Ny4xNzY2IDE3LjQ2NTUgNTYuNjYyNyAxNy44NDQ0IDU2LjI4MzlMMjMuMTM3NCA1MC45OTA5QzIzLjMyNSA1MC44MDMyIDIzLjU0NzcgNTAuNjU0NCAyMy43OTI4IDUwLjU1MjlDMjQuMDM3OSA1MC40NTEzIDI0LjMwMDYgNTAuMzk5MSAyNC41NjU5IDUwLjM5OTFDMjQuODMxMiA1MC4zOTkxIDI1LjA5MzkgNTAuNDUxMyAyNS4zMzkgNTAuNTUyOUMyNS41ODQxIDUwLjY1NDQgMjUuODA2OCA1MC44MDMyIDI1Ljk5NDQgNTAuOTkwOUwyNi4wMDE0IDUwLjk4OTlaXCJcclxuICAgICAgICAgICAgZmlsbD1cIiM4RTlBQTBcIiAvPlxyXG4gICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgZD1cIk01OC4wMDE1IDc1LjMxMTlDNjkuMDQ3MiA3NS4zMTE5IDc4LjAwMTUgNjYuMzU3NiA3OC4wMDE1IDU1LjMxMTlDNzguMDAxNSA0NC4yNjYyIDY5LjA0NzIgMzUuMzExOSA1OC4wMDE1IDM1LjMxMTlDNDYuOTU1OCAzNS4zMTE5IDM4LjAwMTUgNDQuMjY2MiAzOC4wMDE1IDU1LjMxMTlDMzguMDAxNSA2Ni4zNTc2IDQ2Ljk1NTggNzUuMzExOSA1OC4wMDE1IDc1LjMxMTlaXCJcclxuICAgICAgICAgICAgZmlsbD1cIiMwMEM0OENcIiAvPlxyXG4gICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgZD1cIk01Ni44ODA0IDU3LjMxODNMNTQuMDM0NiA1NC40NzI1TDUyLjk3NDMgNTUuNTMzNkw1Ni44Nzc0IDU5LjQzNjdMNjUuODM1NCA1MC41MjY3TDY1LjQ5MjcgNTAuMDEzOEM2My44NTU3IDQ3LjU4MTIgNjEuMTEzNCA0Ni4wMDIgNTguMDAxNSA0Ni4wMDJDNTMuMDMxMyA0Ni4wMDIgNDkuMDAxNSA1MC4wMzEgNDkuMDAxNSA1NS4wMDJDNDkuMDAxNSA1OS45NzI5IDUzLjAzMDUgNjQuMDAyIDU4LjAwMTUgNjQuMDAyQzYyLjk3MTYgNjQuMDAyIDY3LjAwMDcgNTkuOTcyOSA2Ny4wMDE1IDU1LjAwMzVINjUuNTAxN0M2NS41MDE3IDU1LjAwNSA2NS41MDE3IDU1LjAwNzIgNjUuNTAxNyA1NS4wMDk1QzY1LjUwMTcgNTkuMTUwMyA2Mi4xNDUzIDYyLjUwNjcgNTguMDA0NSA2Mi41MDY3QzUzLjg2MzcgNjIuNTA2NyA1MC41MDcyIDU5LjE1MDMgNTAuNTA3MiA1NS4wMDk1QzUwLjUwNzIgNTAuODY4NiA1My44NjM3IDQ3LjUxMjIgNTguMDA0NSA0Ny41MTIyQzYwLjM3OTMgNDcuNTEyMiA2Mi40OTYyIDQ4LjYxNjggNjMuODcgNTAuMzM5Mkw2My44ODIgNTAuMzU0Mkw1Ni44ODA0IDU3LjMxODNaXCJcclxuICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aDIgY2xhc3M9XCJmcy0xNiBmdy1tZWRpdW0gZmMtYmxhY2sgbWItNCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIHt7aTE4bi50cmFuc2xhdGUoJ3N1Ym1pdHRlZFN1Y2Nlc3NmdWxseScpfX1cclxuICAgICAgPC9oMj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc3VibWl0dGVkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCIgKm5nSWY9XCJmZWVkQmFja1NlcnZpY2UuZmVlZGJhY2tGb3JtIFwiPlxyXG4gICAgICAgIDxhcHAtc2VhcmNoLWVtcGxveWVlICNlbXBsb3llZSBsYWJlbD1cInt7aTE4bi50cmFuc2xhdGUoJ3JlcXVlc3RUbycpfX1cIiBbZmllbGRdPVwic2VhcmNoRW1wXCJcclxuICAgICAgICAgIFtsYWJlbFRleHRSZWFkTW9kZV09XCJpMThuLnRyYW5zbGF0ZSgncmVxdWVzdFRvJylcIiBbbGFiZWxUZXh0V3JpdGVNb2RlXT1cImkxOG4udHJhbnNsYXRlKCdyZXF1ZXN0VG8nKVwiXHJcbiAgICAgICAgICBbbmFtZV09XCInc2VhcmNoRW1wJ1wiIChlbWl0ZWRWYWx1ZSk9XCJoYW5kbGVVc2VyU2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXNlYXJjaC1lbXBsb3llZT5cclxuICAgICAgICA8YXBwLXRleHRhcmVhICNyZXF1ZXN0IFtmaWVsZF09XCJlbXBsb3llZUlucHV0XCIgbmFtZT1cImVtcGxveWVlSW5wdXRcIiBsYWJlbD1cInt7aTE4bi50cmFuc2xhdGUoJ2ZlZWRiYWNrJyl9fVwiXHJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiIFttaW5MZW5ndGhdPScxJyAoZW1pdGVkVmFsdWUpPVwiaGFuZGxlRmVlZGJhY2tRdWVzdGlvbigkZXZlbnQpXCIgW21heExlbmd0aF09JzUwMCdcclxuICAgICAgICAgIFtlcnJvck1lc3NhZ2VdPVwiaTE4bi50cmFuc2xhdGUoJ2xlbmdodE1pbjFNYXg1MDAnKVwiPlxyXG4gICAgICAgIDwvYXBwLXRleHRhcmVhPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLXNlY3Rpb25cIiAqbmdJZj1cIiFmZWVkQmFja1NlcnZpY2UuZmVlZGJhY2tGb3JtXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZlZWRCYWNrU2VydmljZS5yZXNwb25kZXJGb3JtXCI+XHJcbiAgICAgICAgICA8YXBwLWluZm8taXRlbSBjbGFzcz1cImluZm8taXRlbSB3LTEwMFwiIGxhYmVsPVwie3tpMThuLnRyYW5zbGF0ZSgncmVxdWVzdEZyb20nKX19XCJcclxuICAgICAgICAgICAgdmFsdWU9XCJ7e2ZlZWRCYWNrU2VydmljZT8uZmVlZGJhY2tSZXNwb25zZT8ucmVxdWVzdEZyb219fVwiPjwvYXBwLWluZm8taXRlbT5cclxuICAgICAgICAgIDxhcHAtaW5mby1pdGVtIGNsYXNzPVwiaW5mby1pdGVtIHctMTAwXCIgbGFiZWw9XCJ7e2kxOG4udHJhbnNsYXRlKCdyZXF1ZXN0VG8nKX19XCJcclxuICAgICAgICAgICAgdmFsdWU9XCJ7e2ZlZWRCYWNrU2VydmljZT8uZmVlZGJhY2tSZXNwb25zZT8ucmVxdWVzdFRvfX1cIj48L2FwcC1pbmZvLWl0ZW0+XHJcbiAgICAgICAgICA8YXBwLWluZm8taXRlbSBjbGFzcz1cImluZm8taXRlbSB3LTEwMFwiIGxhYmVsPVwie3tpMThuLnRyYW5zbGF0ZSgnZmVlZGJhY2tRdWVzdGlvbicpfX1cIlxyXG4gICAgICAgICAgICB2YWx1ZT1cInt7ZmVlZEJhY2tTZXJ2aWNlPy5mZWVkYmFja1Jlc3BvbnNlPy5yZXF1ZXN0RmVlZGJhY2t9fVwiPjwvYXBwLWluZm8taXRlbT5cclxuICAgICAgICAgIDxhcHAtaW5mby1pdGVtIGNsYXNzPVwiaW5mby1pdGVtIHctMTAwXCIgbGFiZWw9XCJ7e2kxOG4udHJhbnNsYXRlKCdmZWVkYmFjaycpfX1cIlxyXG4gICAgICAgICAgICB2YWx1ZT1cInt7ZmVlZEJhY2tTZXJ2aWNlPy5mZWVkYmFja1Jlc3BvbnNlPy5yZXNwb25zZUZlZWRiYWNrfX1cIj48L2FwcC1pbmZvLWl0ZW0+XHJcbiAgICAgICAgICA8YXBwLXRleHRhcmVhICNyZXF1ZXN0IGNsYXNzPVwiZnVsbCBteC0zIG10LTMgc2VjdGlvbi1pdGVtXCIgW2ZpZWxkXT1cImVtcGxveWVlSW5wdXRcIiBuYW1lPVwiZW1wbG95ZWVJbnB1dFwiXHJcbiAgICAgICAgICAgIGxhYmVsPVwie3tpMThuLnRyYW5zbGF0ZSgnZmVlZGJhY2snKX19XCIgW3JlcXVpcmVkXT1cInRydWVcIiBbbWluTGVuZ3RoXT0nMSdcclxuICAgICAgICAgICAgKGVtaXRlZFZhbHVlKT1cImhhbmRsZUZlZWRiYWNrUmVzcG9uc2UoJGV2ZW50KVwiIFttYXhMZW5ndGhdPSc1MDAnXHJcbiAgICAgICAgICAgIFtlcnJvck1lc3NhZ2VdPVwiaTE4bi50cmFuc2xhdGUoJ2xlbmdodE1pbjFNYXg1MDAnKVwiPlxyXG4gICAgICAgICAgPC9hcHAtdGV4dGFyZWE+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmZWVkQmFja1NlcnZpY2UucGVuZGluZ0Zvcm1cIiBpZD1cInJlc3BvbmNlX2Zvcm1cIj5cclxuICAgICAgICAgIDxhcHAtaW5mby1pdGVtIGNsYXNzPVwiaW5mby1pdGVtIHctMTAwXCIgbGFiZWw9XCJ7e2kxOG4udHJhbnNsYXRlKCdyZXF1ZXN0RnJvbScpfX1cIlxyXG4gICAgICAgICAgICB2YWx1ZT1cInt7ZmVlZEJhY2tTZXJ2aWNlPy5mZWVkYmFja1Jlc3BvbnNlPy5yZXF1ZXN0RnJvbX19XCI+PC9hcHAtaW5mby1pdGVtPlxyXG4gICAgICAgICAgPGFwcC1pbmZvLWl0ZW0gY2xhc3M9XCJpbmZvLWl0ZW0gdy0xMDBcIiBsYWJlbD1cInt7aTE4bi50cmFuc2xhdGUoJ3JlcXVlc3RUbycpfX1cIlxyXG4gICAgICAgICAgICB2YWx1ZT1cInt7ZmVlZEJhY2tTZXJ2aWNlPy5mZWVkYmFja1Jlc3BvbnNlPy5yZXF1ZXN0VG99fVwiPjwvYXBwLWluZm8taXRlbT5cclxuICAgICAgICAgIDxhcHAtaW5mby1pdGVtIGNsYXNzPVwiaW5mby1pdGVtIHctMTAwXCIgbGFiZWw9XCJ7e2kxOG4udHJhbnNsYXRlKCdmZWVkYmFja1F1ZXN0aW9uJyl9fVwiXHJcbiAgICAgICAgICAgIHZhbHVlPVwie3tmZWVkQmFja1NlcnZpY2U/LmZlZWRiYWNrUmVzcG9uc2U/LnJlcXVlc3RGZWVkYmFja319XCI+PC9hcHAtaW5mby1pdGVtPlxyXG4gICAgICAgICAgPGFwcC1pbmZvLWl0ZW0gY2xhc3M9XCJpbmZvLWl0ZW0gdy0xMDBcIiBsYWJlbD1cInt7aTE4bi50cmFuc2xhdGUoJ2ZlZWRiYWNrJyl9fVwiXHJcbiAgICAgICAgICAgIHZhbHVlPVwie3tmZWVkQmFja1NlcnZpY2U/LmZlZWRiYWNrUmVzcG9uc2U/LnJlc3BvbnNlRmVlZGJhY2t9fVwiPjwvYXBwLWluZm8taXRlbT5cclxuXHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMCBnYXAtM1wiICpuZ0lmPVwiIXN1Ym1pdHRlZFwiPlxyXG4gICAgICAgIDxkcy1idXR0b24gc2hhcGU9XCJvdXRsaW5lXCIgbWF0RGlhbG9nQ2xvc2U+XHJcbiAgICAgICAgICB7e2kxOG4udHJhbnNsYXRlKCdDYW5jZWwnKX19XHJcbiAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgPGRzLWJ1dHRvbiAqbmdJZj1cImZlZWRCYWNrU2VydmljZS5mZWVkYmFja0Zvcm1cIiAoY2xpY2spPVwiYWRkRmVlZGJhY2soKVwiXHJcbiAgICAgICAgICBkaXNhYmxlZD1cInt7IShpc0ZlZWRiYWNrVmFsaWRhdGVkKX19XCI+XHJcbiAgICAgICAgICB7e2kxOG4udHJhbnNsYXRlKCdzdWJtaXQnKX19XHJcbiAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgPGRzLWJ1dHRvbiAqbmdJZj1cIiFmZWVkQmFja1NlcnZpY2UuZmVlZGJhY2tGb3JtICYmIGZlZWRCYWNrU2VydmljZS5yZXNwb25kZXJGb3JtXCJcclxuICAgICAgICAgIGRpc2FibGVkPVwie3shKGlzUmVzcG9uc2VWYWxpZGF0ZWQpfX1cIiAoY2xpY2spPVwiYWRkUmVzcG9uc2UoKVwiPlxyXG4gICAgICAgICAge3tpMThuLnRyYW5zbGF0ZSgnc3VibWl0Jyl9fVxyXG4gICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8L21hdC1kaWFsb2ctY29udGVudD5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVlZGJhY2stc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvYXBwLWNvbXBvbmVudC1zZWN0aW9ucy9mZWVkYmFjay1zZWN0aW9uL2ZlZWRiYWNrLXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvZmVlZGJhY2stc2VjdGlvbi9mZWVkYmFjay1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzNHLE9BQU8sRUFBQyxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUV2RixPQUFPLEVBQUMsSUFBSSxFQUFhLFFBQVEsRUFBa0IsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEtBQUssU0FBUyxNQUFNLDhCQUE4QixDQUFDO0FBQzFELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBbUJ0RyxNQUFNLE9BQU8sd0JBQXdCO0lBZTFCO0lBQ0E7SUFDeUI7SUFoQnpCLFNBQVMsQ0FBWTtJQUNyQixPQUFPLENBQWtCO0lBQ2xDLElBQUksQ0FBTztJQUNYLFNBQVMsQ0FBTTtJQUNmLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsY0FBYyxHQUFXLElBQUksQ0FBQztJQUM5QixnQkFBZ0IsR0FBVyxJQUFJLENB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LEtBQUssQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQztJQUVELHdCQUF3QjtRQUN0QixJQUNFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLElBQUksQ0FBQztZQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLEdBQUc7WUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQzFCLENBQUM7WUFDRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztRQUNuQyxDQUFDO0lBQ0gsQ0FBQzt1R0F0T1Usd0JBQXdCLGdGQWlCekIsZUFBZTsyRkFqQmQsd0JBQXdCLHdJQ3pCckMsNnpRQXdGQSxxSkR6RUksZ0JBQWdCLHlHQUNoQixJQUFJLDZGQUNKLHVCQUF1QixvU0FDdkIsaUJBQWlCLHNHQUNqQixpQkFBaUIsZ01BQ2pCLGNBQWMsK0hBQ2QsY0FBYzs7MkZBSUwsd0JBQXdCO2tCQWhCcEMsU0FBUzsrQkFDRSxzQkFBc0IsV0FHdkIsQ0FBQyxzQkFBc0IsQ0FBQyxXQUN4Qjt3QkFDUCxnQkFBZ0I7d0JBQ2hCLElBQUk7d0JBQ0osdUJBQXVCO3dCQUN2QixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxjQUFjO3FCQUNmLGNBQ1csSUFBSTs7MEJBbUJiLE1BQU07MkJBQUMsZUFBZTt5Q0FoQmhCLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ0Nsb3NlLCBNYXREaWFsb2dDb250ZW50LCBNYXREaWFsb2dUaXRsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHtDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIEluamVjdCwgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29yZUkxOG5TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7Rm9ybSwgSW5ib3hJdGVtLCBNZXNzYWdlcywgUHJvZmlsZUluZm9Ecm9wfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0ICogYXMgQ29uc3RhbnRzIGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy9jb25zdGFudHMnO1xyXG5pbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7SW5mb0l0ZW1Db21wb25lbnQsIFNlYXJjaEVtcGxveWVlQ29tcG9uZW50LCBUZXh0YXJlYUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL3NoYXJlZC1jb21wb25lbnRzXCI7XHJcbmltcG9ydCB7RmVlZEJhY2tTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZlZWRiYWNrLXNlY3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWVkYmFjay1zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mZWVkYmFjay1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdERpYWxvZ0NvbnRlbnQsXHJcbiAgICBOZ0lmLFxyXG4gICAgU2VhcmNoRW1wbG95ZWVDb21wb25lbnQsXHJcbiAgICBUZXh0YXJlYUNvbXBvbmVudCxcclxuICAgIEluZm9JdGVtQ29tcG9uZW50LFxyXG4gICAgTWF0RGlhbG9nVGl0bGUsXHJcbiAgICBNYXREaWFsb2dDbG9zZVxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZlZWRiYWNrU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgaW5ib3hJdGVtOiBJbmJveEl0ZW07XHJcbiAgQElucHV0KCkgcHJvZmlsZTogUHJvZmlsZUluZm9Ecm9wO1xyXG4gIGZvcm06IEZvcm07XHJcbiAgc2VhcmNoRW1wOiBhbnk7XHJcbiAgc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgZmVlZGJhY2tTdGF0dXM6IHN0cmluZyA9IG51bGw7XHJcbiAgZmVlZEJhY2tRdWVzdGlvbjogc3RyaW5nID0gbnVsbDtcclxuICBmZWVkQmFja1Jlc3BvbnNlOiBzdHJpbmcgPSBudWxsO1xyXG4gIGlzRmVlZGJhY2tWYWxpZGF0ZWQgPSBmYWxzZTtcclxuICBpc1Jlc3BvbnNlVmFsaWRhdGVkID0gZmFsc2U7XHJcbiAgZW1wbG95ZWVJbnB1dDogc3RyaW5nID0gbnVsbDtcclxuICBmZWVkYmFja0lkOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBmZWVkQmFja1NlcnZpY2U6IEZlZWRCYWNrU2VydmljZSxcclxuICAgIHB1YmxpYyBpMThuOiBDb3JlSTE4blNlcnZpY2UsXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IGFueVxyXG4gICkge1xyXG4gICAgdGhpcy5wcm9maWxlID0gZGF0YS5wcm9maWxlO1xyXG4gICAgdGhpcy5pbmJveEl0ZW0gPSBkYXRhLmluYm94SXRlbTtcclxuICAgIHRoaXMuZm9ybSA9IGRhdGEuZm9ybTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLmZlZWRCYWNrU2VydmljZS5mZWVkQmFja1NlbnQpIHtcclxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaW5ib3hJdGVtO1xyXG4gICAgICBpZiAoaXRlbT8uY2FuUmVxdWVzdEZlZWRiYWNrID09PSAndHJ1ZScpIHtcclxuICAgICAgICB0aGlzLmZlZWRiYWNrU3RhdHVzID0gQ29uc3RhbnRzLkZFRURCQUNLX1NUQVRVU19SRVFVRVNUO1xyXG4gICAgICAgIHRoaXMuZmVlZEJhY2tTZXJ2aWNlLmZlZWRiYWNrRm9ybSA9IHRydWU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICBpdGVtLmlzUmVxdWVzdGVkID09PSAndHJ1ZScgJiZcclxuICAgICAgICBpdGVtLmhhc0ZlZWRiYWNrID09PSAndHJ1ZScgJiZcclxuICAgICAgICBpdGVtLmlzUGVuZGluZyA9PT0gJ2ZhbHNlJyAmJlxyXG4gICAgICAgIGl0ZW0uaXNSZXNwb25kZWQgPT09ICdmYWxzZSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5mZWVkYmFja1N0YXR1cyA9IENvbnN0YW50cy5GRUVEQkFDS19TVEFUVVNfV0FJVElORztcclxuICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5wZW5kaW5nRm9ybSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5nZXRGZWVkQmFjaygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgaXRlbS5pc1JlcXVlc3RlZCA9PT0gJ2ZhbHNlJyAmJlxyXG4gICAgICAgIGl0ZW0uaGFzRmVlZGJhY2sgPT09ICd0cnVlJyAmJlxyXG4gICAgICAgIGl0ZW0uaXNQZW5kaW5nID09PSAndHJ1ZScgJiZcclxuICAgICAgICBpdGVtLmlzUmVzcG9uZGVkID09PSAnZmFsc2UnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuZmVlZGJhY2tTdGF0dXMgPSBDb25zdGFudHMuRkVFREJBQ0tfU1RBVFVTX1JFU1BPTkQ7XHJcbiAgICAgICAgdGhpcy5mZWVkQmFja1NlcnZpY2UucmVzcG9uZGVyRm9ybSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5nZXRGZWVkQmFjaygpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgaXRlbS5pc1JlcXVlc3RlZCA9PT0gJ3RydWUnICYmXHJcbiAgICAgICAgaXRlbS5oYXNGZWVkYmFjayA9PT0gJ3RydWUnICYmXHJcbiAgICAgICAgaXRlbS5pc1BlbmRpbmcgPT09ICdmYWxzZScgJiZcclxuICAgICAgICBpdGVtLmlzUmVzcG9uZGVkID09PSAndHJ1ZSdcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5mZWVkYmFja1N0YXR1cyA9IENvbnN0YW50cy5GRUVEQkFDS19TVEFUVVNfUkVTUE9OREVEO1xyXG4gICAgICAgIHRoaXMuZmVlZEJhY2tTZXJ2aWNlLnBlbmRpbmdGb3JtID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmdldEZlZWRCYWNrKCk7XHJcbiAgICAgIH1cclxuICAgICAgLyogICAgICBjb25zdCBvYmogPSB7XHJcbiAgICAgICAgICAgICAgbmFtZTogJ2NoYW5nZUZlZWRiYWNrU3RhdHVzJyxcclxuICAgICAgICAgICAgICBkYXRhOiB0aGlzLmZlZWRiYWNrU3RhdHVzIVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLl9saXN0ZW5lclNlcnZpY2UuZmlsdGVyKG9iaik7Ki9cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldEZlZWRCYWNrKCkge1xyXG4gICAgdGhpcy5mZWVkQmFja1NlcnZpY2UuZ2V0RmVlZGJhY2sodGhpcy5wcm9maWxlLmVtcGxveWVlRW1haWwpLnN1YnNjcmliZSgoUmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoUmVzcG9uc2UpIHtcclxuICAgICAgICBpZiAoUmVzcG9uc2UgaW5zdGFuY2VvZiBNZXNzYWdlcykge1xyXG4gICAgICAgICAgdGhpcy5zaG93RXJyb3IoUmVzcG9uc2UpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCByZXNwID0gUmVzcG9uc2VbJ2l0ZW1zJ11bMF07XHJcbiAgICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5mZWVkYmFja1Jlc3BvbnNlLnJlcXVlc3RGcm9tID1cclxuICAgICAgICAgICAgcmVzcC5mcm9tWydmaXJzdE5hbWUnXSArXHJcbiAgICAgICAgICAgICcgJyArXHJcbiAgICAgICAgICAgIHJlc3AuZnJvbVsnbWlkZGxlTmFtZSddICtcclxuICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgcmVzcC5mcm9tWydmYW1pbHlOYW1lJ107XHJcbiAgICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5mZWVkYmFja1Jlc3BvbnNlLnJlcXVlc3RUbyA9XHJcbiAgICAgICAgICAgIHJlc3AudG9bJ2ZpcnN0TmFtZSddICtcclxuICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgcmVzcC50b1snbWlkZGxlTmFtZSddICtcclxuICAgICAgICAgICAgJyAnICtcclxuICAgICAgICAgICAgcmVzcC50b1snZmFtaWx5TmFtZSddO1xyXG4gICAgICAgICAgdGhpcy5mZWVkQmFja1NlcnZpY2UuZmVlZGJhY2tSZXNwb25zZS5yZXF1ZXN0RmVlZGJhY2sgPVxyXG4gICAgICAgICAgICByZXNwLnF1ZXJ5O1xyXG4gICAgICAgICAgdGhpcy5mZWVkQmFja1NlcnZpY2UuZmVlZGJhY2tSZXNwb25zZS5yZXNwb25zZUZlZWRiYWNrID1cclxuICAgICAgICAgICAgcmVzcC5yZXNwb25zZTtcclxuICAgICAgICAgIHRoaXMuZmVlZGJhY2tJZCA9IHJlc3AuaWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgYWRkRmVlZGJhY2soKSB7XHJcbiAgICBpZiAodGhpcy5pc0ZlZWRiYWNrVmFsaWRhdGVkKSB7XHJcbiAgICAgIGNvbnN0IGVtYWlsID0gdGhpcy5zZWFyY2hFbXAucGVyc29uRW1haWwsXHJcbiAgICAgICAgcXVlc3Rpb24gPSB0aGlzLmZlZWRCYWNrUXVlc3Rpb247XHJcbiAgICAgIHRoaXMuZmVlZEJhY2tTZXJ2aWNlLnN1Ym1pdEZlZWRiYWNrKHtlbWFpbCwgcXVlc3Rpb259KS5zdWJzY3JpYmUoKFJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoUmVzcG9uc2UpIHtcclxuICAgICAgICAgIGlmIChSZXNwb25zZSBpbnN0YW5jZW9mIE1lc3NhZ2VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yKFJlc3BvbnNlKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuZmVlZGJhY2tTdGF0dXMgPSBDb25zdGFudHMuRkVFREJBQ0tfU1RBVFVTX1dBSVRJTkc7XHJcbiAgICAgICAgICAgIC8vIGNvbnN0IG9iaiA9IHtcclxuICAgICAgICAgICAgLy8gICBuYW1lOiAnY2hhbmdlRmVlZGJhY2tTdGF0dXMnLFxyXG4gICAgICAgICAgICAvLyAgIGRhdGE6IHRoaXMuZmVlZGJhY2tTdGF0dXNcclxuICAgICAgICAgICAgLy8gfTtcclxuICAgICAgICAgICAgLy8gdGhpcy5fbGlzdGVuZXJTZXJ2aWNlLmZpbHRlcihvYmopO1xyXG4gICAgICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5mZWVkYmFja0Zvcm0gPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5mZWVkQmFja1NlcnZpY2UucGVuZGluZ0Zvcm0gPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5mZWVkQmFja1NlbnQgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5mZWVkYmFja1Jlc3BvbnNlLnJlcXVlc3RGcm9tID1cclxuICAgICAgICAgICAgICB0aGlzLnByb2ZpbGUuZnVsbE5hbWU7XHJcbiAgICAgICAgICAgIHRoaXMuZmVlZEJhY2tTZXJ2aWNlLmZlZWRiYWNrUmVzcG9uc2UucmVxdWVzdFRvID1cclxuICAgICAgICAgICAgICB0aGlzLnNlYXJjaEVtcC5wZXJzb25OYW1lO1xyXG4gICAgICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5mZWVkYmFja1Jlc3BvbnNlLnJlcXVlc3RGZWVkYmFjayA9XHJcbiAgICAgICAgICAgICAgdGhpcy5mZWVkQmFja1F1ZXN0aW9uO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIGFkZFJlc3BvbnNlKCkge1xyXG4gICAgaWYgKHRoaXMuaXNGZWVkYmFja1ZhbGlkYXRlZCkge1xyXG4gICAgICBjb25zdCBmZWVkYmFja0lkID0gdGhpcy5mZWVkYmFja0lkLFxyXG4gICAgICAgIGZlZWRiYWNrUmVzcG9uc2UgPSB0aGlzLmZlZWRCYWNrUmVzcG9uc2U7XHJcbiAgICAgIHRoaXMuZmVlZEJhY2tTZXJ2aWNlLmFkZFJlc3BvbnNlKHtmZWVkYmFja0lkLCBmZWVkYmFja1Jlc3BvbnNlfSkuc3Vic2NyaWJlKChSZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKFJlc3BvbnNlKSB7XHJcbiAgICAgICAgICBpZiAoUmVzcG9uc2UgaW5zdGFuY2VvZiBNZXNzYWdlcykge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dFcnJvcihSZXNwb25zZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZmVlZGJhY2tTdGF0dXMgPSBDb25zdGFudHMuRkVFREJBQ0tfU1RBVFVTX1JFU1BPTkRFRDtcclxuICAgICAgICAgICAgLypjb25zdCBvYmogPSB7XHJcbiAgICAgICAgICAgICAgbmFtZTogJ2NoYW5nZUZlZWRiYWNrU3RhdHVzJyxcclxuICAgICAgICAgICAgICBkYXRhOiB0aGlzLmZlZWRiYWNrU3RhdHVzXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuX2xpc3RlbmVyU2VydmljZS5maWx0ZXIob2JqKTsqL1xyXG4gICAgICAgICAgICB0aGlzLmZlZWRCYWNrU2VydmljZS5yZXNwb25kZXJGb3JtID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuZmVlZEJhY2tTZXJ2aWNlLmZlZWRCYWNrU2VudCA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZmVlZEJhY2tTZXJ2aWNlLnBlbmRpbmdGb3JtID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5mZWVkQmFja1NlcnZpY2UuZmVlZGJhY2tSZXNwb25zZS5yZXNwb25zZUZlZWRiYWNrID1cclxuICAgICAgICAgICAgICB0aGlzLmZlZWRCYWNrUmVzcG9uc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3VibWl0dGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBlcnJvck9jY3VyZWQgPSBmYWxzZTtcclxuICBpc1N1Ym1pdGluZyA9IGZhbHNlO1xyXG4gIGVycm9yTXNnID0gJyc7XHJcblxyXG4gIHNob3dFcnJvcihSZXNwb25zZTogYW55KSB7XHJcbiAgICBpZiAoIXRoaXMuZm9ybSkge1xyXG4gICAgICB0aGlzLmZvcm0gPSBuZXcgRm9ybShcclxuICAgICAgICBDb25zdGFudHMuTk9fVkFMVUUsXHJcbiAgICAgICAgQ29uc3RhbnRzLk5PX1ZBTFVFLFxyXG4gICAgICAgIENvbnN0YW50cy5OT19WQUxVRSxcclxuICAgICAgICBDb25zdGFudHMuTk9fVkFMVUUsXHJcbiAgICAgICAgQ29uc3RhbnRzLk5PX1ZBTFVFLFxyXG4gICAgICAgIENvbnN0YW50cy5OT19WQUxVRSxcclxuICAgICAgICBSZXNwb25zZVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lcnJvck9jY3VyZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLmVycm9yTXNnID0gUmVzcG9uc2U/LmVycm9yWzBdO1xyXG4gICAgICAvLyB0aGlzLmZvcm0ubWVzc2FnZXMgPSBSZXNwb25zZTtcclxuICAgIH1cclxuICAgIHdpbmRvdy5zY3JvbGxUbygwLCAwKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZlZWRiYWNrUXVlc3Rpb24oZXZlbnQpIHtcclxuICAgIHRoaXMuZmVlZEJhY2tRdWVzdGlvbiA9IGV2ZW50O1xyXG4gICAgdGhpcy5oYW5kbGVGZWVkYmFja1ZhbGlkYXRpb24oKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUZlZWRiYWNrUmVzcG9uc2UoZXZlbnQpIHtcclxuICAgIHRoaXMuZmVlZEJhY2tSZXNwb25zZSA9IGV2ZW50O1xyXG4gICAgdGhpcy5oYW5kbGVSZXNwb25zZVZhbGlkYXRpb24oKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZVVzZXJTZWxlY3RlZChldmVudCkge1xyXG4gICAgdGhpcy5zZWFyY2hFbXAgPSB7XHJcbiAgICAgIHBlcnNvbkVtYWlsOiBldmVudC5wZXJzb25FbWFpbCxcclxuICAgICAgcGVyc29uTmFtZTogZXZlbnQucGVyc29uTmFtZVxyXG4gICAgfTtcclxuICAgIGlmICghdGhpcy5mZWVkQmFja1F1ZXN0aW9uKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaGFuZGxlRmVlZGJhY2tWYWxpZGF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVSZXNwb25zZVZhbGlkYXRpb24oKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZmVlZEJhY2tSZXNwb25zZS5sZW5ndGggPj0gMSAmJlxyXG4gICAgICB0aGlzLmZlZWRCYWNrUmVzcG9uc2UubGVuZ3RoIDwgNTAwXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc1Jlc3BvbnNlVmFsaWRhdGVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNSZXNwb25zZVZhbGlkYXRlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRmVlZGJhY2tWYWxpZGF0aW9uKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmZlZWRCYWNrUXVlc3Rpb24ubGVuZ3RoID49IDEgJiZcclxuICAgICAgdGhpcy5mZWVkQmFja1F1ZXN0aW9uLmxlbmd0aCA8IDUwMCAmJlxyXG4gICAgICB0aGlzLnNlYXJjaEVtcC5wZXJzb25FbWFpbFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaXNGZWVkYmFja1ZhbGlkYXRlZCA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzRmVlZGJhY2tWYWxpZGF0ZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInBvcHVwLWNvbnRhaW5lclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgbWF0LWRpYWxvZy10aXRsZT5cclxuICAgIDxoMz57e2kxOG4udHJhbnNsYXRlKCdyZXF1ZXN0RmVlZGJhY2snKX19PC9oMz5cclxuICAgIDxkcy1idXR0b24gc3F1YXJlIGljb24gbWF0RGlhbG9nQ2xvc2U+XHJcbiAgICAgIDxkcy1pY29uIGljb249XCJjbG9zZVwiIGNsYXNzPVwiZnMtMjAgZmMtYmxhY2tcIj48L2RzLWljb24+XHJcbiAgICA8L2RzLWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuICA8bWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBweS00XCIgKm5nSWY9XCJzdWJtaXR0ZWRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG1iLTRcIj5cclxuICAgICAgICA8c3ZnIHdpZHRoPVwiNzlcIiBoZWlnaHQ9XCI3NlwiIHZpZXdCb3g9XCIwIDAgNzkgNzZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgIGQ9XCJNNTkuOTgwNCAwLjA5OTg2NzZMMS4zOTIzOSAxOS4yNDc5QzEuMDIyMjMgMTkuMzY5MiAwLjY5NDk4IDE5LjU5NDggMC40NDk5OSAxOS44OTc2QzAuMjA1IDIwLjIwMDUgMC4wNTI2OTg1IDIwLjU2NzYgMC4wMTEzOTg1IDIwLjk1NUMtMC4wMjk5MDE2IDIxLjM0MjMgMC4wNDE1NTc2IDIxLjczMzMgMC4yMTcxODQgMjIuMDgxQzAuMzkyODEgMjIuNDI4NyAwLjY2NTEyOCAyMi43MTgzIDEuMDAxMzkgMjIuOTE0OUwyMy4xNDU0IDM1Ljc4OTlDMjMuNDg3IDM1Ljk4ODYgMjMuODc5NCAzNi4wODI4IDI0LjI3NCAzNi4wNjA4QzI0LjY2ODYgMzYuMDM4OCAyNS4wNDgxIDM1LjkwMTQgMjUuMzY1NCAzNS42NjU5TDMxLjU4OTQgMzEuMDQzOUwyNi45Njc0IDM3LjI2NzlDMjYuNzMxOCAzNy41ODUyIDI2LjU5NDQgMzcuOTY0NiAyNi41NzIyIDM4LjM1OTFDMjYuNTQ5OSAzOC43NTM3IDI2LjY0MzkgMzkuMTQ2MSAyNi44NDI0IDM5LjQ4NzlMMzkuNzE3NCA2MS42Mjg5QzM5LjkxMzggNjEuOTY1MiA0MC4yMDMxIDYyLjIzNzcgNDAuNTUwNiA2Mi40MTM1QzQwLjg5ODEgNjIuNTg5NCA0MS4yODkgNjIuNjYxMSA0MS42NzYzIDYyLjYyMDFDNDIuMDYzNiA2Mi41NzkxIDQyLjQzMDggNjIuNDI3MiA0Mi43MzM4IDYyLjE4MjVDNDMuMDM2OSA2MS45Mzc4IDQzLjI2MjggNjEuNjEwOCA0My4zODQ0IDYxLjI0MDlMNjIuNTI5NCAyLjY1MTg3QzYyLjY0NTggMi4yOTY4NiA2Mi42NjE1IDEuOTE2NTQgNjIuNTc0OSAxLjU1MzEzQzYyLjQ4ODMgMS4xODk3MSA2Mi4zMDI2IDAuODU3NDAxIDYyLjAzODYgMC41OTMwNzFDNjEuNzc0NiAwLjMyODc0MSA2MS40NDI1IDAuMTQyNzI2IDYxLjA3OTIgMC4wNTU2NjY1QzYwLjcxNTkgLTAuMDMxMzkzMyA2MC4zMzU1IC0wLjAxNjA5MzcgNTkuOTgwNCAwLjA5OTg2NzZaTTQwLjk0MzQgNTUuNjk5OUwzMS4wMDE0IDM4LjYwNjlMNDIuOTg5NCAyMi40Njg5QzQzLjI3OTcgMjIuMDc5OCA0My40MjAyIDIxLjU5OTMgNDMuMzg1MiAyMS4xMTUyQzQzLjM1MDIgMjAuNjMxIDQzLjE0MiAyMC4xNzU3IDQyLjc5ODggMTkuODMyNUM0Mi40NTU2IDE5LjQ4OTMgNDIuMDAwMiAxOS4yODExIDQxLjUxNjEgMTkuMjQ2MUM0MS4wMzIgMTkuMjExMSA0MC41NTE0IDE5LjM1MTYgNDAuMTYyNCAxOS42NDE5TDI0LjAyNTQgMzEuNjI3OUw2LjkzMzM5IDIxLjY4ODlMNTcuNDUxNCA1LjE4MDg3TDQwLjk0MzQgNTUuNjk5OVpNMjEuMjEzNCA0NC4yNzU5TDcuODAxMzkgNTcuNjkwOUM3LjQyMjUzIDU4LjA3MDEgNi45MDg1MyA1OC4yODMzIDYuMzcyNDYgNTguMjgzNkM1LjgzNjM4IDU4LjI4MzkgNS4zMjIxNSA1OC4wNzEyIDQuOTQyODkgNTcuNjkyNEM0LjU2MzYzIDU3LjMxMzUgNC4zNTA0MSA1Ni43OTk1IDQuMzUwMTMgNTYuMjYzNEM0LjM0OTg1IDU1LjcyNzQgNC41NjI1MyA1NS4yMTMxIDQuOTQxMzkgNTQuODMzOUwxOC4zNTY0IDQxLjQxODlDMTguNzM1MyA0MS4wNCAxOS4yNDkxIDQwLjgyNzIgMTkuNzg0OSA0MC44MjcyQzIwLjMyMDcgNDAuODI3MiAyMC44MzQ1IDQxLjA0IDIxLjIxMzQgNDEuNDE4OUMyMS41OTIzIDQxLjc5NzcgMjEuODA1MSA0Mi4zMTE2IDIxLjgwNTEgNDIuODQ3NEMyMS44MDUxIDQzLjM4MzIgMjEuNTkyMyA0My44OTcgMjEuMjEzNCA0NC4yNzU5Wk0zLjQ5MTM5IDQ0Ljc4MzlDMy4zMDM3OCA0NC41OTYzIDMuMTU0OTUgNDQuMzczNiAzLjA1MzQxIDQ0LjEyODVDMi45NTE4NyA0My44ODM0IDIuODk5NjEgNDMuNjIwNyAyLjg5OTYxIDQzLjM1NTRDMi44OTk2MSA0My4wOTAxIDIuOTUxODcgNDIuODI3NCAzLjA1MzQxIDQyLjU4MjNDMy4xNTQ5NSA0Mi4zMzcxIDMuMzAzNzggNDIuMTE0NCAzLjQ5MTM5IDQxLjkyNjlMOC43ODQzOSAzNi42MzM5QzkuMTYzMjYgMzYuMjU1IDkuNjc3MSAzNi4wNDIyIDEwLjIxMjkgMzYuMDQyMkMxMC43NDg3IDM2LjA0MjIgMTEuMjYyNSAzNi4yNTUgMTEuNjQxNCAzNi42MzM5QzEyLjAyMDMgMzcuMDEyNyAxMi4yMzMxIDM3LjUyNjYgMTIuMjMzMSAzOC4wNjI0QzEyLjIzMzEgMzguNTk4MiAxMi4wMjAzIDM5LjExMiAxMS42NDE0IDM5LjQ5MDlMNi4zNDkzOSA0NC43ODM5QzYuMTYxOCA0NC45NzE2IDUuOTM5MDMgNDUuMTIwNiA1LjY5Mzg0IDQ1LjIyMjJDNS40NDg2NCA0NS4zMjM4IDUuMTg1ODIgNDUuMzc2MiA0LjkyMDM5IDQ1LjM3NjJDNC42NTQ5NyA0NS4zNzYyIDQuMzkyMTUgNDUuMzIzOCA0LjE0Njk1IDQ1LjIyMjJDMy45MDE3NiA0NS4xMjA2IDMuNjc4OTkgNDQuOTcxNiAzLjQ5MTM5IDQ0Ljc4MzlaTTI2LjAwMTQgNTAuOTg5OUMyNi4xODkgNTEuMTc3NCAyNi4zMzc4IDUxLjQwMDEgMjYuNDM5NCA1MS42NDUzQzI2LjU0MDkgNTEuODkwNCAyNi41OTMyIDUyLjE1MzEgMjYuNTkzMiA1Mi40MTg0QzI2LjU5MzIgNTIuNjgzNyAyNi41NDA5IDUyLjk0NjQgMjYuNDM5NCA1My4xOTE1QzI2LjMzNzggNTMuNDM2NiAyNi4xODkgNTMuNjU5MyAyNi4wMDE0IDUzLjg0NjlMMjAuNzAxNCA1OS4xNDA5QzIwLjMyMjUgNTkuNTE5NyAxOS44MDg3IDU5LjczMjYgMTkuMjcyOSA1OS43MzI2QzE4LjczNzEgNTkuNzMyNiAxOC4yMjMzIDU5LjUxOTcgMTcuODQ0NCA1OS4xNDA5QzE3LjQ2NTUgNTguNzYyIDE3LjI1MjcgNTguMjQ4MiAxNy4yNTI3IDU3LjcxMjRDMTcuMjUyNyA1Ny4xNzY2IDE3LjQ2NTUgNTYuNjYyNyAxNy44NDQ0IDU2LjI4MzlMMjMuMTM3NCA1MC45OTA5QzIzLjMyNSA1MC44MDMyIDIzLjU0NzcgNTAuNjU0NCAyMy43OTI4IDUwLjU1MjlDMjQuMDM3OSA1MC40NTEzIDI0LjMwMDYgNTAuMzk5MSAyNC41NjU5IDUwLjM5OTFDMjQuODMxMiA1MC4zOTkxIDI1LjA5MzkgNTAuNDUxMyAyNS4zMzkgNTAuNTUyOUMyNS41ODQxIDUwLjY1NDQgMjUuODA2OCA1MC44MDMyIDI1Ljk5NDQgNTAuOTkwOUwyNi4wMDE0IDUwLjk4OTlaXCJcclxuICAgICAgICAgICAgZmlsbD1cIiM4RTlBQTBcIiAvPlxyXG4gICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgZD1cIk01OC4wMDE1IDc1LjMxMTlDNjkuMDQ3MiA3NS4zMTE5IDc4LjAwMTUgNjYuMzU3NiA3OC4wMDE1IDU1LjMxMTlDNzguMDAxNSA0NC4yNjYyIDY5LjA0NzIgMzUuMzExOSA1OC4wMDE1IDM1LjMxMTlDNDYuOTU1OCAzNS4zMTE5IDM4LjAwMTUgNDQuMjY2MiAzOC4wMDE1IDU1LjMxMTlDMzguMDAxNSA2Ni4zNTc2IDQ2Ljk1NTggNzUuMzExOSA1OC4wMDE1IDc1LjMxMTlaXCJcclxuICAgICAgICAgICAgZmlsbD1cIiMwMEM0OENcIiAvPlxyXG4gICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgZD1cIk01Ni44ODA0IDU3LjMxODNMNTQuMDM0NiA1NC40NzI1TDUyLjk3NDMgNTUuNTMzNkw1Ni44Nzc0IDU5LjQzNjdMNjUuODM1NCA1MC41MjY3TDY1LjQ5MjcgNTAuMDEzOEM2My44NTU3IDQ3LjU4MTIgNjEuMTEzNCA0Ni4wMDIgNTguMDAxNSA0Ni4wMDJDNTMuMDMxMyA0Ni4wMDIgNDkuMDAxNSA1MC4wMzEgNDkuMDAxNSA1NS4wMDJDNDkuMDAxNSA1OS45NzI5IDUzLjAzMDUgNjQuMDAyIDU4LjAwMTUgNjQuMDAyQzYyLjk3MTYgNjQuMDAyIDY3LjAwMDcgNTkuOTcyOSA2Ny4wMDE1IDU1LjAwMzVINjUuNTAxN0M2NS41MDE3IDU1LjAwNSA2NS41MDE3IDU1LjAwNzIgNjUuNTAxNyA1NS4wMDk1QzY1LjUwMTcgNTkuMTUwMyA2Mi4xNDUzIDYyLjUwNjcgNTguMDA0NSA2Mi41MDY3QzUzLjg2MzcgNjIuNTA2NyA1MC41MDcyIDU5LjE1MDMgNTAuNTA3MiA1NS4wMDk1QzUwLjUwNzIgNTAuODY4NiA1My44NjM3IDQ3LjUxMjIgNTguMDA0NSA0Ny41MTIyQzYwLjM3OTMgNDcuNTEyMiA2Mi40OTYyIDQ4LjYxNjggNjMuODcgNTAuMzM5Mkw2My44ODIgNTAuMzU0Mkw1Ni44ODA0IDU3LjMxODNaXCJcclxuICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aDIgY2xhc3M9XCJmcy0xNiBmdy1tZWRpdW0gZmMtYmxhY2sgbWItNCB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgIHt7aTE4bi50cmFuc2xhdGUoJ3N1Ym1pdHRlZFN1Y2Nlc3NmdWxseScpfX1cclxuICAgICAgPC9oMj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc3VibWl0dGVkXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCIgKm5nSWY9XCJmZWVkQmFja1NlcnZpY2UuZmVlZGJhY2tGb3JtIFwiPlxyXG4gICAgICAgIDxhcHAtc2VhcmNoLWVtcGxveWVlICNlbXBsb3llZSBsYWJlbD1cInt7aTE4bi50cmFuc2xhdGUoJ3JlcXVlc3RUbycpfX1cIiBbZmllbGRdPVwic2VhcmNoRW1wXCJcclxuICAgICAgICAgIFtsYWJlbFRleHRSZWFkTW9kZV09XCJpMThuLnRyYW5zbGF0ZSgncmVxdWVzdFRvJylcIiBbbGFiZWxUZXh0V3JpdGVNb2RlXT1cImkxOG4udHJhbnNsYXRlKCdyZXF1ZXN0VG8nKVwiXHJcbiAgICAgICAgICBbbmFtZV09XCInc2VhcmNoRW1wJ1wiIChlbWl0ZWRWYWx1ZSk9XCJoYW5kbGVVc2VyU2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgIDwvYXBwLXNlYXJjaC1lbXBsb3llZT5cclxuICAgICAgICA8YXBwLXRleHRhcmVhICNyZXF1ZXN0IFtmaWVsZF09XCJlbXBsb3llZUlucHV0XCIgbmFtZT1cImVtcGxveWVlSW5wdXRcIiBsYWJlbD1cInt7aTE4bi50cmFuc2xhdGUoJ2ZlZWRiYWNrJyl9fVwiXHJcbiAgICAgICAgICBbcmVxdWlyZWRdPVwidHJ1ZVwiIFttaW5MZW5ndGhdPScxJyAoZW1pdGVkVmFsdWUpPVwiaGFuZGxlRmVlZGJhY2tRdWVzdGlvbigkZXZlbnQpXCIgW21heExlbmd0aF09JzUwMCdcclxuICAgICAgICAgIFtlcnJvck1lc3NhZ2VdPVwiaTE4bi50cmFuc2xhdGUoJ2xlbmdodE1pbjFNYXg1MDAnKVwiPlxyXG4gICAgICAgIDwvYXBwLXRleHRhcmVhPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLXNlY3Rpb25cIiAqbmdJZj1cIiFmZWVkQmFja1NlcnZpY2UuZmVlZGJhY2tGb3JtXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZlZWRCYWNrU2VydmljZS5yZXNwb25kZXJGb3JtXCI+XHJcbiAgICAgICAgICA8YXBwLWluZm8taXRlbSBjbGFzcz1cImluZm8taXRlbSB3LTEwMFwiIGxhYmVsPVwie3tpMThuLnRyYW5zbGF0ZSgncmVxdWVzdEZyb20nKX19XCJcclxuICAgICAgICAgICAgdmFsdWU9XCJ7e2ZlZWRCYWNrU2VydmljZT8uZmVlZGJhY2tSZXNwb25zZT8ucmVxdWVzdEZyb219fVwiPjwvYXBwLWluZm8taXRlbT5cclxuICAgICAgICAgIDxhcHAtaW5mby1pdGVtIGNsYXNzPVwiaW5mby1pdGVtIHctMTAwXCIgbGFiZWw9XCJ7e2kxOG4udHJhbnNsYXRlKCdyZXF1ZXN0VG8nKX19XCJcclxuICAgICAgICAgICAgdmFsdWU9XCJ7e2ZlZWRCYWNrU2VydmljZT8uZmVlZGJhY2tSZXNwb25zZT8ucmVxdWVzdFRvfX1cIj48L2FwcC1pbmZvLWl0ZW0+XHJcbiAgICAgICAgICA8YXBwLWluZm8taXRlbSBjbGFzcz1cImluZm8taXRlbSB3LTEwMFwiIGxhYmVsPVwie3tpMThuLnRyYW5zbGF0ZSgnZmVlZGJhY2tRdWVzdGlvbicpfX1cIlxyXG4gICAgICAgICAgICB2YWx1ZT1cInt7ZmVlZEJhY2tTZXJ2aWNlPy5mZWVkYmFja1Jlc3BvbnNlPy5yZXF1ZXN0RmVlZGJhY2t9fVwiPjwvYXBwLWluZm8taXRlbT5cclxuICAgICAgICAgIDxhcHAtaW5mby1pdGVtIGNsYXNzPVwiaW5mby1pdGVtIHctMTAwXCIgbGFiZWw9XCJ7e2kxOG4udHJhbnNsYXRlKCdmZWVkYmFjaycpfX1cIlxyXG4gICAgICAgICAgICB2YWx1ZT1cInt7ZmVlZEJhY2tTZXJ2aWNlPy5mZWVkYmFja1Jlc3BvbnNlPy5yZXNwb25zZUZlZWRiYWNrfX1cIj48L2FwcC1pbmZvLWl0ZW0+XHJcbiAgICAgICAgICA8YXBwLXRleHRhcmVhICNyZXF1ZXN0IGNsYXNzPVwiZnVsbCBteC0zIG10LTMgc2VjdGlvbi1pdGVtXCIgW2ZpZWxkXT1cImVtcGxveWVlSW5wdXRcIiBuYW1lPVwiZW1wbG95ZWVJbnB1dFwiXHJcbiAgICAgICAgICAgIGxhYmVsPVwie3tpMThuLnRyYW5zbGF0ZSgnZmVlZGJhY2snKX19XCIgW3JlcXVpcmVkXT1cInRydWVcIiBbbWluTGVuZ3RoXT0nMSdcclxuICAgICAgICAgICAgKGVtaXRlZFZhbHVlKT1cImhhbmRsZUZlZWRiYWNrUmVzcG9uc2UoJGV2ZW50KVwiIFttYXhMZW5ndGhdPSc1MDAnXHJcbiAgICAgICAgICAgIFtlcnJvck1lc3NhZ2VdPVwiaTE4bi50cmFuc2xhdGUoJ2xlbmdodE1pbjFNYXg1MDAnKVwiPlxyXG4gICAgICAgICAgPC9hcHAtdGV4dGFyZWE+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmZWVkQmFja1NlcnZpY2UucGVuZGluZ0Zvcm1cIiBpZD1cInJlc3BvbmNlX2Zvcm1cIj5cclxuICAgICAgICAgIDxhcHAtaW5mby1pdGVtIGNsYXNzPVwiaW5mby1pdGVtIHctMTAwXCIgbGFiZWw9XCJ7e2kxOG4udHJhbnNsYXRlKCdyZXF1ZXN0RnJvbScpfX1cIlxyXG4gICAgICAgICAgICB2YWx1ZT1cInt7ZmVlZEJhY2tTZXJ2aWNlPy5mZWVkYmFja1Jlc3BvbnNlPy5yZXF1ZXN0RnJvbX19XCI+PC9hcHAtaW5mby1pdGVtPlxyXG4gICAgICAgICAgPGFwcC1pbmZvLWl0ZW0gY2xhc3M9XCJpbmZvLWl0ZW0gdy0xMDBcIiBsYWJlbD1cInt7aTE4bi50cmFuc2xhdGUoJ3JlcXVlc3RUbycpfX1cIlxyXG4gICAgICAgICAgICB2YWx1ZT1cInt7ZmVlZEJhY2tTZXJ2aWNlPy5mZWVkYmFja1Jlc3BvbnNlPy5yZXF1ZXN0VG99fVwiPjwvYXBwLWluZm8taXRlbT5cclxuICAgICAgICAgIDxhcHAtaW5mby1pdGVtIGNsYXNzPVwiaW5mby1pdGVtIHctMTAwXCIgbGFiZWw9XCJ7e2kxOG4udHJhbnNsYXRlKCdmZWVkYmFja1F1ZXN0aW9uJyl9fVwiXHJcbiAgICAgICAgICAgIHZhbHVlPVwie3tmZWVkQmFja1NlcnZpY2U/LmZlZWRiYWNrUmVzcG9uc2U/LnJlcXVlc3RGZWVkYmFja319XCI+PC9hcHAtaW5mby1pdGVtPlxyXG4gICAgICAgICAgPGFwcC1pbmZvLWl0ZW0gY2xhc3M9XCJpbmZvLWl0ZW0gdy0xMDBcIiBsYWJlbD1cInt7aTE4bi50cmFuc2xhdGUoJ2ZlZWRiYWNrJyl9fVwiXHJcbiAgICAgICAgICAgIHZhbHVlPVwie3tmZWVkQmFja1NlcnZpY2U/LmZlZWRiYWNrUmVzcG9uc2U/LnJlc3BvbnNlRmVlZGJhY2t9fVwiPjwvYXBwLWluZm8taXRlbT5cclxuXHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMCBnYXAtM1wiICpuZ0lmPVwiIXN1Ym1pdHRlZFwiPlxyXG4gICAgICAgIDxkcy1idXR0b24gc2hhcGU9XCJvdXRsaW5lXCIgbWF0RGlhbG9nQ2xvc2U+XHJcbiAgICAgICAgICB7e2kxOG4udHJhbnNsYXRlKCdDYW5jZWwnKX19XHJcbiAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgPGRzLWJ1dHRvbiAqbmdJZj1cImZlZWRCYWNrU2VydmljZS5mZWVkYmFja0Zvcm1cIiAoY2xpY2spPVwiYWRkRmVlZGJhY2soKVwiXHJcbiAgICAgICAgICBkaXNhYmxlZD1cInt7IShpc0ZlZWRiYWNrVmFsaWRhdGVkKX19XCI+XHJcbiAgICAgICAgICB7e2kxOG4udHJhbnNsYXRlKCdzdWJtaXQnKX19XHJcbiAgICAgICAgPC9kcy1idXR0b24+XHJcbiAgICAgICAgPGRzLWJ1dHRvbiAqbmdJZj1cIiFmZWVkQmFja1NlcnZpY2UuZmVlZGJhY2tGb3JtICYmIGZlZWRCYWNrU2VydmljZS5yZXNwb25kZXJGb3JtXCJcclxuICAgICAgICAgIGRpc2FibGVkPVwie3shKGlzUmVzcG9uc2VWYWxpZGF0ZWQpfX1cIiAoY2xpY2spPVwiYWRkUmVzcG9uc2UoKVwiPlxyXG4gICAgICAgICAge3tpMThuLnRyYW5zbGF0ZSgnc3VibWl0Jyl9fVxyXG4gICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8L21hdC1kaWFsb2ctY29udGVudD5cclxuXHJcbjwvZGl2PlxyXG4iXX0=
@@ -113,12 +113,10 @@ export class PreviousRequestsComponent {
113
113
  this.previousRequests = [];
114
114
  this.coreService.myRequests(this.searchData).subscribe({
115
115
  next: (response) => {
116
- // setTimeout(() => {
117
116
  this.coreService.historyData = response.history;
118
117
  this.previousRequests = this.coreService.historyData;
119
118
  this.coreService.historyDataLoaded = true;
120
119
  this.filterStatus();
121
- // }, 500)
122
120
  },
123
121
  error: (err) => {
124
122
  this.loading = false;
@@ -150,7 +148,7 @@ export class PreviousRequestsComponent {
150
148
  }
151
149
  }
152
150
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PreviousRequestsComponent, deps: [{ token: i1.MatDialog }, { token: i2.SidenavService }, { token: i2.CoreService }, { token: i3.ToastrService }, { token: i2.CoreI18nService }, { token: i4.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
153
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: PreviousRequestsComponent, isStandalone: true, selector: "app-history", ngImport: i0, template: "<section class=\"main-sidenav history-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('PreviousRequests') }}</h3>\r\n <ds-button class=\"close-sidenav\" (click)=\"sidenavService.closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n\r\n <div\r\n class=\"sidenav-body bc-light-gray\"\r\n >\r\n <section class=\"p-3\">\r\n <header class=\"d-flex align-items-center justify-content-between gap-2 mb-3\">\r\n <h2 class=\"fs-20 fw-medium fc-black mb-0 d-flex align-items-center flex-grow-1 gap-3\">\r\n {{ i18n.translate('AllRequests') }}\r\n <span class=\"title-count fs-14 fw-normal\">{{ previousRequests?.length ? previousRequests?.length : '0' }}</span>\r\n </h2>\r\n <ds-button icon size=\"small\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <ds-icon icon=\"filter\" class=\"fc-coral fs-20\" slot=\"prefix\"></ds-icon>\r\n </ds-button>\r\n <mat-button-toggle-group\r\n class=\"icon-toggle flex-nowrap\"\r\n #pageView=\"matButtonToggleGroup\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n value=\"list\"\r\n >\r\n <mat-button-toggle value=\"card\">\r\n <span class=\"sfi sfi-card fs-20\"></span>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"list\">\r\n <span class=\"sfi sfi-list-dots fs-20\"></span>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </header>\r\n\r\n @if (previousRequests?.length) {\r\n <div class=\"history-cards-container\" *ngIf=\"pageView.value === 'card'\">\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of previousRequests\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3\r\n class=\"fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"\r\n (click)=\"viewForm(row?.form?.['formId'])\">{{ row?.form?.['formId'] }}</h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2\">{{ i18n.translate('formTableCreationDate') }}</span>\r\n <span class=\"fs-12 fw-medium fc-black\">{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-responsive\" *ngIf=\"pageView.value === 'list'\">\r\n <table *ngIf=\"previousRequests?.length\">\r\n <thead>\r\n <tr>\r\n <th>{{ i18n.translate('formTableFormId') }}</th>\r\n <th>{{ i18n.translate('formTableCreationDate') }}</th>\r\n <th>{{ i18n.translate('Status') }}</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody *ngFor=\"let row of previousRequests\">\r\n <tr>\r\n <td>\r\n <span class=\"fw-medium cursor-pointer underline fw-bold \" (click)=\"viewForm(row?.form?.['formId'])\">\r\n {{ row?.form?.['formId'] }}\r\n </span>\r\n </td>\r\n <td>{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</td>\r\n <td>\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <ds-loading-table *ngIf=\"loading\" [cols]=\"4\" [rows]=\"4\"></ds-loading-table>\r\n </div>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"emptyMessage\"></ng-container>\r\n }\r\n </section>\r\n </div>\r\n</section>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"isOpen = false\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen\"\r\n>\r\n <form [formGroup]=\"filterFormGroup\">\r\n <div class=\"filter-container\">\r\n <div class=\"popup-header border-bottom pb-2\">\r\n <h3 class=\"fs-16 fc-black fw-medium\">{{ i18n.translate('filters') }}</h3>\r\n </div>\r\n <div class=\"d-flex flex-column gap-4 gap-md-3 filter-section bc-white mt-0 pt-3\">\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"status\"\r\n label=\"{{ i18n.translate('status') }}\"\r\n [options]=\"statuses\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"year\"\r\n label=\"{{ i18n.translate('year') }}\"\r\n [options]=\"yearsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"month\"\r\n label=\"{{ i18n.translate('month') }}\"\r\n [options]=\"monthsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <div class=\"d-flex align-items-center gap-3 mt-4\">\r\n <ds-button shape=\"outline\" size=\"small\" (click)=\"clearFilters()\">\r\n <span class=\"fs-12\"> {{ i18n.translate('clear') }} </span>\r\n </ds-button>\r\n <ds-button class=\"w-100\" size=\"small\" (click)=\"applyFilters()\">\r\n <span class=\"fs-12\">{{ i18n.translate('applyFilters') }} </span>\r\n </ds-button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</ng-template>\r\n\r\n\r\n<ng-template #emptyMessage>\r\n <ds-message label=\"{{i18n.translate('NoData')}}\"></ds-message>\r\n</ng-template>\r\n", styles: [".history-cards-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;padding:1rem 0}.filter-section ::ng-deep .mat-form-field.mat-primary{margin-bottom:0}.filter-section ::ng-deep .select-form-field{--placeholder-fc: var(--dark-gray)}.filter-section ::ng-deep .select-datepicker{--input-width: 200px}table thead{display:none}:host .mat-button-toggle-group{--toggle-bg: var(--white);box-shadow:var(--box-shadow)}:host table{--th-bg: var(--gray);--td-bg: var(--white);--tr-even-bc: var(--white);--tr-odd-bc: var(--white)}ds-button[square]::part(base){--btn-padding: 0}@media (min-width: 768px){.history-sidenav{--sidenav-width: 800px}}:host ::ng-deep .select-filter{--input-height: 35px;--input-width: 120px;--input-border: 1px solid var(--white) !important;--input-border-focuse: 1px solid var(--white);--input-border-active: 1px solid var(--white);box-shadow:var(--box-shadow);--input-bg: var(--white) !important}:host ::ng-deep .decisions-container{max-height:340px;overflow:auto;scroll-behavior:smooth;transition:scroll-behavior .5s ease-in-out;height:340px}@media (max-width: 768px){:host ::ng-deep .decisions-container{max-height:320px;height:320px}}[dir=rtl] :host ::ng-deep .decisions-container--btn.reRequest{transform:scaleX(-1)}@media (min-width: 1200px){:host ::ng-deep .decisions-container--name,:host ::ng-deep .decisions-container--date{max-width:120px}}@media (min-width: 1200px){[dir=rtl] :host ::ng-deep .decisions-container--name{max-width:initial}}:host ::ng-deep .decisions-container--item{display:flex;align-items:center;gap:1rem;min-height:105px;overflow:hidden;position:relative;cursor:pointer}@media (min-width: 991px){:host ::ng-deep .decisions-container--item h4{max-width:calc(100% - 200px);display:inline-block}}:host ::ng-deep .decisions-container--item:not(:last-child){margin-bottom:.75rem}:host ::ng-deep .decisions-container--item ds-status::part(base){--status-width: 60px}:host ::ng-deep .decisions-container--info span{position:relative;display:flex;align-items:center;gap:.5rem}:host ::ng-deep .decisions-container--info span:not(:first-of-type):before{content:\"\";min-width:3px;width:3px;height:3px;border-radius:50%;background-color:var(--black)}@media (min-width: 991px){:host ::ng-deep .decisions-container--status{position:absolute;top:1rem;right:0}}:host ::ng-deep .decisions-title{display:block;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:1}::ng-deep .main-portal mat-form-field.no-padding .mat-form-field-wrapper{padding-bottom:0!important}::ng-deep ds-button[hidden]{display:none!important}ds-button[circle]::part(base){--btn-color: inherit;--btn-border-color: inherit;--btn-bg-color: inherit;--btn-height: 25px;--btn-min-width: 25px}ds-button[circle][color=red]{--btn-bg-color: var(--red)}ds-button[circle][color=red]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=green]{--btn-bg-color: var(--green)}ds-button[circle][color=green]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=yellow]{--btn-bg-color: var(--yellow)}ds-button[circle][color=yellow]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]{--btn-bg-color: var(--coral)}ds-button[circle][color=coral]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]:hover svg path,ds-button[circle][color=coral]:hover svg line{fill:var(--coral)}ds-button[circle][color=orange]{--btn-bg-color: var(--orange)}ds-button[circle][color=orange]:hover{--btn-bg-color: var(--white)}@media (min-width: 991px){.decisions-container--item .decisions-container--status{width:0;transition:var(--default-transition)}}@media (min-width: 991px){.decisions-container--item:hover .decisions-container--status{transition:var(--default-transition);width:auto;height:auto;right:1.5rem}}::ng-deep .mat-tooltip{max-width:187px;background:#1d252d}::ng-deep ds-button.dots::part(base){text-decoration:none;padding:0;min-width:auto}@media (max-width: 300px){::ng-deep ds-button[shape=text]::part(base){padding:0 5px}::ng-deep ds-button.mat-menu-trigger::part(base){padding:0 5px}}.search-form-input{color:var(--black);font-weight:var(--font-medium);padding:0 .75rem;border:none;height:100%}.search-form-input::placeholder{color:var(--dark-gray);font-weight:var(--font-regular)}::ng-deep .select-user-dropdown{min-width:300px}::ng-deep .filter-container{background-color:var(--white);padding:1.5rem;border-radius:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i6.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i6.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "pipe", type: StatusStylePipe, name: "statusClass" }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: CustomSearchableComponent, selector: "app-custom-searchable", inputs: ["options", "disabled", "displayedLabel", "key", "floatLabel", "className"], outputs: ["selectedValue", "isLengthGreaterThan4"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }] });
151
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: PreviousRequestsComponent, isStandalone: true, selector: "app-history", ngImport: i0, template: "<section class=\"main-sidenav history-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('PreviousRequests') }}</h3>\r\n <ds-button class=\"close-sidenav\" (click)=\"sidenavService.closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n\r\n <div class=\"sidenav-body bc-light-gray\">\r\n <section class=\"p-3\">\r\n <header class=\"d-flex align-items-center justify-content-between gap-2 mb-3\">\r\n <h2 class=\"fs-20 fw-medium fc-black mb-0 d-flex align-items-center flex-grow-1 gap-3\">\r\n {{ i18n.translate('AllRequests') }}\r\n <span class=\"title-count fs-14 fw-normal\">{{ previousRequests?.length ? previousRequests?.length : '0' }}</span>\r\n </h2>\r\n <ds-button icon size=\"small\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <ds-icon icon=\"filter\" class=\"fc-coral fs-20\" slot=\"prefix\"></ds-icon>\r\n </ds-button>\r\n <mat-button-toggle-group\r\n class=\"icon-toggle flex-nowrap\"\r\n #pageView=\"matButtonToggleGroup\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n value=\"list\"\r\n >\r\n <mat-button-toggle value=\"card\">\r\n <span class=\"sfi sfi-card fs-20\"></span>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"list\">\r\n <span class=\"sfi sfi-list-dots fs-20\"></span>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </header>\r\n\r\n @if (previousRequests?.length) {\r\n <div class=\"history-cards-container\" *ngIf=\"pageView.value === 'card'\">\r\n @if (loading) {\r\n <ng-container>\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of [0,1,2,3]\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3 class=\"loading-bg fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"></h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2 loading-bg\"></span>\r\n <span class=\"fs-12 fw-medium fc-black loading-bg\"></span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of previousRequests\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3\r\n class=\"fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"\r\n (click)=\"viewForm(row?.form?.['formId'])\">{{ row?.form?.['formId'] }}</h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2\">{{ i18n.translate('formTableCreationDate') }}</span>\r\n <span class=\"fs-12 fw-medium fc-black\">{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n <div class=\"table-responsive\" *ngIf=\"pageView.value === 'list'\">\r\n <table *ngIf=\"previousRequests?.length && !loading\">\r\n <thead>\r\n <tr>\r\n <th>{{ i18n.translate('formTableFormId') }}</th>\r\n <th>{{ i18n.translate('formTableCreationDate') }}</th>\r\n <th>{{ i18n.translate('Status') }}</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody *ngFor=\"let row of previousRequests\">\r\n <tr>\r\n <td>\r\n <span class=\"fw-medium cursor-pointer underline fw-bold \" (click)=\"viewForm(row?.form?.['formId'])\">\r\n {{ row?.form?.['formId'] }}\r\n </span>\r\n </td>\r\n <td>{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</td>\r\n <td>\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <ds-loading-table *ngIf=\"loading\" [cols]=\"4\" [rows]=\"4\"></ds-loading-table>\r\n </div>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"emptyMessage\"></ng-container>\r\n }\r\n </section>\r\n </div>\r\n</section>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"isOpen = false\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen\"\r\n>\r\n <form [formGroup]=\"filterFormGroup\">\r\n <div class=\"filter-container\">\r\n <div class=\"popup-header border-bottom pb-2\">\r\n <h3 class=\"fs-16 fc-black fw-medium\">{{ i18n.translate('filters') }}</h3>\r\n </div>\r\n <div class=\"d-flex flex-column gap-4 gap-md-3 filter-section bc-white mt-0 pt-3\">\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"status\"\r\n label=\"{{ i18n.translate('status') }}\"\r\n [options]=\"statuses\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"year\"\r\n label=\"{{ i18n.translate('year') }}\"\r\n [options]=\"yearsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"month\"\r\n label=\"{{ i18n.translate('month') }}\"\r\n [options]=\"monthsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <div class=\"d-flex align-items-center gap-3 mt-4\">\r\n <ds-button shape=\"outline\" size=\"small\" (click)=\"clearFilters()\">\r\n <span class=\"fs-12\"> {{ i18n.translate('clear') }} </span>\r\n </ds-button>\r\n <ds-button class=\"w-100\" size=\"small\" (click)=\"applyFilters()\">\r\n <span class=\"fs-12\">{{ i18n.translate('applyFilters') }} </span>\r\n </ds-button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</ng-template>\r\n\r\n\r\n<ng-template #emptyMessage>\r\n <ds-message label=\"{{i18n.translate('NoData')}}\"></ds-message>\r\n</ng-template>\r\n", styles: [".history-cards-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;padding:1rem 0}.filter-section ::ng-deep .mat-form-field.mat-primary{margin-bottom:0}.filter-section ::ng-deep .select-form-field{--placeholder-fc: var(--dark-gray)}.filter-section ::ng-deep .select-datepicker{--input-width: 200px}table thead{display:none}:host .mat-button-toggle-group{--toggle-bg: var(--white);box-shadow:var(--box-shadow)}:host table{--th-bg: var(--gray);--td-bg: var(--white);--tr-even-bc: var(--white);--tr-odd-bc: var(--white)}ds-button[square]::part(base){--btn-padding: 0}@media (min-width: 768px){.history-sidenav{--sidenav-width: 800px}}:host ::ng-deep .select-filter{--input-height: 35px;--input-width: 120px;--input-border: 1px solid var(--white) !important;--input-border-focuse: 1px solid var(--white);--input-border-active: 1px solid var(--white);box-shadow:var(--box-shadow);--input-bg: var(--white) !important}:host ::ng-deep .decisions-container{max-height:340px;overflow:auto;scroll-behavior:smooth;transition:scroll-behavior .5s ease-in-out;height:340px}@media (max-width: 768px){:host ::ng-deep .decisions-container{max-height:320px;height:320px}}[dir=rtl] :host ::ng-deep .decisions-container--btn.reRequest{transform:scaleX(-1)}@media (min-width: 1200px){:host ::ng-deep .decisions-container--name,:host ::ng-deep .decisions-container--date{max-width:120px}}@media (min-width: 1200px){[dir=rtl] :host ::ng-deep .decisions-container--name{max-width:initial}}:host ::ng-deep .decisions-container--item{display:flex;align-items:center;gap:1rem;min-height:105px;overflow:hidden;position:relative;cursor:pointer}@media (min-width: 991px){:host ::ng-deep .decisions-container--item h4{max-width:calc(100% - 200px);display:inline-block}}:host ::ng-deep .decisions-container--item:not(:last-child){margin-bottom:.75rem}:host ::ng-deep .decisions-container--item ds-status::part(base){--status-width: 60px}:host ::ng-deep .decisions-container--info span{position:relative;display:flex;align-items:center;gap:.5rem}:host ::ng-deep .decisions-container--info span:not(:first-of-type):before{content:\"\";min-width:3px;width:3px;height:3px;border-radius:50%;background-color:var(--black)}@media (min-width: 991px){:host ::ng-deep .decisions-container--status{position:absolute;top:1rem;right:0}}:host ::ng-deep .decisions-title{display:block;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:1}::ng-deep .main-portal mat-form-field.no-padding .mat-form-field-wrapper{padding-bottom:0!important}::ng-deep ds-button[hidden]{display:none!important}ds-button[circle]::part(base){--btn-color: inherit;--btn-border-color: inherit;--btn-bg-color: inherit;--btn-height: 25px;--btn-min-width: 25px}ds-button[circle][color=red]{--btn-bg-color: var(--red)}ds-button[circle][color=red]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=green]{--btn-bg-color: var(--green)}ds-button[circle][color=green]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=yellow]{--btn-bg-color: var(--yellow)}ds-button[circle][color=yellow]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]{--btn-bg-color: var(--coral)}ds-button[circle][color=coral]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]:hover svg path,ds-button[circle][color=coral]:hover svg line{fill:var(--coral)}ds-button[circle][color=orange]{--btn-bg-color: var(--orange)}ds-button[circle][color=orange]:hover{--btn-bg-color: var(--white)}@media (min-width: 991px){.decisions-container--item .decisions-container--status{width:0;transition:var(--default-transition)}}@media (min-width: 991px){.decisions-container--item:hover .decisions-container--status{transition:var(--default-transition);width:auto;height:auto;right:1.5rem}}::ng-deep .mat-tooltip{max-width:187px;background:#1d252d}::ng-deep ds-button.dots::part(base){text-decoration:none;padding:0;min-width:auto}@media (max-width: 300px){::ng-deep ds-button[shape=text]::part(base){padding:0 5px}::ng-deep ds-button.mat-menu-trigger::part(base){padding:0 5px}}.search-form-input{color:var(--black);font-weight:var(--font-medium);padding:0 .75rem;border:none;height:100%}.search-form-input::placeholder{color:var(--dark-gray);font-weight:var(--font-regular)}::ng-deep .select-user-dropdown{min-width:300px}::ng-deep .filter-container{background-color:var(--white);padding:1.5rem;border-radius:4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: MatDialogModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatButtonToggleModule }, { kind: "directive", type: i6.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i6.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "pipe", type: StatusStylePipe, name: "statusClass" }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: CustomSearchableComponent, selector: "app-custom-searchable", inputs: ["options", "disabled", "displayedLabel", "key", "floatLabel", "className"], outputs: ["selectedValue", "isLengthGreaterThan4"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }] });
154
152
  }
155
153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: PreviousRequestsComponent, decorators: [{
156
154
  type: Component,
@@ -166,6 +164,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
166
164
  CdkOverlayOrigin,
167
165
  CustomSearchableComponent,
168
166
  CdkConnectedOverlay
169
- ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<section class=\"main-sidenav history-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('PreviousRequests') }}</h3>\r\n <ds-button class=\"close-sidenav\" (click)=\"sidenavService.closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n\r\n <div\r\n class=\"sidenav-body bc-light-gray\"\r\n >\r\n <section class=\"p-3\">\r\n <header class=\"d-flex align-items-center justify-content-between gap-2 mb-3\">\r\n <h2 class=\"fs-20 fw-medium fc-black mb-0 d-flex align-items-center flex-grow-1 gap-3\">\r\n {{ i18n.translate('AllRequests') }}\r\n <span class=\"title-count fs-14 fw-normal\">{{ previousRequests?.length ? previousRequests?.length : '0' }}</span>\r\n </h2>\r\n <ds-button icon size=\"small\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <ds-icon icon=\"filter\" class=\"fc-coral fs-20\" slot=\"prefix\"></ds-icon>\r\n </ds-button>\r\n <mat-button-toggle-group\r\n class=\"icon-toggle flex-nowrap\"\r\n #pageView=\"matButtonToggleGroup\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n value=\"list\"\r\n >\r\n <mat-button-toggle value=\"card\">\r\n <span class=\"sfi sfi-card fs-20\"></span>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"list\">\r\n <span class=\"sfi sfi-list-dots fs-20\"></span>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </header>\r\n\r\n @if (previousRequests?.length) {\r\n <div class=\"history-cards-container\" *ngIf=\"pageView.value === 'card'\">\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of previousRequests\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3\r\n class=\"fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"\r\n (click)=\"viewForm(row?.form?.['formId'])\">{{ row?.form?.['formId'] }}</h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2\">{{ i18n.translate('formTableCreationDate') }}</span>\r\n <span class=\"fs-12 fw-medium fc-black\">{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-responsive\" *ngIf=\"pageView.value === 'list'\">\r\n <table *ngIf=\"previousRequests?.length\">\r\n <thead>\r\n <tr>\r\n <th>{{ i18n.translate('formTableFormId') }}</th>\r\n <th>{{ i18n.translate('formTableCreationDate') }}</th>\r\n <th>{{ i18n.translate('Status') }}</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody *ngFor=\"let row of previousRequests\">\r\n <tr>\r\n <td>\r\n <span class=\"fw-medium cursor-pointer underline fw-bold \" (click)=\"viewForm(row?.form?.['formId'])\">\r\n {{ row?.form?.['formId'] }}\r\n </span>\r\n </td>\r\n <td>{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</td>\r\n <td>\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <ds-loading-table *ngIf=\"loading\" [cols]=\"4\" [rows]=\"4\"></ds-loading-table>\r\n </div>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"emptyMessage\"></ng-container>\r\n }\r\n </section>\r\n </div>\r\n</section>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"isOpen = false\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen\"\r\n>\r\n <form [formGroup]=\"filterFormGroup\">\r\n <div class=\"filter-container\">\r\n <div class=\"popup-header border-bottom pb-2\">\r\n <h3 class=\"fs-16 fc-black fw-medium\">{{ i18n.translate('filters') }}</h3>\r\n </div>\r\n <div class=\"d-flex flex-column gap-4 gap-md-3 filter-section bc-white mt-0 pt-3\">\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"status\"\r\n label=\"{{ i18n.translate('status') }}\"\r\n [options]=\"statuses\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"year\"\r\n label=\"{{ i18n.translate('year') }}\"\r\n [options]=\"yearsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"month\"\r\n label=\"{{ i18n.translate('month') }}\"\r\n [options]=\"monthsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <div class=\"d-flex align-items-center gap-3 mt-4\">\r\n <ds-button shape=\"outline\" size=\"small\" (click)=\"clearFilters()\">\r\n <span class=\"fs-12\"> {{ i18n.translate('clear') }} </span>\r\n </ds-button>\r\n <ds-button class=\"w-100\" size=\"small\" (click)=\"applyFilters()\">\r\n <span class=\"fs-12\">{{ i18n.translate('applyFilters') }} </span>\r\n </ds-button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</ng-template>\r\n\r\n\r\n<ng-template #emptyMessage>\r\n <ds-message label=\"{{i18n.translate('NoData')}}\"></ds-message>\r\n</ng-template>\r\n", styles: [".history-cards-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;padding:1rem 0}.filter-section ::ng-deep .mat-form-field.mat-primary{margin-bottom:0}.filter-section ::ng-deep .select-form-field{--placeholder-fc: var(--dark-gray)}.filter-section ::ng-deep .select-datepicker{--input-width: 200px}table thead{display:none}:host .mat-button-toggle-group{--toggle-bg: var(--white);box-shadow:var(--box-shadow)}:host table{--th-bg: var(--gray);--td-bg: var(--white);--tr-even-bc: var(--white);--tr-odd-bc: var(--white)}ds-button[square]::part(base){--btn-padding: 0}@media (min-width: 768px){.history-sidenav{--sidenav-width: 800px}}:host ::ng-deep .select-filter{--input-height: 35px;--input-width: 120px;--input-border: 1px solid var(--white) !important;--input-border-focuse: 1px solid var(--white);--input-border-active: 1px solid var(--white);box-shadow:var(--box-shadow);--input-bg: var(--white) !important}:host ::ng-deep .decisions-container{max-height:340px;overflow:auto;scroll-behavior:smooth;transition:scroll-behavior .5s ease-in-out;height:340px}@media (max-width: 768px){:host ::ng-deep .decisions-container{max-height:320px;height:320px}}[dir=rtl] :host ::ng-deep .decisions-container--btn.reRequest{transform:scaleX(-1)}@media (min-width: 1200px){:host ::ng-deep .decisions-container--name,:host ::ng-deep .decisions-container--date{max-width:120px}}@media (min-width: 1200px){[dir=rtl] :host ::ng-deep .decisions-container--name{max-width:initial}}:host ::ng-deep .decisions-container--item{display:flex;align-items:center;gap:1rem;min-height:105px;overflow:hidden;position:relative;cursor:pointer}@media (min-width: 991px){:host ::ng-deep .decisions-container--item h4{max-width:calc(100% - 200px);display:inline-block}}:host ::ng-deep .decisions-container--item:not(:last-child){margin-bottom:.75rem}:host ::ng-deep .decisions-container--item ds-status::part(base){--status-width: 60px}:host ::ng-deep .decisions-container--info span{position:relative;display:flex;align-items:center;gap:.5rem}:host ::ng-deep .decisions-container--info span:not(:first-of-type):before{content:\"\";min-width:3px;width:3px;height:3px;border-radius:50%;background-color:var(--black)}@media (min-width: 991px){:host ::ng-deep .decisions-container--status{position:absolute;top:1rem;right:0}}:host ::ng-deep .decisions-title{display:block;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:1}::ng-deep .main-portal mat-form-field.no-padding .mat-form-field-wrapper{padding-bottom:0!important}::ng-deep ds-button[hidden]{display:none!important}ds-button[circle]::part(base){--btn-color: inherit;--btn-border-color: inherit;--btn-bg-color: inherit;--btn-height: 25px;--btn-min-width: 25px}ds-button[circle][color=red]{--btn-bg-color: var(--red)}ds-button[circle][color=red]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=green]{--btn-bg-color: var(--green)}ds-button[circle][color=green]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=yellow]{--btn-bg-color: var(--yellow)}ds-button[circle][color=yellow]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]{--btn-bg-color: var(--coral)}ds-button[circle][color=coral]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]:hover svg path,ds-button[circle][color=coral]:hover svg line{fill:var(--coral)}ds-button[circle][color=orange]{--btn-bg-color: var(--orange)}ds-button[circle][color=orange]:hover{--btn-bg-color: var(--white)}@media (min-width: 991px){.decisions-container--item .decisions-container--status{width:0;transition:var(--default-transition)}}@media (min-width: 991px){.decisions-container--item:hover .decisions-container--status{transition:var(--default-transition);width:auto;height:auto;right:1.5rem}}::ng-deep .mat-tooltip{max-width:187px;background:#1d252d}::ng-deep ds-button.dots::part(base){text-decoration:none;padding:0;min-width:auto}@media (max-width: 300px){::ng-deep ds-button[shape=text]::part(base){padding:0 5px}::ng-deep ds-button.mat-menu-trigger::part(base){padding:0 5px}}.search-form-input{color:var(--black);font-weight:var(--font-medium);padding:0 .75rem;border:none;height:100%}.search-form-input::placeholder{color:var(--dark-gray);font-weight:var(--font-regular)}::ng-deep .select-user-dropdown{min-width:300px}::ng-deep .filter-container{background-color:var(--white);padding:1.5rem;border-radius:4px}\n"] }]
167
+ ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<section class=\"main-sidenav history-sidenav\">\r\n <div class=\"sidenav-title\">\r\n <h3>{{ i18n.translate('PreviousRequests') }}</h3>\r\n <ds-button class=\"close-sidenav\" (click)=\"sidenavService.closeSidenav()\" icon>\r\n <ds-icon icon=\"close\" class=\"fs-20 fc-black\"></ds-icon>\r\n </ds-button>\r\n </div>\r\n\r\n <div class=\"sidenav-body bc-light-gray\">\r\n <section class=\"p-3\">\r\n <header class=\"d-flex align-items-center justify-content-between gap-2 mb-3\">\r\n <h2 class=\"fs-20 fw-medium fc-black mb-0 d-flex align-items-center flex-grow-1 gap-3\">\r\n {{ i18n.translate('AllRequests') }}\r\n <span class=\"title-count fs-14 fw-normal\">{{ previousRequests?.length ? previousRequests?.length : '0' }}</span>\r\n </h2>\r\n <ds-button icon size=\"small\" (click)=\"isOpen = !isOpen\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <ds-icon icon=\"filter\" class=\"fc-coral fs-20\" slot=\"prefix\"></ds-icon>\r\n </ds-button>\r\n <mat-button-toggle-group\r\n class=\"icon-toggle flex-nowrap\"\r\n #pageView=\"matButtonToggleGroup\"\r\n (click)=\"$event.stopImmediatePropagation()\"\r\n value=\"list\"\r\n >\r\n <mat-button-toggle value=\"card\">\r\n <span class=\"sfi sfi-card fs-20\"></span>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"list\">\r\n <span class=\"sfi sfi-list-dots fs-20\"></span>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </header>\r\n\r\n @if (previousRequests?.length) {\r\n <div class=\"history-cards-container\" *ngIf=\"pageView.value === 'card'\">\r\n @if (loading) {\r\n <ng-container>\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of [0,1,2,3]\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3 class=\"loading-bg fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"></h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2 loading-bg\"></span>\r\n <span class=\"fs-12 fw-medium fc-black loading-bg\"></span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n } @else {\r\n <div class=\"p-4 line-height-1 bc-white radius-6 box-shadow\" *ngFor=\"let row of previousRequests\">\r\n <div class=\"d-flex align-items-center gap-2 mb-3\">\r\n <h3\r\n class=\"fs-16 fw-medium flex-grow-1 mb-0 cursor-pointer underline fw-bold\"\r\n (click)=\"viewForm(row?.form?.['formId'])\">{{ row?.form?.['formId'] }}</h3>\r\n </div>\r\n <div class=\"row g-3\">\r\n <div class=\"d-flex flex-column col-6\">\r\n <span class=\"fs-11 fc-dark-gray mb-2\">{{ i18n.translate('formTableCreationDate') }}</span>\r\n <span class=\"fs-12 fw-medium fc-black\">{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</span>\r\n </div>\r\n <div class=\"d-flex flex-column col-6 justify-content-end align-items-end\">\r\n\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n\r\n </div>\r\n <div class=\"table-responsive\" *ngIf=\"pageView.value === 'list'\">\r\n <table *ngIf=\"previousRequests?.length && !loading\">\r\n <thead>\r\n <tr>\r\n <th>{{ i18n.translate('formTableFormId') }}</th>\r\n <th>{{ i18n.translate('formTableCreationDate') }}</th>\r\n <th>{{ i18n.translate('Status') }}</th>\r\n </tr>\r\n </thead>\r\n\r\n <tbody *ngFor=\"let row of previousRequests\">\r\n <tr>\r\n <td>\r\n <span class=\"fw-medium cursor-pointer underline fw-bold \" (click)=\"viewForm(row?.form?.['formId'])\">\r\n {{ row?.form?.['formId'] }}\r\n </span>\r\n </td>\r\n <td>{{ row?.form?.['creationDate'] | date: 'dd/MM/yyyy hh:mm a' }}</td>\r\n <td>\r\n <ds-status [attr.status]=\"row?.form?.formStatus?.key | statusClass\">\r\n {{ row?.form?.formStatus?.value }}\r\n </ds-status>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <ds-loading-table *ngIf=\"loading\" [cols]=\"4\" [rows]=\"4\"></ds-loading-table>\r\n </div>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"emptyMessage\"></ng-container>\r\n }\r\n </section>\r\n </div>\r\n</section>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n [cdkConnectedOverlayHasBackdrop]=\"true\"\r\n (backdropClick)=\"isOpen = false\"\r\n [cdkConnectedOverlayGrowAfterOpen]=\"true\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"isOpen\"\r\n>\r\n <form [formGroup]=\"filterFormGroup\">\r\n <div class=\"filter-container\">\r\n <div class=\"popup-header border-bottom pb-2\">\r\n <h3 class=\"fs-16 fc-black fw-medium\">{{ i18n.translate('filters') }}</h3>\r\n </div>\r\n <div class=\"d-flex flex-column gap-4 gap-md-3 filter-section bc-white mt-0 pt-3\">\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"status\"\r\n label=\"{{ i18n.translate('status') }}\"\r\n [options]=\"statuses\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"year\"\r\n label=\"{{ i18n.translate('year') }}\"\r\n [options]=\"yearsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <app-custom-searchable\r\n class=\"section-item\"\r\n formControlName=\"month\"\r\n label=\"{{ i18n.translate('month') }}\"\r\n [options]=\"monthsOptions\"\r\n [displayedLabel]=\"'value'\"\r\n [key]=\"'key'\">\r\n </app-custom-searchable>\r\n\r\n <div class=\"d-flex align-items-center gap-3 mt-4\">\r\n <ds-button shape=\"outline\" size=\"small\" (click)=\"clearFilters()\">\r\n <span class=\"fs-12\"> {{ i18n.translate('clear') }} </span>\r\n </ds-button>\r\n <ds-button class=\"w-100\" size=\"small\" (click)=\"applyFilters()\">\r\n <span class=\"fs-12\">{{ i18n.translate('applyFilters') }} </span>\r\n </ds-button>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n</ng-template>\r\n\r\n\r\n<ng-template #emptyMessage>\r\n <ds-message label=\"{{i18n.translate('NoData')}}\"></ds-message>\r\n</ng-template>\r\n", styles: [".history-cards-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;padding:1rem 0}.filter-section ::ng-deep .mat-form-field.mat-primary{margin-bottom:0}.filter-section ::ng-deep .select-form-field{--placeholder-fc: var(--dark-gray)}.filter-section ::ng-deep .select-datepicker{--input-width: 200px}table thead{display:none}:host .mat-button-toggle-group{--toggle-bg: var(--white);box-shadow:var(--box-shadow)}:host table{--th-bg: var(--gray);--td-bg: var(--white);--tr-even-bc: var(--white);--tr-odd-bc: var(--white)}ds-button[square]::part(base){--btn-padding: 0}@media (min-width: 768px){.history-sidenav{--sidenav-width: 800px}}:host ::ng-deep .select-filter{--input-height: 35px;--input-width: 120px;--input-border: 1px solid var(--white) !important;--input-border-focuse: 1px solid var(--white);--input-border-active: 1px solid var(--white);box-shadow:var(--box-shadow);--input-bg: var(--white) !important}:host ::ng-deep .decisions-container{max-height:340px;overflow:auto;scroll-behavior:smooth;transition:scroll-behavior .5s ease-in-out;height:340px}@media (max-width: 768px){:host ::ng-deep .decisions-container{max-height:320px;height:320px}}[dir=rtl] :host ::ng-deep .decisions-container--btn.reRequest{transform:scaleX(-1)}@media (min-width: 1200px){:host ::ng-deep .decisions-container--name,:host ::ng-deep .decisions-container--date{max-width:120px}}@media (min-width: 1200px){[dir=rtl] :host ::ng-deep .decisions-container--name{max-width:initial}}:host ::ng-deep .decisions-container--item{display:flex;align-items:center;gap:1rem;min-height:105px;overflow:hidden;position:relative;cursor:pointer}@media (min-width: 991px){:host ::ng-deep .decisions-container--item h4{max-width:calc(100% - 200px);display:inline-block}}:host ::ng-deep .decisions-container--item:not(:last-child){margin-bottom:.75rem}:host ::ng-deep .decisions-container--item ds-status::part(base){--status-width: 60px}:host ::ng-deep .decisions-container--info span{position:relative;display:flex;align-items:center;gap:.5rem}:host ::ng-deep .decisions-container--info span:not(:first-of-type):before{content:\"\";min-width:3px;width:3px;height:3px;border-radius:50%;background-color:var(--black)}@media (min-width: 991px){:host ::ng-deep .decisions-container--status{position:absolute;top:1rem;right:0}}:host ::ng-deep .decisions-title{display:block;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:1}::ng-deep .main-portal mat-form-field.no-padding .mat-form-field-wrapper{padding-bottom:0!important}::ng-deep ds-button[hidden]{display:none!important}ds-button[circle]::part(base){--btn-color: inherit;--btn-border-color: inherit;--btn-bg-color: inherit;--btn-height: 25px;--btn-min-width: 25px}ds-button[circle][color=red]{--btn-bg-color: var(--red)}ds-button[circle][color=red]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=green]{--btn-bg-color: var(--green)}ds-button[circle][color=green]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=yellow]{--btn-bg-color: var(--yellow)}ds-button[circle][color=yellow]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]{--btn-bg-color: var(--coral)}ds-button[circle][color=coral]:hover{--btn-bg-color: var(--white)}ds-button[circle][color=coral]:hover svg path,ds-button[circle][color=coral]:hover svg line{fill:var(--coral)}ds-button[circle][color=orange]{--btn-bg-color: var(--orange)}ds-button[circle][color=orange]:hover{--btn-bg-color: var(--white)}@media (min-width: 991px){.decisions-container--item .decisions-container--status{width:0;transition:var(--default-transition)}}@media (min-width: 991px){.decisions-container--item:hover .decisions-container--status{transition:var(--default-transition);width:auto;height:auto;right:1.5rem}}::ng-deep .mat-tooltip{max-width:187px;background:#1d252d}::ng-deep ds-button.dots::part(base){text-decoration:none;padding:0;min-width:auto}@media (max-width: 300px){::ng-deep ds-button[shape=text]::part(base){padding:0 5px}::ng-deep ds-button.mat-menu-trigger::part(base){padding:0 5px}}.search-form-input{color:var(--black);font-weight:var(--font-medium);padding:0 .75rem;border:none;height:100%}.search-form-input::placeholder{color:var(--dark-gray);font-weight:var(--font-regular)}::ng-deep .select-user-dropdown{min-width:300px}::ng-deep .filter-container{background-color:var(--white);padding:1.5rem;border-radius:4px}\n"] }]
170
168
  }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.SidenavService }, { type: i2.CoreService }, { type: i3.ToastrService }, { type: i2.CoreI18nService }, { type: i4.FormBuilder }] });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlvdXMtcmVxdWVzdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvcHJldmlvdXMtcmVxdWVzdHMvcHJldmlvdXMtcmVxdWVzdHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvcHJldmlvdXMtcmVxdWVzdHMvcHJldmlvdXMtcmVxdWVzdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsc0JBQXNCLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQVksZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxFQUFjLFdBQVcsRUFBYSxtQkFBbUIsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7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RyxNQUFNLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0gsQ0FBQzt1R0FySVUseUJBQXlCOzJGQUF6Qix5QkFBeUIsdUVDcEN0QywwMU1BdUpBLDQ0SURwSUksWUFBWSx5ZEFDWixhQUFhLDhCQUNiLFlBQVksOEJBQ1osZUFBZSw4QkFDZixlQUFlLDhCQUNmLG1CQUFtQiw0ckJBQ25CLHFCQUFxQixrb0JBQ3JCLGVBQWUsb0RBQ2YsZ0JBQWdCLHVJQUNoQix5QkFBeUIsMk1BQ3pCLG1CQUFtQjs7MkZBT1YseUJBQXlCO2tCQXRCckMsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUVQO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLHlCQUF5Qjt3QkFDekIsbUJBQW1CO3FCQUVwQixXQUdRLENBQUMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgT25Jbml0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge01hdE1lbnVNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9tZW51XCI7XHJcbmltcG9ydCB7TWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHtGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9yc30gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7TWF0QnV0dG9uVG9nZ2xlTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZVwiO1xyXG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcclxuaW1wb3J0IHtDb3JlSTE4blNlcnZpY2UsIENvcmVTZXJ2aWNlLCBTaWRlbmF2U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzXCI7XHJcbmltcG9ydCB7U3RhdHVzU3R5bGVQaXBlfSBmcm9tIFwiLi4vLi4vLi4vcGlwZXMvc3RhdHVzLXN0eWxlLnBpcGVcIjtcclxuaW1wb3J0IHtUb2FzdHJTZXJ2aWNlfSBmcm9tIFwibmd4LXRvYXN0clwiO1xyXG5pbXBvcnQge0Nka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW59IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xyXG5pbXBvcnQge0N1c3RvbVNlYXJjaGFibGVDb21wb25lbnR9IGZyb20gXCIuLi8uLi9zaGFyZWQtY29tcG9uZW50c1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtaGlzdG9yeScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0TWVudU1vZHVsZSxcclxuICAgIFJvdXRlck1vZHVsZSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIE1hdERpYWxvZ01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Ub2dnbGVNb2R1bGUsXHJcbiAgICBTdGF0dXNTdHlsZVBpcGUsXHJcbiAgICBDZGtPdmVybGF5T3JpZ2luLFxyXG4gICAgQ3VzdG9tU2VhcmNoYWJsZUNvbXBvbmVudCxcclxuICAgIENka0Nvbm5lY3RlZE92ZXJsYXlcclxuXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJldmlvdXMtcmVxdWVzdHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ByZXZpb3VzLXJlcXVlc3RzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJldmlvdXNSZXF1ZXN0c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcHJldmlvdXNSZXF1ZXN0czogYW55W10gPSBbXVxyXG4gIGxvYWRpbmc6IGJvb2xlYW5cclxuICBmaWx0ZXJGb3JtR3JvdXA6IEZvcm1Hcm91cDtcclxuICBlcnJvck1lc3NhZ2U6IHN0cmluZ1xyXG4gIGlzT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1vbnRoc09wdGlvbnMgPSBbXHJcbiAgICB7a2V5OiAnMScsIHZhbHVlOiAnMSd9LFxyXG4gICAge2tleTogJzInLCB2YWx1ZTogJzInfSxcclxuICAgIHtrZXk6ICczJywgdmFsdWU6ICczJ30sXHJcbiAgICB7a2V5OiAnNCcsIHZhbHVlOiAnNCd9LFxyXG4gICAge2tleTogJzUnLCB2YWx1ZTogJzUnfSxcclxuICAgIHtrZXk6ICc2JywgdmFsdWU6ICc2J30sXHJcbiAgICB7a2V5OiAnNycsIHZhbHVlOiAnNyd9LFxyXG4gICAge2tleTogJzgnLCB2YWx1ZTogJzgnfSxcclxuICAgIHtrZXk6ICc5JywgdmFsdWU6ICc5J30sXHJcbiAgICB7a2V5OiAnMTAnLCB2YWx1ZTogJzEwJ30sXHJcbiAgICB7a2V5OiAnMTEnLCB2YWx1ZTogJzExJ30sXHJcbiAgICB7a2V5OiAnMTInLCB2YWx1ZTogJzEyJ31cclxuICBdO1xyXG4gIHllYXJzT3B0aW9ucyA9IFtcclxuICAgIHtrZXk6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSwgdmFsdWU6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKX0sXHJcbiAgICB7a2V5OiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSAxLCB2YWx1ZTogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpIC0gMX0sXHJcbiAgICB7a2V5OiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSAyLCB2YWx1ZTogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpIC0gMn0sXHJcbiAgICB7a2V5OiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSAzLCB2YWx1ZTogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpIC0gM31dO1xyXG5cclxuICBzdGF0dXNlcyA9IFtdXHJcbiAgc2VhcmNoRGF0YSA9IHtcclxuICAgIHllYXI6IG51bGwsXHJcbiAgICBtb250aDogbnVsbFxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyByZWFkb25seSBzaWRlbmF2U2VydmljZTogU2lkZW5hdlNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIGNvcmVTZXJ2aWNlOiBDb3JlU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0ZXJTZXJ2aWNlOiBUb2FzdHJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHB1YmxpYyBpMThuOiBDb3JlSTE4blNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXJcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XHJcbiAgICB0aGlzLnN0YXR1c2VzID0gW1xyXG4gICAgICB7a2V5OiBcIkFQUFJPVkVEXCIsIHZhbHVlOiB0aGlzLmkxOG4ubGFuZ3VhZ2UgPT0gJ2VuJyA/IFwiQXBwcm92ZVwiIDogXCLZhdmI2KfZgdmC2KlcIn0sXHJcbiAgICAgIHtrZXk6IFwiUkVKRUNURURcIiwgdmFsdWU6IHRoaXMuaTE4bi5sYW5ndWFnZSA9PSAnZW4nID8gXCJSZWplY3RcIiA6IFwi2YXYsdmB2YjYtlwifSxcclxuICAgICAge2tleTogXCJQRU5ESU5HXCIsIHZhbHVlOiB0aGlzLmkxOG4ubGFuZ3VhZ2UgPT0gJ2VuJyA/IFwiUGVuZGluZ1wiIDogXCLZhdi52YTZglwifVxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgY3JlYXRlRm9ybSgpIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIG1vbnRoOiBuZXcgRm9ybUNvbnRyb2woe2tleTogbmV3IERhdGUoKS5nZXRVVENNb250aCgpICsgMSwgdmFsdWU6IG5ldyBEYXRlKCkuZ2V0VVRDTW9udGgoKSArIDF9LCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgeWVhcjogbmV3IEZvcm1Db250cm9sKHtrZXk6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSwgdmFsdWU6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKX0sIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICBzdGF0dXM6IG5ldyBGb3JtQ29udHJvbCgnJywgVmFsaWRhdG9ycy5yZXF1aXJlZClcclxuICAgIH0pO1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdzdGF0dXMnKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgdGhpcy5maWx0ZXJTdGF0dXMoKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5jb3JlU2VydmljZS5oaXN0b3J5RGF0YUxvYWRlZCkge1xyXG4gICAgICB0aGlzLnByZXZpb3VzUmVxdWVzdHMgPSB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdldFJlcXVlc3RzKClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyRmlsdGVycygpIHtcclxuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLnJlc2V0KClcclxuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldCgnbW9udGgnKS5zZXRWYWx1ZSh7a2V5OiBuZXcgRGF0ZSgpLmdldFVUQ01vbnRoKCkgKyAxLCB2YWx1ZTogbmV3IERhdGUoKS5nZXRVVENNb250aCgpICsgMX0pXHJcbiAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoJ3llYXInKS5zZXRWYWx1ZSh7a2V5OiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCksIHZhbHVlOiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgKyAxfSlcclxuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldCgnc3RhdHVzJykuc2V0VmFsdWUoJycpXHJcbiAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlblxyXG4gICAgdGhpcy5maWx0ZXJTdGF0dXMoKVxyXG4gIH1cclxuXHJcbiAgYXBwbHlGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5pc09wZW4gPSAhdGhpcy5pc09wZW5cclxuICAgIHRoaXMuZ2V0UmVxdWVzdHMoKVxyXG4gIH1cclxuXHJcbiAgZ2V0UmVxdWVzdHMoKSB7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hEYXRhLnllYXIgPT0gdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCd5ZWFyJykudmFsdWU/LmtleSAmJiB0aGlzLnNlYXJjaERhdGEubW9udGggPT0gdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdtb250aCcpLnZhbHVlPy5rZXkpIHtcclxuICAgICAgdGhpcy5maWx0ZXJTdGF0dXMoKVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWFyY2hEYXRhID0ge1xyXG4gICAgICAgIHllYXI6IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldCgneWVhcicpLnZhbHVlPy5rZXksXHJcbiAgICAgICAgbW9udGg6IHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldCgnbW9udGgnKS52YWx1ZT8ua2V5LFxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWVcclxuICAgICAgdGhpcy5jb3JlU2VydmljZS5oaXN0b3J5RGF0YSA9IFtdXHJcbiAgICAgIHRoaXMucHJldmlvdXNSZXF1ZXN0cyA9IFtdXHJcbiAgICAgIHRoaXMuY29yZVNlcnZpY2UubXlSZXF1ZXN0cyh0aGlzLnNlYXJjaERhdGEpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgIC8vIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb3JlU2VydmljZS5oaXN0b3J5RGF0YSA9IHJlc3BvbnNlLmhpc3Rvcnk7XHJcbiAgICAgICAgICB0aGlzLnByZXZpb3VzUmVxdWVzdHMgPSB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhXHJcbiAgICAgICAgICB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhTG9hZGVkID0gdHJ1ZVxyXG4gICAgICAgICAgdGhpcy5maWx0ZXJTdGF0dXMoKVxyXG4gICAgICAgICAgLy8gfSwgNTAwKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnI/LmVycm9yPy5tZXRhPy5tZXNzYWdlcz8uWycwJ10/Lm1lc3NhZ2U7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKHRoaXMuZXJyb3JNZXNzYWdlKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpbHRlclN0YXR1cygpIHtcclxuICAgIHRoaXMucHJldmlvdXNSZXF1ZXN0cyA9IHRoaXMuY29yZVNlcnZpY2UuaGlzdG9yeURhdGFcclxuICAgIGxldCBmaWx0ZXJEYXRhID0gW11cclxuICAgIGlmICh0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoJ3N0YXR1cycpLnZhbHVlPy5rZXkpIHtcclxuICAgICAgZmlsdGVyRGF0YSA9IHRoaXMucHJldmlvdXNSZXF1ZXN0cy5maWx0ZXIoKHJlcXVlc3QpID0+IHtcclxuICAgICAgICByZXR1cm4gcmVxdWVzdC5mb3JtLmZvcm1TdGF0dXMua2V5ID09PSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoJ3N0YXR1cycpLnZhbHVlLmtleVxyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZmlsdGVyRGF0YSA9IHRoaXMucHJldmlvdXNSZXF1ZXN0c1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucHJldmlvdXNSZXF1ZXN0cyA9IGZpbHRlckRhdGFcclxuICB9XHJcblxyXG4gIHZpZXdGb3JtKGZvcm1JZDogc3RyaW5nKSB7XHJcbiAgICBpZiAoZm9ybUlkKSB7XHJcbiAgICAgIHdpbmRvdy5vcGVuKCcvZ3JvdXAvaS1nYXRlL3dtLWJwbS9mb3Jtcz9mb3JtSWQ9JyArIGZvcm1JZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cIm1haW4tc2lkZW5hdiBoaXN0b3J5LXNpZGVuYXZcIj5cclxuICA8ZGl2IGNsYXNzPVwic2lkZW5hdi10aXRsZVwiPlxyXG4gICAgPGgzPnt7IGkxOG4udHJhbnNsYXRlKCdQcmV2aW91c1JlcXVlc3RzJykgfX08L2gzPlxyXG4gICAgPGRzLWJ1dHRvbiBjbGFzcz1cImNsb3NlLXNpZGVuYXZcIiAoY2xpY2spPVwic2lkZW5hdlNlcnZpY2UuY2xvc2VTaWRlbmF2KClcIiBpY29uPlxyXG4gICAgICA8ZHMtaWNvbiBpY29uPVwiY2xvc2VcIiBjbGFzcz1cImZzLTIwIGZjLWJsYWNrXCI+PC9kcy1pY29uPlxyXG4gICAgPC9kcy1idXR0b24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwic2lkZW5hdi1ib2R5IGJjLWxpZ2h0LWdyYXlcIlxyXG4gID5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwicC0zXCI+XHJcbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC0yIG1iLTNcIj5cclxuICAgICAgICA8aDIgY2xhc3M9XCJmcy0yMCBmdy1tZWRpdW0gZmMtYmxhY2sgbWItMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtZ3Jvdy0xIGdhcC0zXCI+XHJcbiAgICAgICAgICB7eyBpMThuLnRyYW5zbGF0ZSgnQWxsUmVxdWVzdHMnKSB9fVxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZS1jb3VudCBmcy0xNCBmdy1ub3JtYWxcIj57eyBwcmV2aW91c1JlcXVlc3RzPy5sZW5ndGggPyBwcmV2aW91c1JlcXVlc3RzPy5sZW5ndGggOiAnMCcgfX08L3NwYW4+XHJcbiAgICAgICAgPC9oMj5cclxuICAgICAgICA8ZHMtYnV0dG9uIGljb24gc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImlzT3BlbiA9ICFpc09wZW5cIiBjZGtPdmVybGF5T3JpZ2luICN0cmlnZ2VyPVwiY2RrT3ZlcmxheU9yaWdpblwiPlxyXG4gICAgICAgICAgPGRzLWljb24gaWNvbj1cImZpbHRlclwiIGNsYXNzPVwiZmMtY29yYWwgZnMtMjBcIiBzbG90PVwicHJlZml4XCI+PC9kcy1pY29uPlxyXG4gICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cFxyXG4gICAgICAgICAgY2xhc3M9XCJpY29uLXRvZ2dsZSBmbGV4LW5vd3JhcFwiXHJcbiAgICAgICAgICAjcGFnZVZpZXc9XCJtYXRCdXR0b25Ub2dnbGVHcm91cFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgIHZhbHVlPVwibGlzdFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNmaSBzZmktY2FyZCBmcy0yMFwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XHJcbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJsaXN0XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2ZpIHNmaS1saXN0LWRvdHMgZnMtMjBcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XHJcbiAgICAgIDwvaGVhZGVyPlxyXG5cclxuICAgICAgQGlmIChwcmV2aW91c1JlcXVlc3RzPy5sZW5ndGgpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGlzdG9yeS1jYXJkcy1jb250YWluZXJcIiAqbmdJZj1cInBhZ2VWaWV3LnZhbHVlID09PSAnY2FyZCdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTQgbGluZS1oZWlnaHQtMSBiYy13aGl0ZSByYWRpdXMtNiBib3gtc2hhZG93XCIgKm5nRm9yPVwibGV0IHJvdyBvZiBwcmV2aW91c1JlcXVlc3RzXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIG1iLTNcIj5cclxuICAgICAgICAgICAgICA8aDNcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZnMtMTYgZnctbWVkaXVtIGZsZXgtZ3Jvdy0xIG1iLTAgY3Vyc29yLXBvaW50ZXIgdW5kZXJsaW5lIGZ3LWJvbGRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInZpZXdGb3JtKHJvdz8uZm9ybT8uWydmb3JtSWQnXSlcIj57eyByb3c/LmZvcm0/LlsnZm9ybUlkJ10gfX08L2gzPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnLTNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGNvbC02XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTExIGZjLWRhcmstZ3JheSBtYi0yXCI+e3sgaTE4bi50cmFuc2xhdGUoJ2Zvcm1UYWJsZUNyZWF0aW9uRGF0ZScpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xMiBmdy1tZWRpdW0gZmMtYmxhY2tcIj57eyByb3c/LmZvcm0/LlsnY3JlYXRpb25EYXRlJ10gfCBkYXRlOiAnZGQvTU0veXl5eSBoaDptbSBhJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGNvbC02IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtZW5kXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRzLXN0YXR1cyBbYXR0ci5zdGF0dXNdPVwicm93Py5mb3JtPy5mb3JtU3RhdHVzPy5rZXkgfCBzdGF0dXNDbGFzc1wiPlxyXG4gICAgICAgICAgICAgICAgICB7eyByb3c/LmZvcm0/LmZvcm1TdGF0dXM/LnZhbHVlIH19XHJcbiAgICAgICAgICAgICAgICA8L2RzLXN0YXR1cz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiICpuZ0lmPVwicGFnZVZpZXcudmFsdWUgPT09ICdsaXN0J1wiPlxyXG4gICAgICAgICAgPHRhYmxlICpuZ0lmPVwicHJldmlvdXNSZXF1ZXN0cz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDx0aD57eyBpMThuLnRyYW5zbGF0ZSgnZm9ybVRhYmxlRm9ybUlkJykgfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD57eyBpMThuLnRyYW5zbGF0ZSgnZm9ybVRhYmxlQ3JlYXRpb25EYXRlJykgfX08L3RoPlxyXG4gICAgICAgICAgICAgIDx0aD57eyBpMThuLnRyYW5zbGF0ZSgnU3RhdHVzJykgfX08L3RoPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG5cclxuICAgICAgICAgICAgPHRib2R5ICpuZ0Zvcj1cImxldCByb3cgb2YgcHJldmlvdXNSZXF1ZXN0c1wiPlxyXG4gICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmdy1tZWRpdW0gY3Vyc29yLXBvaW50ZXIgdW5kZXJsaW5lIGZ3LWJvbGQgXCIgKGNsaWNrKT1cInZpZXdGb3JtKHJvdz8uZm9ybT8uWydmb3JtSWQnXSlcIj5cclxuICAgICAgICAgICAgICAgICAge3sgcm93Py5mb3JtPy5bJ2Zvcm1JZCddIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+e3sgcm93Py5mb3JtPy5bJ2NyZWF0aW9uRGF0ZSddICB8IGRhdGU6ICdkZC9NTS95eXl5IGhoOm1tIGEnIH19PC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8ZHMtc3RhdHVzIFthdHRyLnN0YXR1c109XCJyb3c/LmZvcm0/LmZvcm1TdGF0dXM/LmtleSB8IHN0YXR1c0NsYXNzXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IHJvdz8uZm9ybT8uZm9ybVN0YXR1cz8udmFsdWUgfX1cclxuICAgICAgICAgICAgICAgIDwvZHMtc3RhdHVzPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgPGRzLWxvYWRpbmctdGFibGUgKm5nSWY9XCJsb2FkaW5nXCIgW2NvbHNdPVwiNFwiIFtyb3dzXT1cIjRcIj48L2RzLWxvYWRpbmctdGFibGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eU1lc3NhZ2VcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgfVxyXG4gICAgPC9zZWN0aW9uPlxyXG4gIDwvZGl2PlxyXG48L3NlY3Rpb24+XHJcblxyXG48bmctdGVtcGxhdGVcclxuICBjZGtDb25uZWN0ZWRPdmVybGF5XHJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcF09XCJ0cnVlXCJcclxuICAoYmFja2Ryb3BDbGljayk9XCJpc09wZW4gPSBmYWxzZVwiXHJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlHcm93QWZ0ZXJPcGVuXT1cInRydWVcIlxyXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cInRyaWdnZXJcIlxyXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJpc09wZW5cIlxyXG4+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmaWx0ZXJGb3JtR3JvdXBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItY29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1oZWFkZXIgYm9yZGVyLWJvdHRvbSBwYi0yXCI+XHJcbiAgICAgICAgPGgzIGNsYXNzPVwiZnMtMTYgZmMtYmxhY2sgZnctbWVkaXVtXCI+e3sgaTE4bi50cmFuc2xhdGUoJ2ZpbHRlcnMnKSB9fTwvaDM+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGdhcC00IGdhcC1tZC0zIGZpbHRlci1zZWN0aW9uIGJjLXdoaXRlIG10LTAgcHQtM1wiPlxyXG5cclxuICAgICAgICA8YXBwLWN1c3RvbS1zZWFyY2hhYmxlXHJcbiAgICAgICAgICBjbGFzcz1cInNlY3Rpb24taXRlbVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdGF0dXNcIlxyXG4gICAgICAgICAgbGFiZWw9XCJ7eyBpMThuLnRyYW5zbGF0ZSgnc3RhdHVzJykgfX1cIlxyXG4gICAgICAgICAgW29wdGlvbnNdPVwic3RhdHVzZXNcIlxyXG4gICAgICAgICAgW2Rpc3BsYXllZExhYmVsXT1cIid2YWx1ZSdcIlxyXG4gICAgICAgICAgW2tleV09XCIna2V5J1wiPlxyXG4gICAgICAgIDwvYXBwLWN1c3RvbS1zZWFyY2hhYmxlPlxyXG5cclxuICAgICAgICA8YXBwLWN1c3RvbS1zZWFyY2hhYmxlXHJcbiAgICAgICAgICBjbGFzcz1cInNlY3Rpb24taXRlbVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ5ZWFyXCJcclxuICAgICAgICAgIGxhYmVsPVwie3sgaTE4bi50cmFuc2xhdGUoJ3llYXInKSB9fVwiXHJcbiAgICAgICAgICBbb3B0aW9uc109XCJ5ZWFyc09wdGlvbnNcIlxyXG4gICAgICAgICAgW2Rpc3BsYXllZExhYmVsXT1cIid2YWx1ZSdcIlxyXG4gICAgICAgICAgW2tleV09XCIna2V5J1wiPlxyXG4gICAgICAgIDwvYXBwLWN1c3RvbS1zZWFyY2hhYmxlPlxyXG5cclxuICAgICAgICA8YXBwLWN1c3RvbS1zZWFyY2hhYmxlXHJcbiAgICAgICAgICBjbGFzcz1cInNlY3Rpb24taXRlbVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtb250aFwiXHJcbiAgICAgICAgICBsYWJlbD1cInt7IGkxOG4udHJhbnNsYXRlKCdtb250aCcpIH19XCJcclxuICAgICAgICAgIFtvcHRpb25zXT1cIm1vbnRoc09wdGlvbnNcIlxyXG4gICAgICAgICAgW2Rpc3BsYXllZExhYmVsXT1cIid2YWx1ZSdcIlxyXG4gICAgICAgICAgW2tleV09XCIna2V5J1wiPlxyXG4gICAgICAgIDwvYXBwLWN1c3RvbS1zZWFyY2hhYmxlPlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMyBtdC00XCI+XHJcbiAgICAgICAgICA8ZHMtYnV0dG9uIHNoYXBlPVwib3V0bGluZVwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJjbGVhckZpbHRlcnMoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTEyXCI+IHt7IGkxOG4udHJhbnNsYXRlKCdjbGVhcicpIH19IDwvc3Bhbj5cclxuICAgICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICAgICAgPGRzLWJ1dHRvbiBjbGFzcz1cInctMTAwXCIgc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImFwcGx5RmlsdGVycygpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTJcIj57eyBpMThuLnRyYW5zbGF0ZSgnYXBwbHlGaWx0ZXJzJykgfX0gIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9ybT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG48bmctdGVtcGxhdGUgI2VtcHR5TWVzc2FnZT5cclxuICA8ZHMtbWVzc2FnZSBsYWJlbD1cInt7aTE4bi50cmFuc2xhdGUoJ05vRGF0YScpfX1cIj48L2RzLW1lc3NhZ2U+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlvdXMtcmVxdWVzdHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvcHJldmlvdXMtcmVxdWVzdHMvcHJldmlvdXMtcmVxdWVzdHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvcHJldmlvdXMtcmVxdWVzdHMvcHJldmlvdXMtcmVxdWVzdHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsc0JBQXNCLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQVksZUFBZSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxFQUFjLFdBQVcsRUFBYSxtQkFBbUIsRUFBRSxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7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QUM7SUFDSCxDQUFDO3VHQW5JVSx5QkFBeUI7MkZBQXpCLHlCQUF5Qix1RUNwQ3RDLG15T0F3S0EsNDRJRHJKSSxZQUFZLHlkQUNaLGFBQWEsOEJBQ2IsWUFBWSw4QkFDWixlQUFlLDhCQUNmLGVBQWUsOEJBQ2YsbUJBQW1CLDRyQkFDbkIscUJBQXFCLGtvQkFDckIsZUFBZSxvREFDZixnQkFBZ0IsdUlBQ2hCLHlCQUF5QiwyTUFDekIsbUJBQW1COzsyRkFPVix5QkFBeUI7a0JBdEJyQyxTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBRVA7d0JBQ1AsWUFBWTt3QkFDWixhQUFhO3dCQUNiLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIseUJBQXlCO3dCQUN6QixtQkFBbUI7cUJBRXBCLFdBR1EsQ0FBQyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBPbkluaXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7TWF0TWVudU1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL21lbnVcIjtcclxuaW1wb3J0IHtNYXREaWFsb2csIE1hdERpYWxvZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2RpYWxvZ1wiO1xyXG5pbXBvcnQge0Zvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBWYWxpZGF0b3JzfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtNYXRCdXR0b25Ub2dnbGVNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlXCI7XHJcbmltcG9ydCB7Um91dGVyTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQge0NvcmVJMThuU2VydmljZSwgQ29yZVNlcnZpY2UsIFNpZGVuYXZTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZXNcIjtcclxuaW1wb3J0IHtTdGF0dXNTdHlsZVBpcGV9IGZyb20gXCIuLi8uLi8uLi9waXBlcy9zdGF0dXMtc3R5bGUucGlwZVwiO1xyXG5pbXBvcnQge1RvYXN0clNlcnZpY2V9IGZyb20gXCJuZ3gtdG9hc3RyXCI7XHJcbmltcG9ydCB7Q2RrQ29ubmVjdGVkT3ZlcmxheSwgQ2RrT3ZlcmxheU9yaWdpbn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XHJcbmltcG9ydCB7Q3VzdG9tU2VhcmNoYWJsZUNvbXBvbmVudH0gZnJvbSBcIi4uLy4uL3NoYXJlZC1jb21wb25lbnRzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1oaXN0b3J5JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG5cclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRNZW51TW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSxcclxuICAgIFN0YXR1c1N0eWxlUGlwZSxcclxuICAgIENka092ZXJsYXlPcmlnaW4sXHJcbiAgICBDdXN0b21TZWFyY2hhYmxlQ29tcG9uZW50LFxyXG4gICAgQ2RrQ29ubmVjdGVkT3ZlcmxheVxyXG5cclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmV2aW91cy1yZXF1ZXN0cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcHJldmlvdXMtcmVxdWVzdHMuY29tcG9uZW50LnNjc3MnXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcmV2aW91c1JlcXVlc3RzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBwcmV2aW91c1JlcXVlc3RzOiBhbnlbXSA9IFtdXHJcbiAgbG9hZGluZzogYm9vbGVhblxyXG4gIGZpbHRlckZvcm1Hcm91cDogRm9ybUdyb3VwO1xyXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nXHJcbiAgaXNPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbW9udGhzT3B0aW9ucyA9IFtcclxuICAgIHtrZXk6ICcxJywgdmFsdWU6ICcxJ30sXHJcbiAgICB7a2V5OiAnMicsIHZhbHVlOiAnMid9LFxyXG4gICAge2tleTogJzMnLCB2YWx1ZTogJzMnfSxcclxuICAgIHtrZXk6ICc0JywgdmFsdWU6ICc0J30sXHJcbiAgICB7a2V5OiAnNScsIHZhbHVlOiAnNSd9LFxyXG4gICAge2tleTogJzYnLCB2YWx1ZTogJzYnfSxcclxuICAgIHtrZXk6ICc3JywgdmFsdWU6ICc3J30sXHJcbiAgICB7a2V5OiAnOCcsIHZhbHVlOiAnOCd9LFxyXG4gICAge2tleTogJzknLCB2YWx1ZTogJzknfSxcclxuICAgIHtrZXk6ICcxMCcsIHZhbHVlOiAnMTAnfSxcclxuICAgIHtrZXk6ICcxMScsIHZhbHVlOiAnMTEnfSxcclxuICAgIHtrZXk6ICcxMicsIHZhbHVlOiAnMTInfVxyXG4gIF07XHJcbiAgeWVhcnNPcHRpb25zID0gW1xyXG4gICAge2tleTogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLCB2YWx1ZTogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpfSxcclxuICAgIHtrZXk6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIDEsIHZhbHVlOiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSAxfSxcclxuICAgIHtrZXk6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIDIsIHZhbHVlOiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSAyfSxcclxuICAgIHtrZXk6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIDMsIHZhbHVlOiBuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCkgLSAzfV07XHJcblxyXG4gIHN0YXR1c2VzID0gW11cclxuICBzZWFyY2hEYXRhID0ge1xyXG4gICAgeWVhcjogbnVsbCxcclxuICAgIG1vbnRoOiBudWxsXHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICAgICAgICAgICAgcHVibGljIHJlYWRvbmx5IHNpZGVuYXZTZXJ2aWNlOiBTaWRlbmF2U2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgY29yZVNlcnZpY2U6IENvcmVTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdG9hc3RlclNlcnZpY2U6IFRvYXN0clNlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHVibGljIGkxOG46IENvcmVJMThuU2VydmljZSxcclxuICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZiOiBGb3JtQnVpbGRlclxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcclxuICAgIHRoaXMuc3RhdHVzZXMgPSBbXHJcbiAgICAgIHtrZXk6IFwiQVBQUk9WRURcIiwgdmFsdWU6IHRoaXMuaTE4bi5sYW5ndWFnZSA9PSAnZW4nID8gXCJBcHByb3ZlXCIgOiBcItmF2YjYp9mB2YLYqVwifSxcclxuICAgICAge2tleTogXCJSRUpFQ1RFRFwiLCB2YWx1ZTogdGhpcy5pMThuLmxhbmd1YWdlID09ICdlbicgPyBcIlJlamVjdFwiIDogXCLZhdix2YHZiNi2XCJ9LFxyXG4gICAgICB7a2V5OiBcIlBFTkRJTkdcIiwgdmFsdWU6IHRoaXMuaTE4bi5sYW5ndWFnZSA9PSAnZW4nID8gXCJQZW5kaW5nXCIgOiBcItmF2LnZhNmCXCJ9XHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBjcmVhdGVGb3JtKCkge1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgbW9udGg6IG5ldyBGb3JtQ29udHJvbCh7a2V5OiBuZXcgRGF0ZSgpLmdldFVUQ01vbnRoKCkgKyAxLCB2YWx1ZTogbmV3IERhdGUoKS5nZXRVVENNb250aCgpICsgMX0sIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICB5ZWFyOiBuZXcgRm9ybUNvbnRyb2woe2tleTogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLCB2YWx1ZTogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpfSwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXHJcbiAgICAgIHN0YXR1czogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoJ3N0YXR1cycpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICB0aGlzLmZpbHRlclN0YXR1cygpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhTG9hZGVkKSB7XHJcbiAgICAgIHRoaXMucHJldmlvdXNSZXF1ZXN0cyA9IHRoaXMuY29yZVNlcnZpY2UuaGlzdG9yeURhdGFcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ2V0UmVxdWVzdHMoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAucmVzZXQoKVxyXG4gICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdtb250aCcpLnNldFZhbHVlKHtrZXk6IG5ldyBEYXRlKCkuZ2V0VVRDTW9udGgoKSArIDEsIHZhbHVlOiBuZXcgRGF0ZSgpLmdldFVUQ01vbnRoKCkgKyAxfSlcclxuICAgIHRoaXMuZmlsdGVyRm9ybUdyb3VwLmdldCgneWVhcicpLnNldFZhbHVlKHtrZXk6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSwgdmFsdWU6IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSArIDF9KVxyXG4gICAgdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdzdGF0dXMnKS5zZXRWYWx1ZSgnJylcclxuICAgIHRoaXMuaXNPcGVuID0gIXRoaXMuaXNPcGVuXHJcbiAgICB0aGlzLmZpbHRlclN0YXR1cygpXHJcbiAgfVxyXG5cclxuICBhcHBseUZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLmlzT3BlbiA9ICF0aGlzLmlzT3BlblxyXG4gICAgdGhpcy5nZXRSZXF1ZXN0cygpXHJcbiAgfVxyXG5cclxuICBnZXRSZXF1ZXN0cygpIHtcclxuICAgIGlmICh0aGlzLnNlYXJjaERhdGEueWVhciA9PSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoJ3llYXInKS52YWx1ZT8ua2V5ICYmIHRoaXMuc2VhcmNoRGF0YS5tb250aCA9PSB0aGlzLmZpbHRlckZvcm1Hcm91cC5nZXQoJ21vbnRoJykudmFsdWU/LmtleSkge1xyXG4gICAgICB0aGlzLmZpbHRlclN0YXR1cygpXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlYXJjaERhdGEgPSB7XHJcbiAgICAgICAgeWVhcjogdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCd5ZWFyJykudmFsdWU/LmtleSxcclxuICAgICAgICBtb250aDogdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdtb250aCcpLnZhbHVlPy5rZXksXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxyXG4gICAgICB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhID0gW11cclxuICAgICAgdGhpcy5wcmV2aW91c1JlcXVlc3RzID0gW11cclxuICAgICAgdGhpcy5jb3JlU2VydmljZS5teVJlcXVlc3RzKHRoaXMuc2VhcmNoRGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb3JlU2VydmljZS5oaXN0b3J5RGF0YSA9IHJlc3BvbnNlLmhpc3Rvcnk7XHJcbiAgICAgICAgICB0aGlzLnByZXZpb3VzUmVxdWVzdHMgPSB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhXHJcbiAgICAgICAgICB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhTG9hZGVkID0gdHJ1ZVxyXG4gICAgICAgICAgdGhpcy5maWx0ZXJTdGF0dXMoKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnI/LmVycm9yPy5tZXRhPy5tZXNzYWdlcz8uWycwJ10/Lm1lc3NhZ2U7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ZXJTZXJ2aWNlLmVycm9yKHRoaXMuZXJyb3JNZXNzYWdlKVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJTdGF0dXMoKSB7XHJcbiAgICB0aGlzLnByZXZpb3VzUmVxdWVzdHMgPSB0aGlzLmNvcmVTZXJ2aWNlLmhpc3RvcnlEYXRhXHJcbiAgICBsZXQgZmlsdGVyRGF0YSA9IFtdXHJcbiAgICBpZiAodGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdzdGF0dXMnKS52YWx1ZT8ua2V5KSB7XHJcbiAgICAgIGZpbHRlckRhdGEgPSB0aGlzLnByZXZpb3VzUmVxdWVzdHMuZmlsdGVyKChyZXF1ZXN0KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHJlcXVlc3QuZm9ybS5mb3JtU3RhdHVzLmtleSA9PT0gdGhpcy5maWx0ZXJGb3JtR3JvdXAuZ2V0KCdzdGF0dXMnKS52YWx1ZS5rZXlcclxuICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZpbHRlckRhdGEgPSB0aGlzLnByZXZpb3VzUmVxdWVzdHNcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnByZXZpb3VzUmVxdWVzdHMgPSBmaWx0ZXJEYXRhXHJcbiAgfVxyXG5cclxuICB2aWV3Rm9ybShmb3JtSWQ6IHN0cmluZykge1xyXG4gICAgaWYgKGZvcm1JZCkge1xyXG4gICAgICB3aW5kb3cub3BlbignL2dyb3VwL2ktZ2F0ZS93bS1icG0vZm9ybXM/Zm9ybUlkPScgKyBmb3JtSWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPHNlY3Rpb24gY2xhc3M9XCJtYWluLXNpZGVuYXYgaGlzdG9yeS1zaWRlbmF2XCI+XHJcbiAgPGRpdiBjbGFzcz1cInNpZGVuYXYtdGl0bGVcIj5cclxuICAgIDxoMz57eyBpMThuLnRyYW5zbGF0ZSgnUHJldmlvdXNSZXF1ZXN0cycpIH19PC9oMz5cclxuICAgIDxkcy1idXR0b24gY2xhc3M9XCJjbG9zZS1zaWRlbmF2XCIgKGNsaWNrKT1cInNpZGVuYXZTZXJ2aWNlLmNsb3NlU2lkZW5hdigpXCIgaWNvbj5cclxuICAgICAgPGRzLWljb24gaWNvbj1cImNsb3NlXCIgY2xhc3M9XCJmcy0yMCBmYy1ibGFja1wiPjwvZHMtaWNvbj5cclxuICAgIDwvZHMtYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwic2lkZW5hdi1ib2R5IGJjLWxpZ2h0LWdyYXlcIj5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwicC0zXCI+XHJcbiAgICAgIDxoZWFkZXIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGdhcC0yIG1iLTNcIj5cclxuICAgICAgICA8aDIgY2xhc3M9XCJmcy0yMCBmdy1tZWRpdW0gZmMtYmxhY2sgbWItMCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtZ3Jvdy0xIGdhcC0zXCI+XHJcbiAgICAgICAgICB7eyBpMThuLnRyYW5zbGF0ZSgnQWxsUmVxdWVzdHMnKSB9fVxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZS1jb3VudCBmcy0xNCBmdy1ub3JtYWxcIj57eyBwcmV2aW91c1JlcXVlc3RzPy5sZW5ndGggPyBwcmV2aW91c1JlcXVlc3RzPy5sZW5ndGggOiAnMCcgfX08L3NwYW4+XHJcbiAgICAgICAgPC9oMj5cclxuICAgICAgICA8ZHMtYnV0dG9uIGljb24gc2l6ZT1cInNtYWxsXCIgKGNsaWNrKT1cImlzT3BlbiA9ICFpc09wZW5cIiBjZGtPdmVybGF5T3JpZ2luICN0cmlnZ2VyPVwiY2RrT3ZlcmxheU9yaWdpblwiPlxyXG4gICAgICAgICAgPGRzLWljb24gaWNvbj1cImZpbHRlclwiIGNsYXNzPVwiZmMtY29yYWwgZnMtMjBcIiBzbG90PVwicHJlZml4XCI+PC9kcy1pY29uPlxyXG4gICAgICAgIDwvZHMtYnV0dG9uPlxyXG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cFxyXG4gICAgICAgICAgY2xhc3M9XCJpY29uLXRvZ2dsZSBmbGV4LW5vd3JhcFwiXHJcbiAgICAgICAgICAjcGFnZVZpZXc9XCJtYXRCdXR0b25Ub2dnbGVHcm91cFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgIHZhbHVlPVwibGlzdFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwiY2FyZFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNmaSBzZmktY2FyZCBmcy0yMFwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XHJcbiAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJsaXN0XCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2ZpIHNmaS1saXN0LWRvdHMgZnMtMjBcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XHJcbiAgICAgIDwvaGVhZGVyPlxyXG5cclxuICAgICAgQGlmIChwcmV2aW91c1JlcXVlc3RzPy5sZW5ndGgpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGlzdG9yeS1jYXJkcy1jb250YWluZXJcIiAqbmdJZj1cInBhZ2VWaWV3LnZhbHVlID09PSAnY2FyZCdcIj5cclxuICAgICAgICAgIEBpZiAobG9hZGluZykge1xyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLTQgbGluZS1oZWlnaHQtMSBiYy13aGl0ZSByYWRpdXMtNiBib3gtc2hhZG93XCIgKm5nRm9yPVwibGV0IHJvdyBvZiBbMCwxLDIsM11cIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwibG9hZGluZy1iZyBmcy0xNiBmdy1tZWRpdW0gZmxleC1ncm93LTEgbWItMCBjdXJzb3ItcG9pbnRlciB1bmRlcmxpbmUgZnctYm9sZFwiPjwvaDM+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gY29sLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTExIGZjLWRhcmstZ3JheSBtYi0yIGxvYWRpbmctYmdcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xMiBmdy1tZWRpdW0gZmMtYmxhY2sgbG9hZGluZy1iZ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gY29sLTYganVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtNCBsaW5lLWhlaWdodC0xIGJjLXdoaXRlIHJhZGl1cy02IGJveC1zaGFkb3dcIiAqbmdGb3I9XCJsZXQgcm93IG9mIHByZXZpb3VzUmVxdWVzdHNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8aDNcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmcy0xNiBmdy1tZWRpdW0gZmxleC1ncm93LTEgbWItMCBjdXJzb3ItcG9pbnRlciB1bmRlcmxpbmUgZnctYm9sZFwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ2aWV3Rm9ybShyb3c/LmZvcm0/LlsnZm9ybUlkJ10pXCI+e3sgcm93Py5mb3JtPy5bJ2Zvcm1JZCddIH19PC9oMz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBjb2wtNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTExIGZjLWRhcmstZ3JheSBtYi0yXCI+e3sgaTE4bi50cmFuc2xhdGUoJ2Zvcm1UYWJsZUNyZWF0aW9uRGF0ZScpIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTEyIGZ3LW1lZGl1bSBmYy1ibGFja1wiPnt7IHJvdz8uZm9ybT8uWydjcmVhdGlvbkRhdGUnXSB8IGRhdGU6ICdkZC9NTS95eXl5IGhoOm1tIGEnIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGNvbC02IGp1c3RpZnktY29udGVudC1lbmQgYWxpZ24taXRlbXMtZW5kXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8ZHMtc3RhdHVzIFthdHRyLnN0YXR1c109XCJyb3c/LmZvcm0/LmZvcm1TdGF0dXM/LmtleSB8IHN0YXR1c0NsYXNzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgcm93Py5mb3JtPy5mb3JtU3RhdHVzPy52YWx1ZSB9fVxyXG4gICAgICAgICAgICAgICAgICA8L2RzLXN0YXR1cz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIiAqbmdJZj1cInBhZ2VWaWV3LnZhbHVlID09PSAnbGlzdCdcIj5cclxuICAgICAgICAgIDx0YWJsZSAqbmdJZj1cInByZXZpb3VzUmVxdWVzdHM/Lmxlbmd0aCAmJiAhbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGg+e3sgaTE4bi50cmFuc2xhdGUoJ2Zvcm1UYWJsZUZvcm1JZCcpIH19PC90aD5cclxuICAgICAgICAgICAgICA8dGg+e3sgaTE4bi50cmFuc2xhdGUoJ2Zvcm1UYWJsZUNyZWF0aW9uRGF0ZScpIH19PC90aD5cclxuICAgICAgICAgICAgICA8dGg+e3sgaTE4bi50cmFuc2xhdGUoJ1N0YXR1cycpIH19PC90aD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuXHJcbiAgICAgICAgICAgIDx0Ym9keSAqbmdGb3I9XCJsZXQgcm93IG9mIHByZXZpb3VzUmVxdWVzdHNcIj5cclxuICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctbWVkaXVtIGN1cnNvci1wb2ludGVyIHVuZGVybGluZSBmdy1ib2xkIFwiIChjbGljayk9XCJ2aWV3Rm9ybShyb3c/LmZvcm0/LlsnZm9ybUlkJ10pXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IHJvdz8uZm9ybT8uWydmb3JtSWQnXSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPnt7IHJvdz8uZm9ybT8uWydjcmVhdGlvbkRhdGUnXSAgfCBkYXRlOiAnZGQvTU0veXl5eSBoaDptbSBhJyB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgPGRzLXN0YXR1cyBbYXR0ci5zdGF0dXNdPVwicm93Py5mb3JtPy5mb3JtU3RhdHVzPy5rZXkgfCBzdGF0dXNDbGFzc1wiPlxyXG4gICAgICAgICAgICAgICAgICB7eyByb3c/LmZvcm0/LmZvcm1TdGF0dXM/LnZhbHVlIH19XHJcbiAgICAgICAgICAgICAgICA8L2RzLXN0YXR1cz5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgIDxkcy1sb2FkaW5nLXRhYmxlICpuZ0lmPVwibG9hZGluZ1wiIFtjb2xzXT1cIjRcIiBbcm93c109XCI0XCI+PC9kcy1sb2FkaW5nLXRhYmxlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZW1wdHlNZXNzYWdlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIH1cclxuICAgIDwvc2VjdGlvbj5cclxuICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG5cclxuPG5nLXRlbXBsYXRlXHJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVxyXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3BdPVwidHJ1ZVwiXHJcbiAgKGJhY2tkcm9wQ2xpY2spPVwiaXNPcGVuID0gZmFsc2VcIlxyXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5R3Jvd0FmdGVyT3Blbl09XCJ0cnVlXCJcclxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyXCJcclxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9wZW5dPVwiaXNPcGVuXCJcclxuPlxyXG4gIDxmb3JtIFtmb3JtR3JvdXBdPVwiZmlsdGVyRm9ybUdyb3VwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicG9wdXAtaGVhZGVyIGJvcmRlci1ib3R0b20gcGItMlwiPlxyXG4gICAgICAgIDxoMyBjbGFzcz1cImZzLTE2IGZjLWJsYWNrIGZ3LW1lZGl1bVwiPnt7IGkxOG4udHJhbnNsYXRlKCdmaWx0ZXJzJykgfX08L2gzPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtNCBnYXAtbWQtMyBmaWx0ZXItc2VjdGlvbiBiYy13aGl0ZSBtdC0wIHB0LTNcIj5cclxuXHJcbiAgICAgICAgPGFwcC1jdXN0b20tc2VhcmNoYWJsZVxyXG4gICAgICAgICAgY2xhc3M9XCJzZWN0aW9uLWl0ZW1cIlxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3RhdHVzXCJcclxuICAgICAgICAgIGxhYmVsPVwie3sgaTE4bi50cmFuc2xhdGUoJ3N0YXR1cycpIH19XCJcclxuICAgICAgICAgIFtvcHRpb25zXT1cInN0YXR1c2VzXCJcclxuICAgICAgICAgIFtkaXNwbGF5ZWRMYWJlbF09XCIndmFsdWUnXCJcclxuICAgICAgICAgIFtrZXldPVwiJ2tleSdcIj5cclxuICAgICAgICA8L2FwcC1jdXN0b20tc2VhcmNoYWJsZT5cclxuXHJcbiAgICAgICAgPGFwcC1jdXN0b20tc2VhcmNoYWJsZVxyXG4gICAgICAgICAgY2xhc3M9XCJzZWN0aW9uLWl0ZW1cIlxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwieWVhclwiXHJcbiAgICAgICAgICBsYWJlbD1cInt7IGkxOG4udHJhbnNsYXRlKCd5ZWFyJykgfX1cIlxyXG4gICAgICAgICAgW29wdGlvbnNdPVwieWVhcnNPcHRpb25zXCJcclxuICAgICAgICAgIFtkaXNwbGF5ZWRMYWJlbF09XCIndmFsdWUnXCJcclxuICAgICAgICAgIFtrZXldPVwiJ2tleSdcIj5cclxuICAgICAgICA8L2FwcC1jdXN0b20tc2VhcmNoYWJsZT5cclxuXHJcbiAgICAgICAgPGFwcC1jdXN0b20tc2VhcmNoYWJsZVxyXG4gICAgICAgICAgY2xhc3M9XCJzZWN0aW9uLWl0ZW1cIlxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibW9udGhcIlxyXG4gICAgICAgICAgbGFiZWw9XCJ7eyBpMThuLnRyYW5zbGF0ZSgnbW9udGgnKSB9fVwiXHJcbiAgICAgICAgICBbb3B0aW9uc109XCJtb250aHNPcHRpb25zXCJcclxuICAgICAgICAgIFtkaXNwbGF5ZWRMYWJlbF09XCIndmFsdWUnXCJcclxuICAgICAgICAgIFtrZXldPVwiJ2tleSdcIj5cclxuICAgICAgICA8L2FwcC1jdXN0b20tc2VhcmNoYWJsZT5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTMgbXQtNFwiPlxyXG4gICAgICAgICAgPGRzLWJ1dHRvbiBzaGFwZT1cIm91dGxpbmVcIiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwiY2xlYXJGaWx0ZXJzKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmcy0xMlwiPiB7eyBpMThuLnRyYW5zbGF0ZSgnY2xlYXInKSB9fSA8L3NwYW4+XHJcbiAgICAgICAgICA8L2RzLWJ1dHRvbj5cclxuICAgICAgICAgIDxkcy1idXR0b24gY2xhc3M9XCJ3LTEwMFwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJhcHBseUZpbHRlcnMoKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZzLTEyXCI+e3sgaTE4bi50cmFuc2xhdGUoJ2FwcGx5RmlsdGVycycpIH19ICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2RzLWJ1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Zvcm0+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuPG5nLXRlbXBsYXRlICNlbXB0eU1lc3NhZ2U+XHJcbiAgPGRzLW1lc3NhZ2UgbGFiZWw9XCJ7e2kxOG4udHJhbnNsYXRlKCdOb0RhdGEnKX19XCI+PC9kcy1tZXNzYWdlPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=