bpm-core 0.0.18 → 0.0.19

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 (24) hide show
  1. package/esm2022/lib/app/app.component.mjs +22 -12
  2. package/esm2022/lib/components/app-component-sections/form-section/form-section.component.mjs +5 -5
  3. package/esm2022/lib/components/app-component-sections/service-header/service-header.component.mjs +8 -5
  4. package/esm2022/lib/components/app-component-sections/workflow-section/workflow-section.component.mjs +4 -4
  5. package/esm2022/lib/interfaces/form.interface.mjs +1 -1
  6. package/esm2022/lib/services/core.service.ts.mjs +299 -168
  7. package/esm2022/lib/testComponent/config/segment-dynamic-loader.config.mjs +8 -0
  8. package/esm2022/lib/testComponent/general-approver-section/general-approver-section.component.mjs +52 -0
  9. package/esm2022/lib/testComponent/services/i18n.service.mjs +39 -0
  10. package/esm2022/lib/testComponent/services/segment-dynamic-loader.service.mjs +54 -0
  11. package/esm2022/lib/testComponent/services/state-machine.service.mjs +148 -0
  12. package/fesm2022/bpm-core.mjs +4774 -4352
  13. package/fesm2022/bpm-core.mjs.map +1 -1
  14. package/lib/app/app.component.d.ts +4 -2
  15. package/lib/components/app-component-sections/form-section/form-section.component.d.ts +1 -1
  16. package/lib/components/app-component-sections/service-header/service-header.component.d.ts +5 -5
  17. package/lib/interfaces/form.interface.d.ts +2 -2
  18. package/lib/services/core.service.ts.d.ts +1 -0
  19. package/lib/testComponent/config/segment-dynamic-loader.config.d.ts +8 -0
  20. package/lib/testComponent/general-approver-section/general-approver-section.component.d.ts +21 -0
  21. package/lib/testComponent/services/i18n.service.d.ts +11 -0
  22. package/lib/testComponent/services/segment-dynamic-loader.service.d.ts +17 -0
  23. package/lib/testComponent/services/state-machine.service.d.ts +29 -0
  24. package/package.json +1 -1
@@ -39,7 +39,6 @@ export class WorkflowSectionComponent {
39
39
  });*/
40
40
  }
41
41
  ngAfterViewChecked() {
42
- this.cdRef.detectChanges();
43
42
  if (this.formStateObject && this.form && !this.startedListener) {
44
43
  this.formStateObject.valueChanges.subscribe(
45
44
  /* istanbul ignore next */
@@ -56,6 +55,7 @@ export class WorkflowSectionComponent {
56
55
  this.startedListener = true;
57
56
  }
58
57
  this.checkButtons();
58
+ this.cdRef.detectChanges();
59
59
  }
60
60
  /* isSubmitting = {};
61
61
  disableButtons = false;*/
@@ -121,7 +121,7 @@ export class WorkflowSectionComponent {
121
121
  });
122
122
  }
123
123
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WorkflowSectionComponent, deps: [{ token: i1.CoreI18nService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
124
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: WorkflowSectionComponent, isStandalone: true, selector: "app-workflow-section", inputs: { sections: "sections", isReadOnly: "isReadOnly", isLoading: "isLoading", form: "form", contentClass: "contentClass", sectionsController: "sectionsController", segmentDynamicLoaderService: "segmentDynamicLoaderService", sectionFormComponent: "sectionFormComponent", sectionName: "sectionName" }, outputs: { sectionSubmitted: "sectionSubmitted" }, viewQueries: [{ propertyName: "formStateObject", first: true, predicate: ["f"], descendants: true }], ngImport: i0, template: "<form #f=\"ngForm\" autocomplete=\"off\">\r\n <div *ngIf=\"form?.header?.status?.key !== 'NEW' \" class=\"mt-n3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n <app-main-request-details [lov]=\"form?.lovs\" [form]=\"form\" [section]=\"sections[0]\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </app-main-request-details>\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"sections.length > 1\">\r\n {{i18n.translate('Approvals')}}\r\n </header>\r\n <mat-accordion class=\"primary-accordion main-approval\">\r\n <ng-container *ngFor=\"let section of sections; let i = index\">\r\n <app-form-section *ngIf=\"i !== 0\" class=\"app-form-section\" [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\" [section]=section [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\" [form]=\"form\" [controllers]=\"sectionsController\">\r\n </app-form-section>\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n\r\n <section *ngIf=\"form?.header?.status?.key === 'NEW' \" class=\"default-box box-shadow p-4\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </section>\r\n\r\n</form>\r\n\r\n\r\n<ng-template #contentReqDet><ng-content></ng-content></ng-template>\r\n", styles: ["@charset \"UTF-8\";.primary-accordion{--accordion-height: auto;--indicator-bc: transparent;--indicator-bc-active: transparent;--indicator-icon: \"\\e9bc\";--indicator-icon-active: \"\\ea34\";--indicator-color: var(--coral);--indicator-color-active: var(--dark-gray);--accordion-radius: 4px;--accordion-border-active: 1px solid var(--gray);--accordion-shadow: 0 7px 10px 0 rgba(var(--rgb-black), 3%);--accordion-shadow-active: none;--panel-padding: 1.5rem;--panel-body-padding: 0 1.5rem 1.5rem}@media (max-width: 576px){.primary-accordion{--accordion-height: 110px;--panel-padding: 1.5rem 1rem;--panel-body-padding: 0 1rem 1rem}}.primary-accordion.main-approval{position:relative}.primary-accordion.main-approval:before{content:\"\";position:absolute;top:0;bottom:0;margin:2rem;width:1px;height:calc(100% - 2rem);background-color:var(--dark-gray);z-index:0}@media (max-width: 576px){.workflow-all-btns ds-button::part(base){--btn-padding: 0 .5rem;--btn-fs: .75rem;--btn-height: var(--default-size-sm);--btn-min-width: var(--default-size-sm)}}\n"], dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormSectionComponent, selector: "app-form-section", inputs: ["requestDetails", "section", "form", "lov", "isReadOnly", "isOpen", "isFinalApproval", "controllers", "segmentDynamicLoaderService", "sectionFormComponent", "sectionName"] }, { kind: "component", type: MainRequestDetailsComponent, selector: "app-main-request-details", inputs: ["section", "lov", "form"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
124
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: WorkflowSectionComponent, isStandalone: true, selector: "app-workflow-section", inputs: { sections: "sections", isReadOnly: "isReadOnly", isLoading: "isLoading", form: "form", contentClass: "contentClass", sectionsController: "sectionsController", segmentDynamicLoaderService: "segmentDynamicLoaderService", sectionFormComponent: "sectionFormComponent", sectionName: "sectionName" }, outputs: { sectionSubmitted: "sectionSubmitted" }, viewQueries: [{ propertyName: "formStateObject", first: true, predicate: ["f"], descendants: true }], ngImport: i0, template: "<form #f=\"ngForm\" autocomplete=\"off\">\r\n <div *ngIf=\"form?.header?.status?.key !== 'NEW' \" class=\"mt-n3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n <app-main-request-details [lov]=\"form?.lovs\" [form]=\"form\" [section]=\"form?.sections[0]\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </app-main-request-details>\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"form?.sections.length > 1\">\r\n {{i18n.translate('Approvals')}}\r\n </header>\r\n <mat-accordion class=\"primary-accordion main-approval\">\r\n <ng-container *ngFor=\"let section of form?.sections; let i = index\">\r\n <app-form-section *ngIf=\"i !== 0\" class=\"app-form-section\" [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\" [section]=section [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\" [form]=\"form\" [controllers]=\"sectionsController\">\r\n </app-form-section>\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n\r\n <section *ngIf=\"form?.header?.status?.key === 'NEW' \" class=\"default-box box-shadow p-4\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </section>\r\n\r\n</form>\r\n\r\n\r\n<ng-template #contentReqDet><ng-content></ng-content></ng-template>\r\n", styles: ["@charset \"UTF-8\";.primary-accordion{--accordion-height: auto;--indicator-bc: transparent;--indicator-bc-active: transparent;--indicator-icon: \"\\e9bc\";--indicator-icon-active: \"\\ea34\";--indicator-color: var(--coral);--indicator-color-active: var(--dark-gray);--accordion-radius: 4px;--accordion-border-active: 1px solid var(--gray);--accordion-shadow: 0 7px 10px 0 rgba(var(--rgb-black), 3%);--accordion-shadow-active: none;--panel-padding: 1.5rem;--panel-body-padding: 0 1.5rem 1.5rem}@media (max-width: 576px){.primary-accordion{--accordion-height: 110px;--panel-padding: 1.5rem 1rem;--panel-body-padding: 0 1rem 1rem}}.primary-accordion.main-approval{position:relative}.primary-accordion.main-approval:before{content:\"\";position:absolute;top:0;bottom:0;margin:2rem;width:1px;height:calc(100% - 2rem);background-color:var(--dark-gray);z-index:0}@media (max-width: 576px){.workflow-all-btns ds-button::part(base){--btn-padding: 0 .5rem;--btn-fs: .75rem;--btn-height: var(--default-size-sm);--btn-min-width: var(--default-size-sm)}}\n"], dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormSectionComponent, selector: "app-form-section", inputs: ["requestDetails", "section", "form", "lov", "isReadOnly", "isOpen", "isFinalApproval", "controllers", "segmentDynamicLoaderService", "sectionFormComponent", "sectionName"] }, { kind: "component", type: MainRequestDetailsComponent, selector: "app-main-request-details", inputs: ["section", "lov", "form"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
125
125
  }
126
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WorkflowSectionComponent, decorators: [{
127
127
  type: Component,
@@ -134,7 +134,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
134
134
  MainRequestDetailsComponent,
135
135
  NgForOf,
136
136
  FormsModule
137
- ], standalone: true, template: "<form #f=\"ngForm\" autocomplete=\"off\">\r\n <div *ngIf=\"form?.header?.status?.key !== 'NEW' \" class=\"mt-n3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n <app-main-request-details [lov]=\"form?.lovs\" [form]=\"form\" [section]=\"sections[0]\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </app-main-request-details>\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"sections.length > 1\">\r\n {{i18n.translate('Approvals')}}\r\n </header>\r\n <mat-accordion class=\"primary-accordion main-approval\">\r\n <ng-container *ngFor=\"let section of sections; let i = index\">\r\n <app-form-section *ngIf=\"i !== 0\" class=\"app-form-section\" [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\" [section]=section [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\" [form]=\"form\" [controllers]=\"sectionsController\">\r\n </app-form-section>\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n\r\n <section *ngIf=\"form?.header?.status?.key === 'NEW' \" class=\"default-box box-shadow p-4\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </section>\r\n\r\n</form>\r\n\r\n\r\n<ng-template #contentReqDet><ng-content></ng-content></ng-template>\r\n", styles: ["@charset \"UTF-8\";.primary-accordion{--accordion-height: auto;--indicator-bc: transparent;--indicator-bc-active: transparent;--indicator-icon: \"\\e9bc\";--indicator-icon-active: \"\\ea34\";--indicator-color: var(--coral);--indicator-color-active: var(--dark-gray);--accordion-radius: 4px;--accordion-border-active: 1px solid var(--gray);--accordion-shadow: 0 7px 10px 0 rgba(var(--rgb-black), 3%);--accordion-shadow-active: none;--panel-padding: 1.5rem;--panel-body-padding: 0 1.5rem 1.5rem}@media (max-width: 576px){.primary-accordion{--accordion-height: 110px;--panel-padding: 1.5rem 1rem;--panel-body-padding: 0 1rem 1rem}}.primary-accordion.main-approval{position:relative}.primary-accordion.main-approval:before{content:\"\";position:absolute;top:0;bottom:0;margin:2rem;width:1px;height:calc(100% - 2rem);background-color:var(--dark-gray);z-index:0}@media (max-width: 576px){.workflow-all-btns ds-button::part(base){--btn-padding: 0 .5rem;--btn-fs: .75rem;--btn-height: var(--default-size-sm);--btn-min-width: var(--default-size-sm)}}\n"] }]
137
+ ], standalone: true, template: "<form #f=\"ngForm\" autocomplete=\"off\">\r\n <div *ngIf=\"form?.header?.status?.key !== 'NEW' \" class=\"mt-n3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n <app-main-request-details [lov]=\"form?.lovs\" [form]=\"form\" [section]=\"form?.sections[0]\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </app-main-request-details>\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"form?.sections.length > 1\">\r\n {{i18n.translate('Approvals')}}\r\n </header>\r\n <mat-accordion class=\"primary-accordion main-approval\">\r\n <ng-container *ngFor=\"let section of form?.sections; let i = index\">\r\n <app-form-section *ngIf=\"i !== 0\" class=\"app-form-section\" [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\" [section]=section [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\" [form]=\"form\" [controllers]=\"sectionsController\">\r\n </app-form-section>\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n\r\n <section *ngIf=\"form?.header?.status?.key === 'NEW' \" class=\"default-box box-shadow p-4\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </section>\r\n\r\n</form>\r\n\r\n\r\n<ng-template #contentReqDet><ng-content></ng-content></ng-template>\r\n", styles: ["@charset \"UTF-8\";.primary-accordion{--accordion-height: auto;--indicator-bc: transparent;--indicator-bc-active: transparent;--indicator-icon: \"\\e9bc\";--indicator-icon-active: \"\\ea34\";--indicator-color: var(--coral);--indicator-color-active: var(--dark-gray);--accordion-radius: 4px;--accordion-border-active: 1px solid var(--gray);--accordion-shadow: 0 7px 10px 0 rgba(var(--rgb-black), 3%);--accordion-shadow-active: none;--panel-padding: 1.5rem;--panel-body-padding: 0 1.5rem 1.5rem}@media (max-width: 576px){.primary-accordion{--accordion-height: 110px;--panel-padding: 1.5rem 1rem;--panel-body-padding: 0 1rem 1rem}}.primary-accordion.main-approval{position:relative}.primary-accordion.main-approval:before{content:\"\";position:absolute;top:0;bottom:0;margin:2rem;width:1px;height:calc(100% - 2rem);background-color:var(--dark-gray);z-index:0}@media (max-width: 576px){.workflow-all-btns ds-button::part(base){--btn-padding: 0 .5rem;--btn-fs: .75rem;--btn-height: var(--default-size-sm);--btn-min-width: var(--default-size-sm)}}\n"] }]
138
138
  }], ctorParameters: () => [{ type: i1.CoreI18nService }, { type: i0.ChangeDetectorRef }], propDecorators: { formStateObject: [{
139
139
  type: ViewChild,
140
140
  args: ['f']
@@ -159,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
159
159
  }], sectionName: [{
160
160
  type: Input
161
161
  }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvYXBwLWNvbXBvbmVudC1zZWN0aW9ucy93b3JrZmxvdy1zZWN0aW9uL3dvcmtmbG93LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvd29ya2Zsb3ctc2VjdGlvbi93b3JrZmxvdy1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxXQUFXLEVBQVMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRCxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sd0RBQXdELENBQUM7Ozs7QUFtQm5HLE1BQU0sT0FBTyx3QkFBd0I7SUFnQjFCO0lBQ0M7SUFoQmEsZUFBZSxDQUFTO0lBQ3JDLGdCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzFELFFBQVEsQ0FBWTtJQUNwQixVQUFVLENBQVU7SUFDcEIsU0FBUyxDQUFVO0lBQ25CLElBQUks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SUFBSSxVQUFVO2dCQUN6QixJQUFJLEVBQUUsS0FBSyxJQUFJLFFBQVE7Z0JBQ3ZCLElBQUksRUFBRSxLQUFLLElBQUksUUFBUSxFQUN2QixDQUFDO2dCQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBMUhVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLHloQkMzQnJDLDQxQ0EwQkEsNmtDRFRJLFlBQVksK0lBQ1osZ0JBQWdCLG9KQUNoQixJQUFJLDZGQUNKLG9CQUFvQixtUEFDcEIsMkJBQTJCLHlHQUMzQixPQUFPLGtIQUNQLFdBQVc7OzJGQUlGLHdCQUF3QjtrQkFqQnBDLFNBQVM7K0JBQ0Usc0JBQXNCLFdBR3ZCLENBQUMsc0JBQXNCLENBQUMsV0FDeEI7d0JBQ1AsT0FBTzt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsSUFBSTt3QkFDSixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0IsT0FBTzt3QkFDUCxXQUFXO3FCQUNaLGNBQ1csSUFBSTtvSEFHTyxlQUFlO3NCQUFyQyxTQUFTO3VCQUFDLEdBQUc7Z0JBQ0osZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIE5nRm9ybX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0Zvcm0sIFNlY3Rpb259IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQge0NvcmVJMThuU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge05nQ2xhc3MsIE5nRm9yT2YsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7TWF0QWNjb3JkaW9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQge0Zvcm1TZWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi9mb3JtLXNlY3Rpb24vZm9ybS1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TWFpblJlcXVlc3REZXRhaWxzQ29tcG9uZW50fSBmcm9tICcuLi9tYWluLXJlcXVlc3QtZGV0YWlscy9tYWluLXJlcXVlc3QtZGV0YWlscy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd29ya2Zsb3ctc2VjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtmbG93LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dvcmtmbG93LXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIE1hdEFjY29yZGlvbixcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBOZ0lmLFxyXG4gICAgRm9ybVNlY3Rpb25Db21wb25lbnQsXHJcbiAgICBNYWluUmVxdWVzdERldGFpbHNDb21wb25lbnQsXHJcbiAgICBOZ0Zvck9mLFxyXG4gICAgRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtmbG93U2VjdGlvbkNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnZicpIHB1YmxpYyBmb3JtU3RhdGVPYmplY3Q6IE5nRm9ybTtcclxuICBAT3V0cHV0KCkgc2VjdGlvblN1Ym1pdHRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgc2VjdGlvbnM6IFNlY3Rpb25bXTtcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlzTG9hZGluZzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtO1xyXG4gIEBJbnB1dCgpIGNvbnRlbnRDbGFzcyA9ICdkZWZhdWx0LWJveCBib3gtc2hhZG93IHAtNCc7XHJcbiAgc3RhcnRlZExpc3RlbmVyID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VjdGlvbnNDb250cm9sbGVyOiBhbnk7XHJcbiAgc2hvd0J1dHRvbk1lbnUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWdtZW50RHluYW1pY0xvYWRlclNlcnZpY2UgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHNlY3Rpb25Gb3JtQ29tcG9uZW50ID0gbnVsbDtcclxuICBASW5wdXQoKSBzZWN0aW9uTmFtZSA9IGNvbnN0YW50cy5TRUNUSU9OX0lEX1JFUVVFU1RfREVUQUlMUztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaTE4bjogQ29yZUkxOG5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbi8qICAgIF9saXN0ZW5lclNlcnZpY2UubGlzdGVuKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0Py5mdW5jdGlvbiA9PSAncmVzZXRGb3JtJykge1xyXG4gICAgICAgIHRoaXMucmVzZXRGb3JtKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0Py5mdW5jdGlvbiA9PSAnb25TdWJtaXQnKSB7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvblNpemUgPSB0aGlzLnNlY3Rpb25zLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuc2VjdGlvbnNbc2VjdGlvblNpemVdO1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHQuZGF0YSA/IHJlc3VsdC5kYXRhIDogc2VjdGlvbjtcclxuICAgICAgICB0aGlzLm9uU3VibWl0KHJlc3VsdD8uYWN0aW9uLCBkYXRhKTtcclxuICAgICAgfVxyXG4gICAgfSk7Ki9cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgaWYgKHRoaXMuZm9ybVN0YXRlT2JqZWN0ICYmIHRoaXMuZm9ybSAmJiAhdGhpcy5zdGFydGVkTGlzdGVuZXIpIHtcclxuICAgICAgdGhpcy5mb3JtU3RhdGVPYmplY3QudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShcclxuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cclxuICAgICAgICAoZm9ybSkgPT4ge1xyXG4gICAgICAgICAgT2JqZWN0LmtleXMoZm9ybSkuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25zW3RoaXMuc2VjdGlvbnMubGVuZ3RoIC0gMV0uYm9keS5kZXRhaWxzW2tleV0gIT09XHJcbiAgICAgICAgICAgICAgZm9ybVtrZXldICYmXHJcbiAgICAgICAgICAgICAgZm9ybVtrZXldICE9PSB1bmRlZmluZWRcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIHRoaXMuc2VjdGlvbnNbdGhpcy5zZWN0aW9ucy5sZW5ndGggLSAxXS5ib2R5LmRldGFpbHNba2V5XSA9XHJcbiAgICAgICAgICAgICAgICBmb3JtW2tleV07XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuc2VjdGlvbnNDb250cm9sbGVyID0gdGhpcy5mb3JtU3RhdGVPYmplY3QuY29udHJvbHM7XHJcbiAgICAgIHRoaXMuc3RhcnRlZExpc3RlbmVyID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIHRoaXMuY2hlY2tCdXR0b25zKCk7XHJcbiAgfVxyXG5cclxuLyogIGlzU3VibWl0dGluZyA9IHt9O1xyXG4gIGRpc2FibGVCdXR0b25zID0gZmFsc2U7Ki9cclxuXHJcbi8qICBvblN1Ym1pdChhY3Rpb246IGFueSwgc2VjdGlvbjogYW55KSB7XHJcbiAgICBjb25zdCBzZWN0aW9uU2l6ZSA9IHRoaXMuc2VjdGlvbnMubGVuZ3RoIC0gMTtcclxuICAgIGxldCBzZWN0aW9uRGVjaXNpb24gPSB0aGlzLnNlY3Rpb25zW3NlY3Rpb25TaXplXS5ib2R5LmRldGFpbHMuZGVjaXNpb247XHJcbiAgICBpZiAoc2VjdGlvbkRlY2lzaW9uICYmIGFjdGlvbiA9PT0gJ1NVQk1JVCcpIHtcclxuICAgICAgc2VjdGlvbkRlY2lzaW9uID0geyBrZXk6IGFjdGlvbiB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHNlY3Rpb25EZWNpc2lvbiAmJiBhY3Rpb24gIT09ICdTVUJNSVQnKSB7XHJcbiAgICAgIHNlY3Rpb25EZWNpc2lvbiA9IHsga2V5OiBhY3Rpb24gfTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VjdGlvbnNbc2VjdGlvblNpemVdLmJvZHkuZGV0YWlscy5kZWNpc2lvbiA9IHNlY3Rpb25EZWNpc2lvbjtcclxuICAgIHRoaXMucHJvZmlsZVJlcXVlc3RlclNlcnZpY2UuaXNTdWJtaXR0aW5nW2FjdGlvbl0gPSB0cnVlO1xyXG4gICAgdGhpcy5wcm9maWxlUmVxdWVzdGVyU2VydmljZS5kaXNhYmxlQnV0dG9ucyA9IHRydWU7XHJcbiAgICB0aGlzLnN0YXRlTWFjaGluZVNlcnZpY2VcclxuICAgICAgLmRpc3BhdGNoKFxyXG4gICAgICAgIGNvbnN0YW50cy5TVEFURV9NQUNISU5FX0FDVElPTl9TVUJNSVRfRk9STSxcclxuICAgICAgICBzZWN0aW9uLFxyXG4gICAgICAgIGFjdGlvblxyXG4gICAgICApXHJcbiAgICAgIC50aGVuKChmb3JtOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnByb2ZpbGVSZXF1ZXN0ZXJTZXJ2aWNlLmlzU3VibWl0dGluZ1thY3Rpb25dID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnByb2ZpbGVSZXF1ZXN0ZXJTZXJ2aWNlLmRpc2FibGVCdXR0b25zID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCBvYmogPSB7XHJcbiAgICAgICAgICBmb3JtOiBmb3JtLFxyXG4gICAgICAgICAgYWN0aW9uOiBhY3Rpb25cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuc2VjdGlvblN1Ym1pdHRlZC5lbWl0KG9iaik7XHJcbiAgICAgIH0pO1xyXG4gIH0qL1xyXG5cclxuLyogIHJlc2V0Rm9ybSgpIHtcclxuICAgIHRoaXMuZm9ybVN0YXRlT2JqZWN0LnJlc2V0KCk7XHJcbiAgICB0aGlzLnJlc2V0UHJvcGFnYXRvci5wcm9wYWdhdGUoKTtcclxuICB9Ki9cclxuXHJcbiAgZ2V0IGlzRXhwYW5kYWJsZUZyb21CYWNrZW5kKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybT8uc2VjdGlvbnM/Lmxlbmd0aCAmJiB0aGlzLmZvcm0uc2VjdGlvbnMuc29tZShzZWN0aW9uID0+ICdleHBhbmRTdGFnZScgaW4gc2VjdGlvbj8uYm9keT8uZGV0YWlscyk7XHJcbiAgfVxyXG5cclxuICBidXR0b25UeXBlcyh0eXBlKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnQVBQUk9WRSc6XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICBjYXNlICdTRU5EQkFDSyc6XHJcbiAgICAgICAgcmV0dXJuICdyZWQnO1xyXG4gICAgICBjYXNlICdSRUpFQ1QnOlxyXG4gICAgICAgIHJldHVybiAncmVkJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0J1dHRvbnMoKSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5mb3JtPy5sb3ZzPy5kZWNpc2lvbj8ub3B0aW9ucztcclxuICAgIGlmICghQXJyYXkuaXNBcnJheShvcHRpb25zKSkgcmV0dXJuO1xyXG4gICAgb3B0aW9ucy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBpdGVtPy52YWx1ZSAhPSAnQVBQUk9WRScgJiZcclxuICAgICAgICBpdGVtPy52YWx1ZSAhPSAnUkVKRUNUJyAmJlxyXG4gICAgICAgIGl0ZW0/LnZhbHVlICE9ICdTRU5EQkFDSycgJiZcclxuICAgICAgICBpdGVtPy52YWx1ZSAhPSAnU1VCTUlUJyAmJlxyXG4gICAgICAgIGl0ZW0/LnZhbHVlICE9ICdDQU5DRUwnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbk1lbnUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gI2Y9XCJuZ0Zvcm1cIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICA8ZGl2ICpuZ0lmPVwiZm9ybT8uaGVhZGVyPy5zdGF0dXM/LmtleSAhPT0gJ05FVycgXCIgY2xhc3M9XCJtdC1uM1wiIGlkPVwiYWNjb3JkaW9uXCIgcm9sZT1cInRhYmxpc3RcIlxyXG4gICAgYXJpYS1tdWx0aXNlbGVjdGFibGU9XCJ0cnVlXCI+XHJcbiAgICA8YXBwLW1haW4tcmVxdWVzdC1kZXRhaWxzIFtsb3ZdPVwiZm9ybT8ubG92c1wiIFtmb3JtXT1cImZvcm1cIiBbc2VjdGlvbl09XCJzZWN0aW9uc1swXVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFJlcURldFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9hcHAtbWFpbi1yZXF1ZXN0LWRldGFpbHM+XHJcbiAgICA8aGVhZGVyIGNsYXNzPVwiaGVhZGVyLWxpbmUgZnMtMTIgZnctbWVkaXVtIGZjLWRhcmstZ3JheSBtdC1zbS01IG10LTQgbWItNFwiICpuZ0lmPVwic2VjdGlvbnMubGVuZ3RoID4gMVwiPlxyXG4gICAgICB7e2kxOG4udHJhbnNsYXRlKCdBcHByb3ZhbHMnKX19XHJcbiAgICA8L2hlYWRlcj5cclxuICAgIDxtYXQtYWNjb3JkaW9uIGNsYXNzPVwicHJpbWFyeS1hY2NvcmRpb24gbWFpbi1hcHByb3ZhbFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIHNlY3Rpb25zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPGFwcC1mb3JtLXNlY3Rpb24gKm5nSWY9XCJpICE9PSAwXCIgY2xhc3M9XCJhcHAtZm9ybS1zZWN0aW9uXCIgW3NlZ21lbnREeW5hbWljTG9hZGVyU2VydmljZV09XCJzZWdtZW50RHluYW1pY0xvYWRlclNlcnZpY2VcIiBbc2VjdGlvbl09c2VjdGlvbiBbbG92XT1cImZvcm0/LmxvdnNcIlxyXG4gICAgICAgICAgW2lzUmVhZE9ubHldPVwic2VjdGlvbi5oZWFkZXIucmVhZE9ubHlcIiBbZm9ybV09XCJmb3JtXCIgW2NvbnRyb2xsZXJzXT1cInNlY3Rpb25zQ29udHJvbGxlclwiPlxyXG4gICAgICAgIDwvYXBwLWZvcm0tc2VjdGlvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L21hdC1hY2NvcmRpb24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxzZWN0aW9uICpuZ0lmPVwiZm9ybT8uaGVhZGVyPy5zdGF0dXM/LmtleSA9PT0gJ05FVycgXCIgY2xhc3M9XCJkZWZhdWx0LWJveCBib3gtc2hhZG93IHAtNFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRSZXFEZXRcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L3NlY3Rpb24+XHJcblxyXG48L2Zvcm0+XHJcblxyXG5cclxuPG5nLXRlbXBsYXRlICNjb250ZW50UmVxRGV0PjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPlxyXG4iXX0=
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvYXBwLWNvbXBvbmVudC1zZWN0aW9ucy93b3JrZmxvdy1zZWN0aW9uL3dvcmtmbG93LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvd29ya2Zsb3ctc2VjdGlvbi93b3JrZmxvdy1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxXQUFXLEVBQVMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRCxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sd0RBQXdELENBQUM7Ozs7QUFtQm5HLE1BQU0sT0FBTyx3QkFBd0I7SUFnQjFCO0lBQ0M7SUFoQmEsZUFBZSxDQUFTO0lBQ3JDLGdCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzFELFFBQVEsQ0FBWTtJQUNwQixVQUFVLENBQVU7SUFDcEIsU0FBUyxDQUFVO0lBQ25CLElBQUks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SUFBSSxVQUFVO2dCQUN6QixJQUFJLEVBQUUsS0FBSyxJQUFJLFFBQVE7Z0JBQ3ZCLElBQUksRUFBRSxLQUFLLElBQUksUUFBUSxFQUN2QixDQUFDO2dCQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBMUhVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLHloQkMzQnJDLDgyQ0EwQkEsNmtDRFRJLFlBQVksK0lBQ1osZ0JBQWdCLG9KQUNoQixJQUFJLDZGQUNKLG9CQUFvQixtUEFDcEIsMkJBQTJCLHlHQUMzQixPQUFPLGtIQUNQLFdBQVc7OzJGQUlGLHdCQUF3QjtrQkFqQnBDLFNBQVM7K0JBQ0Usc0JBQXNCLFdBR3ZCLENBQUMsc0JBQXNCLENBQUMsV0FDeEI7d0JBQ1AsT0FBTzt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsSUFBSTt3QkFDSixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0IsT0FBTzt3QkFDUCxXQUFXO3FCQUNaLGNBQ1csSUFBSTtvSEFHTyxlQUFlO3NCQUFyQyxTQUFTO3VCQUFDLEdBQUc7Z0JBQ0osZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIE5nRm9ybX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0Zvcm0sIFNlY3Rpb259IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQge0NvcmVJMThuU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge05nQ2xhc3MsIE5nRm9yT2YsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7TWF0QWNjb3JkaW9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQge0Zvcm1TZWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi9mb3JtLXNlY3Rpb24vZm9ybS1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TWFpblJlcXVlc3REZXRhaWxzQ29tcG9uZW50fSBmcm9tICcuLi9tYWluLXJlcXVlc3QtZGV0YWlscy9tYWluLXJlcXVlc3QtZGV0YWlscy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd29ya2Zsb3ctc2VjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtmbG93LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dvcmtmbG93LXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIE1hdEFjY29yZGlvbixcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBOZ0lmLFxyXG4gICAgRm9ybVNlY3Rpb25Db21wb25lbnQsXHJcbiAgICBNYWluUmVxdWVzdERldGFpbHNDb21wb25lbnQsXHJcbiAgICBOZ0Zvck9mLFxyXG4gICAgRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtmbG93U2VjdGlvbkNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnZicpIHB1YmxpYyBmb3JtU3RhdGVPYmplY3Q6IE5nRm9ybTtcclxuICBAT3V0cHV0KCkgc2VjdGlvblN1Ym1pdHRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgc2VjdGlvbnM6IFNlY3Rpb25bXTtcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlzTG9hZGluZzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtO1xyXG4gIEBJbnB1dCgpIGNvbnRlbnRDbGFzcyA9ICdkZWZhdWx0LWJveCBib3gtc2hhZG93IHAtNCc7XHJcbiAgc3RhcnRlZExpc3RlbmVyID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VjdGlvbnNDb250cm9sbGVyOiBhbnk7XHJcbiAgc2hvd0J1dHRvbk1lbnUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWdtZW50RHluYW1pY0xvYWRlclNlcnZpY2UgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHNlY3Rpb25Gb3JtQ29tcG9uZW50ID0gbnVsbDtcclxuICBASW5wdXQoKSBzZWN0aW9uTmFtZSA9IGNvbnN0YW50cy5TRUNUSU9OX0lEX1JFUVVFU1RfREVUQUlMUztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaTE4bjogQ29yZUkxOG5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbi8qICAgIF9saXN0ZW5lclNlcnZpY2UubGlzdGVuKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0Py5mdW5jdGlvbiA9PSAncmVzZXRGb3JtJykge1xyXG4gICAgICAgIHRoaXMucmVzZXRGb3JtKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0Py5mdW5jdGlvbiA9PSAnb25TdWJtaXQnKSB7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvblNpemUgPSB0aGlzLnNlY3Rpb25zLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuc2VjdGlvbnNbc2VjdGlvblNpemVdO1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHQuZGF0YSA/IHJlc3VsdC5kYXRhIDogc2VjdGlvbjtcclxuICAgICAgICB0aGlzLm9uU3VibWl0KHJlc3VsdD8uYWN0aW9uLCBkYXRhKTtcclxuICAgICAgfVxyXG4gICAgfSk7Ki9cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgIGlmICh0aGlzLmZvcm1TdGF0ZU9iamVjdCAmJiB0aGlzLmZvcm0gJiYgIXRoaXMuc3RhcnRlZExpc3RlbmVyKSB7XHJcbiAgICAgIHRoaXMuZm9ybVN0YXRlT2JqZWN0LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXHJcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXHJcbiAgICAgICAgKGZvcm0pID0+IHtcclxuICAgICAgICAgIE9iamVjdC5rZXlzKGZvcm0pLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgdGhpcy5zZWN0aW9uc1t0aGlzLnNlY3Rpb25zLmxlbmd0aCAtIDFdLmJvZHkuZGV0YWlsc1trZXldICE9PVxyXG4gICAgICAgICAgICAgIGZvcm1ba2V5XSAmJlxyXG4gICAgICAgICAgICAgIGZvcm1ba2V5XSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25zW3RoaXMuc2VjdGlvbnMubGVuZ3RoIC0gMV0uYm9keS5kZXRhaWxzW2tleV0gPVxyXG4gICAgICAgICAgICAgICAgZm9ybVtrZXldO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnNlY3Rpb25zQ29udHJvbGxlciA9IHRoaXMuZm9ybVN0YXRlT2JqZWN0LmNvbnRyb2xzO1xyXG4gICAgICB0aGlzLnN0YXJ0ZWRMaXN0ZW5lciA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoZWNrQnV0dG9ucygpO1xyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuLyogIGlzU3VibWl0dGluZyA9IHt9O1xyXG4gIGRpc2FibGVCdXR0b25zID0gZmFsc2U7Ki9cclxuXHJcbi8qICBvblN1Ym1pdChhY3Rpb246IGFueSwgc2VjdGlvbjogYW55KSB7XHJcbiAgICBjb25zdCBzZWN0aW9uU2l6ZSA9IHRoaXMuc2VjdGlvbnMubGVuZ3RoIC0gMTtcclxuICAgIGxldCBzZWN0aW9uRGVjaXNpb24gPSB0aGlzLnNlY3Rpb25zW3NlY3Rpb25TaXplXS5ib2R5LmRldGFpbHMuZGVjaXNpb247XHJcbiAgICBpZiAoc2VjdGlvbkRlY2lzaW9uICYmIGFjdGlvbiA9PT0gJ1NVQk1JVCcpIHtcclxuICAgICAgc2VjdGlvbkRlY2lzaW9uID0geyBrZXk6IGFjdGlvbiB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHNlY3Rpb25EZWNpc2lvbiAmJiBhY3Rpb24gIT09ICdTVUJNSVQnKSB7XHJcbiAgICAgIHNlY3Rpb25EZWNpc2lvbiA9IHsga2V5OiBhY3Rpb24gfTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VjdGlvbnNbc2VjdGlvblNpemVdLmJvZHkuZGV0YWlscy5kZWNpc2lvbiA9IHNlY3Rpb25EZWNpc2lvbjtcclxuICAgIHRoaXMucHJvZmlsZVJlcXVlc3RlclNlcnZpY2UuaXNTdWJtaXR0aW5nW2FjdGlvbl0gPSB0cnVlO1xyXG4gICAgdGhpcy5wcm9maWxlUmVxdWVzdGVyU2VydmljZS5kaXNhYmxlQnV0dG9ucyA9IHRydWU7XHJcbiAgICB0aGlzLnN0YXRlTWFjaGluZVNlcnZpY2VcclxuICAgICAgLmRpc3BhdGNoKFxyXG4gICAgICAgIGNvbnN0YW50cy5TVEFURV9NQUNISU5FX0FDVElPTl9TVUJNSVRfRk9STSxcclxuICAgICAgICBzZWN0aW9uLFxyXG4gICAgICAgIGFjdGlvblxyXG4gICAgICApXHJcbiAgICAgIC50aGVuKChmb3JtOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnByb2ZpbGVSZXF1ZXN0ZXJTZXJ2aWNlLmlzU3VibWl0dGluZ1thY3Rpb25dID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnByb2ZpbGVSZXF1ZXN0ZXJTZXJ2aWNlLmRpc2FibGVCdXR0b25zID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCBvYmogPSB7XHJcbiAgICAgICAgICBmb3JtOiBmb3JtLFxyXG4gICAgICAgICAgYWN0aW9uOiBhY3Rpb25cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuc2VjdGlvblN1Ym1pdHRlZC5lbWl0KG9iaik7XHJcbiAgICAgIH0pO1xyXG4gIH0qL1xyXG5cclxuLyogIHJlc2V0Rm9ybSgpIHtcclxuICAgIHRoaXMuZm9ybVN0YXRlT2JqZWN0LnJlc2V0KCk7XHJcbiAgICB0aGlzLnJlc2V0UHJvcGFnYXRvci5wcm9wYWdhdGUoKTtcclxuICB9Ki9cclxuXHJcbiAgZ2V0IGlzRXhwYW5kYWJsZUZyb21CYWNrZW5kKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybT8uc2VjdGlvbnM/Lmxlbmd0aCAmJiB0aGlzLmZvcm0uc2VjdGlvbnMuc29tZShzZWN0aW9uID0+ICdleHBhbmRTdGFnZScgaW4gc2VjdGlvbj8uYm9keT8uZGV0YWlscyk7XHJcbiAgfVxyXG5cclxuICBidXR0b25UeXBlcyh0eXBlKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnQVBQUk9WRSc6XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICBjYXNlICdTRU5EQkFDSyc6XHJcbiAgICAgICAgcmV0dXJuICdyZWQnO1xyXG4gICAgICBjYXNlICdSRUpFQ1QnOlxyXG4gICAgICAgIHJldHVybiAncmVkJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0J1dHRvbnMoKSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5mb3JtPy5sb3ZzPy5kZWNpc2lvbj8ub3B0aW9ucztcclxuICAgIGlmICghQXJyYXkuaXNBcnJheShvcHRpb25zKSkgcmV0dXJuO1xyXG4gICAgb3B0aW9ucy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBpdGVtPy52YWx1ZSAhPSAnQVBQUk9WRScgJiZcclxuICAgICAgICBpdGVtPy52YWx1ZSAhPSAnUkVKRUNUJyAmJlxyXG4gICAgICAgIGl0ZW0/LnZhbHVlICE9ICdTRU5EQkFDSycgJiZcclxuICAgICAgICBpdGVtPy52YWx1ZSAhPSAnU1VCTUlUJyAmJlxyXG4gICAgICAgIGl0ZW0/LnZhbHVlICE9ICdDQU5DRUwnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbk1lbnUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gI2Y9XCJuZ0Zvcm1cIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICA8ZGl2ICpuZ0lmPVwiZm9ybT8uaGVhZGVyPy5zdGF0dXM/LmtleSAhPT0gJ05FVycgXCIgY2xhc3M9XCJtdC1uM1wiIGlkPVwiYWNjb3JkaW9uXCIgcm9sZT1cInRhYmxpc3RcIlxyXG4gICAgYXJpYS1tdWx0aXNlbGVjdGFibGU9XCJ0cnVlXCI+XHJcbiAgICA8YXBwLW1haW4tcmVxdWVzdC1kZXRhaWxzIFtsb3ZdPVwiZm9ybT8ubG92c1wiIFtmb3JtXT1cImZvcm1cIiBbc2VjdGlvbl09XCJmb3JtPy5zZWN0aW9uc1swXVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFJlcURldFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9hcHAtbWFpbi1yZXF1ZXN0LWRldGFpbHM+XHJcbiAgICA8aGVhZGVyIGNsYXNzPVwiaGVhZGVyLWxpbmUgZnMtMTIgZnctbWVkaXVtIGZjLWRhcmstZ3JheSBtdC1zbS01IG10LTQgbWItNFwiICpuZ0lmPVwiZm9ybT8uc2VjdGlvbnMubGVuZ3RoID4gMVwiPlxyXG4gICAgICB7e2kxOG4udHJhbnNsYXRlKCdBcHByb3ZhbHMnKX19XHJcbiAgICA8L2hlYWRlcj5cclxuICAgIDxtYXQtYWNjb3JkaW9uIGNsYXNzPVwicHJpbWFyeS1hY2NvcmRpb24gbWFpbi1hcHByb3ZhbFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGZvcm0/LnNlY3Rpb25zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPGFwcC1mb3JtLXNlY3Rpb24gKm5nSWY9XCJpICE9PSAwXCIgY2xhc3M9XCJhcHAtZm9ybS1zZWN0aW9uXCIgW3NlZ21lbnREeW5hbWljTG9hZGVyU2VydmljZV09XCJzZWdtZW50RHluYW1pY0xvYWRlclNlcnZpY2VcIiBbc2VjdGlvbl09c2VjdGlvbiBbbG92XT1cImZvcm0/LmxvdnNcIlxyXG4gICAgICAgICAgW2lzUmVhZE9ubHldPVwic2VjdGlvbi5oZWFkZXIucmVhZE9ubHlcIiBbZm9ybV09XCJmb3JtXCIgW2NvbnRyb2xsZXJzXT1cInNlY3Rpb25zQ29udHJvbGxlclwiPlxyXG4gICAgICAgIDwvYXBwLWZvcm0tc2VjdGlvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L21hdC1hY2NvcmRpb24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxzZWN0aW9uICpuZ0lmPVwiZm9ybT8uaGVhZGVyPy5zdGF0dXM/LmtleSA9PT0gJ05FVycgXCIgY2xhc3M9XCJkZWZhdWx0LWJveCBib3gtc2hhZG93IHAtNFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRSZXFEZXRcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L3NlY3Rpb24+XHJcblxyXG48L2Zvcm0+XHJcblxyXG5cclxuPG5nLXRlbXBsYXRlICNjb250ZW50UmVxRGV0PjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -147,4 +147,4 @@ export class InboxItem {
147
147
  this.isResponded = isResponded;
148
148
  }
149
149
  }
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2ludGVyZmFjZXMvZm9ybS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLElBQUk7SUFFTjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBUlQsWUFDUyxNQUFjLEVBQ2QsZUFBZ0MsRUFDaEMsWUFBNEIsRUFDNUIsU0FBb0IsRUFDcEIsUUFBbUIsRUFDbkIsSUFBUyxFQUNULFFBQXlCLEVBQUUsdUJBQXVCO0lBQ2xELG9CQUFxQztRQVByQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNULGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBaUI7SUFDM0MsQ0FBQztDQUNMO0FBRUQsTUFBTSxPQUFPLE1BQU07SUFFUjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFOVCxZQUNTLGFBQXFCLEVBQ3JCLGNBQXNCLEVBQ3RCLE1BQWUsRUFDZixZQUFxQixFQUNyQixNQUErQixFQUMvQixPQUFhO1FBTGIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUNmLGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQXlCO1FBQy9CLFlBQU8sR0FBUCxPQUFPLENBQU07SUFDbkIsQ0FBQztDQUNMO0FBRUQsTUFBTSxPQUFPLGVBQWU7SUFFakI7SUFDQTtJQUNBO0lB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QUFDO0NBQ0w7QUFHRCxNQUFNLE9BQU8sU0FBUztJQUVYO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBUFQsWUFDUyxZQUFxQixFQUNyQixTQUFrQixFQUNsQixrQkFBMkIsRUFDM0IsV0FBb0IsRUFDcEIsU0FBa0IsRUFDbEIsV0FBb0IsRUFDcEIsV0FBb0I7UUFOcEIsaUJBQVksR0FBWixZQUFZLENBQVM7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQVM7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFDcEIsY0FBUyxHQUFULFNBQVMsQ0FBUztRQUNsQixnQkFBVyxHQUFYLFdBQVcsQ0FBUztRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBUztJQUMxQixDQUFDO0NBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRm9ybSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaGVhZGVyOiBIZWFkZXIsXHJcbiAgICBwdWJsaWMgcHJvZmlsZUluZm9Ecm9wOiBQcm9maWxlSW5mb0Ryb3AsXHJcbiAgICBwdWJsaWMgY29tbWVudHNEcm9wOiBDb21tZW50c0Ryb3BbXSxcclxuICAgIHB1YmxpYyBpbmJveEl0ZW06IEluYm94SXRlbSxcclxuICAgIHB1YmxpYyBzZWN0aW9uczogU2VjdGlvbltdLFxyXG4gICAgcHVibGljIGxvdnM6IGFueSxcclxuICAgIHB1YmxpYyBtZXNzYWdlczogTWVzc2FnZXMgfCBudWxsLCAvLyBBZGRlZCBudWxsIGFzIGEgdHlwZVxyXG4gICAgcHVibGljIGNvbmZpZGVudGlhbENvbW1lbnRzPzogQ29tbWVudHNEcm9wW11cclxuICApIHt9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBIZWFkZXIge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlcXVlc3Rlck5hbWU6IHN0cmluZyxcclxuICAgIHB1YmxpYyByZXF1ZXN0ZXJQaG90bzogc3RyaW5nLFxyXG4gICAgcHVibGljIGZvcm1JZD86IHN0cmluZyxcclxuICAgIHB1YmxpYyBjcmVhdGlvbkRhdGU/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgc3RhdHVzPzoge1trZXk6c3RyaW5nXTogc3RyaW5nfSxcclxuICAgIHB1YmxpYyBkZXRhaWxzPzogYW55XHJcbiAgKSB7fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUHJvZmlsZUluZm9Ecm9wIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvbkJlaGFsZkF1dGhvcml6ZWQ/OiBib29sZWFuLFxyXG4gICAgcHVibGljIGVtcGxveWVlTnVtYmVyPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGVtcGxveWVlRW1haWw/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgZnVsbE5hbWU/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgZ2VuZXJhbERlcGFydG1lbnROYW1lPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGpvYlBvc2l0aW9uPzogc3RyaW5nLFxyXG4gICAgcHVibGljIHNlY3Rvck5hbWU/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgZGVwYXJ0bWVudE5hbWU/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgZ2VuZXJhbERlcGFydG1lbnRDb2RlPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGh1bWFuUmVzb3VyY2VzTG9jYXRpb24/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgbmF0aW9uYWxpdHk/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgYnVzaW5lc3NQaG9uZT86IHN0cmluZyxcclxuICAgIHB1YmxpYyBkaXJlY3RNYW5hZ2VyTmFtZT86IHN0cmluZyxcclxuICAgIHB1YmxpYyBzZW5pb3JTZWN0b3JOYW1lPzogc3RyaW5nXHJcbiAgKSB7fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQ29tbWVudHNEcm9wIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBwcm9maWxlUGljdHVyZT86IHN0cmluZyxcclxuICAgIHB1YmxpYyBlbXBsb3llZU5hbWU/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgY29tbWVudEJvZHk/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgY29tbWVudERhdGU/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgYXR0YWNobWVudD86IHN0cmluZyxcclxuICAgIHB1YmxpYyBqb2JQb3NpdGlvbj86IHN0cmluZ1xyXG4gICkge31cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFNlY3Rpb248VCA9IGFueT4ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGlkPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGhlYWRlcj86IFNlY3Rpb25IZWFkZXIsXHJcbiAgICBwdWJsaWMgYm9keT86IFRcclxuICApIHt9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTZWN0aW9uSGVhZGVyIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBwcm9jZXNzZWRCeT86IHN0cmluZyxcclxuICAgIHB1YmxpYyBwcm9jZXNzaW5nRGF0ZT86IHN0cmluZyxcclxuICAgIHB1YmxpYyBwZXJzb25Ubz86IHN0cmluZyxcclxuICAgIHB1YmxpYyBwZXJzb25Ub1RodW1ibmFpbD86IHN0cmluZyxcclxuICAgIHB1YmxpYyBkZWxlZ2F0ZWRUbz86IHN0cmluZyxcclxuICAgIHB1YmxpYyBkZWxlZ2F0ZWRUb1RodW1ibmFpbD86IHN0cmluZyxcclxuICAgIHB1YmxpYyBzdGF0dXM/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgaGFzQ29tbWVudHM/OiBib29sZWFuLFxyXG4gICAgcHVibGljIHJlYWRPbmx5PzogYm9vbGVhblxyXG4gICkge31cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VzIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBlcnJvckZpZWxkcz86IGFueSxcclxuICAgIHB1YmxpYyBpbmZvPzogc3RyaW5nW10sXHJcbiAgICBwdWJsaWMgd2FybmluZz86IHN0cmluZ1tdLFxyXG4gICAgcHVibGljIGVycm9yPzogc3RyaW5nW10sXHJcbiAgICBwdWJsaWMgb3JpZ2luYWxNc2dzPzogQXJyYXk8e2NvZGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nOyB0eXBlOiBzdHJpbmd9PlxyXG4gICkge31cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBJbmJveEl0ZW0ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGZsYWdQcmlvcml0eT86IHN0cmluZyxcclxuICAgIHB1YmxpYyBpc0ZsYWdnZWQ/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgY2FuUmVxdWVzdEZlZWRiYWNrPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGhhc0ZlZWRiYWNrPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGlzUGVuZGluZz86IHN0cmluZyxcclxuICAgIHB1YmxpYyBpc1JlcXVlc3RlZD86IHN0cmluZyxcclxuICAgIHB1YmxpYyBpc1Jlc3BvbmRlZD86IHN0cmluZ1xyXG4gICkge31cclxufVxyXG4iXX0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2ludGVyZmFjZXMvZm9ybS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLElBQUk7SUFFTjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBUlQsWUFDUyxNQUFjLEVBQ2QsZUFBZ0MsRUFDaEMsWUFBNEIsRUFDNUIsU0FBb0IsRUFDcEIsUUFBbUIsRUFDbkIsSUFBUyxFQUNULFFBQXlCLEVBQUUsdUJBQXVCO0lBQ2xELG9CQUFxQztRQVByQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUNULGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBaUI7SUFDM0MsQ0FBQztDQUNMO0FBRUQsTUFBTSxPQUFPLE1BQU07SUFFUjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFOVCxZQUNTLGFBQXFCLEVBQ3JCLGNBQXNCLEVBQ3RCLE1BQWUsRUFDZixZQUFxQixFQUNyQixNQUErQixFQUMvQixPQUFhO1FBTGIsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQVE7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUNmLGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQXlCO1FBQy9CLFlBQU8sR0FBUCxPQUFPLENBQU07SUFDbkIsQ0FBQztDQUNMO0FBRUQsTUFBTSxPQUFPLGVBQWU7SUFFakI7SUFDQTtJQUNBO0lB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Q0FBQztDQUNMO0FBR0QsTUFBTSxPQUFPLFNBQVM7SUFFWDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQVBULFlBQ1MsWUFBcUIsRUFDckIsU0FBa0IsRUFDbEIsa0JBQTJCLEVBQzNCLFdBQW9CLEVBQ3BCLFNBQWtCLEVBQ2xCLFdBQW9CLEVBQ3BCLFdBQW9CO1FBTnBCLGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQVM7UUFDbEIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFTO1FBQzNCLGdCQUFXLEdBQVgsV0FBVyxDQUFTO1FBQ3BCLGNBQVMsR0FBVCxTQUFTLENBQVM7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFDcEIsZ0JBQVcsR0FBWCxXQUFXLENBQVM7SUFDMUIsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEZvcm0ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGhlYWRlcjogSGVhZGVyLFxyXG4gICAgcHVibGljIHByb2ZpbGVJbmZvRHJvcDogUHJvZmlsZUluZm9Ecm9wLFxyXG4gICAgcHVibGljIGNvbW1lbnRzRHJvcDogQ29tbWVudHNEcm9wW10sXHJcbiAgICBwdWJsaWMgaW5ib3hJdGVtOiBJbmJveEl0ZW0sXHJcbiAgICBwdWJsaWMgc2VjdGlvbnM6IFNlY3Rpb25bXSxcclxuICAgIHB1YmxpYyBsb3ZzOiBhbnksXHJcbiAgICBwdWJsaWMgbWVzc2FnZXM6IE1lc3NhZ2VzIHwgbnVsbCwgLy8gQWRkZWQgbnVsbCBhcyBhIHR5cGVcclxuICAgIHB1YmxpYyBjb25maWRlbnRpYWxDb21tZW50cz86IENvbW1lbnRzRHJvcFtdXHJcbiAgKSB7fVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSGVhZGVyIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZXF1ZXN0ZXJOYW1lOiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgcmVxdWVzdGVyUGhvdG86IHN0cmluZyxcclxuICAgIHB1YmxpYyBmb3JtSWQ/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgY3JlYXRpb25EYXRlPzogc3RyaW5nLFxyXG4gICAgcHVibGljIHN0YXR1cz86IHtba2V5OnN0cmluZ106IHN0cmluZ30sXHJcbiAgICBwdWJsaWMgZGV0YWlscz86IGFueVxyXG4gICkge31cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFByb2ZpbGVJbmZvRHJvcCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgb25CZWhhbGZBdXRob3JpemVkPzogYm9vbGVhbixcclxuICAgIHB1YmxpYyBlbXBsb3llZU51bWJlcj86IHN0cmluZyxcclxuICAgIHB1YmxpYyBlbXBsb3llZUVtYWlsPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGZ1bGxOYW1lPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGdlbmVyYWxEZXBhcnRtZW50TmFtZT86IHN0cmluZyxcclxuICAgIHB1YmxpYyBqb2JQb3NpdGlvbj86IHN0cmluZyxcclxuICAgIHB1YmxpYyBzZWN0b3JOYW1lPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGRlcGFydG1lbnROYW1lPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGdlbmVyYWxEZXBhcnRtZW50Q29kZT86IHN0cmluZyxcclxuICAgIHB1YmxpYyBodW1hblJlc291cmNlc0xvY2F0aW9uPzogc3RyaW5nLFxyXG4gICAgcHVibGljIG5hdGlvbmFsaXR5Pzogc3RyaW5nLFxyXG4gICAgcHVibGljIGJ1c2luZXNzUGhvbmU/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgZGlyZWN0TWFuYWdlck5hbWU/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgc2VuaW9yU2VjdG9yTmFtZT86IHN0cmluZ1xyXG4gICkge31cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIENvbW1lbnRzRHJvcCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcHJvZmlsZVBpY3R1cmU/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgZW1wbG95ZWVOYW1lPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGNvbW1lbnRCb2R5Pzogc3RyaW5nLFxyXG4gICAgcHVibGljIGNvbW1lbnREYXRlPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGF0dGFjaG1lbnQ/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgam9iUG9zaXRpb24/OiBzdHJpbmdcclxuICApIHt9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTZWN0aW9uPFQgPSBhbnk+IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpZD86IHN0cmluZyxcclxuICAgIHB1YmxpYyBoZWFkZXI/OiBTZWN0aW9uSGVhZGVyLFxyXG4gICAgcHVibGljIGJvZHk/OiBhbnlcclxuICApIHt9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBTZWN0aW9uSGVhZGVyIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBwcm9jZXNzZWRCeT86IHN0cmluZyxcclxuICAgIHB1YmxpYyBwcm9jZXNzaW5nRGF0ZT86IHN0cmluZyxcclxuICAgIHB1YmxpYyBwZXJzb25Ubz86IHN0cmluZyxcclxuICAgIHB1YmxpYyBwZXJzb25Ub1RodW1ibmFpbD86IHN0cmluZyxcclxuICAgIHB1YmxpYyBkZWxlZ2F0ZWRUbz86IHN0cmluZyxcclxuICAgIHB1YmxpYyBkZWxlZ2F0ZWRUb1RodW1ibmFpbD86IHN0cmluZyxcclxuICAgIHB1YmxpYyBzdGF0dXM/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgaGFzQ29tbWVudHM/OiBib29sZWFuLFxyXG4gICAgcHVibGljIHJlYWRPbmx5PzogYm9vbGVhblxyXG4gICkge31cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VzIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBlcnJvckZpZWxkcz86IGFueSxcclxuICAgIHB1YmxpYyBpbmZvPzogc3RyaW5nW10sXHJcbiAgICBwdWJsaWMgd2FybmluZz86IHN0cmluZ1tdLFxyXG4gICAgcHVibGljIGVycm9yPzogc3RyaW5nW10sXHJcbiAgICBwdWJsaWMgb3JpZ2luYWxNc2dzPzogQXJyYXk8e2NvZGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nOyB0eXBlOiBzdHJpbmd9PlxyXG4gICkge31cclxufVxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBJbmJveEl0ZW0ge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIGZsYWdQcmlvcml0eT86IHN0cmluZyxcclxuICAgIHB1YmxpYyBpc0ZsYWdnZWQ/OiBzdHJpbmcsXHJcbiAgICBwdWJsaWMgY2FuUmVxdWVzdEZlZWRiYWNrPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGhhc0ZlZWRiYWNrPzogc3RyaW5nLFxyXG4gICAgcHVibGljIGlzUGVuZGluZz86IHN0cmluZyxcclxuICAgIHB1YmxpYyBpc1JlcXVlc3RlZD86IHN0cmluZyxcclxuICAgIHB1YmxpYyBpc1Jlc3BvbmRlZD86IHN0cmluZ1xyXG4gICkge31cclxufVxyXG4iXX0=