igniteui-angular 13.1.0-rc.1 → 13.1.0-rc.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 (62) hide show
  1. package/esm2020/lib/action-strip/grid-actions/grid-editing-actions.component.mjs +2 -2
  2. package/esm2020/lib/data-operations/pivot-sort-strategy.mjs +44 -0
  3. package/esm2020/lib/data-operations/pivot-strategy.mjs +2 -43
  4. package/esm2020/lib/grids/cell.component.mjs +1 -2
  5. package/esm2020/lib/grids/common/grid.interface.mjs +1 -1
  6. package/esm2020/lib/grids/filtering/excel-style/excel-style-search.component.mjs +6 -3
  7. package/esm2020/lib/grids/grid-base.directive.mjs +11 -11
  8. package/esm2020/lib/grids/hierarchical-grid/hierarchical-cell.component.mjs +2 -2
  9. package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid-api.service.mjs +3 -3
  10. package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.mjs +10 -10
  11. package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid-navigation.service.mjs +3 -3
  12. package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid.component.mjs +31 -30
  13. package/esm2020/lib/grids/hierarchical-grid/hierarchical-grid.module.mjs +1 -1
  14. package/esm2020/lib/grids/hierarchical-grid/hierarchical-row.component.mjs +2 -2
  15. package/esm2020/lib/grids/hierarchical-grid/row-island.component.mjs +12 -13
  16. package/esm2020/lib/grids/pivot-grid/pivot-data-selector.component.mjs +2 -5
  17. package/esm2020/lib/grids/pivot-grid/pivot-grid-dimensions.mjs +2 -2
  18. package/esm2020/lib/grids/pivot-grid/pivot-grid.component.mjs +13 -13
  19. package/esm2020/lib/grids/pivot-grid/pivot-grid.pipes.mjs +7 -9
  20. package/esm2020/lib/grids/pivot-grid/pivot-header-row.component.mjs +6 -9
  21. package/esm2020/lib/grids/pivot-grid/pivot-row-dimension-content.component.mjs +9 -10
  22. package/esm2020/lib/grids/pivot-grid/pivot-row-dimension-header-group.component.mjs +1 -1
  23. package/esm2020/lib/grids/pivot-grid/pivot-row.component.mjs +1 -1
  24. package/esm2020/lib/grids/pivot-grid/pivot-sort-util.mjs +26 -0
  25. package/esm2020/lib/grids/pivot-grid/pivot-util.mjs +1 -23
  26. package/esm2020/lib/grids/resizing/pivot-grid/pivot-resize-handle.directive.mjs +1 -1
  27. package/esm2020/lib/grids/resizing/resize-handle.directive.mjs +1 -1
  28. package/esm2020/lib/grids/resizing/resizer.component.mjs +1 -1
  29. package/esm2020/lib/grids/resizing/resizing.service.mjs +1 -1
  30. package/esm2020/lib/grids/row.directive.mjs +1 -1
  31. package/esm2020/lib/grids/state.directive.mjs +2 -2
  32. package/esm2020/lib/grids/toolbar/grid-toolbar.base.mjs +1 -1
  33. package/esm2020/lib/grids/tree-grid/tree-grid.component.mjs +5 -7
  34. package/esm2020/lib/progressbar/progressbar.component.mjs +1 -2
  35. package/esm2020/lib/services/exporter-common/base-export-service.mjs +3 -3
  36. package/esm2020/public_api.mjs +2 -1
  37. package/fesm2015/igniteui-angular.mjs +276 -290
  38. package/fesm2015/igniteui-angular.mjs.map +1 -1
  39. package/fesm2020/igniteui-angular.mjs +276 -289
  40. package/fesm2020/igniteui-angular.mjs.map +1 -1
  41. package/lib/data-operations/pivot-sort-strategy.d.ts +16 -0
  42. package/lib/data-operations/pivot-strategy.d.ts +0 -14
  43. package/lib/grids/cell.component.d.ts +2 -2
  44. package/lib/grids/common/grid.interface.d.ts +3 -3
  45. package/lib/grids/grid-base.directive.d.ts +6 -7
  46. package/lib/grids/hierarchical-grid/hierarchical-grid-api.service.d.ts +1 -1
  47. package/lib/grids/hierarchical-grid/hierarchical-grid-base.directive.d.ts +4 -8
  48. package/lib/grids/hierarchical-grid/hierarchical-grid.component.d.ts +11 -6
  49. package/lib/grids/hierarchical-grid/row-island.component.d.ts +5 -5
  50. package/lib/grids/pivot-grid/pivot-grid-dimensions.d.ts +1 -1
  51. package/lib/grids/pivot-grid/pivot-grid.component.d.ts +4 -2
  52. package/lib/grids/pivot-grid/pivot-grid.pipes.d.ts +2 -2
  53. package/lib/grids/pivot-grid/pivot-header-row.component.d.ts +1 -1
  54. package/lib/grids/pivot-grid/pivot-row-dimension-content.component.d.ts +6 -6
  55. package/lib/grids/pivot-grid/pivot-sort-util.d.ts +5 -0
  56. package/lib/grids/pivot-grid/pivot-util.d.ts +0 -1
  57. package/lib/grids/row.directive.d.ts +3 -3
  58. package/lib/grids/tree-grid/tree-grid.component.d.ts +2 -4
  59. package/lib/progressbar/progressbar.component.d.ts +1 -1
  60. package/package.json +1 -1
  61. package/public_api.d.ts +1 -0
  62. package/schematics/tsconfig.tsbuildinfo +1 -1
@@ -34,7 +34,6 @@ export class IgxPivotRowDimensionContentComponent extends IgxGridHeaderRowCompon
34
34
  * @internal
35
35
  */
36
36
  ngOnChanges(changes) {
37
- const rowDimConfig = this.grid.rowDimensions;
38
37
  if (changes.rowData) {
39
38
  // generate new rowDimension on row data change
40
39
  this.rowDimensionData = null;
@@ -51,23 +50,23 @@ export class IgxPivotRowDimensionContentComponent extends IgxGridHeaderRowCompon
51
50
  * @hidden
52
51
  * @internal
53
52
  */
54
- toggleRowDimension(event, column) {
55
- this.grid.toggleRow(this.getRowDimensionKey(column));
53
+ toggleRowDimension(event) {
54
+ this.grid.toggleRow(this.getRowDimensionKey());
56
55
  event?.stopPropagation();
57
56
  }
58
57
  /**
59
58
  * @hidden
60
59
  * @internal
61
60
  */
62
- getRowDimensionKey(col) {
61
+ getRowDimensionKey() {
63
62
  const dimData = this.rowDimensionData;
64
63
  const key = PivotUtil.getRecordKey(this.rowData, dimData.dimension);
65
64
  return key;
66
65
  }
67
- getExpandState(col) {
68
- return this.grid.gridAPI.get_row_expansion_state(this.getRowDimensionKey(col));
66
+ getExpandState() {
67
+ return this.grid.gridAPI.get_row_expansion_state(this.getRowDimensionKey());
69
68
  }
70
- getLevel(col) {
69
+ getLevel() {
71
70
  return this.dimension.level;
72
71
  }
73
72
  get rowSpan() {
@@ -108,10 +107,10 @@ export class IgxPivotRowDimensionContentComponent extends IgxGridHeaderRowCompon
108
107
  }
109
108
  }
110
109
  IgxPivotRowDimensionContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: IgxPivotRowDimensionContentComponent, deps: [{ token: IGX_GRID_BASE }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
111
- IgxPivotRowDimensionContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: IgxPivotRowDimensionContentComponent, selector: "igx-pivot-row-dimension-content", inputs: { rowIndex: "rowIndex", dimension: "dimension", rootDimension: "rootDimension", rowData: "rowData" }, viewQueries: [{ propertyName: "headerTemplate", first: true, predicate: ["headerTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "headerTemplateDefault", first: true, predicate: ["headerDefaultTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "headerGroups", predicate: IgxPivotRowDimensionHeaderGroupComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div role=\"rowgroup\" class=\"igx-grid-thead__wrapper\" [style.width.px]=\"width\"\n [class.igx-grid__tr--mrl]=\"hasMRL\">\n <div class=\"igx-grid__tr igx-grid__tr-header-row\" role=\"row\" [style.width.px]=\"width\">\n <igx-pivot-row-dimension-header-group [ngClass]=\"rowDimensionColumn.headerGroupClasses\"\n [ngStyle]=\"rowDimensionColumn.headerGroupStyles |igxHeaderGroupStyle:rowDimensionColumn:grid.pipeTrigger\" [column]=\"rowDimensionColumn\"\n [style.min-width]=\"grid.rowDimensionWidthToPixels(rootDimension) | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"grid.rowDimensionWidthToPixels(rootDimension) | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [rowIndex]=\"rowIndex\"\n [style.height.px]='headerHeight' [parent]='this'>\n </igx-pivot-row-dimension-header-group>\n </div>\n</div>\n\n<ng-template #headerTemplate let-column>\n <div class='igx-grid__tr--header igx-grid__row-indentation--level-{{dimension.level}}'>\n <igx-icon [attr.draggable]=\" false\" (click)=\"toggleRowDimension($event, column)\">\n {{ getExpandState(column) ? 'expand_more' : 'chevron_right'}}</igx-icon>\n {{column.header}}\n </div>\n</ng-template>\n\n<ng-template #headerDefaultTemplate let-column>\n\n <div class='igx-grid__tr--header igx-grid__row-indentation--level-{{dimension.level}}'>\n <igx-icon style='flex-shrink: 0;' [attr.draggable]=\" false\">\n </igx-icon>\n {{column.header}}\n </div>\n</ng-template>", components: [{ type: i1.IgxPivotRowDimensionHeaderGroupComponent, selector: "igx-pivot-row-dimension-header-group", inputs: ["rowIndex", "parent"] }, { type: i2.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "igxHeaderGroupStyle": i4.IgxHeaderGroupStylePipe, "igxHeaderGroupWidth": i4.IgxHeaderGroupWidthPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
110
+ IgxPivotRowDimensionContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: IgxPivotRowDimensionContentComponent, selector: "igx-pivot-row-dimension-content", inputs: { rowIndex: "rowIndex", dimension: "dimension", rootDimension: "rootDimension", rowData: "rowData" }, viewQueries: [{ propertyName: "headerTemplate", first: true, predicate: ["headerTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "headerTemplateDefault", first: true, predicate: ["headerDefaultTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "headerGroups", predicate: IgxPivotRowDimensionHeaderGroupComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div role=\"rowgroup\" class=\"igx-grid-thead__wrapper\" [style.width.px]=\"width\"\n [class.igx-grid__tr--mrl]=\"hasMRL\">\n <div class=\"igx-grid__tr igx-grid__tr-header-row\" role=\"row\" [style.width.px]=\"width\">\n <igx-pivot-row-dimension-header-group [ngClass]=\"rowDimensionColumn.headerGroupClasses\"\n [ngStyle]=\"rowDimensionColumn.headerGroupStyles | igxHeaderGroupStyle:rowDimensionColumn:grid.pipeTrigger\" [column]=\"rowDimensionColumn\"\n [style.min-width]=\"grid.rowDimensionWidthToPixels(rootDimension) | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"grid.rowDimensionWidthToPixels(rootDimension) | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [rowIndex]=\"rowIndex\"\n [style.height.px]='headerHeight' [parent]='this'>\n </igx-pivot-row-dimension-header-group>\n </div>\n</div>\n\n<ng-template #headerTemplate let-column>\n <div class='igx-grid__tr--header igx-grid__row-indentation--level-{{dimension.level}}'>\n <igx-icon [attr.draggable]=\" false\" (click)=\"toggleRowDimension($event)\">\n {{ getExpandState() ? 'expand_more' : 'chevron_right'}}</igx-icon>\n {{column.header}}\n </div>\n</ng-template>\n\n<ng-template #headerDefaultTemplate let-column>\n\n <div class='igx-grid__tr--header igx-grid__row-indentation--level-{{dimension.level}}'>\n <igx-icon style='flex-shrink: 0;' [attr.draggable]=\" false\">\n </igx-icon>\n {{column.header}}\n </div>\n</ng-template>\n", components: [{ type: i1.IgxPivotRowDimensionHeaderGroupComponent, selector: "igx-pivot-row-dimension-header-group", inputs: ["rowIndex", "parent"] }, { type: i2.IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }], directives: [{ type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], pipes: { "igxHeaderGroupStyle": i4.IgxHeaderGroupStylePipe, "igxHeaderGroupWidth": i4.IgxHeaderGroupWidthPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
112
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: IgxPivotRowDimensionContentComponent, decorators: [{
113
112
  type: Component,
114
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-pivot-row-dimension-content', template: "<div role=\"rowgroup\" class=\"igx-grid-thead__wrapper\" [style.width.px]=\"width\"\n [class.igx-grid__tr--mrl]=\"hasMRL\">\n <div class=\"igx-grid__tr igx-grid__tr-header-row\" role=\"row\" [style.width.px]=\"width\">\n <igx-pivot-row-dimension-header-group [ngClass]=\"rowDimensionColumn.headerGroupClasses\"\n [ngStyle]=\"rowDimensionColumn.headerGroupStyles |igxHeaderGroupStyle:rowDimensionColumn:grid.pipeTrigger\" [column]=\"rowDimensionColumn\"\n [style.min-width]=\"grid.rowDimensionWidthToPixels(rootDimension) | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"grid.rowDimensionWidthToPixels(rootDimension) | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [rowIndex]=\"rowIndex\"\n [style.height.px]='headerHeight' [parent]='this'>\n </igx-pivot-row-dimension-header-group>\n </div>\n</div>\n\n<ng-template #headerTemplate let-column>\n <div class='igx-grid__tr--header igx-grid__row-indentation--level-{{dimension.level}}'>\n <igx-icon [attr.draggable]=\" false\" (click)=\"toggleRowDimension($event, column)\">\n {{ getExpandState(column) ? 'expand_more' : 'chevron_right'}}</igx-icon>\n {{column.header}}\n </div>\n</ng-template>\n\n<ng-template #headerDefaultTemplate let-column>\n\n <div class='igx-grid__tr--header igx-grid__row-indentation--level-{{dimension.level}}'>\n <igx-icon style='flex-shrink: 0;' [attr.draggable]=\" false\">\n </igx-icon>\n {{column.header}}\n </div>\n</ng-template>" }]
113
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'igx-pivot-row-dimension-content', template: "<div role=\"rowgroup\" class=\"igx-grid-thead__wrapper\" [style.width.px]=\"width\"\n [class.igx-grid__tr--mrl]=\"hasMRL\">\n <div class=\"igx-grid__tr igx-grid__tr-header-row\" role=\"row\" [style.width.px]=\"width\">\n <igx-pivot-row-dimension-header-group [ngClass]=\"rowDimensionColumn.headerGroupClasses\"\n [ngStyle]=\"rowDimensionColumn.headerGroupStyles | igxHeaderGroupStyle:rowDimensionColumn:grid.pipeTrigger\" [column]=\"rowDimensionColumn\"\n [style.min-width]=\"grid.rowDimensionWidthToPixels(rootDimension) | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [style.flex-basis]=\"grid.rowDimensionWidthToPixels(rootDimension) | igxHeaderGroupWidth:grid.defaultHeaderGroupMinWidth:hasMRL\"\n [rowIndex]=\"rowIndex\"\n [style.height.px]='headerHeight' [parent]='this'>\n </igx-pivot-row-dimension-header-group>\n </div>\n</div>\n\n<ng-template #headerTemplate let-column>\n <div class='igx-grid__tr--header igx-grid__row-indentation--level-{{dimension.level}}'>\n <igx-icon [attr.draggable]=\" false\" (click)=\"toggleRowDimension($event)\">\n {{ getExpandState() ? 'expand_more' : 'chevron_right'}}</igx-icon>\n {{column.header}}\n </div>\n</ng-template>\n\n<ng-template #headerDefaultTemplate let-column>\n\n <div class='igx-grid__tr--header igx-grid__row-indentation--level-{{dimension.level}}'>\n <igx-icon style='flex-shrink: 0;' [attr.draggable]=\" false\">\n </igx-icon>\n {{column.header}}\n </div>\n</ng-template>\n" }]
115
114
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
116
115
  type: Inject,
117
116
  args: [IGX_GRID_BASE]
@@ -133,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
133
132
  type: ViewChildren,
134
133
  args: [IgxPivotRowDimensionHeaderGroupComponent]
135
134
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3Qtcm93LWRpbWVuc2lvbi1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9waXZvdC1ncmlkL3Bpdm90LXJvdy1kaW1lbnNpb24tY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvcGl2b3QtZ3JpZC9waXZvdC1yb3ctZGltZW5zaW9uLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBSVQsTUFBTSxFQUNOLEtBQUssRUFHTCxXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFFZixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFpQixNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBR2pGLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7OztBQUV6Qzs7Ozs7OztHQU9HO0FBTUgsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLHlCQUF5QjtJQWdDL0UsWUFDa0MsSUFBbUIsRUFDdkMsR0FBNEIsRUFDNUIsR0FBc0IsRUFDdEIsUUFBa0MsRUFDbEMsT0FBeUI7UUFFbkMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQU5jLFNBQUksR0FBSixJQUFJLENBQWU7UUFDdkMsUUFBRyxHQUFILEdBQUcsQ0FBeUI7UUFDNUIsUUFBRyxHQUFILEdBQUcs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LEdBQUcsQ0FBQyxRQUFRLENBQUM7SUFDeEIsQ0FBQzs7aUlBeklRLG9DQUFvQyxrQkFpQ2pDLGFBQWE7cUhBakNoQixvQ0FBb0Msa1JBb0JSLFdBQVcsdUlBTUosV0FBVyw2REFHekMsd0NBQXdDLDRGQ3BFMUQsMmxEQTRCYzsyRkRXRCxvQ0FBb0M7a0JBTGhELFNBQVM7c0NBQ1csdUJBQXVCLENBQUMsTUFBTSxZQUNyQyxpQ0FBaUM7OzBCQW9DdEMsTUFBTTsyQkFBQyxhQUFhOzJLQTNCbEIsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxhQUFhO3NCQURuQixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFPQyxjQUFjO3NCQURwQixTQUFTO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU96RCxxQkFBcUI7c0JBRDNCLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSWhFLFlBQVk7c0JBRGxCLFlBQVk7dUJBQUMsd0NBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5Hcm91cENvbXBvbmVudCB9IGZyb20gJy4uL2NvbHVtbnMvY29sdW1uLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5MYXlvdXRDb21wb25lbnQgfSBmcm9tICcuLi9jb2x1bW5zL2NvbHVtbi1sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7IElneENvbHVtbkNvbXBvbmVudCB9IGZyb20gJy4uL2NvbHVtbnMvY29sdW1uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJR1hfR1JJRF9CQVNFLCBQaXZvdEdyaWRUeXBlIH0gZnJvbSAnLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElneEdyaWRIZWFkZXJSb3dDb21wb25lbnQgfSBmcm9tICcuLi9oZWFkZXJzL2dyaWQtaGVhZGVyLXJvdy5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4Um93RGlyZWN0aXZlIH0gZnJvbSAnLi4vcm93LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJUGl2b3REaW1lbnNpb24sIElQaXZvdERpbWVuc2lvbkRhdGEsIElQaXZvdEdyaWRHcm91cFJlY29yZCB9IGZyb20gJy4vcGl2b3QtZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4UGl2b3RSb3dEaW1lbnNpb25IZWFkZXJHcm91cENvbXBvbmVudCB9IGZyb20gJy4vcGl2b3Qtcm93LWRpbWVuc2lvbi1oZWFkZXItZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFBpdm90VXRpbCB9IGZyb20gJy4vcGl2b3QtdXRpbCc7XG5cbi8qKlxuICpcbiAqIEZvciBhbGwgaW50ZW50cyAmIHB1cnBvc2VzIHRyZWF0IHRoaXMgY29tcG9uZW50IGFzIHdoYXQgYSA8dGhlYWQ+IHVzdWFsbHkgaXMgaW4gdGhlIGRlZmF1bHQgPHRhYmxlPiBlbGVtZW50LlxuICpcbiAqIFRoaXMgY29udGFpbmVyIGhvbGRzIHRoZSBwaXZvdCBncmlkIGhlYWRlciBlbGVtZW50cyBhbmQgdGhlaXIgYmVoYXZpb3IvaW50ZXJhY3Rpb25zLlxuICpcbiAqIEBoaWRkZW4gQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnaWd4LXBpdm90LXJvdy1kaW1lbnNpb24tY29udGVudCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Bpdm90LXJvdy1kaW1lbnNpb24tY29udGVudC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSWd4UGl2b3RSb3dEaW1lbnNpb25Db250ZW50Q29tcG9uZW50IGV4dGVuZHMgSWd4R3JpZEhlYWRlclJvd0NvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvd0luZGV4OiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaW1lbnNpb246IElQaXZvdERpbWVuc2lvbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvb3REaW1lbnNpb246IElQaXZvdERpbWVuc2lvbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvd0RhdGE6IElQaXZvdEdyaWRHcm91cFJlY29yZDtcblxuICAgIC8qKlxuICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlclRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdoZWFkZXJEZWZhdWx0VGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgaGVhZGVyVGVtcGxhdGVEZWZhdWx0OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZHJlbihJZ3hQaXZvdFJvd0RpbWVuc2lvbkhlYWRlckdyb3VwQ29tcG9uZW50KVxuICAgIHB1YmxpYyBoZWFkZXJHcm91cHM6IFF1ZXJ5TGlzdDxJZ3hQaXZvdFJvd0RpbWVuc2lvbkhlYWRlckdyb3VwQ29tcG9uZW50PlxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoSUdYX0dSSURfQkFTRSkgcHVibGljIGdyaWQ6IFBpdm90R3JpZFR5cGUsXG4gICAgICAgIHByb3RlY3RlZCByZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByb3RlY3RlZCB2aWV3UmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHJlZiwgY2RyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyByb3dEaW1lbnNpb25EYXRhOiBJUGl2b3REaW1lbnNpb25EYXRhO1xuXG4gICAgcHVibGljIGdldCByb3dEaW1lbnNpb25Db2x1bW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvd0RpbWVuc2lvbkRhdGE/LmNvbHVtbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIEBoaWRkZW5cbiAgICAqIEBpbnRlcm5hbFxuICAgICovXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgY29uc3Qgcm93RGltQ29uZmlnID0gdGhpcy5ncmlkLnJvd0RpbWVuc2lvbnM7XG4gICAgICAgIGlmIChjaGFuZ2VzLnJvd0RhdGEpIHtcbiAgICAgICAgICAgIC8vIGdlbmVyYXRlIG5ldyByb3dEaW1lbnNpb24gb24gcm93IGRhdGEgY2hhbmdlXG4gICAgICAgICAgICB0aGlzLnJvd0RpbWVuc2lvbkRhdGEgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy52aWV3UmVmLmNsZWFyKCk7XG4gICAgICAgICAgICB0aGlzLmV4dHJhY3RGcm9tRGltZW5zaW9ucygpO1xuICAgICAgICAgICAgdGhpcy52aWV3UmVmLmNsZWFyKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXMud2lkdGggJiYgdGhpcy5yb3dEaW1lbnNpb25EYXRhKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5yb3dEaW1lbnNpb25EYXRhO1xuICAgICAgICAgICAgZGF0YS5jb2x1bW4ud2lkdGggPSB0aGlzLmdyaWQucm93RGltZW5zaW9uV2lkdGhUb1BpeGVscyh0aGlzLnJvb3REaW1lbnNpb24pICsgJ3B4JztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICogQGhpZGRlblxuICAgICogQGludGVybmFsXG4gICAgKi9cbiAgICBwdWJsaWMgdG9nZ2xlUm93RGltZW5zaW9uKGV2ZW50LCBjb2x1bW4pIHtcbiAgICAgICAgdGhpcy5ncmlkLnRvZ2dsZVJvdyh0aGlzLmdldFJvd0RpbWVuc2lvbktleShjb2x1bW4pKVxuICAgICAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldFJvd0RpbWVuc2lvbktleShjb2w6IElneENvbHVtbkNvbXBvbmVudCkge1xuICAgICAgICBjb25zdCBkaW1EYXRhID0gdGhpcy5yb3dEaW1lbnNpb25EYXRhO1xuICAgICAgICBjb25zdCBrZXkgPSBQaXZvdFV0aWwuZ2V0UmVjb3JkS2V5KHRoaXMucm93RGF0YSwgZGltRGF0YS5kaW1lbnNpb24pO1xuICAgICAgICByZXR1cm4ga2V5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFeHBhbmRTdGF0ZShjb2w6IElneENvbHVtbkNvbXBvbmVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLmdyaWRBUEkuZ2V0X3Jvd19leHBhbnNpb25fc3RhdGUodGhpcy5nZXRSb3dEaW1lbnNpb25LZXkoY29sKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldExldmVsKGNvbDogSWd4Q29sdW1uQ29tcG9uZW50KSB7XG4gICAgICAgIHJldHVybiAodGhpcy5kaW1lbnNpb24gYXMgYW55KS5sZXZlbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvd1NwYW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvd0RhdGEucm93U3BhbiB8fCAxO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGVhZGVySGVpZ2h0KCkge1xuXG4gICAgICAgIHJldHVybiB0aGlzLnJvd1NwYW4gPiAxID8gdGhpcy5yb3dTcGFuICogdGhpcy5ncmlkLnJvd0hlaWdodCArICh0aGlzLnJvd1NwYW4gLSAxKSA6IHRoaXMuZ3JpZC5yb3dIZWlnaHQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGV4dHJhY3RGcm9tRGltZW5zaW9ucygpIHtcbiAgICAgICAgY29uc3QgY29sID0gdGhpcy5leHRyYWN0RnJvbURpbWVuc2lvbih0aGlzLmRpbWVuc2lvbiwgdGhpcy5yb3dEYXRhKTtcbiAgICAgICAgY29uc3QgcHJldkRpbXMgPSBbXTtcbiAgICAgICAgdGhpcy5yb3dEaW1lbnNpb25EYXRhID0ge1xuICAgICAgICAgICAgY29sdW1uOiBjb2wsXG4gICAgICAgICAgICBkaW1lbnNpb246IHRoaXMuZGltZW5zaW9uLFxuICAgICAgICAgICAgcHJldkRpbWVuc2lvbnM6IHByZXZEaW1zXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGV4dHJhY3RGcm9tRGltZW5zaW9uKGRpbTogSVBpdm90RGltZW5zaW9uLCByb3dEYXRhOiBJUGl2b3RHcmlkR3JvdXBSZWNvcmQpIHtcbiAgICAgICAgY29uc3QgZmllbGQgPSBkaW0ubWVtYmVyTmFtZTtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gcm93RGF0YS5kaW1lbnNpb25WYWx1ZXMuZ2V0KGZpZWxkKTtcbiAgICAgICAgY29uc3QgY29sID0gdGhpcy5fY3JlYXRlQ29sQ29tcG9uZW50KGZpZWxkLCBoZWFkZXIsIGRpbSk7XG4gICAgICAgIHJldHVybiBjb2w7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9jcmVhdGVDb2xDb21wb25lbnQoZmllbGQ6IHN0cmluZywgaGVhZGVyOiBzdHJpbmcsIGRpbTogSVBpdm90RGltZW5zaW9uKSB7XG4gICAgICAgIGNvbnN0IHJlZiA9IHRoaXMudmlld1JlZi5jcmVhdGVDb21wb25lbnQoSWd4Q29sdW1uQ29tcG9uZW50KTtcbiAgICAgICAgcmVmLmluc3RhbmNlLmZpZWxkID0gZmllbGQ7XG4gICAgICAgIHJlZi5pbnN0YW5jZS5oZWFkZXIgPSBoZWFkZXI7XG4gICAgICAgIHJlZi5pbnN0YW5jZS53aWR0aCA9IHRoaXMuZ3JpZC5yb3dEaW1lbnNpb25XaWR0aFRvUGl4ZWxzKHRoaXMucm9vdERpbWVuc2lvbikgKyAncHgnO1xuICAgICAgICByZWYuaW5zdGFuY2UucmVzaXphYmxlID0gdGhpcy5ncmlkLnJvd0RpbWVuc2lvblJlc2l6aW5nO1xuICAgICAgICAocmVmIGFzIGFueSkuaW5zdGFuY2UuX3ZJbmRleCA9IHRoaXMuZ3JpZC5jb2x1bW5zLmxlbmd0aCArIHRoaXMucm93SW5kZXggKyB0aGlzLnJvd0luZGV4ICogdGhpcy5ncmlkLnBpdm90Q29uZmlndXJhdGlvbi5yb3dzLmxlbmd0aDtcbiAgICAgICAgaWYgKGRpbS5jaGlsZExldmVsKSB7XG4gICAgICAgICAgICByZWYuaW5zdGFuY2UuaGVhZGVyVGVtcGxhdGUgPSB0aGlzLmhlYWRlclRlbXBsYXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVmLmluc3RhbmNlLmhlYWRlclRlbXBsYXRlID0gdGhpcy5oZWFkZXJUZW1wbGF0ZURlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlZi5pbnN0YW5jZTtcbiAgICB9XG59XG4iLCI8ZGl2IHJvbGU9XCJyb3dncm91cFwiIGNsYXNzPVwiaWd4LWdyaWQtdGhlYWRfX3dyYXBwZXJcIiBbc3R5bGUud2lkdGgucHhdPVwid2lkdGhcIlxuICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdHItLW1ybF09XCJoYXNNUkxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWRfX3RyIGlneC1ncmlkX190ci1oZWFkZXItcm93XCIgcm9sZT1cInJvd1wiIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aFwiPlxuICAgICAgICAgICAgPGlneC1waXZvdC1yb3ctZGltZW5zaW9uLWhlYWRlci1ncm91cCBbbmdDbGFzc109XCJyb3dEaW1lbnNpb25Db2x1bW4uaGVhZGVyR3JvdXBDbGFzc2VzXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJyb3dEaW1lbnNpb25Db2x1bW4uaGVhZGVyR3JvdXBTdHlsZXMgfGlneEhlYWRlckdyb3VwU3R5bGU6cm93RGltZW5zaW9uQ29sdW1uOmdyaWQucGlwZVRyaWdnZXJcIiBbY29sdW1uXT1cInJvd0RpbWVuc2lvbkNvbHVtblwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJncmlkLnJvd0RpbWVuc2lvbldpZHRoVG9QaXhlbHMocm9vdERpbWVuc2lvbikgfCBpZ3hIZWFkZXJHcm91cFdpZHRoOmdyaWQuZGVmYXVsdEhlYWRlckdyb3VwTWluV2lkdGg6aGFzTVJMXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuZmxleC1iYXNpc109XCJncmlkLnJvd0RpbWVuc2lvbldpZHRoVG9QaXhlbHMocm9vdERpbWVuc2lvbikgfCBpZ3hIZWFkZXJHcm91cFdpZHRoOmdyaWQuZGVmYXVsdEhlYWRlckdyb3VwTWluV2lkdGg6aGFzTVJMXCJcbiAgICAgICAgICAgICAgICBbcm93SW5kZXhdPVwicm93SW5kZXhcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPSdoZWFkZXJIZWlnaHQnIFtwYXJlbnRdPSd0aGlzJz5cbiAgICAgICAgICAgIDwvaWd4LXBpdm90LXJvdy1kaW1lbnNpb24taGVhZGVyLWdyb3VwPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyVGVtcGxhdGUgbGV0LWNvbHVtbj5cbiAgICA8ZGl2IGNsYXNzPSdpZ3gtZ3JpZF9fdHItLWhlYWRlciBpZ3gtZ3JpZF9fcm93LWluZGVudGF0aW9uLS1sZXZlbC17e2RpbWVuc2lvbi5sZXZlbH19Jz5cbiAgICAgICAgPGlneC1pY29uIFthdHRyLmRyYWdnYWJsZV09XCIgZmFsc2VcIiAoY2xpY2spPVwidG9nZ2xlUm93RGltZW5zaW9uKCRldmVudCwgY29sdW1uKVwiPlxuICAgICAgICAgICAge3sgZ2V0RXhwYW5kU3RhdGUoY29sdW1uKSA/ICdleHBhbmRfbW9yZScgOiAnY2hldnJvbl9yaWdodCd9fTwvaWd4LWljb24+XG4gICAgICAgIHt7Y29sdW1uLmhlYWRlcn19XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2hlYWRlckRlZmF1bHRUZW1wbGF0ZSBsZXQtY29sdW1uPlxuXG4gICAgPGRpdiBjbGFzcz0naWd4LWdyaWRfX3RyLS1oZWFkZXIgaWd4LWdyaWRfX3Jvdy1pbmRlbnRhdGlvbi0tbGV2ZWwte3tkaW1lbnNpb24ubGV2ZWx9fSc+XG4gICAgICAgIDxpZ3gtaWNvbiBzdHlsZT0nZmxleC1zaHJpbms6IDA7JyBbYXR0ci5kcmFnZ2FibGVdPVwiIGZhbHNlXCI+XG4gICAgICAgIDwvaWd4LWljb24+XG4gICAgICAgIHt7Y29sdW1uLmhlYWRlcn19XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3Qtcm93LWRpbWVuc2lvbi1jb250ZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9waXZvdC1ncmlkL3Bpdm90LXJvdy1kaW1lbnNpb24tY29udGVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvcGl2b3QtZ3JpZC9waXZvdC1yb3ctZGltZW5zaW9uLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBR1QsTUFBTSxFQUNOLEtBQUssRUFJTCxXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFFZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFpQixNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRWpGLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7OztBQUV6Qzs7Ozs7OztHQU9HO0FBTUgsTUFBTSxPQUFPLG9DQUFxQyxTQUFRLHlCQUF5QjtJQWdDL0UsWUFDa0MsSUFBbUIsRUFDdkMsR0FBNEIsRUFDNUIsR0FBc0IsRUFDdEIsUUFBa0MsRUFDbEMsT0FBeUI7UUFFbkMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQU5jLFNBQUksR0FBSixJQUFJLENBQWU7UUFDdkMsUUFBRyxHQUFILEdBQUcsQ0FBeUI7UUFDNUIsUUFBRyxHQUFILEdBQUcs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RTFELGdsREE2QkE7MkZET2Esb0NBQW9DO2tCQUxoRCxTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsaUNBQWlDOzswQkFvQ3RDLE1BQU07MkJBQUMsYUFBYTsyS0EzQmxCLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBT0MsY0FBYztzQkFEcEIsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFPekQscUJBQXFCO3NCQUQzQixTQUFTO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUloRSxZQUFZO3NCQURsQixZQUFZO3VCQUFDLHdDQUF3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWd4Q29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29sdW1ucy9jb2x1bW4uY29tcG9uZW50JztcbmltcG9ydCB7IElHWF9HUklEX0JBU0UsIFBpdm90R3JpZFR5cGUgfSBmcm9tICcuLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4R3JpZEhlYWRlclJvd0NvbXBvbmVudCB9IGZyb20gJy4uL2hlYWRlcnMvZ3JpZC1oZWFkZXItcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJUGl2b3REaW1lbnNpb24sIElQaXZvdERpbWVuc2lvbkRhdGEsIElQaXZvdEdyaWRHcm91cFJlY29yZCB9IGZyb20gJy4vcGl2b3QtZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4UGl2b3RSb3dEaW1lbnNpb25IZWFkZXJHcm91cENvbXBvbmVudCB9IGZyb20gJy4vcGl2b3Qtcm93LWRpbWVuc2lvbi1oZWFkZXItZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFBpdm90VXRpbCB9IGZyb20gJy4vcGl2b3QtdXRpbCc7XG5cbi8qKlxuICpcbiAqIEZvciBhbGwgaW50ZW50cyAmIHB1cnBvc2VzIHRyZWF0IHRoaXMgY29tcG9uZW50IGFzIHdoYXQgYSA8dGhlYWQ+IHVzdWFsbHkgaXMgaW4gdGhlIGRlZmF1bHQgPHRhYmxlPiBlbGVtZW50LlxuICpcbiAqIFRoaXMgY29udGFpbmVyIGhvbGRzIHRoZSBwaXZvdCBncmlkIGhlYWRlciBlbGVtZW50cyBhbmQgdGhlaXIgYmVoYXZpb3IvaW50ZXJhY3Rpb25zLlxuICpcbiAqIEBoaWRkZW4gQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnaWd4LXBpdm90LXJvdy1kaW1lbnNpb24tY29udGVudCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Bpdm90LXJvdy1kaW1lbnNpb24tY29udGVudC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSWd4UGl2b3RSb3dEaW1lbnNpb25Db250ZW50Q29tcG9uZW50IGV4dGVuZHMgSWd4R3JpZEhlYWRlclJvd0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvd0luZGV4OiBudW1iZXI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaW1lbnNpb246IElQaXZvdERpbWVuc2lvbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvb3REaW1lbnNpb246IElQaXZvdERpbWVuc2lvbjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvd0RhdGE6IElQaXZvdEdyaWRHcm91cFJlY29yZDtcblxuICAgIC8qKlxuICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlclRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdoZWFkZXJEZWZhdWx0VGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgaGVhZGVyVGVtcGxhdGVEZWZhdWx0OiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZHJlbihJZ3hQaXZvdFJvd0RpbWVuc2lvbkhlYWRlckdyb3VwQ29tcG9uZW50KVxuICAgIHB1YmxpYyBoZWFkZXJHcm91cHM6IFF1ZXJ5TGlzdDxJZ3hQaXZvdFJvd0RpbWVuc2lvbkhlYWRlckdyb3VwQ29tcG9uZW50PlxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoSUdYX0dSSURfQkFTRSkgcHVibGljIGdyaWQ6IFBpdm90R3JpZFR5cGUsXG4gICAgICAgIHByb3RlY3RlZCByZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcm90ZWN0ZWQgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByb3RlY3RlZCB2aWV3UmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKHJlZiwgY2RyKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyByb3dEaW1lbnNpb25EYXRhOiBJUGl2b3REaW1lbnNpb25EYXRhO1xuXG4gICAgcHVibGljIGdldCByb3dEaW1lbnNpb25Db2x1bW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvd0RpbWVuc2lvbkRhdGE/LmNvbHVtbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIEBoaWRkZW5cbiAgICAqIEBpbnRlcm5hbFxuICAgICovXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMucm93RGF0YSkge1xuICAgICAgICAgICAgLy8gZ2VuZXJhdGUgbmV3IHJvd0RpbWVuc2lvbiBvbiByb3cgZGF0YSBjaGFuZ2VcbiAgICAgICAgICAgIHRoaXMucm93RGltZW5zaW9uRGF0YSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLnZpZXdSZWYuY2xlYXIoKTtcbiAgICAgICAgICAgIHRoaXMuZXh0cmFjdEZyb21EaW1lbnNpb25zKCk7XG4gICAgICAgICAgICB0aGlzLnZpZXdSZWYuY2xlYXIoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlcy53aWR0aCAmJiB0aGlzLnJvd0RpbWVuc2lvbkRhdGEpIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLnJvd0RpbWVuc2lvbkRhdGE7XG4gICAgICAgICAgICBkYXRhLmNvbHVtbi53aWR0aCA9IHRoaXMuZ3JpZC5yb3dEaW1lbnNpb25XaWR0aFRvUGl4ZWxzKHRoaXMucm9vdERpbWVuc2lvbikgKyAncHgnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBAaGlkZGVuXG4gICAgKiBAaW50ZXJuYWxcbiAgICAqL1xuICAgIHB1YmxpYyB0b2dnbGVSb3dEaW1lbnNpb24oZXZlbnQpIHtcbiAgICAgICAgdGhpcy5ncmlkLnRvZ2dsZVJvdyh0aGlzLmdldFJvd0RpbWVuc2lvbktleSgpKVxuICAgICAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldFJvd0RpbWVuc2lvbktleSgpIHtcbiAgICAgICAgY29uc3QgZGltRGF0YSA9IHRoaXMucm93RGltZW5zaW9uRGF0YTtcbiAgICAgICAgY29uc3Qga2V5ID0gUGl2b3RVdGlsLmdldFJlY29yZEtleSh0aGlzLnJvd0RhdGEsIGRpbURhdGEuZGltZW5zaW9uKTtcbiAgICAgICAgcmV0dXJuIGtleTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RXhwYW5kU3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQuZ3JpZEFQSS5nZXRfcm93X2V4cGFuc2lvbl9zdGF0ZSh0aGlzLmdldFJvd0RpbWVuc2lvbktleSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TGV2ZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpbWVuc2lvbi5sZXZlbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvd1NwYW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvd0RhdGEucm93U3BhbiB8fCAxO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGVhZGVySGVpZ2h0KCkge1xuXG4gICAgICAgIHJldHVybiB0aGlzLnJvd1NwYW4gPiAxID8gdGhpcy5yb3dTcGFuICogdGhpcy5ncmlkLnJvd0hlaWdodCArICh0aGlzLnJvd1NwYW4gLSAxKSA6IHRoaXMuZ3JpZC5yb3dIZWlnaHQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGV4dHJhY3RGcm9tRGltZW5zaW9ucygpIHtcbiAgICAgICAgY29uc3QgY29sID0gdGhpcy5leHRyYWN0RnJvbURpbWVuc2lvbih0aGlzLmRpbWVuc2lvbiwgdGhpcy5yb3dEYXRhKTtcbiAgICAgICAgY29uc3QgcHJldkRpbXMgPSBbXTtcbiAgICAgICAgdGhpcy5yb3dEaW1lbnNpb25EYXRhID0ge1xuICAgICAgICAgICAgY29sdW1uOiBjb2wsXG4gICAgICAgICAgICBkaW1lbnNpb246IHRoaXMuZGltZW5zaW9uLFxuICAgICAgICAgICAgcHJldkRpbWVuc2lvbnM6IHByZXZEaW1zXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGV4dHJhY3RGcm9tRGltZW5zaW9uKGRpbTogSVBpdm90RGltZW5zaW9uLCByb3dEYXRhOiBJUGl2b3RHcmlkR3JvdXBSZWNvcmQpIHtcbiAgICAgICAgY29uc3QgZmllbGQgPSBkaW0ubWVtYmVyTmFtZTtcbiAgICAgICAgY29uc3QgaGVhZGVyID0gcm93RGF0YS5kaW1lbnNpb25WYWx1ZXMuZ2V0KGZpZWxkKTtcbiAgICAgICAgY29uc3QgY29sID0gdGhpcy5fY3JlYXRlQ29sQ29tcG9uZW50KGZpZWxkLCBoZWFkZXIsIGRpbSk7XG4gICAgICAgIHJldHVybiBjb2w7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9jcmVhdGVDb2xDb21wb25lbnQoZmllbGQ6IHN0cmluZywgaGVhZGVyOiBzdHJpbmcsIGRpbTogSVBpdm90RGltZW5zaW9uKSB7XG4gICAgICAgIGNvbnN0IHJlZiA9IHRoaXMudmlld1JlZi5jcmVhdGVDb21wb25lbnQoSWd4Q29sdW1uQ29tcG9uZW50KTtcbiAgICAgICAgcmVmLmluc3RhbmNlLmZpZWxkID0gZmllbGQ7XG4gICAgICAgIHJlZi5pbnN0YW5jZS5oZWFkZXIgPSBoZWFkZXI7XG4gICAgICAgIHJlZi5pbnN0YW5jZS53aWR0aCA9IHRoaXMuZ3JpZC5yb3dEaW1lbnNpb25XaWR0aFRvUGl4ZWxzKHRoaXMucm9vdERpbWVuc2lvbikgKyAncHgnO1xuICAgICAgICByZWYuaW5zdGFuY2UucmVzaXphYmxlID0gdGhpcy5ncmlkLnJvd0RpbWVuc2lvblJlc2l6aW5nO1xuICAgICAgICAocmVmIGFzIGFueSkuaW5zdGFuY2UuX3ZJbmRleCA9IHRoaXMuZ3JpZC5jb2x1bW5zLmxlbmd0aCArIHRoaXMucm93SW5kZXggKyB0aGlzLnJvd0luZGV4ICogdGhpcy5ncmlkLnBpdm90Q29uZmlndXJhdGlvbi5yb3dzLmxlbmd0aDtcbiAgICAgICAgaWYgKGRpbS5jaGlsZExldmVsKSB7XG4gICAgICAgICAgICByZWYuaW5zdGFuY2UuaGVhZGVyVGVtcGxhdGUgPSB0aGlzLmhlYWRlclRlbXBsYXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVmLmluc3RhbmNlLmhlYWRlclRlbXBsYXRlID0gdGhpcy5oZWFkZXJUZW1wbGF0ZURlZmF1bHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlZi5pbnN0YW5jZTtcbiAgICB9XG59XG4iLCI8ZGl2IHJvbGU9XCJyb3dncm91cFwiIGNsYXNzPVwiaWd4LWdyaWQtdGhlYWRfX3dyYXBwZXJcIiBbc3R5bGUud2lkdGgucHhdPVwid2lkdGhcIlxuICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdHItLW1ybF09XCJoYXNNUkxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWRfX3RyIGlneC1ncmlkX190ci1oZWFkZXItcm93XCIgcm9sZT1cInJvd1wiIFtzdHlsZS53aWR0aC5weF09XCJ3aWR0aFwiPlxuICAgICAgICAgICAgPGlneC1waXZvdC1yb3ctZGltZW5zaW9uLWhlYWRlci1ncm91cCBbbmdDbGFzc109XCJyb3dEaW1lbnNpb25Db2x1bW4uaGVhZGVyR3JvdXBDbGFzc2VzXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJyb3dEaW1lbnNpb25Db2x1bW4uaGVhZGVyR3JvdXBTdHlsZXMgfCBpZ3hIZWFkZXJHcm91cFN0eWxlOnJvd0RpbWVuc2lvbkNvbHVtbjpncmlkLnBpcGVUcmlnZ2VyXCIgW2NvbHVtbl09XCJyb3dEaW1lbnNpb25Db2x1bW5cIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwiZ3JpZC5yb3dEaW1lbnNpb25XaWR0aFRvUGl4ZWxzKHJvb3REaW1lbnNpb24pIHwgaWd4SGVhZGVyR3JvdXBXaWR0aDpncmlkLmRlZmF1bHRIZWFkZXJHcm91cE1pbldpZHRoOmhhc01STFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLmZsZXgtYmFzaXNdPVwiZ3JpZC5yb3dEaW1lbnNpb25XaWR0aFRvUGl4ZWxzKHJvb3REaW1lbnNpb24pIHwgaWd4SGVhZGVyR3JvdXBXaWR0aDpncmlkLmRlZmF1bHRIZWFkZXJHcm91cE1pbldpZHRoOmhhc01STFwiXG4gICAgICAgICAgICAgICAgW3Jvd0luZGV4XT1cInJvd0luZGV4XCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0LnB4XT0naGVhZGVySGVpZ2h0JyBbcGFyZW50XT0ndGhpcyc+XG4gICAgICAgICAgICA8L2lneC1waXZvdC1yb3ctZGltZW5zaW9uLWhlYWRlci1ncm91cD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlIGxldC1jb2x1bW4+XG4gICAgPGRpdiBjbGFzcz0naWd4LWdyaWRfX3RyLS1oZWFkZXIgaWd4LWdyaWRfX3Jvdy1pbmRlbnRhdGlvbi0tbGV2ZWwte3tkaW1lbnNpb24ubGV2ZWx9fSc+XG4gICAgICAgIDxpZ3gtaWNvbiBbYXR0ci5kcmFnZ2FibGVdPVwiIGZhbHNlXCIgKGNsaWNrKT1cInRvZ2dsZVJvd0RpbWVuc2lvbigkZXZlbnQpXCI+XG4gICAgICAgICAgICB7eyBnZXRFeHBhbmRTdGF0ZSgpID8gJ2V4cGFuZF9tb3JlJyA6ICdjaGV2cm9uX3JpZ2h0J319PC9pZ3gtaWNvbj5cbiAgICAgICAge3tjb2x1bW4uaGVhZGVyfX1cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaGVhZGVyRGVmYXVsdFRlbXBsYXRlIGxldC1jb2x1bW4+XG5cbiAgICA8ZGl2IGNsYXNzPSdpZ3gtZ3JpZF9fdHItLWhlYWRlciBpZ3gtZ3JpZF9fcm93LWluZGVudGF0aW9uLS1sZXZlbC17e2RpbWVuc2lvbi5sZXZlbH19Jz5cbiAgICAgICAgPGlneC1pY29uIHN0eWxlPSdmbGV4LXNocmluazogMDsnIFthdHRyLmRyYWdnYWJsZV09XCIgZmFsc2VcIj5cbiAgICAgICAgPC9pZ3gtaWNvbj5cbiAgICAgICAge3tjb2x1bW4uaGVhZGVyfX1cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -153,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
153
153
  type: HostBinding,
154
154
  args: ['class.igx-grid-th--active']
155
155
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3Qtcm93LWRpbWVuc2lvbi1oZWFkZXItZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL3Bpdm90LWdyaWQvcGl2b3Qtcm93LWRpbWVuc2lvbi1oZWFkZXItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL3Bpdm90LWdyaWQvcGl2b3Qtcm93LWRpbWVuc2lvbi1oZWFkZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQWMsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFHN0ssT0FBTyxFQUFFLGFBQWEsRUFBaUIsTUFBTSwwQkFBMEIsQ0FBQztBQUV4RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUlyRixPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7Ozs7OztBQUU3Rjs7R0FFRztBQU1ILE1BQU0sT0FBTyx3Q0FBeUMsU0FBUSwyQkFBMkI7SUFRckYsWUFBb0IsS0FBd0IsRUFDVixJQUFtQixFQUN6QyxVQUFtQyxFQUNwQyxrQkFBaUQsRUFDakQsZ0JBQXFDLEVBQ2xDLFFBQXNCLEVBQ3RCLElBQVk7UUFDdEIsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBUC9ELFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ1YsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUN6QyxlQUFVLEdBQVYsVUFBVSxD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LG1DQUFtQyx1RUNuRGxELHk5S0EyR0EsdUJEeEZhLHdDQUF3QzsyRkFBeEMsd0NBQXdDO2tCQUxwRCxTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMsc0NBQXNDOzswQkFZM0MsTUFBTTsyQkFBQyxhQUFhO21NQUhsQixVQUFVO3NCQURoQixXQUFXO3VCQUFDLG1CQUFtQjtnQkFrQnpCLFFBQVE7c0JBRGQsS0FBSztnQkFRQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsTUFBTTtzQkFEWixTQUFTO3VCQUFDLG1DQUFtQztnQkFJbkMsUUFBUTtzQkFEbEIsV0FBVzt1QkFBQyxTQUFTO2dCQU1YLEtBQUs7c0JBRGYsV0FBVzt1QkFBQyxZQUFZO2dCQVNsQixPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQTRCdEIsTUFBTTtzQkFEaEIsV0FBVzt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgTmdab25lLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGxhdGZvcm1VdGlsIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUdYX0dSSURfQkFTRSwgUGl2b3RHcmlkVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJZ3hGaWx0ZXJpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vZmlsdGVyaW5nL2dyaWQtZmlsdGVyaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWd4R3JpZEhlYWRlckdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vaGVhZGVycy9ncmlkLWhlYWRlci1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4UGl2b3RDb2x1bW5SZXNpemluZ1NlcnZpY2UgfSBmcm9tICcuLi9yZXNpemluZy9waXZvdC1ncmlkL3Bpdm90LXJlc2l6aW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWd4Um93RGlyZWN0aXZlIH0gZnJvbSAnLi4vcm93LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJUGl2b3REaW1lbnNpb24sIFBpdm90Um93SGVhZGVyR3JvdXBUeXBlIH0gZnJvbSAnLi9waXZvdC1ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJZ3hQaXZvdFJvd0RpbWVuc2lvbkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vcGl2b3Qtcm93LWRpbWVuc2lvbi1oZWFkZXIuY29tcG9uZW50JztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnaWd4LXBpdm90LXJvdy1kaW1lbnNpb24taGVhZGVyLWdyb3VwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGl2b3Qtcm93LWRpbWVuc2lvbi1oZWFkZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIElneFBpdm90Um93RGltZW5zaW9uSGVhZGVyR3JvdXBDb21wb25lbnQgZXh0ZW5kcyBJZ3hHcmlkSGVhZGVyR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBQaXZvdFJvd0hlYWRlckdyb3VwVHlwZSB7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS51c2VyLXNlbGVjdCcpXG4gICAgcHVibGljIHVzZXJTZWxlY3QgPSAnbm9uZSc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgQEluamVjdChJR1hfR1JJRF9CQVNFKSBwdWJsaWMgZ3JpZDogUGl2b3RHcmlkVHlwZSxcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHVibGljIGNvbFJlc2l6aW5nU2VydmljZTogSWd4UGl2b3RDb2x1bW5SZXNpemluZ1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBmaWx0ZXJpbmdTZXJ2aWNlOiBJZ3hGaWx0ZXJpbmdTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgcGxhdGZvcm06IFBsYXRmb3JtVXRpbCxcbiAgICAgICAgcHJvdGVjdGVkIHpvbmU6IE5nWm9uZSkge1xuICAgICAgICBzdXBlcihjZFJlZiwgZ3JpZCwgZWxlbWVudFJlZiwgY29sUmVzaXppbmdTZXJ2aWNlLCBmaWx0ZXJpbmdTZXJ2aWNlLCBwbGF0Zm9ybSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvd0luZGV4OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAqIEBoaWRkZW5cbiAgICAqIEBpbnRlcm5hbFxuICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcGFyZW50OiBhbnk7XG5cbiAgICBAVmlld0NoaWxkKElneFBpdm90Um93RGltZW5zaW9uSGVhZGVyQ29tcG9uZW50KVxuICAgIHB1YmxpYyBoZWFkZXI6IElneFBpdm90Um93RGltZW5zaW9uSGVhZGVyQ29tcG9uZW50O1xuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcbiAgICBwdWJsaWMgZ2V0IGhlYWRlcklEKCkge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5ncmlkLmlkfV8tMl8ke3RoaXMucm93SW5kZXh9XyR7dGhpcy52aXNpYmxlSW5kZXh9YDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGl0bGUnKVxuICAgIHB1YmxpYyBnZXQgdGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5oZWFkZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JpZC5yb3dTZWxlY3Rpb24gPT09ICdub25lJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgY29uc3Qga2V5ID0gdGhpcy5wYXJlbnQuZ2V0Um93RGltZW5zaW9uS2V5KHRoaXMuY29sdW1uIGFzIElneENvbHVtbkNvbXBvbmVudCk7XG4gICAgICAgIGlmICh0aGlzLmdyaWQuc2VsZWN0aW9uU2VydmljZS5pc1Jvd1NlbGVjdGVkKGtleSkpIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5zZWxlY3Rpb25TZXJ2aWNlLmRlc2VsZWN0Um93KGtleSwgZXZlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5ncmlkLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0Um93QnlJZChrZXksIHRydWUsIGV2ZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuem9uZS5ydW4oKCkgPT4ge30pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHZpc2libGVJbmRleCgpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuY29sdW1uLmZpZWxkO1xuICAgICAgICBjb25zdCByb3dzID0gdGhpcy5ncmlkLnJvd0RpbWVuc2lvbnM7XG4gICAgICAgIGNvbnN0IHJvb3REaW1lbnNpb24gPSB0aGlzLmZpbmRSb290RGltZW5zaW9uKGZpZWxkKTtcbiAgICAgICAgcmV0dXJuIHJvd3MuaW5kZXhPZihyb290RGltZW5zaW9uKTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1ncmlkLXRoLS1hY3RpdmUnKVxuICAgIHB1YmxpYyBnZXQgYWN0aXZlKCkge1xuICAgICAgICBjb25zdCBuYXYgPSB0aGlzLmdyaWQubmF2aWdhdGlvbjtcbiAgICAgICAgY29uc3Qgbm9kZSA9IG5hdi5hY3RpdmVOb2RlO1xuICAgICAgICByZXR1cm4gbm9kZSAmJiAhdGhpcy5jb2x1bW4uY29sdW1uR3JvdXAgP1xuICAgICAgICAgICAgbmF2LmlzUm93SGVhZGVyQWN0aXZlICYmXG4gICAgICAgICAgICBub2RlLnJvdyA9PT0gdGhpcy5yb3dJbmRleCAmJlxuICAgICAgICAgICAgbm9kZS5jb2x1bW4gPT09IHRoaXMudmlzaWJsZUluZGV4IDpcbiAgICAgICAgICAgIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWN0aXZlR3JvdXAoKSB7XG4gICAgICAgIGNvbnN0IG5hdiA9IHRoaXMuZ3JpZC5uYXZpZ2F0aW9uO1xuICAgICAgICBjb25zdCBub2RlID0gbmF2LmFjdGl2ZU5vZGU7XG4gICAgICAgIHJldHVybiBub2RlID8gbmF2LmlzUm93SGVhZGVyQWN0aXZlICYmIG5vZGUucm93ID09PSB0aGlzLnJvd0luZGV4ICYmIG5vZGUuY29sdW1uID09PSB0aGlzLnZpc2libGVJbmRleCA6IGZhbHNlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgYWN0aXZlTm9kZSgpIHtcbiAgICAgICAgdGhpcy5ncmlkLm5hdmlnYXRpb24uaXNSb3dIZWFkZXJBY3RpdmUgPSB0cnVlO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcm93OiB0aGlzLnJvd0luZGV4LCBjb2x1bW46IHRoaXMudmlzaWJsZUluZGV4LCBsZXZlbDogbnVsbCxcbiAgICAgICAgICAgIG1jaENhY2hlOiBudWxsLFxuICAgICAgICAgICAgbGF5b3V0OiBudWxsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kUm9vdERpbWVuc2lvbihmaWVsZDogc3RyaW5nKTogSVBpdm90RGltZW5zaW9uIHtcbiAgICAgICAgY29uc3Qgcm93cyA9IHRoaXMuZ3JpZC5yb3dEaW1lbnNpb25zO1xuICAgICAgICBsZXQgdGVtcFJvdztcbiAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XG4gICAgICAgIHJvd3MuZm9yRWFjaChyb3cgPT4ge1xuICAgICAgICAgICAgdGVtcFJvdyA9IHJvdztcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgICBpZiAodGVtcFJvdy5tZW1iZXJOYW1lID09PSBmaWVsZCkge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSByb3c7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRlbXBSb3cgPSB0ZW1wUm93LmNoaWxkTGV2ZWw7XG4gICAgICAgICAgICB9IHdoaWxlICh0ZW1wUm93KVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cblxuICAgIHB1YmxpYyBhY3RpdmF0ZSgpIHtcbiAgICAgICAgdGhpcy5ncmlkLm5hdmlnYXRpb24uaXNSb3dIZWFkZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLmdyaWQubmF2aWdhdGlvbi5zZXRBY3RpdmVOb2RlKHRoaXMuYWN0aXZlTm9kZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9pbnRlcmRvd24oX2V2ZW50OiBQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG9uTW91c2VEb3duKF9ldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2YXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzZWxlY3RhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyaWQuaGFzQ29sdW1uTGF5b3V0cyAmJiBjb2x1bW4uY29sdW1uR3JvdXBcIj5cbiAgICA8c3BhbiAqbmdJZj1cImdyaWQuaGFzTW92YWJsZUNvbHVtbnNcIiBjbGFzcz1cImlneC1ncmlkLXRoX19kcm9wLWluZGljYXRvci1sZWZ0XCI+PC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJpZ3gtZ3JpZC10aGVhZF9fZ3JvdXAgaWd4LWdyaWRfX21ybC1ibG9ja1wiXG4gICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICdpZ3gtZ3JpZC10aC0tcGlubmVkLWxhc3QnOiBoYXNMYXN0UGlubmVkQ2hpbGRDb2x1bW4sXG4gICAgICAgICAnaWd4LWdyaWQtdGgtLXBpbm5lZC1maXJzdCc6IGhhc0ZpcnN0UGlubmVkQ2hpbGRDb2x1bW5cbiAgICAgICAgfVwiXG4gICAgIFtuZ1N0eWxlXT1cInsnZ3JpZC10ZW1wbGF0ZS1yb3dzJzpjb2x1bW4uZ2V0R3JpZFRlbXBsYXRlKHRydWUpLFxuICAgICAnZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zJzpjb2x1bW4uZ2V0R3JpZFRlbXBsYXRlKGZhbHNlKX1cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgY29sdW1uLmNoaWxkcmVuXCIgPlxuICAgICAgICAgICAgPGlneC1waXZvdC1yb3ctZGltZW5zaW9uLWhlYWRlci1ncm91cCAqbmdJZj1cIiFjaGlsZC5oaWRkZW5cIiBjbGFzcz1cImlneC1ncmlkLXRoZWFkX19zdWJncm91cFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY2hpbGQuaGVhZGVyR3JvdXBDbGFzc2VzXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJjaGlsZC5oZWFkZXJHcm91cFN0eWxlcyB8IGlneEhlYWRlckdyb3VwU3R5bGU6Y2hpbGQ6Z3JpZC5waXBlVHJpZ2dlclwiXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjaGlsZFwiXG4gICAgICAgICAgICAgICAgW2lneENvbHVtbk1vdmluZ0RyYWddPVwiY2hpbGRcIlxuICAgICAgICAgICAgICAgIFtnaG9zdEhvc3RdPVwiZ3JpZC5vdXRsZXQubmF0aXZlRWxlbWVudFwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZHJvcHBhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtpZ3hDb2x1bW5Nb3ZpbmdEcm9wXT1cImNoaWxkXCI+XG4gICAgICAgICAgICA8L2lneC1waXZvdC1yb3ctZGltZW5zaW9uLWhlYWRlci1ncm91cD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPHNwYW4gKm5nSWY9XCJncmlkLmhhc01vdmFibGVDb2x1bW5zXCIgY2xhc3M9XCJpZ3gtZ3JpZC10aF9fZHJvcC1pbmRpY2F0b3ItcmlnaHRcIj48L3NwYW4+XG48L25nLWNvbnRhaW5lcj5cblxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRDb2x1bW4+XG4gICAgPHNwYW4gY2xhc3M9XCJpZ3gtZ3JpZC10aF9fZ3JvdXAtdGl0bGVcIiBbdGl0bGVdPVwidGl0bGVcIj57e2NvbHVtbi5oZWFkZXJ9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbGxhcHNlSW5kaWNhdG9yPlxuICAgIDxpZ3gtaWNvbiBbYXR0ci5kcmFnZ2FibGVdPVwiZmFsc2VcIiA+XG4gICAgICAgICAgICB7e2NvbHVtbi5leHBhbmRlZCA/ICdleHBhbmRfbW9yZScgOiAnY2hldnJvbl9yaWdodCd9fSA8L2lneC1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFncmlkLmhhc0NvbHVtbkxheW91dHMgJiYgY29sdW1uLmNvbHVtbkdyb3VwXCI+XG4gICAgPHNwYW4gKm5nSWY9XCJncmlkLmhhc01vdmFibGVDb2x1bW5zXCIgY2xhc3M9XCJpZ3gtZ3JpZC10aF9fZHJvcC1pbmRpY2F0b3ItbGVmdFwiPjwvc3Bhbj5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWQtdGhlYWRfX3RpdGxlXCJcbiAgICAgICAgcm9sZT1cImNvbHVtbmhlYWRlclwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY29sdW1uLmhlYWRlciB8fCBjb2x1bW4uZmllbGRcIlxuICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImNvbHVtbi5leHBhbmRlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiY29sdW1uLnNlbGVjdGVkXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ2lneC1ncmlkLXRoLS1waW5uZWQtbGFzdCc6IGhhc0xhc3RQaW5uZWRDaGlsZENvbHVtbixcbiAgICAgICAgICAgICdpZ3gtZ3JpZC10aC0tcGlubmVkLWZpcnN0JzogaGFzRmlyc3RQaW5uZWRDaGlsZENvbHVtbixcbiAgICAgICAgICAgICdpZ3gtZ3JpZC10aC0tY29sbGFwc2libGUnOiBjb2x1bW4uY29sbGFwc2libGUsXG4gICAgICAgICAgICAnaWd4LWdyaWQtdGgtLXNlbGVjdGFibGUnOiBzZWxlY3RhYmxlLFxuICAgICAgICAgICAgJ2lneC1ncmlkLXRoLS1zZWxlY3RlZCc6IHNlbGVjdGVkLFxuICAgICAgICAgICAgJ2lneC1ncmlkLXRoLS1hY3RpdmUnOiBhY3RpdmVHcm91cH1cIlxuICAgICAgICBbaWd4Q29sdW1uTW92aW5nRHJhZ109XCJjb2x1bW5cIlxuICAgICAgICBbZ2hvc3RIb3N0XT1cImdyaWQub3V0bGV0Lm5hdGl2ZUVsZW1lbnRcIlxuICAgICAgICBbYXR0ci5kcm9wcGFibGVdPVwidHJ1ZVwiXG4gICAgICAgIFtpZ3hDb2x1bW5Nb3ZpbmdEcm9wXT1cImNvbHVtblwiXG4gICAgICAgIChwb2ludGVyZG93bik9XCJwb2ludGVyZG93bigkZXZlbnQpXCJcbiAgICAgICAgKGNsaWNrKT1cImdyb3VwQ2xpY2tlZCgkZXZlbnQpXCJcbiAgICAgICAgKHBvaW50ZXJlbnRlcik9XCJvblBpbnRlckVudGVyKClcIlxuICAgICAgICAocG9pbnRlcmxlYXZlKT1cIm9uUG9pbnRlckxlYXZlKClcIlxuICAgICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uY29sbGFwc2libGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtZ3JpZC10aF9fZXhwYW5kZXJcIiAoY2xpY2spPVwidG9nZ2xlRXhwYW5kU3RhdGUoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb2x1bW4uY29sbGFwc2libGVJbmRpY2F0b3JUZW1wbGF0ZSA/IGNvbHVtbi5jb2xsYXBzaWJsZUluZGljYXRvclRlbXBsYXRlIDogZGVmYXVsdENvbGxhcHNlSW5kaWNhdG9yOyBjb250ZXh0OiB7JGltcGxpY2l0OiBjb2x1bW4sIGNvbHVtbjogY29sdW1ufVwiPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmhlYWRlclRlbXBsYXRlID8gY29sdW1uLmhlYWRlclRlbXBsYXRlIDogZGVmYXVsdENvbHVtbjsgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvbHVtbiwgY29sdW1uOiBjb2x1bW59XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJpZ3gtZ3JpZC10aGVhZF9fZ3JvdXBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2hpbGQgb2YgY29sdW1uLmNoaWxkcmVuXCI+XG4gICAgICAgICAgICA8aWd4LXBpdm90LXJvdy1kaW1lbnNpb24taGVhZGVyLWdyb3VwICpuZ0lmPVwiIWNoaWxkLmhpZGRlblwiIGNsYXNzPVwiaWd4LWdyaWQtdGhlYWRfX3N1Ymdyb3VwXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJjaGlsZC5oZWFkZXJHcm91cENsYXNzZXNcIlxuICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cImNoaWxkLmhlYWRlckdyb3VwU3R5bGVzIHwgaWd4SGVhZGVyR3JvdXBTdHlsZTpjaGlsZDpncmlkLnBpcGVUcmlnZ2VyXCJcbiAgICAgICAgICAgICAgICBbY29sdW1uXT1cImNoaWxkXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUubWluLXdpZHRoXT1cImNoaWxkLmNhbGNXaWR0aCB8IGlneEhlYWRlckdyb3VwV2lkdGg6Z3JpZC5kZWZhdWx0SGVhZGVyR3JvdXBNaW5XaWR0aDpncmlkLmhhc0NvbHVtbkxheW91dHNcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5mbGV4LWJhc2lzXT1cImNoaWxkLmNhbGNXaWR0aCB8IGlneEhlYWRlckdyb3VwV2lkdGg6Z3JpZC5kZWZhdWx0SGVhZGVyR3JvdXBNaW5XaWR0aDpncmlkLmhhc0NvbHVtbkxheW91dHNcIj5cbiAgICAgICAgICAgIDwvaWd4LXBpdm90LXJvdy1kaW1lbnNpb24taGVhZGVyLWdyb3VwPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8c3BhbiAqbmdJZj1cImdyaWQuaGFzTW92YWJsZUNvbHVtbnNcIiBjbGFzcz1cImlneC1ncmlkLXRoX19kcm9wLWluZGljYXRvci1yaWdodFwiPjwvc3Bhbj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbHVtbi5jb2x1bW5Hcm91cFwiPlxuICAgIDxzcGFuICpuZ0lmPVwiZ3JpZC5oYXNNb3ZhYmxlQ29sdW1uc1wiIGNsYXNzPVwiaWd4LWdyaWQtdGhfX2Ryb3AtaW5kaWNhdG9yLWxlZnRcIj48L3NwYW4+XG4gICAgPGlneC1waXZvdC1yb3ctZGltZW5zaW9uLWhlYWRlclxuICAgICAgICByb2xlPVwiY29sdW1uaGVhZGVyXCJcbiAgICAgICAgY2xhc3M9XCJpZ3gtZ3JpZC10aC0tZndcIlxuICAgICAgICBbaWRdPVwiZ3JpZC5pZCArICdfJyArIGNvbHVtbi5maWVsZFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImNvbHVtbi5oZWFkZXJDbGFzc2VzXCJcbiAgICAgICAgW25nU3R5bGVdPVwiY29sdW1uLmhlYWRlclN0eWxlcyB8IGlneEhlYWRlckdyb3VwU3R5bGU6Y29sdW1uOmdyaWQucGlwZVRyaWdnZXJcIlxuICAgICAgICBbaWd4Q29sdW1uTW92aW5nRHJhZ109XCJjb2x1bW5cIlxuICAgICAgICBbZ2hvc3RIb3N0XT1cImdyaWQub3V0bGV0Lm5hdGl2ZUVsZW1lbnRcIlxuICAgICAgICBbYXR0ci5kcm9wcGFibGVdPVwidHJ1ZVwiXG4gICAgICAgIChwb2ludGVyZG93bik9XCJhY3RpdmF0ZSgpXCJcbiAgICAgICAgW2lneENvbHVtbk1vdmluZ0Ryb3BdPVwiY29sdW1uXCJcbiAgICAgICAgW2NvbHVtbl09XCJjb2x1bW5cIlxuICAgICAgICBbZGVuc2l0eV09XCJncmlkLmRpc3BsYXlEZW5zaXR5XCJcbiAgICA+XG4gICAgPC9pZ3gtcGl2b3Qtcm93LWRpbWVuc2lvbi1oZWFkZXI+XG4gICAgPGlneC1ncmlkLWZpbHRlcmluZy1jZWxsICpuZ0lmPVwiZ3JpZC5hbGxvd0ZpbHRlcmluZyAmJiBncmlkLmZpbHRlck1vZGUgPT09ICdxdWlja0ZpbHRlcidcIiBbY29sdW1uXT1cImNvbHVtblwiIFthdHRyLmRyYWdnYWJsZV09XCJmYWxzZVwiPjwvaWd4LWdyaWQtZmlsdGVyaW5nLWNlbGw+XG4gICAgPHNwYW4gKm5nSWY9XCIhY29sdW1uLmNvbHVtbkdyb3VwICYmIGNvbHVtbi5yZXNpemFibGVcIiBjbGFzcz1cImlneC1ncmlkLXRoX19yZXNpemUtaGFuZGxlXCJcbiAgICAgICAgW2lneFBpdm90UmVzaXplSGFuZGxlXT1cImNvbHVtblwiXG4gICAgICAgIFtpZ3hQaXZvdFJlc2l6ZUhhbmRsZUhlYWRlcl09XCJ0aGlzXCJcbiAgICAgICAgW2F0dHIuZHJhZ2dhYmxlXT1cImZhbHNlXCJcbiAgICAgICAgW3N0eWxlLmN1cnNvcl09XCJjb2xSZXNpemluZ1NlcnZpY2UucmVzaXplQ3Vyc29yXCI+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwiZ3JpZC5oYXNNb3ZhYmxlQ29sdW1uc1wiIGNsYXNzPVwiaWd4LWdyaWQtdGhfX2Ryb3AtaW5kaWNhdG9yLXJpZ2h0XCI+PC9zcGFuPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3Qtcm93LWRpbWVuc2lvbi1oZWFkZXItZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL3Bpdm90LWdyaWQvcGl2b3Qtcm93LWRpbWVuc2lvbi1oZWFkZXItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL3Bpdm90LWdyaWQvcGl2b3Qtcm93LWRpbWVuc2lvbi1oZWFkZXItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQWMsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvSixPQUFPLEVBQUUsYUFBYSxFQUFpQixNQUFNLDBCQUEwQixDQUFDO0FBRXhFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBR3JGLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBRTdGOztHQUVHO0FBTUgsTUFBTSxPQUFPLHdDQUF5QyxTQUFRLDJCQUEyQjtJQVFyRixZQUFvQixLQUF3QixFQUNWLElBQW1CLEVBQ3pDLFVBQW1DLEVBQ3BDLGtCQUFpRCxFQUNqRCxnQkFBcUMsRUFDbEMsUUFBc0IsRUFDdEIsSUFBWTtRQUN0QixLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFQL0QsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDVixTQUFJLEdBQUosSUFBSSxDQUFlO1FBQ3pDLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQ3BDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBK0I7UUFDakQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFxQjtRQUNsQyxhQUFRLEdBQVIsUUFBUSxDQUFjO1FBQ3RCLFNBQUksR0FBSixJQUFJLENBQVE7UUFaMUI7O1dBRUc7UUFFSSxlQUFVLEdBQUcsTUFBTSxDQUFDO0lBVTNCLENBQUM7SUFtQkQsSUFDVyxRQUFRO1FBQ2YsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RFLENBQUM7SUFFRCxJQUNXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUVJLE9BQU8sQ0FBQyxLQUFpQjtRQUM1QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxLQUFLLE1BQU0sRUFBRTtZQUNuQyxPQUFPO1NBQ1Y7UUFDRCxLQUFLLEVBQUUsZUFBZSxFQUFFLENBQUM7UUFDekIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBNEIsQ0FBQyxDQUFDO1FBQzlFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3REO2FBQU07WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzlEO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQVcsWUFBWTtRQUNuQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNoQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNyQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUNXLE1BQU07UUFDYixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNqQyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQzVCLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNyQyxHQUFHLENBQUMsaUJBQWlCO2dCQUNyQixJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRO2dCQUMxQixJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNuQyxLQUFLLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDbkgsQ0FBQztJQUVELElBQWMsVUFBVTtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDOUMsT0FBTztZQUNILEdBQUcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxJQUFJO1lBQzFELFFBQVEsRUFBRSxJQUFJO1lBQ2QsTUFBTSxFQUFFLElBQUk7U0FDZixDQUFDO0lBQ04sQ0FBQztJQUVPLGlCQUFpQixDQUFDLEtBQWE7UUFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDckMsSUFBSSxPQUFPLENBQUM7UUFDWixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNmLE9BQU8sR0FBRyxHQUFHLENBQUM7WUFDZCxHQUFHO2dCQUNDLElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxLQUFLLEVBQUU7b0JBQzlCLE1BQU0sR0FBRyxHQUFHLENBQUM7aUJBQ2hCO2dCQUNELE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO2FBQ2hDLFFBQVEsT0FBTyxFQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUdNLFFBQVE7UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLE1BQW9CO1FBQ25DLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXLENBQUMsTUFBa0I7UUFDakMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDakIsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQzs7cUlBM0lRLHdDQUF3QyxtREFTckMsYUFBYTt5SEFUaEIsd0NBQXdDLHlYQWdDdEMsbUNBQW1DLHVFQ2xEbEQseTlLQTJHQSx1QkR6RmEsd0NBQXdDOzJGQUF4Qyx3Q0FBd0M7a0JBTHBELFNBQVM7c0NBQ1csdUJBQXVCLENBQUMsTUFBTSxZQUNyQyxzQ0FBc0M7OzBCQVkzQyxNQUFNOzJCQUFDLGFBQWE7bU1BSGxCLFVBQVU7c0JBRGhCLFdBQVc7dUJBQUMsbUJBQW1CO2dCQWtCekIsUUFBUTtzQkFEZCxLQUFLO2dCQVFDLE1BQU07c0JBRFosS0FBSztnQkFJQyxNQUFNO3NCQURaLFNBQVM7dUJBQUMsbUNBQW1DO2dCQUluQyxRQUFRO3NCQURsQixXQUFXO3VCQUFDLFNBQVM7Z0JBTVgsS0FBSztzQkFEZixXQUFXO3VCQUFDLFlBQVk7Z0JBU2xCLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBNEJ0QixNQUFNO3NCQURoQixXQUFXO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBOZ1pvbmUsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUGxhdGZvcm1VdGlsIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUdYX0dSSURfQkFTRSwgUGl2b3RHcmlkVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJZ3hGaWx0ZXJpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vZmlsdGVyaW5nL2dyaWQtZmlsdGVyaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWd4R3JpZEhlYWRlckdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi4vaGVhZGVycy9ncmlkLWhlYWRlci1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4UGl2b3RDb2x1bW5SZXNpemluZ1NlcnZpY2UgfSBmcm9tICcuLi9yZXNpemluZy9waXZvdC1ncmlkL3Bpdm90LXJlc2l6aW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgSVBpdm90RGltZW5zaW9uLCBQaXZvdFJvd0hlYWRlckdyb3VwVHlwZSB9IGZyb20gJy4vcGl2b3QtZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4UGl2b3RSb3dEaW1lbnNpb25IZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL3Bpdm90LXJvdy1kaW1lbnNpb24taGVhZGVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2lneC1waXZvdC1yb3ctZGltZW5zaW9uLWhlYWRlci1ncm91cCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Bpdm90LXJvdy1kaW1lbnNpb24taGVhZGVyLWdyb3VwLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hQaXZvdFJvd0RpbWVuc2lvbkhlYWRlckdyb3VwQ29tcG9uZW50IGV4dGVuZHMgSWd4R3JpZEhlYWRlckdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgUGl2b3RSb3dIZWFkZXJHcm91cFR5cGUge1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnc3R5bGUudXNlci1zZWxlY3QnKVxuICAgIHB1YmxpYyB1c2VyU2VsZWN0ID0gJ25vbmUnO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBJbmplY3QoSUdYX0dSSURfQkFTRSkgcHVibGljIGdyaWQ6IFBpdm90R3JpZFR5cGUsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHB1YmxpYyBjb2xSZXNpemluZ1NlcnZpY2U6IElneFBpdm90Q29sdW1uUmVzaXppbmdTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZmlsdGVyaW5nU2VydmljZTogSWd4RmlsdGVyaW5nU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIHBsYXRmb3JtOiBQbGF0Zm9ybVV0aWwsXG4gICAgICAgIHByb3RlY3RlZCB6b25lOiBOZ1pvbmUpIHtcbiAgICAgICAgc3VwZXIoY2RSZWYsIGdyaWQsIGVsZW1lbnRSZWYsIGNvbFJlc2l6aW5nU2VydmljZSwgZmlsdGVyaW5nU2VydmljZSwgcGxhdGZvcm0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByb3dJbmRleDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgKiBAaGlkZGVuXG4gICAgKiBAaW50ZXJuYWxcbiAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBhcmVudDogYW55O1xuXG4gICAgQFZpZXdDaGlsZChJZ3hQaXZvdFJvd0RpbWVuc2lvbkhlYWRlckNvbXBvbmVudClcbiAgICBwdWJsaWMgaGVhZGVyOiBJZ3hQaXZvdFJvd0RpbWVuc2lvbkhlYWRlckNvbXBvbmVudDtcblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgcHVibGljIGdldCBoZWFkZXJJRCgpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ3JpZC5pZH1fLTJfJHt0aGlzLnJvd0luZGV4fV8ke3RoaXMudmlzaWJsZUluZGV4fWA7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRpdGxlJylcbiAgICBwdWJsaWMgZ2V0IHRpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uaGVhZGVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmdyaWQucm93U2VsZWN0aW9uID09PSAnbm9uZScpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGNvbnN0IGtleSA9IHRoaXMucGFyZW50LmdldFJvd0RpbWVuc2lvbktleSh0aGlzLmNvbHVtbiBhcyBJZ3hDb2x1bW5Db21wb25lbnQpO1xuICAgICAgICBpZiAodGhpcy5ncmlkLnNlbGVjdGlvblNlcnZpY2UuaXNSb3dTZWxlY3RlZChrZXkpKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWQuc2VsZWN0aW9uU2VydmljZS5kZXNlbGVjdFJvdyhrZXksIGV2ZW50KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdFJvd0J5SWQoa2V5LCB0cnVlLCBldmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+IHt9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCB2aXNpYmxlSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgZmllbGQgPSB0aGlzLmNvbHVtbi5maWVsZDtcbiAgICAgICAgY29uc3Qgcm93cyA9IHRoaXMuZ3JpZC5yb3dEaW1lbnNpb25zO1xuICAgICAgICBjb25zdCByb290RGltZW5zaW9uID0gdGhpcy5maW5kUm9vdERpbWVuc2lvbihmaWVsZCk7XG4gICAgICAgIHJldHVybiByb3dzLmluZGV4T2Yocm9vdERpbWVuc2lvbik7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtZ3JpZC10aC0tYWN0aXZlJylcbiAgICBwdWJsaWMgZ2V0IGFjdGl2ZSgpIHtcbiAgICAgICAgY29uc3QgbmF2ID0gdGhpcy5ncmlkLm5hdmlnYXRpb247XG4gICAgICAgIGNvbnN0IG5vZGUgPSBuYXYuYWN0aXZlTm9kZTtcbiAgICAgICAgcmV0dXJuIG5vZGUgJiYgIXRoaXMuY29sdW1uLmNvbHVtbkdyb3VwID9cbiAgICAgICAgICAgIG5hdi5pc1Jvd0hlYWRlckFjdGl2ZSAmJlxuICAgICAgICAgICAgbm9kZS5yb3cgPT09IHRoaXMucm93SW5kZXggJiZcbiAgICAgICAgICAgIG5vZGUuY29sdW1uID09PSB0aGlzLnZpc2libGVJbmRleCA6XG4gICAgICAgICAgICBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFjdGl2ZUdyb3VwKCkge1xuICAgICAgICBjb25zdCBuYXYgPSB0aGlzLmdyaWQubmF2aWdhdGlvbjtcbiAgICAgICAgY29uc3Qgbm9kZSA9IG5hdi5hY3RpdmVOb2RlO1xuICAgICAgICByZXR1cm4gbm9kZSA/IG5hdi5pc1Jvd0hlYWRlckFjdGl2ZSAmJiBub2RlLnJvdyA9PT0gdGhpcy5yb3dJbmRleCAmJiBub2RlLmNvbHVtbiA9PT0gdGhpcy52aXNpYmxlSW5kZXggOiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGFjdGl2ZU5vZGUoKSB7XG4gICAgICAgIHRoaXMuZ3JpZC5uYXZpZ2F0aW9uLmlzUm93SGVhZGVyQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJvdzogdGhpcy5yb3dJbmRleCwgY29sdW1uOiB0aGlzLnZpc2libGVJbmRleCwgbGV2ZWw6IG51bGwsXG4gICAgICAgICAgICBtY2hDYWNoZTogbnVsbCxcbiAgICAgICAgICAgIGxheW91dDogbnVsbFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZFJvb3REaW1lbnNpb24oZmllbGQ6IHN0cmluZyk6IElQaXZvdERpbWVuc2lvbiB7XG4gICAgICAgIGNvbnN0IHJvd3MgPSB0aGlzLmdyaWQucm93RGltZW5zaW9ucztcbiAgICAgICAgbGV0IHRlbXBSb3c7XG4gICAgICAgIGxldCByZXN1bHQgPSBudWxsO1xuICAgICAgICByb3dzLmZvckVhY2gocm93ID0+IHtcbiAgICAgICAgICAgIHRlbXBSb3cgPSByb3c7XG4gICAgICAgICAgICBkbyB7XG4gICAgICAgICAgICAgICAgaWYgKHRlbXBSb3cubWVtYmVyTmFtZSA9PT0gZmllbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gcm93O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0ZW1wUm93ID0gdGVtcFJvdy5jaGlsZExldmVsO1xuICAgICAgICAgICAgfSB3aGlsZSAodGVtcFJvdylcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG5cbiAgICBwdWJsaWMgYWN0aXZhdGUoKSB7XG4gICAgICAgIHRoaXMuZ3JpZC5uYXZpZ2F0aW9uLmlzUm93SGVhZGVyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5ncmlkLm5hdmlnYXRpb24uc2V0QWN0aXZlTm9kZSh0aGlzLmFjdGl2ZU5vZGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIHBvaW50ZXJkb3duKF9ldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvbk1vdXNlRG93bihfZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hY3RpdmF0ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2VsZWN0YWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJncmlkLmhhc0NvbHVtbkxheW91dHMgJiYgY29sdW1uLmNvbHVtbkdyb3VwXCI+XG4gICAgPHNwYW4gKm5nSWY9XCJncmlkLmhhc01vdmFibGVDb2x1bW5zXCIgY2xhc3M9XCJpZ3gtZ3JpZC10aF9fZHJvcC1pbmRpY2F0b3ItbGVmdFwiPjwvc3Bhbj5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWQtdGhlYWRfX2dyb3VwIGlneC1ncmlkX19tcmwtYmxvY2tcIlxuICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAnaWd4LWdyaWQtdGgtLXBpbm5lZC1sYXN0JzogaGFzTGFzdFBpbm5lZENoaWxkQ29sdW1uLFxuICAgICAgICAgJ2lneC1ncmlkLXRoLS1waW5uZWQtZmlyc3QnOiBoYXNGaXJzdFBpbm5lZENoaWxkQ29sdW1uXG4gICAgICAgIH1cIlxuICAgICBbbmdTdHlsZV09XCJ7J2dyaWQtdGVtcGxhdGUtcm93cyc6Y29sdW1uLmdldEdyaWRUZW1wbGF0ZSh0cnVlKSxcbiAgICAgJ2dyaWQtdGVtcGxhdGUtY29sdW1ucyc6Y29sdW1uLmdldEdyaWRUZW1wbGF0ZShmYWxzZSl9XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGNvbHVtbi5jaGlsZHJlblwiID5cbiAgICAgICAgICAgIDxpZ3gtcGl2b3Qtcm93LWRpbWVuc2lvbi1oZWFkZXItZ3JvdXAgKm5nSWY9XCIhY2hpbGQuaGlkZGVuXCIgY2xhc3M9XCJpZ3gtZ3JpZC10aGVhZF9fc3ViZ3JvdXBcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImNoaWxkLmhlYWRlckdyb3VwQ2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgW25nU3R5bGVdPVwiY2hpbGQuaGVhZGVyR3JvdXBTdHlsZXMgfCBpZ3hIZWFkZXJHcm91cFN0eWxlOmNoaWxkOmdyaWQucGlwZVRyaWdnZXJcIlxuICAgICAgICAgICAgICAgIFtjb2x1bW5dPVwiY2hpbGRcIlxuICAgICAgICAgICAgICAgIFtpZ3hDb2x1bW5Nb3ZpbmdEcmFnXT1cImNoaWxkXCJcbiAgICAgICAgICAgICAgICBbZ2hvc3RIb3N0XT1cImdyaWQub3V0bGV0Lm5hdGl2ZUVsZW1lbnRcIlxuICAgICAgICAgICAgICAgIFthdHRyLmRyb3BwYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbaWd4Q29sdW1uTW92aW5nRHJvcF09XCJjaGlsZFwiPlxuICAgICAgICAgICAgPC9pZ3gtcGl2b3Qtcm93LWRpbWVuc2lvbi1oZWFkZXItZ3JvdXA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxzcGFuICpuZ0lmPVwiZ3JpZC5oYXNNb3ZhYmxlQ29sdW1uc1wiIGNsYXNzPVwiaWd4LWdyaWQtdGhfX2Ryb3AtaW5kaWNhdG9yLXJpZ2h0XCI+PC9zcGFuPlxuPC9uZy1jb250YWluZXI+XG5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0Q29sdW1uPlxuICAgIDxzcGFuIGNsYXNzPVwiaWd4LWdyaWQtdGhfX2dyb3VwLXRpdGxlXCIgW3RpdGxlXT1cInRpdGxlXCI+e3tjb2x1bW4uaGVhZGVyfX08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRDb2xsYXBzZUluZGljYXRvcj5cbiAgICA8aWd4LWljb24gW2F0dHIuZHJhZ2dhYmxlXT1cImZhbHNlXCIgPlxuICAgICAgICAgICAge3tjb2x1bW4uZXhwYW5kZWQgPyAnZXhwYW5kX21vcmUnIDogJ2NoZXZyb25fcmlnaHQnfX0gPC9pZ3gtaWNvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhZ3JpZC5oYXNDb2x1bW5MYXlvdXRzICYmIGNvbHVtbi5jb2x1bW5Hcm91cFwiPlxuICAgIDxzcGFuICpuZ0lmPVwiZ3JpZC5oYXNNb3ZhYmxlQ29sdW1uc1wiIGNsYXNzPVwiaWd4LWdyaWQtdGhfX2Ryb3AtaW5kaWNhdG9yLWxlZnRcIj48L3NwYW4+XG4gICAgPGRpdiBjbGFzcz1cImlneC1ncmlkLXRoZWFkX190aXRsZVwiXG4gICAgICAgIHJvbGU9XCJjb2x1bW5oZWFkZXJcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNvbHVtbi5oZWFkZXIgfHwgY29sdW1uLmZpZWxkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJjb2x1bW4uZXhwYW5kZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImNvbHVtbi5zZWxlY3RlZFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdpZ3gtZ3JpZC10aC0tcGlubmVkLWxhc3QnOiBoYXNMYXN0UGlubmVkQ2hpbGRDb2x1bW4sXG4gICAgICAgICAgICAnaWd4LWdyaWQtdGgtLXBpbm5lZC1maXJzdCc6IGhhc0ZpcnN0UGlubmVkQ2hpbGRDb2x1bW4sXG4gICAgICAgICAgICAnaWd4LWdyaWQtdGgtLWNvbGxhcHNpYmxlJzogY29sdW1uLmNvbGxhcHNpYmxlLFxuICAgICAgICAgICAgJ2lneC1ncmlkLXRoLS1zZWxlY3RhYmxlJzogc2VsZWN0YWJsZSxcbiAgICAgICAgICAgICdpZ3gtZ3JpZC10aC0tc2VsZWN0ZWQnOiBzZWxlY3RlZCxcbiAgICAgICAgICAgICdpZ3gtZ3JpZC10aC0tYWN0aXZlJzogYWN0aXZlR3JvdXB9XCJcbiAgICAgICAgW2lneENvbHVtbk1vdmluZ0RyYWddPVwiY29sdW1uXCJcbiAgICAgICAgW2dob3N0SG9zdF09XCJncmlkLm91dGxldC5uYXRpdmVFbGVtZW50XCJcbiAgICAgICAgW2F0dHIuZHJvcHBhYmxlXT1cInRydWVcIlxuICAgICAgICBbaWd4Q29sdW1uTW92aW5nRHJvcF09XCJjb2x1bW5cIlxuICAgICAgICAocG9pbnRlcmRvd24pPVwicG9pbnRlcmRvd24oJGV2ZW50KVwiXG4gICAgICAgIChjbGljayk9XCJncm91cENsaWNrZWQoJGV2ZW50KVwiXG4gICAgICAgIChwb2ludGVyZW50ZXIpPVwib25QaW50ZXJFbnRlcigpXCJcbiAgICAgICAgKHBvaW50ZXJsZWF2ZSk9XCJvblBvaW50ZXJMZWF2ZSgpXCJcbiAgICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29sdW1uLmNvbGxhcHNpYmxlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWQtdGhfX2V4cGFuZGVyXCIgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZFN0YXRlKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29sdW1uLmNvbGxhcHNpYmxlSW5kaWNhdG9yVGVtcGxhdGUgPyBjb2x1bW4uY29sbGFwc2libGVJbmRpY2F0b3JUZW1wbGF0ZSA6IGRlZmF1bHRDb2xsYXBzZUluZGljYXRvcjsgY29udGV4dDogeyRpbXBsaWNpdDogY29sdW1uLCBjb2x1bW46IGNvbHVtbn1cIj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJUZW1wbGF0ZSA/IGNvbHVtbi5oZWFkZXJUZW1wbGF0ZSA6IGRlZmF1bHRDb2x1bW47IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW4sIGNvbHVtbjogY29sdW1ufVwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWQtdGhlYWRfX2dyb3VwXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNoaWxkIG9mIGNvbHVtbi5jaGlsZHJlblwiPlxuICAgICAgICAgICAgPGlneC1waXZvdC1yb3ctZGltZW5zaW9uLWhlYWRlci1ncm91cCAqbmdJZj1cIiFjaGlsZC5oaWRkZW5cIiBjbGFzcz1cImlneC1ncmlkLXRoZWFkX19zdWJncm91cFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiY2hpbGQuaGVhZGVyR3JvdXBDbGFzc2VzXCJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJjaGlsZC5oZWFkZXJHcm91cFN0eWxlcyB8IGlneEhlYWRlckdyb3VwU3R5bGU6Y2hpbGQ6Z3JpZC5waXBlVHJpZ2dlclwiXG4gICAgICAgICAgICAgICAgW2NvbHVtbl09XCJjaGlsZFwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjaGlsZC5jYWxjV2lkdGggfCBpZ3hIZWFkZXJHcm91cFdpZHRoOmdyaWQuZGVmYXVsdEhlYWRlckdyb3VwTWluV2lkdGg6Z3JpZC5oYXNDb2x1bW5MYXlvdXRzXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuZmxleC1iYXNpc109XCJjaGlsZC5jYWxjV2lkdGggfCBpZ3hIZWFkZXJHcm91cFdpZHRoOmdyaWQuZGVmYXVsdEhlYWRlckdyb3VwTWluV2lkdGg6Z3JpZC5oYXNDb2x1bW5MYXlvdXRzXCI+XG4gICAgICAgICAgICA8L2lneC1waXZvdC1yb3ctZGltZW5zaW9uLWhlYWRlci1ncm91cD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gICAgPHNwYW4gKm5nSWY9XCJncmlkLmhhc01vdmFibGVDb2x1bW5zXCIgY2xhc3M9XCJpZ3gtZ3JpZC10aF9fZHJvcC1pbmRpY2F0b3ItcmlnaHRcIj48L3NwYW4+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW4uY29sdW1uR3JvdXBcIj5cbiAgICA8c3BhbiAqbmdJZj1cImdyaWQuaGFzTW92YWJsZUNvbHVtbnNcIiBjbGFzcz1cImlneC1ncmlkLXRoX19kcm9wLWluZGljYXRvci1sZWZ0XCI+PC9zcGFuPlxuICAgIDxpZ3gtcGl2b3Qtcm93LWRpbWVuc2lvbi1oZWFkZXJcbiAgICAgICAgcm9sZT1cImNvbHVtbmhlYWRlclwiXG4gICAgICAgIGNsYXNzPVwiaWd4LWdyaWQtdGgtLWZ3XCJcbiAgICAgICAgW2lkXT1cImdyaWQuaWQgKyAnXycgKyBjb2x1bW4uZmllbGRcIlxuICAgICAgICBbbmdDbGFzc109XCJjb2x1bW4uaGVhZGVyQ2xhc3Nlc1wiXG4gICAgICAgIFtuZ1N0eWxlXT1cImNvbHVtbi5oZWFkZXJTdHlsZXMgfCBpZ3hIZWFkZXJHcm91cFN0eWxlOmNvbHVtbjpncmlkLnBpcGVUcmlnZ2VyXCJcbiAgICAgICAgW2lneENvbHVtbk1vdmluZ0RyYWddPVwiY29sdW1uXCJcbiAgICAgICAgW2dob3N0SG9zdF09XCJncmlkLm91dGxldC5uYXRpdmVFbGVtZW50XCJcbiAgICAgICAgW2F0dHIuZHJvcHBhYmxlXT1cInRydWVcIlxuICAgICAgICAocG9pbnRlcmRvd24pPVwiYWN0aXZhdGUoKVwiXG4gICAgICAgIFtpZ3hDb2x1bW5Nb3ZpbmdEcm9wXT1cImNvbHVtblwiXG4gICAgICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcbiAgICAgICAgW2RlbnNpdHldPVwiZ3JpZC5kaXNwbGF5RGVuc2l0eVwiXG4gICAgPlxuICAgIDwvaWd4LXBpdm90LXJvdy1kaW1lbnNpb24taGVhZGVyPlxuICAgIDxpZ3gtZ3JpZC1maWx0ZXJpbmctY2VsbCAqbmdJZj1cImdyaWQuYWxsb3dGaWx0ZXJpbmcgJiYgZ3JpZC5maWx0ZXJNb2RlID09PSAncXVpY2tGaWx0ZXInXCIgW2NvbHVtbl09XCJjb2x1bW5cIiBbYXR0ci5kcmFnZ2FibGVdPVwiZmFsc2VcIj48L2lneC1ncmlkLWZpbHRlcmluZy1jZWxsPlxuICAgIDxzcGFuICpuZ0lmPVwiIWNvbHVtbi5jb2x1bW5Hcm91cCAmJiBjb2x1bW4ucmVzaXphYmxlXCIgY2xhc3M9XCJpZ3gtZ3JpZC10aF9fcmVzaXplLWhhbmRsZVwiXG4gICAgICAgIFtpZ3hQaXZvdFJlc2l6ZUhhbmRsZV09XCJjb2x1bW5cIlxuICAgICAgICBbaWd4UGl2b3RSZXNpemVIYW5kbGVIZWFkZXJdPVwidGhpc1wiXG4gICAgICAgIFthdHRyLmRyYWdnYWJsZV09XCJmYWxzZVwiXG4gICAgICAgIFtzdHlsZS5jdXJzb3JdPVwiY29sUmVzaXppbmdTZXJ2aWNlLnJlc2l6ZUN1cnNvclwiPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cImdyaWQuaGFzTW92YWJsZUNvbHVtbnNcIiBjbGFzcz1cImlneC1ncmlkLXRoX19kcm9wLWluZGljYXRvci1yaWdodFwiPjwvc3Bhbj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -160,4 +160,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
160
160
  }], data: [{
161
161
  type: Input
162
162
  }] } });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3Qtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9waXZvdC1ncmlkL3Bpdm90LXJvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvcGl2b3QtZ3JpZC9waXZvdC1yb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBR1QsVUFBVSxFQUNWLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUM3QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFpQixNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7OztBQUd6QyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQU9qQyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBZTtJQWlCckQsWUFDa0MsSUFBbUIsRUFDMUMsZ0JBQXlDLEVBQ3pDLE9BQWdDLEVBQ2hDLEdBQXNCLEVBQ25CLFFBQWtDLEVBQ2xDLE9BQXlCO1FBRW5DLEtBQUssQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBUGQsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUMxQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ3pDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2hDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBYXZDOzs7V0FH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QUFDO1FBQzVCLE9BQU8sSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzNDLENBQUMsR0FBRyxDQUFDLGlCQUFpQjtnQkFDdEIsS0FBSyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7WUFDeEMsS0FBSyxDQUFDO0lBQ2QsQ0FBQzs7aUhBekpRLG9CQUFvQixrQkFrQmpCLGFBQWE7cUdBbEJoQixvQkFBb0IseUpBRmxCLENBQUMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLGlEQ3RCbEcsMjZFQThCQTsyRkROYSxvQkFBb0I7a0JBTmhDLFNBQVM7c0NBQ1csdUJBQXVCLENBQUMsTUFBTSxZQUNyQyxlQUFlLGFBRWQsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUMsRUFBRSxDQUFDOzswQkFvQnpGLE1BQU07MkJBQUMsYUFBYTtpTkFaZCxRQUFRO3NCQUZsQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLG9CQUFvQjtnQkE4R3RCLElBQUk7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5wdXQsIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUdYX0dSSURfQkFTRSwgUGl2b3RHcmlkVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJZ3hSb3dEaXJlY3RpdmUgfSBmcm9tICcuLi9yb3cuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneEdyaWRTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VsZWN0aW9uL3NlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IElQaXZvdERpbWVuc2lvbiwgSVBpdm90RGltZW5zaW9uRGF0YSwgSVBpdm90R3JpZFJlY29yZCB9IGZyb20gJy4vcGl2b3QtZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGl2b3RVdGlsIH0gZnJvbSAnLi9waXZvdC11dGlsJztcblxuXG5jb25zdCBNSU5JTVVNX0NPTFVNTl9XSURUSCA9IDIwMDtcbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnaWd4LXBpdm90LXJvdycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Bpdm90LXJvdy5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBJZ3hSb3dEaXJlY3RpdmUsIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElneFBpdm90Um93Q29tcG9uZW50KSB9XVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hQaXZvdFJvd0NvbXBvbmVudCBleHRlbmRzIElneFJvd0RpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtc2VsZWN0ZWQnKVxuICAgIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGxldCBpc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgIGZvciAobGV0IHJvd0RpbSBvZiB0aGlzLmRhdGEuZGltZW5zaW9ucykge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gUGl2b3RVdGlsLmdldFJlY29yZEtleSh0aGlzLmRhdGEsIHJvd0RpbSk7XG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25TZXJ2aWNlLmlzUGl2b3RSb3dTZWxlY3RlZChrZXkpKSB7XG4gICAgICAgICAgICAgICAgaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzU2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoSUdYX0dSSURfQkFTRSkgcHVibGljIGdyaWQ6IFBpdm90R3JpZFR5cGUsXG4gICAgICAgIHB1YmxpYyBzZWxlY3Rpb25TZXJ2aWNlOiBJZ3hHcmlkU2VsZWN0aW9uU2VydmljZSxcbiAgICAgICAgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJvdGVjdGVkIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByb3RlY3RlZCB2aWV3UmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGdyaWQsIHNlbGVjdGlvblNlcnZpY2UsIGVsZW1lbnQsIGNkcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdmlld0luZGV4KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmluZGV4O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGFkZFJvd1VJKCk6IGFueSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBpbkVkaXRNb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgcGlubmVkKF92YWx1ZTogYm9vbGVhbikge1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGlubmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBkZWxldGUoKSB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBiZWdpbkFkZFJvdygpIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZShfdmFsdWU6IGFueSkge1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgcGluKCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgKiBAaGlkZGVuXG4gICAgKiBAaW50ZXJuYWxcbiAgICAqL1xuICAgIHB1YmxpYyB1bnBpbigpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogIFRoZSBwaXZvdCByZWNvcmQgZGF0YSBwYXNzZWQgdG8gdGhlIHJvdyBjb21wb25lbnQuXG4gICAgKlxuICAgICogYGBgdHlwZXNjcmlwdFxuICAgICogLy8gZ2V0IHRoZSBwaXZvdCByb3cgZGF0YSBmb3IgdGhlIGZpcnN0IHNlbGVjdGVkIHJvd1xuICAgICogbGV0IHNlbGVjdGVkUm93RGF0YSA9IHRoaXMuZ3JpZC5zZWxlY3RlZFJvd3NbMF0uZGF0YTtcbiAgICAqIGBgYFxuICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGRhdGEoKTogSVBpdm90R3JpZFJlY29yZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgZGF0YSh2OiBJUGl2b3RHcmlkUmVjb3JkKSB7XG4gICAgICAgIHRoaXMuX2RhdGEgPSB2O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHBpdm90QWdncmVnYXRpb25EYXRhKCkge1xuICAgICAgICBjb25zdCBhZ2dyZWdhdGlvbnMgPSB0aGlzLmRhdGEuYWdncmVnYXRpb25WYWx1ZXM7XG4gICAgICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgICAgICBhZ2dyZWdhdGlvbnMuZm9yRWFjaCgodmFsdWUsIGtleSkgPT4ge1xuICAgICAgICAgICAgb2JqW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENlbGxDbGFzcyhjb2w6IElneENvbHVtbkNvbXBvbmVudCkge1xuICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdyaWQudmFsdWVzO1xuICAgICAgICBpZiAodmFsdWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlc1swXS5zdHlsZXM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29sTmFtZSA9IGNvbC5maWVsZC5zcGxpdCh0aGlzLmdyaWQucGl2b3RLZXlzLmNvbHVtbkRpbWVuc2lvblNlcGFyYXRvcik7XG4gICAgICAgIGNvbnN0IG1lYXN1cmVOYW1lID0gY29sTmFtZVtjb2xOYW1lLmxlbmd0aCAtIDFdO1xuICAgICAgICByZXR1cm4gdmFsdWVzLmZpbmQodiA9PiB2Lm1lbWJlciA9PT0gbWVhc3VyZU5hbWUpPy5zdHlsZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGlzQ2VsbEFjdGl2ZSh2aXNpYmxlQ29sdW1uSW5kZXgpIHtcbiAgICAgICAgY29uc3QgbmF2ID0gdGhpcy5ncmlkLm5hdmlnYXRpb25cbiAgICAgICAgY29uc3Qgbm9kZSA9IG5hdi5hY3RpdmVOb2RlO1xuICAgICAgICByZXR1cm4gbm9kZSAmJiBPYmplY3Qua2V5cyhub2RlKS5sZW5ndGggIT09IDAgP1xuICAgICAgICAgICAgIW5hdi5pc1Jvd0hlYWRlckFjdGl2ZSAmJlxuICAgICAgICAgICAgc3VwZXIuaXNDZWxsQWN0aXZlKHZpc2libGVDb2x1bW5JbmRleCkgOlxuICAgICAgICAgICAgZmFsc2U7XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIGlneEdyaWRGb3IgbGV0LWNvbCBbaWd4R3JpZEZvck9mXT1cInVucGlubmVkQ29sdW1ucyB8IGlneE5vdEdyb3VwZWRcIlxuICAgIFtpZ3hGb3JTY3JvbGxDb250YWluZXJdPVwiZ3JpZC5wYXJlbnRWaXJ0RGlyXCIgbGV0LWNvbEluZGV4PVwiaW5kZXhcIiBbaWd4Rm9yU2l6ZVByb3BOYW1lXT0nXCJjYWxjUGl4ZWxXaWR0aFwiJ1xuICAgIFtpZ3hGb3JTY3JvbGxPcmllbnRhdGlvbl09XCInaG9yaXpvbnRhbCdcIiBbaWd4Rm9yQ29udGFpbmVyU2l6ZV09J2dyaWQudW5waW5uZWRXaWR0aCdcbiAgICBbaWd4Rm9yVHJhY2tCeV09J2dyaWQudHJhY2tDb2x1bW5DaGFuZ2VzJyAjaWd4RGlyUmVmPlxuICAgIDxpZ3gtZ3JpZC1jZWxsICNjZWxsIGNsYXNzPVwiaWd4LWdyaWRfX3RkIGlneC1ncmlkX190ZC0tZndcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1lZGl0ZWRdPVwia2V5IHwgdHJhbnNhY3Rpb25TdGF0ZTpjb2wuZmllbGQ6Z3JpZC5yb3dFZGl0YWJsZTpncmlkLnRyYW5zYWN0aW9uczpncmlkLnBpcGVUcmlnZ2VyOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5jZWxsOmdyaWQuZ3JpZEFQSS5jcnVkU2VydmljZS5yb3dcIlxuICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImdyaWRJRCArICdfJyArIGNvbC5maWVsZCB8IGlneFN0cmluZ1JlcGxhY2U6Jy4nOidfJ1wiXG4gICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLW51bWJlcl09XCJjb2wuZGF0YVR5cGUgPT09ICdudW1iZXInIHx8IGNvbC5kYXRhVHlwZSA9PT0gJ3BlcmNlbnQnIHx8IGNvbC5kYXRhVHlwZSA9PT0gJ2N1cnJlbmN5J1wiXG4gICAgICAgIFtjbGFzcy5pZ3gtZ3JpZF9fdGQtLWJvb2xdPVwiY29sLmRhdGFUeXBlID09PSAnYm9vbGVhbidcIlxuICAgICAgICBbbmdDbGFzc109XCJ0aGlzLmdldENlbGxDbGFzcyhjb2wpIHwgaWd4Q2VsbFN0eWxlQ2xhc3NlczpkYXRhW2NvbC5maWVsZF06cGl2b3RBZ2dyZWdhdGlvbkRhdGE6Y29sLmZpZWxkOnZpZXdJbmRleDpncmlkLnBpcGVUcmlnZ2VyXCJcbiAgICAgICAgW25nU3R5bGVdPVwiY29sLmNlbGxTdHlsZXMgfCBpZ3hDZWxsU3R5bGVzOnBpdm90QWdncmVnYXRpb25EYXRhW2NvbC5maWVsZF06cGl2b3RBZ2dyZWdhdGlvbkRhdGE6Y29sLmZpZWxkOnZpZXdJbmRleDpncmlkLnBpcGVUcmlnZ2VyXCJcbiAgICAgICAgW2VkaXRNb2RlXT1cImNvbC5lZGl0YWJsZSAmJiB0aGlzLmdyaWQuY3J1ZFNlcnZpY2UudGFyZ2V0SW5FZGl0KGluZGV4LCBjb2wuaW5kZXgpXCIgW2NvbHVtbl09XCJjb2xcIlxuICAgICAgICBbZm9ybWF0dGVyXT1cImNvbC5mb3JtYXR0ZXJcIiBbaW50Um93XT1cInRoaXNcIiBbYWN0aXZlXT1cImlzQ2VsbEFjdGl2ZShjb2wudmlzaWJsZUluZGV4KVwiXG4gICAgICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImNlbGxIZWlnaHRcIiBbcm93RGF0YV09XCJwaXZvdEFnZ3JlZ2F0aW9uRGF0YVwiIFtzdHlsZS5taW4td2lkdGhdPVwiY29sLndpZHRoXCIgW3N0eWxlLm1heC13aWR0aF09XCJjb2wud2lkdGhcIlxuICAgICAgICBbc3R5bGUuZmxleC1iYXNpc109XCJjb2wud2lkdGhcIiBbd2lkdGhdPVwiY29sLmdldENlbGxXaWR0aCgpXCIgW3Zpc2libGVDb2x1bW5JbmRleF09XCJjb2wudmlzaWJsZUluZGV4XCJcbiAgICAgICAgW3ZhbHVlXT1cInBpdm90QWdncmVnYXRpb25EYXRhW2NvbC5maWVsZF0gfCBkYXRhTWFwcGVyOmNvbC5maWVsZDpncmlkLnBpcGVUcmlnZ2VyOnBpdm90QWdncmVnYXRpb25EYXRhW2NvbC5maWVsZF06Y29sLmhhc05lc3RlZFBhdGhcIlxuICAgICAgICBbY2VsbFRlbXBsYXRlXT1cImNvbC5ib2R5VGVtcGxhdGVcIiBbbGFzdFNlYXJjaEluZm9dPVwiZ3JpZC5sYXN0U2VhcmNoSW5mb1wiXG4gICAgICAgIFtjZWxsU2VsZWN0aW9uTW9kZV09XCJncmlkLmNlbGxTZWxlY3Rpb25cIiBbZGlzcGxheVBpbm5lZENoaXBdPVwic2hvdWxkRGlzcGxheVBpbm5lZENoaXAoY29sLnZpc2libGVJbmRleClcIlxuICAgICAgICAocG9pbnRlcmRvd24pPVwiZ3JpZC5uYXZpZ2F0aW9uLmZvY3VzT3V0Um93SGVhZGVyKCRldmVudClcIj5cbiAgICA8L2lneC1ncmlkLWNlbGw+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3Jvd1NlbGVjdG9yQmFzZVRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJpZ3gtZ3JpZF9fY2J4LXBhZGRpbmdcIj5cbiAgICAgICAgPGlneC1jaGVja2JveCBbdGFiaW5kZXhdPVwiLTFcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIFtjaGVja2VkXT1cInNlbGVjdGVkXCIgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiIFtkaXNhYmxlZF09XCJkZWxldGVkXCJcbiAgICAgICAgICAgIFtkaXNhYmxlVHJhbnNpdGlvbnNdPVwiZ3JpZC5kaXNhYmxlVHJhbnNpdGlvbnNcIiBbYXJpYS1sYWJlbF09XCJyb3dDaGVja2JveEFyaWFMYWJlbFwiPlxuICAgICAgICA8L2lneC1jaGVja2JveD5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbiJdfQ==
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3Qtcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9waXZvdC1ncmlkL3Bpdm90LXJvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvcGl2b3QtZ3JpZC9waXZvdC1yb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBR1QsVUFBVSxFQUNWLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUM3QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFpQixNQUFNLDBCQUEwQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUduRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7OztBQUd6QyxNQUFNLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztBQU9qQyxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBZTtJQWlCckQsWUFDa0MsSUFBbUIsRUFDMUMsZ0JBQXlDLEVBQ3pDLE9BQWdDLEVBQ2hDLEdBQXNCLEVBQ25CLFFBQWtDLEVBQ2xDLE9BQXlCO1FBRW5DLEtBQUssQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBUGQsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUMxQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXlCO1FBQ3pDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2hDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBYXZDOzs7V0FH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QUFDO1FBQzVCLE9BQU8sSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzNDLENBQUMsR0FBRyxDQUFDLGlCQUFpQjtnQkFDdEIsS0FBSyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7WUFDeEMsS0FBSyxDQUFDO0lBQ2QsQ0FBQzs7aUhBekpRLG9CQUFvQixrQkFrQmpCLGFBQWE7cUdBbEJoQixvQkFBb0IseUpBRmxCLENBQUMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLGlEQ3RCbEcsMjZFQThCQTsyRkROYSxvQkFBb0I7a0JBTmhDLFNBQVM7c0NBQ1csdUJBQXVCLENBQUMsTUFBTSxZQUNyQyxlQUFlLGFBRWQsQ0FBQyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUMsRUFBRSxDQUFDOzswQkFvQnpGLE1BQU07MkJBQUMsYUFBYTtpTkFaZCxRQUFRO3NCQUZsQixLQUFLOztzQkFDTCxXQUFXO3VCQUFDLG9CQUFvQjtnQkE4R3RCLElBQUk7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5wdXQsIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5Db21wb25lbnQgfSBmcm9tICcuLi9jb2x1bW5zL2NvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUdYX0dSSURfQkFTRSwgUGl2b3RHcmlkVHlwZSB9IGZyb20gJy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJZ3hSb3dEaXJlY3RpdmUgfSBmcm9tICcuLi9yb3cuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneEdyaWRTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VsZWN0aW9uL3NlbGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IElQaXZvdEdyaWRSZWNvcmQgfSBmcm9tICcuL3Bpdm90LWdyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBpdm90VXRpbCB9IGZyb20gJy4vcGl2b3QtdXRpbCc7XG5cblxuY29uc3QgTUlOSU1VTV9DT0xVTU5fV0lEVEggPSAyMDA7XG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2lneC1waXZvdC1yb3cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9waXZvdC1yb3cuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogSWd4Um93RGlyZWN0aXZlLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJZ3hQaXZvdFJvd0NvbXBvbmVudCkgfV1cbn0pXG5leHBvcnQgY2xhc3MgSWd4UGl2b3RSb3dDb21wb25lbnQgZXh0ZW5kcyBJZ3hSb3dEaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXNlbGVjdGVkJylcbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICBmb3IgKGxldCByb3dEaW0gb2YgdGhpcy5kYXRhLmRpbWVuc2lvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IFBpdm90VXRpbC5nZXRSZWNvcmRLZXkodGhpcy5kYXRhLCByb3dEaW0pO1xuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uU2VydmljZS5pc1Bpdm90Um93U2VsZWN0ZWQoa2V5KSkge1xuICAgICAgICAgICAgICAgIGlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc1NlbGVjdGVkO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KElHWF9HUklEX0JBU0UpIHB1YmxpYyBncmlkOiBQaXZvdEdyaWRUeXBlLFxuICAgICAgICBwdWJsaWMgc2VsZWN0aW9uU2VydmljZTogSWd4R3JpZFNlbGVjdGlvblNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByb3RlY3RlZCByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcm90ZWN0ZWQgdmlld1JlZjogVmlld0NvbnRhaW5lclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihncmlkLCBzZWxlY3Rpb25TZXJ2aWNlLCBlbGVtZW50LCBjZHIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHZpZXdJbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmRleDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBhZGRSb3dVSSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgaW5FZGl0TW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IHBpbm5lZChfdmFsdWU6IGJvb2xlYW4pIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBpbm5lZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZGVsZXRlKCkge1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgYmVnaW5BZGRSb3coKSB7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyB1cGRhdGUoX3ZhbHVlOiBhbnkpIHtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIHBpbigpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICogQGhpZGRlblxuICAgICogQGludGVybmFsXG4gICAgKi9cbiAgICBwdWJsaWMgdW5waW4oKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqICBUaGUgcGl2b3QgcmVjb3JkIGRhdGEgcGFzc2VkIHRvIHRoZSByb3cgY29tcG9uZW50LlxuICAgICpcbiAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAqIC8vIGdldCB0aGUgcGl2b3Qgcm93IGRhdGEgZm9yIHRoZSBmaXJzdCBzZWxlY3RlZCByb3dcbiAgICAqIGxldCBzZWxlY3RlZFJvd0RhdGEgPSB0aGlzLmdyaWQuc2VsZWN0ZWRSb3dzWzBdLmRhdGE7XG4gICAgKiBgYGBcbiAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBkYXRhKCk6IElQaXZvdEdyaWRSZWNvcmQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGRhdGEodjogSVBpdm90R3JpZFJlY29yZCkge1xuICAgICAgICB0aGlzLl9kYXRhID0gdjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBwaXZvdEFnZ3JlZ2F0aW9uRGF0YSgpIHtcbiAgICAgICAgY29uc3QgYWdncmVnYXRpb25zID0gdGhpcy5kYXRhLmFnZ3JlZ2F0aW9uVmFsdWVzO1xuICAgICAgICBjb25zdCBvYmogPSB7fTtcbiAgICAgICAgYWdncmVnYXRpb25zLmZvckVhY2goKHZhbHVlLCBrZXkpID0+IHtcbiAgICAgICAgICAgIG9ialtrZXldID0gdmFsdWU7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gb2JqO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDZWxsQ2xhc3MoY29sOiBJZ3hDb2x1bW5Db21wb25lbnQpIHtcbiAgICAgICAgY29uc3QgdmFsdWVzID0gdGhpcy5ncmlkLnZhbHVlcztcbiAgICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZXNbMF0uc3R5bGVzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbE5hbWUgPSBjb2wuZmllbGQuc3BsaXQodGhpcy5ncmlkLnBpdm90S2V5cy5jb2x1bW5EaW1lbnNpb25TZXBhcmF0b3IpO1xuICAgICAgICBjb25zdCBtZWFzdXJlTmFtZSA9IGNvbE5hbWVbY29sTmFtZS5sZW5ndGggLSAxXTtcbiAgICAgICAgcmV0dXJuIHZhbHVlcy5maW5kKHYgPT4gdi5tZW1iZXIgPT09IG1lYXN1cmVOYW1lKT8uc3R5bGVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0NlbGxBY3RpdmUodmlzaWJsZUNvbHVtbkluZGV4KSB7XG4gICAgICAgIGNvbnN0IG5hdiA9IHRoaXMuZ3JpZC5uYXZpZ2F0aW9uXG4gICAgICAgIGNvbnN0IG5vZGUgPSBuYXYuYWN0aXZlTm9kZTtcbiAgICAgICAgcmV0dXJuIG5vZGUgJiYgT2JqZWN0LmtleXMobm9kZSkubGVuZ3RoICE9PSAwID9cbiAgICAgICAgICAgICFuYXYuaXNSb3dIZWFkZXJBY3RpdmUgJiZcbiAgICAgICAgICAgIHN1cGVyLmlzQ2VsbEFjdGl2ZSh2aXNpYmxlQ29sdW1uSW5kZXgpIDpcbiAgICAgICAgICAgIGZhbHNlO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSBpZ3hHcmlkRm9yIGxldC1jb2wgW2lneEdyaWRGb3JPZl09XCJ1bnBpbm5lZENvbHVtbnMgfCBpZ3hOb3RHcm91cGVkXCJcbiAgICBbaWd4Rm9yU2Nyb2xsQ29udGFpbmVyXT1cImdyaWQucGFyZW50VmlydERpclwiIGxldC1jb2xJbmRleD1cImluZGV4XCIgW2lneEZvclNpemVQcm9wTmFtZV09J1wiY2FsY1BpeGVsV2lkdGhcIidcbiAgICBbaWd4Rm9yU2Nyb2xsT3JpZW50YXRpb25dPVwiJ2hvcml6b250YWwnXCIgW2lneEZvckNvbnRhaW5lclNpemVdPSdncmlkLnVucGlubmVkV2lkdGgnXG4gICAgW2lneEZvclRyYWNrQnldPSdncmlkLnRyYWNrQ29sdW1uQ2hhbmdlcycgI2lneERpclJlZj5cbiAgICA8aWd4LWdyaWQtY2VsbCAjY2VsbCBjbGFzcz1cImlneC1ncmlkX190ZCBpZ3gtZ3JpZF9fdGQtLWZ3XCJcbiAgICAgICAgW2NsYXNzLmlneC1ncmlkX190ZC0tZWRpdGVkXT1cImtleSB8IHRyYW5zYWN0aW9uU3RhdGU6Y29sLmZpZWxkOmdyaWQucm93RWRpdGFibGU6Z3JpZC50cmFuc2FjdGlvbnM6Z3JpZC5waXBlVHJpZ2dlcjpncmlkLmdyaWRBUEkuY3J1ZFNlcnZpY2UuY2VsbDpncmlkLmdyaWRBUEkuY3J1ZFNlcnZpY2Uucm93XCJcbiAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJncmlkSUQgKyAnXycgKyBjb2wuZmllbGQgfCBpZ3hTdHJpbmdSZXBsYWNlOicuJzonXydcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1udW1iZXJdPVwiY29sLmRhdGFUeXBlID09PSAnbnVtYmVyJyB8fCBjb2wuZGF0YVR5cGUgPT09ICdwZXJjZW50JyB8fCBjb2wuZGF0YVR5cGUgPT09ICdjdXJyZW5jeSdcIlxuICAgICAgICBbY2xhc3MuaWd4LWdyaWRfX3RkLS1ib29sXT1cImNvbC5kYXRhVHlwZSA9PT0gJ2Jvb2xlYW4nXCJcbiAgICAgICAgW25nQ2xhc3NdPVwidGhpcy5nZXRDZWxsQ2xhc3MoY29sKSB8IGlneENlbGxTdHlsZUNsYXNzZXM6ZGF0YVtjb2wuZmllbGRdOnBpdm90QWdncmVnYXRpb25EYXRhOmNvbC5maWVsZDp2aWV3SW5kZXg6Z3JpZC5waXBlVHJpZ2dlclwiXG4gICAgICAgIFtuZ1N0eWxlXT1cImNvbC5jZWxsU3R5bGVzIHwgaWd4Q2VsbFN0eWxlczpwaXZvdEFnZ3JlZ2F0aW9uRGF0YVtjb2wuZmllbGRdOnBpdm90QWdncmVnYXRpb25EYXRhOmNvbC5maWVsZDp2aWV3SW5kZXg6Z3JpZC5waXBlVHJpZ2dlclwiXG4gICAgICAgIFtlZGl0TW9kZV09XCJjb2wuZWRpdGFibGUgJiYgdGhpcy5ncmlkLmNydWRTZXJ2aWNlLnRhcmdldEluRWRpdChpbmRleCwgY29sLmluZGV4KVwiIFtjb2x1bW5dPVwiY29sXCJcbiAgICAgICAgW2Zvcm1hdHRlcl09XCJjb2wuZm9ybWF0dGVyXCIgW2ludFJvd109XCJ0aGlzXCIgW2FjdGl2ZV09XCJpc0NlbGxBY3RpdmUoY29sLnZpc2libGVJbmRleClcIlxuICAgICAgICBbc3R5bGUubWluLWhlaWdodC5weF09XCJjZWxsSGVpZ2h0XCIgW3Jvd0RhdGFdPVwicGl2b3RBZ2dyZWdhdGlvbkRhdGFcIiBbc3R5bGUubWluLXdpZHRoXT1cImNvbC53aWR0aFwiIFtzdHlsZS5tYXgtd2lkdGhdPVwiY29sLndpZHRoXCJcbiAgICAgICAgW3N0eWxlLmZsZXgtYmFzaXNdPVwiY29sLndpZHRoXCIgW3dpZHRoXT1cImNvbC5nZXRDZWxsV2lkdGgoKVwiIFt2aXNpYmxlQ29sdW1uSW5kZXhdPVwiY29sLnZpc2libGVJbmRleFwiXG4gICAgICAgIFt2YWx1ZV09XCJwaXZvdEFnZ3JlZ2F0aW9uRGF0YVtjb2wuZmllbGRdIHwgZGF0YU1hcHBlcjpjb2wuZmllbGQ6Z3JpZC5waXBlVHJpZ2dlcjpwaXZvdEFnZ3JlZ2F0aW9uRGF0YVtjb2wuZmllbGRdOmNvbC5oYXNOZXN0ZWRQYXRoXCJcbiAgICAgICAgW2NlbGxUZW1wbGF0ZV09XCJjb2wuYm9keVRlbXBsYXRlXCIgW2xhc3RTZWFyY2hJbmZvXT1cImdyaWQubGFzdFNlYXJjaEluZm9cIlxuICAgICAgICBbY2VsbFNlbGVjdGlvbk1vZGVdPVwiZ3JpZC5jZWxsU2VsZWN0aW9uXCIgW2Rpc3BsYXlQaW5uZWRDaGlwXT1cInNob3VsZERpc3BsYXlQaW5uZWRDaGlwKGNvbC52aXNpYmxlSW5kZXgpXCJcbiAgICAgICAgKHBvaW50ZXJkb3duKT1cImdyaWQubmF2aWdhdGlvbi5mb2N1c091dFJvd0hlYWRlcigkZXZlbnQpXCI+XG4gICAgPC9pZ3gtZ3JpZC1jZWxsPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNyb3dTZWxlY3RvckJhc2VUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWRfX2NieC1wYWRkaW5nXCI+XG4gICAgICAgIDxpZ3gtY2hlY2tib3ggW3RhYmluZGV4XT1cIi0xXCIgW3JlYWRvbmx5XT1cInRydWVcIiBbY2hlY2tlZF09XCJzZWxlY3RlZFwiIFtkaXNhYmxlUmlwcGxlXT1cInRydWVcIiBbZGlzYWJsZWRdPVwiZGVsZXRlZFwiXG4gICAgICAgICAgICBbZGlzYWJsZVRyYW5zaXRpb25zXT1cImdyaWQuZGlzYWJsZVRyYW5zaXRpb25zXCIgW2FyaWEtbGFiZWxdPVwicm93Q2hlY2tib3hBcmlhTGFiZWxcIj5cbiAgICAgICAgPC9pZ3gtY2hlY2tib3g+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG4iXX0=
@@ -0,0 +1,26 @@
1
+ import { DefaultPivotSortingStrategy } from '../../data-operations/pivot-sort-strategy';
2
+ import { SortingDirection } from '../../data-operations/sorting-strategy';
3
+ import { PivotUtil } from './pivot-util';
4
+ export class PivotSortUtil {
5
+ static generateDimensionSortingExpressions(dimensions) {
6
+ const expressions = [];
7
+ PivotUtil.flatten(dimensions).forEach(x => {
8
+ if (x.sortDirection) {
9
+ expressions.push({
10
+ dir: x.sortDirection,
11
+ fieldName: x.memberName,
12
+ strategy: DefaultPivotSortingStrategy.instance()
13
+ });
14
+ }
15
+ else {
16
+ expressions.push({
17
+ dir: SortingDirection.None,
18
+ fieldName: x.memberName,
19
+ strategy: DefaultPivotSortingStrategy.instance()
20
+ });
21
+ }
22
+ });
23
+ return expressions;
24
+ }
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3Qtc29ydC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL3Bpdm90LWdyaWQvcGl2b3Qtc29ydC11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hGLE9BQU8sRUFBc0IsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU5RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE1BQU0sT0FBTyxhQUFhO0lBQ2YsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLFVBQTZCO1FBQzNFLE1BQU0sV0FBVyxHQUF5QixFQUFFLENBQUM7UUFDN0MsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLENBQUMsYUFBYSxFQUFFO2dCQUNqQixXQUFXLENBQUMsSUFBSSxDQUFDO29CQUNiLEdBQUcsRUFBRSxDQUFDLENBQUMsYUFBYTtvQkFDcEIsU0FBUyxFQUFFLENBQUMsQ0FBQyxVQUFVO29CQUN2QixRQUFRLEVBQUUsMkJBQTJCLENBQUMsUUFBUSxFQUFFO2lCQUNuRCxDQUFDLENBQUM7YUFDTjtpQkFBTTtnQkFDSCxXQUFXLENBQUMsSUFBSSxDQUFDO29CQUNiLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO29CQUMxQixTQUFTLEVBQUUsQ0FBQyxDQUFDLFVBQVU7b0JBQ3ZCLFFBQVEsRUFBRSwyQkFBMkIsQ0FBQyxRQUFRLEVBQUU7aUJBQ25ELENBQUMsQ0FBQzthQUNOO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWZhdWx0UGl2b3RTb3J0aW5nU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvcGl2b3Qtc29ydC1zdHJhdGVneSc7XG5pbXBvcnQgeyBJU29ydGluZ0V4cHJlc3Npb24sIFNvcnRpbmdEaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1zdHJhdGVneSc7XG5pbXBvcnQgeyBJUGl2b3REaW1lbnNpb24gfSBmcm9tICcuL3Bpdm90LWdyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBpdm90VXRpbCB9IGZyb20gJy4vcGl2b3QtdXRpbCc7XG5cbmV4cG9ydCBjbGFzcyBQaXZvdFNvcnRVdGlsIHtcbiAgICBwdWJsaWMgc3RhdGljIGdlbmVyYXRlRGltZW5zaW9uU29ydGluZ0V4cHJlc3Npb25zKGRpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdKTogSVNvcnRpbmdFeHByZXNzaW9uW10ge1xuICAgICAgICBjb25zdCBleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10gPSBbXTtcbiAgICAgICAgUGl2b3RVdGlsLmZsYXR0ZW4oZGltZW5zaW9ucykuZm9yRWFjaCh4ID0+IHtcbiAgICAgICAgICAgIGlmICh4LnNvcnREaXJlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBleHByZXNzaW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgZGlyOiB4LnNvcnREaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkTmFtZTogeC5tZW1iZXJOYW1lLFxuICAgICAgICAgICAgICAgICAgICBzdHJhdGVneTogRGVmYXVsdFBpdm90U29ydGluZ1N0cmF0ZWd5Lmluc3RhbmNlKClcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIGRpcjogU29ydGluZ0RpcmVjdGlvbi5Ob25lLFxuICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IHgubWVtYmVyTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgc3RyYXRlZ3k6IERlZmF1bHRQaXZvdFNvcnRpbmdTdHJhdGVneS5pbnN0YW5jZSgpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gZXhwcmVzc2lvbnM7XG4gICAgfVxufSJdfQ==