@unipin/angular-applet 18.6.14 → 18.6.16

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 (38) hide show
  1. package/esm2022/lib/components/approval/index.mjs +2 -1
  2. package/esm2022/lib/components/approval/list/approval-list.component.mjs +7 -6
  3. package/esm2022/lib/components/approval/list/provide-approval-entities.util.mjs +9 -0
  4. package/esm2022/lib/components/containers/applet-container/applet-container.component.mjs +4 -3
  5. package/esm2022/lib/components/containers/applet-container/provide-applet-config.util.mjs +9 -0
  6. package/esm2022/lib/components/containers/index.mjs +2 -1
  7. package/esm2022/lib/components/filter/filter.component.mjs +19 -2
  8. package/esm2022/lib/components/grids/grid-pagination/grid-pagination.component.mjs +5 -3
  9. package/esm2022/lib/components/grids/grid-snapshot/grid-snapshot.component.mjs +5 -3
  10. package/esm2022/lib/components/index.mjs +3 -3
  11. package/esm2022/lib/interceptors/header/header.interceptor.mjs +10 -19
  12. package/esm2022/lib/interceptors/index.mjs +3 -3
  13. package/esm2022/lib/interceptors/refresh-token/refresh-token.interceptor.mjs +30 -41
  14. package/esm2022/lib/modules/index.mjs +2 -2
  15. package/esm2022/lib/modules/permission/index.mjs +2 -2
  16. package/esm2022/lib/modules/permission/pages/loading/loading.page.mjs +18 -10
  17. package/esm2022/lib/modules/permission/pages/loading/provide-loading-config.util.mjs +9 -0
  18. package/esm2022/lib/services/auth/auth.service.mjs +1 -1
  19. package/esm2022/public-api.mjs +5 -5
  20. package/fesm2022/unipin-angular-applet.mjs +110 -91
  21. package/fesm2022/unipin-angular-applet.mjs.map +1 -1
  22. package/lib/components/approval/index.d.ts +1 -0
  23. package/lib/components/approval/list/provide-approval-entities.util.d.ts +3 -0
  24. package/lib/components/containers/applet-container/applet-container.component.d.ts +3 -26
  25. package/lib/components/containers/applet-container/provide-applet-config.util.d.ts +15 -0
  26. package/lib/components/containers/index.d.ts +1 -0
  27. package/lib/components/index.d.ts +2 -2
  28. package/lib/interceptors/header/header.interceptor.d.ts +2 -8
  29. package/lib/interceptors/index.d.ts +2 -2
  30. package/lib/interceptors/refresh-token/refresh-token.interceptor.d.ts +2 -11
  31. package/lib/modules/index.d.ts +1 -1
  32. package/lib/modules/permission/index.d.ts +1 -1
  33. package/lib/modules/permission/pages/loading/loading.page.d.ts +3 -13
  34. package/lib/modules/permission/pages/loading/provide-loading-config.util.d.ts +10 -0
  35. package/package.json +1 -1
  36. package/public-api.d.ts +4 -4
  37. package/esm2022/lib/modules/permission/permission.module.mjs +0 -20
  38. package/lib/modules/permission/permission.module.d.ts +0 -7
@@ -1,3 +1,4 @@
1
1
  export { ApprovalListComponent } from './list/approval-list.component';
2
+ export { provideApprovalEntities, APPROVAL_ENTITIES } from './list/provide-approval-entities.util';
2
3
  export { ApprovalDetailComponent } from './detail/approval-detail.component';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvYXBwcm92YWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBcHByb3ZhbExpc3RDb21wb25lbnQgfSBmcm9tICcuL2xpc3QvYXBwcm92YWwtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0IHsgQXBwcm92YWxEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2RldGFpbC9hcHByb3ZhbC1kZXRhaWwuY29tcG9uZW50JztcbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvYXBwcm92YWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFbkcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBcHByb3ZhbExpc3RDb21wb25lbnQgfSBmcm9tICcuL2xpc3QvYXBwcm92YWwtbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0IHsgcHJvdmlkZUFwcHJvdmFsRW50aXRpZXMsIEFQUFJPVkFMX0VOVElUSUVTIH0gZnJvbSAnLi9saXN0L3Byb3ZpZGUtYXBwcm92YWwtZW50aXRpZXMudXRpbCc7XG5cbmV4cG9ydCB7IEFwcHJvdmFsRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9kZXRhaWwvYXBwcm92YWwtZGV0YWlsLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,7 +1,8 @@
1
- import { Component, Inject } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
2
2
  import { formatDate } from '@angular/common';
3
3
  import { map } from 'rxjs';
4
4
  import { ApprovalStatusEnum } from '../../../../graphql/generated';
5
+ import { APPROVAL_ENTITIES } from './provide-approval-entities.util';
5
6
  import { FilterComponent } from '../../filter/filter.component';
6
7
  import { ButtonGroupComponent } from '../../buttons/group/btn-group.component';
7
8
  import { GridPaginationComponent } from '../../grids/grid-pagination/grid-pagination.component';
@@ -94,12 +95,12 @@ export class ApprovalListComponent {
94
95
  }
95
96
  });
96
97
  }
97
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApprovalListComponent, deps: [{ token: 'ENTITIES' }, { token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.ApprovalService }, { token: i3.AlertController }], target: i0.ɵɵFactoryTarget.Component }); }
98
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApprovalListComponent, isStandalone: true, selector: "up-approval-list", host: { classAttribute: "d-flex flex-column h-100 w-100" }, ngImport: i0, template: "<div class=\"d-flex align-items-center justify-content-between gap-4 p-4 flex-shrink-0 flex-wrap\">\n <div class=\"flex-grow-1 d-flex align-items-center gap-3\">\n <h3 class=\"m-0\">Approval</h3>\n\n <up-btn-group id=\"approval-list\" [config]=\"btnConfig\" />\n </div>\n\n <div class=\"flex-shrink-0 flex-grow-1\">\n <up-filter placeholder=\"Type to search\" id=\"filter-approval-list\" [config]=\"filterConfig\" (onSearch)=\"search($event)\" />\n </div>\n</div>\n\n<div class=\"flex-grow-1 px-1 pb-1\">\n <up-pagination-grid [config]=\"gridConfig\" id=\"grid-approval-list\" rowSelection=\"multiple\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"openDetail($event)\" (onSelectionChanged)=\"selectApprovals()\" />\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: FilterComponent, selector: "up-filter", inputs: ["id", "config"], outputs: ["onSearch"] }, { kind: "component", type: ButtonGroupComponent, selector: "up-btn-group", inputs: ["config"] }, { kind: "component", type: GridPaginationComponent, selector: "up-pagination-grid", inputs: ["config", "rowData", "id", "rowModelType", "rowSelection", "getRowClass"], outputs: ["onRowClick", "onGridReady", "onSelectionChanged"] }] }); }
98
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApprovalListComponent, deps: [{ token: APPROVAL_ENTITIES }, { token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.ApprovalService }, { token: i3.AlertController }], target: i0.ɵɵFactoryTarget.Component }); }
99
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ApprovalListComponent, isStandalone: true, selector: "up-approval-list", host: { classAttribute: "d-flex flex-column h-100 w-100" }, ngImport: i0, template: "<div class=\"d-flex align-items-center justify-content-between gap-4 p-4 flex-shrink-0 flex-wrap\">\n <div class=\"flex-grow-1 d-flex align-items-center gap-3\">\n <h3 class=\"m-0\">Approval</h3>\n\n <up-btn-group id=\"approval-list\" [config]=\"btnConfig\" />\n </div>\n\n <div class=\"flex-shrink-0 flex-grow-1\">\n <up-filter placeholder=\"Type to search\" id=\"filter-approval-list\" [config]=\"filterConfig\" (onSearch)=\"search($event)\" />\n </div>\n</div>\n\n<div class=\"flex-grow-1 px-1 pb-1\">\n <up-pagination-grid [config]=\"gridConfig\" id=\"grid-approval-list\" rowSelection=\"multiple\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"openDetail($event)\" (onSelectionChanged)=\"selectApprovals()\" />\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: FilterComponent, selector: "up-filter", inputs: ["id", "config"], outputs: ["onSearch"] }, { kind: "component", type: ButtonGroupComponent, selector: "up-btn-group", inputs: ["config"] }, { kind: "component", type: GridPaginationComponent, selector: "up-pagination-grid", inputs: ["config", "rowData", "id", "rowModelType", "rowSelection", "getRowClass"], outputs: ["onRowClick", "onGridReady", "onSelectionChanged"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
99
100
  }
100
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ApprovalListComponent, decorators: [{
101
102
  type: Component,
102
- args: [{ standalone: true, selector: 'up-approval-list', host: {
103
+ args: [{ standalone: true, selector: 'up-approval-list', changeDetection: ChangeDetectionStrategy.OnPush, host: {
103
104
  class: 'd-flex flex-column h-100 w-100'
104
105
  }, imports: [
105
106
  FilterComponent,
@@ -108,6 +109,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
108
109
  ], template: "<div class=\"d-flex align-items-center justify-content-between gap-4 p-4 flex-shrink-0 flex-wrap\">\n <div class=\"flex-grow-1 d-flex align-items-center gap-3\">\n <h3 class=\"m-0\">Approval</h3>\n\n <up-btn-group id=\"approval-list\" [config]=\"btnConfig\" />\n </div>\n\n <div class=\"flex-shrink-0 flex-grow-1\">\n <up-filter placeholder=\"Type to search\" id=\"filter-approval-list\" [config]=\"filterConfig\" (onSearch)=\"search($event)\" />\n </div>\n</div>\n\n<div class=\"flex-grow-1 px-1 pb-1\">\n <up-pagination-grid [config]=\"gridConfig\" id=\"grid-approval-list\" rowSelection=\"multiple\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"openDetail($event)\" (onSelectionChanged)=\"selectApprovals()\" />\n</div>\n" }]
109
110
  }], ctorParameters: () => [{ type: undefined, decorators: [{
110
111
  type: Inject,
111
- args: ['ENTITIES']
112
+ args: [APPROVAL_ENTITIES]
112
113
  }] }, { type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.ApprovalService }, { type: i3.AlertController }] });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvYXBwcm92YWwvbGlzdC9hcHByb3ZhbC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHByb3ZhbC9saXN0L2FwcHJvdmFsLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFJdkMsT0FBTyxFQUFtQyxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBTXBHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7QUFnQmhHLE1BQU0sT0FBTyxxQkFBcUI7SUFrRGhDLFlBQ3NDLFFBQWtCLEVBQ25DLE1BQWMsRUFDZCxLQUFxQixFQUNyQixPQUF3QixFQUN4QixTQUEwQjtRQUpULGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQWlCO1FBckQvQixlQUFVLEdBQWU7WUFDdkMsU0FBUyxFQUFFLG9CQUFvQjtZQUMvQixP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eyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWxlcnRDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgRmV0Y2hQb2xpY3kgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IEdyaWRBcGksIEdyaWRSZWFkeUV2ZW50IH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NvcmUnO1xuaW1wb3J0IHsgQXBwcm92YWxDcml0ZXJpYSwgQXBwcm92YWxHcm91cCwgQXBwcm92YWxTdGF0dXNFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vZ3JhcGhxbC9nZW5lcmF0ZWQnO1xuaW1wb3J0IHsgR3JpZENvbmZpZyB9IGZyb20gJy4uLy4uL2dyaWRzL2ludGVyZmFjZXMvZ3JpZC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbHRlckNvbmZpZyB9IGZyb20gJy4uLy4uL2ZpbHRlci9pbnRlcmZhY2VzL2ZpbHRlci1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbHRlclNlYXJjaEV2ZW50IH0gZnJvbSAnLi4vLi4vZmlsdGVyL2ludGVyZmFjZXMvZmlsdGVyLXNlYXJjaC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBDb25maWcgfSBmcm9tICcuLi8uLi9idXR0b25zL2dyb3VwL2ludGVyZmFjZXMvYnRuLWdyb3VwLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXBwcm92YWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXBwcm92YWwuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Hcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbnMvZ3JvdXAvYnRuLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Mb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYnV0dG9ucy9sb2FkaW5nL2J0bi1sb2FkaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2dyaWRzL2dyaWQtcGFnaW5hdGlvbi9ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAndXAtYXBwcm92YWwtbGlzdCcsXG4gIHN0eWxlVXJsOiAnLi9hcHByb3ZhbC1saXN0LmNvbXBvbmVudC5zY3NzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcHJvdmFsLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkLWZsZXggZmxleC1jb2x1bW4gaC0xMDAgdy0xMDAnXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBGaWx0ZXJDb21wb25lbnQsXG4gICAgQnV0dG9uR3JvdXBDb21wb25lbnQsXG4gICAgR3JpZFBhZ2luYXRpb25Db21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHByb3ZhbExpc3RDb21wb25lbnQge1xuXG4gIHB1YmxpYyByZWFkb25seSBncmlkQ29uZmlnOiBHcmlkQ29uZmlnID0ge1xuICAgIG5vUm93VGV4dDogJ0FwcHJvdmFsIG5vdCBmb3VuZCcsXG4gICAgY29sRGVmczogW1xuICAgICAgeyBoZWFkZXJOYW1lOiAnRW50aXR5JywgZmllbGQ6ICdlbnRpdHknLCBjaGVja2JveFNlbGVjdGlvbjogKHsgZGF0YTogZCB9KSA9PiB0aGlzLmlzQ2hlY2tib3hTZWxlY3RhYmxlKGQ/LmFwcHJvdmFsR3JvdXApIH0sXG4gICAgICB7IGhlYWRlck5hbWU6ICdSZW1hcmsnLCBmaWVsZDogJ3JlbWFyaycgfSxcbiAgICAgIHsgaGVhZGVyTmFtZTogJ1NvdXJjZSBQbGF0Zm9ybScsIGZpZWxkOiAnc291cmNlUGxhdGZvcm0nIH0sXG4gICAgICB7IGhlYWRlck5hbWU6ICdTdGF0dXMnLCBmaWVsZDogJ3N0YXR1cycsIG1heFdpZHRoOiAxMDAsIGNlbGxSZW5kZXJlcjogKHsgdmFsdWUgfTogYW55KSA9PiB2YWx1ZT8gYDxkaXYgY2xhc3M9XCJiYWRnZSBtLWF1dG8gYmctJHsgdmFsdWUgPT09IEFwcHJvdmFsU3RhdHVzRW51bS5QZW5kaW5nPyAnd2FybmluZycgOiB2YWx1ZSA9PT0gQXBwcm92YWxTdGF0dXNFbnVtLkFwcHJvdmVkPyAnc3VjY2VzcycgOiAnZGFuZ2VyJ31cIj4keyB2YWx1ZSB9PC9kaXY+YCA6ICcnIH0sXG4gICAgICB7IGhlYWRlck5hbWU6ICdUeXBlJywgZmllbGQ6ICd0eXBlJywgbWF4V2lkdGg6IDEwMCB9LFxuICAgICAgeyBoZWFkZXJOYW1lOiAnQ3JlYXRlZCBEYXRlJywgZmllbGQ6ICdjcmVhdGVkQXQnLCBzb3J0OiAnZGVzYycsIHZhbHVlRm9ybWF0dGVyOiAoeyB2YWx1ZSB9KSA9PiB2YWx1ZT8gZm9ybWF0RGF0ZSh2YWx1ZSwgJ2RkIE1NTSB5eXl5IEhIOm1tJywgJ2VuLVVTJykgOiAnJyB9XG4gICAgXSxcbiAgICBnZXREYXRhOiAocGFnZTogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyLCBzb3J0Qnk6IHN0cmluZywgZGlyOiAnYXNjJyB8ICdkZXNjJyk6IE9ic2VydmFibGU8eyBkYXRhOiBhbnksIHRvdGFsUmVjb3JkOiBudW1iZXIgfT4gPT4ge1xuICAgICAgY29uc3QgcG9saWN5OiBGZXRjaFBvbGljeSB8IHVuZGVmaW5lZCA9IHRoaXMuaW5wdXQucGFnZSA9PT0gcGFnZT8gJ25vLWNhY2hlJyA6IHVuZGVmaW5lZDtcblxuICAgICAgdGhpcy5pbnB1dC5wYWdlID0gcGFnZTtcbiAgICAgIHRoaXMuaW5wdXQuc29ydEJ5ID0gc29ydEJ5O1xuICAgICAgdGhpcy5pbnB1dC5wYWdlU2l6ZSA9IHBhZ2VTaXplO1xuICAgICAgdGhpcy5pbnB1dC5zb3J0RGlyZWN0aW9uID0gZGlyO1xuXG4gICAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLnF1ZXJ5KHRoaXMuaW5wdXQsICcnLCBwb2xpY3kpLnBpcGUoXG4gICAgICAgIG1hcCgoeyBkYXRhOiB7IGFwcHJvdmFsTXNBcHByb3ZhbHM6IHsgZGF0YSwgdG90YWxSZWNvcmQ6IHQgfSB9fSkgPT4gKHsgZGF0YSwgdG90YWxSZWNvcmQ6IHQhIH0pKVxuICAgICAgKTtcbiAgICB9XG4gIH07XG4gIHB1YmxpYyByZWFkb25seSBmaWx0ZXJDb25maWc6IEZpbHRlckNvbmZpZyA9IHtcbiAgICBtb2RlOiAnYWR2YW5jZWQnLFxuICAgIGZpZWxkczogW1xuICAgICAgeyBrZXk6ICdzdGF0dXMnLCBsYWJlbDogJ1N0YXR1cycsIHR5cGU6ICdzZWxlY3QnLCBpbml0aWFsVmFsdWU6IFsgJ1BFTkRJTkcnIF0sIG9wdGlvbnM6IFtcbiAgICAgICAgeyBsYWJlbDogJ0FwcHJvdmVkJywgdmFsdWU6IFsgJ0FQUFJPVkVEJyBdIGFzIGFueSB9LFxuICAgICAgICB7IGxhYmVsOiAnRGVjbGluZWQnLCB2YWx1ZTogWyAnREVDTElORUQnIF0gYXMgYW55IH0sXG4gICAgICAgIHsgbGFiZWw6ICdQZW5kaW5nJywgdmFsdWU6IFsgJ1BFTkRJTkcnIF0gYXMgYW55IH1cbiAgICAgIF19LFxuICAgICAgeyBrZXk6ICd0eXBlJywgbGFiZWw6ICdUeXBlJywgdHlwZTogJ3NlbGVjdCcsIG9wdGlvbnM6IFtcbiAgICAgICAgeyBsYWJlbDogJ0NyZWF0aW9uJywgdmFsdWU6IFsgJ0NSRUFUSU9OJyBdIGFzIGFueSB9LFxuICAgICAgICB7IGxhYmVsOiAnRGVsZXRpb24nLCB2YWx1ZTogWyAnREVMRVRJT04nIF0gYXMgYW55IH0sXG4gICAgICAgIHsgbGFiZWw6ICdMaW5rYWdlJywgdmFsdWU6IFsgJ0xJTktBR0UnIF0gYXMgYW55IH0sXG4gICAgICAgIHsgbGFiZWw6ICdVbmxpbmsnLCB2YWx1ZTogWyAnVU5MSU5LJyBdIGFzIGFueSB9LFxuICAgICAgICB7IGxhYmVsOiAnVXBkYXRlJywgdmFsdWU6IFsgJ1VQREFURScgXSBhcyBhbnkgfVxuICAgICAgXX1cbiAgICBdXG4gIH07XG4gIHB1YmxpYyBidG5Db25maWc6IEJ1dHRvbkdyb3VwQ29uZmlnW10gPSBbXG4gICAgeyBsYWJlbDogJ0FwcHJvdmUnLCBpY29uOiAnY2hlY2ttYXJrJywgZGVzY3JpcHRpb246ICdBcHByb3ZlIHRoZSBhcHByb3ZhbHMnICwgZGlzYWJsZWQ6IHRydWUsIG9uQ2xpY2s6IHRoaXMubXVsdGlwbGVBcHByb3ZhbC5iaW5kKHRoaXMpIH0sXG4gICAgeyBsYWJlbDogJ0RlY2xpbmUnLCBpY29uOiAnY2xvc2UnLCBkZXNjcmlwdGlvbjogJ0RlY2xpbmUgdGhlIGFwcHJvdmFscycsIGNvbG9yOiAnZGFuZ2VyJywgZGlzYWJsZWQ6IHRydWUsIG9uQ2xpY2s6IHRoaXMubXVsdGlwbGVBcHByb3ZhbC5iaW5kKHRoaXMpIH1cbiAgXTtcbiAgcHJvdGVjdGVkIGdyaWRBcGkhOiBHcmlkQXBpO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRBcHByb3ZhbEdyb3VwR3VpZD86IHN0cmluZztcbiAgcHJvdGVjdGVkIGlucHV0OiBBcHByb3ZhbENyaXRlcmlhID0geyBwYWdlOiAwLCBwYWdlU2l6ZTogNTAsIGVudGl0eTogdGhpcy5lbnRpdGllcyB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoJ0VOVElUSUVTJykgcHVibGljIHJlYWRvbmx5IGVudGl0aWVzOiBzdHJpbmdbXSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZTogQXBwcm92YWxTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBhbGVydEN0cmw6IEFsZXJ0Q29udHJvbGxlclxuICApIHsgfVxuXG4gIHB1YmxpYyBzZXRHcmlkQXBpKHsgYXBpIH06IEdyaWRSZWFkeUV2ZW50KTogdm9pZHsgXG4gICAgdGhpcy5ncmlkQXBpID0gYXBpOyBcbiAgfVxuXG4gIHB1YmxpYyBvcGVuRGV0YWlsKHsgZ3VpZCB9OiBhbnkpOiB2b2lkeyBcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbIGAvYXBwcm92YWwvJHsgZ3VpZCB9YCBdLCB7IHByZXNlcnZlRnJhZ21lbnQ6IHRydWUgfSk7IFxuICB9XG5cbiAgcHVibGljIHNlbGVjdEFwcHJvdmFscygpOiB2b2lke1xuICAgIGNvbnN0IGRhdGFHcmlkOiBhbnlbXSA9IHRoaXMuZ3JpZEFwaS5nZXRTZWxlY3RlZFJvd3MoKTtcblxuICAgIHRoaXMuYnRuQ29uZmlnWzBdLmRpc2FibGVkID0gdGhpcy5idG5Db25maWdbMV0uZGlzYWJsZWQgPSBkYXRhR3JpZC5sZW5ndGggPCAxO1xuXG4gICAgdGhpcy5zZWxlY3RlZEFwcHJvdmFsR3JvdXBHdWlkID0gZGF0YUdyaWQubGVuZ3RoID09PSAwPyB1bmRlZmluZWQgOiBkYXRhR3JpZFswXS5hcHByb3ZhbEdyb3VwLmd1aWQ7XG4gICAgdGhpcy5ncmlkQXBpLnJlZnJlc2hDZWxscyh7IGZvcmNlOiB0cnVlIH0pO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaCh7IGRhdGEgfTogRmlsdGVyU2VhcmNoRXZlbnQpOiB2b2lke1xuICAgIHRoaXMuaW5wdXQudHlwZSA9IGRhdGE/LnR5cGU7XG4gICAgdGhpcy5pbnB1dC5zdGF0dXMgPSBkYXRhPy5zdGF0dXM7XG5cbiAgICB0aGlzLmdyaWRBcGkuZ2V0U2VsZWN0ZWROb2RlcygpLmZvckVhY2goKGUpID0+IGUuc2V0U2VsZWN0ZWQoZmFsc2UpKTtcbiAgICB0aGlzLmdyaWRBcGkucmVmcmVzaEluZmluaXRlQ2FjaGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0NoZWNrYm94U2VsZWN0YWJsZShhcHByb3ZhbEdyb3VwPzogQXBwcm92YWxHcm91cCk6IGJvb2xlYW57XG4gICAgaWYgKCFhcHByb3ZhbEdyb3VwKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGFwcHJvdmFsR3JvdXAuZ3VpZCA9PT0gdGhpcy5zZWxlY3RlZEFwcHJvdmFsR3JvdXBHdWlkKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtdWx0aXBsZUFwcHJvdmFsKGJ0bjogQnV0dG9uTG9hZGluZ0NvbXBvbmVudCk6IHZvaWR7XG4gICAgYnRuLnRvZ2dsZUxvYWRpbmcoKTtcblxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsgYC9hcHByb3ZhbC9hcHByb3ZhbC1ncm91cGAgXSwge1xuICAgICAgcHJlc2VydmVGcmFnbWVudDogdHJ1ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgIGlzQXBwcm92ZTogYnRuLmNvbG9yICE9PSAnZGFuZ2VyJyxcbiAgICAgICAgYXBwcm92YWxHcm91cEd1aWQ6IHRoaXMuc2VsZWN0ZWRBcHByb3ZhbEdyb3VwR3VpZCxcbiAgICAgICAgZ3VpZHM6IHRoaXMuZ3JpZEFwaS5nZXRTZWxlY3RlZFJvd3MoKS5tYXAoKHsgZ3VpZCB9KSA9PiBndWlkKVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBnYXAtNCBwLTQgZmxleC1zaHJpbmstMCBmbGV4LXdyYXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICA8aDMgY2xhc3M9XCJtLTBcIj5BcHByb3ZhbDwvaDM+XG5cbiAgICAgICAgPHVwLWJ0bi1ncm91cCBpZD1cImFwcHJvdmFsLWxpc3RcIiBbY29uZmlnXT1cImJ0bkNvbmZpZ1wiIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zaHJpbmstMCBmbGV4LWdyb3ctMVwiPlxuICAgICAgICA8dXAtZmlsdGVyIHBsYWNlaG9sZGVyPVwiVHlwZSB0byBzZWFyY2hcIiBpZD1cImZpbHRlci1hcHByb3ZhbC1saXN0XCIgW2NvbmZpZ109XCJmaWx0ZXJDb25maWdcIiAob25TZWFyY2gpPVwic2VhcmNoKCRldmVudClcIiAvPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMSBweC0xIHBiLTFcIj5cbiAgICA8dXAtcGFnaW5hdGlvbi1ncmlkIFtjb25maWddPVwiZ3JpZENvbmZpZ1wiIGlkPVwiZ3JpZC1hcHByb3ZhbC1saXN0XCIgcm93U2VsZWN0aW9uPVwibXVsdGlwbGVcIiAob25HcmlkUmVhZHkpPVwic2V0R3JpZEFwaSgkZXZlbnQpXCIgKG9uUm93Q2xpY2spPVwib3BlbkRldGFpbCgkZXZlbnQpXCIgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJzZWxlY3RBcHByb3ZhbHMoKVwiIC8+XG48L2Rpdj5cbiJdfQ==
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcm92YWwtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvYXBwcm92YWwvbGlzdC9hcHByb3ZhbC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9hcHByb3ZhbC9saXN0L2FwcHJvdmFsLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFJdkMsT0FBTyxFQUFtQyxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBS3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUUvRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7Ozs7QUFpQmhHLE1BQU0sT0FBTyxxQkFBcUI7SUFrRGhDLFlBQzZDLFFBQWtCLEVBQzFDLE1BQWMsRUFDZCxLQUFxQixFQUNyQixPQUF3QixFQUN4QixTQUEwQjtRQUpGLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDMUMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLGNBQVMsR0FBVCxT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QUNmLG9CQUFvQjt3QkFDcEIsdUJBQXVCO3FCQUN4Qjs7MEJBcURFLE1BQU07MkJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBbGVydENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBGZXRjaFBvbGljeSB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgR3JpZEFwaSwgR3JpZFJlYWR5RXZlbnQgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQgeyBBcHByb3ZhbENyaXRlcmlhLCBBcHByb3ZhbEdyb3VwLCBBcHByb3ZhbFN0YXR1c0VudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9ncmFwaHFsL2dlbmVyYXRlZCc7XG5pbXBvcnQgeyBHcmlkQ29uZmlnIH0gZnJvbSAnLi4vLi4vZ3JpZHMvaW50ZXJmYWNlcy9ncmlkLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlnIH0gZnJvbSAnLi4vLi4vZmlsdGVyL2ludGVyZmFjZXMvZmlsdGVyLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyU2VhcmNoRXZlbnQgfSBmcm9tICcuLi8uLi9maWx0ZXIvaW50ZXJmYWNlcy9maWx0ZXItc2VhcmNoLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBCdXR0b25Hcm91cENvbmZpZyB9IGZyb20gJy4uLy4uL2J1dHRvbnMvZ3JvdXAvaW50ZXJmYWNlcy9idG4tZ3JvdXAtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBUFBST1ZBTF9FTlRJVElFUyB9IGZyb20gJy4vcHJvdmlkZS1hcHByb3ZhbC1lbnRpdGllcy51dGlsJztcbmltcG9ydCB7IEFwcHJvdmFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FwcHJvdmFsLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZmlsdGVyL2ZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi8uLi9idXR0b25zL2dyb3VwL2J0bi1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbnMvbG9hZGluZy9idG4tbG9hZGluZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3JpZFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9ncmlkcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3VwLWFwcHJvdmFsLWxpc3QnLFxuICBzdHlsZVVybDogJy4vYXBwcm92YWwtbGlzdC5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHByb3ZhbC1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2QtZmxleCBmbGV4LWNvbHVtbiBoLTEwMCB3LTEwMCdcbiAgfSxcbiAgaW1wb3J0czogW1xuICAgIEZpbHRlckNvbXBvbmVudCxcbiAgICBCdXR0b25Hcm91cENvbXBvbmVudCxcbiAgICBHcmlkUGFnaW5hdGlvbkNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFwcHJvdmFsTGlzdENvbXBvbmVudCB7XG5cbiAgcHVibGljIHJlYWRvbmx5IGdyaWRDb25maWc6IEdyaWRDb25maWcgPSB7XG4gICAgbm9Sb3dUZXh0OiAnQXBwcm92YWwgbm90IGZvdW5kJyxcbiAgICBjb2xEZWZzOiBbXG4gICAgICB7IGhlYWRlck5hbWU6ICdFbnRpdHknLCBmaWVsZDogJ2VudGl0eScsIGNoZWNrYm94U2VsZWN0aW9uOiAoeyBkYXRhOiBkIH0pID0+IHRoaXMuaXNDaGVja2JveFNlbGVjdGFibGUoZD8uYXBwcm92YWxHcm91cCkgfSxcbiAgICAgIHsgaGVhZGVyTmFtZTogJ1JlbWFyaycsIGZpZWxkOiAncmVtYXJrJyB9LFxuICAgICAgeyBoZWFkZXJOYW1lOiAnU291cmNlIFBsYXRmb3JtJywgZmllbGQ6ICdzb3VyY2VQbGF0Zm9ybScgfSxcbiAgICAgIHsgaGVhZGVyTmFtZTogJ1N0YXR1cycsIGZpZWxkOiAnc3RhdHVzJywgbWF4V2lkdGg6IDEwMCwgY2VsbFJlbmRlcmVyOiAoeyB2YWx1ZSB9OiBhbnkpID0+IHZhbHVlPyBgPGRpdiBjbGFzcz1cImJhZGdlIG0tYXV0byBiZy0keyB2YWx1ZSA9PT0gQXBwcm92YWxTdGF0dXNFbnVtLlBlbmRpbmc/ICd3YXJuaW5nJyA6IHZhbHVlID09PSBBcHByb3ZhbFN0YXR1c0VudW0uQXBwcm92ZWQ/ICdzdWNjZXNzJyA6ICdkYW5nZXInfVwiPiR7IHZhbHVlIH08L2Rpdj5gIDogJycgfSxcbiAgICAgIHsgaGVhZGVyTmFtZTogJ1R5cGUnLCBmaWVsZDogJ3R5cGUnLCBtYXhXaWR0aDogMTAwIH0sXG4gICAgICB7IGhlYWRlck5hbWU6ICdDcmVhdGVkIERhdGUnLCBmaWVsZDogJ2NyZWF0ZWRBdCcsIHNvcnQ6ICdkZXNjJywgdmFsdWVGb3JtYXR0ZXI6ICh7IHZhbHVlIH0pID0+IHZhbHVlPyBmb3JtYXREYXRlKHZhbHVlLCAnZGQgTU1NIHl5eXkgSEg6bW0nLCAnZW4tVVMnKSA6ICcnIH1cbiAgICBdLFxuICAgIGdldERhdGE6IChwYWdlOiBudW1iZXIsIHBhZ2VTaXplOiBudW1iZXIsIHNvcnRCeTogc3RyaW5nLCBkaXI6ICdhc2MnIHwgJ2Rlc2MnKTogT2JzZXJ2YWJsZTx7IGRhdGE6IGFueSwgdG90YWxSZWNvcmQ6IG51bWJlciB9PiA9PiB7XG4gICAgICBjb25zdCBwb2xpY3k6IEZldGNoUG9saWN5IHwgdW5kZWZpbmVkID0gdGhpcy5pbnB1dC5wYWdlID09PSBwYWdlPyAnbm8tY2FjaGUnIDogdW5kZWZpbmVkO1xuXG4gICAgICB0aGlzLmlucHV0LnBhZ2UgPSBwYWdlO1xuICAgICAgdGhpcy5pbnB1dC5zb3J0QnkgPSBzb3J0Qnk7XG4gICAgICB0aGlzLmlucHV0LnBhZ2VTaXplID0gcGFnZVNpemU7XG4gICAgICB0aGlzLmlucHV0LnNvcnREaXJlY3Rpb24gPSBkaXI7XG5cbiAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UucXVlcnkodGhpcy5pbnB1dCwgJycsIHBvbGljeSkucGlwZShcbiAgICAgICAgbWFwKCh7IGRhdGE6IHsgYXBwcm92YWxNc0FwcHJvdmFsczogeyBkYXRhLCB0b3RhbFJlY29yZDogdCB9IH19KSA9PiAoeyBkYXRhLCB0b3RhbFJlY29yZDogdCEgfSkpXG4gICAgICApO1xuICAgIH1cbiAgfTtcbiAgcHVibGljIHJlYWRvbmx5IGZpbHRlckNvbmZpZzogRmlsdGVyQ29uZmlnID0ge1xuICAgIG1vZGU6ICdhZHZhbmNlZCcsXG4gICAgZmllbGRzOiBbXG4gICAgICB7IGtleTogJ3N0YXR1cycsIGxhYmVsOiAnU3RhdHVzJywgdHlwZTogJ3NlbGVjdCcsIGluaXRpYWxWYWx1ZTogWyAnUEVORElORycgXSwgb3B0aW9uczogW1xuICAgICAgICB7IGxhYmVsOiAnQXBwcm92ZWQnLCB2YWx1ZTogWyAnQVBQUk9WRUQnIF0gYXMgYW55IH0sXG4gICAgICAgIHsgbGFiZWw6ICdEZWNsaW5lZCcsIHZhbHVlOiBbICdERUNMSU5FRCcgXSBhcyBhbnkgfSxcbiAgICAgICAgeyBsYWJlbDogJ1BlbmRpbmcnLCB2YWx1ZTogWyAnUEVORElORycgXSBhcyBhbnkgfVxuICAgICAgXX0sXG4gICAgICB7IGtleTogJ3R5cGUnLCBsYWJlbDogJ1R5cGUnLCB0eXBlOiAnc2VsZWN0Jywgb3B0aW9uczogW1xuICAgICAgICB7IGxhYmVsOiAnQ3JlYXRpb24nLCB2YWx1ZTogWyAnQ1JFQVRJT04nIF0gYXMgYW55IH0sXG4gICAgICAgIHsgbGFiZWw6ICdEZWxldGlvbicsIHZhbHVlOiBbICdERUxFVElPTicgXSBhcyBhbnkgfSxcbiAgICAgICAgeyBsYWJlbDogJ0xpbmthZ2UnLCB2YWx1ZTogWyAnTElOS0FHRScgXSBhcyBhbnkgfSxcbiAgICAgICAgeyBsYWJlbDogJ1VubGluaycsIHZhbHVlOiBbICdVTkxJTksnIF0gYXMgYW55IH0sXG4gICAgICAgIHsgbGFiZWw6ICdVcGRhdGUnLCB2YWx1ZTogWyAnVVBEQVRFJyBdIGFzIGFueSB9XG4gICAgICBdfVxuICAgIF1cbiAgfTtcbiAgcHVibGljIGJ0bkNvbmZpZzogQnV0dG9uR3JvdXBDb25maWdbXSA9IFtcbiAgICB7IGxhYmVsOiAnQXBwcm92ZScsIGljb246ICdjaGVja21hcmsnLCBkZXNjcmlwdGlvbjogJ0FwcHJvdmUgdGhlIGFwcHJvdmFscycgLCBkaXNhYmxlZDogdHJ1ZSwgb25DbGljazogdGhpcy5tdWx0aXBsZUFwcHJvdmFsLmJpbmQodGhpcykgfSxcbiAgICB7IGxhYmVsOiAnRGVjbGluZScsIGljb246ICdjbG9zZScsIGRlc2NyaXB0aW9uOiAnRGVjbGluZSB0aGUgYXBwcm92YWxzJywgY29sb3I6ICdkYW5nZXInLCBkaXNhYmxlZDogdHJ1ZSwgb25DbGljazogdGhpcy5tdWx0aXBsZUFwcHJvdmFsLmJpbmQodGhpcykgfVxuICBdO1xuICBwcm90ZWN0ZWQgZ3JpZEFwaSE6IEdyaWRBcGk7XG4gIHByb3RlY3RlZCBzZWxlY3RlZEFwcHJvdmFsR3JvdXBHdWlkPzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgaW5wdXQ6IEFwcHJvdmFsQ3JpdGVyaWEgPSB7IHBhZ2U6IDAsIHBhZ2VTaXplOiA1MCwgZW50aXR5OiB0aGlzLmVudGl0aWVzIH07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChBUFBST1ZBTF9FTlRJVElFUykgcHVibGljIHJlYWRvbmx5IGVudGl0aWVzOiBzdHJpbmdbXSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZTogQXBwcm92YWxTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBhbGVydEN0cmw6IEFsZXJ0Q29udHJvbGxlclxuICApIHsgfVxuXG4gIHB1YmxpYyBzZXRHcmlkQXBpKHsgYXBpIH06IEdyaWRSZWFkeUV2ZW50KTogdm9pZHsgXG4gICAgdGhpcy5ncmlkQXBpID0gYXBpOyBcbiAgfVxuXG4gIHB1YmxpYyBvcGVuRGV0YWlsKHsgZ3VpZCB9OiBhbnkpOiB2b2lkeyBcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbIGAvYXBwcm92YWwvJHsgZ3VpZCB9YCBdLCB7IHByZXNlcnZlRnJhZ21lbnQ6IHRydWUgfSk7IFxuICB9XG5cbiAgcHVibGljIHNlbGVjdEFwcHJvdmFscygpOiB2b2lke1xuICAgIGNvbnN0IGRhdGFHcmlkOiBhbnlbXSA9IHRoaXMuZ3JpZEFwaS5nZXRTZWxlY3RlZFJvd3MoKTtcblxuICAgIHRoaXMuYnRuQ29uZmlnWzBdLmRpc2FibGVkID0gdGhpcy5idG5Db25maWdbMV0uZGlzYWJsZWQgPSBkYXRhR3JpZC5sZW5ndGggPCAxO1xuXG4gICAgdGhpcy5zZWxlY3RlZEFwcHJvdmFsR3JvdXBHdWlkID0gZGF0YUdyaWQubGVuZ3RoID09PSAwPyB1bmRlZmluZWQgOiBkYXRhR3JpZFswXS5hcHByb3ZhbEdyb3VwLmd1aWQ7XG4gICAgdGhpcy5ncmlkQXBpLnJlZnJlc2hDZWxscyh7IGZvcmNlOiB0cnVlIH0pO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaCh7IGRhdGEgfTogRmlsdGVyU2VhcmNoRXZlbnQpOiB2b2lke1xuICAgIHRoaXMuaW5wdXQudHlwZSA9IGRhdGE/LnR5cGU7XG4gICAgdGhpcy5pbnB1dC5zdGF0dXMgPSBkYXRhPy5zdGF0dXM7XG5cbiAgICB0aGlzLmdyaWRBcGkuZ2V0U2VsZWN0ZWROb2RlcygpLmZvckVhY2goKGUpID0+IGUuc2V0U2VsZWN0ZWQoZmFsc2UpKTtcbiAgICB0aGlzLmdyaWRBcGkucmVmcmVzaEluZmluaXRlQ2FjaGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpc0NoZWNrYm94U2VsZWN0YWJsZShhcHByb3ZhbEdyb3VwPzogQXBwcm92YWxHcm91cCk6IGJvb2xlYW57XG4gICAgaWYgKCFhcHByb3ZhbEdyb3VwKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGFwcHJvdmFsR3JvdXAuZ3VpZCA9PT0gdGhpcy5zZWxlY3RlZEFwcHJvdmFsR3JvdXBHdWlkKSByZXR1cm4gdHJ1ZTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBtdWx0aXBsZUFwcHJvdmFsKGJ0bjogQnV0dG9uTG9hZGluZ0NvbXBvbmVudCk6IHZvaWR7XG4gICAgYnRuLnRvZ2dsZUxvYWRpbmcoKTtcblxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsgYC9hcHByb3ZhbC9hcHByb3ZhbC1ncm91cGAgXSwge1xuICAgICAgcHJlc2VydmVGcmFnbWVudDogdHJ1ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgIGlzQXBwcm92ZTogYnRuLmNvbG9yICE9PSAnZGFuZ2VyJyxcbiAgICAgICAgYXBwcm92YWxHcm91cEd1aWQ6IHRoaXMuc2VsZWN0ZWRBcHByb3ZhbEdyb3VwR3VpZCxcbiAgICAgICAgZ3VpZHM6IHRoaXMuZ3JpZEFwaS5nZXRTZWxlY3RlZFJvd3MoKS5tYXAoKHsgZ3VpZCB9KSA9PiBndWlkKVxuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBnYXAtNCBwLTQgZmxleC1zaHJpbmstMCBmbGV4LXdyYXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICA8aDMgY2xhc3M9XCJtLTBcIj5BcHByb3ZhbDwvaDM+XG5cbiAgICAgICAgPHVwLWJ0bi1ncm91cCBpZD1cImFwcHJvdmFsLWxpc3RcIiBbY29uZmlnXT1cImJ0bkNvbmZpZ1wiIC8+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zaHJpbmstMCBmbGV4LWdyb3ctMVwiPlxuICAgICAgICA8dXAtZmlsdGVyIHBsYWNlaG9sZGVyPVwiVHlwZSB0byBzZWFyY2hcIiBpZD1cImZpbHRlci1hcHByb3ZhbC1saXN0XCIgW2NvbmZpZ109XCJmaWx0ZXJDb25maWdcIiAob25TZWFyY2gpPVwic2VhcmNoKCRldmVudClcIiAvPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMSBweC0xIHBiLTFcIj5cbiAgICA8dXAtcGFnaW5hdGlvbi1ncmlkIFtjb25maWddPVwiZ3JpZENvbmZpZ1wiIGlkPVwiZ3JpZC1hcHByb3ZhbC1saXN0XCIgcm93U2VsZWN0aW9uPVwibXVsdGlwbGVcIiAob25HcmlkUmVhZHkpPVwic2V0R3JpZEFwaSgkZXZlbnQpXCIgKG9uUm93Q2xpY2spPVwib3BlbkRldGFpbCgkZXZlbnQpXCIgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJzZWxlY3RBcHByb3ZhbHMoKVwiIC8+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const APPROVAL_ENTITIES = new InjectionToken('APPROVAL_ENTITIES');
3
+ export function provideApprovalEntities(entities) {
4
+ return {
5
+ provide: APPROVAL_ENTITIES,
6
+ useValue: entities
7
+ };
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1hcHByb3ZhbC1lbnRpdGllcy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5pcGluLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2FwcHJvdmFsL2xpc3QvcHJvdmlkZS1hcHByb3ZhbC1lbnRpdGllcy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFekQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQVcsbUJBQW1CLENBQUMsQ0FBQztBQUVuRixNQUFNLFVBQVUsdUJBQXVCLENBQUMsUUFBa0I7SUFDeEQsT0FBTztRQUNMLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsUUFBUSxFQUFFLFFBQVE7S0FDbkIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEFQUFJPVkFMX0VOVElUSUVTID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZ1tdPignQVBQUk9WQUxfRU5USVRJRVMnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBcHByb3ZhbEVudGl0aWVzKGVudGl0aWVzOiBzdHJpbmdbXSk6IFByb3ZpZGVye1xuICByZXR1cm4geyBcbiAgICBwcm92aWRlOiBBUFBST1ZBTF9FTlRJVElFUywgXG4gICAgdXNlVmFsdWU6IGVudGl0aWVzIFxuICB9O1xufVxuIl19
@@ -2,6 +2,7 @@ import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
2
2
  import { RouterLink, RouterLinkActive } from '@angular/router';
3
3
  import { IonicModule } from '@ionic/angular';
4
4
  import { fromEvent } from 'rxjs';
5
+ import { APPLET_CONFIG } from './provide-applet-config.util';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "../../../modules";
7
8
  import * as i2 from "@ionic/angular";
@@ -35,7 +36,7 @@ export class AppletContainerComponent {
35
36
  selectMenu() {
36
37
  dispatchEvent(new CustomEvent('menuEvent', { detail: { isActive: false } }));
37
38
  }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppletContainerComponent, deps: [{ token: 'APPLET_CONFIG' }, { token: i0.ChangeDetectorRef }, { token: i1.PermissionService }], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppletContainerComponent, deps: [{ token: APPLET_CONFIG }, { token: i0.ChangeDetectorRef }, { token: i1.PermissionService }], target: i0.ɵɵFactoryTarget.Component }); }
39
40
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AppletContainerComponent, isStandalone: true, selector: "up-applet-container", host: { classAttribute: "d-flex h-100 w-100" }, ngImport: i0, template: "<div class=\"sidenav flex-shrink-0 h-100 py-4 d-flex flex-column\" [class.collapsed]=\"isCollapsed\" [class.show]=\"isMenuActive\">\n <div class=\"logo-container px-3 pb-3 border-bottom flex-shrink-0 position-relative d-flex align-items-center gap-3 d-none d-md-flex\">\n <img alt=\"Applet Icon\" width=\"44px\" height=\"44px\" class=\"rounded\" [src]=\"config.icon\" />\n\n <div class=\"info w-75 pe-2\">\n <div class=\"name fw-medium text-truncate\">{{ config.name }}</div>\n \n <div class=\"tenant pt-1 fw-medium\">\n v{{ config.version }}\n </div>\n </div>\n\n <button class=\"btn-close cursor-pointer position-absolute border-0 rounded-circle d-none d-md-block\" (click)=\"toggleSidenav()\">\n <ion-icon name=\"chevron-forward\" class=\"mt-1\" />\n </button>\n </div>\n\n <div class=\"flex-grow-1 px-3 pt-3 overflow-y-auto d-none d-md-block\" (click)=\"selectMenu()\">\n @for (c of config.containers; track $index) {\n <a class=\"nav align-items-center text-decoration-none gap-2 rounded mb-1 {{ isHidden[$index]? 'd-none' : 'd-flex' }}\" routerLinkActive=\"fw-medium\" title=\"{{ c.label }}\" [routerLink]=\"c.path\">\n <ion-icon name=\"{{ c.icon }}\" />\n <div class=\"text-truncate\">{{ c.label }}</div>\n </a>\n }\n </div>\n\n @if (config.enabledSetting) {\n <div class=\"flex-shrink-0 px-3 pt-3 border-top d-none d-md-block\" (click)=\"selectMenu()\">\n <a class=\"nav d-flex align-items-center text-decoration-none gap-2 rounded\" title=\"Setting\" routerLink=\"setting\" routerLinkActive=\"fw-medium\">\n <ion-icon name=\"settings\" />\n <div class=\"text-truncate\">Setting</div>\n </a>\n </div>\n }\n</div>\n\n<div class=\"flex-grow-1 w-100 overflow-y-auto\">\n <ng-content />\n</div>\n", styles: [".info{display:none}.name{font-size:16px}.tenant{color:#757575}.overflow-y-auto{overflow-y:auto;overflow-x:hidden}.sidenav{width:73px;background:#f8f9fb;transition:all .2s ease;border-right:1px solid #D1D1D1}.sidenav.collapsed{width:250px}.sidenav.collapsed .btn-close{transform:rotate(180deg)}.sidenav.collapsed .nav div,.sidenav.collapsed .info{display:block}.sidenav.show{width:250px}.sidenav.show .logo-container{display:flex!important}.sidenav.show div:not(.logo-container),.sidenav.show img,.sidenav.show .info{display:block!important}.btn-close{width:35px;height:35px;bottom:23px;right:-17px;z-index:999;transition:all .3s ease;background-color:#f8f9fb;box-shadow:0 0 .15rem #616161}.btn-close ion-icon{color:#616161;font-size:16px}@media (max-width: 768px){.btn-close{right:-18px}.btn-close ion-icon{position:absolute;right:9px;bottom:10px}}.nav{padding:12px;color:#616161;transition:all .3s ease}.nav.fw-medium,.nav:hover{background-color:#fef3ee;color:#ed6b26!important}.nav ion-icon{font-size:20px}.nav div{display:none;font-size:16px}@media (max-width: 767px){.sidenav{width:0;z-index:2;position:absolute!important}}\n"], dependencies: [{ kind: "ngmodule", type: IonicModule }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "directive", type: i2.RouterLinkWithHrefDelegate, selector: "a[routerLink],area[routerLink]" }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
40
41
  }
41
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppletContainerComponent, decorators: [{
@@ -49,6 +50,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
49
50
  ], template: "<div class=\"sidenav flex-shrink-0 h-100 py-4 d-flex flex-column\" [class.collapsed]=\"isCollapsed\" [class.show]=\"isMenuActive\">\n <div class=\"logo-container px-3 pb-3 border-bottom flex-shrink-0 position-relative d-flex align-items-center gap-3 d-none d-md-flex\">\n <img alt=\"Applet Icon\" width=\"44px\" height=\"44px\" class=\"rounded\" [src]=\"config.icon\" />\n\n <div class=\"info w-75 pe-2\">\n <div class=\"name fw-medium text-truncate\">{{ config.name }}</div>\n \n <div class=\"tenant pt-1 fw-medium\">\n v{{ config.version }}\n </div>\n </div>\n\n <button class=\"btn-close cursor-pointer position-absolute border-0 rounded-circle d-none d-md-block\" (click)=\"toggleSidenav()\">\n <ion-icon name=\"chevron-forward\" class=\"mt-1\" />\n </button>\n </div>\n\n <div class=\"flex-grow-1 px-3 pt-3 overflow-y-auto d-none d-md-block\" (click)=\"selectMenu()\">\n @for (c of config.containers; track $index) {\n <a class=\"nav align-items-center text-decoration-none gap-2 rounded mb-1 {{ isHidden[$index]? 'd-none' : 'd-flex' }}\" routerLinkActive=\"fw-medium\" title=\"{{ c.label }}\" [routerLink]=\"c.path\">\n <ion-icon name=\"{{ c.icon }}\" />\n <div class=\"text-truncate\">{{ c.label }}</div>\n </a>\n }\n </div>\n\n @if (config.enabledSetting) {\n <div class=\"flex-shrink-0 px-3 pt-3 border-top d-none d-md-block\" (click)=\"selectMenu()\">\n <a class=\"nav d-flex align-items-center text-decoration-none gap-2 rounded\" title=\"Setting\" routerLink=\"setting\" routerLinkActive=\"fw-medium\">\n <ion-icon name=\"settings\" />\n <div class=\"text-truncate\">Setting</div>\n </a>\n </div>\n }\n</div>\n\n<div class=\"flex-grow-1 w-100 overflow-y-auto\">\n <ng-content />\n</div>\n", styles: [".info{display:none}.name{font-size:16px}.tenant{color:#757575}.overflow-y-auto{overflow-y:auto;overflow-x:hidden}.sidenav{width:73px;background:#f8f9fb;transition:all .2s ease;border-right:1px solid #D1D1D1}.sidenav.collapsed{width:250px}.sidenav.collapsed .btn-close{transform:rotate(180deg)}.sidenav.collapsed .nav div,.sidenav.collapsed .info{display:block}.sidenav.show{width:250px}.sidenav.show .logo-container{display:flex!important}.sidenav.show div:not(.logo-container),.sidenav.show img,.sidenav.show .info{display:block!important}.btn-close{width:35px;height:35px;bottom:23px;right:-17px;z-index:999;transition:all .3s ease;background-color:#f8f9fb;box-shadow:0 0 .15rem #616161}.btn-close ion-icon{color:#616161;font-size:16px}@media (max-width: 768px){.btn-close{right:-18px}.btn-close ion-icon{position:absolute;right:9px;bottom:10px}}.nav{padding:12px;color:#616161;transition:all .3s ease}.nav.fw-medium,.nav:hover{background-color:#fef3ee;color:#ed6b26!important}.nav ion-icon{font-size:20px}.nav div{display:none;font-size:16px}@media (max-width: 767px){.sidenav{width:0;z-index:2;position:absolute!important}}\n"] }]
50
51
  }], ctorParameters: () => [{ type: undefined, decorators: [{
51
52
  type: Inject,
52
- args: ['APPLET_CONFIG']
53
+ args: [APPLET_CONFIG]
53
54
  }] }, { type: i0.ChangeDetectorRef }, { type: i1.PermissionService }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGV0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvY29udGFpbmVycy9hcHBsZXQtY29udGFpbmVyL2FwcGxldC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5pcGluLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2NvbnRhaW5lcnMvYXBwbGV0LWNvbnRhaW5lci9hcHBsZXQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQWtCL0MsTUFBTSxPQUFPLHdCQUF3QjtJQXlCbkMsWUFDMkMsTUFZeEMsRUFDa0IsRUFBcUIsRUFDckIsaUJBQW9DO1FBZGQsV0FBTSxHQUFOLE1BQU0sQ0FZOUM7UUFDa0IsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQWpDbEQsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFPN0IsYUFBUSxHQUFjLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFPdEUsaUJBQVksR0FBWSxLQUFLLENBQUM7SUFvQmpDLENBQUM7SUFNRSxRQUFRO1FBQ2IsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQXdCLEVBQUUsRUFBRTtZQUNuRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRTtnQkFDNUQsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUN0RSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO1lBQzFDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBTU0sV0FBVztRQUNoQixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQU9NLGFBQWE7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDdkMsQ0FBQztJQVFNLFVBQVU7UUFDZixhQUFhLENBQUMsSUFBSSxXQUFXLENBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7K0dBdEZVLHdCQUF3QixrQkEwQnpCLGVBQWU7bUdBMUJkLHdCQUF3QiwrSENyQnJDLHc2REF1Q0Esa3FDRHZCSSxXQUFXLDRTQUNYLFVBQVUsb09BQ1YsZ0JBQWdCOzs0RkFHUCx3QkFBd0I7a0JBZnBDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSxvQkFBb0I7cUJBQzVCLFdBQ1E7d0JBQ1AsV0FBVzt3QkFDWCxVQUFVO3dCQUNWLGdCQUFnQjtxQkFDakI7OzBCQTRCRSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTGluaywgUm91dGVyTGlua0FjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQZXJtaXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL21vZHVsZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd1cC1hcHBsZXQtY29udGFpbmVyJyxcbiAgc3R5bGVVcmw6ICcuL2FwcGxldC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwbGV0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkLWZsZXggaC0xMDAgdy0xMDAnXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBJb25pY01vZHVsZSxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIFJvdXRlckxpbmtBY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBsZXRDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqXG4gICAqIEEgZmxhZyB2YXJpYWJsZSB0aGF0IHVzZWQgdG8gY29udHJvbCBzaWRlYmFyLiBXaGVuIHNldCB0aGUgdGhlIHZhbHVlIHRvIHRydWUsIHRoZSBjb21wb25lbnQgd2lsbCBvcGVuIHRoZSBzaWRlYmFyLlxuICAgKiB3aGVuIHNldCB0aGUgdmFsdWUgdG8gZmFsc2UsIHRoZSBjb21wb25lbnQgd2lsbCBjbG9zZSB0aGUgc2lkZWJhci5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBwdWJsaWMgaXNDb2xsYXBzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBmbGFnIHZhcmlhYmxlIHRoYXQgdXNlZCB0byBjb250cm9sIHNpZGViYXIgbWVudS4gV2hlbiBzZXQgdmFsdWUgdG8gdHJ1ZSwgdGhlIGNvbXBvbmVudCB3aWxsIGhpZGUgdGhlIHNpZGViYXIgbWVudS5cbiAgICogV2hlbiBzZXQgZmFsc2UsIHRoZSBjb21wb25lbnQgd2lsbCBzaG93IHRoZSBzaWRlYmFyIG1lbnUuXG4gICAqIEB0eXBlIHtib29sZWFuW119XG4gICAqL1xuICBwdWJsaWMgaXNIaWRkZW46IGJvb2xlYW5bXSA9IEFycmF5KHRoaXMuY29uZmlnLmNvbnRhaW5lcnMubGVuZ3RoKS5maWxsKHRydWUpO1xuICBcbiAgLyoqXG4gICAqIEEgZmxhZyB2YXJpYWJsZSBmb3IgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHNpZGViYXIgbWVudSBpcyBhY3RpdmUgb3Igbm90IGluIG1vYmlsZSB2aWV3LlxuICAgKiBXaGVuIHNldCBmYWxzZSB0aGUgc2lkZWJhciBtZW51IHdpbGwgYmUgaGlkZGVuXG4gICAqIEB0eXBlIHtib29sZWFuW119XG4gICAqL1xuICBwdWJsaWMgaXNNZW51QWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzdWIhOiBTdWJzY3JpcHRpb247XG4gIHByb3RlY3RlZCBzdWJFdmVudCE6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdBUFBMRVRfQ09ORklHJykgcHVibGljIHJlYWRvbmx5IGNvbmZpZzoge1xuICAgICAgaWNvbjogc3RyaW5nLFxuICAgICAgbmFtZTogc3RyaW5nLFxuICAgICAgdGVuYW50TmFtZTogc3RyaW5nLFxuICAgICAgZW5hYmxlZFNldHRpbmc6IGJvb2xlYW4sXG4gICAgICBjb250YWluZXJzOiB7XG4gICAgICAgIGljb246IHN0cmluZyxcbiAgICAgICAgbGFiZWw6IHN0cmluZyxcbiAgICAgICAgcGF0aDogYC8keyBzdHJpbmcgfWAsXG4gICAgICAgIHBlcm1Nb2R1bGU6IHN0cmluZ1xuICAgICAgfVtdLFxuICAgICAgdmVyc2lvbjogc3RyaW5nXG4gICAgfSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2g6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2VcbiAgKSB7IH1cblxuICAvKipcbiAgICogTGlmZWN5Y2xlIGhvb2sgdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50cy5cbiAgICogU3Vic2NyaWJlcyB0byBwZXJtaXNzaW9uIGNoYW5nZXMgYW5kIHdpbmRvdyBldmVudHMuXG4gICAqL1xuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZHtcbiAgICB0aGlzLnN1YiA9IHRoaXMucGVybWlzc2lvblNlcnZpY2UucGVybU1vZHVsZXMuc3Vic2NyaWJlKChsaXN0UGVybU1vZHVsZTogc3RyaW5nW10pID0+IHtcbiAgICAgIHRoaXMuaXNIaWRkZW4gPSB0aGlzLmNvbmZpZy5jb250YWluZXJzLm1hcCgoeyBwZXJtTW9kdWxlIH0pID0+IHtcbiAgICAgICAgcmV0dXJuICFsaXN0UGVybU1vZHVsZS5pbmNsdWRlcyhwZXJtTW9kdWxlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zdWJFdmVudCA9IGZyb21FdmVudCh3aW5kb3csICdtZW51RXZlbnQnKS5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgIHRoaXMuaXNNZW51QWN0aXZlID0gZXZlbnQuZGV0YWlsLmlzQWN0aXZlO1xuICAgICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaWZlY3ljbGUgaG9vayB0byBoYW5kbGUgY29tcG9uZW50IGRlc3RydWN0aW9uLlxuICAgKiBDbGVhbnMgdXAgc3Vic2NyaXB0aW9ucyB0byBwcmV2ZW50IG1lbW9yeSBsZWFrc1xuICAgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWR7IFxuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJFdmVudC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIG1ldGhvZCBpcyBjYWxsZWQsIGl0IHdpbGwgY2hhbmdlIHRoZSB2YWx1ZSBvZiBpc0NvbGxhcHNlZCB0byBpdHMgb3Bwb3NpdGUgdmFsdWUuIFxuICAgKiBJZiBpc0NvbGxhcHNlZCBpcyBjdXJyZW50bHkgdHJ1ZSwgaXQgd2lsbCBiZSBzZXQgdG8gZmFsc2UsIGFuZCBpZiBpdCBpcyBjdXJyZW50bHkgZmFsc2UsIGl0IHdpbGwgYmUgc2V0IHRvIHRydWUuIFxuICAgKiBUaGlzIG1ldGhvZCBpcyB0eXBpY2FsbHkgdXNlZCB0byB0b2dnbGUgdGhlIHZpc2liaWxpdHkgb2YgYSBzaWRlIG5hdmlnYXRpb24gbWVudS5cbiAgICovXG4gIHB1YmxpYyB0b2dnbGVTaWRlbmF2KCk6IHZvaWR7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9ICF0aGlzLmlzQ29sbGFwc2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgbWVudSBzZWxlY3Rpb24gYnkgZGlzcGF0Y2hpbmcgYSBjdXN0b20gZXZlbnQuXG4gICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIGEgc2lkZWJhciBtZW51IGl0ZW0gaXMgc2VsZWN0ZWQuXG4gICAqIEl0IGRpc3BhdGNoZXMgYSBjdXN0b20gJ21lbnVFdmVudCcgd2l0aCBkZXRhaWwgaW5kaWNhdGluZyB0aGUgbWVudSBpcyBpbmFjdGl2ZS5cbiAgICogVGhpcyBldmVudCBpcyB0eXBpY2FsbHkgdXNlZCB0byBjbG9zZSB0aGUgc2lkZWJhciBtZW51LlxuICAgKi9cbiAgcHVibGljIHNlbGVjdE1lbnUoKTogdm9pZHtcbiAgICBkaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnbWVudUV2ZW50JywgeyBkZXRhaWw6IHsgaXNBY3RpdmU6IGZhbHNlIH0gfSkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2lkZW5hdiBmbGV4LXNocmluay0wIGgtMTAwIHB5LTQgZC1mbGV4IGZsZXgtY29sdW1uXCIgW2NsYXNzLmNvbGxhcHNlZF09XCJpc0NvbGxhcHNlZFwiIFtjbGFzcy5zaG93XT1cImlzTWVudUFjdGl2ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsb2dvLWNvbnRhaW5lciBweC0zIHBiLTMgYm9yZGVyLWJvdHRvbSBmbGV4LXNocmluay0wIHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTMgZC1ub25lIGQtbWQtZmxleFwiPlxuICAgICAgICA8aW1nIGFsdD1cIkFwcGxldCBJY29uXCIgd2lkdGg9XCI0NHB4XCIgaGVpZ2h0PVwiNDRweFwiIGNsYXNzPVwicm91bmRlZFwiIFtzcmNdPVwiY29uZmlnLmljb25cIiAvPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvIHctNzUgcGUtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWUgZnctbWVkaXVtIHRleHQtdHJ1bmNhdGVcIj57eyBjb25maWcubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGVuYW50IHB0LTEgZnctbWVkaXVtXCI+XG4gICAgICAgICAgICAgICAgdnt7IGNvbmZpZy52ZXJzaW9uIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1jbG9zZSBjdXJzb3ItcG9pbnRlciBwb3NpdGlvbi1hYnNvbHV0ZSBib3JkZXItMCByb3VuZGVkLWNpcmNsZSBkLW5vbmUgZC1tZC1ibG9ja1wiIChjbGljayk9XCJ0b2dnbGVTaWRlbmF2KClcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hldnJvbi1mb3J3YXJkXCIgY2xhc3M9XCJtdC0xXCIgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgcHgtMyBwdC0zIG92ZXJmbG93LXktYXV0byBkLW5vbmUgZC1tZC1ibG9ja1wiIChjbGljayk9XCJzZWxlY3RNZW51KClcIj5cbiAgICAgICAgQGZvciAoYyBvZiBjb25maWcuY29udGFpbmVyczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8YSBjbGFzcz1cIm5hdiBhbGlnbi1pdGVtcy1jZW50ZXIgdGV4dC1kZWNvcmF0aW9uLW5vbmUgZ2FwLTIgcm91bmRlZCBtYi0xIHt7IGlzSGlkZGVuWyRpbmRleF0/ICdkLW5vbmUnIDogJ2QtZmxleCcgfX1cIiByb3V0ZXJMaW5rQWN0aXZlPVwiZnctbWVkaXVtXCIgdGl0bGU9XCJ7eyBjLmxhYmVsIH19XCIgW3JvdXRlckxpbmtdPVwiYy5wYXRoXCI+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJ7eyBjLmljb24gfX1cIiAvPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+e3sgYy5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGNvbmZpZy5lbmFibGVkU2V0dGluZykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zaHJpbmstMCBweC0zIHB0LTMgYm9yZGVyLXRvcCBkLW5vbmUgZC1tZC1ibG9ja1wiIChjbGljayk9XCJzZWxlY3RNZW51KClcIj5cbiAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgdGV4dC1kZWNvcmF0aW9uLW5vbmUgZ2FwLTIgcm91bmRlZFwiIHRpdGxlPVwiU2V0dGluZ1wiIHJvdXRlckxpbms9XCJzZXR0aW5nXCIgcm91dGVyTGlua0FjdGl2ZT1cImZ3LW1lZGl1bVwiPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwic2V0dGluZ3NcIiAvPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+U2V0dGluZzwvZGl2PlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xIHctMTAwIG92ZXJmbG93LXktYXV0b1wiPlxuICAgIDxuZy1jb250ZW50IC8+XG48L2Rpdj5cbiJdfQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGV0LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvY29udGFpbmVycy9hcHBsZXQtY29udGFpbmVyL2FwcGxldC1jb250YWluZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdW5pcGluLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2NvbnRhaW5lcnMvYXBwbGV0LWNvbnRhaW5lci9hcHBsZXQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQyxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLDhCQUE4QixDQUFDOzs7O0FBaUIzRSxNQUFNLE9BQU8sd0JBQXdCO0lBeUJuQyxZQUN5QyxNQUFvQixFQUN4QyxFQUFxQixFQUNyQixpQkFBb0M7UUFGaEIsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQUN4QyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBckJsRCxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQU83QixhQUFRLEdBQWMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQU90RSxpQkFBWSxHQUFZLEtBQUssQ0FBQztJQVFqQyxDQUFDO0lBTUUsUUFBUTtRQUNiLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxjQUF3QixFQUFFLEVBQUU7WUFDbkYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUU7Z0JBQzVELE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDdEUsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUMxQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQU1NLFdBQVc7UUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFPTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7SUFRTSxVQUFVO1FBQ2YsYUFBYSxDQUFDLElBQUksV0FBVyxDQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDOytHQTFFVSx3QkFBd0Isa0JBMEJ6QixhQUFhO21HQTFCWix3QkFBd0IsK0hDdEJyQyx3NkRBdUNBLGtxQ0R0QkksV0FBVyw0U0FDWCxVQUFVLG9PQUNWLGdCQUFnQjs7NEZBR1Asd0JBQXdCO2tCQWZwQyxTQUFTO2lDQUNJLElBQUksWUFDTixxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixLQUFLLEVBQUUsb0JBQW9CO3FCQUM1QixXQUNRO3dCQUNQLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVixnQkFBZ0I7cUJBQ2pCOzswQkE0QkUsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmssIFJvdXRlckxpbmtBY3RpdmUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9tb2R1bGVzJztcbmltcG9ydCB7IEFQUExFVF9DT05GSUcsIEFwcGxldENvbmZpZyB9IGZyb20gJy4vcHJvdmlkZS1hcHBsZXQtY29uZmlnLnV0aWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICd1cC1hcHBsZXQtY29udGFpbmVyJyxcbiAgc3R5bGVVcmw6ICcuL2FwcGxldC1jb250YWluZXIuY29tcG9uZW50LnNjc3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwbGV0LWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdkLWZsZXggaC0xMDAgdy0xMDAnXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBJb25pY01vZHVsZSxcbiAgICBSb3V0ZXJMaW5rLFxuICAgIFJvdXRlckxpbmtBY3RpdmVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBsZXRDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqXG4gICAqIEEgZmxhZyB2YXJpYWJsZSB0aGF0IHVzZWQgdG8gY29udHJvbCBzaWRlYmFyLiBXaGVuIHNldCB0aGUgdGhlIHZhbHVlIHRvIHRydWUsIHRoZSBjb21wb25lbnQgd2lsbCBvcGVuIHRoZSBzaWRlYmFyLlxuICAgKiB3aGVuIHNldCB0aGUgdmFsdWUgdG8gZmFsc2UsIHRoZSBjb21wb25lbnQgd2lsbCBjbG9zZSB0aGUgc2lkZWJhci5cbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqL1xuICBwdWJsaWMgaXNDb2xsYXBzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQSBmbGFnIHZhcmlhYmxlIHRoYXQgdXNlZCB0byBjb250cm9sIHNpZGViYXIgbWVudS4gV2hlbiBzZXQgdmFsdWUgdG8gdHJ1ZSwgdGhlIGNvbXBvbmVudCB3aWxsIGhpZGUgdGhlIHNpZGViYXIgbWVudS5cbiAgICogV2hlbiBzZXQgZmFsc2UsIHRoZSBjb21wb25lbnQgd2lsbCBzaG93IHRoZSBzaWRlYmFyIG1lbnUuXG4gICAqIEB0eXBlIHtib29sZWFuW119XG4gICAqL1xuICBwdWJsaWMgaXNIaWRkZW46IGJvb2xlYW5bXSA9IEFycmF5KHRoaXMuY29uZmlnLmNvbnRhaW5lcnMubGVuZ3RoKS5maWxsKHRydWUpO1xuICBcbiAgLyoqXG4gICAqIEEgZmxhZyB2YXJpYWJsZSBmb3IgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHNpZGViYXIgbWVudSBpcyBhY3RpdmUgb3Igbm90IGluIG1vYmlsZSB2aWV3LlxuICAgKiBXaGVuIHNldCBmYWxzZSB0aGUgc2lkZWJhciBtZW51IHdpbGwgYmUgaGlkZGVuXG4gICAqIEB0eXBlIHtib29sZWFuW119XG4gICAqL1xuICBwdWJsaWMgaXNNZW51QWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzdWIhOiBTdWJzY3JpcHRpb247XG4gIHByb3RlY3RlZCBzdWJFdmVudCE6IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEFQUExFVF9DT05GSUcpIHB1YmxpYyByZWFkb25seSBjb25maWc6IEFwcGxldENvbmZpZyxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2g6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2VcbiAgKSB7IH1cblxuICAvKipcbiAgICogTGlmZWN5Y2xlIGhvb2sgdG8gaW5pdGlhbGl6ZSB0aGUgY29tcG9uZW50cy5cbiAgICogU3Vic2NyaWJlcyB0byBwZXJtaXNzaW9uIGNoYW5nZXMgYW5kIHdpbmRvdyBldmVudHMuXG4gICAqL1xuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZHtcbiAgICB0aGlzLnN1YiA9IHRoaXMucGVybWlzc2lvblNlcnZpY2UucGVybU1vZHVsZXMuc3Vic2NyaWJlKChsaXN0UGVybU1vZHVsZTogc3RyaW5nW10pID0+IHtcbiAgICAgIHRoaXMuaXNIaWRkZW4gPSB0aGlzLmNvbmZpZy5jb250YWluZXJzLm1hcCgoeyBwZXJtTW9kdWxlIH0pID0+IHtcbiAgICAgICAgcmV0dXJuICFsaXN0UGVybU1vZHVsZS5pbmNsdWRlcyhwZXJtTW9kdWxlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zdWJFdmVudCA9IGZyb21FdmVudCh3aW5kb3csICdtZW51RXZlbnQnKS5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgIHRoaXMuaXNNZW51QWN0aXZlID0gZXZlbnQuZGV0YWlsLmlzQWN0aXZlO1xuICAgICAgdGhpcy5jaC5tYXJrRm9yQ2hlY2soKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaWZlY3ljbGUgaG9vayB0byBoYW5kbGUgY29tcG9uZW50IGRlc3RydWN0aW9uLlxuICAgKiBDbGVhbnMgdXAgc3Vic2NyaXB0aW9ucyB0byBwcmV2ZW50IG1lbW9yeSBsZWFrc1xuICAgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWR7IFxuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJFdmVudC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZW4gdGhlIG1ldGhvZCBpcyBjYWxsZWQsIGl0IHdpbGwgY2hhbmdlIHRoZSB2YWx1ZSBvZiBpc0NvbGxhcHNlZCB0byBpdHMgb3Bwb3NpdGUgdmFsdWUuIFxuICAgKiBJZiBpc0NvbGxhcHNlZCBpcyBjdXJyZW50bHkgdHJ1ZSwgaXQgd2lsbCBiZSBzZXQgdG8gZmFsc2UsIGFuZCBpZiBpdCBpcyBjdXJyZW50bHkgZmFsc2UsIGl0IHdpbGwgYmUgc2V0IHRvIHRydWUuIFxuICAgKiBUaGlzIG1ldGhvZCBpcyB0eXBpY2FsbHkgdXNlZCB0byB0b2dnbGUgdGhlIHZpc2liaWxpdHkgb2YgYSBzaWRlIG5hdmlnYXRpb24gbWVudS5cbiAgICovXG4gIHB1YmxpYyB0b2dnbGVTaWRlbmF2KCk6IHZvaWR7XG4gICAgdGhpcy5pc0NvbGxhcHNlZCA9ICF0aGlzLmlzQ29sbGFwc2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgbWVudSBzZWxlY3Rpb24gYnkgZGlzcGF0Y2hpbmcgYSBjdXN0b20gZXZlbnQuXG4gICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIGEgc2lkZWJhciBtZW51IGl0ZW0gaXMgc2VsZWN0ZWQuXG4gICAqIEl0IGRpc3BhdGNoZXMgYSBjdXN0b20gJ21lbnVFdmVudCcgd2l0aCBkZXRhaWwgaW5kaWNhdGluZyB0aGUgbWVudSBpcyBpbmFjdGl2ZS5cbiAgICogVGhpcyBldmVudCBpcyB0eXBpY2FsbHkgdXNlZCB0byBjbG9zZSB0aGUgc2lkZWJhciBtZW51LlxuICAgKi9cbiAgcHVibGljIHNlbGVjdE1lbnUoKTogdm9pZHtcbiAgICBkaXNwYXRjaEV2ZW50KG5ldyBDdXN0b21FdmVudCgnbWVudUV2ZW50JywgeyBkZXRhaWw6IHsgaXNBY3RpdmU6IGZhbHNlIH0gfSkpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2lkZW5hdiBmbGV4LXNocmluay0wIGgtMTAwIHB5LTQgZC1mbGV4IGZsZXgtY29sdW1uXCIgW2NsYXNzLmNvbGxhcHNlZF09XCJpc0NvbGxhcHNlZFwiIFtjbGFzcy5zaG93XT1cImlzTWVudUFjdGl2ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJsb2dvLWNvbnRhaW5lciBweC0zIHBiLTMgYm9yZGVyLWJvdHRvbSBmbGV4LXNocmluay0wIHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTMgZC1ub25lIGQtbWQtZmxleFwiPlxuICAgICAgICA8aW1nIGFsdD1cIkFwcGxldCBJY29uXCIgd2lkdGg9XCI0NHB4XCIgaGVpZ2h0PVwiNDRweFwiIGNsYXNzPVwicm91bmRlZFwiIFtzcmNdPVwiY29uZmlnLmljb25cIiAvPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvIHctNzUgcGUtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWUgZnctbWVkaXVtIHRleHQtdHJ1bmNhdGVcIj57eyBjb25maWcubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGVuYW50IHB0LTEgZnctbWVkaXVtXCI+XG4gICAgICAgICAgICAgICAgdnt7IGNvbmZpZy52ZXJzaW9uIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0bi1jbG9zZSBjdXJzb3ItcG9pbnRlciBwb3NpdGlvbi1hYnNvbHV0ZSBib3JkZXItMCByb3VuZGVkLWNpcmNsZSBkLW5vbmUgZC1tZC1ibG9ja1wiIChjbGljayk9XCJ0b2dnbGVTaWRlbmF2KClcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hldnJvbi1mb3J3YXJkXCIgY2xhc3M9XCJtdC0xXCIgLz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgcHgtMyBwdC0zIG92ZXJmbG93LXktYXV0byBkLW5vbmUgZC1tZC1ibG9ja1wiIChjbGljayk9XCJzZWxlY3RNZW51KClcIj5cbiAgICAgICAgQGZvciAoYyBvZiBjb25maWcuY29udGFpbmVyczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8YSBjbGFzcz1cIm5hdiBhbGlnbi1pdGVtcy1jZW50ZXIgdGV4dC1kZWNvcmF0aW9uLW5vbmUgZ2FwLTIgcm91bmRlZCBtYi0xIHt7IGlzSGlkZGVuWyRpbmRleF0/ICdkLW5vbmUnIDogJ2QtZmxleCcgfX1cIiByb3V0ZXJMaW5rQWN0aXZlPVwiZnctbWVkaXVtXCIgdGl0bGU9XCJ7eyBjLmxhYmVsIH19XCIgW3JvdXRlckxpbmtdPVwiYy5wYXRoXCI+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJ7eyBjLmljb24gfX1cIiAvPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+e3sgYy5sYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGNvbmZpZy5lbmFibGVkU2V0dGluZykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zaHJpbmstMCBweC0zIHB0LTMgYm9yZGVyLXRvcCBkLW5vbmUgZC1tZC1ibG9ja1wiIChjbGljayk9XCJzZWxlY3RNZW51KClcIj5cbiAgICAgICAgICAgIDxhIGNsYXNzPVwibmF2IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgdGV4dC1kZWNvcmF0aW9uLW5vbmUgZ2FwLTIgcm91bmRlZFwiIHRpdGxlPVwiU2V0dGluZ1wiIHJvdXRlckxpbms9XCJzZXR0aW5nXCIgcm91dGVyTGlua0FjdGl2ZT1cImZ3LW1lZGl1bVwiPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwic2V0dGluZ3NcIiAvPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXRydW5jYXRlXCI+U2V0dGluZzwvZGl2PlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xIHctMTAwIG92ZXJmbG93LXktYXV0b1wiPlxuICAgIDxuZy1jb250ZW50IC8+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const APPLET_CONFIG = new InjectionToken('APPLET_CONFIG');
3
+ export function provideAppletConfig(config) {
4
+ return {
5
+ provide: APPLET_CONFIG,
6
+ useValue: config
7
+ };
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1hcHBsZXQtY29uZmlnLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvY29udGFpbmVycy9hcHBsZXQtY29udGFpbmVyL3Byb3ZpZGUtYXBwbGV0LWNvbmZpZy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFekQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFlLGVBQWUsQ0FBQyxDQUFDO0FBZS9FLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxNQUFvQjtJQUN0RCxPQUFPO1FBQ0wsT0FBTyxFQUFFLGFBQWE7UUFDdEIsUUFBUSxFQUFFLE1BQU07S0FDakIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEFQUExFVF9DT05GSUcgPSBuZXcgSW5qZWN0aW9uVG9rZW48QXBwbGV0Q29uZmlnPignQVBQTEVUX0NPTkZJRycpO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxldENvbmZpZyB7XG4gIGljb246IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG4gIGVuYWJsZWRTZXR0aW5nPzogYm9vbGVhbjtcbiAgY29udGFpbmVyczoge1xuICAgIGljb246IHN0cmluZztcbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIHBlcm1Nb2R1bGU6IHN0cmluZztcbiAgICBwYXRoOiBgLyR7IHN0cmluZyB9YDtcbiAgfVtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUFwcGxldENvbmZpZyhjb25maWc6IEFwcGxldENvbmZpZyk6IFByb3ZpZGVye1xuICByZXR1cm4geyBcbiAgICBwcm92aWRlOiBBUFBMRVRfQ09ORklHLCBcbiAgICB1c2VWYWx1ZTogY29uZmlnIFxuICB9O1xufVxuIl19
@@ -1,6 +1,7 @@
1
1
  export { AppletContainerComponent } from './applet-container/applet-container.component';
2
+ export { provideAppletConfig } from './applet-container/provide-applet-config.util';
2
3
  export { ColumnContainerComponent } from './column-container/column-container.component';
3
4
  export { ColumnHeaderContainerComponent } from './colum-header-container/column-header-container.component';
4
5
  export { ModalContainerComponent } from './modal-container/modal-container.component';
5
6
  export { ListPaginationContainerComponent, ListSnapshotContainerComponent } from './list-container';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvY29udGFpbmVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUM1RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQXVCLGdDQUFnQyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBBcHBsZXRDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2FwcGxldC1jb250YWluZXIvYXBwbGV0LWNvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0IHsgQ29sdW1uQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb2x1bW4tY29udGFpbmVyL2NvbHVtbi1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IENvbHVtbkhlYWRlckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29sdW0taGVhZGVyLWNvbnRhaW5lci9jb2x1bW4taGVhZGVyLWNvbnRhaW5lci5jb21wb25lbnQnO1xuZXhwb3J0IHsgTW9kYWxDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLWNvbnRhaW5lci9tb2RhbC1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IExpc3RDb250YWluZXJDb25maWcsIExpc3RQYWdpbmF0aW9uQ29udGFpbmVyQ29tcG9uZW50LCBMaXN0U25hcHNob3RDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2xpc3QtY29udGFpbmVyJztcbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91bmlwaW4tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvY29udGFpbmVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsbUJBQW1CLEVBQWdCLE1BQU0sK0NBQStDLENBQUM7QUFFbEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDNUcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUF1QixnQ0FBZ0MsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQXBwbGV0Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsZXQtY29udGFpbmVyL2FwcGxldC1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IHByb3ZpZGVBcHBsZXRDb25maWcsIEFwcGxldENvbmZpZyB9IGZyb20gJy4vYXBwbGV0LWNvbnRhaW5lci9wcm92aWRlLWFwcGxldC1jb25maWcudXRpbCc7XG5cbmV4cG9ydCB7IENvbHVtbkNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29sdW1uLWNvbnRhaW5lci9jb2x1bW4tY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQgeyBDb2x1bW5IZWFkZXJDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbHVtLWhlYWRlci1jb250YWluZXIvY29sdW1uLWhlYWRlci1jb250YWluZXIuY29tcG9uZW50JztcbmV4cG9ydCB7IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXIvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQgeyBMaXN0Q29udGFpbmVyQ29uZmlnLCBMaXN0UGFnaW5hdGlvbkNvbnRhaW5lckNvbXBvbmVudCwgTGlzdFNuYXBzaG90Q29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LWNvbnRhaW5lcic7XG4iXX0=
@@ -23,11 +23,21 @@ export class FilterComponent {
23
23
  key.forEach((k, i) => this.createFormControl(k, initialValue?.at(i)));
24
24
  }
25
25
  });
26
+ const savedState = localStorage.getItem(`${this.id}`);
27
+ if (savedState) {
28
+ const state = JSON.parse(savedState);
29
+ this.activeFilter = state.activeFilter;
30
+ this.form.patchValue(state.formValues);
31
+ this.emitValue();
32
+ }
33
+ }
34
+ close() {
35
+ this.popoverCtrl.dismiss();
26
36
  }
27
- close() { this.popoverCtrl.dismiss(); }
28
37
  clear() {
29
38
  this.resetValue();
30
39
  this.form.reset();
40
+ localStorage.removeItem(`${this.id}`);
31
41
  this.onSearch.emit({ mode: this.config.mode, data: null });
32
42
  }
33
43
  removeFilter(i) {
@@ -38,6 +48,9 @@ export class FilterComponent {
38
48
  search() {
39
49
  this.resetValue();
40
50
  this.emitValue((k, v) => this.activeFilter.push({ key: k, value: v, label: `${k}:${k.includes('date') ? formatDate(v, 'dd MMM yyyy', 'en-US') : v}` }));
51
+ if (this.activeFilter.length === 0) {
52
+ localStorage.removeItem(`${this.id}`);
53
+ }
41
54
  this.close();
42
55
  }
43
56
  add() {
@@ -80,6 +93,10 @@ export class FilterComponent {
80
93
  extraAction?.(k, f[k]);
81
94
  });
82
95
  this.onSearch.emit({ mode: this.config.mode, data: flag ? data : null });
96
+ localStorage.setItem(`${this.id}`, JSON.stringify({
97
+ activeFilter: this.activeFilter,
98
+ formValues: this.form.getRawValue()
99
+ }));
83
100
  }
84
101
  createFormControl(key, val) {
85
102
  this.form.addControl(key, new FormControl(''));
@@ -118,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
118
135
  type: ViewChild,
119
136
  args: ['searchBox']
120
137
  }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0osT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUloRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7QUFvQnJILE1BQU0sT0FBTyxlQUFlO0lBeUMxQixZQUNtQyxXQUFtQixFQUNqQyxFQUFxQixFQUNyQixXQUE4QjtRQUZoQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUF2QnpCLGFBQVEsR0FBb0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVl6RSxTQUFJLEdBQW1CLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBTWxELGlCQUFZLEdBQW9ELEVBQUUsQ0FBQztJQU10RSxDQUFDO0lBTUUsUUFBUTtRQUNiLElB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QUM7SUFDSCxDQUFDOytHQXhLVSxlQUFlLGtCQTBDYixhQUFhO21HQTFDZixlQUFlLCtTQzNCNUIsMjBKQTRGQSw4cEJEekVJLFdBQVcsODRCQUNYLGlCQUFpQixxSUFDakIsa0JBQWtCLDhIQUNsQixtQkFBbUIsNnJCQUNuQixtQkFBbUIsaU1BQ25CLDZCQUE2Qjs7NEZBR3BCLGVBQWU7a0JBbEIzQixTQUFTO2lDQUNJLElBQUksWUFDTixXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osS0FBSyxFQUFFLDJCQUEyQjtxQkFDbkMsV0FDUTt3QkFDUCxXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsNkJBQTZCO3FCQUM5Qjs7MEJBNENFLFNBQVM7MkJBQUMsYUFBYTt5R0FuQ1EsRUFBRTtzQkFBbkMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBT1MsTUFBTTtzQkFBdkMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBT0MsUUFBUTtzQkFBakMsTUFBTTtnQkFNb0MsU0FBUztzQkFBbkQsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUsIFBvcG92ZXJDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2ZpbHRlci1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbHRlckZpZWxkIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2ZpbHRlci1maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyU2VhcmNoRXZlbnQgfSBmcm9tICcuL2ludGVyZmFjZXMvZmlsdGVyLXNlYXJjaC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRm9ybUlucHV0Q29tcG9uZW50LCBGb3JtU2VsZWN0Q29tcG9uZW50LCBGb3JtRGF0ZUNvbXBvbmVudCwgRm9ybVNlYXJjaGFibGVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3VwLWZpbHRlcicsXG4gIHN0eWxlVXJsOiAgJy4vZmlsdGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IFxuICAgIGNsYXNzOiAnZC1ibG9jayBwb3NpdGlvbi1yZWxhdGl2ZScgXG4gIH0sXG4gIGltcG9ydHM6IFsgIFxuICAgIElvbmljTW9kdWxlLFxuICAgIEZvcm1EYXRlQ29tcG9uZW50LFxuICAgIEZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZvcm1TZWxlY3RDb21wb25lbnQsXG4gICAgRm9ybVNlYXJjaGFibGVTZWxlY3RDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3IgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBmaWx0ZXIuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcHVibGljIGlkITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHNwZWNpZnlpbmcgZmlsdGVyIGZpZWxkcyBhbmQgbW9kZS5cbiAgICogQHR5cGUge0ZpbHRlckNvbmZpZ31cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBwdWJsaWMgY29uZmlnITogRmlsdGVyQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgZXZlbnQgZW1pdHRlciB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBwZXJmb3JtcyBhIHNlYXJjaC5cbiAgICogRW1pdHMgYSBgRmlsdGVyU2VhcmNoRXZlbnRgIG9iamVjdCB3aXRoIHNlYXJjaCBtb2RlIGFuZCBjcml0ZXJpYSBkYXRhLlxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPEZpbHRlclNlYXJjaEV2ZW50Pn1cbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgb25TZWFyY2g6IEV2ZW50RW1pdHRlcjxGaWx0ZXJTZWFyY2hFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIFZpZXdDaGlsZCBkZWNvcmF0b3IgdG8gcmVmZXJlbmNlIHRoZSBzZWFyY2hCb3ggZWxlbWVudCBpbiB0aGUgdGVtcGxhdGUuXG4gICAqIEB0eXBlIHtFbGVtZW50UmVmfVxuICAgKi9cbiAgQFZpZXdDaGlsZCgnc2VhcmNoQm94JykgcHJvdGVjdGVkIHJlYWRvbmx5IHNlYXJjaEJveCE6IEVsZW1lbnRSZWY7XG5cbiAgLyoqXG4gICAqIEZvcm0gZ3JvdXAgZm9yIG1hbmFnaW5nIGZvcm0gY29udHJvbHMuXG4gICAqIEB0eXBlIHtGb3JtR3JvdXA8YW55Pn1cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmb3JtOiBGb3JtR3JvdXA8YW55PiA9IG5ldyBGb3JtR3JvdXAoe30pO1xuXG4gIC8qKlxuICAgKiBBcnJheSB0byBzdG9yZSBhY3RpdmUgZmlsdGVyIGNyaXRlcmlhLlxuICAgKiBAdHlwZSB7eyBsYWJlbDogc3RyaW5nLCBrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB9W119XG4gICAqL1xuICBwdWJsaWMgYWN0aXZlRmlsdGVyOiB7IGxhYmVsOiBzdHJpbmcsIGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcG9wb3ZlckN0cmw6IFBvcG92ZXJDb250cm9sbGVyXG4gICkgeyB9IFxuXG4gIC8qKlxuICAgKiBMaWZlY3ljbGUgaG9vayB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnQuXG4gICAqIENyZWF0ZXMgZm9ybSBjb250cm9scyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lke1xuICAgIHRoaXMuY29uZmlnLmZpZWxkcy5mb3JFYWNoKCh7IGtleSwgaW5pdGlhbFZhbHVlIH06IEZpbHRlckZpZWxkKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGtleSA9PT0gJ3N0cmluZycpIHRoaXMuY3JlYXRlRm9ybUNvbnRyb2woa2V5LCBpbml0aWFsVmFsdWUpO1xuICAgICAgZWxzZSB7XG4gICAgICAgIGtleS5mb3JFYWNoKChrOiBzdHJpbmcsIGk6IG51bWJlcikgPT4gdGhpcy5jcmVhdGVGb3JtQ29udHJvbChrLCBpbml0aWFsVmFsdWU/LmF0KGkpKSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBmaWx0ZXIgcG9wb3Zlci5cbiAgICovXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkeyB0aGlzLnBvcG92ZXJDdHJsLmRpc21pc3MoKTsgfVxuXG4gIC8qKlxuICAgKiBDbGVhcnMgYWxsIGZpbHRlciBjcml0ZXJpYSBhbmQgdHJpZ2dlcnMgYSBzZWFyY2ggZXZlbnQgd2l0aCBudWxsIGRhdGEuXG4gICAqL1xuICBwdWJsaWMgY2xlYXIoKTogdm9pZHtcbiAgICB0aGlzLnJlc2V0VmFsdWUoKTtcbiAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICB0aGlzLm9uU2VhcmNoLmVtaXQoeyBtb2RlOiB0aGlzLmNvbmZpZy5tb2RlLCBkYXRhOiBudWxsIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYSBzcGVjaWZpYyBmaWx0ZXIgY3JpdGVyaWEgYmFzZWQgb24gaXRzIGluZGV4LlxuICAgKiBAcGFyYW0ge251bWJlcn0gaSAtIEluZGV4IG9mIHRoZSBmaWx0ZXIgY3JpdGVyaWEgdG8gYmUgcmVtb3ZlZC5cbiAgICovXG4gIHB1YmxpYyByZW1vdmVGaWx0ZXIoaTogbnVtYmVyKTogdm9pZHtcbiAgICB0aGlzLmZvcm0uY29udHJvbHNbdGhpcy5hY3RpdmVGaWx0ZXJbaV0ua2V5XS5zZXRWYWx1ZSgnJyk7XG4gICAgdGhpcy5hY3RpdmVGaWx0ZXIuc3BsaWNlKGksIDEpO1xuICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhdGVzIGEgc2VhcmNoIGJhc2VkIG9uIHRoZSBhY3RpdmUgZmlsdGVyIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIHNlYXJjaCgpOiB2b2lke1xuICAgIHRoaXMucmVzZXRWYWx1ZSgpO1xuICAgIHRoaXMuZW1pdFZhbHVlKChrOiBzdHJpbmcsIHY6IHN0cmluZykgPT4gdGhpcy5hY3RpdmVGaWx0ZXIucHVzaCh7ICBrZXk6IGssIHZhbHVlOiB2LCBsYWJlbDogYCR7IGsgfTokeyBrLmluY2x1ZGVzKCdkYXRlJyk/IGZvcm1hdERhdGUodiwgJ2RkIE1NTSB5eXl5JywgJ2VuLVVTJykgOiB2IH1gIH0pKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIG5ldyBmaWx0ZXIgY3JpdGVyaWEgYmFzZWQgb24gdGhlIHVzZXIgaW5wdXQuXG4gICAqL1xuICBwdWJsaWMgYWRkKCk6IHZvaWR7XG4gICAgY29uc3QgeyBrZXksIHZhbHVlIH0gPSB0aGlzLmdldFZhbHVlKHRoaXMuc2VhcmNoQm94Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICAgIGlmICh0aGlzLmNvbmZpZy5maWVsZHMuZmluZEluZGV4KCh7IGtleTogayB9KSA9PiBrID09PSBrZXkpID09PSAtMSkge1xuICAgICAgdGhpcy5zZWFyY2hCb3gubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGkgPSB0aGlzLmFjdGl2ZUZpbHRlci5maW5kSW5kZXgoKHsga2V5OiBrIH0pID0+IGsgPT09IGtleSk7XG4gICAgaWYgKGkgPT09IC0xKSB0aGlzLmFjdGl2ZUZpbHRlci5wdXNoKHsgbGFiZWw6IGAkeyBrZXkgfTokeyB2YWx1ZSB9YCwga2V5LCB2YWx1ZSB9KTtcbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyW2ldLmtleSA9IGtleTtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyW2ldLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLmFjdGl2ZUZpbHRlcltpXS5sYWJlbCA9IGAkeyBrZXkgfTokeyB2YWx1ZSB9YDtcbiAgICB9XG5cbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IFtrZXldOiB2YWx1ZSB9KTtcbiAgICB0aGlzLnNlYXJjaEJveC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGFjdGl2ZSBmaWx0ZXIgYW5kIGNsZWFycyB0aGUgc2VhcmNoIGJveC5cbiAgICovXG4gIHByb3RlY3RlZCByZXNldFZhbHVlKCk6IHZvaWR7XG4gICAgdGhpcy5hY3RpdmVGaWx0ZXIubGVuZ3RoID0gMDtcbiAgICB0aGlzLnNlYXJjaEJveC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2VzIHRoZSBpbnB1dCB2YWx1ZSBhbmQgcmV0dXJucyBhIGtleS12YWx1ZSBwYWlyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBJbnB1dCB2YWx1ZSB0byBiZSBwYXJzZWQuXG4gICAqIEByZXR1cm5zIHt7IGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH19IC0gS2V5LXZhbHVlIHBhaXIgZXh0cmFjdGVkIGZyb20gdGhlIGlucHV0IHZhbHVlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFZhbHVlKHZhbHVlOiBzdHJpbmcpOiB7IGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH17XG4gICAgY29uc3QgdmFsdWVzOiBzdHJpbmdbXSA9IHZhbHVlLnNwbGl0KCc6Jyk7XG5cbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMSkgcmV0dXJuIHsga2V5OiA8c3RyaW5nPiB0aGlzLmNvbmZpZy5maWVsZHNbMF0ua2V5LCB2YWx1ZTogdmFsdWVzWzBdIH07XG4gICAgcmV0dXJuIHsga2V5OiB2YWx1ZXNbMF0sIHZhbHVlOiB2YWx1ZXNbMV0gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgc2VhcmNoIGV2ZW50IGJhc2VkIG9uIHRoZSBmb3JtIHZhbHVlcy5cbiAgICogSW52b2tlcyBhbiBleHRyYSBhY3Rpb24gaWYgcHJvdmlkZWQuXG4gICAqIEBwYXJhbSB7KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiB2b2lkfSBbZXh0cmFBY3Rpb25dIC0gT3B0aW9uYWwgZXh0cmEgYWN0aW9uIHRvIGJlIGludm9rZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZW1pdFZhbHVlKGV4dHJhQWN0aW9uPzogKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZHtcbiAgICBsZXQgZmxhZzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGNvbnN0IGYgPSB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKTtcbiAgICBjb25zdCBkYXRhOiB7IFtrOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIFxuICAgIE9iamVjdC5rZXlzKGYpLmZvckVhY2goKGs6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKCFmW2tdKSByZXR1cm47XG4gICAgICBcbiAgICAgIGZsYWcgPSB0cnVlO1xuICAgICAgZGF0YVtrXSA9IGZba107XG4gICAgICBleHRyYUFjdGlvbj8uKGssIGZba10pO1xuICAgIH0pO1xuICAgIHRoaXMub25TZWFyY2guZW1pdCh7IG1vZGU6IHRoaXMuY29uZmlnLm1vZGUsIGRhdGE6IGZsYWc/IGRhdGEgOiBudWxsIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBmb3JtIGNvbnRyb2wgZm9yIGEgZ2l2ZW4ga2V5IGFuZCBzZXRzIGl0cyBpbml0aWFsIHZhbHVlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gS2V5IGZvciB0aGUgZm9ybSBjb250cm9sLlxuICAgKiBAcGFyYW0geyp9IFt2YWxdIC0gSW5pdGlhbCB2YWx1ZSBmb3IgdGhlIGZvcm0gY29udHJvbC5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVGb3JtQ29udHJvbChrZXk6IHN0cmluZywgdmFsPzogYW55KTogdm9pZHtcbiAgICB0aGlzLmZvcm0uYWRkQ29udHJvbChrZXksIG5ldyBGb3JtQ29udHJvbCgnJykpO1xuXG4gICAgaWYgKHZhbCkge1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2tleV0uc2V0VmFsdWUodmFsKTtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyLnB1c2goeyBsYWJlbDogYCR7IGtleSB9OiR7IHZhbCB9YCwga2V5LCB2YWx1ZTogdmFsIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGlvbi1pY29uIG5hbWU9XCJzZWFyY2hcIiBjbGFzcz1cImZzLTQgcG9zaXRpb24tYWJzb2x1dGVcIiAvPlxuXG48ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmb3JtLWNvbnRyb2wgcHMtNSBweS0wIHBlLTAgZ2FwLTNcIj5cbiAgICBAaWYgKGFjdGl2ZUZpbHRlci5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTEgZmxleC1zaHJpbmstMCB0YWctY29udGFpbmVyIGdhcC0yIHRleHQtbm93cmFwIG92ZXJmbG93LWF1dG9cIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgYWN0aXZlRmlsdGVyOyB0cmFjayBpdGVtLmtleTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFnLWl0ZW0gcC0xIHJvdW5kZWQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB1c2VyLXNlbGVjdC1ub25lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2VcIiBjbGFzcz1cInBlLTEgbWUtMSBjdXJzb3ItcG9pbnRlciB0ZXh0LXByaW1hcnlcIiAoY2xpY2spPVwicmVtb3ZlRmlsdGVyKGkpO1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPGlucHV0ICNzZWFyY2hCb3ggdHlwZT1cInNlYXJjaFwiIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIiBjbGFzcz1cImZsZXgtc2hyaW5rLTEgYm9yZGVyLTAgZm9ybS1jb250cm9sIHBzLTAgcHktMlwiIFtjbGFzcy5hZHZdPVwiY29uZmlnLm1vZGUgPT09ICdhZHZhbmNlZCdcIiAoa2V5dXAuZW50ZXIpPVwiYWRkKCk7XCIgLz5cbjwvZGl2PlxuXG5AaWYgKGNvbmZpZy5tb2RlID09PSAnYWR2YW5jZWQnKSB7XG4gICAgPGlvbi1pY29uIG5hbWU9XCJmaWx0ZXJcIiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGZzLTQgY3Vyc29yLXBvaW50ZXJcIiBpZD1cImZpbHRlci17eyBpZCB9fVwiIC8+XG4gICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZVwiIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgZnMtNCBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjbGVhcigpO1wiIC8+XG4gICAgXG4gICAgPGlvbi1wb3BvdmVyIHRyaWdnZXI9XCJmaWx0ZXIte3sgaWQgfX1cIiB0cmlnZ2VyQWN0aW9uPVwiY2xpY2tcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmaWx0ZXIgb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wIGJvcmRlci1ib3R0b20gcC0xIHBlLTQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbnM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy01IGZ3LW1lZGl1bVwiPkFkdmFuY2VkIEZpbHRlcjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz1cImZsZXgtZ3Jvdy0xIG92ZXJmbG93LWF1dG8gcHgtNFwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChjIG9mIGNvbmZpZy5maWVsZHM7IHRyYWNrIGMua2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAc3dpdGNoIChjLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwLWlucHV0IHR5cGU9XCJudW1iZXJcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBjbGFzcz1cIm15LTRcIiBsYWJlbD1cInt7IGMubGFiZWwgfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJ7eyBjLmtleSB9fVwiIC8+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnY2hlY2tib3gnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNoZWNrYm94IGxhYmVsUGxhY2VtZW50PVwiZW5kXCIgZm9ybUNvbnRyb2xOYW1lPVwie3sgYy5rZXkgfX1cIj57eyBjLmxhYmVsIH19PC9pb24tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnZGF0ZS1yYW5nZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBteS00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXAtZGF0ZSBjbGFzcz1cImZsZXgtZ3Jvdy0xXCIgbmFtZT1cImZpbHRlci1mcm9tXCIgbGFiZWw9XCJ7eyBjLmxhYmVsWzBdIH19XCIgZm9ybUNvbnRyb2xOYW1lPVwie3sgYy5rZXlbMF0gfX1cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwLWRhdGUgY2xhc3M9XCJmbGV4LWdyb3ctMVwiIG5hbWU9XCJmaWx0ZXItdG9cIiBsYWJlbD1cInt7IGMubGFiZWxbMV0gfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJ7eyBjLmtleVsxXSB9fVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnc2VsZWN0JykgeyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwLXNlbGVjdCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXktNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwie3sgYy5sYWJlbCB9fVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwie3sgYy5rZXkgfX1cIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJjLm9wdGlvbnMhXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwiYy5tdWx0aXBsZSB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnc2VhcmNoYWJsZS1zZWxlY3QnKSB7IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXAtc2VhcmNoYWJsZS1zZWxlY3QgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm15LTRcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJ7eyBjLmxhYmVsIH19XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ7eyBjLmtleSB9fVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5RnVuY109XCJjLmdldE9wdGlvbnMhXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5pdGlhbEl0ZW1zXT1cImMub3B0aW9ucyFcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJjLm11bHRpcGxlIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBkZWZhdWx0IHsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1cC1pbnB1dCB0eXBlPVwidGV4dFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGNsYXNzPVwibXktNFwiIGxhYmVsPVwie3sgYy5sYWJlbCB9fVwiIGZvcm1Db250cm9sTmFtZT1cInt7IGMua2V5IH19XCIgLz4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zaHJpbmstMCBweS0zIHB4LTQgYm9yZGVyLXRvcCBkLWZsZXggZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gY2xhc3M9XCJmbGV4LWdyb3ctMVwiIGNvbG9yPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cImZvcm0ucmVzZXQoKTtcIj5SZXNldDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gY2xhc3M9XCJmbGV4LWdyb3ctMVwiIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzZWFyY2goKTtcIj5TZWFyY2g8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgPC9pb24tcG9wb3Zlcj4gICAgXG59XG4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0osT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUloRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7QUFvQnJILE1BQU0sT0FBTyxlQUFlO0lBeUMxQixZQUNtQyxXQUFtQixFQUNqQyxFQUFxQixFQUNyQixXQUE4QjtRQUZoQixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUNqQyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUF2QnpCLGFBQVEsR0FBb0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVl6RSxTQUFJLEdBQW1CLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBTWxELGlCQUFZLEdBQW9ELEVBQUUsQ0FBQztJQU10RSxDQUFDO0lBTUUsUUFBUTtRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBZSxFQUFFLEVBQUU7WUFDaEUsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO2dCQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLENBQUM7aUJBQ2xFLENBQUM7Z0JBQ0osR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEYsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFJLElBQUksQ0FBQyxFQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRXJDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBS00sS0FBSztRQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUtNLEtBQUs7UUFDVixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVsQixZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUksSUFBSSxDQUFDLEVBQUcsRUFBRSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQU1NLFlBQVksQ0FBQyxDQUFTO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUtNLE1BQU07UUFDWCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUcsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFJLENBQUUsSUFBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFBLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFNUssSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUksSUFBSSxDQUFDLEVBQUcsRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFLTSxHQUFHO1FBQ1IsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFT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SyxFQUFFLDJCQUEyQjtxQkFDbkMsV0FDUTt3QkFDUCxXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsNkJBQTZCO3FCQUM5Qjs7MEJBNENFLFNBQVM7MkJBQUMsYUFBYTt5R0FuQ1EsRUFBRTtzQkFBbkMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBT1MsTUFBTTtzQkFBdkMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBT0MsUUFBUTtzQkFBakMsTUFBTTtnQkFNb0MsU0FBUztzQkFBbkQsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9ybWF0RGF0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW9uaWNNb2R1bGUsIFBvcG92ZXJDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgRmlsdGVyQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2ZpbHRlci1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEZpbHRlckZpZWxkIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2ZpbHRlci1maWVsZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRmlsdGVyU2VhcmNoRXZlbnQgfSBmcm9tICcuL2ludGVyZmFjZXMvZmlsdGVyLXNlYXJjaC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRm9ybUlucHV0Q29tcG9uZW50LCBGb3JtU2VsZWN0Q29tcG9uZW50LCBGb3JtRGF0ZUNvbXBvbmVudCwgRm9ybVNlYXJjaGFibGVTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuLi9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3VwLWZpbHRlcicsXG4gIHN0eWxlVXJsOiAgJy4vZmlsdGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7IFxuICAgIGNsYXNzOiAnZC1ibG9jayBwb3NpdGlvbi1yZWxhdGl2ZScgXG4gIH0sXG4gIGltcG9ydHM6IFsgIFxuICAgIElvbmljTW9kdWxlLFxuICAgIEZvcm1EYXRlQ29tcG9uZW50LFxuICAgIEZvcm1JbnB1dENvbXBvbmVudCxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZvcm1TZWxlY3RDb21wb25lbnQsXG4gICAgRm9ybVNlYXJjaGFibGVTZWxlY3RDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3IgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBmaWx0ZXIuXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcHVibGljIGlkITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHNwZWNpZnlpbmcgZmlsdGVyIGZpZWxkcyBhbmQgbW9kZS5cbiAgICogQHR5cGUge0ZpbHRlckNvbmZpZ31cbiAgICogQHJlcXVpcmVkXG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBwdWJsaWMgY29uZmlnITogRmlsdGVyQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgZXZlbnQgZW1pdHRlciB0cmlnZ2VyZWQgd2hlbiB0aGUgdXNlciBwZXJmb3JtcyBhIHNlYXJjaC5cbiAgICogRW1pdHMgYSBgRmlsdGVyU2VhcmNoRXZlbnRgIG9iamVjdCB3aXRoIHNlYXJjaCBtb2RlIGFuZCBjcml0ZXJpYSBkYXRhLlxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPEZpbHRlclNlYXJjaEV2ZW50Pn1cbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgb25TZWFyY2g6IEV2ZW50RW1pdHRlcjxGaWx0ZXJTZWFyY2hFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIFZpZXdDaGlsZCBkZWNvcmF0b3IgdG8gcmVmZXJlbmNlIHRoZSBzZWFyY2hCb3ggZWxlbWVudCBpbiB0aGUgdGVtcGxhdGUuXG4gICAqIEB0eXBlIHtFbGVtZW50UmVmfVxuICAgKi9cbiAgQFZpZXdDaGlsZCgnc2VhcmNoQm94JykgcHJvdGVjdGVkIHJlYWRvbmx5IHNlYXJjaEJveCE6IEVsZW1lbnRSZWY7XG5cbiAgLyoqXG4gICAqIEZvcm0gZ3JvdXAgZm9yIG1hbmFnaW5nIGZvcm0gY29udHJvbHMuXG4gICAqIEB0eXBlIHtGb3JtR3JvdXA8YW55Pn1cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBmb3JtOiBGb3JtR3JvdXA8YW55PiA9IG5ldyBGb3JtR3JvdXAoe30pO1xuXG4gIC8qKlxuICAgKiBBcnJheSB0byBzdG9yZSBhY3RpdmUgZmlsdGVyIGNyaXRlcmlhLlxuICAgKiBAdHlwZSB7eyBsYWJlbDogc3RyaW5nLCBrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyB9W119XG4gICAqL1xuICBwdWJsaWMgYWN0aXZlRmlsdGVyOiB7IGxhYmVsOiBzdHJpbmcsIGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBBdHRyaWJ1dGUoJ3BsYWNlaG9sZGVyJykgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcG9wb3ZlckN0cmw6IFBvcG92ZXJDb250cm9sbGVyXG4gICkgeyB9IFxuXG4gIC8qKlxuICAgKiBMaWZlY3ljbGUgaG9vayB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnQuXG4gICAqIENyZWF0ZXMgZm9ybSBjb250cm9scyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbiBhbmQgcmVzdG9yZXMgc2F2ZWQgZmlsdGVyIHN0YXRlLlxuICAgKi9cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWR7XG4gICAgdGhpcy5jb25maWcuZmllbGRzLmZvckVhY2goKHsga2V5LCBpbml0aWFsVmFsdWUgfTogRmlsdGVyRmllbGQpID0+IHtcbiAgICAgIGlmICh0eXBlb2Yga2V5ID09PSAnc3RyaW5nJykgdGhpcy5jcmVhdGVGb3JtQ29udHJvbChrZXksIGluaXRpYWxWYWx1ZSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAga2V5LmZvckVhY2goKGs6IHN0cmluZywgaTogbnVtYmVyKSA9PiB0aGlzLmNyZWF0ZUZvcm1Db250cm9sKGssIGluaXRpYWxWYWx1ZT8uYXQoaSkpKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHNhdmVkU3RhdGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShgJHsgdGhpcy5pZCB9YCk7XG4gICAgaWYgKHNhdmVkU3RhdGUpIHtcbiAgICAgIGNvbnN0IHN0YXRlID0gSlNPTi5wYXJzZShzYXZlZFN0YXRlKTtcblxuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXIgPSBzdGF0ZS5hY3RpdmVGaWx0ZXI7XG4gICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShzdGF0ZS5mb3JtVmFsdWVzKTtcbiAgICAgIHRoaXMuZW1pdFZhbHVlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgZmlsdGVyIHBvcG92ZXIuXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoKTogdm9pZHsgXG4gICAgdGhpcy5wb3BvdmVyQ3RybC5kaXNtaXNzKCk7IFxuICB9XG5cbiAgLyoqXG4gICAqIENsZWFycyBhbGwgZmlsdGVyIGNyaXRlcmlhLCBsb2NhbFN0b3JhZ2UsIGFuZCB0cmlnZ2VycyBhIHNlYXJjaCBldmVudCB3aXRoIG51bGwgZGF0YS5cbiAgICovXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lke1xuICAgIHRoaXMucmVzZXRWYWx1ZSgpO1xuICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuXG4gICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYCR7IHRoaXMuaWQgfWApO1xuICAgIHRoaXMub25TZWFyY2guZW1pdCh7IG1vZGU6IHRoaXMuY29uZmlnLm1vZGUsIGRhdGE6IG51bGwgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhIHNwZWNpZmljIGZpbHRlciBjcml0ZXJpYSBiYXNlZCBvbiBpdHMgaW5kZXguXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBpIC0gSW5kZXggb2YgdGhlIGZpbHRlciBjcml0ZXJpYSB0byBiZSByZW1vdmVkLlxuICAgKi9cbiAgcHVibGljIHJlbW92ZUZpbHRlcihpOiBudW1iZXIpOiB2b2lke1xuICAgIHRoaXMuZm9ybS5jb250cm9sc1t0aGlzLmFjdGl2ZUZpbHRlcltpXS5rZXldLnNldFZhbHVlKCcnKTtcbiAgICB0aGlzLmFjdGl2ZUZpbHRlci5zcGxpY2UoaSwgMSk7XG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgYSBzZWFyY2ggYmFzZWQgb24gdGhlIGFjdGl2ZSBmaWx0ZXIgY3JpdGVyaWEgYW5kIGNsZWFycyB0aGUgc2F2ZWQgZmlsdGVyIHN0YXRlIGlmIHRoZXJlIGFyZSBubyBhY3RpdmUgZmlsdGVycy5cbiAgICovXG4gIHB1YmxpYyBzZWFyY2goKTogdm9pZHtcbiAgICB0aGlzLnJlc2V0VmFsdWUoKTtcbiAgICB0aGlzLmVtaXRWYWx1ZSgoazogc3RyaW5nLCB2OiBzdHJpbmcpID0+IHRoaXMuYWN0aXZlRmlsdGVyLnB1c2goeyAga2V5OiBrLCB2YWx1ZTogdiwgbGFiZWw6IGAkeyBrIH06JHsgay5pbmNsdWRlcygnZGF0ZScpPyBmb3JtYXREYXRlKHYsICdkZCBNTU0geXl5eScsICdlbi1VUycpIDogdiB9YCB9KSk7XG4gICAgXG4gICAgaWYgKHRoaXMuYWN0aXZlRmlsdGVyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oYCR7IHRoaXMuaWQgfWApO1xuICAgIH1cbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIG5ldyBmaWx0ZXIgY3JpdGVyaWEgYmFzZWQgb24gdGhlIHVzZXIgaW5wdXQuXG4gICAqL1xuICBwdWJsaWMgYWRkKCk6IHZvaWR7XG4gICAgY29uc3QgeyBrZXksIHZhbHVlIH0gPSB0aGlzLmdldFZhbHVlKHRoaXMuc2VhcmNoQm94Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICAgIGlmICh0aGlzLmNvbmZpZy5maWVsZHMuZmluZEluZGV4KCh7IGtleTogayB9KSA9PiBrID09PSBrZXkpID09PSAtMSkge1xuICAgICAgdGhpcy5zZWFyY2hCb3gubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGkgPSB0aGlzLmFjdGl2ZUZpbHRlci5maW5kSW5kZXgoKHsga2V5OiBrIH0pID0+IGsgPT09IGtleSk7XG4gICAgaWYgKGkgPT09IC0xKSB0aGlzLmFjdGl2ZUZpbHRlci5wdXNoKHsgbGFiZWw6IGAkeyBrZXkgfTokeyB2YWx1ZSB9YCwga2V5LCB2YWx1ZSB9KTtcbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyW2ldLmtleSA9IGtleTtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyW2ldLnZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLmFjdGl2ZUZpbHRlcltpXS5sYWJlbCA9IGAkeyBrZXkgfTokeyB2YWx1ZSB9YDtcbiAgICB9XG5cbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IFtrZXldOiB2YWx1ZSB9KTtcbiAgICB0aGlzLnNlYXJjaEJveC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5lbWl0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGFjdGl2ZSBmaWx0ZXIgYW5kIGNsZWFycyB0aGUgc2VhcmNoIGJveC5cbiAgICovXG4gIHByb3RlY3RlZCByZXNldFZhbHVlKCk6IHZvaWR7XG4gICAgdGhpcy5hY3RpdmVGaWx0ZXIubGVuZ3RoID0gMDtcbiAgICB0aGlzLnNlYXJjaEJveC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gIH1cblxuICAvKipcbiAgICogUGFyc2VzIHRoZSBpbnB1dCB2YWx1ZSBhbmQgcmV0dXJucyBhIGtleS12YWx1ZSBwYWlyLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBJbnB1dCB2YWx1ZSB0byBiZSBwYXJzZWQuXG4gICAqIEByZXR1cm5zIHt7IGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH19IC0gS2V5LXZhbHVlIHBhaXIgZXh0cmFjdGVkIGZyb20gdGhlIGlucHV0IHZhbHVlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFZhbHVlKHZhbHVlOiBzdHJpbmcpOiB7IGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH17XG4gICAgY29uc3QgdmFsdWVzOiBzdHJpbmdbXSA9IHZhbHVlLnNwbGl0KCc6Jyk7XG5cbiAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMSkgcmV0dXJuIHsga2V5OiA8c3RyaW5nPiB0aGlzLmNvbmZpZy5maWVsZHNbMF0ua2V5LCB2YWx1ZTogdmFsdWVzWzBdIH07XG4gICAgcmV0dXJuIHsga2V5OiB2YWx1ZXNbMF0sIHZhbHVlOiB2YWx1ZXNbMV0gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgc2VhcmNoIGV2ZW50IGJhc2VkIG9uIHRoZSBmb3JtIHZhbHVlcy5cbiAgICogSW52b2tlcyBhbiBleHRyYSBhY3Rpb24gaWYgcHJvdmlkZWQgYW5kIHNhdmVzIHRoZSBzdGF0ZSB0byBsb2NhbFN0b3JhZ2UuXG4gICAqIEBwYXJhbSB7KGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiB2b2lkfSBbZXh0cmFBY3Rpb25dIC0gT3B0aW9uYWwgZXh0cmEgYWN0aW9uIHRvIGJlIGludm9rZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgZW1pdFZhbHVlKGV4dHJhQWN0aW9uPzogKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZHtcbiAgICBsZXQgZmxhZzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGNvbnN0IGYgPSB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKTtcbiAgICBjb25zdCBkYXRhOiB7IFtrOiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIFxuICAgIE9iamVjdC5rZXlzKGYpLmZvckVhY2goKGs6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKCFmW2tdKSByZXR1cm47XG4gICAgICBcbiAgICAgIGZsYWcgPSB0cnVlO1xuICAgICAgZGF0YVtrXSA9IGZba107XG4gICAgICBleHRyYUFjdGlvbj8uKGssIGZba10pO1xuICAgIH0pO1xuICAgIHRoaXMub25TZWFyY2guZW1pdCh7IG1vZGU6IHRoaXMuY29uZmlnLm1vZGUsIGRhdGE6IGZsYWc/IGRhdGEgOiBudWxsIH0pO1xuICAgIFxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxuICAgICAgYCR7IHRoaXMuaWQgfWAsIFxuICAgICAgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBhY3RpdmVGaWx0ZXI6IHRoaXMuYWN0aXZlRmlsdGVyLFxuICAgICAgICBmb3JtVmFsdWVzOiB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBmb3JtIGNvbnRyb2wgZm9yIGEgZ2l2ZW4ga2V5IGFuZCBzZXRzIGl0cyBpbml0aWFsIHZhbHVlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gS2V5IGZvciB0aGUgZm9ybSBjb250cm9sLlxuICAgKiBAcGFyYW0geyp9IFt2YWxdIC0gSW5pdGlhbCB2YWx1ZSBmb3IgdGhlIGZvcm0gY29udHJvbC5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVGb3JtQ29udHJvbChrZXk6IHN0cmluZywgdmFsPzogYW55KTogdm9pZHtcbiAgICB0aGlzLmZvcm0uYWRkQ29udHJvbChrZXksIG5ldyBGb3JtQ29udHJvbCgnJykpO1xuXG4gICAgaWYgKHZhbCkge1xuICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzW2tleV0uc2V0VmFsdWUodmFsKTtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyLnB1c2goeyBsYWJlbDogYCR7IGtleSB9OiR7IHZhbCB9YCwga2V5LCB2YWx1ZTogdmFsIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPGlvbi1pY29uIG5hbWU9XCJzZWFyY2hcIiBjbGFzcz1cImZzLTQgcG9zaXRpb24tYWJzb2x1dGVcIiAvPlxuXG48ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBmb3JtLWNvbnRyb2wgcHMtNSBweS0wIHBlLTAgZ2FwLTNcIj5cbiAgICBAaWYgKGFjdGl2ZUZpbHRlci5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1ncm93LTEgZmxleC1zaHJpbmstMCB0YWctY29udGFpbmVyIGdhcC0yIHRleHQtbm93cmFwIG92ZXJmbG93LWF1dG9cIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgYWN0aXZlRmlsdGVyOyB0cmFjayBpdGVtLmtleTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFnLWl0ZW0gcC0xIHJvdW5kZWQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB1c2VyLXNlbGVjdC1ub25lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2VcIiBjbGFzcz1cInBlLTEgbWUtMSBjdXJzb3ItcG9pbnRlciB0ZXh0LXByaW1hcnlcIiAoY2xpY2spPVwicmVtb3ZlRmlsdGVyKGkpO1wiIC8+XG4gICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPGlucHV0ICNzZWFyY2hCb3ggdHlwZT1cInNlYXJjaFwiIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIiBjbGFzcz1cImZsZXgtc2hyaW5rLTEgYm9yZGVyLTAgZm9ybS1jb250cm9sIHBzLTAgcHktMlwiIFtjbGFzcy5hZHZdPVwiY29uZmlnLm1vZGUgPT09ICdhZHZhbmNlZCdcIiAoa2V5dXAuZW50ZXIpPVwiYWRkKCk7XCIgLz5cbjwvZGl2PlxuXG5AaWYgKGNvbmZpZy5tb2RlID09PSAnYWR2YW5jZWQnKSB7XG4gICAgPGlvbi1pY29uIG5hbWU9XCJmaWx0ZXJcIiBjbGFzcz1cInBvc2l0aW9uLWFic29sdXRlIGZzLTQgY3Vyc29yLXBvaW50ZXJcIiBpZD1cImZpbHRlci17eyBpZCB9fVwiIC8+XG4gICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZVwiIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgZnMtNCBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjbGVhcigpO1wiIC8+XG4gICAgXG4gICAgPGlvbi1wb3BvdmVyIHRyaWdnZXI9XCJmaWx0ZXIte3sgaWQgfX1cIiB0cmlnZ2VyQWN0aW9uPVwiY2xpY2tcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBmaWx0ZXIgb3ZlcmZsb3ctYXV0b1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wIGJvcmRlci1ib3R0b20gcC0xIHBlLTQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbnM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy01IGZ3LW1lZGl1bVwiPkFkdmFuY2VkIEZpbHRlcjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgICAgICAgICA8Zm9ybSBjbGFzcz1cImZsZXgtZ3Jvdy0xIG92ZXJmbG93LWF1dG8gcHgtNFwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChjIG9mIGNvbmZpZy5maWVsZHM7IHRyYWNrIGMua2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAc3dpdGNoIChjLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwLWlucHV0IHR5cGU9XCJudW1iZXJcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBjbGFzcz1cIm15LTRcIiBsYWJlbD1cInt7IGMubGFiZWwgfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJ7eyBjLmtleSB9fVwiIC8+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnY2hlY2tib3gnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWNoZWNrYm94IGxhYmVsUGxhY2VtZW50PVwiZW5kXCIgZm9ybUNvbnRyb2xOYW1lPVwie3sgYy5rZXkgfX1cIj57eyBjLmxhYmVsIH19PC9pb24tY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnZGF0ZS1yYW5nZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMyBteS00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXAtZGF0ZSBjbGFzcz1cImZsZXgtZ3Jvdy0xXCIgbmFtZT1cImZpbHRlci1mcm9tXCIgbGFiZWw9XCJ7eyBjLmxhYmVsWzBdIH19XCIgZm9ybUNvbnRyb2xOYW1lPVwie3sgYy5rZXlbMF0gfX1cIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwLWRhdGUgY2xhc3M9XCJmbGV4LWdyb3ctMVwiIG5hbWU9XCJmaWx0ZXItdG9cIiBsYWJlbD1cInt7IGMubGFiZWxbMV0gfX1cIiBmb3JtQ29udHJvbE5hbWU9XCJ7eyBjLmtleVsxXSB9fVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnc2VsZWN0JykgeyBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVwLXNlbGVjdCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibXktNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPVwie3sgYy5sYWJlbCB9fVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwie3sgYy5rZXkgfX1cIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJjLm9wdGlvbnMhXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwiYy5tdWx0aXBsZSB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnc2VhcmNoYWJsZS1zZWxlY3QnKSB7IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXAtc2VhcmNoYWJsZS1zZWxlY3QgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm15LTRcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9XCJ7eyBjLmxhYmVsIH19XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ7eyBjLmtleSB9fVwiIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3F1ZXJ5RnVuY109XCJjLmdldE9wdGlvbnMhXCIgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5pdGlhbEl0ZW1zXT1cImMub3B0aW9ucyFcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJjLm11bHRpcGxlIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBkZWZhdWx0IHsgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1cC1pbnB1dCB0eXBlPVwidGV4dFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGNsYXNzPVwibXktNFwiIGxhYmVsPVwie3sgYy5sYWJlbCB9fVwiIGZvcm1Db250cm9sTmFtZT1cInt7IGMua2V5IH19XCIgLz4gXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zaHJpbmstMCBweS0zIHB4LTQgYm9yZGVyLXRvcCBkLWZsZXggZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gY2xhc3M9XCJmbGV4LWdyb3ctMVwiIGNvbG9yPVwic2Vjb25kYXJ5XCIgKGNsaWNrKT1cImZvcm0ucmVzZXQoKTtcIj5SZXNldDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gY2xhc3M9XCJmbGV4LWdyb3ctMVwiIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJzZWFyY2goKTtcIj5TZWFyY2g8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgPC9pb24tcG9wb3Zlcj4gICAgXG59XG4iXX0=
@@ -37,8 +37,10 @@ export class GridPaginationComponent {
37
37
  this.onGridReady.emit(ev);
38
38
  this.service.setApi(this.id, this.gridApi);
39
39
  const state = JSON.parse(localStorage.getItem(this.id));
40
- if (state)
41
- ev.api.applyColumnState({ state, applyOrder: true });
40
+ if (state) {
41
+ this.gridApi.applyColumnState({ state, applyOrder: true });
42
+ this.gridApi.setColumnsVisible(this.gridApi.getAllGridColumns(), true);
43
+ }
42
44
  if (this.rowModelType === 'clientSide')
43
45
  this.gridApi.setGridOption('rowData', this.rowData);
44
46
  if (this.rowModelType !== 'infinite')
@@ -106,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
106
108
  }], onSelectionChanged: [{
107
109
  type: Output
108
110
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9ncmlkcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9ncmlkcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBdUMsY0FBYyxFQUFtSSxNQUFNLHlCQUF5QixDQUFDO0FBQy9OLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQWMxRCxNQUFNLE9BQU8sdUJBQXVCO0lBdUZsQyxZQUNxQixPQUFvQjtRQUFwQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBM0V6QixZQUFPLEdBQVUsRUFBRSxDQUFDO1FBTXBCLE9BQUUsR0FBdUIsUUFBUSxDQUFDO1FBT2xDLGlCQUFZLEdBQWlCLFVBQVUsQ0FBQztRQU14QyxpQkFBWSxHQUEwQixRQUFRLENBQUM7UUFlckMsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBT25ELGdCQUFXLEdBQWlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFPL0QsdUJBQWtCLEdBQTZDLElBQUksWUFBWSxFQUFFLENBQUM7UUFNNUYs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LENBQUMsYUFBYSxDQUFDLHVCQUF1QixFQUFFLHFCQUFzQixPQUFRLFNBQVMsQ0FBQyxDQUFDO3dCQUU3RixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7d0JBQ2pDLFlBQVksRUFBRSxDQUFDO29CQUNqQixDQUFDO2lCQUNGLENBQUMsQ0FBQztZQUNMLENBQUM7U0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7K0dBeE1VLHVCQUF1QjttR0FBdkIsdUJBQXVCLCtVQ25CcEMsMHBCQWlCQSxrSURESSxZQUFZOzs0RkFHSCx1QkFBdUI7a0JBVm5DLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNQLFlBQVk7cUJBQ2I7Z0ZBU2lDLE1BQU07c0JBQXZDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQU1ULE9BQU87c0JBQXRCLEtBQUs7Z0JBTVUsRUFBRTtzQkFBakIsS0FBSztnQkFPVSxZQUFZO3NCQUEzQixLQUFLO2dCQU1VLFlBQVk7c0JBQTNCLEtBQUs7Z0JBUVUsV0FBVztzQkFBMUIsS0FBSztnQkFPb0IsVUFBVTtzQkFBbkMsTUFBTTtnQkFPbUIsV0FBVztzQkFBcEMsTUFBTTtnQkFPbUIsa0JBQWtCO3NCQUEzQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb2xEZWYsIElEYXRhc291cmNlLCBJR2V0Um93c1BhcmFtcywgTW9kdWxlUmVnaXN0cnksIFJvd01vZGVsVHlwZSwgR3JpZFJlYWR5RXZlbnQsIERyYWdTdG9wcGVkRXZlbnQsIFNlbGVjdGlvbkNoYW5nZWRFdmVudCwgR3JpZEFwaSwgUGFnaW5hdGlvbkNoYW5nZWRFdmVudCwgUm93Q2xhc3NQYXJhbXMsIFJvd05vZGUgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQgeyBJbmZpbml0ZVJvd01vZGVsTW9kdWxlIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2luZmluaXRlLXJvdy1tb2RlbCc7XG5pbXBvcnQgeyBDbGllbnRTaWRlUm93TW9kZWxNb2R1bGUgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY2xpZW50LXNpZGUtcm93LW1vZGVsJztcbmltcG9ydCB7IEFnR3JpZE1vZHVsZSB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9hbmd1bGFyJztcbmltcG9ydCB7IEdyaWRDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2dyaWQtY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBHcmlkU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2dyaWQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3VwLXBhZ2luYXRpb24tZ3JpZCcsXG4gIHN0eWxlVXJsOiAnLi9ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFsgXG4gICAgQWdHcmlkTW9kdWxlIFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRQYWdpbmF0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IGRlZmluaW5nIHRoZSBhZy1HcmlkIHByb3BlcnRpZXMuXG4gICAqIEB0eXBlIHtHcmlkQ29uZmlnfVxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHB1YmxpYyBjb25maWchOiBHcmlkQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3IgcHJvdmlkaW5nIHRoZSByb3cgZGF0YSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIGFnLUdyaWQuXG4gICAqIEB0eXBlIHthbnlbXX1cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyByb3dEYXRhOiBhbnlbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3Igc3BlY2lmeWluZyB0aGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGFnLUdyaWQgY29tcG9uZW50LlxuICAgKiBAdHlwZSB7YGdyaWQtJHsgc3RyaW5nIH1gfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIGlkOiBgZ3JpZC0keyBzdHJpbmcgfWAgPSAnZ3JpZC1wJztcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgZm9yIHNwZWNpZnlpbmcgdGhlIHJvdyBtb2RlbCB0eXBlIGZvciB0aGUgYWctR3JpZC5cbiAgICogSXQgY2FuIGJlICdpbmZpbml0ZScgb3IgJ2NsaWVudFNpZGUnLlxuICAgKiBAdHlwZSB7Um93TW9kZWxUeXBlfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHJvd01vZGVsVHlwZTogUm93TW9kZWxUeXBlID0gJ2luZmluaXRlJztcblxuICAvKipcbiAgICogSW5wdXQgdmFyaWFibGUgZm9yIHNwZWNpZnlpbmcgdGhlIHJvdyBzZWxlY3Rpb24gbW9kZS4gSXQgY2FuIGJlICdzaW5nbGUnIG9yICdtdWx0aXBsZScuXG4gICAqIEB0eXBlIHsoJ3NpbmdsZScgfCAnbXVsdGlwbGUnKX1cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyByb3dTZWxlY3Rpb246ICdzaW5nbGUnIHwgJ211bHRpcGxlJyA9ICdzaW5nbGUnO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayB2ZXJzaW9uIG9mIHByb3BlcnR5IGByb3dDbGFzc2AgdG8gc2V0IGNsYXNzKGVzKSBmb3IgZWFjaCByb3cgaW5kaXZpZHVhbGx5LiBcbiAgICogRnVuY3Rpb24gc2hvdWxkIHJldHVybiBlaXRoZXIgYSBzdHJpbmcgKGNsYXNzIG5hbWUpLCBhcnJheSBvZiBzdHJpbmdzIChhcnJheSBvZiBjbGFzcyBuYW1lcykgb3IgdW5kZWZpbmVkIGZvciBubyBjbGFzcy5cbiAgICogQHR5cGUgeyBSb3dDbGFzc1BhcmFtczxURGF0YSA9IGFueSwgVENvbnRleHQgPSBhbnk+IH1cbiAgICogQHJldHVybnMgeyBzdHJpbmcgfVxuICAqLyBcbiAgQElucHV0KCkgcHVibGljIGdldFJvd0NsYXNzOiAoKHBhcmFtczogUm93Q2xhc3NQYXJhbXM8Um93Tm9kZSwgYW55PikgPT4gc3RyaW5nKSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogT3V0cHV0IGV2ZW50IGVtaXR0ZXIgdHJpZ2dlcmVkIHdoZW4gYSByb3cgaW4gdGhlIGFnLUdyaWQgaXMgY2xpY2tlZC5cbiAgICogRW1pdHMgdGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbGlja2VkIHJvdy5cbiAgICogQHR5cGUge0V2ZW50RW1pdHRlcjxhbnk+fVxuICAgKi9cbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBvblJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogT3V0cHV0IGV2ZW50IGVtaXR0ZXIgdHJpZ2dlcmVkIHdoZW4gdGhlIGFnLUdyaWQgaXMgcmVhZHkuXG4gICAqIEVtaXRzIGEgYEdyaWRSZWFkeUV2ZW50YCBvYmplY3QuXG4gICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8R3JpZFJlYWR5RXZlbnQ+fVxuICAgKi9cbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBvbkdyaWRSZWFkeTogRXZlbnRFbWl0dGVyPEdyaWRSZWFkeUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgICogT3V0cHV0IGV2ZW50IGVtaXR0ZXIgdHJpZ2dlcmVkIHdoZW4gdGhlIHNlbGVjdGlvbiBpbiB0aGUgYWctR3JpZCBjaGFuZ2VzLlxuICAgKiBFbWl0cyBhIGBTZWxlY3Rpb25DaGFuZ2VkRXZlbnQ8YW55PmAgb2JqZWN0LlxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPFNlbGVjdGlvbkNoYW5nZWRFdmVudDxhbnk+Pn1cbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgb25TZWxlY3Rpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8U2VsZWN0aW9uQ2hhbmdlZEV2ZW50PGFueT4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IGNvbHVtbiBkZWZpbml0aW9uIGZvciB0aGUgYWctR3JpZC5cbiAgICogQHR5cGUge0NvbERlZn1cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkZWZhdWx0Q29sRGVmOiBDb2xEZWYgPSB7IG1pbldpZHRoOiAyMDAsIGZsZXg6IDEsIHNvcnRhYmxlOiB0cnVlLCByZXNpemFibGU6IHRydWUsIHNvcnRpbmdPcmRlcjogWyAnYXNjJywgJ2Rlc2MnIF0sIGNlbGxTdHlsZTogeyB0ZXh0QWxpZ246ICdsZWZ0JyB9fTtcblxuICAvKipcbiAgICogUHJvdGVjdGVkIHZhcmlhYmxlIHRvIHN0b3JlIHRoZSB0b3RhbCBjb3VudCBvZiByZWNvcmRzLlxuICAgKiBAdHlwZSB7bnVtYmVyIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgcHJvdGVjdGVkIGNvdW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBQcm90ZWN0ZWQgdmFyaWFibGUgdG8gc3RvcmUgdGhlIGFnLUdyaWQgQVBJLlxuICAgKiBAdHlwZSB7R3JpZEFwaX1cbiAgICovXG4gIHByb3RlY3RlZCBncmlkQXBpITogR3JpZEFwaTtcblxuICAvKipcbiAgICogUHJvdGVjdGVkIHZhcmlhYmxlIHRvIHN0b3JlIHRoZSBzdWJzY3JpcHRpb24gdG8gZGF0YSByZXRyaWV2YWwuXG4gICAqIEB0eXBlIHtTdWJzY3JpcHRpb24gfCB1bmRlZmluZWR9XG4gICAqL1xuICBwcm90ZWN0ZWQgc3Vicz86IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VydmljZTogR3JpZFNlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBMaWZlY3ljbGUgaG9vayB0byBpbml0aWFsaXplIHRoZSBjb21wb25lbnQuXG4gICAqIFJlZ2lzdGVycyB0aGUgcm93IG1vZGVsIHR5cGUgbW9kdWxlIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgdHlwZS5cbiAgICogU2V0cyBkZWZhdWx0IHZhbHVlcyBmb3Igcm93UGVyUGFnZSBhbmQgbm9Sb3dUZXh0IHByb3BlcnRpZXMgaW4gdGhlIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZHtcbiAgICBNb2R1bGVSZWdpc3RyeS5yZWdpc3Rlcih0aGlzLnJvd01vZGVsVHlwZSA9PT0gJ2luZmluaXRlJz8gSW5maW5pdGVSb3dNb2RlbE1vZHVsZSA6IENsaWVudFNpZGVSb3dNb2RlbE1vZHVsZSk7XG5cbiAgICBpZiAoIXRoaXMuY29uZmlnLnJvd1BlclBhZ2UpIHRoaXMuY29uZmlnLnJvd1BlclBhZ2UgPSA1MDtcbiAgICB0aGlzLmNvbmZpZy5ub1Jvd1RleHQgPSBgPHNwYW4gY2xhc3M9XCJmMjBcIj4keyB0aGlzLmNvbmZpZy5ub1Jvd1RleHQ/PyAnRGF0YSBub3QgZm91bmQnIH08L3NwYW4+YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaWZlY3ljbGUgaG9vayB0byBoYW5kbGUgY29tcG9uZW50IGRlc3RydWN0aW9uLlxuICAgKiBVbnN1YnNjcmliZXMgZnJvbSBkYXRhIHJldHJpZXZhbCBzdWJzY3JpcHRpb25zLlxuICAgKi9cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWR7IHRoaXMuc3Vicz8udW5zdWJzY3JpYmUoKTsgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBjbGlja2luZyBhIHJvdyBpbiB0aGUgYWctR3JpZC5cbiAgICogRW1pdHMgdGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbGlja2VkIHJvdy5cbiAgICogQHBhcmFtIHthbnl9IGRhdGEgLSBEYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgY2xpY2tlZCByb3cuXG4gICAqL1xuICBwdWJsaWMgY2xpY2tSb3coZGF0YTogYW55KTogdm9pZHsgdGhpcy5vblJvd0NsaWNrLmVtaXQoZGF0YSk7IH1cblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBmb3Igd2hlbiBjb2x1bW4gZHJhZyBzdG9wcyBpbiB0aGUgYWctR3JpZC5cbiAgICogU2F2ZXMgdGhlIGNvbHVtbiBzdGF0ZSB0byBsb2NhbCBzdG9yYWdlLlxuICAgKiBAcGFyYW0ge0RyYWdTdG9wcGVkRXZlbnR9IHBhcmFtMCAtIERyYWdTdG9wcGVkRXZlbnQgb2JqZWN0IGNvbnRhaW5pbmcgQVBJIGluZm9ybWF0aW9uLlxuICAgKi9cbiAgcHVibGljIGRyYWdDb2x1bW4oeyBhcGkgfTogRHJhZ1N0b3BwZWRFdmVudCk6IHZvaWR7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuaWQsIEpTT04uc3RyaW5naWZ5KGFwaS5nZXRDb2x1bW5TdGF0ZSgpKSk7IH1cblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBmb3Igc2VsZWN0aW9uIGNoYW5nZSBpbiB0aGUgYWctR3JpZC5cbiAgICogRW1pdHMgYSBgU2VsZWN0aW9uQ2hhbmdlZEV2ZW50PGFueT5gIG9iamVjdC5cbiAgICogQHBhcmFtIHtTZWxlY3Rpb25DaGFuZ2VkRXZlbnQ8YW55Pn0gZGF0YSAtIFNlbGVjdGlvbkNoYW5nZWRFdmVudCBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlU2VsZWN0ZWQoZGF0YTogU2VsZWN0aW9uQ2hhbmdlZEV2ZW50PGFueT4pOiB2b2lkeyB0aGlzLm9uU2VsZWN0aW9uQ2hhbmdlZC5lbWl0KGRhdGEpOyB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgZm9yIHBhZ2luYXRpb24gY2hhbmdlIGluIHRoZSBhZy1HcmlkLlxuICAgKiBVcGRhdGVzIHRoZSByb3dQZXJQYWdlIHByb3BlcnR5IGluIHRoZSBjb25maWd1cmF0aW9uIGJhc2VkIG9uIHRoZSBuZXcgcGFnZSBzaXplLlxuICAgKiBAcGFyYW0ge1BhZ2luYXRpb25DaGFuZ2VkRXZlbnR9IGV2IC0gUGFnaW5hdGlvbkNoYW5nZWRFdmVudCBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlUGFnaW5hdGlvbihldjogUGFnaW5hdGlvbkNoYW5nZWRFdmVudCk6IHZvaWR7XG4gICAgaWYgKGV2Lm5ld1BhZ2VTaXplKSB0aGlzLmNvbmZpZy5yb3dQZXJQYWdlID0gdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRQYWdlU2l6ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgZm9yIHNldHRpbmcgdGhlIGRhdGFzb3VyY2Ugd2hlbiB0aGUgYWctR3JpZCBpcyByZWFkeS5cbiAgICogRW1pdHMgdGhlIG9uR3JpZFJlYWR5IGV2ZW50IGFuZCBzZXRzIHRoZSBBUEkgaW4gdGhlIEdyaWRTZXJ2aWNlLlxuICAgKiBBcHBsaWVzIGNvbHVtbiBzdGF0ZSBmcm9tIGxvY2FsIHN0b3JhZ2UgYW5kIHJlc2V0cyB0aGUgZ3JpZCBmb3IgaW5maW5pdGUgcm93IG1vZGVsIHR5cGUuXG4gICAqIEBwYXJhbSB7R3JpZFJlYWR5RXZlbnR9IGV2IC0gR3JpZFJlYWR5RXZlbnQgb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIHNldERhdGFzb3VyY2UoZXY6IEdyaWRSZWFkeUV2ZW50KTogdm9pZHtcbiAgICB0aGlzLmdyaWRBcGkgPSBldi5hcGk7XG4gICAgdGhpcy5vbkdyaWRSZWFkeS5lbWl0KGV2KTtcbiAgICB0aGlzLnNlcnZpY2Uuc2V0QXBpKHRoaXMuaWQsIHRoaXMuZ3JpZEFwaSk7XG5cbiAgICBjb25zdCBzdGF0ZSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5pZCkgYXMgYW55KTtcbiAgICBpZiAoc3RhdGUpIGV2LmFwaS5hcHBseUNvbHVtblN0YXRlKHsgc3RhdGUsIGFwcGx5T3JkZXI6IHRydWUgfSk7XG5cbiAgICBpZiAodGhpcy5yb3dNb2RlbFR5cGUgPT09ICdjbGllbnRTaWRlJykgdGhpcy5ncmlkQXBpLnNldEdyaWRPcHRpb24oJ3Jvd0RhdGEnLCB0aGlzLnJvd0RhdGEpO1xuICAgIGlmICh0aGlzLnJvd01vZGVsVHlwZSAhPT0gJ2luZmluaXRlJykgcmV0dXJuO1xuICAgIHRoaXMucmVzZXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIGRhdGFzb3VyY2UgZm9yIGluZmluaXRlIHJvdyBtb2RlbCB0eXBlLlxuICAgKiBSZXRyaWV2ZXMgcm93cyBhc3luY2hyb25vdXNseSBiYXNlZCBvbiBwYWdpbmF0aW9uIGFuZCBzb3J0aW5nLlxuICAgKiBVcGRhdGVzIHRoZSBjb3VudCBvZiByZWNvcmRzIGFuZCBjYWxscyBzdWNjZXNzIG9yIGZhaWwgY2FsbGJhY2tzIGFjY29yZGluZ2x5LlxuICAgKi9cbiAgcHVibGljIHJlc2V0KCk6IHZvaWR7XG4gICAgaWYgKCF0aGlzLmdyaWRBcGkpIHJldHVybjtcblxuICAgIGNvbnN0IGRhdGFzb3VyY2U6IElEYXRhc291cmNlID0ge1xuICAgICAgZ2V0Um93czogKHsgc29ydE1vZGVsOiBbeyBjb2xJZCwgc29ydCB9XSwgc3VjY2Vzc0NhbGxiYWNrLCBmYWlsQ2FsbGJhY2sgfTogSUdldFJvd3NQYXJhbXMpID0+IHtcbiAgICAgICAgdGhpcy5ncmlkQXBpLnNob3dMb2FkaW5nT3ZlcmxheSgpO1xuICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKCk7XG5cbiAgICAgICAgdGhpcy5zdWJzID0gdGhpcy5jb25maWcuZ2V0RGF0YSEob2Zmc2V0LCB0aGlzLmNvbmZpZy5yb3dQZXJQYWdlISwgY29sSWQsIHNvcnQpLnN1YnNjcmliZSh7XG4gICAgICAgICAgbmV4dDogKHsgZGF0YSwgdG90YWxSZWNvcmQgfSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ncmlkQXBpLmhpZGVPdmVybGF5KCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIChvZmZzZXQgPT09IDApIHtcbiAgICAgICAgICAgICAgaWYgKGRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkQXBpLnNldEdyaWRPcHRpb24oJ292ZXJsYXlOb1Jvd3NUZW1wbGF0ZScsIHRoaXMuY29uZmlnLm5vUm93VGV4dCk7XG4gICAgICAgICAgICAgICAgdGhpcy5ncmlkQXBpLnNob3dOb1Jvd3NPdmVybGF5KCk7XG4gICAgICAgICAgICAgIH0gXG4gICAgICAgICAgICAgIHRoaXMuY291bnQgPSB0b3RhbFJlY29yZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCF0aGlzLmNvbmZpZy51c2VUb3RhbFJlY29yZCAmJiBkYXRhLmxlbmd0aCA8IHRoaXMuY29uZmlnLnJvd1BlclBhZ2UhKSB7XG4gICAgICAgICAgICAgIHRoaXMuY291bnQgPSAob2Zmc2V0ICogdGhpcy5jb25maWcucm93UGVyUGFnZSEpICsgZGF0YS5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdWNjZXNzQ2FsbGJhY2soZGF0YSwgdGhpcy5jb3VudCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKHsgbWVzc2FnZSB9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdyaWRBcGkuc2V0R3JpZE9wdGlvbignb3ZlcmxheU5vUm93c1RlbXBsYXRlJywgYDxzcGFuIGNsYXNzPVwiZjIwXCI+JHsgbWVzc2FnZSB9PC9zcGFuPmApO1xuXG4gICAgICAgICAgICB0aGlzLmdyaWRBcGkuaGlkZU92ZXJsYXkoKTtcbiAgICAgICAgICAgIHRoaXMuZ3JpZEFwaS5zaG93Tm9Sb3dzT3ZlcmxheSgpO1xuICAgICAgICAgICAgZmFpbENhbGxiYWNrKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIFxuICAgIHRoaXMuZ3JpZEFwaT8uc2V0R3JpZE9wdGlvbignZGF0YXNvdXJjZScsIGRhdGFzb3VyY2UpO1xuICB9XG59XG4iLCI8YWctZ3JpZC1hbmd1bGFyIGNsYXNzPVwiYWctdGhlbWUtYmFsaGFtXCJcbiAgICBbcGFnaW5hdGlvbl09XCJ0cnVlXCJcbiAgICBbYW5pbWF0ZVJvd3NdPVwidHJ1ZVwiXG4gICAgW2dldFJvd0NsYXNzXT1cImdldFJvd0NsYXNzXCJcbiAgICBbcm93TW9kZWxUeXBlXT1cInJvd01vZGVsVHlwZVwiXG4gICAgW3Jvd1NlbGVjdGlvbl09XCJyb3dTZWxlY3Rpb25cIlxuICAgIFtjb2x1bW5EZWZzXT1cImNvbmZpZy5jb2xEZWZzXCJcbiAgICBbZGVmYXVsdENvbERlZl09XCJkZWZhdWx0Q29sRGVmXCJcbiAgICBbY2FjaGVCbG9ja1NpemVdPVwiY29uZmlnLnJvd1BlclBhZ2VcIlxuICAgIFtwYWdpbmF0aW9uUGFnZVNpemVdPVwiY29uZmlnLnJvd1BlclBhZ2VcIlxuICAgIFtvdmVybGF5Tm9Sb3dzVGVtcGxhdGVdPVwiY29uZmlnLm5vUm93VGV4dFwiXG4gICAgKGRyYWdTdG9wcGVkKT1cImRyYWdDb2x1bW4oJGV2ZW50KVwiXG4gICAgKGdyaWRSZWFkeSk9XCJzZXREYXRhc291cmNlKCRldmVudClcIlxuICAgIChyb3dDbGlja2VkKT1cImNsaWNrUm93KCRldmVudC5kYXRhKVwiXG4gICAgKHNlbGVjdGlvbkNoYW5nZWQpPVwiY2hhbmdlU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgKHBhZ2luYXRpb25DaGFuZ2VkKT1cImNoYW5nZVBhZ2luYXRpb24oJGV2ZW50KVwiXG4vPlxuIl19
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9ncmlkcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VuaXBpbi1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9ncmlkcy9ncmlkLXBhZ2luYXRpb24vZ3JpZC1wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBdUMsY0FBYyxFQUFtSSxNQUFNLHlCQUF5QixDQUFDO0FBQy9OLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQWMxRCxNQUFNLE9BQU8sdUJBQXVCO0lBdUZsQyxZQUNxQixPQUFvQjtRQUFwQixZQUFPLEdBQVAsT0FBTyxDQUFhO1FBM0V6QixZQUFPLEdBQVUsRUFBRSxDQUFDO1FBTXBCLE9BQUUsR0FBdUIsUUFBUSxDQUFDO1FBT2xDLGlCQUFZLEdBQWlCLFVBQVUsQ0FBQztRQU14QyxpQkFBWSxHQUEwQixRQUFRLENBQUM7UUFlckMsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBT25ELGdCQUFXLEdBQWlDLElBQUksWUFBWSxFQUFFLENBQUM7UUFPL0QsdUJBQWtCLEdBQTZDLElBQUksWUFBWSxFQUFFLENBQUM7UUFNNUYs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LEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNwQyxDQUFDO29CQUNELEtBQUssRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRTt3QkFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsdUJBQXVCLEVBQUUscUJBQXNCLE9BQVEsU0FBUyxDQUFDLENBQUM7d0JBRTdGLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzt3QkFDakMsWUFBWSxFQUFFLENBQUM7b0JBQ2pCLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztTQUNGLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDeEQsQ0FBQzsrR0EzTVUsdUJBQXVCO21HQUF2Qix1QkFBdUIsK1VDbkJwQywwcEJBaUJBLGtJRERJLFlBQVk7OzRGQUdILHVCQUF1QjtrQkFWbkMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsWUFBWTtxQkFDYjtnRkFTaUMsTUFBTTtzQkFBdkMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBTVQsT0FBTztzQkFBdEIsS0FBSztnQkFNVSxFQUFFO3NCQUFqQixLQUFLO2dCQU9VLFlBQVk7c0JBQTNCLEtBQUs7Z0JBTVUsWUFBWTtzQkFBM0IsS0FBSztnQkFRVSxXQUFXO3NCQUExQixLQUFLO2dCQU9vQixVQUFVO3NCQUFuQyxNQUFNO2dCQU9tQixXQUFXO3NCQUFwQyxNQUFNO2dCQU9tQixrQkFBa0I7c0JBQTNDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbERlZiwgSURhdGFzb3VyY2UsIElHZXRSb3dzUGFyYW1zLCBNb2R1bGVSZWdpc3RyeSwgUm93TW9kZWxUeXBlLCBHcmlkUmVhZHlFdmVudCwgRHJhZ1N0b3BwZWRFdmVudCwgU2VsZWN0aW9uQ2hhbmdlZEV2ZW50LCBHcmlkQXBpLCBQYWdpbmF0aW9uQ2hhbmdlZEV2ZW50LCBSb3dDbGFzc1BhcmFtcywgUm93Tm9kZSB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7IEluZmluaXRlUm93TW9kZWxNb2R1bGUgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvaW5maW5pdGUtcm93LW1vZGVsJztcbmltcG9ydCB7IENsaWVudFNpZGVSb3dNb2RlbE1vZHVsZSB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jbGllbnQtc2lkZS1yb3ctbW9kZWwnO1xuaW1wb3J0IHsgQWdHcmlkTW9kdWxlIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2FuZ3VsYXInO1xuaW1wb3J0IHsgR3JpZENvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZ3JpZC1jb25maWcuaW50ZXJmYWNlJztcbmltcG9ydCB7IEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZ3JpZC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAndXAtcGFnaW5hdGlvbi1ncmlkJyxcbiAgc3R5bGVVcmw6ICcuL2dyaWQtcGFnaW5hdGlvbi5jb21wb25lbnQuc2NzcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLXBhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogWyBcbiAgICBBZ0dyaWRNb2R1bGUgXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgR3JpZFBhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIGZvciB0aGUgY29uZmlndXJhdGlvbiBvYmplY3QgZGVmaW5pbmcgdGhlIGFnLUdyaWQgcHJvcGVydGllcy5cbiAgICogQHR5cGUge0dyaWRDb25maWd9XG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcHVibGljIGNvbmZpZyE6IEdyaWRDb25maWc7XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIGZvciBwcm92aWRpbmcgdGhlIHJvdyBkYXRhIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgYWctR3JpZC5cbiAgICogQHR5cGUge2FueVtdfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHJvd0RhdGE6IGFueVtdID0gW107XG5cbiAgLyoqXG4gICAqIElucHV0IHZhcmlhYmxlIGZvciBzcGVjaWZ5aW5nIHRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYWctR3JpZCBjb21wb25lbnQuXG4gICAqIEB0eXBlIHtgZ3JpZC0keyBzdHJpbmcgfWB9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgaWQ6IGBncmlkLSR7IHN0cmluZyB9YCA9ICdncmlkLXAnO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3Igc3BlY2lmeWluZyB0aGUgcm93IG1vZGVsIHR5cGUgZm9yIHRoZSBhZy1HcmlkLlxuICAgKiBJdCBjYW4gYmUgJ2luZmluaXRlJyBvciAnY2xpZW50U2lkZScuXG4gICAqIEB0eXBlIHtSb3dNb2RlbFR5cGV9XG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgcm93TW9kZWxUeXBlOiBSb3dNb2RlbFR5cGUgPSAnaW5maW5pdGUnO1xuXG4gIC8qKlxuICAgKiBJbnB1dCB2YXJpYWJsZSBmb3Igc3BlY2lmeWluZyB0aGUgcm93IHNlbGVjdGlvbiBtb2RlLiBJdCBjYW4gYmUgJ3NpbmdsZScgb3IgJ211bHRpcGxlJy5cbiAgICogQHR5cGUgeygnc2luZ2xlJyB8ICdtdWx0aXBsZScpfVxuICAgKi9cbiAgQElucHV0KCkgcHVibGljIHJvd1NlbGVjdGlvbjogJ3NpbmdsZScgfCAnbXVsdGlwbGUnID0gJ3NpbmdsZSc7XG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIHZlcnNpb24gb2YgcHJvcGVydHkgYHJvd0NsYXNzYCB0byBzZXQgY2xhc3MoZXMpIGZvciBlYWNoIHJvdyBpbmRpdmlkdWFsbHkuIFxuICAgKiBGdW5jdGlvbiBzaG91bGQgcmV0dXJuIGVpdGhlciBhIHN0cmluZyAoY2xhc3MgbmFtZSksIGFycmF5IG9mIHN0cmluZ3MgKGFycmF5IG9mIGNsYXNzIG5hbWVzKSBvciB1bmRlZmluZWQgZm9yIG5vIGNsYXNzLlxuICAgKiBAdHlwZSB7IFJvd0NsYXNzUGFyYW1zPFREYXRhID0gYW55LCBUQ29udGV4dCA9IGFueT4gfVxuICAgKiBAcmV0dXJucyB7IHN0cmluZyB9XG4gICovIFxuICBASW5wdXQoKSBwdWJsaWMgZ2V0Um93Q2xhc3M6ICgocGFyYW1zOiBSb3dDbGFzc1BhcmFtczxSb3dOb2RlLCBhbnk+KSA9PiBzdHJpbmcpIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgZXZlbnQgZW1pdHRlciB0cmlnZ2VyZWQgd2hlbiBhIHJvdyBpbiB0aGUgYWctR3JpZCBpcyBjbGlja2VkLlxuICAgKiBFbWl0cyB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGNsaWNrZWQgcm93LlxuICAgKiBAdHlwZSB7RXZlbnRFbWl0dGVyPGFueT59XG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IG9uUm93Q2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgZXZlbnQgZW1pdHRlciB0cmlnZ2VyZWQgd2hlbiB0aGUgYWctR3JpZCBpcyByZWFkeS5cbiAgICogRW1pdHMgYSBgR3JpZFJlYWR5RXZlbnRgIG9iamVjdC5cbiAgICogQHR5cGUge0V2ZW50RW1pdHRlcjxHcmlkUmVhZHlFdmVudD59XG4gICAqL1xuICBAT3V0cHV0KCkgcHVibGljIHJlYWRvbmx5IG9uR3JpZFJlYWR5OiBFdmVudEVtaXR0ZXI8R3JpZFJlYWR5RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIC8qKlxuICAgKiBPdXRwdXQgZXZlbnQgZW1pdHRlciB0cmlnZ2VyZWQgd2hlbiB0aGUgc2VsZWN0aW9uIGluIHRoZSBhZy1HcmlkIGNoYW5nZXMuXG4gICAqIEVtaXRzIGEgYFNlbGVjdGlvbkNoYW5nZWRFdmVudDxhbnk+YCBvYmplY3QuXG4gICAqIEB0eXBlIHtFdmVudEVtaXR0ZXI8U2VsZWN0aW9uQ2hhbmdlZEV2ZW50PGFueT4+fVxuICAgKi9cbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBvblNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxTZWxlY3Rpb25DaGFuZ2VkRXZlbnQ8YW55Pj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgY29sdW1uIGRlZmluaXRpb24gZm9yIHRoZSBhZy1HcmlkLlxuICAgKiBAdHlwZSB7Q29sRGVmfVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRDb2xEZWY6IENvbERlZiA9IHsgbWluV2lkdGg6IDIwMCwgZmxleDogMSwgc29ydGFibGU6IHRydWUsIHJlc2l6YWJsZTogdHJ1ZSwgc29ydGluZ09yZGVyOiBbICdhc2MnLCAnZGVzYycgXSwgY2VsbFN0eWxlOiB7IHRleHRBbGlnbjogJ2xlZnQnIH19O1xuXG4gIC8qKlxuICAgKiBQcm90ZWN0ZWQgdmFyaWFibGUgdG8gc3RvcmUgdGhlIHRvdGFsIGNvdW50IG9mIHJlY29yZHMuXG4gICAqIEB0eXBlIHtudW1iZXIgfCB1bmRlZmluZWR9XG4gICAqL1xuICBwcm90ZWN0ZWQgY291bnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFByb3RlY3RlZCB2YXJpYWJsZSB0byBzdG9yZSB0aGUgYWctR3JpZCBBUEkuXG4gICAqIEB0eXBlIHtHcmlkQXBpfVxuICAgKi9cbiAgcHJvdGVjdGVkIGdyaWRBcGkhOiBHcmlkQXBpO1xuXG4gIC8qKlxuICAgKiBQcm90ZWN0ZWQgdmFyaWFibGUgdG8gc3RvcmUgdGhlIHN1YnNjcmlwdGlvbiB0byBkYXRhIHJldHJpZXZhbC5cbiAgICogQHR5cGUge1N1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZH1cbiAgICovXG4gIHByb3RlY3RlZCBzdWJzPzogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCByZWFkb25seSBzZXJ2aWNlOiBHcmlkU2VydmljZVxuICApIHt9XG5cbiAgLyoqXG4gICAqIExpZmVjeWNsZSBob29rIHRvIGluaXRpYWxpemUgdGhlIGNvbXBvbmVudC5cbiAgICogUmVnaXN0ZXJzIHRoZSByb3cgbW9kZWwgdHlwZSBtb2R1bGUgYmFzZWQgb24gdGhlIHNwZWNpZmllZCB0eXBlLlxuICAgKiBTZXRzIGRlZmF1bHQgdmFsdWVzIGZvciByb3dQZXJQYWdlIGFuZCBub1Jvd1RleHQgcHJvcGVydGllcyBpbiB0aGUgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lke1xuICAgIE1vZHVsZVJlZ2lzdHJ5LnJlZ2lzdGVyKHRoaXMucm93TW9kZWxUeXBlID09PSAnaW5maW5pdGUnPyBJbmZpbml0ZVJvd01vZGVsTW9kdWxlIDogQ2xpZW50U2lkZVJvd01vZGVsTW9kdWxlKTtcblxuICAgIGlmICghdGhpcy5jb25maWcucm93UGVyUGFnZSkgdGhpcy5jb25maWcucm93UGVyUGFnZSA9IDUwO1xuICAgIHRoaXMuY29uZmlnLm5vUm93VGV4dCA9IGA8c3BhbiBjbGFzcz1cImYyMFwiPiR7IHRoaXMuY29uZmlnLm5vUm93VGV4dD8/ICdEYXRhIG5vdCBmb3VuZCcgfTwvc3Bhbj5gO1xuICB9XG5cbiAgLyoqXG4gICAqIExpZmVjeWNsZSBob29rIHRvIGhhbmRsZSBjb21wb25lbnQgZGVzdHJ1Y3Rpb24uXG4gICAqIFVuc3Vic2NyaWJlcyBmcm9tIGRhdGEgcmV0cmlldmFsIHN1YnNjcmlwdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZHsgdGhpcy5zdWJzPy51bnN1YnNjcmliZSgpOyB9XG5cbiAgLyoqXG4gICAqIEV2ZW50IGhhbmRsZXIgZm9yIGNsaWNraW5nIGEgcm93IGluIHRoZSBhZy1HcmlkLlxuICAgKiBFbWl0cyB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGNsaWNrZWQgcm93LlxuICAgKiBAcGFyYW0ge2FueX0gZGF0YSAtIERhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBjbGlja2VkIHJvdy5cbiAgICovXG4gIHB1YmxpYyBjbGlja1JvdyhkYXRhOiBhbnkpOiB2b2lkeyB0aGlzLm9uUm93Q2xpY2suZW1pdChkYXRhKTsgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciB3aGVuIGNvbHVtbiBkcmFnIHN0b3BzIGluIHRoZSBhZy1HcmlkLlxuICAgKiBTYXZlcyB0aGUgY29sdW1uIHN0YXRlIHRvIGxvY2FsIHN0b3JhZ2UuXG4gICAqIEBwYXJhbSB7RHJhZ1N0b3BwZWRFdmVudH0gcGFyYW0wIC0gRHJhZ1N0b3BwZWRFdmVudCBvYmplY3QgY29udGFpbmluZyBBUEkgaW5mb3JtYXRpb24uXG4gICAqL1xuICBwdWJsaWMgZHJhZ0NvbHVtbih7IGFwaSB9OiBEcmFnU3RvcHBlZEV2ZW50KTogdm9pZHsgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5pZCwgSlNPTi5zdHJpbmdpZnkoYXBpLmdldENvbHVtblN0YXRlKCkpKTsgfVxuXG4gIC8qKlxuICAgKiBFdmVudCBoYW5kbGVyIGZvciBzZWxlY3Rpb24gY2hhbmdlIGluIHRoZSBhZy1HcmlkLlxuICAgKiBFbWl0cyBhIGBTZWxlY3Rpb25DaGFuZ2VkRXZlbnQ8YW55PmAgb2JqZWN0LlxuICAgKiBAcGFyYW0ge1NlbGVjdGlvbkNoYW5nZWRFdmVudDxhbnk+fSBkYXRhIC0gU2VsZWN0aW9uQ2hhbmdlZEV2ZW50IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VTZWxlY3RlZChkYXRhOiBTZWxlY3Rpb25DaGFuZ2VkRXZlbnQ8YW55Pik6IHZvaWR7IHRoaXMub25TZWxlY3Rpb25DaGFuZ2VkLmVtaXQoZGF0YSk7IH1cblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBmb3IgcGFnaW5hdGlvbiBjaGFuZ2UgaW4gdGhlIGFnLUdyaWQuXG4gICAqIFVwZGF0ZXMgdGhlIHJvd1BlclBhZ2UgcHJvcGVydHkgaW4gdGhlIGNvbmZpZ3VyYXRpb24gYmFzZWQgb24gdGhlIG5ldyBwYWdlIHNpemUuXG4gICAqIEBwYXJhbSB7UGFnaW5hdGlvbkNoYW5nZWRFdmVudH0gZXYgLSBQYWdpbmF0aW9uQ2hhbmdlZEV2ZW50IG9iamVjdC5cbiAgICovXG4gIHB1YmxpYyBjaGFuZ2VQYWdpbmF0aW9uKGV2OiBQYWdpbmF0aW9uQ2hhbmdlZEV2ZW50KTogdm9pZHtcbiAgICBpZiAoZXYubmV3UGFnZVNpemUpIHRoaXMuY29uZmlnLnJvd1BlclBhZ2UgPSB0aGlzLmdyaWRBcGkucGFnaW5hdGlvbkdldFBhZ2VTaXplKCk7XG4gIH1cblxuICAvKipcbiAgICogRXZlbnQgaGFuZGxlciBmb3Igc2V0dGluZyB0aGUgZGF0YXNvdXJjZSB3aGVuIHRoZSBhZy1HcmlkIGlzIHJlYWR5LlxuICAgKiBFbWl0cyB0aGUgb25HcmlkUmVhZHkgZXZlbnQgYW5kIHNldHMgdGhlIEFQSSBpbiB0aGUgR3JpZFNlcnZpY2UuXG4gICAqIEFwcGxpZXMgY29sdW1uIHN0YXRlIGZyb20gbG9jYWwgc3RvcmFnZSBhbmQgcmVzZXRzIHRoZSBncmlkIGZvciBpbmZpbml0ZSByb3cgbW9kZWwgdHlwZS5cbiAgICogQHBhcmFtIHtHcmlkUmVhZHlFdmVudH0gZXYgLSBHcmlkUmVhZHlFdmVudCBvYmplY3QuXG4gICAqL1xuICBwdWJsaWMgc2V0RGF0YXNvdXJjZShldjogR3JpZFJlYWR5RXZlbnQpOiB2b2lke1xuICAgIHRoaXMuZ3JpZEFwaSA9IGV2LmFwaTtcbiAgICB0aGlzLm9uR3JpZFJlYWR5LmVtaXQoZXYpO1xuICAgIHRoaXMuc2VydmljZS5zZXRBcGkodGhpcy5pZCwgdGhpcy5ncmlkQXBpKTtcblxuICAgIGNvbnN0IHN0YXRlID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmlkKSBhcyBhbnkpO1xuICAgIGlmIChzdGF0ZSkge1xuICAgICAgdGhpcy5ncmlkQXBpLmFwcGx5Q29sdW1uU3RhdGUoeyBzdGF0ZSwgYXBwbHlPcmRlcjogdHJ1ZSB9KTtcbiAgICAgIHRoaXMuZ3JpZEFwaS5zZXRDb2x1bW5zVmlzaWJsZSh0aGlzLmdyaWRBcGkuZ2V0QWxsR3JpZENvbHVtbnMoKSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucm93TW9kZWxUeXBlID09PSAnY2xpZW50U2lkZScpIHRoaXMuZ3JpZEFwaS5zZXRHcmlkT3B0aW9uKCdyb3dEYXRhJywgdGhpcy5yb3dEYXRhKTtcbiAgICBpZiAodGhpcy5yb3dNb2RlbFR5cGUgIT09ICdpbmZpbml0ZScpIHJldHVybjtcbiAgICB0aGlzLnJlc2V0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBkYXRhc291cmNlIGZvciBpbmZpbml0ZSByb3cgbW9kZWwgdHlwZS5cbiAgICogUmV0cmlldmVzIHJvd3MgYXN5bmNocm9ub3VzbHkgYmFzZWQgb24gcGFnaW5hdGlvbiBhbmQgc29ydGluZy5cbiAgICogVXBkYXRlcyB0aGUgY291bnQgb2YgcmVjb3JkcyBhbmQgY2FsbHMgc3VjY2VzcyBvciBmYWlsIGNhbGxiYWNrcyBhY2NvcmRpbmdseS5cbiAgICovXG4gIHB1YmxpYyByZXNldCgpOiB2b2lke1xuICAgIGlmICghdGhpcy5ncmlkQXBpKSByZXR1cm47XG5cbiAgICBjb25zdCBkYXRhc291cmNlOiBJRGF0YXNvdXJjZSA9IHtcbiAgICAgIGdldFJvd3M6ICh7IHNvcnRNb2RlbDogW3sgY29sSWQsIHNvcnQgfV0sIHN1Y2Nlc3NDYWxsYmFjaywgZmFpbENhbGxiYWNrIH06IElHZXRSb3dzUGFyYW1zKSA9PiB7XG4gICAgICAgIHRoaXMuZ3JpZEFwaS5zaG93TG9hZGluZ092ZXJsYXkoKTtcbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5ncmlkQXBpLnBhZ2luYXRpb25HZXRDdXJyZW50UGFnZSgpO1xuXG4gICAgICAgIHRoaXMuc3VicyA9IHRoaXMuY29uZmlnLmdldERhdGEhKG9mZnNldCwgdGhpcy5jb25maWcucm93UGVyUGFnZSEsIGNvbElkLCBzb3J0KS5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6ICh7IGRhdGEsIHRvdGFsUmVjb3JkIH0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZEFwaS5oaWRlT3ZlcmxheSgpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAob2Zmc2V0ID09PSAwKSB7XG4gICAgICAgICAgICAgIGlmIChkYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZEFwaS5zZXRHcmlkT3B0aW9uKCdvdmVybGF5Tm9Sb3dzVGVtcGxhdGUnLCB0aGlzLmNvbmZpZy5ub1Jvd1RleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JpZEFwaS5zaG93Tm9Sb3dzT3ZlcmxheSgpO1xuICAgICAgICAgICAgICB9IFxuICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gdG90YWxSZWNvcmQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5jb25maWcudXNlVG90YWxSZWNvcmQgJiYgZGF0YS5sZW5ndGggPCB0aGlzLmNvbmZpZy5yb3dQZXJQYWdlISkge1xuICAgICAgICAgICAgICB0aGlzLmNvdW50ID0gKG9mZnNldCAqIHRoaXMuY29uZmlnLnJvd1BlclBhZ2UhKSArIGRhdGEubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc3VjY2Vzc0NhbGxiYWNrKGRhdGEsIHRoaXMuY291bnQpO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6ICh7IG1lc3NhZ2UgfSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5ncmlkQXBpLnNldEdyaWRPcHRpb24oJ292ZXJsYXlOb1Jvd3NUZW1wbGF0ZScsIGA8c3BhbiBjbGFzcz1cImYyMFwiPiR7IG1lc3NhZ2UgfTwvc3Bhbj5gKTtcblxuICAgICAgICAgICAgdGhpcy5ncmlkQXBpLmhpZGVPdmVybGF5KCk7XG4gICAgICAgICAgICB0aGlzLmdyaWRBcGkuc2hvd05vUm93c092ZXJsYXkoKTtcbiAgICAgICAgICAgIGZhaWxDYWxsYmFjaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBcbiAgICB0aGlzLmdyaWRBcGk/LnNldEdyaWRPcHRpb24oJ2RhdGFzb3VyY2UnLCBkYXRhc291cmNlKTtcbiAgfVxufVxuIiwiPGFnLWdyaWQtYW5ndWxhciBjbGFzcz1cImFnLXRoZW1lLWJhbGhhbVwiXG4gICAgW3BhZ2luYXRpb25dPVwidHJ1ZVwiXG4gICAgW2FuaW1hdGVSb3dzXT1cInRydWVcIlxuICAgIFtnZXRSb3dDbGFzc109XCJnZXRSb3dDbGFzc1wiXG4gICAgW3Jvd01vZGVsVHlwZV09XCJyb3dNb2RlbFR5cGVcIlxuICAgIFtyb3dTZWxlY3Rpb25dPVwicm93U2VsZWN0aW9uXCJcbiAgICBbY29sdW1uRGVmc109XCJjb25maWcuY29sRGVmc1wiXG4gICAgW2RlZmF1bHRDb2xEZWZdPVwiZGVmYXVsdENvbERlZlwiXG4gICAgW2NhY2hlQmxvY2tTaXplXT1cImNvbmZpZy5yb3dQZXJQYWdlXCJcbiAgICBbcGFnaW5hdGlvblBhZ2VTaXplXT1cImNvbmZpZy5yb3dQZXJQYWdlXCJcbiAgICBbb3ZlcmxheU5vUm93c1RlbXBsYXRlXT1cImNvbmZpZy5ub1Jvd1RleHRcIlxuICAgIChkcmFnU3RvcHBlZCk9XCJkcmFnQ29sdW1uKCRldmVudClcIlxuICAgIChncmlkUmVhZHkpPVwic2V0RGF0YXNvdXJjZSgkZXZlbnQpXCJcbiAgICAocm93Q2xpY2tlZCk9XCJjbGlja1JvdygkZXZlbnQuZGF0YSlcIlxuICAgIChzZWxlY3Rpb25DaGFuZ2VkKT1cImNoYW5nZVNlbGVjdGVkKCRldmVudClcIlxuICAgIChwYWdpbmF0aW9uQ2hhbmdlZCk9XCJjaGFuZ2VQYWdpbmF0aW9uKCRldmVudClcIlxuLz5cbiJdfQ==