@ng-nest/ui 14.0.1 → 14.0.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 (60) hide show
  1. package/auto-complete/auto-complete.component.d.ts +1 -1
  2. package/core/config/config.d.ts +1 -0
  3. package/esm2020/auto-complete/auto-complete.component.mjs +5 -3
  4. package/esm2020/core/config/config.mjs +1 -1
  5. package/esm2020/icon/icon.component.mjs +6 -2
  6. package/esm2020/input/input.component.mjs +5 -4
  7. package/esm2020/input/input.property.mjs +9 -2
  8. package/esm2020/select/select-portal.component.mjs +7 -15
  9. package/esm2020/select/select.component.mjs +72 -29
  10. package/esm2020/select/select.property.mjs +7 -2
  11. package/esm2020/table/table-body.component.mjs +7 -3
  12. package/esm2020/table/table-foot.component.mjs +7 -3
  13. package/esm2020/table/table-head.component.mjs +22 -6
  14. package/esm2020/table/table.component.mjs +37 -8
  15. package/esm2020/table/table.property.mjs +12 -4
  16. package/esm2020/tree/tree-node.component.mjs +4 -70
  17. package/esm2020/tree/tree.component.mjs +123 -23
  18. package/esm2020/tree/tree.property.mjs +1 -1
  19. package/fesm2015/ng-nest-ui-auto-complete.mjs +4 -2
  20. package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
  21. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  22. package/fesm2015/ng-nest-ui-icon.mjs +5 -1
  23. package/fesm2015/ng-nest-ui-icon.mjs.map +1 -1
  24. package/fesm2015/ng-nest-ui-input.mjs +12 -4
  25. package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
  26. package/fesm2015/ng-nest-ui-select.mjs +81 -41
  27. package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
  28. package/fesm2015/ng-nest-ui-table.mjs +81 -22
  29. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  30. package/fesm2015/ng-nest-ui-tree.mjs +125 -91
  31. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  32. package/fesm2020/ng-nest-ui-auto-complete.mjs +4 -2
  33. package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
  34. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  35. package/fesm2020/ng-nest-ui-icon.mjs +5 -1
  36. package/fesm2020/ng-nest-ui-icon.mjs.map +1 -1
  37. package/fesm2020/ng-nest-ui-input.mjs +12 -4
  38. package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
  39. package/fesm2020/ng-nest-ui-select.mjs +81 -41
  40. package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
  41. package/fesm2020/ng-nest-ui-table.mjs +77 -18
  42. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  43. package/fesm2020/ng-nest-ui-tree.mjs +125 -91
  44. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  45. package/input/input.property.d.ts +6 -1
  46. package/package.json +1 -1
  47. package/select/select-portal.component.d.ts +1 -1
  48. package/select/select.component.d.ts +8 -4
  49. package/select/select.property.d.ts +6 -1
  50. package/table/examples/en_US/default/fix/README.md +6 -0
  51. package/table/examples/en_US/default/header/README.md +6 -0
  52. package/table/examples/zh_CN/default/fix/README.md +6 -0
  53. package/table/examples/zh_CN/default/header/README.md +6 -0
  54. package/table/table-foot.component.d.ts +1 -0
  55. package/table/table-head.component.d.ts +2 -1
  56. package/table/table.component.d.ts +10 -1
  57. package/table/table.property.d.ts +32 -2
  58. package/tree/tree-node.component.d.ts +0 -3
  59. package/tree/tree.component.d.ts +3 -0
  60. package/tree/tree.property.d.ts +5 -0
@@ -7,10 +7,11 @@ import * as i0 from "@angular/core";
7
7
  import * as i1 from "@ng-nest/ui/core";
8
8
  import * as i2 from "@angular/common";
9
9
  import * as i3 from "@ng-nest/ui/pagination";
10
- import * as i4 from "@ng-nest/ui/loading";
11
- import * as i5 from "./table-head.component";
12
- import * as i6 from "./table-body.component";
13
- import * as i7 from "./table-foot.component";
10
+ import * as i4 from "@ng-nest/ui/outlet";
11
+ import * as i5 from "@ng-nest/ui/loading";
12
+ import * as i6 from "./table-head.component";
13
+ import * as i7 from "./table-body.component";
14
+ import * as i8 from "./table-foot.component";
14
15
  export class XTableComponent extends XTableProperty {
15
16
  constructor(renderer, elementRef, cdr, configService) {
16
17
  super();
@@ -23,6 +24,7 @@ export class XTableComponent extends XTableProperty {
23
24
  this.hasScrollX = false;
24
25
  this.scrollXHeight = 0;
25
26
  this.scrollLeft = 0;
27
+ this.scrollLeftMax = false;
26
28
  this.scrollTop = 0;
27
29
  this.dataIsFunc = false;
28
30
  this.getting = false;
@@ -38,6 +40,9 @@ export class XTableComponent extends XTableProperty {
38
40
  get getScrollTop() {
39
41
  return this.scrollTop > 0;
40
42
  }
43
+ get getRowHeight() {
44
+ return this.rowHeight == 0 ? '' : this.rowHeight;
45
+ }
41
46
  ngOnInit() {
42
47
  this.setClassMap();
43
48
  this.setRowChecked();
@@ -56,6 +61,9 @@ export class XTableComponent extends XTableProperty {
56
61
  this._unSubject.next();
57
62
  this._unSubject.complete();
58
63
  }
64
+ ngAfterViewInit() {
65
+ this.tcaption = this.caption;
66
+ }
59
67
  setClassMap() {
60
68
  this.classMap = {
61
69
  [`${XTablePrefix}-row-size-${this.rowSize}`]: !XIsEmpty(this.rowSize)
@@ -65,9 +73,27 @@ export class XTableComponent extends XTableProperty {
65
73
  setPaginationPosition() {
66
74
  this.renderer.addClass(this.elementRef.nativeElement, `x-table-${this.paginationPosition}`);
67
75
  }
68
- getSticky(column) {
76
+ getStickyLeft(column) {
69
77
  return Number(column.left) >= 0;
70
78
  }
79
+ getStickyLeftLast(column) {
80
+ let lefts = this.columns.filter((x) => Number(x.left) >= 0);
81
+ if (lefts.length === 0)
82
+ return false;
83
+ return lefts[lefts.length - 1].id === column.id;
84
+ }
85
+ getStickyRight(column) {
86
+ return Number(column.right) >= 0;
87
+ }
88
+ getStickyRightFirst(column) {
89
+ let rights = this.columns.filter((x) => Number(x.right) >= 0);
90
+ if (rights.length === 0)
91
+ return false;
92
+ return rights[0].id === column.id;
93
+ }
94
+ hasStickyRight() {
95
+ return this.columns.some((x) => Number(x.right) >= 0);
96
+ }
71
97
  getIndex(index) {
72
98
  return (Number(this.index) - 1) * Number(this.size) + index + 1;
73
99
  }
@@ -255,15 +281,18 @@ export class XTableComponent extends XTableProperty {
255
281
  }
256
282
  }
257
283
  /** @nocollapse */ XTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTableComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
258
- /** @nocollapse */ XTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTableComponent, selector: "x-table", viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }, { propertyName: "pagination", first: true, predicate: ["pagination"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap\"\r\n [x-loading]=\"loading && getting\"\r\n [class.x-table-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n <x-table-head\r\n *ngIf=\"showHeader\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]=\"treeTable ? treeTableData : tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n <x-table-foot [table]=\"this\"></x-table-foot>\r\n</table>\r\n<x-pagination\r\n #pagination\r\n *ngIf=\"showPagination && size\"\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"change($event)\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenBorder\"\r\n>\r\n</x-pagination>\r\n", styles: [".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead{position:relative;overflow:hidden;display:block;background-color:var(--x-background);min-height:42px}.x-table>thead>tr{position:absolute;width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:1}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:1}.x-table>tbody tr>td>x-button .x-icon{transition:var(--x-animation-duration-base)}.x-table>tbody tr>td>x-button.is-leaf{visibility:hidden}.x-table>tbody tr>td>x-button.is-expanded .x-icon{transform:rotate(90deg)}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-background-a200);color:var(--x-primary)}.x-table>tbody tr:hover>td{background-color:var(--x-background-a200)}.x-table>tbody tr:last-child{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table>tfoot{display:flex;flex-direction:column;justify-content:center}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-up,.x-table-sort-icon.x-icon.x-table-icon-down{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:0 var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);z-index:1}.x-table-scroll-left>thead .x-table-sticky{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-scroll-left>tbody .x-table-sticky{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>thead>tr>th,.x-table-bordered>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>thead>tr>th:last-child,.x-table-bordered>tbody tr>td:last-child{border-right:none}.x-table-cell-config>thead tr,.x-table-cell-config>tbody tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>thead>tr>th,.x-table-cell-config>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>thead>tr>th:last-child,.x-table-cell-config>tbody tr>td:last-child{border-right:none}.x-table-expand{margin-right:.5rem}.x-table-expandTpl{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-expandTpl>tr{display:block!important;height:inherit!important}.x-table-row-size-big>thead>tr>th,.x-table-row-size-big>tbody tr>td{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) 0}.x-table-row-size-big>thead>tr>th:first-child,.x-table-row-size-big>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big.x-table-bordered>thead>tr>th,.x-table-row-size-big.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big.x-table-cell-config>thead>tr>th,.x-table-row-size-big.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>thead>tr>th,.x-table-row-size-large>tbody tr>td{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) 0}.x-table-row-size-large>thead>tr>th:first-child,.x-table-row-size-large>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large.x-table-bordered>thead>tr>th,.x-table-row-size-large.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large.x-table-cell-config>thead>tr>th,.x-table-row-size-large.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>thead>tr>th,.x-table-row-size-medium>tbody tr>td{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) 0}.x-table-row-size-medium>thead>tr>th:first-child,.x-table-row-size-medium>tbody tr>td:first-child{padding-left:var(--x-font-size)}.x-table-row-size-medium.x-table-bordered>thead>tr>th,.x-table-row-size-medium.x-table-bordered>tbody tr>td{padding-left:var(--x-font-size)}.x-table-row-size-medium.x-table-cell-config>thead>tr>th,.x-table-row-size-medium.x-table-cell-config>tbody tr>td{padding-left:var(--x-font-size)}.x-table-row-size-small>thead>tr>th,.x-table-row-size-small>tbody tr>td{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) 0}.x-table-row-size-small>thead>tr>th:first-child,.x-table-row-size-small>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small.x-table-bordered>thead>tr>th,.x-table-row-size-small.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small.x-table-cell-config>thead>tr>th,.x-table-row-size-small.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>thead>tr>th,.x-table-row-size-mini>tbody tr>td{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) 0}.x-table-row-size-mini>thead>tr>th:first-child,.x-table-row-size-mini>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) / 2)}.x-table-row-size-mini.x-table-bordered>thead>tr>th,.x-table-row-size-mini.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) / 2)}.x-table-row-size-mini.x-table-cell-config>thead>tr>th,.x-table-row-size-mini.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) / 2)}x-table{width:100%;display:flex;flex-direction:column}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}x-table.x-table-top-left{flex-direction:column-reverse}x-table.x-table-top-left .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-center{flex-direction:column-reverse;align-items:center}x-table.x-table-top-center .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-right{flex-direction:column-reverse;align-items:flex-end}x-table.x-table-top-right .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-bottom-center{align-items:center}x-table.x-table-bottom-right{align-items:flex-end}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XPaginationComponent, selector: "x-pagination" }, { kind: "component", type: i4.XLoadingComponent, selector: "x-loading, [x-loading]" }, { kind: "component", type: i5.XTableHeadComponent, selector: "x-table-head", inputs: ["table"] }, { kind: "component", type: i6.XTableBodyComponent, selector: "x-table-body", inputs: ["table"] }, { kind: "component", type: i7.XTableFootComponent, selector: "x-table-foot", inputs: ["table"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
284
+ /** @nocollapse */ XTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTableComponent, selector: "x-table", viewQueries: [{ propertyName: "table", first: true, predicate: ["table"], descendants: true }, { propertyName: "caption", first: true, predicate: ["caption"], descendants: true }, { propertyName: "pagination", first: true, predicate: ["pagination"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap\"\r\n [x-loading]=\"loading && getting\"\r\n [class.x-table-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n <caption #caption class=\"x-table-header\" *ngIf=\"header\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"header\">{{ header }}</ng-container>\r\n </caption>\r\n <x-table-head\r\n *ngIf=\"showHeader\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]=\"treeTable ? treeTableData : tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n <ng-container *ngIf=\"footer\">\r\n <x-table-foot [table]=\"this\" [footer]=\"footer\" [rowHeight]=\"rowHeight\"></x-table-foot>\r\n </ng-container>\r\n <div\r\n *ngIf=\"hasStickyRight()\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n</table>\r\n<x-pagination\r\n #pagination\r\n *ngIf=\"showPagination && size\"\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"change($event)\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenBorder\"\r\n>\r\n</x-pagination>\r\n", styles: [".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;border:var(--x-border-width) var(--x-border-style) var(--x-border);position:relative}.x-table>thead{position:relative;overflow:hidden;display:block;background-color:var(--x-background);min-height:42px}.x-table>thead>tr{position:absolute;width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:1}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:1}.x-table>tbody tr>td>x-button .x-icon{transition:var(--x-animation-duration-base)}.x-table>tbody tr>td>x-button.is-leaf{visibility:hidden}.x-table>tbody tr>td>x-button.is-expanded .x-icon{transform:rotate(90deg)}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-background-a200);color:var(--x-primary)}.x-table>tbody tr:hover>td{background-color:var(--x-background-a200)}.x-table>tbody tr:last-child{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-up,.x-table-sort-icon.x-icon.x-table-icon-down{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:0 var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>thead>tr>th,.x-table-bordered>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>thead>tr>th:last-child,.x-table-bordered>tbody tr>td:last-child{border-right:none}.x-table-cell-config>thead tr,.x-table-cell-config>tbody tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>thead>tr>th,.x-table-cell-config>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>thead>tr>th:last-child,.x-table-cell-config>tbody tr>td:last-child{border-right:none}.x-table-expand{margin-right:.5rem}.x-table-expandTpl>tr{display:block!important;height:inherit!important}.x-table-header{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);text-align:left;display:flex;align-items:center}.x-table-footer{display:flex;align-items:center}.x-table-sticky-right-scroll{position:absolute;right:0;top:0;min-height:42px;background-color:var(--x-background);z-index:1}.x-table-has-scroll-right .x-table-footer{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-has-scroll-bottom:not(.x-table-scroll-left-max) .x-table-sticky-right-first{box-shadow:var(--x-box-shadow-light-width-minus) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-row-size-big>thead>tr>th,.x-table-row-size-big>tbody tr>td{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) 0}.x-table-row-size-big>thead>tr>th:first-child,.x-table-row-size-big>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big .x-table-header,.x-table-row-size-big .x-table-footer{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big.x-table-bordered>thead>tr>th,.x-table-row-size-big.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big.x-table-cell-config>thead>tr>th,.x-table-row-size-big.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>thead>tr>th,.x-table-row-size-large>tbody tr>td{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) 0}.x-table-row-size-large>thead>tr>th:first-child,.x-table-row-size-large>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large .x-table-header,.x-table-row-size-large .x-table-footer{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large.x-table-bordered>thead>tr>th,.x-table-row-size-large.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large.x-table-cell-config>thead>tr>th,.x-table-row-size-large.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>thead>tr>th,.x-table-row-size-medium>tbody tr>td{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) 0}.x-table-row-size-medium>thead>tr>th:first-child,.x-table-row-size-medium>tbody tr>td:first-child{padding-left:var(--x-font-size)}.x-table-row-size-medium .x-table-header,.x-table-row-size-medium .x-table-footer{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-medium.x-table-bordered>thead>tr>th,.x-table-row-size-medium.x-table-bordered>tbody tr>td{padding-left:var(--x-font-size)}.x-table-row-size-medium.x-table-cell-config>thead>tr>th,.x-table-row-size-medium.x-table-cell-config>tbody tr>td{padding-left:var(--x-font-size)}.x-table-row-size-small>thead>tr>th,.x-table-row-size-small>tbody tr>td{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) 0}.x-table-row-size-small>thead>tr>th:first-child,.x-table-row-size-small>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small .x-table-header,.x-table-row-size-small .x-table-footer{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small.x-table-bordered>thead>tr>th,.x-table-row-size-small.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small.x-table-cell-config>thead>tr>th,.x-table-row-size-small.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>thead>tr>th,.x-table-row-size-mini>tbody tr>td{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) 0}.x-table-row-size-mini>thead>tr>th:first-child,.x-table-row-size-mini>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) / 2)}.x-table-row-size-mini .x-table-header,.x-table-row-size-mini .x-table-footer{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}.x-table-row-size-mini.x-table-bordered>thead>tr>th,.x-table-row-size-mini.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) / 2)}.x-table-row-size-mini.x-table-cell-config>thead>tr>th,.x-table-row-size-mini.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) / 2)}x-table{width:100%;display:flex;flex-direction:column}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}x-table.x-table-top-left{flex-direction:column-reverse}x-table.x-table-top-left .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-center{flex-direction:column-reverse;align-items:center}x-table.x-table-top-center .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-right{flex-direction:column-reverse;align-items:flex-end}x-table.x-table-top-right .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-bottom-center{align-items:center}x-table.x-table-bottom-right{align-items:flex-end}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XPaginationComponent, selector: "x-pagination" }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i5.XLoadingComponent, selector: "x-loading, [x-loading]" }, { kind: "component", type: i6.XTableHeadComponent, selector: "x-table-head", inputs: ["table"] }, { kind: "component", type: i7.XTableBodyComponent, selector: "x-table-body", inputs: ["table"] }, { kind: "component", type: i8.XTableFootComponent, selector: "x-table-foot", inputs: ["table"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
259
285
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTableComponent, decorators: [{
260
286
  type: Component,
261
- args: [{ selector: `${XTablePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap\"\r\n [x-loading]=\"loading && getting\"\r\n [class.x-table-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n <x-table-head\r\n *ngIf=\"showHeader\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]=\"treeTable ? treeTableData : tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n <x-table-foot [table]=\"this\"></x-table-foot>\r\n</table>\r\n<x-pagination\r\n #pagination\r\n *ngIf=\"showPagination && size\"\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"change($event)\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenBorder\"\r\n>\r\n</x-pagination>\r\n", styles: [".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;border:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead{position:relative;overflow:hidden;display:block;background-color:var(--x-background);min-height:42px}.x-table>thead>tr{position:absolute;width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:1}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:1}.x-table>tbody tr>td>x-button .x-icon{transition:var(--x-animation-duration-base)}.x-table>tbody tr>td>x-button.is-leaf{visibility:hidden}.x-table>tbody tr>td>x-button.is-expanded .x-icon{transform:rotate(90deg)}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-background-a200);color:var(--x-primary)}.x-table>tbody tr:hover>td{background-color:var(--x-background-a200)}.x-table>tbody tr:last-child{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table>tfoot{display:flex;flex-direction:column;justify-content:center}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-up,.x-table-sort-icon.x-icon.x-table-icon-down{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:0 var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);z-index:1}.x-table-scroll-left>thead .x-table-sticky{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-scroll-left>tbody .x-table-sticky{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>thead>tr>th,.x-table-bordered>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>thead>tr>th:last-child,.x-table-bordered>tbody tr>td:last-child{border-right:none}.x-table-cell-config>thead tr,.x-table-cell-config>tbody tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>thead>tr>th,.x-table-cell-config>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>thead>tr>th:last-child,.x-table-cell-config>tbody tr>td:last-child{border-right:none}.x-table-expand{margin-right:.5rem}.x-table-expandTpl{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-expandTpl>tr{display:block!important;height:inherit!important}.x-table-row-size-big>thead>tr>th,.x-table-row-size-big>tbody tr>td{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) 0}.x-table-row-size-big>thead>tr>th:first-child,.x-table-row-size-big>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big.x-table-bordered>thead>tr>th,.x-table-row-size-big.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big.x-table-cell-config>thead>tr>th,.x-table-row-size-big.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>thead>tr>th,.x-table-row-size-large>tbody tr>td{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) 0}.x-table-row-size-large>thead>tr>th:first-child,.x-table-row-size-large>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large.x-table-bordered>thead>tr>th,.x-table-row-size-large.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large.x-table-cell-config>thead>tr>th,.x-table-row-size-large.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>thead>tr>th,.x-table-row-size-medium>tbody tr>td{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) 0}.x-table-row-size-medium>thead>tr>th:first-child,.x-table-row-size-medium>tbody tr>td:first-child{padding-left:var(--x-font-size)}.x-table-row-size-medium.x-table-bordered>thead>tr>th,.x-table-row-size-medium.x-table-bordered>tbody tr>td{padding-left:var(--x-font-size)}.x-table-row-size-medium.x-table-cell-config>thead>tr>th,.x-table-row-size-medium.x-table-cell-config>tbody tr>td{padding-left:var(--x-font-size)}.x-table-row-size-small>thead>tr>th,.x-table-row-size-small>tbody tr>td{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) 0}.x-table-row-size-small>thead>tr>th:first-child,.x-table-row-size-small>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small.x-table-bordered>thead>tr>th,.x-table-row-size-small.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small.x-table-cell-config>thead>tr>th,.x-table-row-size-small.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>thead>tr>th,.x-table-row-size-mini>tbody tr>td{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) 0}.x-table-row-size-mini>thead>tr>th:first-child,.x-table-row-size-mini>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) / 2)}.x-table-row-size-mini.x-table-bordered>thead>tr>th,.x-table-row-size-mini.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) / 2)}.x-table-row-size-mini.x-table-cell-config>thead>tr>th,.x-table-row-size-mini.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) / 2)}x-table{width:100%;display:flex;flex-direction:column}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}x-table.x-table-top-left{flex-direction:column-reverse}x-table.x-table-top-left .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-center{flex-direction:column-reverse;align-items:center}x-table.x-table-top-center .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-right{flex-direction:column-reverse;align-items:flex-end}x-table.x-table-top-right .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-bottom-center{align-items:center}x-table.x-table-bottom-right{align-items:flex-end}\n"] }]
287
+ args: [{ selector: `${XTablePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table\r\n #table\r\n class=\"x-table\"\r\n [ngClass]=\"classMap\"\r\n [x-loading]=\"loading && getting\"\r\n [class.x-table-scroll-left]=\"getScrollLeft\"\r\n [class.x-table-scroll-left-max]=\"scrollLeftMax\"\r\n [class.x-table-scroll-top]=\"getScrollTop\"\r\n [class.x-table-has-scroll-right]=\"scrollYWidth\"\r\n [class.x-table-has-scroll-bottom]=\"scrollXWidth\"\r\n [class.x-table-bordered]=\"bordered\"\r\n [class.x-table-td-adaption-height]=\"rowHeight == 0\"\r\n [class.x-table-cell-config]=\"cellConfig\"\r\n>\r\n <caption #caption class=\"x-table-header\" *ngIf=\"header\" [style.height.px]=\"getRowHeight\" [style.min-height.px]=\"getRowHeight\">\r\n <ng-container *xOutlet=\"header\">{{ header }}</ng-container>\r\n </caption>\r\n <x-table-head\r\n *ngIf=\"showHeader\"\r\n [columns]=\"columns\"\r\n [rowHeight]=\"rowHeight\"\r\n [columnTpl]=\"headColumnTpl\"\r\n [scrollYWidth]=\"scrollYWidth\"\r\n [scrollXWidth]=\"scrollXWidth\"\r\n [cellConfig]=\"cellConfig?.thead\"\r\n [table]=\"this\"\r\n ></x-table-head>\r\n <x-table-body\r\n [data]=\"treeTable ? treeTableData : tableData\"\r\n [columns]=\"columns\"\r\n [itemSize]=\"itemSize\"\r\n [rowHeight]=\"rowHeight\"\r\n [bodyHeight]=\"bodyHeight\"\r\n [columnTpl]=\"bodyColumnTpl\"\r\n [allowSelectRow]=\"allowSelectRow\"\r\n [virtualScroll]=\"virtualScroll\"\r\n [minBufferPx]=\"minBufferPx\"\r\n [maxBufferPx]=\"maxBufferPx\"\r\n [adaptionHeight]=\"adaptionHeight\"\r\n [docPercent]=\"docPercent\"\r\n [scroll]=\"scroll\"\r\n [rowClass]=\"rowClass\"\r\n [cellConfig]=\"cellConfig?.tbody\"\r\n [expandedAll]=\"expandedAll\"\r\n [expandTpl]=\"expandTpl\"\r\n [(activatedRow)]=\"activatedRow\"\r\n (activatedRowChange)=\"activatedRowChange.emit($event)\"\r\n [table]=\"this\"\r\n ></x-table-body>\r\n <ng-container *ngIf=\"footer\">\r\n <x-table-foot [table]=\"this\" [footer]=\"footer\" [rowHeight]=\"rowHeight\"></x-table-foot>\r\n </ng-container>\r\n <div\r\n *ngIf=\"hasStickyRight()\"\r\n class=\"x-table-sticky-right-scroll\"\r\n [style.width.px]=\"scrollYWidth\"\r\n [style.height.px]=\"getRowHeight\"\r\n [style.min-height.px]=\"getRowHeight\"\r\n ></div>\r\n</table>\r\n<x-pagination\r\n #pagination\r\n *ngIf=\"showPagination && size\"\r\n [(index)]=\"index\"\r\n [(size)]=\"size\"\r\n [(query)]=\"query\"\r\n [total]=\"total\"\r\n (indexChange)=\"change($event)\"\r\n [showEllipsis]=\"showEllipsis\"\r\n [showTotal]=\"showTotal\"\r\n [space]=\"space\"\r\n [hiddenBorder]=\"hiddenBorder\"\r\n>\r\n</x-pagination>\r\n", styles: [".x-table{margin:0;padding:0;display:flex;flex-direction:column;border-collapse:collapse;width:100%;border:var(--x-border-width) var(--x-border-style) var(--x-border);position:relative}.x-table>thead{position:relative;overflow:hidden;display:block;background-color:var(--x-background);min-height:42px}.x-table>thead>tr{position:absolute;width:100%;display:flex;min-height:42px}.x-table>thead>tr>th{display:flex;align-items:center;flex:1;position:relative;font-weight:600;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>thead>tr>th>a{display:inline-flex;align-items:center;color:var(--x-text-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.x-table>thead>tr>th.x-table-sticky{position:sticky;z-index:1}.x-table>thead>tr>th .x-table-drag-width{position:absolute;height:100%;width:.1875rem;right:-.125rem;cursor:ew-resize;transition:background-color var(--x-animation-duration-fast);z-index:1}.x-table>thead>tr>th .x-table-drag-width:hover{background-color:var(--x-primary)}.x-table>tbody{display:block;border-top:none;position:relative;min-height:7rem}.x-table>tbody tr{display:flex}.x-table>tbody tr>td{display:flex;align-items:center;position:relative;justify-content:space-between;overflow:hidden;background-color:var(--x-background);border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table>tbody tr>td>div{flex:1;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.x-table>tbody tr>td.x-table-sticky{position:sticky;z-index:1}.x-table>tbody tr>td>x-button .x-icon{transition:var(--x-animation-duration-base)}.x-table>tbody tr>td>x-button.is-leaf{visibility:hidden}.x-table>tbody tr>td>x-button.is-expanded .x-icon{transform:rotate(90deg)}.x-table>tbody tr.x-table-activated>td{background-color:var(--x-background-a200);color:var(--x-primary)}.x-table>tbody tr:hover>td{background-color:var(--x-background-a200)}.x-table>tbody tr:last-child{border-bottom:none}.x-table>tbody x-empty{position:absolute;top:0;width:100%;padding:calc(var(--x-font-size) * 2)}.x-table-sort{cursor:pointer;transition:transform .2s}.x-table-sort:hover{color:var(--x-text-300)}.x-table-sort:active{transform:translate(1px,1px)}.x-table-sort-icon.x-icon{margin-left:.25rem;display:none;font-size:1rem;transform:rotate(90deg) rotateY(180deg);transition:.3s}.x-table-sort-icon.x-icon.x-table-icon-up,.x-table-sort-icon.x-icon.x-table-icon-down{display:inherit}.x-table-sort-icon.x-icon.x-table-icon-down{transform:rotate(90deg)}.x-table-scroll-top>thead{box-shadow:0 var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);z-index:1}.x-table-scroll-left .x-table-sticky-left-last{box-shadow:var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-td-adaption-height>tbody tr>td{overflow:inherit}.x-table-td-adaption-height>tbody tr>td>div{white-space:inherit;text-overflow:inherit;overflow:inherit}.x-table-bordered>thead>tr>th,.x-table-bordered>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border);padding-left:calc(var(--x-font-size) / 2)}.x-table-bordered>thead>tr>th:last-child,.x-table-bordered>tbody tr>td:last-child{border-right:none}.x-table-cell-config>thead tr,.x-table-cell-config>tbody tr{display:grid;grid-auto-flow:row;height:100%}.x-table-cell-config>thead>tr>th,.x-table-cell-config>tbody tr>td{border-right:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-cell-config>thead>tr>th:last-child,.x-table-cell-config>tbody tr>td:last-child{border-right:none}.x-table-expand{margin-right:.5rem}.x-table-expandTpl>tr{display:block!important;height:inherit!important}.x-table-header{border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border);text-align:left;display:flex;align-items:center}.x-table-footer{display:flex;align-items:center}.x-table-sticky-right-scroll{position:absolute;right:0;top:0;min-height:42px;background-color:var(--x-background);z-index:1}.x-table-has-scroll-right .x-table-footer{border-top:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-has-scroll-bottom:not(.x-table-scroll-left-max) .x-table-sticky-right-first{box-shadow:var(--x-box-shadow-light-width-minus) var(--x-box-shadow-light-width) var(--x-box-shadow-light-width) var(--x-box-shadow-light-color);border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-table-row-size-big>thead>tr>th,.x-table-row-size-big>tbody tr>td{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) 0}.x-table-row-size-big>thead>tr>th:first-child,.x-table-row-size-big>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big .x-table-header,.x-table-row-size-big .x-table-footer{padding:calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4) calc(var(--x-font-size) / 5 * 4) calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big.x-table-bordered>thead>tr>th,.x-table-row-size-big.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-big.x-table-cell-config>thead>tr>th,.x-table-row-size-big.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 5 / 4)}.x-table-row-size-large>thead>tr>th,.x-table-row-size-large>tbody tr>td{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) 0}.x-table-row-size-large>thead>tr>th:first-child,.x-table-row-size-large>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large .x-table-header,.x-table-row-size-large .x-table-footer{padding:calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3) calc(var(--x-font-size) / 4 * 3) calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large.x-table-bordered>thead>tr>th,.x-table-row-size-large.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-large.x-table-cell-config>thead>tr>th,.x-table-row-size-large.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 4 / 3)}.x-table-row-size-medium>thead>tr>th,.x-table-row-size-medium>tbody tr>td{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) 0}.x-table-row-size-medium>thead>tr>th:first-child,.x-table-row-size-medium>tbody tr>td:first-child{padding-left:var(--x-font-size)}.x-table-row-size-medium .x-table-header,.x-table-row-size-medium .x-table-footer{padding:calc(var(--x-font-size) / 2) var(--x-font-size) calc(var(--x-font-size) / 2) var(--x-font-size)}.x-table-row-size-medium.x-table-bordered>thead>tr>th,.x-table-row-size-medium.x-table-bordered>tbody tr>td{padding-left:var(--x-font-size)}.x-table-row-size-medium.x-table-cell-config>thead>tr>th,.x-table-row-size-medium.x-table-cell-config>tbody tr>td{padding-left:var(--x-font-size)}.x-table-row-size-small>thead>tr>th,.x-table-row-size-small>tbody tr>td{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) 0}.x-table-row-size-small>thead>tr>th:first-child,.x-table-row-size-small>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small .x-table-header,.x-table-row-size-small .x-table-footer{padding:calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3) calc(var(--x-font-size) / 3) calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small.x-table-bordered>thead>tr>th,.x-table-row-size-small.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-small.x-table-cell-config>thead>tr>th,.x-table-row-size-small.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) * 2 / 3)}.x-table-row-size-mini>thead>tr>th,.x-table-row-size-mini>tbody tr>td{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) 0}.x-table-row-size-mini>thead>tr>th:first-child,.x-table-row-size-mini>tbody tr>td:first-child{padding-left:calc(var(--x-font-size) / 2)}.x-table-row-size-mini .x-table-header,.x-table-row-size-mini .x-table-footer{padding:calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2) calc(var(--x-font-size) / 4) calc(var(--x-font-size) / 2)}.x-table-row-size-mini.x-table-bordered>thead>tr>th,.x-table-row-size-mini.x-table-bordered>tbody tr>td{padding-left:calc(var(--x-font-size) / 2)}.x-table-row-size-mini.x-table-cell-config>thead>tr>th,.x-table-row-size-mini.x-table-cell-config>tbody tr>td{padding-left:calc(var(--x-font-size) / 2)}x-table{width:100%;display:flex;flex-direction:column}x-table .x-pagination{padding-top:calc(var(--x-font-size) / 2)}x-table.x-table-top-left{flex-direction:column-reverse}x-table.x-table-top-left .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-center{flex-direction:column-reverse;align-items:center}x-table.x-table-top-center .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-top-right{flex-direction:column-reverse;align-items:flex-end}x-table.x-table-top-right .x-pagination{padding-top:0;padding-bottom:calc(var(--x-font-size) / 2)}x-table.x-table-bottom-center{align-items:center}x-table.x-table-bottom-right{align-items:flex-end}\n"] }]
262
288
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { table: [{
263
289
  type: ViewChild,
264
290
  args: ['table']
291
+ }], caption: [{
292
+ type: ViewChild,
293
+ args: ['caption']
265
294
  }], pagination: [{
266
295
  type: ViewChild,
267
296
  args: ['pagination']
268
297
  }] } });
269
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBNkQsTUFBTSxrQkFBa0IsQ0FBQztBQUMzSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBK0MsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQVMvQixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxjQUFjO0lBaUNqRCxZQUNTLFFBQW1CLEVBQ25CLFVBQXNCLEVBQ3RCLEdBQXNCLEVBQ3RCLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQXhCdEMsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBRWxCLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBS2QsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixZQUFP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QUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLEtBQUssVUFBVSxDQUFDO1FBQ3JELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsVUFBVSxHQUFHLENBQUMsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzVGLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDOzsrSEF0UVUsZUFBZTttSEFBZixlQUFlLHNSQzFCNUIsNjJEQTJEQTsyRkRqQ2EsZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSxHQUFHLFlBQVksRUFBRSxpQkFHWixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO3NMQWdDM0IsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNPLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxuICBPbkRlc3Ryb3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFRhYmxlUHJlZml4LCBYVGFibGVQcm9wZXJ0eSwgWFRhYmxlQ29sdW1uLCBYVGFibGVSb3csIFhUYWJsZUNlbGwsIFhUYWJsZUNlbGxDb25maWdSdWxlIH0gZnJvbSAnLi90YWJsZS5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0NoYW5nZSwgWElzRW1wdHksIFhSZXN1bHRMaXN0LCBYTnVtYmVyLCBYU29ydCwgWENvbmZpZ1NlcnZpY2UsIFhJc1VuZGVmaW5lZCB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcclxuaW1wb3J0IHsgWFBhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9wYWdpbmF0aW9uJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFRhYmxlUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWJsZS5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFhUYWJsZUNvbXBvbmVudCBleHRlbmRzIFhUYWJsZVByb3BlcnR5IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGdldCBnZXRTY3JvbGxMZWZ0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2Nyb2xsTGVmdCA+IDA7XHJcbiAgfVxyXG4gIGdldCBnZXRTY3JvbGxUb3AoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zY3JvbGxUb3AgPiAwO1xyXG4gIH1cclxuICB0aGVhZCE6IEVsZW1lbnRSZWY7XHJcbiAgdGZvb3QhOiBFbGVtZW50UmVmO1xyXG4gIHZpcnR1YWxCb2R5ITogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG4gIGhlYWRDaGFuZ2UhOiAoKSA9PiB2b2lkO1xyXG4gIGJvZHlDaGFuZ2UhOiAoKSA9PiB2b2lkO1xyXG4gIHNjcm9sbENvbnRlbnRFbGUhOiBIVE1MRWxlbWVudDtcclxuICBoYXNTY3JvbGxZID0gZmFsc2U7XHJcbiAgc2Nyb2xsWVdpZHRoID0gMDtcclxuICBoYXNTY3JvbGxYID0gZmFsc2U7XHJcbiAgc2Nyb2xsWEhlaWdodCA9IDA7XHJcbiAgc2Nyb2xsWFdpZHRoITogbnVtYmVyIHwgbnVsbDtcclxuICBzY3JvbGxMZWZ0ID0gMDtcclxuICBzY3JvbGxUb3AgPSAwO1xyXG4gIHJvd0NoZWNrZWQhOiBYVGFibGVDb2x1bW47XHJcbiAgaGVhZENoZWNrYm94TGlzdCE6IFhUYWJsZUNvbHVtbltdO1xyXG4gIHJvd0V4cGFuZCE6IFhUYWJsZUNvbHVtbjtcclxuICBoZWFkRXhwYW5kTGlzdCE6IFhUYWJsZUNvbHVtbltdO1xyXG4gIGRhdGFJc0Z1bmMgPSBmYWxzZTtcclxuICBnZXR0aW5nID0gZmFsc2U7XHJcbiAgdGFibGVEYXRhOiBYVGFibGVSb3dbXSA9IFtdO1xyXG4gIHRyZWVUYWJsZURhdGE6IFhUYWJsZVJvd1tdID0gW107XHJcbiAgY2hlY2tlZFZhbHVlczogeyBbcHJvcDogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XHJcbiAgaW5kZXRlcm1pbmF0ZSA9ICckJGluZGV0ZXJtaW5hdGUnO1xyXG4gIEBWaWV3Q2hpbGQoJ3RhYmxlJykgdGFibGUhOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ3BhZ2luYXRpb24nKSBwYWdpbmF0aW9uITogWFBhZ2luYXRpb25Db21wb25lbnQ7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgdGhpcy5zZXRSb3dDaGVja2VkKCk7XHJcbiAgICB0aGlzLnNldFJvd0V4cGFuZCgpO1xyXG4gICAgdGhpcy5zZXRNZXJnZSgpO1xyXG4gICAgdGhpcy5zZXRQYWdpbmF0aW9uUG9zaXRpb24oKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKHNpbXBsZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgY2hlY2tlZFJvdywgY29sdW1ucywgYWN0aXZhdGVkUm93LCBtYW51YWwsIHNob3dQYWdpbmF0aW9uLCBleHBhbmRlZEFsbCB9ID0gc2ltcGxlcztcclxuICAgIFhJc0NoYW5nZShleHBhbmRlZEFsbCkgJiYgdGhpcy5zZXRFeHBhbmRlZEFsbCgpO1xyXG4gICAgWElzQ2hhbmdlKGRhdGEsIGNoZWNrZWRSb3cpICYmIHRoaXMuc2V0RGF0YSgpO1xyXG4gICAgWElzQ2hhbmdlKGNvbHVtbnMsIGFjdGl2YXRlZFJvdywgc2hvd1BhZ2luYXRpb24pICYmIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIFhJc0NoYW5nZShtYW51YWwpICYmIHRoaXMuc2V0TWFudWFsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgdGhpcy5jbGFzc01hcCA9IHtcclxuICAgICAgW2Ake1hUYWJsZVByZWZpeH0tcm93LXNpemUtJHt0aGlzLnJvd1NpemV9YF06ICFYSXNFbXB0eSh0aGlzLnJvd1NpemUpXHJcbiAgICB9O1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnaW5hdGlvblBvc2l0aW9uKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgYHgtdGFibGUtJHt0aGlzLnBhZ2luYXRpb25Qb3NpdGlvbn1gKTtcclxuICB9XHJcblxyXG4gIGdldFN0aWNreShjb2x1bW46IFhUYWJsZUNvbHVtbiB8IFhUYWJsZUNlbGwpIHtcclxuICAgIHJldHVybiBOdW1iZXIoY29sdW1uLmxlZnQpID49IDA7XHJcbiAgfVxyXG5cclxuICBnZXRJbmRleChpbmRleDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gKE51bWJlcih0aGlzLmluZGV4KSAtIDEpICogTnVtYmVyKHRoaXMuc2l6ZSkgKyBpbmRleCArIDE7XHJcbiAgfVxyXG5cclxuICBzZXREYXRhKCkge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kYXRhKSkge1xyXG4gICAgICB0aGlzLmRhdGFJc0Z1bmMgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkKHRoaXMuZGF0YSk7XHJcbiAgICAgIHRoaXMuc2V0SGVhZENoZWNrYm94TGlzdCh0aGlzLmRhdGEpO1xyXG4gICAgICB0aGlzLnNldEV4cGFuZCh0aGlzLmRhdGEpO1xyXG4gICAgICB0aGlzLnNldEhlYWRFeHBhbmRMaXN0KCk7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy5kYXRhO1xyXG4gICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcclxuICAgICAgdGhpcy5kYXRhSXNGdW5jID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZXREYXRhQnlGdW5jKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXREYXRhQnlGdW5jKCkge1xyXG4gICAgaWYgKCF0aGlzLm1hbnVhbCkgcmV0dXJuO1xyXG4gICAgdGhpcy5nZXR0aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICAodGhpcy5kYXRhIGFzIEZ1bmN0aW9uKSh0aGlzLmluZGV4LCB0aGlzLnNpemUsIHRoaXMucXVlcnkpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4OiBYUmVzdWx0TGlzdDxYVGFibGVSb3c+KSA9PiB7XHJcbiAgICAgICAgbGV0IFtkYXRhLCB0b3RhbF0gPSBbeC5saXN0IGFzIFhUYWJsZVJvd1tdLCB4LnRvdGFsIGFzIFhOdW1iZXJdO1xyXG4gICAgICAgIGlmICh0aGlzLnZpcnR1YWxCb2R5KSB7XHJcbiAgICAgICAgICB0aGlzLnZpcnR1YWxCb2R5LnNjcm9sbFRvSW5kZXgoMCk7XHJcbiAgICAgICAgICB0aGlzLnZpcnR1YWxCb2R5LmNoZWNrVmlld3BvcnRTaXplKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZ2V0dGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2V0Q2hlY2tlZChkYXRhKTtcclxuICAgICAgICB0aGlzLnNldEhlYWRDaGVja2JveExpc3QoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5zZXRFeHBhbmQoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5zZXRIZWFkRXhwYW5kTGlzdCgpO1xyXG4gICAgICAgIHRoaXMudGFibGVEYXRhID0gZGF0YTtcclxuICAgICAgICB0aGlzLnRvdGFsID0gdG90YWw7XHJcbiAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0TWFudWFsKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YUlzRnVuYykgdGhpcy5nZXREYXRhQnlGdW5jKCk7XHJcbiAgfVxyXG5cclxuICBzZXRSb3dDaGVja2VkKCkge1xyXG4gICAgdGhpcy5yb3dDaGVja2VkID0gdGhpcy5jb2x1bW5zLmZpbmQoKHgpID0+IHgucm93Q2hlY2tlZCkgYXMgWFRhYmxlQ29sdW1uO1xyXG4gICAgdGhpcy5oZWFkQ2hlY2tib3hMaXN0ID0gdGhpcy5jb2x1bW5zLmZpbHRlcigoeCkgPT4geC50eXBlID09PSAnY2hlY2tib3gnICYmIHguaGVhZENoZWNrZWQpO1xyXG4gIH1cclxuXHJcbiAgc2V0Um93RXhwYW5kKCkge1xyXG4gICAgdGhpcy5yb3dFeHBhbmQgPSB0aGlzLmNvbHVtbnMuZmluZCgoeCkgPT4geC5yb3dFeHBhbmQpIGFzIFhUYWJsZUNvbHVtbjtcclxuICB9XHJcblxyXG4gIGlzRXhwYW5kQ29sdW1uKGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBsZXQgZXhwYW5kQ29sdW1uID0gdGhpcy5jb2x1bW5zLmZpbmQoKHgpID0+IHguaWQgPT09IGNvbHVtbi5pZCAmJiB4LnR5cGUgPT09ICdleHBhbmQnKTtcclxuICAgIGlmIChleHBhbmRDb2x1bW4pIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZXRNZXJnZSgpIHtcclxuICAgIGlmICghdGhpcy5jZWxsQ29uZmlnKSByZXR1cm47XHJcbiAgICBjb25zdCBzZXRSdWxlID0gKHJ1bGU/OiBYVGFibGVDZWxsQ29uZmlnUnVsZSkgPT4ge1xyXG4gICAgICBpZiAoIXJ1bGUpIHJldHVybjtcclxuICAgICAgbGV0IGdyaWRUZW1wbGF0ZUNvbHVtbnMgPSAnJyxcclxuICAgICAgICBjZWxscyA9IFtdO1xyXG4gICAgICBpZiAoIXJ1bGUuZ3JpZFRlbXBsYXRlQ29sdW1ucykge1xyXG4gICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnMgPSBgJHt0aGlzLmNvbHVtbnNcclxuICAgICAgICAgIC5tYXAoKHgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHgud2lkdGgpIHJldHVybiB4LndpZHRoO1xyXG4gICAgICAgICAgICBpZiAoeC5mbGV4KSByZXR1cm4gYCR7eC5mbGV4fWZyYDtcclxuICAgICAgICAgICAgcmV0dXJuICcxZnInO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5qb2luKCcgJyl9YDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXJ1bGUuY2VsbHMpIHJldHVybjtcclxuICAgICAgY2VsbHMgPSBydWxlLmNlbGxzLm1hcCgoeSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuY29sdW1ucy5maW5kKCh6KSA9PiB6LmlkID09PSB5LmlkKTtcclxuICAgICAgICBpZiAoY29sKSB7XHJcbiAgICAgICAgICByZXR1cm4geyAuLi5jb2wsIC4uLnkgfSBhcyBYVGFibGVDZWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4geTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB7IGdyaWRUZW1wbGF0ZUNvbHVtbnMsIGNlbGxzIH07XHJcbiAgICB9O1xyXG4gICAgdGhpcy5jZWxsQ29uZmlnLnRoZWFkID0gc2V0UnVsZSh0aGlzLmNlbGxDb25maWcudGhlYWQpO1xyXG4gICAgdGhpcy5jZWxsQ29uZmlnLnRib2R5ID0gc2V0UnVsZSh0aGlzLmNlbGxDb25maWcudGJvZHkpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuaW5kZXggPSBpbmRleDtcclxuICAgIHRoaXMuZGF0YUlzRnVuYyAmJiB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICAgIHRoaXMuaW5kZXhDaGFuZ2UuZW1pdChpbmRleCk7XHJcbiAgICB0aGlzLnJlc2V0U2Nyb2xsKCk7XHJcbiAgfVxyXG5cclxuICByZXNldFNjcm9sbCh4ID0gdHJ1ZSwgeSA9IHRydWUpIHtcclxuICAgIGlmICh0aGlzLmhhc1Njcm9sbFggJiYgeCkgdGhpcy52aXJ0dWFsQm9keT8uc2Nyb2xsVG8oeyBsZWZ0OiAwIH0pO1xyXG4gICAgaWYgKHRoaXMuaGFzU2Nyb2xsWSAmJiB5KSB0aGlzLnZpcnR1YWxCb2R5Py5zY3JvbGxUbyh7IHRvcDogMCB9KTtcclxuICB9XHJcblxyXG4gIHNldENoZWNrZWQoZGF0YTogWFRhYmxlUm93W10pIHtcclxuICAgIGxldCByZXN1bHQ6IFhUYWJsZVJvd1tdID0gW107XHJcbiAgICBpZiAoWElzRW1wdHkoZGF0YSkgfHwgIXRoaXMuY2hlY2tlZFJvdykgcmV0dXJuO1xyXG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMuY2hlY2tlZFJvdykge1xyXG4gICAgICBjb25zdCBhcnIgPSB0aGlzLmNoZWNrZWRSb3dba2V5XTtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiBkYXRhIGFzIGFueVtdKSB7XHJcbiAgICAgICAgaXRlbVtrZXldID0gYXJyLmluY2x1ZGVzKGl0ZW0uaWQpO1xyXG4gICAgICAgIHJlc3VsdCA9IFsuLi5yZXN1bHQsIGl0ZW1dO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIGRhdGEgPSBbLi4ucmVzdWx0XTtcclxuICB9XHJcblxyXG4gIHNldEhlYWRDaGVja2JveExpc3QoZGF0YTogWFRhYmxlUm93W10pIHtcclxuICAgIGlmIChYSXNFbXB0eShkYXRhKSB8fCAhdGhpcy5oZWFkQ2hlY2tib3hMaXN0KSByZXR1cm47XHJcbiAgICBmb3IgKGxldCBjb2x1bW4gb2YgdGhpcy5oZWFkQ2hlY2tib3hMaXN0KSB7XHJcbiAgICAgIHRoaXMuc2V0Q2hlY2tlZFZhbHVlcyhjb2x1bW4pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RXhwYW5kKGRhdGE6IFhUYWJsZVJvd1tdKSB7XHJcbiAgICBjb25zdCBnZXRDaGlsZHJlbiA9IChub2RlOiBYVGFibGVSb3csIGxldmVsOiBudW1iZXIpID0+IHtcclxuICAgICAgbm9kZS5sZXZlbCA9IGxldmVsO1xyXG4gICAgICBub2RlLmV4cGFuZGVkID0gQm9vbGVhbih0aGlzLmV4cGFuZGVkQWxsKSB8fCBsZXZlbCA8PSB0aGlzLmV4cGFuZGVkTGV2ZWwgfHwgdGhpcy5leHBhbmRlZC5pbmNsdWRlcyhub2RlLmlkKTtcclxuICAgICAgaWYgKFhJc1VuZGVmaW5lZChub2RlLmNoaWxkcmVuKSkgbm9kZS5jaGlsZHJlbiA9IGRhdGEuZmlsdGVyKCh5KSA9PiB5LnBpZCA9PT0gbm9kZS5pZCk7XHJcbiAgICAgIGlmIChYSXNVbmRlZmluZWQobm9kZS5sZWFmKSkgbm9kZS5sZWFmID0gKG5vZGUuY2hpbGRyZW4/Lmxlbmd0aCBhcyBudW1iZXIpID4gMDtcclxuICAgICAgaWYgKG5vZGUubGVhZikgbm9kZS5jaGlsZHJlbj8ubWFwKCh5KSA9PiBnZXRDaGlsZHJlbih5LCBsZXZlbCArIDEpKTtcclxuICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy50cmVlVGFibGVEYXRhID0gZGF0YS5maWx0ZXIoKHgpID0+IFhJc0VtcHR5KHgucGlkKSkubWFwKCh4KSA9PiBnZXRDaGlsZHJlbih4LCAwKSk7XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmRlZEFsbCgpIHtcclxuICAgIGlmICghdGhpcy50cmVlVGFibGUgfHwgdGhpcy50cmVlVGFibGVEYXRhPy5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIGNvbnN0IHNldENoaWxkcmVuID0gKG5vZGVzOiBYVGFibGVSb3dbXSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICB4LmV4cGFuZGVkID0gQm9vbGVhbih0aGlzLmV4cGFuZGVkQWxsKTtcclxuICAgICAgICBzZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUYWJsZVJvd1tdKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgc2V0Q2hpbGRyZW4odGhpcy50cmVlVGFibGVEYXRhKTtcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0SGVhZEV4cGFuZExpc3QoKSB7fVxyXG5cclxuICBjaGVja1NvcnQoc29ydDogWFNvcnRbXSkge1xyXG4gICAgaWYgKCF0aGlzLmRhdGFJc0Z1bmMpIHJldHVybjtcclxuICAgIGlmICh0eXBlb2YgdGhpcy5xdWVyeSA9PT0gJ3VuZGVmaW5lZCcpIHRoaXMucXVlcnkgPSB7fTtcclxuICAgIHRoaXMucXVlcnkuc29ydCA9IHNvcnQ7XHJcbiAgICB0aGlzLnF1ZXJ5Q2hhbmdlLmVtaXQodGhpcy5xdWVyeSk7XHJcbiAgICB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICB9XHJcblxyXG4gIGhlYWRDaGVja2VkKGNoZWNrZWQ6IGJvb2xlYW4sIGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIHhbY29sdW1uLmlkXSA9IGNoZWNrZWQ7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0Q2hlY2tlZFZhbHVlcyhjb2x1bW4pO1xyXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBib2R5Q2hlY2tlZChfY2hlY2tlZDogYm9vbGVhbiwgY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIHRoaXMuc2V0Q2hlY2tlZFZhbHVlcyhjb2x1bW4pO1xyXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDaGVja2VkVmFsdWVzKGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBjb25zdCBjb3VudCA9IHRoaXMudGFibGVEYXRhLmxlbmd0aDtcclxuICAgIGNvbnN0IGNoZWNrZWRMZW4gPSB0aGlzLnRhYmxlRGF0YS5maWx0ZXIoKHgpID0+IHhbY29sdW1uLmlkXSkubGVuZ3RoO1xyXG4gICAgdGhpcy5jaGVja2VkVmFsdWVzW2NvbHVtbi5pZF0gPSBjb3VudCA9PT0gY2hlY2tlZExlbjtcclxuICAgIHRoaXMuY2hlY2tlZFZhbHVlc1tjb2x1bW4uaWQgKyB0aGlzLmluZGV0ZXJtaW5hdGVdID0gY2hlY2tlZExlbiA+IDAgJiYgY2hlY2tlZExlbiA8IGNvdW50O1xyXG4gIH1cclxuXHJcbiAgZGV0ZWN0Q2hhbmdlcygpIHtcclxuICAgIHRoaXMuYm9keUNoYW5nZSAmJiB0aGlzLmJvZHlDaGFuZ2UoKTtcclxuICAgIHRoaXMuaGVhZENoYW5nZSAmJiB0aGlzLmhlYWRDaGFuZ2UoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuIiwiPHRhYmxlXHJcbiAgI3RhYmxlXHJcbiAgY2xhc3M9XCJ4LXRhYmxlXCJcclxuICBbbmdDbGFzc109XCJjbGFzc01hcFwiXHJcbiAgW3gtbG9hZGluZ109XCJsb2FkaW5nICYmIGdldHRpbmdcIlxyXG4gIFtjbGFzcy54LXRhYmxlLXNjcm9sbC1sZWZ0XT1cImdldFNjcm9sbExlZnRcIlxyXG4gIFtjbGFzcy54LXRhYmxlLXNjcm9sbC10b3BdPVwiZ2V0U2Nyb2xsVG9wXCJcclxuICBbY2xhc3MueC10YWJsZS1ib3JkZXJlZF09XCJib3JkZXJlZFwiXHJcbiAgW2NsYXNzLngtdGFibGUtdGQtYWRhcHRpb24taGVpZ2h0XT1cInJvd0hlaWdodCA9PSAwXCJcclxuICBbY2xhc3MueC10YWJsZS1jZWxsLWNvbmZpZ109XCJjZWxsQ29uZmlnXCJcclxuPlxyXG4gIDx4LXRhYmxlLWhlYWRcclxuICAgICpuZ0lmPVwic2hvd0hlYWRlclwiXHJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgIFtyb3dIZWlnaHRdPVwicm93SGVpZ2h0XCJcclxuICAgIFtjb2x1bW5UcGxdPVwiaGVhZENvbHVtblRwbFwiXHJcbiAgICBbc2Nyb2xsWVdpZHRoXT1cInNjcm9sbFlXaWR0aFwiXHJcbiAgICBbc2Nyb2xsWFdpZHRoXT1cInNjcm9sbFhXaWR0aFwiXHJcbiAgICBbY2VsbENvbmZpZ109XCJjZWxsQ29uZmlnPy50aGVhZFwiXHJcbiAgICBbdGFibGVdPVwidGhpc1wiXHJcbiAgPjwveC10YWJsZS1oZWFkPlxyXG4gIDx4LXRhYmxlLWJvZHlcclxuICAgIFtkYXRhXT1cInRyZWVUYWJsZSA/IHRyZWVUYWJsZURhdGEgOiB0YWJsZURhdGFcIlxyXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICBbaXRlbVNpemVdPVwiaXRlbVNpemVcIlxyXG4gICAgW3Jvd0hlaWdodF09XCJyb3dIZWlnaHRcIlxyXG4gICAgW2JvZHlIZWlnaHRdPVwiYm9keUhlaWdodFwiXHJcbiAgICBbY29sdW1uVHBsXT1cImJvZHlDb2x1bW5UcGxcIlxyXG4gICAgW2FsbG93U2VsZWN0Um93XT1cImFsbG93U2VsZWN0Um93XCJcclxuICAgIFt2aXJ0dWFsU2Nyb2xsXT1cInZpcnR1YWxTY3JvbGxcIlxyXG4gICAgW21pbkJ1ZmZlclB4XT1cIm1pbkJ1ZmZlclB4XCJcclxuICAgIFttYXhCdWZmZXJQeF09XCJtYXhCdWZmZXJQeFwiXHJcbiAgICBbYWRhcHRpb25IZWlnaHRdPVwiYWRhcHRpb25IZWlnaHRcIlxyXG4gICAgW2RvY1BlcmNlbnRdPVwiZG9jUGVyY2VudFwiXHJcbiAgICBbc2Nyb2xsXT1cInNjcm9sbFwiXHJcbiAgICBbcm93Q2xhc3NdPVwicm93Q2xhc3NcIlxyXG4gICAgW2NlbGxDb25maWddPVwiY2VsbENvbmZpZz8udGJvZHlcIlxyXG4gICAgW2V4cGFuZGVkQWxsXT1cImV4cGFuZGVkQWxsXCJcclxuICAgIFtleHBhbmRUcGxdPVwiZXhwYW5kVHBsXCJcclxuICAgIFsoYWN0aXZhdGVkUm93KV09XCJhY3RpdmF0ZWRSb3dcIlxyXG4gICAgKGFjdGl2YXRlZFJvd0NoYW5nZSk9XCJhY3RpdmF0ZWRSb3dDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgIFt0YWJsZV09XCJ0aGlzXCJcclxuICA+PC94LXRhYmxlLWJvZHk+XHJcbiAgPHgtdGFibGUtZm9vdCBbdGFibGVdPVwidGhpc1wiPjwveC10YWJsZS1mb290PlxyXG48L3RhYmxlPlxyXG48eC1wYWdpbmF0aW9uXHJcbiAgI3BhZ2luYXRpb25cclxuICAqbmdJZj1cInNob3dQYWdpbmF0aW9uICYmIHNpemVcIlxyXG4gIFsoaW5kZXgpXT1cImluZGV4XCJcclxuICBbKHNpemUpXT1cInNpemVcIlxyXG4gIFsocXVlcnkpXT1cInF1ZXJ5XCJcclxuICBbdG90YWxdPVwidG90YWxcIlxyXG4gIChpbmRleENoYW5nZSk9XCJjaGFuZ2UoJGV2ZW50KVwiXHJcbiAgW3Nob3dFbGxpcHNpc109XCJzaG93RWxsaXBzaXNcIlxyXG4gIFtzaG93VG90YWxdPVwic2hvd1RvdGFsXCJcclxuICBbc3BhY2VdPVwic3BhY2VcIlxyXG4gIFtoaWRkZW5Cb3JkZXJdPVwiaGlkZGVuQm9yZGVyXCJcclxuPlxyXG48L3gtcGFnaW5hdGlvbj5cclxuIl19
298
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvdGFibGUvdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBNkQsTUFBTSxrQkFBa0IsQ0FBQztBQUMzSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBK0MsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFTL0IsTUFBTSxPQUFPLGVBQWdCLFNBQVEsY0FBYztJQXVDakQsWUFDUyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixHQUFzQixFQUN0QixhQUE2QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUxELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUExQnRDLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUVsQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2Ysa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUtkLGVB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LFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDckUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxLQUFLLFVBQVUsQ0FBQztRQUNyRCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLFVBQVUsR0FBRyxDQUFDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztJQUM1RixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7K0hBcFNVLGVBQWU7bUhBQWYsZUFBZSwyV0MxQjVCLHFrRkEwRUE7MkZEaERhLGVBQWU7a0JBUDNCLFNBQVM7K0JBQ0UsR0FBRyxZQUFZLEVBQUUsaUJBR1osaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTTtzTEFxQzNCLEtBQUs7c0JBQXhCLFNBQVM7dUJBQUMsT0FBTztnQkFDSSxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0ssVUFBVTtzQkFBbEMsU0FBUzt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE9uRGVzdHJveVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYVGFibGVQcmVmaXgsIFhUYWJsZVByb3BlcnR5LCBYVGFibGVDb2x1bW4sIFhUYWJsZVJvdywgWFRhYmxlQ2VsbCwgWFRhYmxlQ2VsbENvbmZpZ1J1bGUgfSBmcm9tICcuL3RhYmxlLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWElzQ2hhbmdlLCBYSXNFbXB0eSwgWFJlc3VsdExpc3QsIFhOdW1iZXIsIFhTb3J0LCBYQ29uZmlnU2VydmljZSwgWElzVW5kZWZpbmVkIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9zY3JvbGxpbmcnO1xyXG5pbXBvcnQgeyBYUGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL3BhZ2luYXRpb24nO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYVGFibGVQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlQ29tcG9uZW50IGV4dGVuZHMgWFRhYmxlUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZ2V0IGdldFNjcm9sbExlZnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zY3JvbGxMZWZ0ID4gMDtcclxuICB9XHJcbiAgZ2V0IGdldFNjcm9sbFRvcCgpIHtcclxuICAgIHJldHVybiB0aGlzLnNjcm9sbFRvcCA+IDA7XHJcbiAgfVxyXG4gIGdldCBnZXRSb3dIZWlnaHQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5yb3dIZWlnaHQgPT0gMCA/ICcnIDogdGhpcy5yb3dIZWlnaHQ7XHJcbiAgfVxyXG4gIHRjYXB0aW9uITogRWxlbWVudFJlZjtcclxuICB0aGVhZCE6IEVsZW1lbnRSZWY7XHJcbiAgdGZvb3QhOiBFbGVtZW50UmVmO1xyXG4gIHZpcnR1YWxCb2R5ITogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xyXG4gIGhlYWRDaGFuZ2UhOiAoKSA9PiB2b2lkO1xyXG4gIGJvZHlDaGFuZ2UhOiAoKSA9PiB2b2lkO1xyXG4gIHNjcm9sbENvbnRlbnRFbGUhOiBIVE1MRWxlbWVudDtcclxuICBoYXNTY3JvbGxZID0gZmFsc2U7XHJcbiAgc2Nyb2xsWVdpZHRoID0gMDtcclxuICBoYXNTY3JvbGxYID0gZmFsc2U7XHJcbiAgc2Nyb2xsWEhlaWdodCA9IDA7XHJcbiAgc2Nyb2xsWFdpZHRoITogbnVtYmVyIHwgbnVsbDtcclxuICBzY3JvbGxMZWZ0ID0gMDtcclxuICBzY3JvbGxMZWZ0TWF4ID0gZmFsc2U7XHJcbiAgc2Nyb2xsVG9wID0gMDtcclxuICByb3dDaGVja2VkITogWFRhYmxlQ29sdW1uO1xyXG4gIGhlYWRDaGVja2JveExpc3QhOiBYVGFibGVDb2x1bW5bXTtcclxuICByb3dFeHBhbmQhOiBYVGFibGVDb2x1bW47XHJcbiAgaGVhZEV4cGFuZExpc3QhOiBYVGFibGVDb2x1bW5bXTtcclxuICBkYXRhSXNGdW5jID0gZmFsc2U7XHJcbiAgZ2V0dGluZyA9IGZhbHNlO1xyXG4gIHRhYmxlRGF0YTogWFRhYmxlUm93W10gPSBbXTtcclxuICB0cmVlVGFibGVEYXRhOiBYVGFibGVSb3dbXSA9IFtdO1xyXG4gIGNoZWNrZWRWYWx1ZXM6IHsgW3Byb3A6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xyXG4gIGluZGV0ZXJtaW5hdGUgPSAnJCRpbmRldGVybWluYXRlJztcclxuICBAVmlld0NoaWxkKCd0YWJsZScpIHRhYmxlITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdjYXB0aW9uJykgY2FwdGlvbiE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgncGFnaW5hdGlvbicpIHBhZ2luYXRpb24hOiBYUGFnaW5hdGlvbkNvbXBvbmVudDtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB0aGlzLnNldFJvd0NoZWNrZWQoKTtcclxuICAgIHRoaXMuc2V0Um93RXhwYW5kKCk7XHJcbiAgICB0aGlzLnNldE1lcmdlKCk7XHJcbiAgICB0aGlzLnNldFBhZ2luYXRpb25Qb3NpdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoc2ltcGxlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyBkYXRhLCBjaGVja2VkUm93LCBjb2x1bW5zLCBhY3RpdmF0ZWRSb3csIG1hbnVhbCwgc2hvd1BhZ2luYXRpb24sIGV4cGFuZGVkQWxsIH0gPSBzaW1wbGVzO1xyXG4gICAgWElzQ2hhbmdlKGV4cGFuZGVkQWxsKSAmJiB0aGlzLnNldEV4cGFuZGVkQWxsKCk7XHJcbiAgICBYSXNDaGFuZ2UoZGF0YSwgY2hlY2tlZFJvdykgJiYgdGhpcy5zZXREYXRhKCk7XHJcbiAgICBYSXNDaGFuZ2UoY29sdW1ucywgYWN0aXZhdGVkUm93LCBzaG93UGFnaW5hdGlvbikgJiYgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgWElzQ2hhbmdlKG1hbnVhbCkgJiYgdGhpcy5zZXRNYW51YWwoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy50Y2FwdGlvbiA9IHRoaXMuY2FwdGlvbjtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgdGhpcy5jbGFzc01hcCA9IHtcclxuICAgICAgW2Ake1hUYWJsZVByZWZpeH0tcm93LXNpemUtJHt0aGlzLnJvd1NpemV9YF06ICFYSXNFbXB0eSh0aGlzLnJvd1NpemUpXHJcbiAgICB9O1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0UGFnaW5hdGlvblBvc2l0aW9uKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgYHgtdGFibGUtJHt0aGlzLnBhZ2luYXRpb25Qb3NpdGlvbn1gKTtcclxuICB9XHJcblxyXG4gIGdldFN0aWNreUxlZnQoY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICByZXR1cm4gTnVtYmVyKGNvbHVtbi5sZWZ0KSA+PSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RpY2t5TGVmdExhc3QoY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICBsZXQgbGVmdHMgPSB0aGlzLmNvbHVtbnMuZmlsdGVyKCh4KSA9PiBOdW1iZXIoeC5sZWZ0KSA+PSAwKTtcclxuICAgIGlmIChsZWZ0cy5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiBsZWZ0c1tsZWZ0cy5sZW5ndGggLSAxXS5pZCA9PT0gY29sdW1uLmlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RpY2t5UmlnaHQoY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICByZXR1cm4gTnVtYmVyKGNvbHVtbi5yaWdodCkgPj0gMDtcclxuICB9XHJcblxyXG4gIGdldFN0aWNreVJpZ2h0Rmlyc3QoY29sdW1uOiBYVGFibGVDb2x1bW4gfCBYVGFibGVDZWxsKSB7XHJcbiAgICBsZXQgcmlnaHRzID0gdGhpcy5jb2x1bW5zLmZpbHRlcigoeCkgPT4gTnVtYmVyKHgucmlnaHQpID49IDApO1xyXG4gICAgaWYgKHJpZ2h0cy5sZW5ndGggPT09IDApIHJldHVybiBmYWxzZTtcclxuICAgIHJldHVybiByaWdodHNbMF0uaWQgPT09IGNvbHVtbi5pZDtcclxuICB9XHJcblxyXG4gIGhhc1N0aWNreVJpZ2h0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucy5zb21lKCh4KSA9PiBOdW1iZXIoeC5yaWdodCkgPj0gMCk7XHJcbiAgfVxyXG5cclxuICBnZXRJbmRleChpbmRleDogbnVtYmVyKSB7XHJcbiAgICByZXR1cm4gKE51bWJlcih0aGlzLmluZGV4KSAtIDEpICogTnVtYmVyKHRoaXMuc2l6ZSkgKyBpbmRleCArIDE7XHJcbiAgfVxyXG5cclxuICBzZXREYXRhKCkge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kYXRhKSkge1xyXG4gICAgICB0aGlzLmRhdGFJc0Z1bmMgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zZXRDaGVja2VkKHRoaXMuZGF0YSk7XHJcbiAgICAgIHRoaXMuc2V0SGVhZENoZWNrYm94TGlzdCh0aGlzLmRhdGEpO1xyXG4gICAgICB0aGlzLnNldEV4cGFuZCh0aGlzLmRhdGEpO1xyXG4gICAgICB0aGlzLnNldEhlYWRFeHBhbmRMaXN0KCk7XHJcbiAgICAgIHRoaXMudGFibGVEYXRhID0gdGhpcy5kYXRhO1xyXG4gICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcclxuICAgICAgdGhpcy5kYXRhSXNGdW5jID0gdHJ1ZTtcclxuICAgICAgdGhpcy5nZXREYXRhQnlGdW5jKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXREYXRhQnlGdW5jKCkge1xyXG4gICAgaWYgKCF0aGlzLm1hbnVhbCkgcmV0dXJuO1xyXG4gICAgdGhpcy5nZXR0aW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICAodGhpcy5kYXRhIGFzIEZ1bmN0aW9uKSh0aGlzLmluZGV4LCB0aGlzLnNpemUsIHRoaXMucXVlcnkpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4OiBYUmVzdWx0TGlzdDxYVGFibGVSb3c+KSA9PiB7XHJcbiAgICAgICAgbGV0IFtkYXRhLCB0b3RhbF0gPSBbeC5saXN0IGFzIFhUYWJsZVJvd1tdLCB4LnRvdGFsIGFzIFhOdW1iZXJdO1xyXG4gICAgICAgIGlmICh0aGlzLnZpcnR1YWxCb2R5KSB7XHJcbiAgICAgICAgICB0aGlzLnZpcnR1YWxCb2R5LnNjcm9sbFRvSW5kZXgoMCk7XHJcbiAgICAgICAgICB0aGlzLnZpcnR1YWxCb2R5LmNoZWNrVmlld3BvcnRTaXplKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZ2V0dGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuc2V0Q2hlY2tlZChkYXRhKTtcclxuICAgICAgICB0aGlzLnNldEhlYWRDaGVja2JveExpc3QoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5zZXRFeHBhbmQoZGF0YSk7XHJcbiAgICAgICAgdGhpcy5zZXRIZWFkRXhwYW5kTGlzdCgpO1xyXG4gICAgICAgIHRoaXMudGFibGVEYXRhID0gZGF0YTtcclxuICAgICAgICB0aGlzLnRvdGFsID0gdG90YWw7XHJcbiAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0TWFudWFsKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YUlzRnVuYykgdGhpcy5nZXREYXRhQnlGdW5jKCk7XHJcbiAgfVxyXG5cclxuICBzZXRSb3dDaGVja2VkKCkge1xyXG4gICAgdGhpcy5yb3dDaGVja2VkID0gdGhpcy5jb2x1bW5zLmZpbmQoKHgpID0+IHgucm93Q2hlY2tlZCkgYXMgWFRhYmxlQ29sdW1uO1xyXG4gICAgdGhpcy5oZWFkQ2hlY2tib3hMaXN0ID0gdGhpcy5jb2x1bW5zLmZpbHRlcigoeCkgPT4geC50eXBlID09PSAnY2hlY2tib3gnICYmIHguaGVhZENoZWNrZWQpO1xyXG4gIH1cclxuXHJcbiAgc2V0Um93RXhwYW5kKCkge1xyXG4gICAgdGhpcy5yb3dFeHBhbmQgPSB0aGlzLmNvbHVtbnMuZmluZCgoeCkgPT4geC5yb3dFeHBhbmQpIGFzIFhUYWJsZUNvbHVtbjtcclxuICB9XHJcblxyXG4gIGlzRXhwYW5kQ29sdW1uKGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBsZXQgZXhwYW5kQ29sdW1uID0gdGhpcy5jb2x1bW5zLmZpbmQoKHgpID0+IHguaWQgPT09IGNvbHVtbi5pZCAmJiB4LnR5cGUgPT09ICdleHBhbmQnKTtcclxuICAgIGlmIChleHBhbmRDb2x1bW4pIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZXRNZXJnZSgpIHtcclxuICAgIGlmICghdGhpcy5jZWxsQ29uZmlnKSByZXR1cm47XHJcbiAgICBjb25zdCBzZXRSdWxlID0gKHJ1bGU/OiBYVGFibGVDZWxsQ29uZmlnUnVsZSkgPT4ge1xyXG4gICAgICBpZiAoIXJ1bGUpIHJldHVybjtcclxuICAgICAgbGV0IGdyaWRUZW1wbGF0ZUNvbHVtbnMgPSAnJyxcclxuICAgICAgICBjZWxscyA9IFtdO1xyXG4gICAgICBpZiAoIXJ1bGUuZ3JpZFRlbXBsYXRlQ29sdW1ucykge1xyXG4gICAgICAgIGdyaWRUZW1wbGF0ZUNvbHVtbnMgPSBgJHt0aGlzLmNvbHVtbnNcclxuICAgICAgICAgIC5tYXAoKHgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHgud2lkdGgpIHJldHVybiB4LndpZHRoO1xyXG4gICAgICAgICAgICBpZiAoeC5mbGV4KSByZXR1cm4gYCR7eC5mbGV4fWZyYDtcclxuICAgICAgICAgICAgcmV0dXJuICcxZnInO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5qb2luKCcgJyl9YDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXJ1bGUuY2VsbHMpIHJldHVybjtcclxuICAgICAgY2VsbHMgPSBydWxlLmNlbGxzLm1hcCgoeSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbCA9IHRoaXMuY29sdW1ucy5maW5kKCh6KSA9PiB6LmlkID09PSB5LmlkKTtcclxuICAgICAgICBpZiAoY29sKSB7XHJcbiAgICAgICAgICByZXR1cm4geyAuLi5jb2wsIC4uLnkgfSBhcyBYVGFibGVDZWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4geTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiB7IGdyaWRUZW1wbGF0ZUNvbHVtbnMsIGNlbGxzIH07XHJcbiAgICB9O1xyXG4gICAgdGhpcy5jZWxsQ29uZmlnLnRoZWFkID0gc2V0UnVsZSh0aGlzLmNlbGxDb25maWcudGhlYWQpO1xyXG4gICAgdGhpcy5jZWxsQ29uZmlnLnRib2R5ID0gc2V0UnVsZSh0aGlzLmNlbGxDb25maWcudGJvZHkpO1xyXG4gIH1cclxuXHJcbiAgY2hhbmdlKGluZGV4OiBudW1iZXIpIHtcclxuICAgIHRoaXMuaW5kZXggPSBpbmRleDtcclxuICAgIHRoaXMuZGF0YUlzRnVuYyAmJiB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICAgIHRoaXMuaW5kZXhDaGFuZ2UuZW1pdChpbmRleCk7XHJcbiAgICB0aGlzLnJlc2V0U2Nyb2xsKCk7XHJcbiAgfVxyXG5cclxuICByZXNldFNjcm9sbCh4ID0gdHJ1ZSwgeSA9IHRydWUpIHtcclxuICAgIGlmICh0aGlzLmhhc1Njcm9sbFggJiYgeCkgdGhpcy52aXJ0dWFsQm9keT8uc2Nyb2xsVG8oeyBsZWZ0OiAwIH0pO1xyXG4gICAgaWYgKHRoaXMuaGFzU2Nyb2xsWSAmJiB5KSB0aGlzLnZpcnR1YWxCb2R5Py5zY3JvbGxUbyh7IHRvcDogMCB9KTtcclxuICB9XHJcblxyXG4gIHNldENoZWNrZWQoZGF0YTogWFRhYmxlUm93W10pIHtcclxuICAgIGxldCByZXN1bHQ6IFhUYWJsZVJvd1tdID0gW107XHJcbiAgICBpZiAoWElzRW1wdHkoZGF0YSkgfHwgIXRoaXMuY2hlY2tlZFJvdykgcmV0dXJuO1xyXG4gICAgZm9yIChsZXQga2V5IGluIHRoaXMuY2hlY2tlZFJvdykge1xyXG4gICAgICBjb25zdCBhcnIgPSB0aGlzLmNoZWNrZWRSb3dba2V5XTtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiBkYXRhIGFzIGFueVtdKSB7XHJcbiAgICAgICAgaXRlbVtrZXldID0gYXJyLmluY2x1ZGVzKGl0ZW0uaWQpO1xyXG4gICAgICAgIHJlc3VsdCA9IFsuLi5yZXN1bHQsIGl0ZW1dO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDApIGRhdGEgPSBbLi4ucmVzdWx0XTtcclxuICB9XHJcblxyXG4gIHNldEhlYWRDaGVja2JveExpc3QoZGF0YTogWFRhYmxlUm93W10pIHtcclxuICAgIGlmIChYSXNFbXB0eShkYXRhKSB8fCAhdGhpcy5oZWFkQ2hlY2tib3hMaXN0KSByZXR1cm47XHJcbiAgICBmb3IgKGxldCBjb2x1bW4gb2YgdGhpcy5oZWFkQ2hlY2tib3hMaXN0KSB7XHJcbiAgICAgIHRoaXMuc2V0Q2hlY2tlZFZhbHVlcyhjb2x1bW4pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RXhwYW5kKGRhdGE6IFhUYWJsZVJvd1tdKSB7XHJcbiAgICBjb25zdCBnZXRDaGlsZHJlbiA9IChub2RlOiBYVGFibGVSb3csIGxldmVsOiBudW1iZXIpID0+IHtcclxuICAgICAgbm9kZS5sZXZlbCA9IGxldmVsO1xyXG4gICAgICBub2RlLmV4cGFuZGVkID0gQm9vbGVhbih0aGlzLmV4cGFuZGVkQWxsKSB8fCBsZXZlbCA8PSB0aGlzLmV4cGFuZGVkTGV2ZWwgfHwgdGhpcy5leHBhbmRlZC5pbmNsdWRlcyhub2RlLmlkKTtcclxuICAgICAgaWYgKFhJc1VuZGVmaW5lZChub2RlLmNoaWxkcmVuKSkgbm9kZS5jaGlsZHJlbiA9IGRhdGEuZmlsdGVyKCh5KSA9PiB5LnBpZCA9PT0gbm9kZS5pZCk7XHJcbiAgICAgIGlmIChYSXNVbmRlZmluZWQobm9kZS5sZWFmKSkgbm9kZS5sZWFmID0gKG5vZGUuY2hpbGRyZW4/Lmxlbmd0aCBhcyBudW1iZXIpID4gMDtcclxuICAgICAgaWYgKG5vZGUubGVhZikgbm9kZS5jaGlsZHJlbj8ubWFwKCh5KSA9PiBnZXRDaGlsZHJlbih5LCBsZXZlbCArIDEpKTtcclxuICAgICAgcmV0dXJuIG5vZGU7XHJcbiAgICB9O1xyXG4gICAgdGhpcy50cmVlVGFibGVEYXRhID0gZGF0YS5maWx0ZXIoKHgpID0+IFhJc0VtcHR5KHgucGlkKSkubWFwKCh4KSA9PiBnZXRDaGlsZHJlbih4LCAwKSk7XHJcbiAgfVxyXG5cclxuICBzZXRFeHBhbmRlZEFsbCgpIHtcclxuICAgIGlmICghdGhpcy50cmVlVGFibGUgfHwgdGhpcy50cmVlVGFibGVEYXRhPy5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIGNvbnN0IHNldENoaWxkcmVuID0gKG5vZGVzOiBYVGFibGVSb3dbXSkgPT4ge1xyXG4gICAgICBpZiAoWElzRW1wdHkobm9kZXMpKSByZXR1cm47XHJcbiAgICAgIG5vZGVzLmZvckVhY2goKHgpID0+IHtcclxuICAgICAgICB4LmV4cGFuZGVkID0gQm9vbGVhbih0aGlzLmV4cGFuZGVkQWxsKTtcclxuICAgICAgICBzZXRDaGlsZHJlbih4LmNoaWxkcmVuIGFzIFhUYWJsZVJvd1tdKTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG4gICAgc2V0Q2hpbGRyZW4odGhpcy50cmVlVGFibGVEYXRhKTtcclxuICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0SGVhZEV4cGFuZExpc3QoKSB7fVxyXG5cclxuICBjaGVja1NvcnQoc29ydDogWFNvcnRbXSkge1xyXG4gICAgaWYgKCF0aGlzLmRhdGFJc0Z1bmMpIHJldHVybjtcclxuICAgIGlmICh0eXBlb2YgdGhpcy5xdWVyeSA9PT0gJ3VuZGVmaW5lZCcpIHRoaXMucXVlcnkgPSB7fTtcclxuICAgIHRoaXMucXVlcnkuc29ydCA9IHNvcnQ7XHJcbiAgICB0aGlzLnF1ZXJ5Q2hhbmdlLmVtaXQodGhpcy5xdWVyeSk7XHJcbiAgICB0aGlzLmdldERhdGFCeUZ1bmMoKTtcclxuICB9XHJcblxyXG4gIGhlYWRDaGVja2VkKGNoZWNrZWQ6IGJvb2xlYW4sIGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKCh4KSA9PiB7XHJcbiAgICAgIHhbY29sdW1uLmlkXSA9IGNoZWNrZWQ7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0Q2hlY2tlZFZhbHVlcyhjb2x1bW4pO1xyXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBib2R5Q2hlY2tlZChfY2hlY2tlZDogYm9vbGVhbiwgY29sdW1uOiBYVGFibGVDb2x1bW4pIHtcclxuICAgIHRoaXMuc2V0Q2hlY2tlZFZhbHVlcyhjb2x1bW4pO1xyXG4gICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDaGVja2VkVmFsdWVzKGNvbHVtbjogWFRhYmxlQ29sdW1uKSB7XHJcbiAgICBjb25zdCBjb3VudCA9IHRoaXMudGFibGVEYXRhLmxlbmd0aDtcclxuICAgIGNvbnN0IGNoZWNrZWRMZW4gPSB0aGlzLnRhYmxlRGF0YS5maWx0ZXIoKHgpID0+IHhbY29sdW1uLmlkXSkubGVuZ3RoO1xyXG4gICAgdGhpcy5jaGVja2VkVmFsdWVzW2NvbHVtbi5pZF0gPSBjb3VudCA9PT0gY2hlY2tlZExlbjtcclxuICAgIHRoaXMuY2hlY2tlZFZhbHVlc1tjb2x1bW4uaWQgKyB0aGlzLmluZGV0ZXJtaW5hdGVdID0gY2hlY2tlZExlbiA+IDAgJiYgY2hlY2tlZExlbiA8IGNvdW50O1xyXG4gIH1cclxuXHJcbiAgZGV0ZWN0Q2hhbmdlcygpIHtcclxuICAgIHRoaXMuYm9keUNoYW5nZSAmJiB0aGlzLmJvZHlDaGFuZ2UoKTtcclxuICAgIHRoaXMuaGVhZENoYW5nZSAmJiB0aGlzLmhlYWRDaGFuZ2UoKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcbn1cclxuIiwiPHRhYmxlXHJcbiAgI3RhYmxlXHJcbiAgY2xhc3M9XCJ4LXRhYmxlXCJcclxuICBbbmdDbGFzc109XCJjbGFzc01hcFwiXHJcbiAgW3gtbG9hZGluZ109XCJsb2FkaW5nICYmIGdldHRpbmdcIlxyXG4gIFtjbGFzcy54LXRhYmxlLXNjcm9sbC1sZWZ0XT1cImdldFNjcm9sbExlZnRcIlxyXG4gIFtjbGFzcy54LXRhYmxlLXNjcm9sbC1sZWZ0LW1heF09XCJzY3JvbGxMZWZ0TWF4XCJcclxuICBbY2xhc3MueC10YWJsZS1zY3JvbGwtdG9wXT1cImdldFNjcm9sbFRvcFwiXHJcbiAgW2NsYXNzLngtdGFibGUtaGFzLXNjcm9sbC1yaWdodF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gIFtjbGFzcy54LXRhYmxlLWhhcy1zY3JvbGwtYm90dG9tXT1cInNjcm9sbFhXaWR0aFwiXHJcbiAgW2NsYXNzLngtdGFibGUtYm9yZGVyZWRdPVwiYm9yZGVyZWRcIlxyXG4gIFtjbGFzcy54LXRhYmxlLXRkLWFkYXB0aW9uLWhlaWdodF09XCJyb3dIZWlnaHQgPT0gMFwiXHJcbiAgW2NsYXNzLngtdGFibGUtY2VsbC1jb25maWddPVwiY2VsbENvbmZpZ1wiXHJcbj5cclxuICA8Y2FwdGlvbiAjY2FwdGlvbiBjbGFzcz1cIngtdGFibGUtaGVhZGVyXCIgKm5nSWY9XCJoZWFkZXJcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImdldFJvd0hlaWdodFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImhlYWRlclwiPnt7IGhlYWRlciB9fTwvbmctY29udGFpbmVyPlxyXG4gIDwvY2FwdGlvbj5cclxuICA8eC10YWJsZS1oZWFkXHJcbiAgICAqbmdJZj1cInNob3dIZWFkZXJcIlxyXG4gICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICBbcm93SGVpZ2h0XT1cInJvd0hlaWdodFwiXHJcbiAgICBbY29sdW1uVHBsXT1cImhlYWRDb2x1bW5UcGxcIlxyXG4gICAgW3Njcm9sbFlXaWR0aF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gICAgW3Njcm9sbFhXaWR0aF09XCJzY3JvbGxYV2lkdGhcIlxyXG4gICAgW2NlbGxDb25maWddPVwiY2VsbENvbmZpZz8udGhlYWRcIlxyXG4gICAgW3RhYmxlXT1cInRoaXNcIlxyXG4gID48L3gtdGFibGUtaGVhZD5cclxuICA8eC10YWJsZS1ib2R5XHJcbiAgICBbZGF0YV09XCJ0cmVlVGFibGUgPyB0cmVlVGFibGVEYXRhIDogdGFibGVEYXRhXCJcclxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgW2l0ZW1TaXplXT1cIml0ZW1TaXplXCJcclxuICAgIFtyb3dIZWlnaHRdPVwicm93SGVpZ2h0XCJcclxuICAgIFtib2R5SGVpZ2h0XT1cImJvZHlIZWlnaHRcIlxyXG4gICAgW2NvbHVtblRwbF09XCJib2R5Q29sdW1uVHBsXCJcclxuICAgIFthbGxvd1NlbGVjdFJvd109XCJhbGxvd1NlbGVjdFJvd1wiXHJcbiAgICBbdmlydHVhbFNjcm9sbF09XCJ2aXJ0dWFsU2Nyb2xsXCJcclxuICAgIFttaW5CdWZmZXJQeF09XCJtaW5CdWZmZXJQeFwiXHJcbiAgICBbbWF4QnVmZmVyUHhdPVwibWF4QnVmZmVyUHhcIlxyXG4gICAgW2FkYXB0aW9uSGVpZ2h0XT1cImFkYXB0aW9uSGVpZ2h0XCJcclxuICAgIFtkb2NQZXJjZW50XT1cImRvY1BlcmNlbnRcIlxyXG4gICAgW3Njcm9sbF09XCJzY3JvbGxcIlxyXG4gICAgW3Jvd0NsYXNzXT1cInJvd0NsYXNzXCJcclxuICAgIFtjZWxsQ29uZmlnXT1cImNlbGxDb25maWc/LnRib2R5XCJcclxuICAgIFtleHBhbmRlZEFsbF09XCJleHBhbmRlZEFsbFwiXHJcbiAgICBbZXhwYW5kVHBsXT1cImV4cGFuZFRwbFwiXHJcbiAgICBbKGFjdGl2YXRlZFJvdyldPVwiYWN0aXZhdGVkUm93XCJcclxuICAgIChhY3RpdmF0ZWRSb3dDaGFuZ2UpPVwiYWN0aXZhdGVkUm93Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICBbdGFibGVdPVwidGhpc1wiXHJcbiAgPjwveC10YWJsZS1ib2R5PlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb290ZXJcIj5cclxuICAgIDx4LXRhYmxlLWZvb3QgW3RhYmxlXT1cInRoaXNcIiBbZm9vdGVyXT1cImZvb3RlclwiIFtyb3dIZWlnaHRdPVwicm93SGVpZ2h0XCI+PC94LXRhYmxlLWZvb3Q+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJoYXNTdGlja3lSaWdodCgpXCJcclxuICAgIGNsYXNzPVwieC10YWJsZS1zdGlja3ktcmlnaHQtc2Nyb2xsXCJcclxuICAgIFtzdHlsZS53aWR0aC5weF09XCJzY3JvbGxZV2lkdGhcIlxyXG4gICAgW3N0eWxlLmhlaWdodC5weF09XCJnZXRSb3dIZWlnaHRcIlxyXG4gICAgW3N0eWxlLm1pbi1oZWlnaHQucHhdPVwiZ2V0Um93SGVpZ2h0XCJcclxuICA+PC9kaXY+XHJcbjwvdGFibGU+XHJcbjx4LXBhZ2luYXRpb25cclxuICAjcGFnaW5hdGlvblxyXG4gICpuZ0lmPVwic2hvd1BhZ2luYXRpb24gJiYgc2l6ZVwiXHJcbiAgWyhpbmRleCldPVwiaW5kZXhcIlxyXG4gIFsoc2l6ZSldPVwic2l6ZVwiXHJcbiAgWyhxdWVyeSldPVwicXVlcnlcIlxyXG4gIFt0b3RhbF09XCJ0b3RhbFwiXHJcbiAgKGluZGV4Q2hhbmdlKT1cImNoYW5nZSgkZXZlbnQpXCJcclxuICBbc2hvd0VsbGlwc2lzXT1cInNob3dFbGxpcHNpc1wiXHJcbiAgW3Nob3dUb3RhbF09XCJzaG93VG90YWxcIlxyXG4gIFtzcGFjZV09XCJzcGFjZVwiXHJcbiAgW2hpZGRlbkJvcmRlcl09XCJoaWRkZW5Cb3JkZXJcIlxyXG4+XHJcbjwveC1wYWdpbmF0aW9uPlxyXG4iXX0=
@@ -89,7 +89,7 @@ export class XTableProperty extends XPaginationProperty {
89
89
  }
90
90
  }
91
91
  /** @nocollapse */ XTableProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTableProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
92
- /** @nocollapse */ XTableProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTableProperty, selector: "ng-component", inputs: { data: "data", columns: "columns", rowHeight: "rowHeight", loading: "loading", bordered: "bordered", showHeader: "showHeader", activatedRow: "activatedRow", headColumnTpl: "headColumnTpl", bodyColumnTpl: "bodyColumnTpl", rowClass: "rowClass", allowSelectRow: "allowSelectRow", virtualScroll: "virtualScroll", bodyHeight: "bodyHeight", itemSize: "itemSize", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx", adaptionHeight: "adaptionHeight", docPercent: "docPercent", checkedRow: "checkedRow", manual: "manual", scroll: "scroll", cellConfig: "cellConfig", rowSize: "rowSize", paginationPosition: "paginationPosition", showPagination: "showPagination", treeTable: "treeTable", expandedAll: "expandedAll", expandedLevel: "expandedLevel", expanded: "expanded", expandTpl: "expandTpl" }, outputs: { activatedRowChange: "activatedRowChange", sortChange: "sortChange", manualChange: "manualChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
92
+ /** @nocollapse */ XTableProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTableProperty, selector: "ng-component", inputs: { data: "data", columns: "columns", rowHeight: "rowHeight", loading: "loading", bordered: "bordered", showHeader: "showHeader", activatedRow: "activatedRow", headColumnTpl: "headColumnTpl", bodyColumnTpl: "bodyColumnTpl", rowClass: "rowClass", allowSelectRow: "allowSelectRow", virtualScroll: "virtualScroll", bodyHeight: "bodyHeight", itemSize: "itemSize", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx", adaptionHeight: "adaptionHeight", docPercent: "docPercent", checkedRow: "checkedRow", manual: "manual", scroll: "scroll", header: "header", footer: "footer", cellConfig: "cellConfig", rowSize: "rowSize", paginationPosition: "paginationPosition", showPagination: "showPagination", treeTable: "treeTable", expandedAll: "expandedAll", expandedLevel: "expandedLevel", expanded: "expanded", expandTpl: "expandTpl" }, outputs: { activatedRowChange: "activatedRowChange", sortChange: "sortChange", manualChange: "manualChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
93
93
  __decorate([
94
94
  XWithConfig(X_CONFIG_NAME, 42),
95
95
  XInputNumber()
@@ -198,6 +198,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
198
198
  type: Input
199
199
  }], scroll: [{
200
200
  type: Input
201
+ }], header: [{
202
+ type: Input
203
+ }], footer: [{
204
+ type: Input
201
205
  }], manualChange: [{
202
206
  type: Output
203
207
  }], cellConfig: [{
@@ -425,9 +429,13 @@ export const XTableFootPrefix = 'x-table-foot';
425
429
  export class XTableFootProperty extends XProperty {
426
430
  }
427
431
  /** @nocollapse */ XTableFootProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTableFootProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
428
- /** @nocollapse */ XTableFootProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTableFootProperty, selector: "ng-component", usesInheritance: true, ngImport: i0, template: '', isInline: true });
432
+ /** @nocollapse */ XTableFootProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XTableFootProperty, selector: "ng-component", inputs: { footer: "footer", rowHeight: "rowHeight" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
429
433
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XTableFootProperty, decorators: [{
430
434
  type: Component,
431
435
  args: [{ template: '' }]
432
- }] });
433
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBRVosYUFBYSxFQUdiLFdBQVcsRUFNWixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBZSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixNQUFNLHdCQUF3QixDQUFDOztBQUVoRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQztBQUN0QyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUM7QUFFOUI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sY0FBZSxTQUFRLG1CQUFtQjtJQUR2RDs7UUFFRTs7O1dBR0c7UUFDTSxTQUFJLEdBQXFCLEVBQUUsQ0FBQztRQUNyQzs7O1dBR0c7UUFDTSxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQTBCdEM7OztXQUdHO1FBQ08sdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUM3RDs7O1dBR0c7UUFDTSxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFDNUM7OztXQUdHO1FBQ00sa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBTTVDOzs7V0FHRztRQUNPLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBcUJuRDs7O1dBR0c7UUFDTSxnQkFBVyxHQUFXLEdBQUcsQ0FBQztRQUNuQzs7O1dBR0c7UUFDTSxnQkFBVyxHQUFXLEdBQUcsQ0FBQztRQU1uQzs7O1dBR0c7UUFDc0IsZUFBVSxHQUFZLENBQUMsQ0FBQztRQUNqRDs7O1dBR0c7UUFDTSxlQUFVLEdBQWtDLEVBQUUsQ0FBQztRQUN4RDs7O1dBR0c7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QkFBdEMsS0FBSztnQkFLbUIsVUFBVTtzQkFBbEMsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLb0IsV0FBVztzQkFBcEMsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLOztBQUdSOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUM7QUFFL0M7O0dBRUc7QUFFSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsU0FBUzs7a0lBQXBDLGtCQUFrQjtzSEFBbEIsa0JBQWtCLDJFQURSLEVBQUU7MkZBQ1osa0JBQWtCO2tCQUQ5QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgWFByb3BlcnR5LFxyXG4gIFhOdW1iZXIsXHJcbiAgWElucHV0TnVtYmVyLFxyXG4gIFhTb3J0LFxyXG4gIFhJbnB1dEJvb2xlYW4sXHJcbiAgWEJvb2xlYW4sXHJcbiAgWERhdGEsXHJcbiAgWFdpdGhDb25maWcsXHJcbiAgWFRleHRBbGlnbixcclxuICBYU2l6ZSxcclxuICBYUGFyZW50SWRlbnRpdHlQcm9wZXJ0eSxcclxuICBYSWRlbnRpdHlQcm9wZXJ0eSxcclxuICBYVGVtcGxhdGVcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgSW5wdXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBUZW1wbGF0ZVJlZiwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhQYWdpbmF0aW9uUHJvcGVydHksIFhQYWdpbmF0aW9uT3B0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvcGFnaW5hdGlvbic7XHJcblxyXG4vKipcclxuICogVGFibGVcclxuICogQHNlbGVjdG9yIHgtdGFibGVcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYVGFibGVQcmVmaXggPSAneC10YWJsZSc7XHJcbmNvbnN0IFhfQ09ORklHX05BTUUgPSAndGFibGUnO1xyXG5cclxuLyoqXHJcbiAqIFRhYmxlIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVQcm9wZXJ0eSBleHRlbmRzIFhQYWdpbmF0aW9uUHJvcGVydHkgaW1wbGVtZW50cyBYVGFibGVPcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooYzmlbDmja5cclxuICAgKiBAZW5fVVMgUm93IGRhdGFcclxuICAgKi9cclxuICBASW5wdXQoKSBkYXRhOiBYRGF0YTxYVGFibGVSb3c+ID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+mbhuWQiFxyXG4gICAqIEBlbl9VUyBDb2x1bW4gc2V0XHJcbiAgICovXHJcbiAgQElucHV0KCkgY29sdW1uczogWFRhYmxlQ29sdW1uW10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5aS05ZKM6KGM6auY77yM5Y2V5L2NIHB4XHJcbiAgICogQGVuX1VTIEhlYWRlciBhbmQgcm93IGhlaWdodCwgdW5pdCBweFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxudW1iZXI+KFhfQ09ORklHX05BTUUsIDQyKSBAWElucHV0TnVtYmVyKCkgcm93SGVpZ2h0ITogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmK/lkKblkK/nlKjliqDovb0gbG9hZGluZ1xyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGVuYWJsZSBsb2FkaW5nXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCBmYWxzZSkgQFhJbnB1dEJvb2xlYW4oKSBsb2FkaW5nITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuWxleekuuWIl+i+ueahhlxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIHNob3cgY29sdW1uIGJvcmRlcnNcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIGJvcmRlcmVkITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuaYvuekuuWIl+WktFxyXG4gICAqIEBlbl9VUyBXaGV0aGVyIHRvIGRpc3BsYXkgdGhlIGNvbHVtbiBoZWFkZXJzXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBAWElucHV0Qm9vbGVhbigpIHNob3dIZWFkZXIhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5Lit6KGM5pWw5o2uXHJcbiAgICogQGVuX1VTIEN1cnJlbnRseSBzZWxlY3RlZCByb3cgZGF0YVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGFjdGl2YXRlZFJvdz86IFhUYWJsZVJvdztcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5Lit6KGM5pS55Y+YXHJcbiAgICogQGVuX1VTIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgcm93IGNoYW5nZXNcclxuICAgKi9cclxuICBAT3V0cHV0KCkgYWN0aXZhdGVkUm93Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxYVGFibGVSb3c+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+WktOiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBDb2x1bW4gaGVhZGVyIGN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGhlYWRDb2x1bW5UcGw6IFhUYWJsZVRlbXBsYXRlID0ge307XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+WGheWuueiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBDb2x1bW4gY29udGVudCBjdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBib2R5Q29sdW1uVHBsOiBYVGFibGVUZW1wbGF0ZSA9IHt9O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooYzmnaHku7bmoLflvI9cclxuICAgKiBAZW5fVVMgUm93IGNvbmRpdGlvbiBjbGFzc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHJvd0NsYXNzPzogKHJvdzogWFRhYmxlUm93LCBpbmRleDogbnVtYmVyKSA9PiB7IFtjbGFzc05hbWU6IHN0cmluZ106IGJvb2xlYW4gfTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5o6S5bqP54K55Ye755qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNvcnQgY2xpY2sgZXZlbnRzXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHNvcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFhTb3J0W10+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWFgeiuuOihjOeCueWHu+mAieS4rVxyXG4gICAqIEBlbl9VUyBBbGxvdyByb3cgY2xpY2sgdG8gc2VsZWN0XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBAWElucHV0Qm9vbGVhbigpIGFsbG93U2VsZWN0Um93ITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8gOWQr+iZmuaLn+a7muWKqFxyXG4gICAqIEBlbl9VUyBUdXJuIG9uIHZpcnR1YWwgc2Nyb2xsaW5nXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FKSBAWElucHV0Qm9vbGVhbigpIHZpcnR1YWxTY3JvbGwhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04gYm9keSDmlbDmja7pq5jluqZcclxuICAgKiBAZW5fVVMgYm9keSBkYXRhIGhlaWdodFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXROdW1iZXIoKSBib2R5SGVpZ2h0PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBpdGVtU2l6Ze+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBpdGVtU2l6Ze+8jGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxudW1iZXI+KFhfQ09ORklHX05BTUUsIDQyKSBAWElucHV0TnVtYmVyKCkgaXRlbVNpemUhOiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi2heWHuuWPr+inhueql+WPo+e8k+WGsuWMuueahOacgOWwj+WAvO+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBFeGNlZWQgdGhlIG1pbmltdW0gdmFsdWUgb2YgdGhlIHZpc2libGUgd2luZG93IGJ1ZmZlciwgY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgQElucHV0KCkgbWluQnVmZmVyUHg6IG51bWJlciA9IDEwMDtcclxuICAvKipcclxuICAgKiBAemhfQ04g5riy5p+T5paw5pWw5o2u57yT5Yay5Yy655qE5YOP57Sg77yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWwXHJcbiAgICogQGVuX1VTIFJlbmRlciB0aGUgcGl4ZWxzIG9mIHRoZSBuZXcgZGF0YSBidWZmZXIsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1heEJ1ZmZlclB4OiBudW1iZXIgPSAyMDA7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHqumAguW6lOmrmOW6pu+8jHRhYmxlIOmrmOW6puetieS6juWxj+W5lemrmOW6puWHj+aOieatpOWkhOiuvue9rueahOaVsOWAvFxyXG4gICAqIEBlbl9VUyBBZGFwdGl2ZSBoZWlnaHQsIHRhYmxlIGhlaWdodCBpcyBlcXVhbCB0byB0aGUgc2NyZWVuIGhlaWdodCBtaW51cyB0aGUgdmFsdWUgc2V0IGhlcmVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgYWRhcHRpb25IZWlnaHQ/OiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmlofmoaPpq5jluqbnmb7liIbmr5TvvIzlvLnnqpfnmb7liIbmr5Tpq5jluqbnlKjliLBcclxuICAgKiBAZW5fVVMgRG9jdW1lbnQgaGVpZ2h0IHBlcmNlbnRhZ2UsIHVzZWQgYnkgcG9wLXVwIHdpbmRvdyBwZXJjZW50YWdlIGhlaWdodFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXROdW1iZXIoKSBkb2NQZXJjZW50OiBYTnVtYmVyID0gMTtcclxuICAvKipcclxuICAgKiBAemhfQ04gY2hlY2tib3gg5YiX5Yid5aeL6YCJ5Lit55qE5pWw5o2u77yM5YiX5Lit5r+A5rS7IGNoZWNrYm94XHJcbiAgICogQGVuX1VTIENoZWNrYm94IGNvbHVtbiBpbml0aWFsbHkgc2VsZWN0ZWQgZGF0YSwgY2hlY2tib3ggaXMgYWN0aXZhdGVkIGluIGNvbHVtblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNoZWNrZWRSb3c6IHsgW3Byb3BlcnR5OiBzdHJpbmddOiBhbnlbXSB9ID0ge307XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWmguaenCBkYXRhIOaYr+WHveaVsOexu+Wei++8jOWPr+S7pemAmui/h+atpOWPguaVsOaOp+WItuivt+axgu+8jOW4uOeUqOS6juW8ueahhuS4reeahOihqOagvO+8jOW8ueWHuuWQjuWGjeivt+axglxyXG4gICAqIEBlbl9VUyBJZiBkYXRhIGlzIGEgZnVuY3Rpb24gdHlwZSwgeW91IGNhbiB1c2UgdGhpcyBwYXJhbWV0ZXIgdG8gY29udHJvbCB0aGUgcmVxdWVzdCwgd2hpY2ggaXMgb2Z0ZW4gdXNlZCBpbiB0aGUgZm9ybSBpbiB0aGUgcG9wLXVwIGJveCwgYW5kIHRoZW4gcmVxdWVzdCBpdCBhZnRlciBpdCBwb3BzIHVwXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBtYW51YWw6IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5rua5Yqo5Yy65Z+f6auY5a69XHJcbiAgICogQGVuX1VTIEhlaWdodCBhbmQgd2lkdGggb2Ygcm9sbGluZyBhcmVhXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2Nyb2xsPzogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlj4LmlbDmjqfliLbor7fmsYLmlLnlj5jkuovku7ZcclxuICAgKiBAZW5fVVMgUGFyYW1ldGVyIGNvbnRyb2wgcmVxdWVzdCBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbWFudWFsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDljZXlhYPmoLzphY3nva5cclxuICAgKiBAZW5fVVMgQ2VsbCBjb25maWdcclxuICAgKi9cclxuICBASW5wdXQoKSBjZWxsQ29uZmlnPzogWFRhYmxlQ2VsbENvbmZpZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5bC65a+4XHJcbiAgICogQGVuX1VTIFNpemVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WFNpemU+KFhfQ09ORklHX05BTUUsICdtZWRpdW0nKSByb3dTaXplPzogWFNpemU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIhumhteWZqOS9jee9rlxyXG4gICAqIEBlbl9VUyBQYWdpbmF0aW9uIHBvc2l0aW9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgcGFnaW5hdGlvblBvc2l0aW9uOiBYUGFnaW5hdGlvblBvc2l0aW9uID0gJ2JvdHRvbS1sZWZ0JztcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65YiG6aG15ZmoXHJcbiAgICogQGVuX1VTIFBhZ2luYXRpb24gcG9zaXRpb25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIHRydWUpIEBYSW5wdXRCb29sZWFuKCkgc2hvd1BhZ2luYXRpb24/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR5b2i6KGo5qC8XHJcbiAgICogQGVuX1VTIFRyZWUgdGFibGVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIHRyZWVUYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHlvaLooajmoLzlsZXlvIDmiYDmnInoioLngrlcclxuICAgKiBAZW5fVVMgVHJlZSB0YWJsZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgZmFsc2UpIEBYSW5wdXRCb29sZWFuKCkgZXhwYW5kZWRBbGw/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6buY6K6k5bGV5byA55qE5bGC57qn77yMLTEg5LiN5bGV5byAXHJcbiAgICogQGVuX1VTIERlZmF1bHQgZXhwYW5kZWQgbGV2ZWxcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WE51bWJlcj4oWF9DT05GSUdfTkFNRSwgLTEpIEBYSW5wdXROdW1iZXIoKSBleHBhbmRlZExldmVsITogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bGV5byA55qE6IqC54K5XHJcbiAgICogQGVuX1VTIEV4cGFuZGVkIG5vZGVcclxuICAgKi9cclxuICBASW5wdXQoKSBleHBhbmRlZDogYW55W10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5bGV5byA5YaF5a65XHJcbiAgICogQGVuX1VTIEN1c3RvbWl6ZWQgZXhwYW5zaW9uIGNvbnRlbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBleHBhbmRUcGw/OiBYVGVtcGxhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBPcHRpb25cclxuICogQHVuZG9jdW1lbnQgdHJ1ZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVGFibGVPcHRpb24gZXh0ZW5kcyBYUGFnaW5hdGlvbk9wdGlvbiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihjOaVsOaNrlxyXG4gICAqIEBlbl9VUyBSb3cgZGF0YVxyXG4gICAqL1xyXG4gIGRhdGE/OiBYRGF0YTxYVGFibGVSb3c+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJfpm4blkIhcclxuICAgKiBAZW5fVVMgQ29sdW1uIHNldFxyXG4gICAqL1xyXG4gIGNvbHVtbnM/OiBYVGFibGVDb2x1bW5bXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5aS05ZKM6KGM6auY77yM5Y2V5L2NIHB4XHJcbiAgICogQGVuX1VTIEhlYWRlciBhbmQgcm93IGhlaWdodCwgdW5pdCBweFxyXG4gICAqL1xyXG4gIHJvd0hlaWdodD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5piv5ZCm5ZCv55So5Yqg6L29IGxvYWRpbmdcclxuICAgKiBAZW5fVVMgV2hldGhlciB0byBlbmFibGUgbG9hZGluZ1xyXG4gICAqL1xyXG4gIGxvYWRpbmc/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5Lit6KGM5pWw5o2uXHJcbiAgICogQGVuX1VTIEN1cnJlbnRseSBzZWxlY3RlZCByb3cgZGF0YVxyXG4gICAqL1xyXG4gIGFjdGl2YXRlZFJvdz86IFhUYWJsZVJvdztcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5aS06Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIENvbHVtbiBoZWFkZXIgY3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgaGVhZENvbHVtblRwbD86IFhUYWJsZVRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflhoXlrrnoh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgQ29sdW1uIGNvbnRlbnQgY3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgYm9keUNvbHVtblRwbD86IFhUYWJsZVRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooYzmnaHku7bmoLflvI9cclxuICAgKiBAZW5fVVMgUm93IGNvbmRpdGlvbiBjbGFzc1xyXG4gICAqL1xyXG4gIHJvd0NsYXNzPzogKHJvdzogWFRhYmxlUm93LCBpbmRleDogbnVtYmVyKSA9PiB7IFtjbGFzc05hbWU6IHN0cmluZ106IGJvb2xlYW4gfTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5byA5ZCv6Jma5ouf5rua5YqoXHJcbiAgICogQGVuX1VTIFR1cm4gb24gdmlydHVhbCBzY3JvbGxpbmdcclxuICAgKi9cclxuICB2aXJ0dWFsU2Nyb2xsPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGJvZHkg5pWw5o2u6auY5bqmXHJcbiAgICogQGVuX1VTIGJvZHkgZGF0YSBoZWlnaHRcclxuICAgKi9cclxuICBib2R5SGVpZ2h0PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDotoXlh7rlj6/op4bnqpflj6PnvJPlhrLljLrnmoTmnIDlsI/lgLzvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgRXhjZWVkIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSB2aXNpYmxlIHdpbmRvdyBidWZmZXIsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIG1pbkJ1ZmZlclB4PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuLLmn5PmlrDmlbDmja7nvJPlhrLljLrnmoTlg4/ntKDvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgUmVuZGVyIHRoZSBwaXhlbHMgb2YgdGhlIG5ldyBkYXRhIGJ1ZmZlciwgY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgbWF4QnVmZmVyUHg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHqumAguW6lOmrmOW6pu+8jHRhYmxlIOmrmOW6puetieS6juWxj+W5lemrmOW6puWHj+aOieatpOWkhOiuvue9rueahOaVsOWAvFxyXG4gICAqIEBlbl9VUyBBZGFwdGl2ZSBoZWlnaHQsIHRhYmxlIGhlaWdodCBpcyBlcXVhbCB0byB0aGUgc2NyZWVuIGhlaWdodCBtaW51cyB0aGUgdmFsdWUgc2V0IGhlcmVcclxuICAgKi9cclxuICBhZGFwdGlvbkhlaWdodD86IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaWh+aho+mrmOW6pueZvuWIhuavlO+8jOW8ueeql+eZvuWIhuavlOmrmOW6pueUqOWIsFxyXG4gICAqIEBlbl9VUyBEb2N1bWVudCBoZWlnaHQgcGVyY2VudGFnZSwgdXNlZCBieSBwb3AtdXAgd2luZG93IHBlcmNlbnRhZ2UgaGVpZ2h0XHJcbiAgICovXHJcbiAgZG9jUGVyY2VudD86IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWNleWFg+agvOmFjee9rlxyXG4gICAqIEBlbl9VUyBDZWxsIGNvbmZpZ1xyXG4gICAqL1xyXG4gIGNlbGxDb25maWc/OiBYVGFibGVDZWxsQ29uZmlnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsLrlr7hcclxuICAgKiBAZW5fVVMgU2l6ZVxyXG4gICAqL1xyXG4gIHJvd1NpemU/OiBYU2l6ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDmlbDmja5cclxuICogQGVuX1VTIERhdGFcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlUm93IGV4dGVuZHMgWFBhcmVudElkZW50aXR5UHJvcGVydHk8WFRhYmxlUm93PiB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWxleW8gFxyXG4gICAqIEBlbl9VUyBVbmZvbGRcclxuICAgKi9cclxuICBleHBhbmRlZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWxnuaAp1xyXG4gICAqIEBlbl9VUyBDdXN0b20gYXR0cmlidXRlc1xyXG4gICAqL1xyXG4gIFtwcm9wZXJ0eTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIl+WPguaVsFxyXG4gKiBAZW5fVVMgQ29sdW1uIHBhcmFtZXRlclxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYVGFibGVDb2x1bW4gZXh0ZW5kcyBYSWRlbnRpdHlQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOexu+Wei1xyXG4gICAqIEBlbl9VUyBUeXBlcyBvZlxyXG4gICAqL1xyXG4gIHR5cGU/OiBYQ29sdW1uVHlwZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5a695bqmXHJcbiAgICogQGVuX1VTIFdpZHRoXHJcbiAgICovXHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGZsZXgg5biD5bGA5a695bqmXHJcbiAgICogQGVuX1VTIEZsZXggbGF5b3V0IHdpZHRoXHJcbiAgICovXHJcbiAgZmxleD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5p+l6K+i5a2X5q61XHJcbiAgICogQGVuX1VTIFF1ZXJ5IGZpZWxkXHJcbiAgICovXHJcbiAgc2VhcmNoPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5o6S5bqP5a2X5q61XHJcbiAgICogQGVuX1VTIFNvcnQgZmllbGRcclxuICAgKi9cclxuICBzb3J0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu65a6a5YiX77yM6Led56a75bem6L6555qE6Led56a7XHJcbiAgICogQGVuX1VTIEZpeGVkIGNvbHVtbiwgZGlzdGFuY2UgZnJvbSBsZWZ0XHJcbiAgICovXHJcbiAgbGVmdD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pON5L2c5oyJ6ZKuXHJcbiAgICogQGVuX1VTIE9wZXJhdGlvbiBidXR0b25cclxuICAgKi9cclxuICBhY3Rpb24/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiB0eXBlIOS4uiBjaGVja2JveCDml7bnu5HlrprooYzngrnlh7vpgInkuK3kuovku7ZcclxuICAgKiBAZW5fVVMgQmluZCByb3cgY2xpY2sgc2VsZWN0aW9uIGV2ZW50IHdoZW4gdHlwZSBpcyBjaGVja2JveFxyXG4gICAqL1xyXG4gIHJvd0NoZWNrZWQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiB0eXBlIOS4uiBleHBhbmQg5pe257uR5a6a6KGM54K55Ye75bGV5byA5LqL5Lu2XHJcbiAgICogQGVuX1VTIEJpbmQgcm93IGNsaWNrIHNlbGVjdGlvbiBldmVudCB3aGVuIHR5cGUgaXMgZXhwYW5kXHJcbiAgICovXHJcbiAgcm93RXhwYW5kPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5paH5a2X5a+56b2Q5pa55byPXHJcbiAgICogQGVuX1VTIFRleHQgYWxpZ25tZW50XHJcbiAgICovXHJcbiAgdGV4dEFsaWduPzogWFRleHRBbGlnbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5ouW5Yqo5YiX5a6977yM6ZyA6KaB6K6+572u5YiX55qE5Yid5aeL5a695bqmIHdpZHRoXHJcbiAgICogQGVuX1VTIERyYWcgdGhlIGNvbHVtbiB3aWR0aCwgeW91IG5lZWQgdG8gc2V0IHRoZSBpbml0aWFsIHdpZHRoIG9mIHRoZSBjb2x1bW4gd2lkdGhcclxuICAgKi9cclxuICBkcmFnV2lkdGg/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlpLTpg6jmmL7npLogY2hlY2tib3hcclxuICAgKiBAZW5fVVMgSGVhZCBzaG93cyBjaGVja2JveFxyXG4gICAqL1xyXG4gIGhlYWRDaGVja2VkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aS06YOo5pi+56S6IGV4cGFuZFxyXG4gICAqIEBlbl9VUyBIZWFkIHNob3dzIGV4cGFuZFxyXG4gICAqL1xyXG4gIGhlYWRFeHBhbmQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZ7mgKdcclxuICAgKiBAZW5fVVMgQ3VzdG9tIGF0dHJpYnV0ZXNcclxuICAgKi9cclxuICBbcHJvcGVydHk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDljZXlhYPmoLzphY3nva5cclxuICogQGVuX1VTIENlbGwgY29uZmlnXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUYWJsZUNlbGxDb25maWcge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJfljZXlhYPmoLzphY3nva5cclxuICAgKiBAZW5fVVMgQ29sdW1uIGNlbGwgY29uZmlnXHJcbiAgICovXHJcbiAgdGhlYWQ/OiBYVGFibGVDZWxsQ29uZmlnUnVsZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5Y2V5YWD5qC86YWN572uXHJcbiAgICogQGVuX1VTIFJvdyBjb25maWdcclxuICAgKi9cclxuICB0Ym9keT86IFhUYWJsZUNlbGxDb25maWdSdWxlO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWNleWFg+agvOmFjee9ruinhOWImVxyXG4gKiBAZW5fVVMgQ2VsbCBjb25maWcgcnVsZXNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlQ2VsbENvbmZpZ1J1bGUge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBncmlkIOW4g+WxgOS4i+WumuS5ieWIl+WuveW6plxyXG4gICAqIEBlbl9VUyBEZWZpbmUgY29sdW1uIHdpZHRoIHVuZGVyIGdyaWQgbGF5b3V0XHJcbiAgICovXHJcbiAgZ3JpZFRlbXBsYXRlQ29sdW1ucz86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y2V5YWD5qC86YWN572uXHJcbiAgICogQGVuX1VTIENlbGwgbWVyZ2UgcnVsZXNcclxuICAgKi9cclxuICBjZWxscz86IFhUYWJsZUNlbGxbXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDljZXlhYPmoLzlkIjlubbphY3nva5cclxuICogQGVuX1VTIENlbGwgbWVyZ2UgcnVsZXNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlQ2VsbCB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS9v+eUqCBncmlkIOW4g+WxgOadpeWQiOW5tuWNleWFg+agvFxyXG4gICAqIEBlbl9VUyBVc2UgZ3JpZCBsYXlvdXQgdG8gbWVyZ2UgY2VsbHNcclxuICAgKi9cclxuICBncmlkQXJlYT86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5ZCN56ewXHJcbiAgICogQGVuX1VTIE5hbWVcclxuICAgKi9cclxuICBsYWJlbD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5a695bqmXHJcbiAgICogQGVuX1VTIFdpZHRoXHJcbiAgICovXHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbuuWumuWIl++8jOi3neemu+W3pui+ueeahOi3neemu1xyXG4gICAqIEBlbl9VUyBGaXhlZCBjb2x1bW4sIGRpc3RhbmNlIGZyb20gbGVmdFxyXG4gICAqL1xyXG4gIGxlZnQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWvueW6lOWIl+eahCBpZFxyXG4gICAqIEBlbl9VUyBUaGUgaWQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgY29sdW1uXHJcbiAgICovXHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaLluWKqOWIl+WuvVxyXG4gICAqIEBlbl9VUyBEcmFnIHRoZSBjb2x1bW4gd2lkdGhcclxuICAgKi9cclxuICBkcmFnV2lkdGg/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZ7mgKdcclxuICAgKiBAZW5fVVMgQ3VzdG9tIGF0dHJpYnV0ZXNcclxuICAgKi9cclxuICBbcHJvcGVydHk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliJfnsbvlnotcclxuICogQGVuX1VTIENvbHVtbiB0eXBlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYQ29sdW1uVHlwZSA9ICdsYWJlbCcgfCAnaW5kZXgnIHwgJ2NoZWNrYm94JyB8ICdleHBhbmQnO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliIbpobXlmajkvY3nva5cclxuICogQGVuX1VTIFBhZ2luZyBwb3NpdGlvblxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWFBhZ2luYXRpb25Qb3NpdGlvbiA9ICd0b3AtbGVmdCcgfCAndG9wLWNlbnRlcicgfCAndG9wLXJpZ2h0JyB8ICdib3R0b20tbGVmdCcgfCAnYm90dG9tLWNlbnRlcicgfCAnYm90dG9tLXJpZ2h0JztcclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5qih5p2/XHJcbiAqIEBlbl9VUyBUZW1wbGF0ZVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWFRhYmxlVGVtcGxhdGUgPSB7IFtwcm9wZXJ0eTogc3RyaW5nXTogVGVtcGxhdGVSZWY8YW55PiB9O1xyXG5cclxuLyoqXHJcbiAqIFRhYmxlIEhlYWRcclxuICogQHNlbGVjdG9yIHgtdGFibGUtaGVhZFxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhUYWJsZUhlYWRQcmVmaXggPSAneC10YWJsZS1oZWFkJztcclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBIZWFkIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVIZWFkUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJfpm4blkIhcclxuICAgKiBAZW5fVVMgQ29sdW1uIHNldFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IFhUYWJsZUNvbHVtbltdID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmrmOW6pu+8jOWNleS9jSBweFxyXG4gICAqIEBlbl9VUyBIZWlnaHQgaW4gcHhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgcm93SGVpZ2h0OiBYTnVtYmVyID0gNDI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBDdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBjb2x1bW5UcGw6IFhUYWJsZVRlbXBsYXRlID0ge307XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOerluWQkea7muWKqOadoeWuveW6plxyXG4gICAqIEBlbl9VUyBWZXJ0aWNhbCBzY3JvbGwgYmFyIHdpZHRoXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2Nyb2xsWVdpZHRoPzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmqKrlkJHmu5rliqjmnaHlrr3luqZcclxuICAgKiBAZW5fVVMgSG9yaXpvbnRhbCBzY3JvbGwgYmFyIHdpZHRoXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2Nyb2xsWFdpZHRoPzogbnVtYmVyIHwgbnVsbDtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y2V5YWD5qC86YWN572uXHJcbiAgICogQGVuX1VTIENlbGwgbWVyZ2UgcnVsZXNcclxuICAgKi9cclxuICBASW5wdXQoKSBjZWxsQ29uZmlnPzogWFRhYmxlQ2VsbENvbmZpZ1J1bGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBCb2R5XHJcbiAqIEBzZWxlY3RvciB4LXRhYmxlLWJvZHlcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYVGFibGVCb2R5UHJlZml4ID0gJ3gtdGFibGUtYm9keSc7XHJcblxyXG4vKipcclxuICogVGFibGUgQm9keSBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlQm9keVByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5pWw5o2uXHJcbiAgICogQGVuX1VTIFJvdyBkYXRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGF0YTogWFRhYmxlUm93W10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX6ZuG5ZCIXHJcbiAgICogQGVuX1VTIENvbHVtbiBzZXRcclxuICAgKi9cclxuICBASW5wdXQoKSBjb2x1bW5zOiBYVGFibGVDb2x1bW5bXSA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgQ3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgY29sdW1uVHBsOiBYVGFibGVUZW1wbGF0ZSA9IHt9O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPliY3pgInkuK3ooYzmlbDmja5cclxuICAgKiBAZW5fVVMgQ3VycmVudGx5IHNlbGVjdGVkIHJvdyBkYXRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgYWN0aXZhdGVkUm93PzogWFRhYmxlUm93O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPliY3pgInkuK3ooYzmlLnlj5hcclxuICAgKiBAZW5fVVMgVGhlIGN1cnJlbnRseSBzZWxlY3RlZCByb3cgY2hhbmdlc1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBhY3RpdmF0ZWRSb3dDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFhUYWJsZVJvdz4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6auY5bqm77yM5Y2V5L2NIHB444CC6K6+572u5Li6IDAg6KGo56S66KGM6auY6Ieq6YCC5bqU5YaF5a656auY5bqm44CCXHJcbiAgICogQGVuX1VTIEhlaWdodCBpbiBweC4gc2V0IHRvIDAgbWVhbnMgdGhhdCB0aGUgcm93IGhlaWdodCBpcyBhZGFwdGl2ZSB0byB0aGUgY29udGVudCBoZWlnaHRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgcm93SGVpZ2h0OiBYTnVtYmVyID0gNDI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGJvZHkg5pWw5o2u6auY5bqmXHJcbiAgICogQGVuX1VTIGJvZHkgZGF0YSBoZWlnaHRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgYm9keUhlaWdodD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YWB6K646KGM54K55Ye76YCJ5LitXHJcbiAgICogQGVuX1VTIEFsbG93IHJvdyBjbGljayB0byBzZWxlY3RcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGFsbG93U2VsZWN0Um93OiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8gOWQr+iZmuaLn+a7muWKqFxyXG4gICAqIEBlbl9VUyBUdXJuIG9uIHZpcnR1YWwgc2Nyb2xsaW5nXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSB2aXJ0dWFsU2Nyb2xsOiBYQm9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBpdGVtU2l6Ze+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBpdGVtU2l6Ze+8jGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXROdW1iZXIoKSBpdGVtU2l6ZTogbnVtYmVyID0gNDI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOi2heWHuuWPr+inhueql+WPo+e8k+WGsuWMuueahOacgOWwj+WAvO+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBFeGNlZWQgdGhlIG1pbmltdW0gdmFsdWUgb2YgdGhlIHZpc2libGUgd2luZG93IGJ1ZmZlciwgY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgQElucHV0KCkgbWluQnVmZmVyUHg6IG51bWJlciA9IDEwMDtcclxuICAvKipcclxuICAgKiBAemhfQ04g5riy5p+T5paw5pWw5o2u57yT5Yay5Yy655qE5YOP57Sg77yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWwXHJcbiAgICogQGVuX1VTIFJlbmRlciB0aGUgcGl4ZWxzIG9mIHRoZSBuZXcgZGF0YSBidWZmZXIsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1heEJ1ZmZlclB4OiBudW1iZXIgPSAyMDA7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHqumAguW6lOmrmOW6pu+8jHRhYmxlIOmrmOW6puetieS6juWxj+W5lemrmOW6puWHj+aOieatpOWkhOiuvue9rueahOaVsOWAvFxyXG4gICAqIEBlbl9VUyBBZGFwdGl2ZSBoZWlnaHQsIHRhYmxlIGhlaWdodCBpcyBlcXVhbCB0byB0aGUgc2NyZWVuIGhlaWdodCBtaW51cyB0aGUgdmFsdWUgc2V0IGhlcmVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgYWRhcHRpb25IZWlnaHQ/OiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmlofmoaPpq5jluqbnmb7liIbmr5TvvIzlvLnnqpfnmb7liIbmr5Tpq5jluqbnlKjliLBcclxuICAgKiBAZW5fVVMgRG9jdW1lbnQgaGVpZ2h0IHBlcmNlbnRhZ2UsIHVzZWQgYnkgcG9wLXVwIHdpbmRvdyBwZXJjZW50YWdlIGhlaWdodFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXROdW1iZXIoKSBkb2NQZXJjZW50OiBYTnVtYmVyID0gMTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5rua5Yqo5Yy65Z+f6auY5a69XHJcbiAgICogQGVuX1VTIEhlaWdodCBhbmQgd2lkdGggb2Ygcm9sbGluZyBhcmVhXHJcbiAgICovXHJcbiAgQElucHV0KCkgc2Nyb2xsPzogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDljZXlhYPmoLzphY3nva7op4TliJlcclxuICAgKiBAZW5fVVMgQ2VsbCBjb25maWcgcnVsZXNcclxuICAgKi9cclxuICBASW5wdXQoKSBjZWxsQ29uZmlnPzogWFRhYmxlQ2VsbENvbmZpZ1J1bGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihjOadoeS7tuagt+W8j1xyXG4gICAqIEBlbl9VUyBSb3cgY29uZGl0aW9uIGNsYXNzXHJcbiAgICovXHJcbiAgQElucHV0KCkgcm93Q2xhc3M/OiAocm93OiBYVGFibGVSb3csIGluZGV4OiBudW1iZXIpID0+IHsgW2NsYXNzTmFtZTogc3RyaW5nXTogYm9vbGVhbiB9O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoJHlvaLooajmoLzkuIvnmoTlsYLnuqdcclxuICAgKiBAZW5fVVMgVGhlIGxldmVsIHVuZGVyIHRoZSB0cmVlIHRhYmxlXHJcbiAgICovXHJcbiAgQElucHV0KCkgbGV2ZWw6IG51bWJlciA9IDA7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkeW9ouihqOagvOWxleW8gOaJgOacieiKgueCuVxyXG4gICAqIEBlbl9VUyBUcmVlIHRhYmxlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBleHBhbmRlZEFsbD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZXlvIDlhoXlrrlcclxuICAgKiBAZW5fVVMgQ3VzdG9taXplZCBleHBhbnNpb24gY29udGVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGV4cGFuZFRwbD86IFhUZW1wbGF0ZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRhYmxlIEZvb3RcclxuICogQHNlbGVjdG9yIHgtdGFibGUtZm9vdFxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhUYWJsZUZvb3RQcmVmaXggPSAneC10YWJsZS1mb290JztcclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBGb290IFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVGb290UHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge31cclxuIl19
436
+ }], propDecorators: { footer: [{
437
+ type: Input
438
+ }], rowHeight: [{
439
+ type: Input
440
+ }] } });
441
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS90YWJsZS90YWJsZS5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBRVosYUFBYSxFQUdiLFdBQVcsRUFNWixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBZSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixNQUFNLHdCQUF3QixDQUFDOztBQUVoRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQztBQUN0QyxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUM7QUFFOUI7O0dBRUc7QUFFSCxNQUFNLE9BQU8sY0FBZSxTQUFRLG1CQUFtQjtJQUR2RDs7UUFFRTs7O1dBR0c7UUFDTSxTQUFJLEdBQXFCLEVBQUUsQ0FBQztRQUNyQzs7O1dBR0c7UUFDTSxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQTBCdEM7OztXQUdHO1FBQ08sdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUM3RDs7O1dBR0c7UUFDTSxrQkFBYSxHQUFtQixFQUFFLENBQUM7UUFDNUM7OztXQUdHO1FBQ00sa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBTTVDOzs7V0FHRztRQUNPLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBcUJuRDs7O1dBR0c7UUFDTSxnQkFBVyxHQUFXLEdBQUcsQ0FBQztRQUNuQzs7O1dBR0c7UUFDTSxnQkFBVyxHQUFXLEdBQUcsQ0FBQztRQU1uQzs7O1dBR0c7UUFDc0IsZUFBVSxHQUFZLENBQUMsQ0FBQztRQUNqRDs7O1dBR0c7UUFDTSxlQUFVLEdBQWtDLEVBQUUsQ0FBQztRQUN4RDs7O1dBR0c7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QW5CLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFLbUIsY0FBYztzQkFBdEMsS0FBSztnQkFLbUIsVUFBVTtzQkFBbEMsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLb0IsV0FBVztzQkFBcEMsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLOztBQUdSOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUM7QUFFL0M7O0dBRUc7QUFFSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsU0FBUzs7a0lBQXBDLGtCQUFrQjtzSEFBbEIsa0JBQWtCLGlJQURSLEVBQUU7MkZBQ1osa0JBQWtCO2tCQUQ5QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs4QkFNaEIsTUFBTTtzQkFBZCxLQUFLO2dCQUtHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIFhQcm9wZXJ0eSxcclxuICBYTnVtYmVyLFxyXG4gIFhJbnB1dE51bWJlcixcclxuICBYU29ydCxcclxuICBYSW5wdXRCb29sZWFuLFxyXG4gIFhCb29sZWFuLFxyXG4gIFhEYXRhLFxyXG4gIFhXaXRoQ29uZmlnLFxyXG4gIFhUZXh0QWxpZ24sXHJcbiAgWFNpemUsXHJcbiAgWFBhcmVudElkZW50aXR5UHJvcGVydHksXHJcbiAgWElkZW50aXR5UHJvcGVydHksXHJcbiAgWFRlbXBsYXRlXHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IElucHV0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgVGVtcGxhdGVSZWYsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYUGFnaW5hdGlvblByb3BlcnR5LCBYUGFnaW5hdGlvbk9wdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL3BhZ2luYXRpb24nO1xyXG5cclxuLyoqXHJcbiAqIFRhYmxlXHJcbiAqIEBzZWxlY3RvciB4LXRhYmxlXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFRhYmxlUHJlZml4ID0gJ3gtdGFibGUnO1xyXG5jb25zdCBYX0NPTkZJR19OQU1FID0gJ3RhYmxlJztcclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFRhYmxlUHJvcGVydHkgZXh0ZW5kcyBYUGFnaW5hdGlvblByb3BlcnR5IGltcGxlbWVudHMgWFRhYmxlT3B0aW9uIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5pWw5o2uXHJcbiAgICogQGVuX1VTIFJvdyBkYXRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgZGF0YTogWERhdGE8WFRhYmxlUm93PiA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJfpm4blkIhcclxuICAgKiBAZW5fVVMgQ29sdW1uIHNldFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IFhUYWJsZUNvbHVtbltdID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOWktOWSjOihjOmrmO+8jOWNleS9jSBweFxyXG4gICAqIEBlbl9VUyBIZWFkZXIgYW5kIHJvdyBoZWlnaHQsIHVuaXQgcHhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8bnVtYmVyPihYX0NPTkZJR19OQU1FLCA0MikgQFhJbnB1dE51bWJlcigpIHJvd0hlaWdodCE6IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5piv5ZCm5ZCv55So5Yqg6L29IGxvYWRpbmdcclxuICAgKiBAZW5fVVMgV2hldGhlciB0byBlbmFibGUgbG9hZGluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgZmFsc2UpIEBYSW5wdXRCb29sZWFuKCkgbG9hZGluZyE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmK/lkKblsZXnpLrliJfovrnmoYZcclxuICAgKiBAZW5fVVMgV2hldGhlciB0byBzaG93IGNvbHVtbiBib3JkZXJzXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCBmYWxzZSkgQFhJbnB1dEJvb2xlYW4oKSBib3JkZXJlZCE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmK/lkKbmmL7npLrliJflpLRcclxuICAgKiBAZW5fVVMgV2hldGhlciB0byBkaXNwbGF5IHRoZSBjb2x1bW4gaGVhZGVyc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgdHJ1ZSkgQFhJbnB1dEJvb2xlYW4oKSBzaG93SGVhZGVyITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjemAieS4reihjOaVsOaNrlxyXG4gICAqIEBlbl9VUyBDdXJyZW50bHkgc2VsZWN0ZWQgcm93IGRhdGFcclxuICAgKi9cclxuICBASW5wdXQoKSBhY3RpdmF0ZWRSb3c/OiBYVGFibGVSb3c7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjemAieS4reihjOaUueWPmFxyXG4gICAqIEBlbl9VUyBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHJvdyBjaGFuZ2VzXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGFjdGl2YXRlZFJvd0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WFRhYmxlUm93PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflpLToh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgQ29sdW1uIGhlYWRlciBjdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBoZWFkQ29sdW1uVHBsOiBYVGFibGVUZW1wbGF0ZSA9IHt9O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJflhoXlrrnoh6rlrprkuYnmqKHmnb9cclxuICAgKiBAZW5fVVMgQ29sdW1uIGNvbnRlbnQgY3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgYm9keUNvbHVtblRwbDogWFRhYmxlVGVtcGxhdGUgPSB7fTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5p2h5Lu25qC35byPXHJcbiAgICogQGVuX1VTIFJvdyBjb25kaXRpb24gY2xhc3NcclxuICAgKi9cclxuICBASW5wdXQoKSByb3dDbGFzcz86IChyb3c6IFhUYWJsZVJvdywgaW5kZXg6IG51bWJlcikgPT4geyBbY2xhc3NOYW1lOiBzdHJpbmddOiBib29sZWFuIH07XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaOkuW6j+eCueWHu+eahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTb3J0IGNsaWNrIGV2ZW50c1xyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBzb3J0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxYU29ydFtdPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlhYHorrjooYzngrnlh7vpgInkuK1cclxuICAgKiBAZW5fVVMgQWxsb3cgcm93IGNsaWNrIHRvIHNlbGVjdFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgdHJ1ZSkgQFhJbnB1dEJvb2xlYW4oKSBhbGxvd1NlbGVjdFJvdyE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvIDlkK/omZrmi5/mu5rliqhcclxuICAgKiBAZW5fVVMgVHVybiBvbiB2aXJ0dWFsIHNjcm9sbGluZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSkgQFhJbnB1dEJvb2xlYW4oKSB2aXJ0dWFsU2Nyb2xsITogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGJvZHkg5pWw5o2u6auY5bqmXHJcbiAgICogQGVuX1VTIGJvZHkgZGF0YSBoZWlnaHRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgYm9keUhlaWdodD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04gaXRlbVNpemXvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgaXRlbVNpemXvvIxjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8bnVtYmVyPihYX0NPTkZJR19OQU1FLCA0MikgQFhJbnB1dE51bWJlcigpIGl0ZW1TaXplITogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDotoXlh7rlj6/op4bnqpflj6PnvJPlhrLljLrnmoTmnIDlsI/lgLzvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgRXhjZWVkIHRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSB2aXNpYmxlIHdpbmRvdyBidWZmZXIsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1pbkJ1ZmZlclB4OiBudW1iZXIgPSAxMDA7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa4suafk+aWsOaVsOaNrue8k+WGsuWMuueahOWDj+e0oO+8jOWvueW6lCBjZGsgc2Nyb2xsIOS4reeahOWPguaVsFxyXG4gICAqIEBlbl9VUyBSZW5kZXIgdGhlIHBpeGVscyBvZiB0aGUgbmV3IGRhdGEgYnVmZmVyLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICBASW5wdXQoKSBtYXhCdWZmZXJQeDogbnVtYmVyID0gMjAwO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rpgILlupTpq5jluqbvvIx0YWJsZSDpq5jluqbnrYnkuo7lsY/luZXpq5jluqblh4/mjonmraTlpITorr7nva7nmoTmlbDlgLxcclxuICAgKiBAZW5fVVMgQWRhcHRpdmUgaGVpZ2h0LCB0YWJsZSBoZWlnaHQgaXMgZXF1YWwgdG8gdGhlIHNjcmVlbiBoZWlnaHQgbWludXMgdGhlIHZhbHVlIHNldCBoZXJlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIGFkYXB0aW9uSGVpZ2h0PzogWE51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5paH5qGj6auY5bqm55m+5YiG5q+U77yM5by556qX55m+5YiG5q+U6auY5bqm55So5YiwXHJcbiAgICogQGVuX1VTIERvY3VtZW50IGhlaWdodCBwZXJjZW50YWdlLCB1c2VkIGJ5IHBvcC11cCB3aW5kb3cgcGVyY2VudGFnZSBoZWlnaHRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgZG9jUGVyY2VudDogWE51bWJlciA9IDE7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGNoZWNrYm94IOWIl+WIneWni+mAieS4reeahOaVsOaNru+8jOWIl+S4rea/gOa0uyBjaGVja2JveFxyXG4gICAqIEBlbl9VUyBDaGVja2JveCBjb2x1bW4gaW5pdGlhbGx5IHNlbGVjdGVkIGRhdGEsIGNoZWNrYm94IGlzIGFjdGl2YXRlZCBpbiBjb2x1bW5cclxuICAgKi9cclxuICBASW5wdXQoKSBjaGVja2VkUm93OiB7IFtwcm9wZXJ0eTogc3RyaW5nXTogYW55W10gfSA9IHt9O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlpoLmnpwgZGF0YSDmmK/lh73mlbDnsbvlnovvvIzlj6/ku6XpgJrov4fmraTlj4LmlbDmjqfliLbor7fmsYLvvIzluLjnlKjkuo7lvLnmoYbkuK3nmoTooajmoLzvvIzlvLnlh7rlkI7lho3or7fmsYJcclxuICAgKiBAZW5fVVMgSWYgZGF0YSBpcyBhIGZ1bmN0aW9uIHR5cGUsIHlvdSBjYW4gdXNlIHRoaXMgcGFyYW1ldGVyIHRvIGNvbnRyb2wgdGhlIHJlcXVlc3QsIHdoaWNoIGlzIG9mdGVuIHVzZWQgaW4gdGhlIGZvcm0gaW4gdGhlIHBvcC11cCBib3gsIGFuZCB0aGVuIHJlcXVlc3QgaXQgYWZ0ZXIgaXQgcG9wcyB1cFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbWFudWFsOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa7muWKqOWMuuWfn+mrmOWuvVxyXG4gICAqIEBlbl9VUyBIZWlnaHQgYW5kIHdpZHRoIG9mIHJvbGxpbmcgYXJlYVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNjcm9sbD86IHsgeDogbnVtYmVyOyB5OiBudW1iZXIgfTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC86aG15aS0XHJcbiAgICogQGVuX1VTIFRhYmxlIGhlYWRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGhlYWRlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGo5qC86aG15bC+XHJcbiAgICogQGVuX1VTIFRhYmxlIGZvb3RlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZvb3Rlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y+C5pWw5o6n5Yi26K+35rGC5pS55Y+Y5LqL5Lu2XHJcbiAgICogQGVuX1VTIFBhcmFtZXRlciBjb250cm9sIHJlcXVlc3QgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG1hbnVhbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y2V5YWD5qC86YWN572uXHJcbiAgICogQGVuX1VTIENlbGwgY29uZmlnXHJcbiAgICovXHJcbiAgQElucHV0KCkgY2VsbENvbmZpZz86IFhUYWJsZUNlbGxDb25maWc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWwuuWvuFxyXG4gICAqIEBlbl9VUyBTaXplXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhTaXplPihYX0NPTkZJR19OQU1FLCAnbWVkaXVtJykgcm93U2l6ZT86IFhTaXplO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliIbpobXlmajkvY3nva5cclxuICAgKiBAZW5fVVMgUGFnaW5hdGlvbiBwb3NpdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRpb25Qb3NpdGlvbjogWFBhZ2luYXRpb25Qb3NpdGlvbiA9ICdib3R0b20tbGVmdCc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuWIhumhteWZqFxyXG4gICAqIEBlbl9VUyBQYWdpbmF0aW9uIHBvc2l0aW9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBAWElucHV0Qm9vbGVhbigpIHNob3dQYWdpbmF0aW9uPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkeW9ouihqOagvFxyXG4gICAqIEBlbl9VUyBUcmVlIHRhYmxlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCBmYWxzZSkgQFhJbnB1dEJvb2xlYW4oKSB0cmVlVGFibGU/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR5b2i6KGo5qC85bGV5byA5omA5pyJ6IqC54K5XHJcbiAgICogQGVuX1VTIFRyZWUgdGFibGVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIGV4cGFuZGVkQWxsPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOm7mOiupOWxleW8gOeahOWxgue6p++8jC0xIOS4jeWxleW8gFxyXG4gICAqIEBlbl9VUyBEZWZhdWx0IGV4cGFuZGVkIGxldmVsXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhOdW1iZXI+KFhfQ09ORklHX05BTUUsIC0xKSBAWElucHV0TnVtYmVyKCkgZXhwYW5kZWRMZXZlbCE6IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWxleW8gOeahOiKgueCuVxyXG4gICAqIEBlbl9VUyBFeHBhbmRlZCBub2RlXHJcbiAgICovXHJcbiAgQElucHV0KCkgZXhwYW5kZWQ6IGFueVtdID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWxleW8gOWGheWuuVxyXG4gICAqIEBlbl9VUyBDdXN0b21pemVkIGV4cGFuc2lvbiBjb250ZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgZXhwYW5kVHBsPzogWFRlbXBsYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogVGFibGUgT3B0aW9uXHJcbiAqIEB1bmRvY3VtZW50IHRydWVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlT3B0aW9uIGV4dGVuZHMgWFBhZ2luYXRpb25PcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooYzmlbDmja5cclxuICAgKiBAZW5fVVMgUm93IGRhdGFcclxuICAgKi9cclxuICBkYXRhPzogWERhdGE8WFRhYmxlUm93PjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX6ZuG5ZCIXHJcbiAgICogQGVuX1VTIENvbHVtbiBzZXRcclxuICAgKi9cclxuICBjb2x1bW5zPzogWFRhYmxlQ29sdW1uW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOWktOWSjOihjOmrmO+8jOWNleS9jSBweFxyXG4gICAqIEBlbl9VUyBIZWFkZXIgYW5kIHJvdyBoZWlnaHQsIHVuaXQgcHhcclxuICAgKi9cclxuICByb3dIZWlnaHQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYr+WQpuWQr+eUqOWKoOi9vSBsb2FkaW5nXHJcbiAgICogQGVuX1VTIFdoZXRoZXIgdG8gZW5hYmxlIGxvYWRpbmdcclxuICAgKi9cclxuICBsb2FkaW5nPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjemAieS4reihjOaVsOaNrlxyXG4gICAqIEBlbl9VUyBDdXJyZW50bHkgc2VsZWN0ZWQgcm93IGRhdGFcclxuICAgKi9cclxuICBhY3RpdmF0ZWRSb3c/OiBYVGFibGVSb3c7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+WktOiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBDb2x1bW4gaGVhZGVyIGN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIGhlYWRDb2x1bW5UcGw/OiBYVGFibGVUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX5YaF5a656Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIENvbHVtbiBjb250ZW50IGN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIGJvZHlDb2x1bW5UcGw/OiBYVGFibGVUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5p2h5Lu25qC35byPXHJcbiAgICogQGVuX1VTIFJvdyBjb25kaXRpb24gY2xhc3NcclxuICAgKi9cclxuICByb3dDbGFzcz86IChyb3c6IFhUYWJsZVJvdywgaW5kZXg6IG51bWJlcikgPT4geyBbY2xhc3NOYW1lOiBzdHJpbmddOiBib29sZWFuIH07XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8gOWQr+iZmuaLn+a7muWKqFxyXG4gICAqIEBlbl9VUyBUdXJuIG9uIHZpcnR1YWwgc2Nyb2xsaW5nXHJcbiAgICovXHJcbiAgdmlydHVhbFNjcm9sbD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBib2R5IOaVsOaNrumrmOW6plxyXG4gICAqIEBlbl9VUyBib2R5IGRhdGEgaGVpZ2h0XHJcbiAgICovXHJcbiAgYm9keUhlaWdodD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6LaF5Ye65Y+v6KeG56qX5Y+j57yT5Yay5Yy655qE5pyA5bCP5YC877yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWwXHJcbiAgICogQGVuX1VTIEV4Y2VlZCB0aGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgdmlzaWJsZSB3aW5kb3cgYnVmZmVyLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICBtaW5CdWZmZXJQeD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5riy5p+T5paw5pWw5o2u57yT5Yay5Yy655qE5YOP57Sg77yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWwXHJcbiAgICogQGVuX1VTIFJlbmRlciB0aGUgcGl4ZWxzIG9mIHRoZSBuZXcgZGF0YSBidWZmZXIsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhcmFtZXRlcnMgaW4gY2RrIHNjcm9sbFxyXG4gICAqL1xyXG4gIG1heEJ1ZmZlclB4PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rpgILlupTpq5jluqbvvIx0YWJsZSDpq5jluqbnrYnkuo7lsY/luZXpq5jluqblh4/mjonmraTlpITorr7nva7nmoTmlbDlgLxcclxuICAgKiBAZW5fVVMgQWRhcHRpdmUgaGVpZ2h0LCB0YWJsZSBoZWlnaHQgaXMgZXF1YWwgdG8gdGhlIHNjcmVlbiBoZWlnaHQgbWludXMgdGhlIHZhbHVlIHNldCBoZXJlXHJcbiAgICovXHJcbiAgYWRhcHRpb25IZWlnaHQ/OiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmlofmoaPpq5jluqbnmb7liIbmr5TvvIzlvLnnqpfnmb7liIbmr5Tpq5jluqbnlKjliLBcclxuICAgKiBAZW5fVVMgRG9jdW1lbnQgaGVpZ2h0IHBlcmNlbnRhZ2UsIHVzZWQgYnkgcG9wLXVwIHdpbmRvdyBwZXJjZW50YWdlIGhlaWdodFxyXG4gICAqL1xyXG4gIGRvY1BlcmNlbnQ/OiBYTnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDljZXlhYPmoLzphY3nva5cclxuICAgKiBAZW5fVVMgQ2VsbCBjb25maWdcclxuICAgKi9cclxuICBjZWxsQ29uZmlnPzogWFRhYmxlQ2VsbENvbmZpZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5bC65a+4XHJcbiAgICogQGVuX1VTIFNpemVcclxuICAgKi9cclxuICByb3dTaXplPzogWFNpemU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5pWw5o2uXHJcbiAqIEBlbl9VUyBEYXRhXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUYWJsZVJvdyBleHRlbmRzIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5PFhUYWJsZVJvdz4ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXlvIBcclxuICAgKiBAZW5fVVMgVW5mb2xkXHJcbiAgICovXHJcbiAgZXhwYW5kZWQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZ7mgKdcclxuICAgKiBAZW5fVVMgQ3VzdG9tIGF0dHJpYnV0ZXNcclxuICAgKi9cclxuICBbcHJvcGVydHk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDliJflj4LmlbBcclxuICogQGVuX1VTIENvbHVtbiBwYXJhbWV0ZXJcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlQ29sdW1uIGV4dGVuZHMgWElkZW50aXR5UHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnsbvlnotcclxuICAgKiBAZW5fVVMgVHlwZXMgb2ZcclxuICAgKi9cclxuICB0eXBlPzogWENvbHVtblR5cGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWuveW6plxyXG4gICAqIEBlbl9VUyBXaWR0aFxyXG4gICAqL1xyXG4gIHdpZHRoPzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBmbGV4IOW4g+WxgOWuveW6plxyXG4gICAqIEBlbl9VUyBGbGV4IGxheW91dCB3aWR0aFxyXG4gICAqL1xyXG4gIGZsZXg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOafpeivouWtl+autVxyXG4gICAqIEBlbl9VUyBRdWVyeSBmaWVsZFxyXG4gICAqL1xyXG4gIHNlYXJjaD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaOkuW6j+Wtl+autVxyXG4gICAqIEBlbl9VUyBTb3J0IGZpZWxkXHJcbiAgICovXHJcbiAgc29ydD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbuuWumuWIl++8jOi3neemu+W3pui+ueeahOi3neemu1xyXG4gICAqIEBlbl9VUyBGaXhlZCBjb2x1bW4sIGRpc3RhbmNlIGZyb20gbGVmdFxyXG4gICAqL1xyXG4gIGxlZnQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbuuWumuWIl++8jOi3neemu+WPs+i+ueeahOi3neemu1xyXG4gICAqIEBlbl9VUyBGaXhlZCBjb2x1bW4sIGRpc3RhbmNlIGZyb20gcmlnaHRcclxuICAgKi9cclxuICByaWdodD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pON5L2c5oyJ6ZKuXHJcbiAgICogQGVuX1VTIE9wZXJhdGlvbiBidXR0b25cclxuICAgKi9cclxuICBhY3Rpb24/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiB0eXBlIOS4uiBjaGVja2JveCDml7bnu5HlrprooYzngrnlh7vpgInkuK3kuovku7ZcclxuICAgKiBAZW5fVVMgQmluZCByb3cgY2xpY2sgc2VsZWN0aW9uIGV2ZW50IHdoZW4gdHlwZSBpcyBjaGVja2JveFxyXG4gICAqL1xyXG4gIHJvd0NoZWNrZWQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiB0eXBlIOS4uiBleHBhbmQg5pe257uR5a6a6KGM54K55Ye75bGV5byA5LqL5Lu2XHJcbiAgICogQGVuX1VTIEJpbmQgcm93IGNsaWNrIHNlbGVjdGlvbiBldmVudCB3aGVuIHR5cGUgaXMgZXhwYW5kXHJcbiAgICovXHJcbiAgcm93RXhwYW5kPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5paH5a2X5a+56b2Q5pa55byPXHJcbiAgICogQGVuX1VTIFRleHQgYWxpZ25tZW50XHJcbiAgICovXHJcbiAgdGV4dEFsaWduPzogWFRleHRBbGlnbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5ouW5Yqo5YiX5a6977yM6ZyA6KaB6K6+572u5YiX55qE5Yid5aeL5a695bqmIHdpZHRoXHJcbiAgICogQGVuX1VTIERyYWcgdGhlIGNvbHVtbiB3aWR0aCwgeW91IG5lZWQgdG8gc2V0IHRoZSBpbml0aWFsIHdpZHRoIG9mIHRoZSBjb2x1bW4gd2lkdGhcclxuICAgKi9cclxuICBkcmFnV2lkdGg/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlpLTpg6jmmL7npLogY2hlY2tib3hcclxuICAgKiBAZW5fVVMgSGVhZCBzaG93cyBjaGVja2JveFxyXG4gICAqL1xyXG4gIGhlYWRDaGVja2VkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aS06YOo5pi+56S6IGV4cGFuZFxyXG4gICAqIEBlbl9VUyBIZWFkIHNob3dzIGV4cGFuZFxyXG4gICAqL1xyXG4gIGhlYWRFeHBhbmQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoh6rlrprkuYnlsZ7mgKdcclxuICAgKiBAZW5fVVMgQ3VzdG9tIGF0dHJpYnV0ZXNcclxuICAgKi9cclxuICBbcHJvcGVydHk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDljZXlhYPmoLzphY3nva5cclxuICogQGVuX1VTIENlbGwgY29uZmlnXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhUYWJsZUNlbGxDb25maWcge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJfljZXlhYPmoLzphY3nva5cclxuICAgKiBAZW5fVVMgQ29sdW1uIGNlbGwgY29uZmlnXHJcbiAgICovXHJcbiAgdGhlYWQ/OiBYVGFibGVDZWxsQ29uZmlnUnVsZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5Y2V5YWD5qC86YWN572uXHJcbiAgICogQGVuX1VTIFJvdyBjb25maWdcclxuICAgKi9cclxuICB0Ym9keT86IFhUYWJsZUNlbGxDb25maWdSdWxlO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWNleWFg+agvOmFjee9ruinhOWImVxyXG4gKiBAZW5fVVMgQ2VsbCBjb25maWcgcnVsZXNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlQ2VsbENvbmZpZ1J1bGUge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBncmlkIOW4g+WxgOS4i+WumuS5ieWIl+WuveW6plxyXG4gICAqIEBlbl9VUyBEZWZpbmUgY29sdW1uIHdpZHRoIHVuZGVyIGdyaWQgbGF5b3V0XHJcbiAgICovXHJcbiAgZ3JpZFRlbXBsYXRlQ29sdW1ucz86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5Y2V5YWD5qC86YWN572uXHJcbiAgICogQGVuX1VTIENlbGwgbWVyZ2UgcnVsZXNcclxuICAgKi9cclxuICBjZWxscz86IFhUYWJsZUNlbGxbXTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDljZXlhYPmoLzlkIjlubbphY3nva5cclxuICogQGVuX1VTIENlbGwgbWVyZ2UgcnVsZXNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFRhYmxlQ2VsbCB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS9v+eUqCBncmlkIOW4g+WxgOadpeWQiOW5tuWNleWFg+agvFxyXG4gICAqIEBlbl9VUyBVc2UgZ3JpZCBsYXlvdXQgdG8gbWVyZ2UgY2VsbHNcclxuICAgKi9cclxuICBncmlkQXJlYT86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5ZCN56ewXHJcbiAgICogQGVuX1VTIE5hbWVcclxuICAgKi9cclxuICBsYWJlbD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5a695bqmXHJcbiAgICogQGVuX1VTIFdpZHRoXHJcbiAgICovXHJcbiAgd2lkdGg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbuuWumuWIl++8jOi3neemu+W3pui+ueeahOi3neemu1xyXG4gICAqIEBlbl9VUyBGaXhlZCBjb2x1bW4sIGRpc3RhbmNlIGZyb20gbGVmdFxyXG4gICAqL1xyXG4gIGxlZnQ/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbuuWumuWIl++8jOi3neemu+WPs+i+ueeahOi3neemu1xyXG4gICAqIEBlbl9VUyBGaXhlZCBjb2x1bW4sIGRpc3RhbmNlIGZyb20gcmlnaHRcclxuICAgKi9cclxuICByaWdodD86IG51bWJlcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5a+55bqU5YiX55qEIGlkXHJcbiAgICogQGVuX1VTIFRoZSBpZCBvZiB0aGUgY29ycmVzcG9uZGluZyBjb2x1bW5cclxuICAgKi9cclxuICBpZD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5ouW5Yqo5YiX5a69XHJcbiAgICogQGVuX1VTIERyYWcgdGhlIGNvbHVtbiB3aWR0aFxyXG4gICAqL1xyXG4gIGRyYWdXaWR0aD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWxnuaAp1xyXG4gICAqIEBlbl9VUyBDdXN0b20gYXR0cmlidXRlc1xyXG4gICAqL1xyXG4gIFtwcm9wZXJ0eTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIl+exu+Wei1xyXG4gKiBAZW5fVVMgQ29sdW1uIHR5cGVcclxuICovXHJcbmV4cG9ydCB0eXBlIFhDb2x1bW5UeXBlID0gJ2xhYmVsJyB8ICdpbmRleCcgfCAnY2hlY2tib3gnIHwgJ2V4cGFuZCc7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWIhumhteWZqOS9jee9rlxyXG4gKiBAZW5fVVMgUGFnaW5nIHBvc2l0aW9uXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYUGFnaW5hdGlvblBvc2l0aW9uID0gJ3RvcC1sZWZ0JyB8ICd0b3AtY2VudGVyJyB8ICd0b3AtcmlnaHQnIHwgJ2JvdHRvbS1sZWZ0JyB8ICdib3R0b20tY2VudGVyJyB8ICdib3R0b20tcmlnaHQnO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDmqKHmnb9cclxuICogQGVuX1VTIFRlbXBsYXRlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYVGFibGVUZW1wbGF0ZSA9IHsgW3Byb3BlcnR5OiBzdHJpbmddOiBUZW1wbGF0ZVJlZjxhbnk+IH07XHJcblxyXG4vKipcclxuICogVGFibGUgSGVhZFxyXG4gKiBAc2VsZWN0b3IgeC10YWJsZS1oZWFkXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFRhYmxlSGVhZFByZWZpeCA9ICd4LXRhYmxlLWhlYWQnO1xyXG5cclxuLyoqXHJcbiAqIFRhYmxlIEhlYWQgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhUYWJsZUhlYWRQcm9wZXJ0eSBleHRlbmRzIFhQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+mbhuWQiFxyXG4gICAqIEBlbl9VUyBDb2x1bW4gc2V0XHJcbiAgICovXHJcbiAgQElucHV0KCkgY29sdW1uczogWFRhYmxlQ29sdW1uW10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6auY5bqm77yM5Y2V5L2NIHB4XHJcbiAgICogQGVuX1VTIEhlaWdodCBpbiBweFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXROdW1iZXIoKSByb3dIZWlnaHQ6IFhOdW1iZXIgPSA0MjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIEN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbHVtblRwbDogWFRhYmxlVGVtcGxhdGUgPSB7fTtcclxuICAvKipcclxuICAgKiBAemhfQ04g56uW5ZCR5rua5Yqo5p2h5a695bqmXHJcbiAgICogQGVuX1VTIFZlcnRpY2FsIHNjcm9sbCBiYXIgd2lkdGhcclxuICAgKi9cclxuICBASW5wdXQoKSBzY3JvbGxZV2lkdGg/OiBudW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaoquWQkea7muWKqOadoeWuveW6plxyXG4gICAqIEBlbl9VUyBIb3Jpem9udGFsIHNjcm9sbCBiYXIgd2lkdGhcclxuICAgKi9cclxuICBASW5wdXQoKSBzY3JvbGxYV2lkdGg/OiBudW1iZXIgfCBudWxsO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDljZXlhYPmoLzphY3nva5cclxuICAgKiBAZW5fVVMgQ2VsbCBtZXJnZSBydWxlc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNlbGxDb25maWc/OiBYVGFibGVDZWxsQ29uZmlnUnVsZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRhYmxlIEJvZHlcclxuICogQHNlbGVjdG9yIHgtdGFibGUtYm9keVxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhUYWJsZUJvZHlQcmVmaXggPSAneC10YWJsZS1ib2R5JztcclxuXHJcbi8qKlxyXG4gKiBUYWJsZSBCb2R5IFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYVGFibGVCb2R5UHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDooYzmlbDmja5cclxuICAgKiBAZW5fVVMgUm93IGRhdGFcclxuICAgKi9cclxuICBASW5wdXQoKSBkYXRhOiBYVGFibGVSb3dbXSA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJfpm4blkIhcclxuICAgKiBAZW5fVVMgQ29sdW1uIHNldFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IFhUYWJsZUNvbHVtbltdID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBDdXN0b20gdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBjb2x1bW5UcGw6IFhUYWJsZVRlbXBsYXRlID0ge307XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjemAieS4reihjOaVsOaNrlxyXG4gICAqIEBlbl9VUyBDdXJyZW50bHkgc2VsZWN0ZWQgcm93IGRhdGFcclxuICAgKi9cclxuICBASW5wdXQoKSBhY3RpdmF0ZWRSb3c/OiBYVGFibGVSb3c7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjemAieS4reihjOaUueWPmFxyXG4gICAqIEBlbl9VUyBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHJvdyBjaGFuZ2VzXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGFjdGl2YXRlZFJvd0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WFRhYmxlUm93PigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpq5jluqbvvIzljZXkvY0gcHjjgILorr7nva7kuLogMCDooajnpLrooYzpq5joh6rpgILlupTlhoXlrrnpq5jluqbjgIJcclxuICAgKiBAZW5fVVMgSGVpZ2h0IGluIHB4LiBzZXQgdG8gMCBtZWFucyB0aGF0IHRoZSByb3cgaGVpZ2h0IGlzIGFkYXB0aXZlIHRvIHRoZSBjb250ZW50IGhlaWdodFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXROdW1iZXIoKSByb3dIZWlnaHQ6IFhOdW1iZXIgPSA0MjtcclxuICAvKipcclxuICAgKiBAemhfQ04gYm9keSDmlbDmja7pq5jluqZcclxuICAgKiBAZW5fVVMgYm9keSBkYXRhIGhlaWdodFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXROdW1iZXIoKSBib2R5SGVpZ2h0PzogbnVtYmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlhYHorrjooYzngrnlh7vpgInkuK1cclxuICAgKiBAZW5fVVMgQWxsb3cgcm93IGNsaWNrIHRvIHNlbGVjdFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgYWxsb3dTZWxlY3RSb3c6IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5byA5ZCv6Jma5ouf5rua5YqoXHJcbiAgICogQGVuX1VTIFR1cm4gb24gdmlydHVhbCBzY3JvbGxpbmdcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHZpcnR1YWxTY3JvbGw6IFhCb29sZWFuID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGl0ZW1TaXpl77yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWwXHJcbiAgICogQGVuX1VTIGl0ZW1TaXpl77yMY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIGl0ZW1TaXplOiBudW1iZXIgPSA0MjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6LaF5Ye65Y+v6KeG56qX5Y+j57yT5Yay5Yy655qE5pyA5bCP5YC877yM5a+55bqUIGNkayBzY3JvbGwg5Lit55qE5Y+C5pWwXHJcbiAgICogQGVuX1VTIEV4Y2VlZCB0aGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgdmlzaWJsZSB3aW5kb3cgYnVmZmVyLCBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXJhbWV0ZXJzIGluIGNkayBzY3JvbGxcclxuICAgKi9cclxuICBASW5wdXQoKSBtaW5CdWZmZXJQeDogbnVtYmVyID0gMTAwO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuLLmn5PmlrDmlbDmja7nvJPlhrLljLrnmoTlg4/ntKDvvIzlr7nlupQgY2RrIHNjcm9sbCDkuK3nmoTlj4LmlbBcclxuICAgKiBAZW5fVVMgUmVuZGVyIHRoZSBwaXhlbHMgb2YgdGhlIG5ldyBkYXRhIGJ1ZmZlciwgY29ycmVzcG9uZGluZyB0byB0aGUgcGFyYW1ldGVycyBpbiBjZGsgc2Nyb2xsXHJcbiAgICovXHJcbiAgQElucHV0KCkgbWF4QnVmZmVyUHg6IG51bWJlciA9IDIwMDtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq6YCC5bqU6auY5bqm77yMdGFibGUg6auY5bqm562J5LqO5bGP5bmV6auY5bqm5YeP5o6J5q2k5aSE6K6+572u55qE5pWw5YC8XHJcbiAgICogQGVuX1VTIEFkYXB0aXZlIGhlaWdodCwgdGFibGUgaGVpZ2h0IGlzIGVxdWFsIHRvIHRoZSBzY3JlZW4gaGVpZ2h0IG1pbnVzIHRoZSB2YWx1ZSBzZXQgaGVyZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXROdW1iZXIoKSBhZGFwdGlvbkhlaWdodD86IFhOdW1iZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaWh+aho+mrmOW6pueZvuWIhuavlO+8jOW8ueeql+eZvuWIhuavlOmrmOW6pueUqOWIsFxyXG4gICAqIEBlbl9VUyBEb2N1bWVudCBoZWlnaHQgcGVyY2VudGFnZSwgdXNlZCBieSBwb3AtdXAgd2luZG93IHBlcmNlbnRhZ2UgaGVpZ2h0XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIGRvY1BlcmNlbnQ6IFhOdW1iZXIgPSAxO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmu5rliqjljLrln5/pq5jlrr1cclxuICAgKiBAZW5fVVMgSGVpZ2h0IGFuZCB3aWR0aCBvZiByb2xsaW5nIGFyZWFcclxuICAgKi9cclxuICBASW5wdXQoKSBzY3JvbGw/OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH07XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWNleWFg+agvOmFjee9ruinhOWImVxyXG4gICAqIEBlbl9VUyBDZWxsIGNvbmZpZyBydWxlc1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGNlbGxDb25maWc/OiBYVGFibGVDZWxsQ29uZmlnUnVsZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6KGM5p2h5Lu25qC35byPXHJcbiAgICogQGVuX1VTIFJvdyBjb25kaXRpb24gY2xhc3NcclxuICAgKi9cclxuICBASW5wdXQoKSByb3dDbGFzcz86IChyb3c6IFhUYWJsZVJvdywgaW5kZXg6IG51bWJlcikgPT4geyBbY2xhc3NOYW1lOiBzdHJpbmddOiBib29sZWFuIH07XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagkeW9ouihqOagvOS4i+eahOWxgue6p1xyXG4gICAqIEBlbl9VUyBUaGUgbGV2ZWwgdW5kZXIgdGhlIHRyZWUgdGFibGVcclxuICAgKi9cclxuICBASW5wdXQoKSBsZXZlbDogbnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCR5b2i6KGo5qC85bGV5byA5omA5pyJ6IqC54K5XHJcbiAgICogQGVuX1VTIFRyZWUgdGFibGVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGV4cGFuZGVkQWxsPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWxleW8gOWGheWuuVxyXG4gICAqIEBlbl9VUyBDdXN0b21pemVkIGV4cGFuc2lvbiBjb250ZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgZXhwYW5kVHBsPzogWFRlbXBsYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogVGFibGUgRm9vdFxyXG4gKiBAc2VsZWN0b3IgeC10YWJsZS1mb290XHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFRhYmxlRm9vdFByZWZpeCA9ICd4LXRhYmxlLWZvb3QnO1xyXG5cclxuLyoqXHJcbiAqIFRhYmxlIEZvb3QgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhUYWJsZUZvb3RQcm9wZXJ0eSBleHRlbmRzIFhQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOagvOmhteWwvlxyXG4gICAqIEBlbl9VUyBUYWJsZSBmb290ZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBmb290ZXI/OiBYVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOihqOWktOWSjOihjOmrmO+8jOWNleS9jSBweFxyXG4gICAqIEBlbl9VUyBIZWFkZXIgYW5kIHJvdyBoZWlnaHQsIHVuaXQgcHhcclxuICAgKi9cclxuICBASW5wdXQoKSByb3dIZWlnaHQhOiBudW1iZXI7XHJcbn1cclxuIl19