nuxeo-development-framework 5.5.0 → 5.5.2

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 (58) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +213 -1382
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/ndf-config-editor/constants/index.js +2 -2
  4. package/esm2015/lib/components/ndf-config-editor/constants/query.js +2 -2
  5. package/esm2015/lib/components/ndf-config-editor/containers/ndf-config-editor/ndf-config-editor.component.js +24 -17
  6. package/esm2015/lib/components/ndf-config-editor/metadata-token.js +3 -0
  7. package/esm2015/lib/components/ndf-config-editor/models/payload-data.js +2 -0
  8. package/esm2015/lib/components/ndf-config-editor/public/editor-navigate-button.js +8 -4
  9. package/esm2015/lib/components/ndf-config-editor/public-api.js +2 -1
  10. package/esm2015/lib/components/ndf-config-editor/services/data-access.service.js +12 -15
  11. package/esm2015/lib/components/ndf-config-editor/services/data-store.service.js +38 -10
  12. package/esm2015/lib/components/reports/ndf-reports/models/details.js +1 -1
  13. package/esm2015/lib/components/reports/ndf-reports/models/ndf-reports.config.js +1 -1
  14. package/esm2015/lib/components/reports/ndf-reports/services/index.js +2 -1
  15. package/esm2015/lib/components/reports/ndf-reports/services/report-details.service.js +29 -0
  16. package/esm2015/lib/components/reports/ndf-reports/utilities/reports-table.mapper.js +3 -2
  17. package/esm2015/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.js +7 -7
  18. package/esm2015/lib/components/tables/ndf-table/models/table-column.js +1 -1
  19. package/esm2015/lib/components/tables/ndf-table/models/table-options.js +1 -1
  20. package/esm2015/lib/components/tables/ndf-table/services/ndf-table-configuration.service.js +18 -13
  21. package/esm2015/lib/components/tables/ndf-table/services/ndf-table.service.js +2 -2
  22. package/esm2015/lib/shared/constants/editor-config-type.js +5 -0
  23. package/esm2015/lib/shared/constants/index.js +2 -0
  24. package/esm2015/lib/shared/index.js +2 -1
  25. package/esm2015/lib/shared/services/base/base-editor-config.service.js +70 -0
  26. package/esm2015/lib/shared/services/base/index.js +2 -1
  27. package/esm2015/public-api.js +2 -1
  28. package/fesm2015/nuxeo-development-framework.js +193 -1377
  29. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  30. package/lib/components/ndf-config-editor/constants/index.d.ts +1 -1
  31. package/lib/components/ndf-config-editor/containers/config-preview/config-preview.component.d.ts +2 -2
  32. package/lib/components/ndf-config-editor/containers/ndf-config-editor/ndf-config-editor.component.d.ts +8 -7
  33. package/lib/components/ndf-config-editor/metadata-token.d.ts +8 -0
  34. package/lib/components/ndf-config-editor/models/payload-data.d.ts +6 -0
  35. package/lib/components/ndf-config-editor/public/editor-navigate-button.d.ts +1 -0
  36. package/lib/components/ndf-config-editor/public-api.d.ts +1 -0
  37. package/lib/components/ndf-config-editor/services/data-access.service.d.ts +7 -4
  38. package/lib/components/ndf-config-editor/services/data-store.service.d.ts +6 -3
  39. package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts +2 -2
  40. package/lib/components/reports/ndf-reports/models/details.d.ts +5 -1
  41. package/lib/components/reports/ndf-reports/models/ndf-reports.config.d.ts +1 -1
  42. package/lib/components/reports/ndf-reports/services/index.d.ts +1 -0
  43. package/lib/components/reports/ndf-reports/services/report-details.service.d.ts +12 -0
  44. package/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.d.ts +1 -1
  45. package/lib/components/tables/ndf-table/models/table-column.d.ts +1 -0
  46. package/lib/components/tables/ndf-table/models/table-options.d.ts +1 -1
  47. package/lib/components/tables/ndf-table/services/ndf-table-configuration.service.d.ts +3 -5
  48. package/lib/shared/constants/editor-config-type.d.ts +4 -0
  49. package/lib/shared/constants/index.d.ts +1 -0
  50. package/lib/shared/index.d.ts +1 -0
  51. package/lib/shared/services/base/base-editor-config.service.d.ts +32 -0
  52. package/lib/shared/services/base/index.d.ts +1 -0
  53. package/package.json +2 -2
  54. package/public-api.d.ts +1 -0
  55. package/esm2015/lib/components/ndf-config-editor/constants/type.js +0 -5
  56. package/esm2015/lib/components/ndf-config-editor/services/dummy-data.js +0 -1321
  57. package/lib/components/ndf-config-editor/constants/type.d.ts +0 -4
  58. package/lib/components/ndf-config-editor/services/dummy-data.d.ts +0 -992
@@ -7,7 +7,7 @@ import { COMPARISON_OPERATOR, HtmlDialogComponent } from '../../../../ndf-filter
7
7
  import _ from 'lodash';
8
8
  import { PAGE_SIZE } from '../../constants';
9
9
  import { DestroySubject } from '../../../../../shared/components';
10
- import { NDF_EDITOR_TYPE } from '../../../../ndf-config-editor/constants';
10
+ import { NDF_EDITOR_TYPE } from '../../../../../shared';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "../../../../ndf-filters/services";
13
13
  import * as i2 from "../../../dynamic-table";
@@ -226,7 +226,7 @@ export class NdfTableComponent extends DestroySubject {
226
226
  return;
227
227
  }
228
228
  const columns = this._displayedColumnsSub.getValue();
229
- const fields = columns.map((col) => col.headerClass);
229
+ const fields = columns.map((col) => col.headerClass || (col === null || col === void 0 ? void 0 : col.filedKey));
230
230
  const headers = columns.map((col) => (this.tableConfig.prefix || '') + col.name);
231
231
  const criteria = this._customCriteriaSub.getValue();
232
232
  request.params = Object.assign({}, criteria.params, this._sortValue || {}, ((_b = this.tableConfig) === null || _b === void 0 ? void 0 : _b.quickFilters) ? { quickFilters: this.tableConfig.quickFilters } : {}, request.params);
@@ -251,10 +251,10 @@ export class NdfTableComponent extends DestroySubject {
251
251
  payload.reportMetaData.headers = headers.map((col) => _.get(currentTranslations, col));
252
252
  payload.reportMetaData.blobName = _.get(translations['ar'], blobNameKey);
253
253
  payload.reportMetaData.blobNameEn = _.get(translations['en'], blobNameKey);
254
- return this._ngTableService.exportTable(request, payload);
255
- }), catchError((_) => {
256
- this._toastrService.error('TABLE.EXPORT.RequestError');
257
- return of(false);
254
+ return this._ngTableService.exportTable(request, payload).pipe(catchError((_) => {
255
+ this._toastrService.error('TABLE.EXPORT.RequestError');
256
+ return of(false);
257
+ }));
258
258
  }), filter(Boolean), takeUntil(this.destroy$))
259
259
  .subscribe((res) => {
260
260
  if (res) {
@@ -463,4 +463,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
463
463
  type: ContentChild,
464
464
  args: [FILTER_CUSTOM_TEMPLATE, { read: TemplateRef }]
465
465
  }] } });
466
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9jb250YWluZXJzL25kZi10YWJsZS9uZGYtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL2NvbnRhaW5lcnMvbmRmLXRhYmxlL25kZi10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sV0FBVyxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBbUIsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFRLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pHLE9BQU8sRUFFTixtQkFBbUIsRUFFbkIsbUJBQW1CLEVBRW5CLE1BQU0seUJBQXlCLENBQUM7QUFZakMsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJbEUsT0FB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QXRCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFFc0Qsb0JBQW9CO3NCQUFoRixZQUFZO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDQyxtQkFBbUI7c0JBQTlFLFlBQVk7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNHLG9CQUFvQjtzQkFBaEYsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XHJcbmltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdENvbnRlbnRDaGlsZCxcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5wdXQsXHJcblx0T25DaGFuZ2VzLFxyXG5cdE91dHB1dCxcclxuXHRTaW1wbGVDaGFuZ2VzLFxyXG5cdFRlbXBsYXRlUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZm9ya0pvaW4sIGlpZiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFDVElPTlNfVEFCTEVfVEVNUExBVEUsIEZJTFRFUl9DVVNUT01fVEVNUExBVEUsIFNFQVJDSF9UQUJMRV9URU1QTEFURSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQge1xyXG5cdEFnZ3JlZ2F0aW9uUmVzcG9uc2UsXHJcblx0Q09NUEFSSVNPTl9PUEVSQVRPUixcclxuXHRGb3JtUXVlcnlNb2RlbCxcclxuXHRIdG1sRGlhbG9nQ29tcG9uZW50LFxyXG5cdEh0bWxEaWFsb2dDb25maWdcclxufSBmcm9tICcuLi8uLi8uLi8uLi9uZGYtZmlsdGVycyc7XHJcbmltcG9ydCB7XHJcblx0Q3VzdG9tQ3JpdGVyaWFNb2RlbCxcclxuXHRFeHBvcnRUeXBlLFxyXG5cdE5kZkV4cG9ydFBheWxvYWQsXHJcblx0TmRmVGFibGVDb25maWcsXHJcblx0U29ydFRhYmxlSXRlbSxcclxuXHRUYWJsZUNvbHVtbkNvbmZpZyxcclxuXHRUYWJsZVNvcnRPcHRpb25zLFxyXG5cdFRhYmxlVmlld01vZGVcclxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBOZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBOZGZUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFBBR0VfU0laRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvci9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBEZXN0cm95U3ViamVjdCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgTnV4ZW9QYWdpbmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL21vZGVscyc7XHJcbmltcG9ydCB7IER5bmFtaWNUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9keW5hbWljLXRhYmxlJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTkRGX0VESVRPUl9UWVBFIH0gZnJvbSAnLi4vLi4vLi4vLi4vbmRmLWNvbmZpZy1lZGl0b3IvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgRmlsdGVyc01hcHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9uZGYtZmlsdGVycy9zZXJ2aWNlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1uZGYtdGFibGUnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9uZGYtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL25kZi10YWJsZS5jb21wb25lbnQuc2NzcyddLFxyXG5cdGhvc3Q6IHtcclxuXHRcdGNsYXNzOiAnbmRmLXRhYmxlJyxcclxuXHRcdCdbZGlyXSc6ICdkaXJlY3Rpb24nXHJcblx0fVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmRmVGFibGVDb21wb25lbnQgZXh0ZW5kcyBEZXN0cm95U3ViamVjdCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblx0cHJpdmF0ZSByZWFkb25seSBfYWdncmVnYXRpb25zU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWNvcmQ8c3RyaW5nLCBBZ2dyZWdhdGlvblJlc3BvbnNlPj4obnVsbCk7XHJcblx0cHJpdmF0ZSByZWFkb25seSBfZGlzcGxheWVkQ29sdW1uc1N1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVDb2x1bW5Db25maWdbXT4oW10pO1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgX3NvcnRPcHRpb25TdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRhYmxlU29ydE9wdGlvbnM+KG51bGwpO1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdNb2RlU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZVZpZXdNb2RlPignbGlzdCcpO1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgX3RleHRTZWFyY2hTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4obnVsbCk7XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2YXRlZENyaXRlcmlhU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7XHJcblx0XHRwcmV2aW91c1ZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdFx0Y3VycmVudFZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdH0+KG51bGwpO1xyXG5cclxuXHRwcml2YXRlIHJlYWRvbmx5IF9jdXN0b21Dcml0ZXJpYVN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q3VzdG9tQ3JpdGVyaWFNb2RlbD4oe1xyXG5cdFx0cGFyYW1zOiB7fSxcclxuXHRcdHBheWxvYWQ6IHtcclxuXHRcdFx0cHJlZGljYXRlTGlzdDogW11cclxuXHRcdH1cclxuXHR9KTtcclxuXHJcblx0cmVhZG9ubHkgYWdncmVnYXRpb25zJCA9IHRoaXMuX2FnZ3JlZ2F0aW9uc1N1Yi5hc09ic2VydmFibGUoKTtcclxuXHRyZWFkb25seSBkaXNwbGF5ZWRDb2x1bW5zJCA9IHRoaXMuX2Rpc3BsYXllZENvbHVtbnNTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblx0cmVhZG9ubHkgc29ydE9wdGlvbiQgPSB0aGlzLl9zb3J0T3B0aW9uU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHJlYWRvbmx5IHZpZXdNb2RlJCA9IHRoaXMuX3ZpZXdNb2RlU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHJlYWRvbmx5IGN1c3RvbUZpbHRlcnMkID0gdGhpcy5fY3VzdG9tQ3JpdGVyaWFTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblx0cmVhZG9ubHkgdGV4dFNlYXJjaCQgPSB0aGlzLl90ZXh0U2VhcmNoU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuXHRyZWFkb25seSBzZWFyY2hBbmRGaWx0ZXJzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMudGV4dFNlYXJjaCQsIHRoaXMuY3VzdG9tRmlsdGVycyRdKS5waXBlKFxyXG5cdFx0bWFwKChyZXMpID0+IHRoaXMuX3ByZXBhcmVTZWFyY2gocmVzKSlcclxuXHQpO1xyXG5cdEBJbnB1dCgpIHJvd3M6IEFycmF5PHVua25vd24+O1xyXG5cdEBJbnB1dCgpIHRvdGFsUmVjb3JkczogbnVtYmVyO1xyXG5cdEBJbnB1dCgpIGF1dG9DYWxjdWxhdGVIZWlnaHQgPSB0cnVlO1xyXG5cdEBJbnB1dCgpIGVtcHR5TWVzc2FnZSA9ICd0YWJsZV9ub0RhdGEnO1xyXG5cdEBJbnB1dCgpIGFjdGl2ZVF1ZXJ5OiBGb3JtUXVlcnlNb2RlbDtcclxuXHRASW5wdXQoKSBjb25maWdQYXRoOiBzdHJpbmcgPSAndGFibGVzJztcclxuXHRASW5wdXQoKSBjb25maWdUcmFuc2Zvcm1lcjogKGNvbmZpZzogTmRmVGFibGVDb25maWcpID0+IE9ic2VydmFibGU8TmRmVGFibGVDb25maWc+O1xyXG5cdEBJbnB1dCgpIHRhYmxlS2V5OiBzdHJpbmc7XHJcblxyXG5cdEBJbnB1dCgpIGpzb25FZGl0b3JFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdHByaXZhdGUgX2NvbmZpZzogTmRmVGFibGVDb25maWc7XHJcblx0QElucHV0KCkgc2V0IGNvbmZpZyhjb25maWc6IE5kZlRhYmxlQ29uZmlnKSB7XHJcblx0XHR0aGlzLl9jb25maWcgPSBjb25maWc7XHJcblx0fVxyXG5cclxuXHRnZXQgdGFibGVDb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5fdGFibGVDb25maWdTdWIuZ2V0VmFsdWUoKTtcclxuXHR9XHJcblxyXG5cdEBJbnB1dCgpIHNldCBjdXN0b21Dcml0ZXJpYShjcml0ZXJpYTogQ3VzdG9tQ3JpdGVyaWFNb2RlbCkge1xyXG5cdFx0aWYgKGNyaXRlcmlhKSB7XHJcblx0XHRcdHRoaXMuX2N1c3RvbUNyaXRlcmlhU3ViLm5leHQoY3JpdGVyaWEpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QElucHV0KCkgc2V0IHNlYXJjaFRlcm0odmFsdWU6IHN0cmluZykge1xyXG5cdFx0aWYgKHZhbHVlKSB7XHJcblx0XHRcdHRoaXMuX3RleHRTZWFyY2hTdWIubmV4dCh2YWx1ZSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRAT3V0cHV0KCkgb25Sb3dTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgb25Sb3dJbmRleFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBhY3Rpb25PblJvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgb25HZXR0aW5nRGF0YSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgb25NdWx0aVJvd1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvbkxvYWRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG5cdEBPdXRwdXQoKSBvblBhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2VFdmVudD4oKTtcclxuXHRAT3V0cHV0KCkgb25Jbml0aWFsaXplZCA9IG5ldyBFdmVudEVtaXR0ZXI8TnV4ZW9QYWdpbmF0aW9uPGFueT4+KCk7XHJcblx0QE91dHB1dCgpIG9uTG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxOdXhlb1BhZ2luYXRpb248YW55Pj4oKTtcclxuXHJcblx0QE91dHB1dCgpIG9uUXVlcnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uU29ydCA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVTb3J0T3B0aW9ucz4oKTtcclxuXHJcblx0QENvbnRlbnRDaGlsZChBQ1RJT05TX1RBQkxFX1RFTVBMQVRFLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGFjdGlvbnNUYWJsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cdEBDb250ZW50Q2hpbGQoU0VBUkNIX1RBQkxFX1RFTVBMQVRFLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIHNlYXJjaFRhYmxlVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblx0QENvbnRlbnRDaGlsZChGSUxURVJfQ1VTVE9NX1RFTVBMQVRFLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGZpbHRlckN1c3RvbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuXHRwcml2YXRlIF90YWJsZUNvbmZpZ1N1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TmRmVGFibGVDb25maWc+KG51bGwpO1xyXG5cclxuXHRnZXQgb3B0aW9ucygpIHtcclxuXHRcdHJldHVybiB0aGlzLnRhYmxlQ29uZmlnPy5vcHRpb25zO1xyXG5cdH1cclxuXHJcblx0Z2V0IGZpbHRlcnNDb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5maWx0ZXJzO1xyXG5cdH1cclxuXHJcblx0Z2V0IHNvcnRMaXN0KCkge1xyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucz8uc29ydExpc3QgfHwgW107XHJcblx0fVxyXG5cclxuXHRnZXQgY29sdW1uc09wdGlvbnMoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy50YWJsZUNvbmZpZz8ub3B0aW9ucz8uY29sdW1ucztcclxuXHR9XHJcblxyXG5cdGdldCBjb2x1bW5Ub2dnbGUoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5jb2x1bW5zT3B0aW9ucz8udG9nZ2xlID8/IHRydWU7XHJcblx0fVxyXG5cclxuXHRnZXQgdGFibGVNb2RlKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucz8udGFibGVNb2RlO1xyXG5cdH1cclxuXHJcblx0Z2V0IHBhbmVsQ29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucz8uZmlsdGVycz8ucGFuZWw7XHJcblx0fVxyXG5cclxuXHRnZXQgaXNQYW5lbFRvZ2dsZUF2YWlsYWJsZSgpIHtcclxuXHRcdHJldHVybiB0aGlzLnBhbmVsQ29uZmlnPy50b2dnbGVCdXR0b24gPz8gdHJ1ZTtcclxuXHR9XHJcblxyXG5cdGdldCB0ZXh0U2VhcmNoQ29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucz8uc2VhcmNoO1xyXG5cdH1cclxuXHJcblx0Z2V0IGZpbHRlclJlbG9hZENvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnM/LmZpbHRlcnM/LnJlbG9hZDtcclxuXHR9XHJcblxyXG5cdGdldCBleHBvcnRUYWJsZUNvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnM/LmV4cG9ydDtcclxuXHR9XHJcblxyXG5cdHJlYWRvbmx5IGRlZmF1bHRTb3J0ID0gW3sgcHJvcDogJ3Byb3BlcnRpZXMuY3JlYXRlZEF0JywgZGlyOiAnZGVzYycgfV07XHJcblxyXG5cdGRpcmVjdGlvbjogRGlyZWN0aW9uID0gJ3J0bCc7XHJcblx0aXNQYW5lbE9wZW5lZCA9IGZhbHNlO1xyXG5cdHJlYWRvbmx5IGRlZmF1bHRQYWdlU2l6ZXMgPSBQQUdFX1NJWkU7XHJcblxyXG5cdHByaXZhdGUgX2lzQ29uZmlnQ2hhbmdlZCA9IGZhbHNlO1xyXG5cdHByaXZhdGUgX3RhYmxlSW5pdGlhbGl6ZWQgPSBmYWxzZTtcclxuXHRwcml2YXRlIF9wYWdlQ2hhbmdlZCA9IGZhbHNlO1xyXG5cdHByaXZhdGUgX2FjdGl2ZVBhZ2U6IFBhZ2VFdmVudCA9IHtcclxuXHRcdHBhZ2VJbmRleDogMSxcclxuXHRcdHBhZ2VTaXplOiAxMCxcclxuXHRcdGxlbmd0aDogMFxyXG5cdH07XHJcblxyXG5cdHByaXZhdGUgX3NvcnRWYWx1ZTogVGFibGVTb3J0T3B0aW9ucztcclxuXHJcblx0ZWRpdG9yVHlwZSA9IE5ERl9FRElUT1JfVFlQRS5UQUJMRVM7XHJcblx0LyoqXHJcblx0ICpcclxuXHQgKi9cclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgX2ZpbHRlcnNNYXBwZXI6IEZpbHRlcnNNYXBwZXJTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfZHluYW1pY1RhYmxlU2VydmljZTogRHluYW1pY1RhYmxlU2VydmljZSxcclxuXHRcdHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9uZ1RhYmxlU2VydmljZTogTmRmVGFibGVTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfdG9hc3RyU2VydmljZTogQ3VzdG9tVG9hc3RyU2VydmljZSxcclxuXHRcdHByaXZhdGUgX25kZlRhYmxlQ29uZmlndXJhdGlvblNlcnZpY2U6IE5kZlRhYmxlQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZ1xyXG5cdCkge1xyXG5cdFx0c3VwZXIoKTtcclxuXHRcdHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlXHJcblx0XHRcdC5waXBlKHN0YXJ0V2l0aCh7IGxhbmc6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcgfSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuXHRcdFx0LnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5kaXJlY3Rpb24gPSByZXMubGFuZyA9PT0gJ2FyJyA/ICdydGwnIDogJ2x0cic7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG5cdFx0Y29uc3QgdGFibGVLZXkgPSBjaGFuZ2VzLnRhYmxlS2V5Py5jdXJyZW50VmFsdWU7XHJcblx0XHRjb25zdCBjb25maWcgPSBjaGFuZ2VzLmNvbmZpZz8uY3VycmVudFZhbHVlO1xyXG5cclxuXHRcdGlmICh0YWJsZUtleSAmJiBjb25maWcpIHtcclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdZb3UgY2Fubm90IHNldCBib3RoIHRhYmxlS2V5IGFuZCB0YWJsZUNvbmZpZyBhdCB0aGUgc2FtZSB0aW1lLicpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChjb25maWcpIHtcclxuXHRcdFx0dGhpcy5fYXBwbHlUYWJsZUNvbmZpZyhjb25maWcpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0YWJsZUtleSkge1xyXG5cdFx0XHR0aGlzLl9sb2FkVGFibGVDb25maWcodGFibGVLZXkpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dG9nZ2xlUGFuZWwoKSB7XHJcblx0XHR0aGlzLmlzUGFuZWxPcGVuZWQgPSAhdGhpcy5pc1BhbmVsT3BlbmVkO1xyXG5cdH1cclxuXHJcblx0b25Mb2FkKGRhdGE6IE51eGVvUGFnaW5hdGlvbjxhbnk+KTogdm9pZCB7XHJcblx0XHR0aGlzLm9uTG9hZGVkLmVtaXQoZGF0YSk7XHJcblx0XHRpZiAoIXRoaXMuX3RhYmxlSW5pdGlhbGl6ZWQgfHwgdGhpcy5maWx0ZXJSZWxvYWRDb25maWc/LnN0cmF0ZWd5ID09PSAnbmV2ZXInIHx8IHRoaXMuX3BhZ2VDaGFuZ2VkKSB7XHJcblx0XHRcdHRoaXMuX3BhZ2VDaGFuZ2VkID0gZmFsc2U7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5faXNDb25maWdDaGFuZ2VkIHx8IHRoaXMuZmlsdGVyUmVsb2FkQ29uZmlnPy5zdHJhdGVneSA9PT0gJ2Fsd2F5cycpIHtcclxuXHRcdFx0dGhpcy5fYWdncmVnYXRpb25zU3ViLm5leHQoZGF0YT8uYWdncmVnYXRpb25zKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLmZpbHRlclJlbG9hZENvbmZpZz8uc3RyYXRlZ3kgPT09ICdvbkNoYW5nZScpIHtcclxuXHRcdFx0Y29uc3QgYWN0aXZhdGVkUXVlcnkgPSB0aGlzLl9hY3RpdmF0ZWRDcml0ZXJpYVN1Yi5nZXRWYWx1ZSgpO1xyXG5cdFx0XHRjb25zdCBjdXJyZW50VmFsdWUgPSBhY3RpdmF0ZWRRdWVyeT8uY3VycmVudFZhbHVlIHx8IHt9O1xyXG5cdFx0XHRjb25zdCBwcmV2aW91c1ZhbHVlID0gYWN0aXZhdGVkUXVlcnk/LnByZXZpb3VzVmFsdWUgfHwge307XHJcblxyXG5cdFx0XHRjb25zdCB1cGRhdGVkS2V5cyA9IF8udW5pb24oXy5rZXlzKHByZXZpb3VzVmFsdWUpLCBfLmtleXMoY3VycmVudFZhbHVlKSkuZmlsdGVyKFxyXG5cdFx0XHRcdChrZXkpID0+ICFfLmlzRXF1YWwocHJldmlvdXNWYWx1ZVtrZXldLCBjdXJyZW50VmFsdWVba2V5XSlcclxuXHRcdFx0KTtcclxuXHJcblx0XHRcdGNvbnN0IHRyaWdnZXJLZXlzID0gdGhpcy5maWx0ZXJSZWxvYWRDb25maWcudHJpZ2dlckZpZWxkcyB8fCBbXTtcclxuXHRcdFx0Y29uc3Qgc2hvdWxkUmVsb2FkID0gdHJpZ2dlcktleXMuc29tZSgoa2V5KSA9PiB1cGRhdGVkS2V5cy5pbmNsdWRlcyhrZXkpKTtcclxuXHRcdFx0aWYgKHNob3VsZFJlbG9hZCkge1xyXG5cdFx0XHRcdHRoaXMuX2FnZ3JlZ2F0aW9uc1N1Yi5uZXh0KGRhdGE/LmFnZ3JlZ2F0aW9ucyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG9uSW5pdGlhbGl6ZShkYXRhOiBOdXhlb1BhZ2luYXRpb248YW55Pik6IHZvaWQge1xyXG5cdFx0dGhpcy5fYWdncmVnYXRpb25zU3ViLm5leHQoZGF0YT8uYWdncmVnYXRpb25zKTtcclxuXHRcdHRoaXMuX3RhYmxlSW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG5cdFx0dGhpcy5faXNDb25maWdDaGFuZ2VkID0gZmFsc2U7XHJcblx0XHR0aGlzLm9uSW5pdGlhbGl6ZWQuZW1pdChkYXRhKTtcclxuXHR9XHJcblxyXG5cdGNvbHVtbnNDaGFuZ2VkKGNvbHVtbnM6IFRhYmxlQ29sdW1uQ29uZmlnW10pIHtcclxuXHRcdHRoaXMuX2Rpc3BsYXllZENvbHVtbnNTdWIubmV4dChjb2x1bW5zKTtcclxuXHR9XHJcblxyXG5cdHNvcnRDaGFuZ2VkKHNvcnQ6IFNvcnRUYWJsZUl0ZW0pIHtcclxuXHRcdHRoaXMuX3NvcnRWYWx1ZSA9IHsgc29ydEJ5OiBzb3J0LnZhbHVlLCBzb3J0T3JkZXI6IHNvcnQuZGlyZWN0aW9uIH07XHJcblx0XHR0aGlzLl9zb3J0T3B0aW9uU3ViLm5leHQodGhpcy5fc29ydFZhbHVlKTtcclxuXHR9XHJcblxyXG5cdG1vZGVDaGFuZ2VkKG1vZGU6IFRhYmxlVmlld01vZGUpIHtcclxuXHRcdHRoaXMuX3ZpZXdNb2RlU3ViLm5leHQobW9kZSk7XHJcblx0fVxyXG5cclxuXHRvblNvcnRDaGFuZ2VkKHNvcnQ6IFRhYmxlU29ydE9wdGlvbnMpIHtcclxuXHRcdHRoaXMuX3NvcnRWYWx1ZSA9IHNvcnQ7XHJcblx0XHR0aGlzLm9uU29ydC5lbWl0KHNvcnQpO1xyXG5cdH1cclxuXHJcblx0ZXhwb3J0VGFibGUodHlwZTogRXhwb3J0VHlwZSkge1xyXG5cdFx0Y29uc3QgcmVxdWVzdCA9IF8uY2xvbmVEZWVwKHRoaXMuZXhwb3J0VGFibGVDb25maWc/LnJlcXVlc3QpO1xyXG5cdFx0aWYgKCFyZXF1ZXN0KSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGNvbnN0IGNvbHVtbnMgPSB0aGlzLl9kaXNwbGF5ZWRDb2x1bW5zU3ViLmdldFZhbHVlKCk7XHJcblx0XHRjb25zdCBmaWVsZHMgPSBjb2x1bW5zLm1hcCgoY29sKSA9PiBjb2wuaGVhZGVyQ2xhc3MpO1xyXG5cdFx0Y29uc3QgaGVhZGVycyA9IGNvbHVtbnMubWFwKChjb2wpID0+ICh0aGlzLnRhYmxlQ29uZmlnLnByZWZpeCB8fCAnJykgKyBjb2wubmFtZSk7XHJcblxyXG5cdFx0Y29uc3QgY3JpdGVyaWEgPSB0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5nZXRWYWx1ZSgpO1xyXG5cclxuXHRcdHJlcXVlc3QucGFyYW1zID0gT2JqZWN0LmFzc2lnbihcclxuXHRcdFx0e30sXHJcblx0XHRcdGNyaXRlcmlhLnBhcmFtcyxcclxuXHRcdFx0dGhpcy5fc29ydFZhbHVlIHx8IHt9LFxyXG5cdFx0XHR0aGlzLnRhYmxlQ29uZmlnPy5xdWlja0ZpbHRlcnMgPyB7IHF1aWNrRmlsdGVyczogdGhpcy50YWJsZUNvbmZpZy5xdWlja0ZpbHRlcnMgfSA6IHt9LFxyXG5cdFx0XHRyZXF1ZXN0LnBhcmFtc1xyXG5cdFx0KTtcclxuXHJcblx0XHRjb25zdCBibG9iTmFtZUtleSA9IHRoaXMuZXhwb3J0VGFibGVDb25maWc/LmJsb2JOYW1lO1xyXG5cdFx0Y29uc3QgcGF5bG9hZDogTmRmRXhwb3J0UGF5bG9hZCA9IHtcclxuXHRcdFx0cHJlZGljYXRlTGlzdDogY3JpdGVyaWEucGF5bG9hZC5wcmVkaWNhdGVMaXN0IHx8IFtdLFxyXG5cdFx0XHRyZXBvcnRNZXRhRGF0YToge1xyXG5cdFx0XHRcdGJsb2JOYW1lOiAnJyxcclxuXHRcdFx0XHRkb2NUeXBlTmFtZTogdGhpcy5leHBvcnRUYWJsZUNvbmZpZy5kb2NUeXBlTmFtZSxcclxuXHRcdFx0XHRmaWxlVHlwZTogdHlwZSxcclxuXHRcdFx0XHRsb2NhbGU6IHRoaXMuZXhwb3J0VGFibGVDb25maWc/LmxvY2FsZSB8fCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nLFxyXG5cdFx0XHRcdGZpZWxkczogdGhpcy5leHBvcnRUYWJsZUNvbmZpZz8uZmllbGRzIHx8IGZpZWxkcyxcclxuXHRcdFx0XHRoZWFkZXJzOiBbXVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cclxuXHRcdGZvcmtKb2luKHtcclxuXHRcdFx0YXI6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0VHJhbnNsYXRpb24oJ2FyJyksXHJcblx0XHRcdGVuOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldFRyYW5zbGF0aW9uKCdlbicpXHJcblx0XHR9KVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRzd2l0Y2hNYXAoKHRyYW5zbGF0aW9ucykgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgY3VycmVudFRyYW5zbGF0aW9ucyA9IHRyYW5zbGF0aW9uc1t0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nXTtcclxuXHRcdFx0XHRcdHBheWxvYWQucmVwb3J0TWV0YURhdGEuaGVhZGVycyA9IGhlYWRlcnMubWFwKChjb2wpID0+IF8uZ2V0KGN1cnJlbnRUcmFuc2xhdGlvbnMsIGNvbCkpO1xyXG5cdFx0XHRcdFx0cGF5bG9hZC5yZXBvcnRNZXRhRGF0YS5ibG9iTmFtZSA9IF8uZ2V0KHRyYW5zbGF0aW9uc1snYXInXSwgYmxvYk5hbWVLZXkpO1xyXG5cdFx0XHRcdFx0cGF5bG9hZC5yZXBvcnRNZXRhRGF0YS5ibG9iTmFtZUVuID0gXy5nZXQodHJhbnNsYXRpb25zWydlbiddLCBibG9iTmFtZUtleSk7XHJcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5fbmdUYWJsZVNlcnZpY2UuZXhwb3J0VGFibGUocmVxdWVzdCwgcGF5bG9hZCk7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0Y2F0Y2hFcnJvcigoXykgPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5fdG9hc3RyU2VydmljZS5lcnJvcignVEFCTEUuRVhQT1JULlJlcXVlc3RFcnJvcicpO1xyXG5cdFx0XHRcdFx0cmV0dXJuIG9mKGZhbHNlKTtcclxuXHRcdFx0XHR9KSxcclxuXHRcdFx0XHRmaWx0ZXIoQm9vbGVhbiksXHJcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcblx0XHRcdClcclxuXHRcdFx0LnN1YnNjcmliZSgocmVzOiBib29sZWFuKSA9PiB7XHJcblx0XHRcdFx0aWYgKHJlcykge1xyXG5cdFx0XHRcdFx0dGhpcy5fdG9hc3RyU2VydmljZS5zdWNjZXNzKCdUQUJMRS5FWFBPUlQucmVxdWVzdFN1Y2Nlc3MnKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0dGhpcy5fdG9hc3RyU2VydmljZS5lcnJvcignVEFCTEUuRVhQT1JULnJlcXVlc3RFcnJvcicpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHRmaWx0ZXJDaGFuZ2VkKGNyaXRlcmlhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcblx0XHR0aGlzLl90cmlnZ2VyQ3JpdGVyaWFDaGFuZ2VzKGNyaXRlcmlhKTtcclxuXHRcdGlmICh0aGlzLmZpbHRlcnNDb25maWc/Lm1vZGUgIT09ICdwYXlsb2FkJykge1xyXG5cdFx0XHRjb25zdCBpc1N0cmluZ2lmeVBhcmFtcyA9IHRoaXMuZmlsdGVyc0NvbmZpZz8uc3RyaW5naWZ5UGFyYW1zO1xyXG5cdFx0XHRjb25zdCB2YWx1ZSA9ICFpc1N0cmluZ2lmeVBhcmFtcyA/IGNyaXRlcmlhIDogdGhpcy5fc3RyaW5naWZ5VmFsdWVzKGNyaXRlcmlhKTtcclxuXHRcdFx0dGhpcy5fZHluYW1pY1RhYmxlU2VydmljZS5yZWZyZXNoRGF0YS5uZXh0KHZhbHVlKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHBheWxvYWQgPSB0aGlzLl9maWx0ZXJzTWFwcGVyLnByZXBhcmVQYXlsb2FkKHRoaXMuZmlsdGVyc0NvbmZpZy5maWVsZHMsIGNyaXRlcmlhKTtcclxuXHRcdHRoaXMuX2N1c3RvbUNyaXRlcmlhU3ViLm5leHQocGF5bG9hZCk7XHJcblx0fVxyXG5cclxuXHRvblRleHRTZWFyY2godGV4dDogc3RyaW5nKSB7XHJcblx0XHRpZiAoIXRoaXMudGV4dFNlYXJjaENvbmZpZz8uZmllbGRLZXkgfHwgdHlwZW9mIHRleHQgIT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIXRleHQpIHtcclxuXHRcdFx0dGhpcy5vbkNsZWFyU2VhcmNoKCk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMuX3RleHRTZWFyY2hTdWIubmV4dCh0ZXh0KTtcclxuXHR9XHJcblxyXG5cdG9uQ2xlYXJTZWFyY2goKSB7XHJcblx0XHR0aGlzLl90ZXh0U2VhcmNoU3ViLm5leHQobnVsbCk7XHJcblx0fVxyXG5cclxuXHRvcGVuU2VhcmNoTW9kYWwoKSB7XHJcblx0XHRjb25zdCBfZGlhbG9nQ29uZmlnID0gdGhpcy50ZXh0U2VhcmNoQ29uZmlnPy5zdWZmaXg/LmRpYWxvZztcclxuXHRcdGlmICghX2RpYWxvZ0NvbmZpZykge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRjb25zdCB7IG9wdGlvbnMsIC4uLmRhdGEgfSA9IF9kaWFsb2dDb25maWc7XHJcblx0XHR0aGlzLl9kaWFsb2cub3BlbjxIdG1sRGlhbG9nQ29tcG9uZW50LCBIdG1sRGlhbG9nQ29uZmlnPihIdG1sRGlhbG9nQ29tcG9uZW50LCB7XHJcblx0XHRcdHBhbmVsQ2xhc3M6ICdwLTAnLFxyXG5cdFx0XHRtaW5XaWR0aDogJ21pbig1MDBweCw2MHZ3KScsXHJcblx0XHRcdGRpcmVjdGlvbjogdGhpcy5kaXJlY3Rpb24sXHJcblx0XHRcdC4uLm9wdGlvbnMsXHJcblx0XHRcdGRhdGFcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0b25QYWdlQ2hhbmdlZChwYWdlOiBQYWdlRXZlbnQpIHtcclxuXHRcdHRoaXMuX3BhZ2VDaGFuZ2VkID0gdGhpcy5fYWN0aXZlUGFnZS5wYWdlSW5kZXggIT09IHBhZ2UucGFnZUluZGV4IHx8IHRoaXMuX2FjdGl2ZVBhZ2UucGFnZVNpemUgIT09IHBhZ2UucGFnZVNpemU7XHJcblx0XHRpZiAodGhpcy5fcGFnZUNoYW5nZWQpIHtcclxuXHRcdFx0dGhpcy5vblBhZ2UuZW1pdChwYWdlKTtcclxuXHRcdFx0dGhpcy5fYWN0aXZlUGFnZSA9IHBhZ2U7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9maWx0ZXJCeVZpc2liaWxpdHkoY29sdW1uczogVGFibGVDb2x1bW5Db25maWdbXSk6IFRhYmxlQ29sdW1uQ29uZmlnW10ge1xyXG5cdFx0cmV0dXJuIGNvbHVtbnMuZmlsdGVyKChjb2wpID0+IGNvbC5kZWZhdWx0VmlzaWJsZSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9wcmVwYXJlU2VhcmNoKFtzZWFyY2gsIGZpbHRlcnNdOiBbXHJcblx0XHRzdHJpbmcsXHJcblx0XHR7XHJcblx0XHRcdHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0XHRcdHBheWxvYWQ/OiB7IHByZWRpY2F0ZUxpc3Q6IGFueVtdIH0gJiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdFx0fVxyXG5cdF0pOiBhbnkge1xyXG5cdFx0e1xyXG5cdFx0XHRjb25zdCB7IHByZWRpY2F0ZUxpc3QgfSA9IGZpbHRlcnM/LnBheWxvYWQgfHwgeyBwcmVkaWNhdGVMaXN0OiBbXSB9O1xyXG5cdFx0XHRjb25zdCBfa2V5ID0gdGhpcy50ZXh0U2VhcmNoQ29uZmlnPy5maWVsZEtleTtcclxuXHRcdFx0Y29uc3Qgc2VhcmNoSW5kZXggPSBwcmVkaWNhdGVMaXN0LmZpbmRJbmRleCgoaXRtKSA9PiBpdG0ubmFtZSA9PT0gX2tleSk7XHJcblx0XHRcdGlmIChzZWFyY2ggJiYgX2tleSkge1xyXG5cdFx0XHRcdGlmIChzZWFyY2hJbmRleCA+PSAwKSB7XHJcblx0XHRcdFx0XHRwcmVkaWNhdGVMaXN0W3NlYXJjaEluZGV4XS52YWx1ZSA9IGAnJHtzZWFyY2h9J2A7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHByZWRpY2F0ZUxpc3QucHVzaCh7XHJcblx0XHRcdFx0XHRcdG5hbWU6IF9rZXksXHJcblx0XHRcdFx0XHRcdG9wZXJhdG9yOiB0aGlzLnRleHRTZWFyY2hDb25maWc/Lm9wZXJhdG9yIHx8IENPTVBBUklTT05fT1BFUkFUT1IuZXF1YWxzLFxyXG5cdFx0XHRcdFx0XHR2YWx1ZTogYCcke3NlYXJjaH0nYFxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IGVsc2UgaWYgKHNlYXJjaEluZGV4ID49IDApIHtcclxuXHRcdFx0XHRwcmVkaWNhdGVMaXN0LnNwbGljZShzZWFyY2hJbmRleCk7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIF8uY2xvbmVEZWVwKHsgLi4uZmlsdGVycyB9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3N0cmluZ2lmeVZhbHVlcyhjcml0ZXJpYTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG5cdFx0cmV0dXJuIE9iamVjdC5lbnRyaWVzKGNyaXRlcmlhKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XHJcblx0XHRcdGFjY1trZXldID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgOiB2YWx1ZTtcclxuXHRcdFx0cmV0dXJuIGFjYztcclxuXHRcdH0sIHt9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3RyaWdnZXJDcml0ZXJpYUNoYW5nZXMoY3JpdGVyaWE6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuXHRcdGlmICh0aGlzLl90YWJsZUluaXRpYWxpemVkKSB7XHJcblx0XHRcdHRoaXMub25RdWVyeUNoYW5nZS5lbWl0KGNyaXRlcmlhKTtcclxuXHRcdH1cclxuXHRcdGNvbnN0IGFjdGl2YXRlZFF1ZXJ5ID0geyAuLi50aGlzLl9hY3RpdmF0ZWRDcml0ZXJpYVN1Yi5nZXRWYWx1ZSgpIH07XHJcblx0XHRjb25zdCBwcmV2aW91c1ZhbHVlID0gYWN0aXZhdGVkUXVlcnk/LmN1cnJlbnRWYWx1ZTtcclxuXHRcdHRoaXMuX2FjdGl2YXRlZENyaXRlcmlhU3ViLm5leHQoe1xyXG5cdFx0XHRwcmV2aW91c1ZhbHVlOiBwcmV2aW91c1ZhbHVlLFxyXG5cdFx0XHRjdXJyZW50VmFsdWU6IGNyaXRlcmlhXHJcblx0XHR9KTtcclxuXHR9XHJcblx0LyoqXHJcblx0ICogQGRlc2NyaXB0aW9uXHJcblx0ICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byBzZXQgdGhlIHRhYmxlIGNvbmZpZ3VyYXRpb24uXHJcblx0ICogQHBhcmFtIGNvbmZpZyBOZGZUYWJsZUNvbmZpZ1xyXG5cdCAqL1xyXG5cdHByaXZhdGUgX2FwcGx5VGFibGVDb25maWcoY29uZmlnOiBOZGZUYWJsZUNvbmZpZyk6IHZvaWQge1xyXG5cdFx0dGhpcy5fdGFibGVDb25maWdTdWIubmV4dChjb25maWcpO1xyXG5cdFx0dGhpcy5pc1BhbmVsT3BlbmVkID0gY29uZmlnPy5vcHRpb25zPy5maWx0ZXJzPy5wYW5lbD8udmlzaWJsZSA/PyB0cnVlO1xyXG5cdFx0dGhpcy5faXNDb25maWdDaGFuZ2VkID0gISFjb25maWc7XHJcblx0XHRpZiAoY29uZmlnLmNvbHVtbnMpIHtcclxuXHRcdFx0dGhpcy5fZGlzcGxheWVkQ29sdW1uc1N1Yi5uZXh0KHRoaXMuX2ZpbHRlckJ5VmlzaWJpbGl0eShjb25maWcuY29sdW1ucykpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGNvbmZpZy5zb3J0aW5nQnkpIHtcclxuXHRcdFx0dGhpcy5fc29ydFZhbHVlID0gY29uZmlnLnNvcnRpbmdCeTtcclxuXHRcdFx0dGhpcy5fc29ydE9wdGlvblN1Yi5uZXh0KGNvbmZpZy5zb3J0aW5nQnkpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGNvbmZpZz8ub3B0aW9ucz8udGFibGVNb2RlPy5tb2RlKSB7XHJcblx0XHRcdHRoaXMuX3ZpZXdNb2RlU3ViLm5leHQoY29uZmlnLm9wdGlvbnMudGFibGVNb2RlLm1vZGUpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKGNvbmZpZy5wYWdlU2l6ZSkge1xyXG5cdFx0XHR0aGlzLl9hY3RpdmVQYWdlLnBhZ2VTaXplID0gY29uZmlnLnBhZ2VTaXplO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQHByaXZhdGVcclxuXHQgKiBAZGVzY3JpcHRpb24gTG9hZHMgdGhlIHRhYmxlIGNvbmZpZ3VyYXRpb24gYmFzZWQgb24gdGhlIHByb3ZpZGVkIGtleSBhbmQgYXBwbGllcyBpdC5cclxuXHQgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIGtleSB1c2VkIHRvIGZldGNoIHRoZSB0YWJsZSBjb25maWd1cmF0aW9uLlxyXG5cdCAqL1xyXG5cdHByaXZhdGUgX2xvYWRUYWJsZUNvbmZpZyhrZXk6IHN0cmluZykge1xyXG5cdFx0dGhpcy5fbmRmVGFibGVDb25maWd1cmF0aW9uU2VydmljZVxyXG5cdFx0XHQuZ2V0VGFibGVDb25maWd1cmF0aW9uKGtleSwgdGhpcy5jb25maWdQYXRoKVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRzd2l0Y2hNYXAoKGNvbmZpZykgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKHRoaXMuY29uZmlnVHJhbnNmb3JtZXIgJiYgXy5pc0Z1bmN0aW9uKHRoaXMuY29uZmlnVHJhbnNmb3JtZXIpKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybiB0aGlzLmNvbmZpZ1RyYW5zZm9ybWVyKGNvbmZpZyk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRyZXR1cm4gb2YoY29uZmlnKTtcclxuXHRcdFx0XHR9KSxcclxuXHRcdFx0XHR0YWtlVW50aWwodGhpcy5kZXN0cm95JClcclxuXHRcdFx0KVxyXG5cdFx0XHQuc3Vic2NyaWJlKChjb25maWcpID0+IHtcclxuXHRcdFx0XHR0aGlzLl9hcHBseVRhYmxlQ29uZmlnKGNvbmZpZyk7XHJcblx0XHRcdH0pO1xyXG5cdH1cclxufVxyXG4iLCI8ZGl2XHJcblx0Km5nSWY9XCJ0YWJsZUNvbmZpZ1wiXHJcblx0Y2xhc3M9XCJuZGYtdGFibGVfX2NvbnRhaW5lclwiXHJcblx0W2NsYXNzLnBhbmVsLW9wZW5lZF09XCJpc1BhbmVsT3BlbmVkICYmIGZpbHRlcnNDb25maWdcIlxyXG5cdFtkaXJdPVwiZGlyZWN0aW9uXCJcclxuXHRuZGZGbHVpZEhlaWdodFxyXG5cdGNzc1Zhcj1cIi0tbmRmLXRhYmxlLWhlaWdodFwiXHJcblx0W2NhbGN1bGF0ZV09XCJhdXRvQ2FsY3VsYXRlSGVpZ2h0XCJcclxuPlxyXG5cdDxkaXYgY2xhc3M9XCJuZGYtdGFibGVfX3BhbmVsXCIgKm5nSWY9XCJmaWx0ZXJzQ29uZmlnPy5maWVsZHNcIj5cclxuXHRcdDxhcHAtZmlsdGVycy1wYW5lbFxyXG5cdFx0XHRbZmllbGRzXT1cImZpbHRlcnNDb25maWcuZmllbGRzXCJcclxuXHRcdFx0W2FnZ3JlZ2F0aW9uc109XCJhZ2dyZWdhdGlvbnMkIHwgYXN5bmNcIlxyXG5cdFx0XHQoZmlsdGVyQ2hhbmdlZCk9XCJmaWx0ZXJDaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0XHRbYWN0aXZlUXVlcnldPVwiYWN0aXZlUXVlcnlcIlxyXG5cdFx0XHRjbGFzcz1cIm5kZi10YWJsZV9fZmlsdGVyc1wiXHJcblx0XHRcdFtjdXN0b21UZW1wbGF0ZVJlZl09XCJmaWx0ZXJDdXN0b21UZW1wbGF0ZVwiXHJcblx0XHQ+PC9hcHAtZmlsdGVycy1wYW5lbD5cclxuXHQ8L2Rpdj5cclxuXHQ8ZGl2IGNsYXNzPVwibmRmLXRhYmxlX19jb250ZW50XCI+XHJcblx0XHQ8ZGl2IGNsYXNzPVwibmRmLXRhYmxlX19oZWFkZXIgZmxleFwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibmRmLXRhYmxlX19oZWFkZXJfX2N1c3RvbS1hY3Rpb25zIGZsZXggZ2FwLXgtNCBpdGVtcy1jZW50ZXJcIj5cclxuXHRcdFx0XHQ8bmctY29udGFpbmVyXHJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJzZWFyY2hUYWJsZVRlbXBsYXRlIHx8IGRlZmF1bHRBY3Rpb25UZW1wbGF0ZVwiXHJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xyXG5cdFx0XHRcdFx0XHQkaW1wbGljaXQ6IHRhYmxlQ29uZmlnLFxyXG5cdFx0XHRcdFx0XHRwYW5lbE9wZW5lZDogaXNQYW5lbE9wZW5lZCxcclxuXHRcdFx0XHRcdFx0dG9nZ2xlUGFuZWw6IHRvZ2dsZVBhbmVsLFxyXG5cdFx0XHRcdFx0XHRvcGVuTW9kYWw6IG9wZW5TZWFyY2hNb2RhbCxcclxuXHRcdFx0XHRcdFx0c2VhcmNoOiBvblRleHRTZWFyY2gsXHJcblx0XHRcdFx0XHRcdGNsZWFyOiBvbkNsZWFyU2VhcmNoXHJcblx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHQ+PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEFjdGlvblRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gKm5nSWY9XCJpc1BhbmVsVG9nZ2xlQXZhaWxhYmxlXCIgY2xhc3M9XCJ0b2dnbGUtYnV0dG9uXCIgKGNsaWNrKT1cInRvZ2dsZVBhbmVsKClcIj5cclxuXHRcdFx0XHRcdFx0PG1hdC1pY29uPiBmaWx0ZXJfYWx0PC9tYXQtaWNvbj5cclxuXHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PGFwcC10ZXh0LXNlYXJjaFxyXG5cdFx0XHRcdFx0XHQqbmdJZj1cInRleHRTZWFyY2hDb25maWdcIlxyXG5cdFx0XHRcdFx0XHRbc2VhcmNoQ29uZmlnXT1cInRleHRTZWFyY2hDb25maWdcIlxyXG5cdFx0XHRcdFx0XHQob3Blbk1vZGFsKT1cIm9wZW5TZWFyY2hNb2RhbCgpXCJcclxuXHRcdFx0XHRcdFx0W3NlYXJjaF09XCJ0ZXh0U2VhcmNoJCB8IGFzeW5jXCJcclxuXHRcdFx0XHRcdFx0KHNlYXJjaENoYW5nZSk9XCJvblRleHRTZWFyY2goJGV2ZW50KVwiXHJcblx0XHRcdFx0XHRcdChjbGVhcik9XCJvbkNsZWFyU2VhcmNoKClcIlxyXG5cdFx0XHRcdFx0PjwvYXBwLXRleHQtc2VhcmNoPlxyXG5cdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibmRmLXRhYmxlX19oZWFkZXJfX2FjdGlvbnMgZmxleCBnYXAteC00IGl0ZW1zLWNlbnRlclwiPlxyXG5cdFx0XHRcdDxhcHAtZWRpdG9yLWJ1dHRvblxyXG5cdFx0XHRcdFx0Km5nSWY9XCJqc29uRWRpdG9yRW5hYmxlZCAmJiAodGFibGVLZXkgfHwgdGFibGVDb25maWc/LmtleSlcIlxyXG5cdFx0XHRcdFx0W2tleV09XCJ0YWJsZUtleSB8fCB0YWJsZUNvbmZpZz8ua2V5XCJcclxuICAgICAgICAgIFt0eXBlXT1cImVkaXRvclR5cGVcIlxyXG5cdFx0XHRcdD48L2FwcC1lZGl0b3ItYnV0dG9uPlxyXG5cdFx0XHRcdDxuZGYtdGFibGUtZXhwb3J0XHJcblx0XHRcdFx0XHQqbmdJZj1cImV4cG9ydFRhYmxlQ29uZmlnPy5lbmFibGVkXCJcclxuXHRcdFx0XHRcdFtjb25maWddPVwiZXhwb3J0VGFibGVDb25maWdcIlxyXG5cdFx0XHRcdFx0KG9uRXhwb3J0KT1cImV4cG9ydFRhYmxlKCRldmVudClcIlxyXG5cdFx0XHRcdD48L25kZi10YWJsZS1leHBvcnQ+XHJcblxyXG5cdFx0XHRcdDx0YWJsZS1zb3J0aW5nLWxpc3RcclxuXHRcdFx0XHRcdCpuZ0lmPVwiISFzb3J0TGlzdD8ubGVuZ3RoXCJcclxuXHRcdFx0XHRcdFtzb3J0TGlzdF09XCJzb3J0TGlzdFwiXHJcblx0XHRcdFx0XHQoc29ydENoYW5nZWQpPVwic29ydENoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHRcdFx0PjwvdGFibGUtc29ydGluZy1saXN0PlxyXG5cdFx0XHRcdDx0YWJsZS1jb2x1bW5zLXRvZ2dsZXJcclxuXHRcdFx0XHRcdCpuZ0lmPVwiY29sdW1uVG9nZ2xlXCJcclxuXHRcdFx0XHRcdFtjb2x1bW5zXT1cInRhYmxlQ29uZmlnLmNvbHVtbnNcIlxyXG5cdFx0XHRcdFx0W3ByZWZpeF09XCJ0YWJsZUNvbmZpZy5wcmVmaXhcIlxyXG5cdFx0XHRcdFx0W3NvcnRhYmxlXT1cImNvbHVtbnNPcHRpb25zPy5zb3J0YWJsZVwiXHJcblx0XHRcdFx0XHQoY29sdW1uc0NoYW5nZWQpPVwiY29sdW1uc0NoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHRcdFx0PjwvdGFibGUtY29sdW1ucy10b2dnbGVyPlxyXG5cdFx0XHRcdDxtb2RlLXRvZ2dsZXJcclxuXHRcdFx0XHRcdCpuZ0lmPVwidGFibGVNb2RlPy50b2dnbGVNb2RlXCJcclxuXHRcdFx0XHRcdFttb2RlXT1cInRhYmxlTW9kZS5tb2RlIHx8ICdsaXN0J1wiXHJcblx0XHRcdFx0XHRbbW9kZXNMaXN0XT1cInRhYmxlTW9kZT8uYXZhaWxhYmxlTW9kZVwiXHJcblx0XHRcdFx0XHQobW9kZUNoYW5nZWQpPVwibW9kZUNoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHRcdFx0PjwvbW9kZS10b2dnbGVyPlxyXG5cdFx0XHRcdDxuZy1jb250YWluZXJcclxuXHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFjdGlvbnNUYWJsZVRlbXBsYXRlXCJcclxuXHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XHJcblx0XHRcdFx0XHRcdCRpbXBsaWNpdDogdGFibGVDb25maWcsXHJcblx0XHRcdFx0XHRcdHBhbmVsT3BlbmVkOiBpc1BhbmVsT3BlbmVkLFxyXG5cdFx0XHRcdFx0XHR0b2dnbGVQYW5lbDogdG9nZ2xlUGFuZWwsXHJcblx0XHRcdFx0XHRcdG9wZW5Nb2RhbDogb3BlblNlYXJjaE1vZGFsLFxyXG5cdFx0XHRcdFx0XHRzZWFyY2g6IG9uVGV4dFNlYXJjaCxcclxuXHRcdFx0XHRcdFx0Y2xlYXI6IG9uQ2xlYXJTZWFyY2hcclxuXHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdD48L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHJcblx0XHQ8Y3RzLWR5bmFtaWMtdGFibGVcclxuXHRcdFx0Km5nSWY9XCIhdGFibGVDb25maWcuaXNEYXRhUHJvdmlkZWRcIlxyXG5cdFx0XHRjbGFzcz1cIm5kZi10YWJsZV9fdGFibGUgdGFibGUtc3R5bGVcIlxyXG5cdFx0XHRbY29sdW1uc109XCJkaXNwbGF5ZWRDb2x1bW5zJCB8IGFzeW5jXCJcclxuXHRcdFx0W3Jlc3BvbnNpdmVDb2x1bW5zXT1cImRpc3BsYXllZENvbHVtbnMkIHwgYXN5bmNcIlxyXG5cdFx0XHRbZnVsbFdpZHRoXT1cInRhYmxlQ29uZmlnLmZ1bGxXaWR0aCB8fCAnYXV0bydcIlxyXG5cdFx0XHRbcGFnZVNpemVdPVwidGFibGVDb25maWcucGFnZVNpemUgfHwgMTBcIlxyXG5cdFx0XHRbcGFnZU51bWJlcl09XCJ0YWJsZUNvbmZpZy5wYWdlTnVtYmVyIHx8IDFcIlxyXG5cdFx0XHRbcGFnZVByb3ZpZGVyXT1cInRhYmxlQ29uZmlnLnBhZ2VQcm92aWRlclwiXHJcblx0XHRcdFtjdXN0b21VcmxdPVwidGFibGVDb25maWcuY3VzdG9tVXJsXCJcclxuXHRcdFx0W3F1aWNrRmlsdGVyXT1cInRhYmxlQ29uZmlnLnF1aWNrRmlsdGVycyA/IHsgcXVpY2tGaWx0ZXJzOiB0YWJsZUNvbmZpZy5xdWlja0ZpbHRlcnMgfSA6IHVuZGVmaW5lZFwiXHJcblx0XHRcdFtkZWZ1bHRTb3J0XT1cInRhYmxlQ29uZmlnLmRlZmF1bHRTb3J0IHx8IGRlZmF1bHRTb3J0XCJcclxuXHRcdFx0W3NvcnRpbmdCeV09XCJzb3J0T3B0aW9uJCB8IGFzeW5jXCJcclxuXHRcdFx0W2VudGl0eVR5cGVdPVwiJ2FsbCdcIlxyXG5cdFx0XHRbZmllbGRzXT1cInRhYmxlQ29uZmlnLmZpZWxkc1wiXHJcblx0XHRcdFt0YWJsZU1vZGVdPVwidmlld01vZGUkIHwgYXN5bmNcIlxyXG5cdFx0XHRbY29tcG9uZW50TmFtZV09XCJ0YWJsZU1vZGU/LlsnY29tcG9uZW50TmFtZSddXCJcclxuXHRcdFx0W3JhbmdlXT1cInRhYmxlQ29uZmlnPy5yYW5nZVwiXHJcblx0XHRcdFtpc1NlYXJjaFBhZ2VdPVwidGFibGVDb25maWc/LmlzU2VhcmNoUGFnZVwiXHJcblx0XHRcdFttdWx0aVNlbGVjdFJvd3NdPVwidGFibGVDb25maWc/Lm11bHRpU2VsZWN0Um93c1wiXHJcblx0XHRcdFtjdXN0b21GaXJzdFJvd109XCJ0YWJsZUNvbmZpZz8uY3VzdG9tRmlyc3RSb3dcIlxyXG5cdFx0XHRbaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkXT1cInRhYmxlQ29uZmlnPy5oaWdobGlnaHRTZWxlY3RlZENhcmRcIlxyXG5cdFx0XHRbc2hvd0FjdGlvbnNBc01lbnVdPVwidGFibGVDb25maWc/LnNob3dBY3Rpb25zQXNNZW51XCJcclxuXHRcdFx0W2ZpbHRlclBhcmFtc109XCJ0YWJsZUNvbmZpZz8uZmlsdGVyUGFyYW1zXCJcclxuXHRcdFx0W2Zvcm1hdF09XCJ0YWJsZUNvbmZpZz8uZm9ybWF0IHx8ICdNTU1NIGQsIHknXCJcclxuXHRcdFx0W3BhZ2VTaXplc109XCJ0YWJsZUNvbmZpZz8ucGFnZVNpemVzIHx8IGRlZmF1bHRQYWdlU2l6ZXNcIlxyXG5cdFx0XHRbcHJlZml4XT1cInRhYmxlQ29uZmlnLnByZWZpeCB8fCAnJ1wiXHJcblx0XHRcdFtyb3dDdXJzb3JdPVwidHJ1ZVwiXHJcblx0XHRcdFtxdWVyeVBhcmFtXT1cInRhYmxlQ29uZmlnLnF1ZXJ5UGFyYW1cIlxyXG5cdFx0XHRbY3VzdG9tRmlsdGVyc109XCJzZWFyY2hBbmRGaWx0ZXJzJCB8IGFzeW5jXCJcclxuXHRcdFx0W3RhYmxlQWN0aW9uc109XCJ0YWJsZUNvbmZpZy50YWJsZUFjdGlvbnNcIlxyXG4gICAgICBbcmVxdWVzdEFjdGlvbnNdPVwidGFibGVDb25maWc/LnJlcXVlc3RBY3Rpb25zXCJcclxuXHRcdFx0W2hlYWRlcnNdPVwidGFibGVDb25maWcuaGVhZGVyc1wiXHJcblx0XHRcdChvblJvd1NlbGVjdGVkKT1cIm9uUm93U2VsZWN0ZWQuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uUm93SW5kZXhTZWxlY3RlZCk9XCJvblJvd0luZGV4U2VsZWN0ZWQuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KGFjdGlvbk9uUm93KT1cImFjdGlvbk9uUm93LmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChvbkdldHRpbmdEYXRhKT1cIm9uR2V0dGluZ0RhdGEuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uTG9hZCk9XCJvbkxvYWQoJGV2ZW50KVwiXHJcblx0XHRcdChvbkluaXRpYWxpemUpPVwib25Jbml0aWFsaXplKCRldmVudClcIlxyXG5cdFx0XHQob25NdWx0aVJvd1NlbGVjdGVkKT1cIm9uTXVsdGlSb3dTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25Mb2FkaW5nKT1cIm9uTG9hZGluZy5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25QYWdlKT1cIm9uUGFnZUNoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHRcdFtpc0xlZ2FjeU1vZGVdPVwiZmFsc2VcIlxyXG5cdFx0XHRbc2hvd1RvdGFsUmVjb3JkXT1cInRydWVcIlxyXG5cdFx0XHQoc29ydENoYW5nZWQpPVwib25Tb3J0Q2hhbmdlZCgkZXZlbnQpXCJcclxuXHRcdD5cclxuXHRcdFx0PG5nLXRlbXBsYXRlIGVtcHR5VGVtcGxhdGUgbGV0LWlzTG9hZGluZyBsZXQtcm93cz1cInJvd3NcIiBsZXQtaW5pdGlhbGl6ZWQ9XCJpbml0aWFsaXplZFwiPlxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJsb2FkaW5nLWRhdGFcIiAqbmdJZj1cImlzTG9hZGluZyAmJiBpbml0aWFsaXplZFwiPlxyXG5cdFx0XHRcdFx0PG1hdC1zcGlubmVyPjwvbWF0LXNwaW5uZXI+XHJcblx0XHRcdFx0PC9kaXY+XHJcblxyXG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBoLTUvNlwiICpuZ0lmPVwiIWlzTG9hZGluZyAmJiAhcm93cy5sZW5ndGhcIj5cclxuXHRcdFx0XHRcdDxhcHAtbm8tZGF0YS1mb3VuZCBjbGFzcz1cIm10LTRcIiBbbWVzc2FnZV09XCJlbXB0eU1lc3NhZ2VcIj48L2FwcC1uby1kYXRhLWZvdW5kPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0PC9jdHMtZHluYW1pYy10YWJsZT5cclxuXHJcblx0XHQ8Y3RzLXRhYmxlXHJcblx0XHRcdCpuZ0lmPVwidGFibGVDb25maWcuaXNEYXRhUHJvdmlkZWRcIlxyXG5cdFx0XHRbcm93c109XCJyb3dzXCJcclxuXHRcdFx0W3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG5cdFx0XHRbY29sdW1uc109XCJkaXNwbGF5ZWRDb2x1bW5zJCB8IGFzeW5jXCJcclxuXHRcdFx0W3Jlc3BvbnNpdmVDb2x1bW5zXT1cImRpc3BsYXllZENvbHVtbnMkIHwgYXN5bmNcIlxyXG5cdFx0XHRbcm93Q3Vyc29yXT1cInRydWVcIlxyXG5cdFx0XHRbZnVsbFdpZHRoXT1cInRhYmxlQ29uZmlnLmZ1bGxXaWR0aCB8fCAnYXV0bydcIlxyXG5cdFx0XHRbZW50aXR5VHlwZV09XCInYWxsJ1wiXHJcblx0XHRcdFtwcmVmaXhdPVwidGFibGVDb25maWcucHJlZml4IHx8ICcnXCJcclxuXHRcdFx0W3RhYmxlTW9kZV09XCJ2aWV3TW9kZSQgfCBhc3luY1wiXHJcblx0XHRcdFtjb21wb25lbnROYW1lXT1cInRhYmxlTW9kZT8uWydjb21wb25lbnROYW1lJ11cIlxyXG5cdFx0XHRbbXVsdGlTZWxlY3RSb3dzXT1cInRhYmxlQ29uZmlnPy5tdWx0aVNlbGVjdFJvd3NcIlxyXG5cdFx0XHRbY3VzdG9tRmlyc3RSb3ddPVwidGFibGVDb25maWc/LmN1c3RvbUZpcnN0Um93XCJcclxuXHRcdFx0W3RhYmxlQWN0aW9uc109XCJ0YWJsZUNvbmZpZy50YWJsZUFjdGlvbnNcIlxyXG5cdFx0XHRbc2hvd0FjdGlvbnNBc01lbnVdPVwidGFibGVDb25maWc/LnNob3dBY3Rpb25zQXNNZW51XCJcclxuXHRcdFx0W2RlZnVsdFNvcnRdPVwidGFibGVDb25maWcuZGVmYXVsdFNvcnQgfHwgZGVmYXVsdFNvcnRcIlxyXG5cdFx0XHRbZm9ybWF0XT1cInRhYmxlQ29uZmlnPy5mb3JtYXQgfHwgJ01NTU0gZCwgeSdcIlxyXG5cdFx0XHRbaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkXT1cInRhYmxlQ29uZmlnPy5oaWdobGlnaHRTZWxlY3RlZENhcmRcIlxyXG5cdFx0XHQob25Sb3dTZWxlY3RlZCk9XCJvblJvd1NlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChvblJvd0luZGV4U2VsZWN0ZWQpPVwib25Sb3dJbmRleFNlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChvbk11bHRpUm93U2VsZWN0ZWQpPVwib25NdWx0aVJvd1NlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChhY3Rpb25PblJvdyk9XCJhY3Rpb25PblJvdy5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25Tb3J0aW5nKT1cIm9uU29ydENoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHQ+PC9jdHMtdGFibGU+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
466
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9jb250YWluZXJzL25kZi10YWJsZS9uZGYtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL2NvbnRhaW5lcnMvbmRmLXRhYmxlL25kZi10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBRU4sV0FBVyxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBbUIsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFRLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pHLE9BQU8sRUFFTixtQkFBbUIsRUFFbkIsbUJBQW1CLEVBRW5CLE1BQU0seUJBQXlCLENBQUM7QUFZakMsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFNbEUsT0FB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O2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFFc0Qsb0JBQW9CO3NCQUFoRixZQUFZO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFDQyxtQkFBbUI7c0JBQTlFLFlBQVk7dUJBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUNHLG9CQUFvQjtzQkFBaEYsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XHJcbmltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdENvbnRlbnRDaGlsZCxcclxuXHRFdmVudEVtaXR0ZXIsXHJcblx0SW5wdXQsXHJcblx0T25DaGFuZ2VzLFxyXG5cdE91dHB1dCxcclxuXHRTaW1wbGVDaGFuZ2VzLFxyXG5cdFRlbXBsYXRlUmVmXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZm9ya0pvaW4sIGlpZiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEFDVElPTlNfVEFCTEVfVEVNUExBVEUsIEZJTFRFUl9DVVNUT01fVEVNUExBVEUsIFNFQVJDSF9UQUJMRV9URU1QTEFURSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xyXG5pbXBvcnQge1xyXG5cdEFnZ3JlZ2F0aW9uUmVzcG9uc2UsXHJcblx0Q09NUEFSSVNPTl9PUEVSQVRPUixcclxuXHRGb3JtUXVlcnlNb2RlbCxcclxuXHRIdG1sRGlhbG9nQ29tcG9uZW50LFxyXG5cdEh0bWxEaWFsb2dDb25maWdcclxufSBmcm9tICcuLi8uLi8uLi8uLi9uZGYtZmlsdGVycyc7XHJcbmltcG9ydCB7XHJcblx0Q3VzdG9tQ3JpdGVyaWFNb2RlbCxcclxuXHRFeHBvcnRUeXBlLFxyXG5cdE5kZkV4cG9ydFBheWxvYWQsXHJcblx0TmRmVGFibGVDb25maWcsXHJcblx0U29ydFRhYmxlSXRlbSxcclxuXHRUYWJsZUNvbHVtbkNvbmZpZyxcclxuXHRUYWJsZVNvcnRPcHRpb25zLFxyXG5cdFRhYmxlVmlld01vZGVcclxufSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBOZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLCBOZGZUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFBBR0VfU0laRSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvci9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBEZXN0cm95U3ViamVjdCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgTnV4ZW9QYWdpbmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vc2hhcmVkL21vZGVscyc7XHJcbmltcG9ydCB7IER5bmFtaWNUYWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9keW5hbWljLXRhYmxlJztcclxuaW1wb3J0IHsgQ3VzdG9tVG9hc3RyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2N1c3RvbS10b2FzdHIvc2VydmljZXMvY3VzdG9tLXRvYXN0ci5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IEZpbHRlcnNNYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vbmRmLWZpbHRlcnMvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBOREZfRURJVE9SX1RZUEUgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtbmRmLXRhYmxlJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vbmRmLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9uZGYtdGFibGUuY29tcG9uZW50LnNjc3MnXSxcclxuXHRob3N0OiB7XHJcblx0XHRjbGFzczogJ25kZi10YWJsZScsXHJcblx0XHQnW2Rpcl0nOiAnZGlyZWN0aW9uJ1xyXG5cdH1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5kZlRhYmxlQ29tcG9uZW50IGV4dGVuZHMgRGVzdHJveVN1YmplY3QgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgX2FnZ3JlZ2F0aW9uc1N1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVjb3JkPHN0cmluZywgQWdncmVnYXRpb25SZXNwb25zZT4+KG51bGwpO1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgX2Rpc3BsYXllZENvbHVtbnNTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRhYmxlQ29sdW1uQ29uZmlnW10+KFtdKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IF9zb3J0T3B0aW9uU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUYWJsZVNvcnRPcHRpb25zPihudWxsKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IF92aWV3TW9kZVN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGFibGVWaWV3TW9kZT4oJ2xpc3QnKTtcclxuXHRwcml2YXRlIHJlYWRvbmx5IF90ZXh0U2VhcmNoU3ViID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KG51bGwpO1xyXG5cclxuXHRwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmF0ZWRDcml0ZXJpYVN1YiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8e1xyXG5cdFx0cHJldmlvdXNWYWx1ZTogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRcdGN1cnJlbnRWYWx1ZTogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHR9PihudWxsKTtcclxuXHJcblx0cHJpdmF0ZSByZWFkb25seSBfY3VzdG9tQ3JpdGVyaWFTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEN1c3RvbUNyaXRlcmlhTW9kZWw+KHtcclxuXHRcdHBhcmFtczoge30sXHJcblx0XHRwYXlsb2FkOiB7XHJcblx0XHRcdHByZWRpY2F0ZUxpc3Q6IFtdXHJcblx0XHR9XHJcblx0fSk7XHJcblxyXG5cdHJlYWRvbmx5IGFnZ3JlZ2F0aW9ucyQgPSB0aGlzLl9hZ2dyZWdhdGlvbnNTdWIuYXNPYnNlcnZhYmxlKCk7XHJcblx0cmVhZG9ubHkgZGlzcGxheWVkQ29sdW1ucyQgPSB0aGlzLl9kaXNwbGF5ZWRDb2x1bW5zU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHJlYWRvbmx5IHNvcnRPcHRpb24kID0gdGhpcy5fc29ydE9wdGlvblN1Yi5hc09ic2VydmFibGUoKTtcclxuXHRyZWFkb25seSB2aWV3TW9kZSQgPSB0aGlzLl92aWV3TW9kZVN1Yi5hc09ic2VydmFibGUoKTtcclxuXHRyZWFkb25seSBjdXN0b21GaWx0ZXJzJCA9IHRoaXMuX2N1c3RvbUNyaXRlcmlhU3ViLmFzT2JzZXJ2YWJsZSgpO1xyXG5cdHJlYWRvbmx5IHRleHRTZWFyY2gkID0gdGhpcy5fdGV4dFNlYXJjaFN1Yi5hc09ic2VydmFibGUoKTtcclxuXHJcblx0cmVhZG9ubHkgc2VhcmNoQW5kRmlsdGVycyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnRleHRTZWFyY2gkLCB0aGlzLmN1c3RvbUZpbHRlcnMkXSkucGlwZShcclxuXHRcdG1hcCgocmVzKSA9PiB0aGlzLl9wcmVwYXJlU2VhcmNoKHJlcykpXHJcblx0KTtcclxuXHRASW5wdXQoKSByb3dzOiBBcnJheTx1bmtub3duPjtcclxuXHRASW5wdXQoKSB0b3RhbFJlY29yZHM6IG51bWJlcjtcclxuXHRASW5wdXQoKSBhdXRvQ2FsY3VsYXRlSGVpZ2h0ID0gdHJ1ZTtcclxuXHRASW5wdXQoKSBlbXB0eU1lc3NhZ2UgPSAndGFibGVfbm9EYXRhJztcclxuXHRASW5wdXQoKSBhY3RpdmVRdWVyeTogRm9ybVF1ZXJ5TW9kZWw7XHJcblx0QElucHV0KCkgY29uZmlnUGF0aDogc3RyaW5nID0gJ3RhYmxlcyc7XHJcblx0QElucHV0KCkgY29uZmlnVHJhbnNmb3JtZXI6IChjb25maWc6IE5kZlRhYmxlQ29uZmlnKSA9PiBPYnNlcnZhYmxlPE5kZlRhYmxlQ29uZmlnPjtcclxuXHRASW5wdXQoKSB0YWJsZUtleTogc3RyaW5nO1xyXG5cclxuXHRASW5wdXQoKSBqc29uRWRpdG9yRW5hYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHRwcml2YXRlIF9jb25maWc6IE5kZlRhYmxlQ29uZmlnO1xyXG5cdEBJbnB1dCgpIHNldCBjb25maWcoY29uZmlnOiBOZGZUYWJsZUNvbmZpZykge1xyXG5cdFx0dGhpcy5fY29uZmlnID0gY29uZmlnO1xyXG5cdH1cclxuXHJcblx0Z2V0IHRhYmxlQ29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuX3RhYmxlQ29uZmlnU3ViLmdldFZhbHVlKCk7XHJcblx0fVxyXG5cclxuXHRASW5wdXQoKSBzZXQgY3VzdG9tQ3JpdGVyaWEoY3JpdGVyaWE6IEN1c3RvbUNyaXRlcmlhTW9kZWwpIHtcclxuXHRcdGlmIChjcml0ZXJpYSkge1xyXG5cdFx0XHR0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5uZXh0KGNyaXRlcmlhKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBJbnB1dCgpIHNldCBzZWFyY2hUZXJtKHZhbHVlOiBzdHJpbmcpIHtcclxuXHRcdGlmICh2YWx1ZSkge1xyXG5cdFx0XHR0aGlzLl90ZXh0U2VhcmNoU3ViLm5leHQodmFsdWUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QE91dHB1dCgpIG9uUm93U2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uUm93SW5kZXhTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgYWN0aW9uT25Sb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uR2V0dGluZ0RhdGEgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0QE91dHB1dCgpIG9uTXVsdGlSb3dTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgb25Mb2FkaW5nID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuXHRAT3V0cHV0KCkgb25QYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+KCk7XHJcblx0QE91dHB1dCgpIG9uSW5pdGlhbGl6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE51eGVvUGFnaW5hdGlvbjxhbnk+PigpO1xyXG5cdEBPdXRwdXQoKSBvbkxvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TnV4ZW9QYWdpbmF0aW9uPGFueT4+KCk7XHJcblxyXG5cdEBPdXRwdXQoKSBvblF1ZXJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdEBPdXRwdXQoKSBvblNvcnQgPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmxlU29ydE9wdGlvbnM+KCk7XHJcblxyXG5cdEBDb250ZW50Q2hpbGQoQUNUSU9OU19UQUJMRV9URU1QTEFURSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBhY3Rpb25zVGFibGVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHRAQ29udGVudENoaWxkKFNFQVJDSF9UQUJMRV9URU1QTEFURSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBzZWFyY2hUYWJsZVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cdEBDb250ZW50Q2hpbGQoRklMVEVSX0NVU1RPTV9URU1QTEFURSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBmaWx0ZXJDdXN0b21UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcblx0cHJpdmF0ZSBfdGFibGVDb25maWdTdWIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE5kZlRhYmxlQ29uZmlnPihudWxsKTtcclxuXHJcblx0Z2V0IG9wdGlvbnMoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy50YWJsZUNvbmZpZz8ub3B0aW9ucztcclxuXHR9XHJcblxyXG5cdGdldCBmaWx0ZXJzQ29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMub3B0aW9ucz8uZmlsdGVycztcclxuXHR9XHJcblxyXG5cdGdldCBzb3J0TGlzdCgpIHtcclxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnM/LnNvcnRMaXN0IHx8IFtdO1xyXG5cdH1cclxuXHJcblx0Z2V0IGNvbHVtbnNPcHRpb25zKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMudGFibGVDb25maWc/Lm9wdGlvbnM/LmNvbHVtbnM7XHJcblx0fVxyXG5cclxuXHRnZXQgY29sdW1uVG9nZ2xlKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuY29sdW1uc09wdGlvbnM/LnRvZ2dsZSA/PyB0cnVlO1xyXG5cdH1cclxuXHJcblx0Z2V0IHRhYmxlTW9kZSgpIHtcclxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnM/LnRhYmxlTW9kZTtcclxuXHR9XHJcblxyXG5cdGdldCBwYW5lbENvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnM/LmZpbHRlcnM/LnBhbmVsO1xyXG5cdH1cclxuXHJcblx0Z2V0IGlzUGFuZWxUb2dnbGVBdmFpbGFibGUoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5wYW5lbENvbmZpZz8udG9nZ2xlQnV0dG9uID8/IHRydWU7XHJcblx0fVxyXG5cclxuXHRnZXQgdGV4dFNlYXJjaENvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnM/LnNlYXJjaDtcclxuXHR9XHJcblxyXG5cdGdldCBmaWx0ZXJSZWxvYWRDb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5maWx0ZXJzPy5yZWxvYWQ7XHJcblx0fVxyXG5cclxuXHRnZXQgZXhwb3J0VGFibGVDb25maWcoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zPy5leHBvcnQ7XHJcblx0fVxyXG5cclxuXHRyZWFkb25seSBkZWZhdWx0U29ydCA9IFt7IHByb3A6ICdwcm9wZXJ0aWVzLmNyZWF0ZWRBdCcsIGRpcjogJ2Rlc2MnIH1dO1xyXG5cclxuXHRkaXJlY3Rpb246IERpcmVjdGlvbiA9ICdydGwnO1xyXG5cdGlzUGFuZWxPcGVuZWQgPSBmYWxzZTtcclxuXHRyZWFkb25seSBkZWZhdWx0UGFnZVNpemVzID0gUEFHRV9TSVpFO1xyXG5cclxuXHRwcml2YXRlIF9pc0NvbmZpZ0NoYW5nZWQgPSBmYWxzZTtcclxuXHRwcml2YXRlIF90YWJsZUluaXRpYWxpemVkID0gZmFsc2U7XHJcblx0cHJpdmF0ZSBfcGFnZUNoYW5nZWQgPSBmYWxzZTtcclxuXHRwcml2YXRlIF9hY3RpdmVQYWdlOiBQYWdlRXZlbnQgPSB7XHJcblx0XHRwYWdlSW5kZXg6IDEsXHJcblx0XHRwYWdlU2l6ZTogMTAsXHJcblx0XHRsZW5ndGg6IDBcclxuXHR9O1xyXG5cclxuXHRwcml2YXRlIF9zb3J0VmFsdWU6IFRhYmxlU29ydE9wdGlvbnM7XHJcblxyXG5cdGVkaXRvclR5cGUgPSBOREZfRURJVE9SX1RZUEUuVEFCTEVTO1xyXG5cdC8qKlxyXG5cdCAqXHJcblx0ICovXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIF9maWx0ZXJzTWFwcGVyOiBGaWx0ZXJzTWFwcGVyU2VydmljZSxcclxuXHRcdHByaXZhdGUgX2R5bmFtaWNUYWJsZVNlcnZpY2U6IER5bmFtaWNUYWJsZVNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfbmdUYWJsZVNlcnZpY2U6IE5kZlRhYmxlU2VydmljZSxcclxuXHRcdHByaXZhdGUgX3RvYXN0clNlcnZpY2U6IEN1c3RvbVRvYXN0clNlcnZpY2UsXHJcblx0XHRwcml2YXRlIF9uZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlOiBOZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2dcclxuXHQpIHtcclxuXHRcdHN1cGVyKCk7XHJcblx0XHR0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZVxyXG5cdFx0XHQucGlwZShzdGFydFdpdGgoeyBsYW5nOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nIH0pLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHRcdHRoaXMuZGlyZWN0aW9uID0gcmVzLmxhbmcgPT09ICdhcicgPyAncnRsJyA6ICdsdHInO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuXHRcdGNvbnN0IHRhYmxlS2V5ID0gY2hhbmdlcy50YWJsZUtleT8uY3VycmVudFZhbHVlO1xyXG5cdFx0Y29uc3QgY29uZmlnID0gY2hhbmdlcy5jb25maWc/LmN1cnJlbnRWYWx1ZTtcclxuXHJcblx0XHRpZiAodGFibGVLZXkgJiYgY29uZmlnKSB7XHJcblx0XHRcdHRocm93IG5ldyBFcnJvcignWW91IGNhbm5vdCBzZXQgYm90aCB0YWJsZUtleSBhbmQgdGFibGVDb25maWcgYXQgdGhlIHNhbWUgdGltZS4nKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoY29uZmlnKSB7XHJcblx0XHRcdHRoaXMuX2FwcGx5VGFibGVDb25maWcoY29uZmlnKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGFibGVLZXkpIHtcclxuXHRcdFx0dGhpcy5fbG9hZFRhYmxlQ29uZmlnKHRhYmxlS2V5KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHRvZ2dsZVBhbmVsKCkge1xyXG5cdFx0dGhpcy5pc1BhbmVsT3BlbmVkID0gIXRoaXMuaXNQYW5lbE9wZW5lZDtcclxuXHR9XHJcblxyXG5cdG9uTG9hZChkYXRhOiBOdXhlb1BhZ2luYXRpb248YW55Pik6IHZvaWQge1xyXG5cdFx0dGhpcy5vbkxvYWRlZC5lbWl0KGRhdGEpO1xyXG5cdFx0aWYgKCF0aGlzLl90YWJsZUluaXRpYWxpemVkIHx8IHRoaXMuZmlsdGVyUmVsb2FkQ29uZmlnPy5zdHJhdGVneSA9PT0gJ25ldmVyJyB8fCB0aGlzLl9wYWdlQ2hhbmdlZCkge1xyXG5cdFx0XHR0aGlzLl9wYWdlQ2hhbmdlZCA9IGZhbHNlO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMuX2lzQ29uZmlnQ2hhbmdlZCB8fCB0aGlzLmZpbHRlclJlbG9hZENvbmZpZz8uc3RyYXRlZ3kgPT09ICdhbHdheXMnKSB7XHJcblx0XHRcdHRoaXMuX2FnZ3JlZ2F0aW9uc1N1Yi5uZXh0KGRhdGE/LmFnZ3JlZ2F0aW9ucyk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5maWx0ZXJSZWxvYWRDb25maWc/LnN0cmF0ZWd5ID09PSAnb25DaGFuZ2UnKSB7XHJcblx0XHRcdGNvbnN0IGFjdGl2YXRlZFF1ZXJ5ID0gdGhpcy5fYWN0aXZhdGVkQ3JpdGVyaWFTdWIuZ2V0VmFsdWUoKTtcclxuXHRcdFx0Y29uc3QgY3VycmVudFZhbHVlID0gYWN0aXZhdGVkUXVlcnk/LmN1cnJlbnRWYWx1ZSB8fCB7fTtcclxuXHRcdFx0Y29uc3QgcHJldmlvdXNWYWx1ZSA9IGFjdGl2YXRlZFF1ZXJ5Py5wcmV2aW91c1ZhbHVlIHx8IHt9O1xyXG5cclxuXHRcdFx0Y29uc3QgdXBkYXRlZEtleXMgPSBfLnVuaW9uKF8ua2V5cyhwcmV2aW91c1ZhbHVlKSwgXy5rZXlzKGN1cnJlbnRWYWx1ZSkpLmZpbHRlcihcclxuXHRcdFx0XHQoa2V5KSA9PiAhXy5pc0VxdWFsKHByZXZpb3VzVmFsdWVba2V5XSwgY3VycmVudFZhbHVlW2tleV0pXHJcblx0XHRcdCk7XHJcblxyXG5cdFx0XHRjb25zdCB0cmlnZ2VyS2V5cyA9IHRoaXMuZmlsdGVyUmVsb2FkQ29uZmlnLnRyaWdnZXJGaWVsZHMgfHwgW107XHJcblx0XHRcdGNvbnN0IHNob3VsZFJlbG9hZCA9IHRyaWdnZXJLZXlzLnNvbWUoKGtleSkgPT4gdXBkYXRlZEtleXMuaW5jbHVkZXMoa2V5KSk7XHJcblx0XHRcdGlmIChzaG91bGRSZWxvYWQpIHtcclxuXHRcdFx0XHR0aGlzLl9hZ2dyZWdhdGlvbnNTdWIubmV4dChkYXRhPy5hZ2dyZWdhdGlvbnMpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRvbkluaXRpYWxpemUoZGF0YTogTnV4ZW9QYWdpbmF0aW9uPGFueT4pOiB2b2lkIHtcclxuXHRcdHRoaXMuX2FnZ3JlZ2F0aW9uc1N1Yi5uZXh0KGRhdGE/LmFnZ3JlZ2F0aW9ucyk7XHJcblx0XHR0aGlzLl90YWJsZUluaXRpYWxpemVkID0gdHJ1ZTtcclxuXHRcdHRoaXMuX2lzQ29uZmlnQ2hhbmdlZCA9IGZhbHNlO1xyXG5cdFx0dGhpcy5vbkluaXRpYWxpemVkLmVtaXQoZGF0YSk7XHJcblx0fVxyXG5cclxuXHRjb2x1bW5zQ2hhbmdlZChjb2x1bW5zOiBUYWJsZUNvbHVtbkNvbmZpZ1tdKSB7XHJcblx0XHR0aGlzLl9kaXNwbGF5ZWRDb2x1bW5zU3ViLm5leHQoY29sdW1ucyk7XHJcblx0fVxyXG5cclxuXHRzb3J0Q2hhbmdlZChzb3J0OiBTb3J0VGFibGVJdGVtKSB7XHJcblx0XHR0aGlzLl9zb3J0VmFsdWUgPSB7IHNvcnRCeTogc29ydC52YWx1ZSwgc29ydE9yZGVyOiBzb3J0LmRpcmVjdGlvbiB9O1xyXG5cdFx0dGhpcy5fc29ydE9wdGlvblN1Yi5uZXh0KHRoaXMuX3NvcnRWYWx1ZSk7XHJcblx0fVxyXG5cclxuXHRtb2RlQ2hhbmdlZChtb2RlOiBUYWJsZVZpZXdNb2RlKSB7XHJcblx0XHR0aGlzLl92aWV3TW9kZVN1Yi5uZXh0KG1vZGUpO1xyXG5cdH1cclxuXHJcblx0b25Tb3J0Q2hhbmdlZChzb3J0OiBUYWJsZVNvcnRPcHRpb25zKSB7XHJcblx0XHR0aGlzLl9zb3J0VmFsdWUgPSBzb3J0O1xyXG5cdFx0dGhpcy5vblNvcnQuZW1pdChzb3J0KTtcclxuXHR9XHJcblxyXG5cdGV4cG9ydFRhYmxlKHR5cGU6IEV4cG9ydFR5cGUpIHtcclxuXHRcdGNvbnN0IHJlcXVlc3QgPSBfLmNsb25lRGVlcCh0aGlzLmV4cG9ydFRhYmxlQ29uZmlnPy5yZXF1ZXN0KTtcclxuXHRcdGlmICghcmVxdWVzdCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRjb25zdCBjb2x1bW5zID0gdGhpcy5fZGlzcGxheWVkQ29sdW1uc1N1Yi5nZXRWYWx1ZSgpO1xyXG5cdFx0Y29uc3QgZmllbGRzID0gY29sdW1ucy5tYXAoKGNvbCkgPT4gY29sLmhlYWRlckNsYXNzIHx8IGNvbD8uZmlsZWRLZXkpO1xyXG5cdFx0Y29uc3QgaGVhZGVycyA9IGNvbHVtbnMubWFwKChjb2wpID0+ICh0aGlzLnRhYmxlQ29uZmlnLnByZWZpeCB8fCAnJykgKyBjb2wubmFtZSk7XHJcblxyXG5cdFx0Y29uc3QgY3JpdGVyaWEgPSB0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5nZXRWYWx1ZSgpO1xyXG5cclxuXHRcdHJlcXVlc3QucGFyYW1zID0gT2JqZWN0LmFzc2lnbihcclxuXHRcdFx0e30sXHJcblx0XHRcdGNyaXRlcmlhLnBhcmFtcyxcclxuXHRcdFx0dGhpcy5fc29ydFZhbHVlIHx8IHt9LFxyXG5cdFx0XHR0aGlzLnRhYmxlQ29uZmlnPy5xdWlja0ZpbHRlcnMgPyB7IHF1aWNrRmlsdGVyczogdGhpcy50YWJsZUNvbmZpZy5xdWlja0ZpbHRlcnMgfSA6IHt9LFxyXG5cdFx0XHRyZXF1ZXN0LnBhcmFtc1xyXG5cdFx0KTtcclxuXHJcblx0XHRjb25zdCBibG9iTmFtZUtleSA9IHRoaXMuZXhwb3J0VGFibGVDb25maWc/LmJsb2JOYW1lO1xyXG5cdFx0Y29uc3QgcGF5bG9hZDogTmRmRXhwb3J0UGF5bG9hZCA9IHtcclxuXHRcdFx0cHJlZGljYXRlTGlzdDogY3JpdGVyaWEucGF5bG9hZC5wcmVkaWNhdGVMaXN0IHx8IFtdLFxyXG5cdFx0XHRyZXBvcnRNZXRhRGF0YToge1xyXG5cdFx0XHRcdGJsb2JOYW1lOiAnJyxcclxuXHRcdFx0XHRkb2NUeXBlTmFtZTogdGhpcy5leHBvcnRUYWJsZUNvbmZpZy5kb2NUeXBlTmFtZSxcclxuXHRcdFx0XHRmaWxlVHlwZTogdHlwZSxcclxuXHRcdFx0XHRsb2NhbGU6IHRoaXMuZXhwb3J0VGFibGVDb25maWc/LmxvY2FsZSB8fCB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nLFxyXG5cdFx0XHRcdGZpZWxkczogdGhpcy5leHBvcnRUYWJsZUNvbmZpZz8uZmllbGRzIHx8IGZpZWxkcyxcclxuXHRcdFx0XHRoZWFkZXJzOiBbXVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cclxuXHRcdGZvcmtKb2luKHtcclxuXHRcdFx0YXI6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuZ2V0VHJhbnNsYXRpb24oJ2FyJyksXHJcblx0XHRcdGVuOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmdldFRyYW5zbGF0aW9uKCdlbicpXHJcblx0XHR9KVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRzd2l0Y2hNYXAoKHRyYW5zbGF0aW9ucykgPT4ge1xyXG5cdFx0XHRcdFx0Y29uc3QgY3VycmVudFRyYW5zbGF0aW9ucyA9IHRyYW5zbGF0aW9uc1t0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nXTtcclxuXHRcdFx0XHRcdHBheWxvYWQucmVwb3J0TWV0YURhdGEuaGVhZGVycyA9IGhlYWRlcnMubWFwKChjb2wpID0+IF8uZ2V0KGN1cnJlbnRUcmFuc2xhdGlvbnMsIGNvbCkpO1xyXG5cdFx0XHRcdFx0cGF5bG9hZC5yZXBvcnRNZXRhRGF0YS5ibG9iTmFtZSA9IF8uZ2V0KHRyYW5zbGF0aW9uc1snYXInXSwgYmxvYk5hbWVLZXkpO1xyXG5cdFx0XHRcdFx0cGF5bG9hZC5yZXBvcnRNZXRhRGF0YS5ibG9iTmFtZUVuID0gXy5nZXQodHJhbnNsYXRpb25zWydlbiddLCBibG9iTmFtZUtleSk7XHJcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5fbmdUYWJsZVNlcnZpY2UuZXhwb3J0VGFibGUocmVxdWVzdCwgcGF5bG9hZCkucGlwZShcclxuXHRcdFx0XHRcdFx0Y2F0Y2hFcnJvcigoXykgPT4ge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuX3RvYXN0clNlcnZpY2UuZXJyb3IoJ1RBQkxFLkVYUE9SVC5SZXF1ZXN0RXJyb3InKTtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gb2YoZmFsc2UpO1xyXG5cdFx0XHRcdFx0XHR9KVxyXG5cdFx0XHRcdFx0KTtcclxuXHRcdFx0XHR9KSxcclxuXHJcblx0XHRcdFx0ZmlsdGVyKEJvb2xlYW4pLFxyXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHJlczogYm9vbGVhbikgPT4ge1xyXG5cdFx0XHRcdGlmIChyZXMpIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0clNlcnZpY2Uuc3VjY2VzcygnVEFCTEUuRVhQT1JULnJlcXVlc3RTdWNjZXNzJyk7XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRoaXMuX3RvYXN0clNlcnZpY2UuZXJyb3IoJ1RBQkxFLkVYUE9SVC5yZXF1ZXN0RXJyb3InKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdH1cclxuXHJcblx0ZmlsdGVyQ2hhbmdlZChjcml0ZXJpYTogUmVjb3JkPHN0cmluZywgYW55Pikge1xyXG5cdFx0dGhpcy5fdHJpZ2dlckNyaXRlcmlhQ2hhbmdlcyhjcml0ZXJpYSk7XHJcblx0XHRpZiAodGhpcy5maWx0ZXJzQ29uZmlnPy5tb2RlICE9PSAncGF5bG9hZCcpIHtcclxuXHRcdFx0Y29uc3QgaXNTdHJpbmdpZnlQYXJhbXMgPSB0aGlzLmZpbHRlcnNDb25maWc/LnN0cmluZ2lmeVBhcmFtcztcclxuXHRcdFx0Y29uc3QgdmFsdWUgPSAhaXNTdHJpbmdpZnlQYXJhbXMgPyBjcml0ZXJpYSA6IHRoaXMuX3N0cmluZ2lmeVZhbHVlcyhjcml0ZXJpYSk7XHJcblx0XHRcdHRoaXMuX2R5bmFtaWNUYWJsZVNlcnZpY2UucmVmcmVzaERhdGEubmV4dCh2YWx1ZSk7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCBwYXlsb2FkID0gdGhpcy5fZmlsdGVyc01hcHBlci5wcmVwYXJlUGF5bG9hZCh0aGlzLmZpbHRlcnNDb25maWcuZmllbGRzLCBjcml0ZXJpYSk7XHJcblx0XHR0aGlzLl9jdXN0b21Dcml0ZXJpYVN1Yi5uZXh0KHBheWxvYWQpO1xyXG5cdH1cclxuXHJcblx0b25UZXh0U2VhcmNoKHRleHQ6IHN0cmluZykge1xyXG5cdFx0aWYgKCF0aGlzLnRleHRTZWFyY2hDb25maWc/LmZpZWxkS2V5IHx8IHR5cGVvZiB0ZXh0ICE9PSAnc3RyaW5nJykge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCF0ZXh0KSB7XHJcblx0XHRcdHRoaXMub25DbGVhclNlYXJjaCgpO1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLl90ZXh0U2VhcmNoU3ViLm5leHQodGV4dCk7XHJcblx0fVxyXG5cclxuXHRvbkNsZWFyU2VhcmNoKCkge1xyXG5cdFx0dGhpcy5fdGV4dFNlYXJjaFN1Yi5uZXh0KG51bGwpO1xyXG5cdH1cclxuXHJcblx0b3BlblNlYXJjaE1vZGFsKCkge1xyXG5cdFx0Y29uc3QgX2RpYWxvZ0NvbmZpZyA9IHRoaXMudGV4dFNlYXJjaENvbmZpZz8uc3VmZml4Py5kaWFsb2c7XHJcblx0XHRpZiAoIV9kaWFsb2dDb25maWcpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgeyBvcHRpb25zLCAuLi5kYXRhIH0gPSBfZGlhbG9nQ29uZmlnO1xyXG5cdFx0dGhpcy5fZGlhbG9nLm9wZW48SHRtbERpYWxvZ0NvbXBvbmVudCwgSHRtbERpYWxvZ0NvbmZpZz4oSHRtbERpYWxvZ0NvbXBvbmVudCwge1xyXG5cdFx0XHRwYW5lbENsYXNzOiAncC0wJyxcclxuXHRcdFx0bWluV2lkdGg6ICdtaW4oNTAwcHgsNjB2dyknLFxyXG5cdFx0XHRkaXJlY3Rpb246IHRoaXMuZGlyZWN0aW9uLFxyXG5cdFx0XHQuLi5vcHRpb25zLFxyXG5cdFx0XHRkYXRhXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG9uUGFnZUNoYW5nZWQocGFnZTogUGFnZUV2ZW50KSB7XHJcblx0XHR0aGlzLl9wYWdlQ2hhbmdlZCA9IHRoaXMuX2FjdGl2ZVBhZ2UucGFnZUluZGV4ICE9PSBwYWdlLnBhZ2VJbmRleCB8fCB0aGlzLl9hY3RpdmVQYWdlLnBhZ2VTaXplICE9PSBwYWdlLnBhZ2VTaXplO1xyXG5cdFx0aWYgKHRoaXMuX3BhZ2VDaGFuZ2VkKSB7XHJcblx0XHRcdHRoaXMub25QYWdlLmVtaXQocGFnZSk7XHJcblx0XHRcdHRoaXMuX2FjdGl2ZVBhZ2UgPSBwYWdlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfZmlsdGVyQnlWaXNpYmlsaXR5KGNvbHVtbnM6IFRhYmxlQ29sdW1uQ29uZmlnW10pOiBUYWJsZUNvbHVtbkNvbmZpZ1tdIHtcclxuXHRcdHJldHVybiBjb2x1bW5zLmZpbHRlcigoY29sKSA9PiBjb2wuZGVmYXVsdFZpc2libGUpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcHJlcGFyZVNlYXJjaChbc2VhcmNoLCBmaWx0ZXJzXTogW1xyXG5cdFx0c3RyaW5nLFxyXG5cdFx0e1xyXG5cdFx0XHRwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG5cdFx0XHRwYXlsb2FkPzogeyBwcmVkaWNhdGVMaXN0OiBhbnlbXSB9ICYgUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHRcdH1cclxuXHRdKTogYW55IHtcclxuXHRcdHtcclxuXHRcdFx0Y29uc3QgeyBwcmVkaWNhdGVMaXN0IH0gPSBmaWx0ZXJzPy5wYXlsb2FkIHx8IHsgcHJlZGljYXRlTGlzdDogW10gfTtcclxuXHRcdFx0Y29uc3QgX2tleSA9IHRoaXMudGV4dFNlYXJjaENvbmZpZz8uZmllbGRLZXk7XHJcblx0XHRcdGNvbnN0IHNlYXJjaEluZGV4ID0gcHJlZGljYXRlTGlzdC5maW5kSW5kZXgoKGl0bSkgPT4gaXRtLm5hbWUgPT09IF9rZXkpO1xyXG5cdFx0XHRpZiAoc2VhcmNoICYmIF9rZXkpIHtcclxuXHRcdFx0XHRpZiAoc2VhcmNoSW5kZXggPj0gMCkge1xyXG5cdFx0XHRcdFx0cHJlZGljYXRlTGlzdFtzZWFyY2hJbmRleF0udmFsdWUgPSBgJyR7c2VhcmNofSdgO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRwcmVkaWNhdGVMaXN0LnB1c2goe1xyXG5cdFx0XHRcdFx0XHRuYW1lOiBfa2V5LFxyXG5cdFx0XHRcdFx0XHRvcGVyYXRvcjogdGhpcy50ZXh0U2VhcmNoQ29uZmlnPy5vcGVyYXRvciB8fCBDT01QQVJJU09OX09QRVJBVE9SLmVxdWFscyxcclxuXHRcdFx0XHRcdFx0dmFsdWU6IGAnJHtzZWFyY2h9J2BcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSBlbHNlIGlmIChzZWFyY2hJbmRleCA+PSAwKSB7XHJcblx0XHRcdFx0cHJlZGljYXRlTGlzdC5zcGxpY2Uoc2VhcmNoSW5kZXgpO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiBfLmNsb25lRGVlcCh7IC4uLmZpbHRlcnMgfSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9zdHJpbmdpZnlWYWx1ZXMoY3JpdGVyaWE6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcclxuXHRcdHJldHVybiBPYmplY3QuZW50cmllcyhjcml0ZXJpYSkucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xyXG5cdFx0XHRhY2Nba2V5XSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gSlNPTi5zdHJpbmdpZnkodmFsdWUpIDogdmFsdWU7XHJcblx0XHRcdHJldHVybiBhY2M7XHJcblx0XHR9LCB7fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF90cmlnZ2VyQ3JpdGVyaWFDaGFuZ2VzKGNyaXRlcmlhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XHJcblx0XHRpZiAodGhpcy5fdGFibGVJbml0aWFsaXplZCkge1xyXG5cdFx0XHR0aGlzLm9uUXVlcnlDaGFuZ2UuZW1pdChjcml0ZXJpYSk7XHJcblx0XHR9XHJcblx0XHRjb25zdCBhY3RpdmF0ZWRRdWVyeSA9IHsgLi4udGhpcy5fYWN0aXZhdGVkQ3JpdGVyaWFTdWIuZ2V0VmFsdWUoKSB9O1xyXG5cdFx0Y29uc3QgcHJldmlvdXNWYWx1ZSA9IGFjdGl2YXRlZFF1ZXJ5Py5jdXJyZW50VmFsdWU7XHJcblx0XHR0aGlzLl9hY3RpdmF0ZWRDcml0ZXJpYVN1Yi5uZXh0KHtcclxuXHRcdFx0cHJldmlvdXNWYWx1ZTogcHJldmlvdXNWYWx1ZSxcclxuXHRcdFx0Y3VycmVudFZhbHVlOiBjcml0ZXJpYVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cdC8qKlxyXG5cdCAqIEBkZXNjcmlwdGlvblxyXG5cdCAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gc2V0IHRoZSB0YWJsZSBjb25maWd1cmF0aW9uLlxyXG5cdCAqIEBwYXJhbSBjb25maWcgTmRmVGFibGVDb25maWdcclxuXHQgKi9cclxuXHRwcml2YXRlIF9hcHBseVRhYmxlQ29uZmlnKGNvbmZpZzogTmRmVGFibGVDb25maWcpOiB2b2lkIHtcclxuXHRcdHRoaXMuX3RhYmxlQ29uZmlnU3ViLm5leHQoY29uZmlnKTtcclxuXHRcdHRoaXMuaXNQYW5lbE9wZW5lZCA9IGNvbmZpZz8ub3B0aW9ucz8uZmlsdGVycz8ucGFuZWw/LnZpc2libGUgPz8gdHJ1ZTtcclxuXHRcdHRoaXMuX2lzQ29uZmlnQ2hhbmdlZCA9ICEhY29uZmlnO1xyXG5cdFx0aWYgKGNvbmZpZy5jb2x1bW5zKSB7XHJcblx0XHRcdHRoaXMuX2Rpc3BsYXllZENvbHVtbnNTdWIubmV4dCh0aGlzLl9maWx0ZXJCeVZpc2liaWxpdHkoY29uZmlnLmNvbHVtbnMpKTtcclxuXHRcdH1cclxuXHRcdGlmIChjb25maWcuc29ydGluZ0J5KSB7XHJcblx0XHRcdHRoaXMuX3NvcnRWYWx1ZSA9IGNvbmZpZy5zb3J0aW5nQnk7XHJcblx0XHRcdHRoaXMuX3NvcnRPcHRpb25TdWIubmV4dChjb25maWcuc29ydGluZ0J5KTtcclxuXHRcdH1cclxuXHRcdGlmIChjb25maWc/Lm9wdGlvbnM/LnRhYmxlTW9kZT8ubW9kZSkge1xyXG5cdFx0XHR0aGlzLl92aWV3TW9kZVN1Yi5uZXh0KGNvbmZpZy5vcHRpb25zLnRhYmxlTW9kZS5tb2RlKTtcclxuXHRcdH1cclxuXHRcdGlmIChjb25maWcucGFnZVNpemUpIHtcclxuXHRcdFx0dGhpcy5fYWN0aXZlUGFnZS5wYWdlU2l6ZSA9IGNvbmZpZy5wYWdlU2l6ZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEBwcml2YXRlXHJcblx0ICogQGRlc2NyaXB0aW9uIExvYWRzIHRoZSB0YWJsZSBjb25maWd1cmF0aW9uIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBrZXkgYW5kIGFwcGxpZXMgaXQuXHJcblx0ICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgdXNlZCB0byBmZXRjaCB0aGUgdGFibGUgY29uZmlndXJhdGlvbi5cclxuXHQgKi9cclxuXHRwcml2YXRlIF9sb2FkVGFibGVDb25maWcoa2V5OiBzdHJpbmcpIHtcclxuXHRcdHRoaXMuX25kZlRhYmxlQ29uZmlndXJhdGlvblNlcnZpY2VcclxuXHRcdFx0LmdldFRhYmxlQ29uZmlndXJhdGlvbihrZXksIHRoaXMuY29uZmlnUGF0aClcclxuXHRcdFx0LnBpcGUoXHJcblx0XHRcdFx0c3dpdGNoTWFwKChjb25maWcpID0+IHtcclxuXHRcdFx0XHRcdGlmICh0aGlzLmNvbmZpZ1RyYW5zZm9ybWVyICYmIF8uaXNGdW5jdGlvbih0aGlzLmNvbmZpZ1RyYW5zZm9ybWVyKSkge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5jb25maWdUcmFuc2Zvcm1lcihjb25maWcpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIG9mKGNvbmZpZyk7XHJcblx0XHRcdFx0fSksXHJcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcblx0XHRcdClcclxuXHRcdFx0LnN1YnNjcmliZSgoY29uZmlnKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5fYXBwbHlUYWJsZUNvbmZpZyhjb25maWcpO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdlxyXG5cdCpuZ0lmPVwidGFibGVDb25maWdcIlxyXG5cdGNsYXNzPVwibmRmLXRhYmxlX19jb250YWluZXJcIlxyXG5cdFtjbGFzcy5wYW5lbC1vcGVuZWRdPVwiaXNQYW5lbE9wZW5lZCAmJiBmaWx0ZXJzQ29uZmlnXCJcclxuXHRbZGlyXT1cImRpcmVjdGlvblwiXHJcblx0bmRmRmx1aWRIZWlnaHRcclxuXHRjc3NWYXI9XCItLW5kZi10YWJsZS1oZWlnaHRcIlxyXG5cdFtjYWxjdWxhdGVdPVwiYXV0b0NhbGN1bGF0ZUhlaWdodFwiXHJcbj5cclxuXHQ8ZGl2IGNsYXNzPVwibmRmLXRhYmxlX19wYW5lbFwiICpuZ0lmPVwiZmlsdGVyc0NvbmZpZz8uZmllbGRzXCI+XHJcblx0XHQ8YXBwLWZpbHRlcnMtcGFuZWxcclxuXHRcdFx0W2ZpZWxkc109XCJmaWx0ZXJzQ29uZmlnLmZpZWxkc1wiXHJcblx0XHRcdFthZ2dyZWdhdGlvbnNdPVwiYWdncmVnYXRpb25zJCB8IGFzeW5jXCJcclxuXHRcdFx0KGZpbHRlckNoYW5nZWQpPVwiZmlsdGVyQ2hhbmdlZCgkZXZlbnQpXCJcclxuXHRcdFx0W2FjdGl2ZVF1ZXJ5XT1cImFjdGl2ZVF1ZXJ5XCJcclxuXHRcdFx0Y2xhc3M9XCJuZGYtdGFibGVfX2ZpbHRlcnNcIlxyXG5cdFx0XHRbY3VzdG9tVGVtcGxhdGVSZWZdPVwiZmlsdGVyQ3VzdG9tVGVtcGxhdGVcIlxyXG5cdFx0PjwvYXBwLWZpbHRlcnMtcGFuZWw+XHJcblx0PC9kaXY+XHJcblx0PGRpdiBjbGFzcz1cIm5kZi10YWJsZV9fY29udGVudFwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cIm5kZi10YWJsZV9faGVhZGVyIGZsZXhcIj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cIm5kZi10YWJsZV9faGVhZGVyX19jdXN0b20tYWN0aW9ucyBmbGV4IGdhcC14LTQgaXRlbXMtY2VudGVyXCI+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwic2VhcmNoVGFibGVUZW1wbGF0ZSB8fCBkZWZhdWx0QWN0aW9uVGVtcGxhdGVcIlxyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcclxuXHRcdFx0XHRcdFx0JGltcGxpY2l0OiB0YWJsZUNvbmZpZyxcclxuXHRcdFx0XHRcdFx0cGFuZWxPcGVuZWQ6IGlzUGFuZWxPcGVuZWQsXHJcblx0XHRcdFx0XHRcdHRvZ2dsZVBhbmVsOiB0b2dnbGVQYW5lbCxcclxuXHRcdFx0XHRcdFx0b3Blbk1vZGFsOiBvcGVuU2VhcmNoTW9kYWwsXHJcblx0XHRcdFx0XHRcdHNlYXJjaDogb25UZXh0U2VhcmNoLFxyXG5cdFx0XHRcdFx0XHRjbGVhcjogb25DbGVhclNlYXJjaFxyXG5cdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0PjwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgI2RlZmF1bHRBY3Rpb25UZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uICpuZ0lmPVwiaXNQYW5lbFRvZ2dsZUF2YWlsYWJsZVwiIGNsYXNzPVwidG9nZ2xlLWJ1dHRvblwiIChjbGljayk9XCJ0b2dnbGVQYW5lbCgpXCI+XHJcblx0XHRcdFx0XHRcdDxtYXQtaWNvbj4gZmlsdGVyX2FsdDwvbWF0LWljb24+XHJcblx0XHRcdFx0XHQ8L2J1dHRvbj5cclxuXHRcdFx0XHRcdDxhcHAtdGV4dC1zZWFyY2hcclxuXHRcdFx0XHRcdFx0Km5nSWY9XCJ0ZXh0U2VhcmNoQ29uZmlnXCJcclxuXHRcdFx0XHRcdFx0W3NlYXJjaENvbmZpZ109XCJ0ZXh0U2VhcmNoQ29uZmlnXCJcclxuXHRcdFx0XHRcdFx0KG9wZW5Nb2RhbCk9XCJvcGVuU2VhcmNoTW9kYWwoKVwiXHJcblx0XHRcdFx0XHRcdFtzZWFyY2hdPVwidGV4dFNlYXJjaCQgfCBhc3luY1wiXHJcblx0XHRcdFx0XHRcdChzZWFyY2hDaGFuZ2UpPVwib25UZXh0U2VhcmNoKCRldmVudClcIlxyXG5cdFx0XHRcdFx0XHQoY2xlYXIpPVwib25DbGVhclNlYXJjaCgpXCJcclxuXHRcdFx0XHRcdD48L2FwcC10ZXh0LXNlYXJjaD5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PGRpdiBjbGFzcz1cIm5kZi10YWJsZV9faGVhZGVyX19hY3Rpb25zIGZsZXggZ2FwLXgtNCBpdGVtcy1jZW50ZXJcIj5cclxuXHRcdFx0XHQ8YXBwLWVkaXRvci1idXR0b25cclxuXHRcdFx0XHRcdCpuZ0lmPVwianNvbkVkaXRvckVuYWJsZWQgJiYgKHRhYmxlS2V5IHx8IHRhYmxlQ29uZmlnPy5rZXkpXCJcclxuXHRcdFx0XHRcdFtrZXldPVwidGFibGVLZXkgfHwgdGFibGVDb25maWc/LmtleVwiXHJcbiAgICAgICAgICBbdHlwZV09XCJlZGl0b3JUeXBlXCJcclxuXHRcdFx0XHQ+PC9hcHAtZWRpdG9yLWJ1dHRvbj5cclxuXHRcdFx0XHQ8bmRmLXRhYmxlLWV4cG9ydFxyXG5cdFx0XHRcdFx0Km5nSWY9XCJleHBvcnRUYWJsZUNvbmZpZz8uZW5hYmxlZFwiXHJcblx0XHRcdFx0XHRbY29uZmlnXT1cImV4cG9ydFRhYmxlQ29uZmlnXCJcclxuXHRcdFx0XHRcdChvbkV4cG9ydCk9XCJleHBvcnRUYWJsZSgkZXZlbnQpXCJcclxuXHRcdFx0XHQ+PC9uZGYtdGFibGUtZXhwb3J0PlxyXG5cclxuXHRcdFx0XHQ8dGFibGUtc29ydGluZy1saXN0XHJcblx0XHRcdFx0XHQqbmdJZj1cIiEhc29ydExpc3Q/Lmxlbmd0aFwiXHJcblx0XHRcdFx0XHRbc29ydExpc3RdPVwic29ydExpc3RcIlxyXG5cdFx0XHRcdFx0KHNvcnRDaGFuZ2VkKT1cInNvcnRDaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0XHRcdD48L3RhYmxlLXNvcnRpbmctbGlzdD5cclxuXHRcdFx0XHQ8dGFibGUtY29sdW1ucy10b2dnbGVyXHJcblx0XHRcdFx0XHQqbmdJZj1cImNvbHVtblRvZ2dsZVwiXHJcblx0XHRcdFx0XHRbY29sdW1uc109XCJ0YWJsZUNvbmZpZy5jb2x1bW5zXCJcclxuXHRcdFx0XHRcdFtwcmVmaXhdPVwidGFibGVDb25maWcucHJlZml4XCJcclxuXHRcdFx0XHRcdFtzb3J0YWJsZV09XCJjb2x1bW5zT3B0aW9ucz8uc29ydGFibGVcIlxyXG5cdFx0XHRcdFx0KGNvbHVtbnNDaGFuZ2VkKT1cImNvbHVtbnNDaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0XHRcdD48L3RhYmxlLWNvbHVtbnMtdG9nZ2xlcj5cclxuXHRcdFx0XHQ8bW9kZS10b2dnbGVyXHJcblx0XHRcdFx0XHQqbmdJZj1cInRhYmxlTW9kZT8udG9nZ2xlTW9kZVwiXHJcblx0XHRcdFx0XHRbbW9kZV09XCJ0YWJsZU1vZGUubW9kZSB8fCAnbGlzdCdcIlxyXG5cdFx0XHRcdFx0W21vZGVzTGlzdF09XCJ0YWJsZU1vZGU/LmF2YWlsYWJsZU1vZGVcIlxyXG5cdFx0XHRcdFx0KG1vZGVDaGFuZ2VkKT1cIm1vZGVDaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0XHRcdD48L21vZGUtdG9nZ2xlcj5cclxuXHRcdFx0XHQ8bmctY29udGFpbmVyXHJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJhY3Rpb25zVGFibGVUZW1wbGF0ZVwiXHJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xyXG5cdFx0XHRcdFx0XHQkaW1wbGljaXQ6IHRhYmxlQ29uZmlnLFxyXG5cdFx0XHRcdFx0XHRwYW5lbE9wZW5lZDogaXNQYW5lbE9wZW5lZCxcclxuXHRcdFx0XHRcdFx0dG9nZ2xlUGFuZWw6IHRvZ2dsZVBhbmVsLFxyXG5cdFx0XHRcdFx0XHRvcGVuTW9kYWw6IG9wZW5TZWFyY2hNb2RhbCxcclxuXHRcdFx0XHRcdFx0c2VhcmNoOiBvblRleHRTZWFyY2gsXHJcblx0XHRcdFx0XHRcdGNsZWFyOiBvbkNsZWFyU2VhcmNoXHJcblx0XHRcdFx0XHR9XCJcclxuXHRcdFx0XHQ+PC9uZy1jb250YWluZXI+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9kaXY+XHJcblxyXG5cdFx0PGN0cy1keW5hbWljLXRhYmxlXHJcblx0XHRcdCpuZ0lmPVwiIXRhYmxlQ29uZmlnLmlzRGF0YVByb3ZpZGVkXCJcclxuXHRcdFx0Y2xhc3M9XCJuZGYtdGFibGVfX3RhYmxlIHRhYmxlLXN0eWxlXCJcclxuXHRcdFx0W2NvbHVtbnNdPVwiZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luY1wiXHJcblx0XHRcdFtyZXNwb25zaXZlQ29sdW1uc109XCJkaXNwbGF5ZWRDb2x1bW5zJCB8IGFzeW5jXCJcclxuXHRcdFx0W2Z1bGxXaWR0aF09XCJ0YWJsZUNvbmZpZy5mdWxsV2lkdGggfHwgJ2F1dG8nXCJcclxuXHRcdFx0W3BhZ2VTaXplXT1cInRhYmxlQ29uZmlnLnBhZ2VTaXplIHx8IDEwXCJcclxuXHRcdFx0W3BhZ2VOdW1iZXJdPVwidGFibGVDb25maWcucGFnZU51bWJlciB8fCAxXCJcclxuXHRcdFx0W3BhZ2VQcm92aWRlcl09XCJ0YWJsZUNvbmZpZy5wYWdlUHJvdmlkZXJcIlxyXG5cdFx0XHRbY3VzdG9tVXJsXT1cInRhYmxlQ29uZmlnLmN1c3RvbVVybFwiXHJcblx0XHRcdFtxdWlja0ZpbHRlcl09XCJ0YWJsZUNvbmZpZy5xdWlja0ZpbHRlcnMgPyB7IHF1aWNrRmlsdGVyczogdGFibGVDb25maWcucXVpY2tGaWx0ZXJzIH0gOiB1bmRlZmluZWRcIlxyXG5cdFx0XHRbZGVmdWx0U29ydF09XCJ0YWJsZUNvbmZpZy5kZWZhdWx0U29ydCB8fCBkZWZhdWx0U29ydFwiXHJcblx0XHRcdFtzb3J0aW5nQnldPVwic29ydE9wdGlvbiQgfCBhc3luY1wiXHJcblx0XHRcdFtlbnRpdHlUeXBlXT1cIidhbGwnXCJcclxuXHRcdFx0W2ZpZWxkc109XCJ0YWJsZUNvbmZpZy5maWVsZHNcIlxyXG5cdFx0XHRbdGFibGVNb2RlXT1cInZpZXdNb2RlJCB8IGFzeW5jXCJcclxuXHRcdFx0W2NvbXBvbmVudE5hbWVdPVwidGFibGVNb2RlPy5bJ2NvbXBvbmVudE5hbWUnXVwiXHJcblx0XHRcdFtyYW5nZV09XCJ0YWJsZUNvbmZpZz8ucmFuZ2VcIlxyXG5cdFx0XHRbaXNTZWFyY2hQYWdlXT1cInRhYmxlQ29uZmlnPy5pc1NlYXJjaFBhZ2VcIlxyXG5cdFx0XHRbbXVsdGlTZWxlY3RSb3dzXT1cInRhYmxlQ29uZmlnPy5tdWx0aVNlbGVjdFJvd3NcIlxyXG5cdFx0XHRbY3VzdG9tRmlyc3RSb3ddPVwidGFibGVDb25maWc/LmN1c3RvbUZpcnN0Um93XCJcclxuXHRcdFx0W2hpZ2hsaWdodFNlbGVjdGVkQ2FyZF09XCJ0YWJsZUNvbmZpZz8uaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkXCJcclxuXHRcdFx0W3Nob3dBY3Rpb25zQXNNZW51XT1cInRhYmxlQ29uZmlnPy5zaG93QWN0aW9uc0FzTWVudVwiXHJcblx0XHRcdFtmaWx0ZXJQYXJhbXNdPVwidGFibGVDb25maWc/LmZpbHRlclBhcmFtc1wiXHJcblx0XHRcdFtmb3JtYXRdPVwidGFibGVDb25maWc/LmZvcm1hdCB8fCAnTU1NTSBkLCB5J1wiXHJcblx0XHRcdFtwYWdlU2l6ZXNdPVwidGFibGVDb25maWc/LnBhZ2VTaXplcyB8fCBkZWZhdWx0UGFnZVNpemVzXCJcclxuXHRcdFx0W3ByZWZpeF09XCJ0YWJsZUNvbmZpZy5wcmVmaXggfHwgJydcIlxyXG5cdFx0XHRbcm93Q3Vyc29yXT1cInRydWVcIlxyXG5cdFx0XHRbcXVlcnlQYXJhbV09XCJ0YWJsZUNvbmZpZy5xdWVyeVBhcmFtXCJcclxuXHRcdFx0W2N1c3RvbUZpbHRlcnNdPVwic2VhcmNoQW5kRmlsdGVycyQgfCBhc3luY1wiXHJcblx0XHRcdFt0YWJsZUFjdGlvbnNdPVwidGFibGVDb25maWcudGFibGVBY3Rpb25zXCJcclxuICAgICAgW3JlcXVlc3RBY3Rpb25zXT1cInRhYmxlQ29uZmlnPy5yZXF1ZXN0QWN0aW9uc1wiXHJcblx0XHRcdFtoZWFkZXJzXT1cInRhYmxlQ29uZmlnLmhlYWRlcnNcIlxyXG5cdFx0XHQob25Sb3dTZWxlY3RlZCk9XCJvblJvd1NlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChvblJvd0luZGV4U2VsZWN0ZWQpPVwib25Sb3dJbmRleFNlbGVjdGVkLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChhY3Rpb25PblJvdyk9XCJhY3Rpb25PblJvdy5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25HZXR0aW5nRGF0YSk9XCJvbkdldHRpbmdEYXRhLmVtaXQoJGV2ZW50KVwiXHJcblx0XHRcdChvbkxvYWQpPVwib25Mb2FkKCRldmVudClcIlxyXG5cdFx0XHQob25Jbml0aWFsaXplKT1cIm9uSW5pdGlhbGl6ZSgkZXZlbnQpXCJcclxuXHRcdFx0KG9uTXVsdGlSb3dTZWxlY3RlZCk9XCJvbk11bHRpUm93U2VsZWN0ZWQuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uTG9hZGluZyk9XCJvbkxvYWRpbmcuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uUGFnZSk9XCJvblBhZ2VDaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0XHRbaXNMZWdhY3lNb2RlXT1cImZhbHNlXCJcclxuXHRcdFx0W3Nob3dUb3RhbFJlY29yZF09XCJ0cnVlXCJcclxuXHRcdFx0KHNvcnRDaGFuZ2VkKT1cIm9uU29ydENoYW5nZWQoJGV2ZW50KVwiXHJcblx0XHQ+XHJcblx0XHRcdDxuZy10ZW1wbGF0ZSBlbXB0eVRlbXBsYXRlIGxldC1pc0xvYWRpbmcgbGV0LXJvd3M9XCJyb3dzXCIgbGV0LWluaXRpYWxpemVkPVwiaW5pdGlhbGl6ZWRcIj5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwibG9hZGluZy1kYXRhXCIgKm5nSWY9XCJpc0xvYWRpbmcgJiYgaW5pdGlhbGl6ZWRcIj5cclxuXHRcdFx0XHRcdDxtYXQtc3Bpbm5lcj48L21hdC1zcGlubmVyPlxyXG5cdFx0XHRcdDwvZGl2PlxyXG5cclxuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgaC01LzZcIiAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgIXJvd3MubGVuZ3RoXCI+XHJcblx0XHRcdFx0XHQ8YXBwLW5vLWRhdGEtZm91bmQgY2xhc3M9XCJtdC00XCIgW21lc3NhZ2VdPVwiZW1wdHlNZXNzYWdlXCI+PC9hcHAtbm8tZGF0YS1mb3VuZD5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdDwvY3RzLWR5bmFtaWMtdGFibGU+XHJcblxyXG5cdFx0PGN0cy10YWJsZVxyXG5cdFx0XHQqbmdJZj1cInRhYmxlQ29uZmlnLmlzRGF0YVByb3ZpZGVkXCJcclxuXHRcdFx0W3Jvd3NdPVwicm93c1wiXHJcblx0XHRcdFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuXHRcdFx0W2NvbHVtbnNdPVwiZGlzcGxheWVkQ29sdW1ucyQgfCBhc3luY1wiXHJcblx0XHRcdFtyZXNwb25zaXZlQ29sdW1uc109XCJkaXNwbGF5ZWRDb2x1bW5zJCB8IGFzeW5jXCJcclxuXHRcdFx0W3Jvd0N1cnNvcl09XCJ0cnVlXCJcclxuXHRcdFx0W2Z1bGxXaWR0aF09XCJ0YWJsZUNvbmZpZy5mdWxsV2lkdGggfHwgJ2F1dG8nXCJcclxuXHRcdFx0W2VudGl0eVR5cGVdPVwiJ2FsbCdcIlxyXG5cdFx0XHRbcHJlZml4XT1cInRhYmxlQ29uZmlnLnByZWZpeCB8fCAnJ1wiXHJcblx0XHRcdFt0YWJsZU1vZGVdPVwidmlld01vZGUkIHwgYXN5bmNcIlxyXG5cdFx0XHRbY29tcG9uZW50TmFtZV09XCJ0YWJsZU1vZGU/LlsnY29tcG9uZW50TmFtZSddXCJcclxuXHRcdFx0W211bHRpU2VsZWN0Um93c109XCJ0YWJsZUNvbmZpZz8ubXVsdGlTZWxlY3RSb3dzXCJcclxuXHRcdFx0W2N1c3RvbUZpcnN0Um93XT1cInRhYmxlQ29uZmlnPy5jdXN0b21GaXJzdFJvd1wiXHJcblx0XHRcdFt0YWJsZUFjdGlvbnNdPVwidGFibGVDb25maWcudGFibGVBY3Rpb25zXCJcclxuXHRcdFx0W3Nob3dBY3Rpb25zQXNNZW51XT1cInRhYmxlQ29uZmlnPy5zaG93QWN0aW9uc0FzTWVudVwiXHJcblx0XHRcdFtkZWZ1bHRTb3J0XT1cInRhYmxlQ29uZmlnLmRlZmF1bHRTb3J0IHx8IGRlZmF1bHRTb3J0XCJcclxuXHRcdFx0W2Zvcm1hdF09XCJ0YWJsZUNvbmZpZz8uZm9ybWF0IHx8ICdNTU1NIGQsIHknXCJcclxuXHRcdFx0W2hpZ2hsaWdodFNlbGVjdGVkQ2FyZF09XCJ0YWJsZUNvbmZpZz8uaGlnaGxpZ2h0U2VsZWN0ZWRDYXJkXCJcclxuXHRcdFx0KG9uUm93U2VsZWN0ZWQpPVwib25Sb3dTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25Sb3dJbmRleFNlbGVjdGVkKT1cIm9uUm93SW5kZXhTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQob25NdWx0aVJvd1NlbGVjdGVkKT1cIm9uTXVsdGlSb3dTZWxlY3RlZC5lbWl0KCRldmVudClcIlxyXG5cdFx0XHQoYWN0aW9uT25Sb3cpPVwiYWN0aW9uT25Sb3cuZW1pdCgkZXZlbnQpXCJcclxuXHRcdFx0KG9uU29ydGluZyk9XCJvblNvcnRDaGFuZ2VkKCRldmVudClcIlxyXG5cdFx0PjwvY3RzLXRhYmxlPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL21vZGVscy90YWJsZS1jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFRhYmxlQ29sdW1uQWN0aW9uID0ge1xyXG5cdHR5cGU/OiAnYnV0dG9uJyB8ICdpY29uJztcclxuXHRjbGFzcz86IHN0cmluZztcclxuXHR0aXRsZT86IHN0cmluZztcclxuXHRpY29uQ2xhc3M/OiBzdHJpbmc7XHJcblx0cGVybWlzc2lvbj86IHN0cmluZztcclxuXHRpY29uPzogc3RyaW5nO1xyXG5cdHRvb2x0aXA/OiBzdHJpbmc7XHJcblx0YWN0aW9uTmFtZTogc3RyaW5nO1xyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtbkNvbmZpZyB7XHJcblx0bmFtZTogc3RyaW5nO1xyXG5cdGlkPzogc3RyaW5nO1xyXG5cdHByb3A6IHN0cmluZztcclxuXHRkaXNwbGF5OiBib29sZWFuO1xyXG5cdHR5cGU6IHN0cmluZztcclxuXHRzaXplPzogbnVtYmVyO1xyXG5cdG1pbldpZHRoPzogbnVtYmVyO1xyXG5cdG1heFdpZHRoPzogbnVtYmVyO1xyXG5cdHNvcnRhYmxlPzogYm9vbGVhbjtcclxuXHRoZWFkZXJDbGFzcz86IHN0cmluZztcclxuXHR2b2NhYnVsYXJ5SWQ/OiBzdHJpbmc7XHJcblx0YWN0aW9ucz86IFRhYmxlQ29sdW1uQWN0aW9uW107XHJcblx0dXNlQmFkZ2U/OiBib29sZWFuO1xyXG5cdHRlbXBsYXRlPzogc3RyaW5nO1xyXG5cdGN1c3RvbTFzdENlbGxUZW1wbGF0ZT86IHN0cmluZztcclxuXHR0cmFuc2xhdGVQcmVmaXg/OiBzdHJpbmc7XHJcblx0aXNPcmdpbmFsS2V5Pzogc3RyaW5nIHwgYm9vbGVhbjtcclxuXHRpc0Jvb2xlYW5WYWx1ZT86IGJvb2xlYW47XHJcblx0Y2FyZEFjdGlvbnM/OiBhbnlbXTtcclxuXHRvcmRlcj86IG51bWJlcjtcclxuXHRkZWZhdWx0VmlzaWJsZT86IGJvb2xlYW47XHJcblx0b3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sdW1uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL21vZGVscy90YWJsZS1jb2x1bW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFRhYmxlQ29sdW1uQWN0aW9uID0ge1xyXG5cdHR5cGU/OiAnYnV0dG9uJyB8ICdpY29uJztcclxuXHRjbGFzcz86IHN0cmluZztcclxuXHR0aXRsZT86IHN0cmluZztcclxuXHRpY29uQ2xhc3M/OiBzdHJpbmc7XHJcblx0cGVybWlzc2lvbj86IHN0cmluZztcclxuXHRpY29uPzogc3RyaW5nO1xyXG5cdHRvb2x0aXA/OiBzdHJpbmc7XHJcblx0YWN0aW9uTmFtZTogc3RyaW5nO1xyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtbkNvbmZpZyB7XHJcblx0bmFtZTogc3RyaW5nO1xyXG5cdGlkPzogc3RyaW5nO1xyXG5cdHByb3A6IHN0cmluZztcclxuXHRkaXNwbGF5OiBib29sZWFuO1xyXG5cdHR5cGU6IHN0cmluZztcclxuXHRzaXplPzogbnVtYmVyO1xyXG5cdG1pbldpZHRoPzogbnVtYmVyO1xyXG5cdG1heFdpZHRoPzogbnVtYmVyO1xyXG5cdHNvcnRhYmxlPzogYm9vbGVhbjtcclxuXHRoZWFkZXJDbGFzcz86IHN0cmluZztcclxuXHR2b2NhYnVsYXJ5SWQ/OiBzdHJpbmc7XHJcblx0YWN0aW9ucz86IFRhYmxlQ29sdW1uQWN0aW9uW107XHJcblx0dXNlQmFkZ2U/OiBib29sZWFuO1xyXG5cdHRlbXBsYXRlPzogc3RyaW5nO1xyXG5cdGN1c3RvbTFzdENlbGxUZW1wbGF0ZT86IHN0cmluZztcclxuXHR0cmFuc2xhdGVQcmVmaXg/OiBzdHJpbmc7XHJcblx0aXNPcmdpbmFsS2V5Pzogc3RyaW5nIHwgYm9vbGVhbjtcclxuXHRpc0Jvb2xlYW5WYWx1ZT86IGJvb2xlYW47XHJcblx0Y2FyZEFjdGlvbnM/OiBhbnlbXTtcclxuXHRvcmRlcj86IG51bWJlcjtcclxuXHRkZWZhdWx0VmlzaWJsZT86IGJvb2xlYW47XHJcblx0b3B0aW9ucz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0ZmlsZWRLZXk/OiBzdHJpbmc7XHJcbn1cclxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9tb2RlbHMvdGFibGUtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRDb25maWdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL25kZi1maWx0ZXJzJztcclxuaW1wb3J0IHsgTmRmUmVxdWVzdENvbmZpZyB9IGZyb20gJy4vcGF5bG9hZC10eXBlcyc7XHJcbmltcG9ydCB7IEdsb2JhbFNlYXJjaENvbmZpZyB9IGZyb20gJy4vc2VhcmNoLmNvbmZpZyc7XHJcbmltcG9ydCB7IFRhYmxlTW9kZUNvbmZpZywgVGFibGVTb3J0Q29uZmlnIH0gZnJvbSAnLi90YWJsZS1tb2RlJztcclxuaW1wb3J0IHsgTGFiZWxWYWx1ZSwgU29ydFRhYmxlSXRlbSB9IGZyb20gJy4vdHlwZXMnO1xyXG5cclxuZXhwb3J0IHR5cGUgTmRmVGFibGVPcHRpb25zID0ge1xyXG5cdHNlYXJjaD86IEdsb2JhbFNlYXJjaENvbmZpZztcclxuXHRmaWx0ZXJzOiBGaWx0ZXJzQ29uZmlnO1xyXG5cdHNvcnRMaXN0PzogU29ydFRhYmxlSXRlbVtdO1xyXG5cdHRhYmxlTW9kZT86IFRhYmxlTW9kZUNvbmZpZztcclxuXHRleHBvcnQ/OiBUYWJsZUV4cG9ydENvbmZpZztcclxuXHRjb2x1bW5zPzoge1xyXG5cdFx0dG9nZ2xlPzogYm9vbGVhbjtcclxuXHRcdHNvcnRhYmxlPzogVGFibGVTb3J0Q29uZmlnO1xyXG5cdH07XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBGaWx0ZXJNb2RlID1cclxuXHR8IHsgbW9kZTogJ3BheWxvYWQnIH1cclxuXHR8IHtcclxuXHRcdFx0bW9kZTogJ3BhcmFtcyc7XHJcblx0XHRcdHN0cmluZ2lmeVBhcmFtczogYm9vbGVhbjtcclxuXHQgIH07XHJcblxyXG5leHBvcnQgdHlwZSBGaWx0ZXJSZWxvYWRDb25maWcgPVxyXG5cdHwgeyBzdHJhdGVneTogJ2Fsd2F5cycgfVxyXG5cdHwgeyBzdHJhdGVneTogJ25ldmVyJyB9XHJcblx0fCB7IHN0cmF0ZWd5OiAnb25DaGFuZ2UnOyB0cmlnZ2VyRmllbGRzOiBzdHJpbmdbXSB9O1xyXG5cclxuZXhwb3J0IHR5cGUgRmlsdGVyc0NvbmZpZyA9IEZpbHRlck1vZGUgJiB7XHJcblx0cmVsb2FkPzogRmlsdGVyUmVsb2FkQ29uZmlnO1xyXG5cdGZpZWxkczogRmllbGRDb25maWdNb2RlbFtdO1xyXG5cdHBhbmVsPzoge1xyXG5cdFx0dmlzaWJsZT86IGJvb2xlYW47XHJcblx0XHR0b2dnbGVCdXR0b24/OiBib29sZWFuO1xyXG5cdH07XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBDdXN0b21Dcml0ZXJpYU1vZGVsID0ge1xyXG5cdHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0cGF5bG9hZD86IHsgcHJlZGljYXRlTGlzdDogYW55W10gfSAmIFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn0gfCBudWxsO1xyXG5cclxuZXhwb3J0IHR5cGUgVGFibGVFeHBvcnRDb25maWcgPSB7XHJcblx0ZW5hYmxlZDogYm9vbGVhbjtcclxuXHRyZXF1ZXN0OiBOZGZSZXF1ZXN0Q29uZmlnO1xyXG5cdGRvY1R5cGVOYW1lOiAndGFzaycgfCAncmVxdWVzdCcgfCAncmVjb3JkJztcclxuXHRibG9iTmFtZTogc3RyaW5nO1xyXG5cdGRlZmF1bHRUeXBlOiAnZXhjZWwnIHwgJ2RvY3gnIHwgJ3BkZic7XHJcblx0YWxsb3dlZFR5cGVzPzogTGFiZWxWYWx1ZTxzdHJpbmcsICdleGNlbCcgfCAnZG9jeCcgfCAncGRmJz5bXTtcclxuXHRmaWVsZHM/OiBzdHJpbmdbXTtcclxuXHRsb2NhbGU/OiBzdHJpbmc7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBFeHBvcnRUeXBlID0gVGFibGVFeHBvcnRDb25maWdbJ2RlZmF1bHRUeXBlJ107XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9tb2RlbHMvdGFibGUtb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmllbGRDb25maWdNb2RlbCB9IGZyb20gJy4uLy4uLy4uL25kZi1maWx0ZXJzJztcclxuaW1wb3J0IHsgTmRmUmVxdWVzdENvbmZpZyB9IGZyb20gJy4vcGF5bG9hZC10eXBlcyc7XHJcbmltcG9ydCB7IEdsb2JhbFNlYXJjaENvbmZpZyB9IGZyb20gJy4vc2VhcmNoLmNvbmZpZyc7XHJcbmltcG9ydCB7IFRhYmxlTW9kZUNvbmZpZywgVGFibGVTb3J0Q29uZmlnIH0gZnJvbSAnLi90YWJsZS1tb2RlJztcclxuaW1wb3J0IHsgTGFiZWxWYWx1ZSwgU29ydFRhYmxlSXRlbSB9IGZyb20gJy4vdHlwZXMnO1xyXG5cclxuZXhwb3J0IHR5cGUgTmRmVGFibGVPcHRpb25zID0ge1xyXG5cdHNlYXJjaD86IEdsb2JhbFNlYXJjaENvbmZpZztcclxuXHRmaWx0ZXJzOiBGaWx0ZXJzQ29uZmlnO1xyXG5cdHNvcnRMaXN0PzogU29ydFRhYmxlSXRlbVtdO1xyXG5cdHRhYmxlTW9kZT86IFRhYmxlTW9kZUNvbmZpZztcclxuXHRleHBvcnQ/OiBUYWJsZUV4cG9ydENvbmZpZztcclxuXHRjb2x1bW5zPzoge1xyXG5cdFx0dG9nZ2xlPzogYm9vbGVhbjtcclxuXHRcdHNvcnRhYmxlPzogVGFibGVTb3J0Q29uZmlnO1xyXG5cdH07XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBGaWx0ZXJNb2RlID1cclxuXHR8IHsgbW9kZTogJ3BheWxvYWQnIH1cclxuXHR8IHtcclxuXHRcdFx0bW9kZTogJ3BhcmFtcyc7XHJcblx0XHRcdHN0cmluZ2lmeVBhcmFtczogYm9vbGVhbjtcclxuXHQgIH07XHJcblxyXG5leHBvcnQgdHlwZSBGaWx0ZXJSZWxvYWRDb25maWcgPVxyXG5cdHwgeyBzdHJhdGVneTogJ2Fsd2F5cycgfVxyXG5cdHwgeyBzdHJhdGVneTogJ25ldmVyJyB9XHJcblx0fCB7IHN0cmF0ZWd5OiAnb25DaGFuZ2UnOyB0cmlnZ2VyRmllbGRzOiBzdHJpbmdbXSB9O1xyXG5cclxuZXhwb3J0IHR5cGUgRmlsdGVyc0NvbmZpZyA9IEZpbHRlck1vZGUgJiB7XHJcblx0cmVsb2FkPzogRmlsdGVyUmVsb2FkQ29uZmlnO1xyXG5cdGZpZWxkczogRmllbGRDb25maWdNb2RlbFtdO1xyXG5cdHBhbmVsPzoge1xyXG5cdFx0dmlzaWJsZT86IGJvb2xlYW47XHJcblx0XHR0b2dnbGVCdXR0b24/OiBib29sZWFuO1xyXG5cdH07XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBDdXN0b21Dcml0ZXJpYU1vZGVsID0ge1xyXG5cdHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcblx0cGF5bG9hZD86IHsgcHJlZGljYXRlTGlzdDogYW55W10gfSAmIFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn0gfCBudWxsO1xyXG5cclxuZXhwb3J0IHR5cGUgVGFibGVFeHBvcnRDb25maWcgPSB7XHJcblx0ZW5hYmxlZDogYm9vbGVhbjtcclxuXHRyZXF1ZXN0OiBOZGZSZXF1ZXN0Q29uZmlnO1xyXG5cdGRvY1R5cGVOYW1lOiAndGFzaycgfCAncmVxdWVzdCcgfCAncmVjb3JkJyB8ICdub25Eb2NVc2FnZScgfCAnZG9jdW1lbnQnIHwgJ2RvY1VzYWdlJztcclxuXHRibG9iTmFtZTogc3RyaW5nO1xyXG5cdGRlZmF1bHRUeXBlOiAnZXhjZWwnIHwgJ2RvY3gnIHwgJ3BkZic7XHJcblx0YWxsb3dlZFR5cGVzPzogTGFiZWxWYWx1ZTxzdHJpbmcsICdleGNlbCcgfCAnZG9jeCcgfCAncGRmJz5bXTtcclxuXHRmaWVsZHM/OiBzdHJpbmdbXTtcclxuXHRsb2NhbGU/OiBzdHJpbmc7XHJcbn07XHJcblxyXG5leHBvcnQgdHlwZSBFeHBvcnRUeXBlID0gVGFibGVFeHBvcnRDb25maWdbJ2RlZmF1bHRUeXBlJ107XHJcbiJdfQ==
@@ -1,22 +1,27 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { HttpBaseService } from '../../../../shared/services/base/http-base.service';
3
2
  import { map } from 'rxjs/operators';
4
- import { of } from 'rxjs';
5
- import { AppConfigService } from '../../../../configuration/app-config.service';
6
- import _ from 'lodash';
7
- import { cloneDeep } from 'lodash';
3
+ import { BaseEditorConfigService } from '../../../../shared';
8
4
  import * as i0 from "@angular/core";
9
- export class NdfTableConfigurationService extends HttpBaseService {
5
+ export class NdfTableConfigurationService extends BaseEditorConfigService {
10
6
  constructor(injector) {
11
7
  super(injector);
12
8
  this.injector = injector;
13
- this.appConfigService = this.injector.get(AppConfigService);
14
- this.configurationsUrl = 'assets/configs/configuration.json';
15
9
  }
16
- getTableConfiguration(key, path) {
17
- return of(this.appConfigService.myConfiguration).pipe(map((config) => {
18
- const base = path ? _.get(config, path) : config;
19
- return cloneDeep(_.get(base, key));
10
+ getTableConfiguration(key, localPath) {
11
+ var _a;
12
+ return this.fetchData({
13
+ key,
14
+ type: 'table',
15
+ app: (_a = this.environment) === null || _a === void 0 ? void 0 : _a.appKey,
16
+ localPath
17
+ }).pipe(map((res) => {
18
+ var _a;
19
+ if (!res.submitted) {
20
+ console.warn('%c \n--------------------------------------------------\n' +
21
+ 'Unsaved table configuration detected. Open the config editor to save it' +
22
+ '\n--------------------------------------------------\n', 'font-size: 14px;');
23
+ }
24
+ return (_a = res === null || res === void 0 ? void 0 : res.data) === null || _a === void 0 ? void 0 : _a.config;
20
25
  }));
21
26
  }
22
27
  }
@@ -26,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
26
31
  type: Injectable,
27
32
  args: [{ providedIn: 'root' }]
28
33
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYmxlLWNvbmZpZ3VyYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9zZXJ2aWNlcy9uZGYtdGFibGUtY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDOztBQUVuQyxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsZUFBZTtJQUloRSxZQUE0QixRQUFrQjtRQUM3QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEVyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBSDdCLHFCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkQsc0JBQWlCLEdBQUcsbUNBQW1DLENBQUM7SUFJekUsQ0FBQztJQUVELHFCQUFxQixDQUFDLEdBQVcsRUFBRSxJQUFhO1FBQy9DLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQ3BELEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ25CLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNqRCxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQW1CLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQzs7MEhBZlcsNEJBQTRCOzhIQUE1Qiw0QkFBNEIsY0FEZixNQUFNOzRGQUNuQiw0QkFBNEI7a0JBRHhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2Jhc2UvaHR0cC1iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE5kZlRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbmZpZ3VyYXRpb24vYXBwLWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIE5kZlRhYmxlQ29uZmlndXJhdGlvblNlcnZpY2UgZXh0ZW5kcyBIdHRwQmFzZVNlcnZpY2Uge1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgYXBwQ29uZmlnU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFwcENvbmZpZ1NlcnZpY2UpO1xyXG5cdHByaXZhdGUgcmVhZG9ubHkgY29uZmlndXJhdGlvbnNVcmwgPSAnYXNzZXRzL2NvbmZpZ3MvY29uZmlndXJhdGlvbi5qc29uJztcclxuXHJcblx0Y29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3Rvcikge1xyXG5cdFx0c3VwZXIoaW5qZWN0b3IpO1xyXG5cdH1cclxuXHJcblx0Z2V0VGFibGVDb25maWd1cmF0aW9uKGtleTogc3RyaW5nLCBwYXRoPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxOZGZUYWJsZUNvbmZpZz4ge1xyXG5cdFx0cmV0dXJuIG9mKHRoaXMuYXBwQ29uZmlnU2VydmljZS5teUNvbmZpZ3VyYXRpb24pLnBpcGUoXHJcblx0XHRcdG1hcCgoY29uZmlnOiBhbnkpID0+IHtcclxuXHRcdFx0XHRjb25zdCBiYXNlID0gcGF0aCA/IF8uZ2V0KGNvbmZpZywgcGF0aCkgOiBjb25maWc7XHJcblx0XHRcdFx0cmV0dXJuIGNsb25lRGVlcChfLmdldChiYXNlLCBrZXkpIGFzIE5kZlRhYmxlQ29uZmlnKTtcclxuXHRcdFx0fSlcclxuXHRcdCk7XHJcblx0fVxyXG59XHJcbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYmxlLWNvbmZpZ3VyYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9zZXJ2aWNlcy9uZGYtdGFibGUtY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUc3RCxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsdUJBQXVCO0lBQ3hFLFlBQTRCLFFBQWtCO1FBQzdDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQURXLGFBQVEsR0FBUixRQUFRLENBQVU7SUFFOUMsQ0FBQztJQUVELHFCQUFxQixDQUFDLEdBQVcsRUFBRSxTQUFrQjs7UUFDcEQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3JCLEdBQUc7WUFDSCxJQUFJLEVBQUUsT0FBTztZQUNiLEdBQUcsRUFBRSxNQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLE1BQU07WUFDN0IsU0FBUztTQUNULENBQUMsQ0FBQyxJQUFJLENBQ04sR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7O1lBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUU7Z0JBQ25CLE9BQU8sQ0FBQyxJQUFJLENBQ1gsNERBQTREO29CQUMzRCx5RUFBeUU7b0JBQ3pFLHdEQUF3RCxFQUN6RCxrQkFBa0IsQ0FDbEIsQ0FBQzthQUNGO1lBQ0QsT0FBTyxNQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxJQUFJLDBDQUFFLE1BQXdCLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQ0YsQ0FBQztJQUNILENBQUM7OzBIQXhCVyw0QkFBNEI7OEhBQTVCLDRCQUE0QixjQURmLE1BQU07NEZBQ25CLDRCQUE0QjtrQkFEeEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOZGZUYWJsZUNvbmZpZyB9IGZyb20gJy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEJhc2VFZGl0b3JDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2hhcmVkJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBOZGZUYWJsZUNvbmZpZ3VyYXRpb25TZXJ2aWNlIGV4dGVuZHMgQmFzZUVkaXRvckNvbmZpZ1NlcnZpY2Uge1xyXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuXHRcdHN1cGVyKGluamVjdG9yKTtcclxuXHR9XHJcblxyXG5cdGdldFRhYmxlQ29uZmlndXJhdGlvbihrZXk6IHN0cmluZywgbG9jYWxQYXRoPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxOZGZUYWJsZUNvbmZpZz4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuZmV0Y2hEYXRhKHtcclxuXHRcdFx0a2V5LFxyXG5cdFx0XHR0eXBlOiAndGFibGUnLFxyXG5cdFx0XHRhcHA6IHRoaXMuZW52aXJvbm1lbnQ/LmFwcEtleSxcclxuXHRcdFx0bG9jYWxQYXRoXHJcblx0XHR9KS5waXBlKFxyXG5cdFx0XHRtYXAoKHJlcykgPT4ge1xyXG5cdFx0XHRcdGlmICghcmVzLnN1Ym1pdHRlZCkge1xyXG5cdFx0XHRcdFx0Y29uc29sZS53YXJuKFxyXG5cdFx0XHRcdFx0XHQnJWMgIFxcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuJyArXHJcblx0XHRcdFx0XHRcdFx0J1Vuc2F2ZWQgdGFibGUgY29uZmlndXJhdGlvbiBkZXRlY3RlZC4gT3BlbiB0aGUgY29uZmlnIGVkaXRvciB0byBzYXZlIGl0JyArXHJcblx0XHRcdFx0XHRcdFx0J1xcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXFxuJyxcclxuXHRcdFx0XHRcdFx0J2ZvbnQtc2l6ZTogMTRweDsnXHJcblx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gcmVzPy5kYXRhPy5jb25maWcgYXMgTmRmVGFibGVDb25maWc7XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdH1cclxufVxyXG4iXX0=
@@ -13,7 +13,7 @@ export class NdfTableService extends BaseService {
13
13
  headers: request === null || request === void 0 ? void 0 : request.headers,
14
14
  queryParams: request === null || request === void 0 ? void 0 : request.params,
15
15
  payload: payload
16
- }).pipe(map((res) => `${res === null || res === void 0 ? void 0 : res.Statue}`.toLowerCase() === 'success'));
16
+ }).pipe(map((res) => `${res === null || res === void 0 ? void 0 : res.Status}`.toLowerCase() === 'success'));
17
17
  }
18
18
  }
19
19
  NdfTableService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfTableService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
24
24
  providedIn: 'root'
25
25
  }]
26
26
  }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYmxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9uZGYtdGFibGUvc2VydmljZXMvbmRmLXRhYmxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUsxRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBQy9DLFlBQVksUUFBa0I7UUFDN0IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBeUIsRUFBRSxPQUF5QjtRQUMvRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQXFCO1lBQ3ZDLElBQUksRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLE1BQU0sQ0FBMkI7WUFDN0UsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHO1lBQ3JCLE9BQU8sRUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsT0FBTztZQUN6QixXQUFXLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE1BQU07WUFDNUIsT0FBTyxFQUFFLE9BQU87U0FDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQzs7NkdBWlcsZUFBZTtpSEFBZixlQUFlLGNBRmYsTUFBTTs0RkFFTixlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5kZkV4cG9ydFBheWxvYWQsIE5kZlJlcXVlc3RDb25maWcgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZGZUYWJsZVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcblx0Y29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcblx0XHRzdXBlcihpbmplY3Rvcik7XHJcblx0fVxyXG5cdGV4cG9ydFRhYmxlKHJlcXVlc3Q6IE5kZlJlcXVlc3RDb25maWcsIHBheWxvYWQ6IE5kZkV4cG9ydFBheWxvYWQpIHtcclxuXHRcdHJldHVybiB0aGlzLnJlcXVlc3Q8eyBTdGF0dWU6IHN0cmluZyB9Pih7XHJcblx0XHRcdHR5cGU6IChgJHtyZXF1ZXN0Lm1ldGhvZH1gLnRvTG93ZXJDYXNlKCkgfHwgJ3Bvc3QnKSBhcyAnZ2V0JyB8ICdwb3N0JyB8ICdwdXQnLFxyXG5cdFx0XHRlbmRwb2ludDogcmVxdWVzdC51cmwsXHJcblx0XHRcdGhlYWRlcnM6IHJlcXVlc3Q/LmhlYWRlcnMsXHJcblx0XHRcdHF1ZXJ5UGFyYW1zOiByZXF1ZXN0Py5wYXJhbXMsXHJcblx0XHRcdHBheWxvYWQ6IHBheWxvYWRcclxuXHRcdH0pLnBpcGUobWFwKChyZXMpID0+IGAke3Jlcz8uU3RhdHVlfWAudG9Mb3dlckNhc2UoKSA9PT0gJ3N1Y2Nlc3MnKSk7XHJcblx0fVxyXG59XHJcbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmRmLXRhYmxlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9uZGYtdGFibGUvc2VydmljZXMvbmRmLXRhYmxlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUsxRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxXQUFXO0lBQy9DLFlBQVksUUFBa0I7UUFDN0IsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxXQUFXLENBQUMsT0FBeUIsRUFBRSxPQUF5QjtRQUMvRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQXFCO1lBQ3ZDLElBQUksRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLE1BQU0sQ0FBMkI7WUFDN0UsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHO1lBQ3JCLE9BQU8sRUFBRSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsT0FBTztZQUN6QixXQUFXLEVBQUUsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE1BQU07WUFDNUIsT0FBTyxFQUFFLE9BQU87U0FDaEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQzs7NkdBWlcsZUFBZTtpSEFBZixlQUFlLGNBRmYsTUFBTTs0RkFFTixlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNYLFVBQVUsRUFBRSxNQUFNO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5kZkV4cG9ydFBheWxvYWQsIE5kZlJlcXVlc3RDb25maWcgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZGZUYWJsZVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcblx0Y29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcblx0XHRzdXBlcihpbmplY3Rvcik7XHJcblx0fVxyXG5cdGV4cG9ydFRhYmxlKHJlcXVlc3Q6IE5kZlJlcXVlc3RDb25maWcsIHBheWxvYWQ6IE5kZkV4cG9ydFBheWxvYWQpIHtcclxuXHRcdHJldHVybiB0aGlzLnJlcXVlc3Q8eyBTdGF0dXM6IHN0cmluZyB9Pih7XHJcblx0XHRcdHR5cGU6IChgJHtyZXF1ZXN0Lm1ldGhvZH1gLnRvTG93ZXJDYXNlKCkgfHwgJ3Bvc3QnKSBhcyAnZ2V0JyB8ICdwb3N0JyB8ICdwdXQnLFxyXG5cdFx0XHRlbmRwb2ludDogcmVxdWVzdC51cmwsXHJcblx0XHRcdGhlYWRlcnM6IHJlcXVlc3Q/LmhlYWRlcnMsXHJcblx0XHRcdHF1ZXJ5UGFyYW1zOiByZXF1ZXN0Py5wYXJhbXMsXHJcblx0XHRcdHBheWxvYWQ6IHBheWxvYWRcclxuXHRcdH0pLnBpcGUobWFwKChyZXMpID0+IGAke3Jlcz8uU3RhdHVzfWAudG9Mb3dlckNhc2UoKSA9PT0gJ3N1Y2Nlc3MnKSk7XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export const NDF_EDITOR_TYPE = {
2
+ REPORTS: 'report',
3
+ TABLES: 'table'
4
+ };
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWNvbmZpZy10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvc2hhcmVkL2NvbnN0YW50cy9lZGl0b3ItY29uZmlnLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzlCLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLE1BQU0sRUFBRSxPQUFPO0NBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBOREZfRURJVE9SX1RZUEUgPSB7XHJcblx0UkVQT1JUUzogJ3JlcG9ydCcsXHJcblx0VEFCTEVTOiAndGFibGUnXHJcbn0gYXMgY29uc3Q7XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './editor-config-type';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9zaGFyZWQvY29uc3RhbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VkaXRvci1jb25maWctdHlwZSdcclxuIl19
@@ -4,4 +4,5 @@ export * from './components';
4
4
  export * from './models';
5
5
  export * from './libraryShared.module';
6
6
  export * from './evaluator';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGFBQWEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGlicmFyeVNoYXJlZC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2V2YWx1YXRvcidcclxuIl19
7
+ export * from './constants';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLGFBQWEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGlicmFyeVNoYXJlZC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2V2YWx1YXRvcidcclxuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnXHJcbiJdfQ==
@@ -0,0 +1,70 @@
1
+ import { BaseService } from './base.service';
2
+ import { AppConfigService } from '../../../configuration/app-config.service';
3
+ import { map, switchMap } from 'rxjs/operators';
4
+ import { of } from 'rxjs';
5
+ import _, { cloneDeep } from 'lodash';
6
+ import { Injectable } from '@angular/core';
7
+ import * as i0 from "@angular/core";
8
+ export class BaseEditorConfigService extends BaseService {
9
+ constructor(injector) {
10
+ super(injector);
11
+ this.injector = injector;
12
+ this.appConfigService = this.injector.get(AppConfigService);
13
+ }
14
+ fetchData({ key, type, app, localPath }) {
15
+ return this.request({
16
+ type: 'get',
17
+ endpoint: `/search/pp/PP_NDF_UI_Configurations/execute`,
18
+ queryParams: Object.assign({ ndfuiconfig_type: type, ndfuiconfig_key: key }, (app ? { ndfuiconfig_app: app } : {})),
19
+ headers: {
20
+ properties: 'ndfuiconfig,note'
21
+ }
22
+ }).pipe(map((response) => { var _a; return (_a = response.entries) === null || _a === void 0 ? void 0 : _a[0]; }), switchMap((entry) => {
23
+ var _a;
24
+ const content = this._parseData((_a = entry === null || entry === void 0 ? void 0 : entry.properties) === null || _a === void 0 ? void 0 : _a['note:note']);
25
+ if (content) {
26
+ return of({
27
+ submitted: true,
28
+ uid: entry.uid,
29
+ data: {
30
+ key: key,
31
+ type: type,
32
+ app: entry.properties['ndfuiconfig:app'],
33
+ config: content
34
+ }
35
+ });
36
+ }
37
+ const config = this.appConfigService.myConfiguration || {};
38
+ const base = localPath ? _.get(config, localPath) : config;
39
+ const data = cloneDeep(_.get(base, key));
40
+ return of({
41
+ submitted: false,
42
+ data: {
43
+ key: key,
44
+ type: type,
45
+ app: app,
46
+ config: data
47
+ }
48
+ });
49
+ }));
50
+ }
51
+ _parseData(data) {
52
+ if (!data) {
53
+ return null;
54
+ }
55
+ try {
56
+ return JSON.parse(data);
57
+ }
58
+ catch (error) {
59
+ console.warn('Error parsing data:', error);
60
+ return null;
61
+ }
62
+ }
63
+ }
64
+ BaseEditorConfigService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseEditorConfigService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
65
+ BaseEditorConfigService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseEditorConfigService, providedIn: 'root' });
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseEditorConfigService, decorators: [{
67
+ type: Injectable,
68
+ args: [{ providedIn: 'root' }]
69
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1lZGl0b3ItY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvYmFzZS9iYXNlLWVkaXRvci1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFN0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7O0FBd0JyRCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsV0FBVztJQUV2RCxZQUFtQixRQUFrQjtRQUNwQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFERSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRDNCLHFCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFHakUsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBc0I7UUFDMUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUF3QjtZQUMxQyxJQUFJLEVBQUUsS0FBSztZQUNYLFFBQVEsRUFBRSw2Q0FBNkM7WUFDdkQsV0FBVyxrQkFBSSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsSUFBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFFO1lBQ3ZHLE9BQU8sRUFBRTtnQkFDUixVQUFVLEVBQUUsa0JBQWtCO2FBQzlCO1NBQ0QsQ0FBQyxDQUFDLElBQUksQ0FDTixHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxXQUFDLE9BQUEsTUFBQSxRQUFRLENBQUMsT0FBTywwQ0FBRyxDQUFDLENBQUMsQ0FBQSxFQUFBLENBQUMsRUFDeEMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7O1lBQ25CLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBQSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsVUFBVSwwQ0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBRWxFLElBQUksT0FBTyxFQUFFO2dCQUNaLE9BQU8sRUFBRSxDQUFDO29CQUNULFNBQVMsRUFBRSxJQUFJO29CQUNmLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztvQkFDZCxJQUFJLEVBQUU7d0JBQ0wsR0FBRyxFQUFFLEdBQUc7d0JBQ1IsSUFBSSxFQUFFLElBQUk7d0JBQ1YsR0FBRyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUM7d0JBQ3hDLE1BQU0sRUFBRSxPQUFPO3FCQUNmO2lCQUNELENBQUMsQ0FBQzthQUNIO1lBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7WUFDM0QsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQzNELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRXpDLE9BQU8sRUFBRSxDQUFDO2dCQUNULFNBQVMsRUFBRSxLQUFLO2dCQUNoQixJQUFJLEVBQUU7b0JBQ0wsR0FBRyxFQUFFLEdBQUc7b0JBQ1IsSUFBSSxFQUFFLElBQUk7b0JBQ1YsR0FBRyxFQUFFLEdBQUc7b0JBQ1IsTUFBTSxFQUFFLElBQUk7aUJBQ1o7YUFDRCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDRixDQUFDO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFZO1FBQzlCLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNaO1FBQ0QsSUFBSTtZQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4QjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMzQyxPQUFPLElBQUksQ0FBQztTQUNaO0lBQ0YsQ0FBQzs7cUhBM0RXLHVCQUF1Qjt5SEFBdkIsdUJBQXVCLGNBRFYsTUFBTTs0RkFDbkIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9iYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29uZmlndXJhdGlvbi9hcHAtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcGlSZXNwb25zZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IF8sIHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOREZfRURJVE9SX1RZUEUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ29uZmlnVHlwZSA9ICh0eXBlb2YgTkRGX0VESVRPUl9UWVBFKVtrZXlvZiB0eXBlb2YgTkRGX0VESVRPUl9UWVBFXTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnUmVzcG9uc2VNb2RlbCB7XHJcblx0c3VibWl0dGVkOiBib29sZWFuO1xyXG5cdHVpZD86IHN0cmluZztcclxuXHRkYXRhOiB7XHJcblx0XHRrZXk6IHN0cmluZztcclxuXHRcdHR5cGU6IHN0cmluZztcclxuXHRcdGFwcD86IHN0cmluZztcclxuXHRcdGNvbmZpZzogUmVjb3JkPHN0cmluZywgYW55PjtcclxuXHR9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbmZpZ1JlcXVlc3RNb2RlbCB7XHJcblx0a2V5OiBzdHJpbmc7XHJcblx0dHlwZTogQ29uZmlnVHlwZTtcclxuXHRhcHA/OiBzdHJpbmc7XHJcblx0bG9jYWxQYXRoPzogc3RyaW5nO1xyXG59XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQmFzZUVkaXRvckNvbmZpZ1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcblx0cHJvdGVjdGVkIGFwcENvbmZpZ1NlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBcHBDb25maWdTZXJ2aWNlKTtcclxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcblx0XHRzdXBlcihpbmplY3Rvcik7XHJcblx0fVxyXG5cclxuXHRmZXRjaERhdGEoeyBrZXksIHR5cGUsIGFwcCwgbG9jYWxQYXRoIH06IENvbmZpZ1JlcXVlc3RNb2RlbCk6IE9ic2VydmFibGU8Q29uZmlnUmVzcG9uc2VNb2RlbD4ge1xyXG5cdFx0cmV0dXJuIHRoaXMucmVxdWVzdDxBcGlSZXNwb25zZU1vZGVsPGFueT4+KHtcclxuXHRcdFx0dHlwZTogJ2dldCcsXHJcblx0XHRcdGVuZHBvaW50OiBgL3NlYXJjaC9wcC9QUF9OREZfVUlfQ29uZmlndXJhdGlvbnMvZXhlY3V0ZWAsXHJcblx0XHRcdHF1ZXJ5UGFyYW1zOiB7IG5kZnVpY29uZmlnX3R5cGU6IHR5cGUsIG5kZnVpY29uZmlnX2tleToga2V5LCAuLi4oYXBwID8geyBuZGZ1aWNvbmZpZ19hcHA6IGFwcCB9IDoge30pIH0sXHJcblx0XHRcdGhlYWRlcnM6IHtcclxuXHRcdFx0XHRwcm9wZXJ0aWVzOiAnbmRmdWljb25maWcsbm90ZSdcclxuXHRcdFx0fVxyXG5cdFx0fSkucGlwZShcclxuXHRcdFx0bWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UuZW50cmllcz8uWzBdKSxcclxuXHRcdFx0c3dpdGNoTWFwKChlbnRyeSkgPT4ge1xyXG5cdFx0XHRcdGNvbnN0IGNvbnRlbnQgPSB0aGlzLl9wYXJzZURhdGEoZW50cnk/LnByb3BlcnRpZXM/Llsnbm90ZTpub3RlJ10pO1xyXG5cclxuXHRcdFx0XHRpZiAoY29udGVudCkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIG9mKHtcclxuXHRcdFx0XHRcdFx0c3VibWl0dGVkOiB0cnVlLFxyXG5cdFx0XHRcdFx0XHR1aWQ6IGVudHJ5LnVpZCxcclxuXHRcdFx0XHRcdFx0ZGF0YToge1xyXG5cdFx0XHRcdFx0XHRcdGtleToga2V5LFxyXG5cdFx0XHRcdFx0XHRcdHR5cGU6IHR5cGUsXHJcblx0XHRcdFx0XHRcdFx0YXBwOiBlbnRyeS5wcm9wZXJ0aWVzWyduZGZ1aWNvbmZpZzphcHAnXSxcclxuXHRcdFx0XHRcdFx0XHRjb25maWc6IGNvbnRlbnRcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRjb25zdCBjb25maWcgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UubXlDb25maWd1cmF0aW9uIHx8IHt9O1xyXG5cdFx0XHRcdGNvbnN0IGJhc2UgPSBsb2NhbFBhdGggPyBfLmdldChjb25maWcsIGxvY2FsUGF0aCkgOiBjb25maWc7XHJcblx0XHRcdFx0Y29uc3QgZGF0YSA9IGNsb25lRGVlcChfLmdldChiYXNlLCBrZXkpKTtcclxuXHJcblx0XHRcdFx0cmV0dXJuIG9mKHtcclxuXHRcdFx0XHRcdHN1Ym1pdHRlZDogZmFsc2UsXHJcblx0XHRcdFx0XHRkYXRhOiB7XHJcblx0XHRcdFx0XHRcdGtleToga2V5LFxyXG5cdFx0XHRcdFx0XHR0eXBlOiB0eXBlLFxyXG5cdFx0XHRcdFx0XHRhcHA6IGFwcCxcclxuXHRcdFx0XHRcdFx0Y29uZmlnOiBkYXRhXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfcGFyc2VEYXRhKGRhdGE6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xyXG5cdFx0aWYgKCFkYXRhKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdFx0dHJ5IHtcclxuXHRcdFx0cmV0dXJuIEpTT04ucGFyc2UoZGF0YSk7XHJcblx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRjb25zb2xlLndhcm4oJ0Vycm9yIHBhcnNpbmcgZGF0YTonLCBlcnJvcik7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iXX0=
@@ -1,3 +1,4 @@
1
1
  export * from './base.service';
2
2
  export * from './models/index';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvYmFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhc2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2luZGV4JztcclxuIl19
3
+ export * from './base-editor-config.service';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9zaGFyZWQvc2VydmljZXMvYmFzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyw4QkFBOEIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFzZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvaW5kZXgnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Jhc2UtZWRpdG9yLWNvbmZpZy5zZXJ2aWNlJ1xyXG4iXX0=