igniteui-angular 14.1.1 → 14.2.0-alpha.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 (55) hide show
  1. package/esm2020/lib/core/setImmediate.mjs +1 -1
  2. package/esm2020/lib/core/utils.mjs +2 -2
  3. package/esm2020/lib/grids/columns/column-group.component.mjs +1 -1
  4. package/esm2020/lib/grids/columns/column.component.mjs +1 -1
  5. package/esm2020/lib/grids/columns/templates.directive.mjs +29 -1
  6. package/esm2020/lib/grids/common/grid.interface.mjs +1 -1
  7. package/esm2020/lib/grids/filtering/base/grid-filtering-cell.component.mjs +2 -2
  8. package/esm2020/lib/grids/filtering/excel-style/excel-style-search.component.mjs +5 -1
  9. package/esm2020/lib/grids/grid/expandable-cell.component.mjs +3 -3
  10. package/esm2020/lib/grids/grid/grid.component.mjs +1 -1
  11. package/esm2020/lib/grids/grid/grid.directives.mjs +41 -1
  12. package/esm2020/lib/grids/grid-base.directive.mjs +1 -1
  13. package/esm2020/lib/grids/grid-public-row.mjs +2 -2
  14. package/esm2020/lib/grids/grid.rowEdit.directive.mjs +17 -1
  15. package/esm2020/lib/grids/headers/grid-header-row.component.mjs +3 -3
  16. package/esm2020/lib/grids/pivot-grid/pivot-grid.component.mjs +1 -1
  17. package/esm2020/lib/grids/pivot-grid/pivot-grid.directives.mjs +5 -1
  18. package/esm2020/lib/grids/pivot-grid/pivot-grid.interface.mjs +1 -1
  19. package/esm2020/lib/grids/row-drag.directive.mjs +9 -1
  20. package/esm2020/lib/grids/row.directive.mjs +2 -2
  21. package/esm2020/lib/grids/selection/row-selectors.mjs +13 -1
  22. package/esm2020/lib/grids/toolbar/common.mjs +5 -1
  23. package/esm2020/lib/services/excel/excel-exporter.mjs +13 -13
  24. package/esm2020/lib/services/excel/excel-files.mjs +14 -13
  25. package/esm2020/lib/services/excel/excel-interfaces.mjs +1 -1
  26. package/fesm2015/igniteui-angular.mjs +146 -30
  27. package/fesm2015/igniteui-angular.mjs.map +1 -1
  28. package/fesm2020/igniteui-angular.mjs +146 -30
  29. package/fesm2020/igniteui-angular.mjs.map +1 -1
  30. package/lib/core/setImmediate.d.ts +8 -3
  31. package/lib/grids/columns/column-group.component.d.ts +2 -2
  32. package/lib/grids/columns/column.component.d.ts +19 -19
  33. package/lib/grids/columns/templates.directive.d.ts +22 -14
  34. package/lib/grids/common/grid.interface.d.ts +97 -13
  35. package/lib/grids/filtering/base/grid-filtering-cell.component.d.ts +1 -0
  36. package/lib/grids/filtering/excel-style/excel-style-search.component.d.ts +3 -2
  37. package/lib/grids/grid/grid.component.d.ts +8 -11
  38. package/lib/grids/grid/grid.directives.d.ts +13 -2
  39. package/lib/grids/grid-base.directive.d.ts +24 -24
  40. package/lib/grids/grid.rowEdit.directive.d.ts +5 -1
  41. package/lib/grids/headers/grid-header-row.component.d.ts +3 -11
  42. package/lib/grids/hierarchical-grid/hierarchical-grid.component.d.ts +3 -3
  43. package/lib/grids/pivot-grid/pivot-grid.component.d.ts +3 -3
  44. package/lib/grids/pivot-grid/pivot-grid.directives.d.ts +4 -2
  45. package/lib/grids/pivot-grid/pivot-grid.interface.d.ts +3 -0
  46. package/lib/grids/row-drag.directive.d.ts +5 -2
  47. package/lib/grids/selection/row-selectors.d.ts +10 -6
  48. package/lib/grids/toolbar/common.d.ts +1 -0
  49. package/lib/services/excel/excel-exporter.d.ts +2 -5
  50. package/lib/services/excel/excel-files.d.ts +12 -13
  51. package/lib/services/excel/excel-interfaces.d.ts +1 -2
  52. package/package.json +3 -3
  53. package/schematics/ng-add/index.spec.js +1 -1
  54. package/schematics/tsconfig.tsbuildinfo +1 -1
  55. package/schematics/utils/dependency-handler.js +2 -2
@@ -4,6 +4,10 @@ export class IgxFilterCellTemplateDirective {
4
4
  constructor(template) {
5
5
  this.template = template;
6
6
  }
7
+ static ngTemplateContextGuard(_directive, context) {
8
+ return true;
9
+ }
10
+ ;
7
11
  }
8
12
  IgxFilterCellTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: IgxFilterCellTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
9
13
  IgxFilterCellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: IgxFilterCellTemplateDirective, selector: "[igxFilterCellTemplate]", ngImport: i0 });
@@ -17,6 +21,10 @@ export class IgxCellTemplateDirective {
17
21
  constructor(template) {
18
22
  this.template = template;
19
23
  }
24
+ static ngTemplateContextGuard(_directive, context) {
25
+ return true;
26
+ }
27
+ ;
20
28
  }
21
29
  IgxCellTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: IgxCellTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
22
30
  IgxCellTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: IgxCellTemplateDirective, selector: "[igxCell]", ngImport: i0 });
@@ -30,6 +38,10 @@ export class IgxCellValidationErrorDirective {
30
38
  constructor(template) {
31
39
  this.template = template;
32
40
  }
41
+ static ngTemplateContextGuard(_directive, context) {
42
+ return true;
43
+ }
44
+ ;
33
45
  }
34
46
  IgxCellValidationErrorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: IgxCellValidationErrorDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
35
47
  IgxCellValidationErrorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: IgxCellValidationErrorDirective, selector: "[igxCellValidationError]", ngImport: i0 });
@@ -43,6 +55,10 @@ export class IgxCellHeaderTemplateDirective {
43
55
  constructor(template) {
44
56
  this.template = template;
45
57
  }
58
+ static ngTemplateContextGuard(_directive, context) {
59
+ return true;
60
+ }
61
+ ;
46
62
  }
47
63
  IgxCellHeaderTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: IgxCellHeaderTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
48
64
  IgxCellHeaderTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: IgxCellHeaderTemplateDirective, selector: "[igxHeader]", ngImport: i0 });
@@ -72,6 +88,10 @@ export class IgxCellEditorTemplateDirective {
72
88
  constructor(template) {
73
89
  this.template = template;
74
90
  }
91
+ static ngTemplateContextGuard(_directive, context) {
92
+ return true;
93
+ }
94
+ ;
75
95
  }
76
96
  IgxCellEditorTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: IgxCellEditorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
77
97
  IgxCellEditorTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: IgxCellEditorTemplateDirective, selector: "[igxCellEditor]", ngImport: i0 });
@@ -85,6 +105,10 @@ export class IgxCollapsibleIndicatorTemplateDirective {
85
105
  constructor(template) {
86
106
  this.template = template;
87
107
  }
108
+ static ngTemplateContextGuard(_directive, context) {
109
+ return true;
110
+ }
111
+ ;
88
112
  }
89
113
  IgxCollapsibleIndicatorTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: IgxCollapsibleIndicatorTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
90
114
  IgxCollapsibleIndicatorTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: IgxCollapsibleIndicatorTemplateDirective, selector: "[igxCollapsibleIndicator]", ngImport: i0 });
@@ -98,6 +122,10 @@ export class IgxSummaryTemplateDirective {
98
122
  constructor(template) {
99
123
  this.template = template;
100
124
  }
125
+ static ngTemplateContextGuard(_directive, context) {
126
+ return true;
127
+ }
128
+ ;
101
129
  }
102
130
  IgxSummaryTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: IgxSummaryTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
103
131
  IgxSummaryTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: IgxSummaryTemplateDirective, selector: "[igxSummary]", ngImport: i0 });
@@ -107,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
107
135
  selector: '[igxSummary]'
108
136
  }]
109
137
  }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9jb2x1bW5zL3RlbXBsYXRlcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFNdkQsTUFBTSxPQUFPLDhCQUE4QjtJQUN2QyxZQUFtQixRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUFHLENBQUM7OzJIQUR4Qyw4QkFBOEI7K0dBQTlCLDhCQUE4QjsyRkFBOUIsOEJBQThCO2tCQUgxQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7aUJBQ3RDOztBQVFELE1BQU0sT0FBTyx3QkFBd0I7SUFFakMsWUFBbUIsUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFBSSxDQUFDOztxSEFGekMsd0JBQXdCO3lHQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFIcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsV0FBVztpQkFDeEI7O0FBU0QsTUFBTSxPQUFPLCtCQUErQjtJQUN4QyxZQUFtQixRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUFJLENBQUM7OzRIQUR6QywrQkFBK0I7Z0hBQS9CLCtCQUErQjsyRkFBL0IsK0JBQStCO2tCQUgzQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwwQkFBMEI7aUJBQ3ZDOztBQVFELE1BQU0sT0FBTyw4QkFBOEI7SUFFdkMsWUFBbUIsUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFBSSxDQUFDOzsySEFGekMsOEJBQThCOytHQUE5Qiw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFIMUMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtpQkFDMUI7O0FBTUQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sOEJBQThCO0lBRXZDLFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQUksQ0FBQzs7MkhBRnpDLDhCQUE4QjsrR0FBOUIsOEJBQThCOzJGQUE5Qiw4QkFBOEI7a0JBSDFDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7aUJBQzFCOztBQVNELE1BQU0sT0FBTyw4QkFBOEI7SUFFdkMsWUFBbUIsUUFBMEI7UUFBMUIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7SUFBSSxDQUFDOzsySEFGekMsOEJBQThCOytHQUE5Qiw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFIMUMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM5Qjs7QUFTRCxNQUFNLE9BQU8sd0NBQXdDO0lBRWpELFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQUksQ0FBQzs7cUlBRnpDLHdDQUF3Qzt5SEFBeEMsd0NBQXdDOzJGQUF4Qyx3Q0FBd0M7a0JBSHBELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtpQkFDeEM7O0FBU0QsTUFBTSxPQUFPLDJCQUEyQjtJQUVwQyxZQUFtQixRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUFJLENBQUM7O3dIQUZ6QywyQkFBMkI7NEdBQTNCLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxjQUFjO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hGaWx0ZXJDZWxsVGVtcGxhdGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hGaWx0ZXJDZWxsVGVtcGxhdGVEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4Q2VsbF0nXG59KVxuZXhwb3J0IGNsYXNzIElneENlbGxUZW1wbGF0ZURpcmVjdGl2ZSB7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHsgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hDZWxsVmFsaWRhdGlvbkVycm9yXSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q2VsbFZhbGlkYXRpb25FcnJvckRpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7IH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4SGVhZGVyXSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q2VsbEhlYWRlclRlbXBsYXRlRGlyZWN0aXZlIHtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PikgeyB9XG5cbn1cbi8qKlxuICogQGhpZGRlblxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hGb290ZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hDZWxsRm9vdGVyVGVtcGxhdGVEaXJlY3RpdmUge1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7IH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4Q2VsbEVkaXRvcl0nXG59KVxuZXhwb3J0IGNsYXNzIElneENlbGxFZGl0b3JUZW1wbGF0ZURpcmVjdGl2ZSB7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHsgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hDb2xsYXBzaWJsZUluZGljYXRvcl0nXG59KVxuZXhwb3J0IGNsYXNzIElneENvbGxhcHNpYmxlSW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUge1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7IH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4U3VtbWFyeV0nXG59KVxuZXhwb3J0IGNsYXNzIElneFN1bW1hcnlUZW1wbGF0ZURpcmVjdGl2ZSB7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHsgfVxufVxuIl19
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGVzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy9jb2x1bW5zL3RlbXBsYXRlcy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQzs7QUFPdkQsTUFBTSxPQUFPLDhCQUE4QjtJQUN2QyxZQUFtQixRQUErQztRQUEvQyxhQUFRLEdBQVIsUUFBUSxDQUF1QztJQUFJLENBQUM7SUFFaEUsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFVBQTBDLEVBQzNFLE9BQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQSxDQUFDOzsySEFOTyw4QkFBOEI7K0dBQTlCLDhCQUE4QjsyRkFBOUIsOEJBQThCO2tCQUgxQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7aUJBQ3RDOztBQWFELE1BQU0sT0FBTyx3QkFBd0I7SUFDakMsWUFBbUIsUUFBNkM7UUFBN0MsYUFBUSxHQUFSLFFBQVEsQ0FBcUM7SUFBSSxDQUFDO0lBRTlELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxVQUFvQyxFQUNyRSxPQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQUEsQ0FBQzs7cUhBTk8sd0JBQXdCO3lHQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFIcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsV0FBVztpQkFDeEI7O0FBYUQsTUFBTSxPQUFPLCtCQUErQjtJQUN4QyxZQUFtQixRQUE2QztRQUE3QyxhQUFRLEdBQVIsUUFBUSxDQUFxQztJQUFJLENBQUM7SUFFOUQsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFVBQTJDLEVBQzVFLE9BQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQSxDQUFDOzs0SEFOTywrQkFBK0I7Z0hBQS9CLCtCQUErQjsyRkFBL0IsK0JBQStCO2tCQUgzQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwwQkFBMEI7aUJBQ3ZDOztBQWFELE1BQU0sT0FBTyw4QkFBOEI7SUFDdkMsWUFBbUIsUUFBK0M7UUFBL0MsYUFBUSxHQUFSLFFBQVEsQ0FBdUM7SUFBSSxDQUFDO0lBRWhFLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxVQUEwQyxFQUMzRSxPQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQUEsQ0FBQzs7MkhBTk8sOEJBQThCOytHQUE5Qiw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFIMUMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtpQkFDMUI7O0FBVUQ7O0dBRUc7QUFJSCxNQUFNLE9BQU8sOEJBQThCO0lBQ3ZDLFlBQW1CLFFBQTBCO1FBQTFCLGFBQVEsR0FBUixRQUFRLENBQWtCO0lBQUksQ0FBQzs7MkhBRHpDLDhCQUE4QjsrR0FBOUIsOEJBQThCOzJGQUE5Qiw4QkFBOEI7a0JBSDFDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7aUJBQzFCOztBQVFELE1BQU0sT0FBTyw4QkFBOEI7SUFDdkMsWUFBbUIsUUFBNkM7UUFBN0MsYUFBUSxHQUFSLFFBQVEsQ0FBcUM7SUFBSSxDQUFDO0lBRTlELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxVQUEwQyxFQUMzRSxPQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQUEsQ0FBQzs7MkhBTk8sOEJBQThCOytHQUE5Qiw4QkFBOEI7MkZBQTlCLDhCQUE4QjtrQkFIMUMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsaUJBQWlCO2lCQUM5Qjs7QUFhRCxNQUFNLE9BQU8sd0NBQXdDO0lBQ2pELFlBQW1CLFFBQStDO1FBQS9DLGFBQVEsR0FBUixRQUFRLENBQXVDO0lBQUksQ0FBQztJQUVoRSxNQUFNLENBQUMsc0JBQXNCLENBQUMsVUFBb0QsRUFDckYsT0FBZ0I7UUFDaEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUFBLENBQUM7O3FJQU5PLHdDQUF3Qzt5SEFBeEMsd0NBQXdDOzJGQUF4Qyx3Q0FBd0M7a0JBSHBELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtpQkFDeEM7O0FBYUQsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyxZQUFtQixRQUFnRDtRQUFoRCxhQUFRLEdBQVIsUUFBUSxDQUF3QztJQUFJLENBQUM7SUFFakUsTUFBTSxDQUFDLHNCQUFzQixDQUFDLFVBQXVDLEVBQ3hFLE9BQWdCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQSxDQUFDOzt3SEFOTywyQkFBMkI7NEdBQTNCLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQUh2QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxjQUFjO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneENlbGxUZW1wbGF0ZUNvbnRleHQsIElneENvbHVtblRlbXBsYXRlQ29udGV4dCwgSWd4U3VtbWFyeVRlbXBsYXRlQ29udGV4dCB9IGZyb20gJy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4RmlsdGVyQ2VsbFRlbXBsYXRlXSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4RmlsdGVyQ2VsbFRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneENvbHVtblRlbXBsYXRlQ29udGV4dD4pIHsgfVxuXG4gICAgcHVibGljIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXJlY3RpdmU6IElneEZpbHRlckNlbGxUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgSWd4Q29sdW1uVGVtcGxhdGVDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4Q2VsbF0nXG59KVxuZXhwb3J0IGNsYXNzIElneENlbGxUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hDZWxsVGVtcGxhdGVDb250ZXh0PikgeyB9XG5cbiAgICBwdWJsaWMgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoX2RpcmVjdGl2ZTogSWd4Q2VsbFRlbXBsYXRlRGlyZWN0aXZlLFxuICAgICAgICBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBJZ3hDZWxsVGVtcGxhdGVDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4Q2VsbFZhbGlkYXRpb25FcnJvcl0nXG59KVxuZXhwb3J0IGNsYXNzIElneENlbGxWYWxpZGF0aW9uRXJyb3JEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4Q2VsbFRlbXBsYXRlQ29udGV4dD4pIHsgfVxuXG4gICAgcHVibGljIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF9kaXJlY3RpdmU6IElneENlbGxWYWxpZGF0aW9uRXJyb3JEaXJlY3RpdmUsXG4gICAgICAgIGNvbnRleHQ6IHVua25vd24pOiBjb250ZXh0IGlzIElneENlbGxUZW1wbGF0ZUNvbnRleHQge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hIZWFkZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBJZ3hDZWxsSGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4Q29sdW1uVGVtcGxhdGVDb250ZXh0PikgeyB9XG5cbiAgICBwdWJsaWMgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoX2RpcmVjdGl2ZTogSWd4Q2VsbEhlYWRlclRlbXBsYXRlRGlyZWN0aXZlLFxuICAgICAgICBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBJZ3hDb2x1bW5UZW1wbGF0ZUNvbnRleHQge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xufVxuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4Rm9vdGVyXSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q2VsbEZvb3RlclRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHsgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hDZWxsRWRpdG9yXSdcbn0pXG5leHBvcnQgY2xhc3MgSWd4Q2VsbEVkaXRvclRlbXBsYXRlRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneENlbGxUZW1wbGF0ZUNvbnRleHQ+KSB7IH1cblxuICAgIHB1YmxpYyBzdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFyZChfZGlyZWN0aXZlOiBJZ3hDZWxsRWRpdG9yVGVtcGxhdGVEaXJlY3RpdmUsXG4gICAgICAgIGNvbnRleHQ6IHVua25vd24pOiBjb250ZXh0IGlzIElneENlbGxUZW1wbGF0ZUNvbnRleHQge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tpZ3hDb2xsYXBzaWJsZUluZGljYXRvcl0nXG59KVxuZXhwb3J0IGNsYXNzIElneENvbGxhcHNpYmxlSW5kaWNhdG9yVGVtcGxhdGVEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyB0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4Q29sdW1uVGVtcGxhdGVDb250ZXh0PikgeyB9XG5cbiAgICBwdWJsaWMgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoX2RpcmVjdGl2ZTogSWd4Q29sbGFwc2libGVJbmRpY2F0b3JUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgICAgICAgY29udGV4dDogdW5rbm93bik6IGNvbnRleHQgaXMgSWd4Q29sdW1uVGVtcGxhdGVDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbaWd4U3VtbWFyeV0nXG59KVxuZXhwb3J0IGNsYXNzIElneFN1bW1hcnlUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hTdW1tYXJ5VGVtcGxhdGVDb250ZXh0PikgeyB9XG5cbiAgICBwdWJsaWMgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoX2RpcmVjdGl2ZTogSWd4U3VtbWFyeVRlbXBsYXRlRGlyZWN0aXZlLFxuICAgICAgICBjb250ZXh0OiB1bmtub3duKTogY29udGV4dCBpcyBJZ3hTdW1tYXJ5VGVtcGxhdGVDb250ZXh0IHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  export const IGX_GRID_BASE = new InjectionToken('IgxGridBaseToken');
3
3
  export const IGX_GRID_SERVICE_BASE = new InjectionToken('IgxGridServiceBaseToken');
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL2dyaWQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBK0MsY0FBYyxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQThCdEksTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFXLGtCQUFrQixDQUFDLENBQUM7QUFDOUUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQWtCLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXJNb2RlLCBHcmlkUGFnaW5nTW9kZSwgR3JpZFNlbGVjdGlvbk1vZGUsIEdyaWRTdW1tYXJ5Q2FsY3VsYXRpb25Nb2RlLCBHcmlkU3VtbWFyeVBvc2l0aW9uLCBHcmlkVmFsaWRhdGlvblRyaWdnZXIgfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7XG4gICAgSVNlYXJjaEluZm8sIElHcmlkQ2VsbEV2ZW50QXJncywgSVJvd1NlbGVjdGlvbkV2ZW50QXJncywgSUNvbHVtblNlbGVjdGlvbkV2ZW50QXJncywgSUdyaWRFZGl0RXZlbnRBcmdzLFxuICAgIElQaW5Db2x1bW5DYW5jZWxsYWJsZUV2ZW50QXJncywgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2VkRXZlbnRBcmdzLCBJQ29sdW1uVmlzaWJpbGl0eUNoYW5naW5nRXZlbnRBcmdzLFxuICAgIElSb3dEcmFnRW5kRXZlbnRBcmdzLCBJQ29sdW1uTW92aW5nU3RhcnRFdmVudEFyZ3MsIElDb2x1bW5Nb3ZpbmdFbmRFdmVudEFyZ3MsXG4gICAgSUdyaWRFZGl0RG9uZUV2ZW50QXJncywgSVJvd0RhdGFFdmVudEFyZ3MsIElHcmlkS2V5ZG93bkV2ZW50QXJncywgSVJvd0RyYWdTdGFydEV2ZW50QXJncyxcbiAgICBJQ29sdW1uTW92aW5nRXZlbnRBcmdzLCBJUGluQ29sdW1uRXZlbnRBcmdzLFxuICAgIElBY3RpdmVOb2RlQ2hhbmdlRXZlbnRBcmdzLFxuICAgIElDZWxsUG9zaXRpb24sIElGaWx0ZXJpbmdFdmVudEFyZ3MsIElDb2x1bW5SZXNpemVFdmVudEFyZ3MsIElSb3dUb2dnbGVFdmVudEFyZ3MsIElHcmlkVG9vbGJhckV4cG9ydEV2ZW50QXJnc1xufSBmcm9tICcuLi9jb21tb24vZXZlbnRzJztcbmltcG9ydCB7IERpc3BsYXlEZW5zaXR5LCBJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9jb3JlL2Rpc3BsYXlEZW5zaXR5JztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuLCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUsIElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb25zLXRyZWUnO1xuaW1wb3J0IHsgSUdyaWRSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4vZ3JpZC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgSUdyb3VwaW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR3JvdXBCeVJlY29yZCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LXJlY29yZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlFeHBhbmRTdGF0ZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LWV4cGFuZC1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4UGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4Q2VsbCwgSWd4RWRpdFJvdyB9IGZyb20gJy4vY3J1ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZWxlY3Rpb25SYW5nZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgRmlsdGVyaW5nTG9naWMgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElGaWx0ZXJpbmdTdHJhdGVneSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgRHJvcFBvc2l0aW9uLCBJZ3hDb2x1bW5Nb3ZpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vbW92aW5nL21vdmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmUsIElneFRvZ2dsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9nZ2xlL3RvZ2dsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSVRyZWVHcmlkUmVjb3JkIH0gZnJvbSAnLi4vdHJlZS1ncmlkL3RyZWUtZ3JpZC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFN0YXRlLCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgR3JpZENvbHVtbkRhdGFUeXBlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2RhdGEtdXRpbCc7XG5pbXBvcnQgeyBJZ3hGaWx0ZXJpbmdPcGVyYW5kIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1jb25kaXRpb24nO1xuaW1wb3J0IHsgSUNvbHVtblBpcGVBcmdzLCBJU29ydGluZ09wdGlvbnMsIE1STFJlc2l6ZUNvbHVtbkluZm8gfSBmcm9tICcuLi9jb2x1bW5zL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSWd4U3VtbWFyeVJlc3VsdCB9IGZyb20gJy4uL3N1bW1hcmllcy9ncmlkLXN1bW1hcnknO1xuaW1wb3J0IHsgSVNvcnRpbmdFeHByZXNzaW9uLCBJU29ydGluZ1N0cmF0ZWd5LCBTb3J0aW5nRGlyZWN0aW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL3NvcnRpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgSUdyaWRHcm91cGluZ1N0cmF0ZWd5LCBJR3JpZFNvcnRpbmdTdHJhdGVneSB9IGZyb20gJy4vc3RyYXRlZ3knO1xuaW1wb3J0IHsgSUZvck9mU3RhdGUsIElneEdyaWRGb3JPZkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9yLW9mL2Zvcl9vZi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT3ZlcmxheVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3ZlcmxheS91dGlsaXRpZXMnO1xuaW1wb3J0IHsgSVBpbm5pbmdDb25maWcgfSBmcm9tICcuLi9ncmlkLmNvbW1vbic7XG5pbXBvcnQgeyBJRGltZW5zaW9uc0NoYW5nZSwgSVBpdm90Q29uZmlndXJhdGlvbiwgSVBpdm90RGltZW5zaW9uLCBJUGl2b3RLZXlzLCBJUGl2b3RWYWx1ZSwgSVZhbHVlc0NoYW5nZSwgUGl2b3REaW1lbnNpb25UeXBlIH0gZnJvbSAnLi4vcGl2b3QtZ3JpZC9waXZvdC1ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRGF0YUNsb25lU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS1jbG9uZS1zdHJhdGVneSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJZ3hHcmlkVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9ncmlkL2dyaWQtdmFsaWRhdGlvbi5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IElHWF9HUklEX0JBU0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48R3JpZFR5cGU+KCdJZ3hHcmlkQmFzZVRva2VuJyk7XG5leHBvcnQgY29uc3QgSUdYX0dSSURfU0VSVklDRV9CQVNFID0gbmV3IEluamVjdGlvblRva2VuPEdyaWRTZXJ2aWNlVHlwZT4oJ0lneEdyaWRTZXJ2aWNlQmFzZVRva2VuJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBhdGhTZWdtZW50IHtcbiAgICByb3dJRDogYW55O1xuICAgIHJvd0lzbGFuZEtleTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkRGF0YUJpbmRhYmxlIHtcbiAgICBkYXRhOiBhbnlbXSB8IG51bGw7XG4gICAgZmlsdGVyZWREYXRhOiBhbnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZWxsVHlwZSB7XG4gICAgdmFsdWU6IGFueTtcbiAgICBlZGl0VmFsdWU6IGFueTtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICBhY3RpdmU6IGJvb2xlYW47XG4gICAgZWRpdGFibGU6IGJvb2xlYW47XG4gICAgZWRpdE1vZGU6IGJvb2xlYW47XG4gICAgbmF0aXZlRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICAgIGNvbHVtbjogQ29sdW1uVHlwZTtcbiAgICByb3c6IFJvd1R5cGU7XG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgaWQ/OiB7IHJvd0lEOiBhbnk7IGNvbHVtbklEOiBudW1iZXI7IHJvd0luZGV4OiBudW1iZXIgfTtcbiAgICBjZWxsSUQ/OiBhbnk7XG4gICAgcmVhZG9ubHkgdmFsaWRhdGlvbj86IElHcmlkVmFsaWRhdGlvblN0YXRlO1xuICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgICB0aXRsZT86IGFueTtcbiAgICB3aWR0aDogc3RyaW5nO1xuICAgIHZpc2libGVDb2x1bW5JbmRleD86IG51bWJlcjtcbiAgICB1cGRhdGU6ICh2YWx1ZTogYW55KSA9PiB2b2lkO1xuICAgIHNldEVkaXRNb2RlPyh2YWx1ZTogYm9vbGVhbik6IHZvaWQ7XG4gICAgY2FsY3VsYXRlU2l6ZVRvRml0PyhyYW5nZTogYW55KTogbnVtYmVyO1xuICAgIGFjdGl2YXRlPyhldmVudDogRm9jdXNFdmVudCB8IEtleWJvYXJkRXZlbnQpOiB2b2lkO1xuICAgIG9uRG91YmxlQ2xpY2s/KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZDtcbiAgICBvbkNsaWNrPyhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm93VHlwZSB7XG4gICAgbmF0aXZlRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgdmlld0luZGV4OiBudW1iZXI7XG4gICAgaXNHcm91cEJ5Um93PzogYm9vbGVhbjtcbiAgICBpc1N1bW1hcnlSb3c/OiBib29sZWFuO1xuICAgIHN1bW1hcmllcz86IE1hcDxzdHJpbmcsIElneFN1bW1hcnlSZXN1bHRbXT47XG4gICAgZ3JvdXBSb3c/OiBJR3JvdXBCeVJlY29yZDtcbiAgICBrZXk/OiBhbnk7XG4gICAgcmVhZG9ubHkgdmFsaWRhdGlvbj86IElHcmlkVmFsaWRhdGlvblN0YXRlO1xuICAgIGRhdGE/OiBhbnk7XG4gICAgY2VsbHM/OiBRdWVyeUxpc3Q8Q2VsbFR5cGU+IHwgQ2VsbFR5cGVbXTtcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XG4gICAgdmlydERpclJvdz86IElneEdyaWRGb3JPZkRpcmVjdGl2ZTxhbnk+O1xuICAgIHBpbm5lZD86IGJvb2xlYW47XG4gICAgc2VsZWN0ZWQ/OiBib29sZWFuO1xuICAgIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgICBkZWxldGVkPzogYm9vbGVhbjtcbiAgICBpbkVkaXRNb2RlPzogYm9vbGVhbjtcbiAgICBjaGlsZHJlbj86IFJvd1R5cGVbXTtcbiAgICBwYXJlbnQ/OiBSb3dUeXBlO1xuICAgIGhhc0NoaWxkcmVuPzogYm9vbGVhbjtcbiAgICB0cmVlUm93PzogSVRyZWVHcmlkUmVjb3JkO1xuICAgIGFkZFJvd1VJPzogYm9vbGVhbjtcbiAgICBmb2N1c2VkPzogYm9vbGVhbjtcbiAgICBncmlkOiBHcmlkVHlwZTtcbiAgICBvblJvd1NlbGVjdG9yQ2xpY2s/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgb25DbGljaz86IChldmVudDogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgICBiZWdpbkFkZFJvdz86ICgpID0+IHZvaWQ7XG4gICAgdXBkYXRlPzogKHZhbHVlOiBhbnkpID0+IHZvaWQ7XG4gICAgZGVsZXRlPzogKCkgPT4gYW55O1xuICAgIHBpbj86ICgpID0+IHZvaWQ7XG4gICAgdW5waW4/OiAoKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtblR5cGUge1xuICAgIGdyaWQ6IEdyaWRUeXBlO1xuICAgIGNoaWxkcmVuOiBRdWVyeUxpc3Q8Q29sdW1uVHlwZT47XG4gICAgYWxsQ2hpbGRyZW46IENvbHVtblR5cGVbXTtcbiAgICAvLyBUWVBFXG4gICAgaGVhZGVyR3JvdXA6IGFueTtcbiAgICAvLyBUWVBFXG4gICAgaGVhZGVyQ2VsbDogYW55O1xuICAgIHZhbGlkYXRvcnM6IGFueVtdO1xuXG4gICAgaGVhZGVyVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgY29sbGFwc2libGVJbmRpY2F0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgaGVhZGVyQ2xhc3NlczogYW55O1xuICAgIGhlYWRlclN0eWxlczogYW55O1xuICAgIGhlYWRlckdyb3VwQ2xhc3NlczogYW55O1xuICAgIGhlYWRlckdyb3VwU3R5bGVzOiBhbnk7XG5cbiAgICBjYWxjV2lkdGg6IGFueTtcbiAgICBtaW5XaWR0aFB4OiBudW1iZXI7XG4gICAgbWF4V2lkdGhQeDogbnVtYmVyO1xuICAgIG1pbldpZHRoOiBzdHJpbmc7XG4gICAgbWF4V2lkdGg6IHN0cmluZztcbiAgICBtaW5XaWR0aFBlcmNlbnQ6IG51bWJlcjtcbiAgICBtYXhXaWR0aFBlcmNlbnQ6IG51bWJlcjtcblxuICAgIGZpZWxkOiBzdHJpbmc7XG4gICAgaGVhZGVyPzogc3RyaW5nO1xuICAgIGluZGV4OiBudW1iZXI7XG4gICAgZGF0YVR5cGU6IEdyaWRDb2x1bW5EYXRhVHlwZTtcbiAgICBpbmxpbmVFZGl0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICB2aXNpYmxlSW5kZXg6IG51bWJlcjtcbiAgICBjb2xsYXBzaWJsZT86IGJvb2xlYW47XG4gICAgZWRpdGFibGU6IGJvb2xlYW47XG4gICAgcmVzaXphYmxlOiBib29sZWFuO1xuICAgIHNlYXJjaGFibGU6IGJvb2xlYW47XG4gICAgY29sdW1uR3JvdXA6IGJvb2xlYW47XG4gICAgLyoqIEBkZXByZWNhdGVkIGluIHZlcnNpb24gMTMuMS4wLiBVc2UgYElneEdyaWRDb21wb25lbnQubW92aW5nYCBpbnN0ZWFkLiovXG4gICAgbW92YWJsZTogYm9vbGVhbjtcbiAgICBncm91cGFibGU6IGJvb2xlYW47XG4gICAgc29ydGFibGU6IGJvb2xlYW47XG4gICAgZmlsdGVyYWJsZTogYm9vbGVhbjtcbiAgICBoaWRkZW46IGJvb2xlYW47XG4gICAgZGlzYWJsZVBpbm5pbmc6IGJvb2xlYW47XG4gICAgZGlzYWJsZUhpZGluZzogYm9vbGVhbjtcbiAgICBzb3J0U3RyYXRlZ3k6IElTb3J0aW5nU3RyYXRlZ3k7XG4gICAgc29ydGluZ0lnbm9yZUNhc2U6IGJvb2xlYW47XG4gICAgZmlsdGVyQ2VsbDogYW55O1xuICAgIGZpbHRlcnM6IElneEZpbHRlcmluZ09wZXJhbmQ7XG4gICAgZmlsdGVyaW5nSWdub3JlQ2FzZTogYm9vbGVhbjtcbiAgICBmaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU6IEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZTtcbiAgICBoYXNTdW1tYXJ5OiBib29sZWFuO1xuICAgIHN1bW1hcmllczogYW55O1xuICAgIHN1bW1hcnlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBwaW5uZWQ6IGJvb2xlYW47XG4gICAgZXhwYW5kZWQ6IGJvb2xlYW47XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICBjb2x1bW5MYXlvdXQ6IGJvb2xlYW47XG4gICAgbGV2ZWw6IG51bWJlcjtcbiAgICByb3dTdGFydDogbnVtYmVyO1xuICAgIHJvd0VuZDogbnVtYmVyO1xuICAgIGNvbFN0YXJ0OiBudW1iZXI7XG4gICAgY29sRW5kOiBudW1iZXI7XG4gICAgZ3JpZFJvd1NwYW46IG51bWJlcjtcbiAgICBncmlkQ29sdW1uU3BhbjogbnVtYmVyO1xuICAgIGNvbHVtbkxheW91dENoaWxkOiBib29sZWFuO1xuICAgIHdpZHRoOiBzdHJpbmc7XG4gICAgdG9wTGV2ZWxQYXJlbnQ/OiBDb2x1bW5UeXBlO1xuICAgIHBhcmVudD86IENvbHVtblR5cGU7XG4gICAgcGlwZUFyZ3M6IElDb2x1bW5QaXBlQXJncztcbiAgICBoYXNOZXN0ZWRQYXRoOiBib29sZWFuO1xuICAgIGRlZmF1bHRUaW1lRm9ybWF0OiBzdHJpbmc7XG4gICAgZGVmYXVsdERhdGVUaW1lRm9ybWF0OiBzdHJpbmc7XG4gICAgYWRkaXRpb25hbFRlbXBsYXRlQ29udGV4dDogYW55O1xuICAgIGlzTGFzdFBpbm5lZDogYm9vbGVhbjtcbiAgICBpc0ZpcnN0UGlubmVkOiBib29sZWFuO1xuICAgIGFwcGx5U2VsZWN0YWJsZUNsYXNzOiBib29sZWFuO1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgZ3JvdXBpbmdDb21wYXJlcjogKGE6IGFueSwgYjogYW55KSA9PiBudW1iZXI7XG5cbiAgICBmaWx0ZXJDZWxsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBtb3ZlKGluZGV4OiBudW1iZXIpOiB2b2lkO1xuICAgIGdldEF1dG9TaXplKCk6IHN0cmluZztcbiAgICBnZXRSZXNpemFibGVDb2xVbmRlckVuZCgpOiBNUkxSZXNpemVDb2x1bW5JbmZvW107XG4gICAgZ2V0Q2VsbFdpZHRoKCk6IHN0cmluZztcbiAgICBnZXRHcmlkVGVtcGxhdGUoaXNSb3c6IGJvb2xlYW4pOiBzdHJpbmc7XG4gICAgdG9nZ2xlVmlzaWJpbGl0eSh2YWx1ZT86IGJvb2xlYW4pOiB2b2lkO1xuICAgIGZvcm1hdHRlcih2YWx1ZTogYW55LCByb3dEYXRhPzogYW55KTogYW55O1xuICAgIHBvcHVsYXRlVmlzaWJsZUluZGV4ZXM/KCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRGb3JtR3JvdXBDcmVhdGVkRXZlbnRBcmdzIHtcbiAgICBmb3JtR3JvdXA6IEZvcm1Hcm91cCxcbiAgICBvd25lcjogR3JpZFR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JpZFZhbGlkYXRpb25TdGF0dXNFdmVudEFyZ3Mge1xuICAgIHN0YXR1czogVmFsaWRhdGlvblN0YXR1cyxcbiAgICBvd25lcjogR3JpZFR5cGVcbn1cblxuZXhwb3J0IHR5cGUgVmFsaWRhdGlvblN0YXR1cyA9ICdWQUxJRCcgfCAnSU5WQUxJRCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRWYWxpZGF0aW9uU3RhdGUge1xuICAgIHJlYWRvbmx5IHN0YXR1czogVmFsaWRhdGlvblN0YXR1cztcbiAgICByZWFkb25seSBlcnJvcnM/OiBWYWxpZGF0aW9uRXJyb3JzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElSZWNvcmRWYWxpZGF0aW9uU3RhdGUgZXh0ZW5kcyBJR3JpZFZhbGlkYXRpb25TdGF0ZSB7XG4gICAga2V5OiBhbnk7XG4gICAgZmllbGRzOiBJRmllbGRWYWxpZGF0aW9uU3RhdGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmllbGRWYWxpZGF0aW9uU3RhdGUgZXh0ZW5kcyBJR3JpZFZhbGlkYXRpb25TdGF0ZSB7XG4gICAgZmllbGQ6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyaWRTZXJ2aWNlVHlwZSB7XG5cbiAgICBncmlkOiBHcmlkVHlwZTtcbiAgICBjcnVkU2VydmljZTogYW55O1xuICAgIGNtczogSWd4Q29sdW1uTW92aW5nU2VydmljZTtcblxuICAgIGdldF9kYXRhKCk6IGFueVtdO1xuICAgIGdldF9hbGxfZGF0YShpbmNsdWRlVHJhbnNhY3Rpb25zPzogYm9vbGVhbik6IGFueVtdO1xuICAgIGdldF9jb2x1bW5fYnlfbmFtZShuYW1lOiBzdHJpbmcpOiBDb2x1bW5UeXBlO1xuICAgIGdldFJvd0RhdGEoaWQ6IGFueSk6IGFueTtcbiAgICBnZXRfcmVjX2J5X2lkKGlkOiBhbnkpOiBhbnk7XG4gICAgZ2V0X3Jvd19pZChyb3dEYXRhOiBhbnkpOiBhbnk7XG4gICAgZ2V0X3Jvd19ieV9pbmRleChyb3dTZWxlY3RvcjogYW55KTogUm93VHlwZTtcbiAgICBnZXRfcm93X2J5X2tleShyb3dTZWxlY3RvcjogYW55KTogUm93VHlwZTtcbiAgICBnZXRfcmVjX2luZGV4X2J5X2lkKHBrOiBzdHJpbmcgfCBudW1iZXIsIGRhdGFDb2xsZWN0aW9uPzogYW55W10pOiBudW1iZXI7XG4gICAgZ2V0X3JlY19pZF9ieV9pbmRleChpbmRleDogbnVtYmVyLCBkYXRhQ29sbGVjdGlvbj86IGFueVtdKTogYW55O1xuICAgIGdldF9yb3dfaW5kZXhfaW5fZGF0YShyb3dJRDogYW55LCBkYXRhQ29sbGVjdGlvbj86IGFueVtdKTogbnVtYmVyO1xuICAgIGdldF9jZWxsX2J5X2tleShyb3dTZWxlY3RvcjogYW55LCBmaWVsZDogc3RyaW5nKTogQ2VsbFR5cGU7XG4gICAgZ2V0X2NlbGxfYnlfaW5kZXgocm93SW5kZXg6IG51bWJlciwgY29sdW1uSUQ6IG51bWJlciB8IHN0cmluZyk6IENlbGxUeXBlO1xuICAgIGdldF9jZWxsX2J5X3Zpc2libGVfaW5kZXgocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik7XG4gICAgc2V0X2dyb3Vwcm93X2V4cGFuc2lvbl9zdGF0ZT8oZ3JvdXBSb3c6IElHcm91cEJ5UmVjb3JkLCB2YWx1ZTogYm9vbGVhbik6IHZvaWQ7XG4gICAgcm93X2RlbGV0ZWRfdHJhbnNhY3Rpb24oaWQ6IGFueSk6IGJvb2xlYW47XG4gICAgYWRkUm93VG9EYXRhKHJvd0RhdGE6IGFueSwgcGFyZW50SUQ/OiBhbnkpOiB2b2lkO1xuICAgIGRlbGV0ZVJvd0J5SWQoaWQ6IGFueSk6IGFueTtcbiAgICBnZXRfcm93X2V4cGFuc2lvbl9zdGF0ZShpZDogYW55KTogYm9vbGVhbjtcbiAgICBzZXRfcm93X2V4cGFuc2lvbl9zdGF0ZShpZDogYW55LCBleHBhbmRlZDogYm9vbGVhbiwgZXZlbnQ/OiBFdmVudCk6IHZvaWQ7XG4gICAgZ2V0X3N1bW1hcnlfZGF0YSgpOiBhbnlbXTtcblxuICAgIHByZXBhcmVfc29ydGluZ19leHByZXNzaW9uKHN0YXRlQ29sbGVjdGlvbnM6IEFycmF5PEFycmF5PGFueT4+LCBleHByZXNzaW9uOiBJU29ydGluZ0V4cHJlc3Npb24pOiB2b2lkO1xuICAgIHNvcnQoZXhwcmVzc2lvbjogSVNvcnRpbmdFeHByZXNzaW9uKTogdm9pZDtcbiAgICBzb3J0X211bHRpcGxlKGV4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXSk6IHZvaWQ7XG4gICAgY2xlYXJfc29ydChmaWVsZE5hbWU6IHN0cmluZyk6IHZvaWQ7XG5cbiAgICBmaWx0ZXJEYXRhQnlFeHByZXNzaW9ucyhleHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUpOiBhbnlbXTtcbiAgICBzb3J0RGF0YUJ5RXhwcmVzc2lvbnMoZGF0YTogYW55W10sIGV4cHJlc3Npb25zOiBJU29ydGluZ0V4cHJlc3Npb25bXSk6IGFueVtdO1xuXG4gICAgdXBkYXRlX2NlbGwoY2VsbDogSWd4Q2VsbCk6IElHcmlkRWRpdEV2ZW50QXJncztcbiAgICB1cGRhdGVfcm93KHJvdzogSWd4RWRpdFJvdywgdmFsdWU6IGFueSwgZXZlbnQ/OiBFdmVudCk6IElHcmlkRWRpdEV2ZW50QXJncztcblxuICAgIGV4cGFuZF9wYXRoX3RvX3JlY29yZD8ocmVjb3JkOiBJVHJlZUdyaWRSZWNvcmQpOiB2b2lkO1xuICAgIGdldF9zZWxlY3RlZF9jaGlsZHJlbj8ocmVjb3JkOiBJVHJlZUdyaWRSZWNvcmQsIHNlbGVjdGVkUm93SURzOiBhbnlbXSk6IHZvaWQ7XG4gICAgZ2V0X2dyb3VwQnlfcmVjb3JkX2lkPyhnUm93OiBJR3JvdXBCeVJlY29yZCk6IHN0cmluZztcbiAgICByZW1vdmVfZ3JvdXBpbmdfZXhwcmVzc2lvbj8oZmllbGROYW1lOiBzdHJpbmcpOiB2b2lkO1xuICAgIGNsZWFyX2dyb3VwYnk/KGZpZWxkOiBzdHJpbmcgfCBhbnkpOiB2b2lkO1xuICAgIGdldFBhcmVudFJvd0lkPyhjaGlsZDogR3JpZFR5cGUpOiBhbnk7XG4gICAgZ2V0Q2hpbGRHcmlkcz8oaW5EZXB0aD86IGJvb2xlYW4pOiBHcmlkVHlwZVtdO1xuICAgIGdldENoaWxkR3JpZD8ocGF0aDogSVBhdGhTZWdtZW50W10pOiBHcmlkVHlwZTtcblxuICAgIHVuc2V0Q2hpbGRSb3dJc2xhbmQ/KHJvd0lzbGFuZDogR3JpZFR5cGUpOiB2b2lkO1xuICAgIHJlZ2lzdGVyQ2hpbGRSb3dJc2xhbmQ/KHJvd0lzbGFuZDogR3JpZFR5cGUpOiB2b2lkO1xufVxuXG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBHcmlkIHR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmlkVHlwZSBleHRlbmRzIElHcmlkRGF0YUJpbmRhYmxlIHtcbiAgICBkaXNwbGF5RGVuc2l0eTogRGlzcGxheURlbnNpdHk7XG4gICAgbG9jYWxlOiBzdHJpbmc7XG4gICAgcmVzb3VyY2VTdHJpbmdzOiBJR3JpZFJlc291cmNlU3RyaW5ncztcbiAgICBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgICByb3dFZGl0YWJsZTogYm9vbGVhbjtcbiAgICByb290U3VtbWFyaWVzRW5hYmxlZDogYm9vbGVhbjtcbiAgICBhbGxvd0ZpbHRlcmluZzogYm9vbGVhbjtcbiAgICByb3dEcmFnZ2FibGU6IGJvb2xlYW47XG4gICAgcHJpbWFyeUtleTogYW55O1xuICAgIGlkOiBzdHJpbmc7XG4gICAgcmVuZGVyZWRSb3dIZWlnaHQ6IG51bWJlcjtcbiAgICBwaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIHN1bW1hcnlQaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIGZpbHRlcmluZ1BpcGVUcmlnZ2VyOiBudW1iZXI7XG4gICAgaGFzQ29sdW1uTGF5b3V0czogYm9vbGVhbjtcbiAgICBtb3Zpbmc6IGJvb2xlYW47XG4gICAgaXNMb2FkaW5nOiBib29sZWFuO1xuICAgIGRhdGFDbG9uZVN0cmF0ZWd5OiBJRGF0YUNsb25lU3RyYXRlZ3k7XG5cbiAgICBncmlkQVBJOiBHcmlkU2VydmljZVR5cGU7XG5cbiAgICBmaWx0ZXJNb2RlOiBGaWx0ZXJNb2RlO1xuXG4gICAgLy8gVFlQRVxuICAgIHRoZWFkUm93OiBhbnk7XG4gICAgZ3JvdXBBcmVhOiBhbnk7XG4gICAgZmlsdGVyQ2VsbExpc3Q6IGFueVtdO1xuICAgIGZpbHRlcmluZ1JvdzogYW55O1xuICAgIGFjdGlvblN0cmlwOiBhbnk7XG4gICAgcmVzaXplTGluZTogYW55O1xuXG4gICAgdGZvb3Q6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuICAgIHBhZ2luYXRvcjogSWd4UGFnaW5hdG9yQ29tcG9uZW50O1xuICAgIHBhZ2luYXRvckxpc3Q/OiBRdWVyeUxpc3Q8SWd4UGFnaW5hdG9yQ29tcG9uZW50PjtcbiAgICBjcnVkU2VydmljZTogYW55O1xuICAgIHN1bW1hcnlTZXJ2aWNlOiBhbnk7XG5cblxuXG4gICAgdmlydHVhbGl6YXRpb25TdGF0ZTogSUZvck9mU3RhdGU7XG4gICAgLy8gVFlQRVxuICAgIHNlbGVjdGlvblNlcnZpY2U6IGFueTtcbiAgICBuYXZpZ2F0aW9uOiBhbnk7XG4gICAgZmlsdGVyaW5nU2VydmljZTogYW55O1xuICAgIG91dGxldDogYW55O1xuICAgIGhhc01vdmFibGVDb2x1bW5zOiBib29sZWFuO1xuICAgIGlzUm93U2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICBzaG93Um93U2VsZWN0b3JzOiBib29sZWFuO1xuICAgIGlzUGlubmluZ1RvU3RhcnQ6IGJvb2xlYW47XG4gICAgY29sdW1uSW5EcmFnOiBhbnk7XG4gICAgcGlubmVkV2lkdGg6IG51bWJlcjtcbiAgICB1bnBpbm5lZFdpZHRoOiBudW1iZXI7XG4gICAgc3VtbWFyaWVzTWFyZ2luOiBudW1iZXI7XG4gICAgaGVhZFNlbGVjdG9yQmFzZUFyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgaGFzVmlzaWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgaGFzRXhwYW5kYWJsZUNoaWxkcmVuPzogYm9vbGVhbjtcbiAgICBzaG93RXhwYW5kQWxsPzogYm9vbGVhbjtcblxuICAgIGhpZGRlbkNvbHVtbnNDb3VudDogbnVtYmVyO1xuICAgIHBpbm5lZENvbHVtbnNDb3VudDogbnVtYmVyO1xuXG4gICAgaWNvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBncm91cFJvd1RlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBncm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcm93TG9hZGluZ0luZGljYXRvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBoZWFkU2VsZWN0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICByb3dTZWxlY3RvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIHNvcnRIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgc29ydEFzY2VuZGluZ0hlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBzb3J0RGVzY2VuZGluZ0hlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBoZWFkZXJDb2xsYXBzZUluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIGhlYWRlckV4cGFuZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIGRyYWdJbmRpY2F0b3JJY29uVGVtcGxhdGU6IGFueTtcbiAgICBkcmFnSW5kaWNhdG9ySWNvbkJhc2U6IGFueTtcbiAgICBkaXNhYmxlVHJhbnNpdGlvbnM6IGJvb2xlYW47XG4gICAgY3VycmVuY3lQb3NpdGlvbkxlZnQ6IGJvb2xlYW47XG5cbiAgICBjb2x1bW5XaWR0aFNldEJ5VXNlcjogYm9vbGVhbjtcbiAgICBoZWFkZXJGZWF0dXJlc1dpZHRoOiBudW1iZXI7XG4gICAgY2FsY0hlaWdodDogbnVtYmVyO1xuICAgIGNhbGNXaWR0aDogbnVtYmVyO1xuICAgIG91dGVyV2lkdGg6IG51bWJlcjtcbiAgICByb3dIZWlnaHQ6IG51bWJlcjtcbiAgICBtdWx0aVJvd0xheW91dFJvd1NpemU6IG51bWJlcjtcbiAgICBkZWZhdWx0SGVhZGVyR3JvdXBNaW5XaWR0aDogYW55O1xuICAgIG1heExldmVsSGVhZGVyRGVwdGg6IG51bWJlcjtcbiAgICBkZWZhdWx0Um93SGVpZ2h0OiBudW1iZXI7XG4gICAgX2Jhc2VGb250U2l6ZT86IG51bWJlcjtcbiAgICBzY3JvbGxTaXplOiBudW1iZXI7XG5cbiAgICB2YWxpZGF0aW9uVHJpZ2dlcjogR3JpZFZhbGlkYXRpb25UcmlnZ2VyO1xuICAgIHBpbm5pbmc6IElQaW5uaW5nQ29uZmlnO1xuICAgIGV4cGFuc2lvblN0YXRlczogTWFwPGFueSwgYm9vbGVhbj47XG4gICAgcGFyZW50VmlydERpcjogYW55O1xuICAgIHRib2R5OiBhbnk7XG4gICAgdmVydGljYWxTY3JvbGxDb250YWluZXI6IGFueTtcbiAgICBkYXRhUm93TGlzdDogYW55O1xuICAgIHJvd0xpc3Q6IGFueTtcbiAgICBjb2x1bW5MaXN0OiBRdWVyeUxpc3Q8Q29sdW1uVHlwZT47XG4gICAgY29sdW1uczogQ29sdW1uVHlwZVtdO1xuICAgIHZpc2libGVDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgdW5waW5uZWRDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgcGlubmVkQ29sdW1uczogQ29sdW1uVHlwZVtdO1xuICAgIGhlYWRlckNlbGxMaXN0OiBhbnlbXTtcbiAgICBoZWFkZXJHcm91cHM6IGFueVtdO1xuICAgIGhlYWRlckdyb3Vwc0xpc3Q6IGFueVtdO1xuICAgIHN1bW1hcmllc1Jvd0xpc3Q6IGFueTtcbiAgICBoZWFkZXJDb250YWluZXI6IGFueTtcbiAgICBpc0NlbGxTZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIGlzTXVsdGlSb3dTZWxlY3Rpb25FbmFibGVkOiBib29sZWFuO1xuICAgIGhhc1Bpbm5lZFJlY29yZHM6IGJvb2xlYW47XG4gICAgcGlubmVkUmVjb3Jkc0NvdW50OiBudW1iZXI7XG4gICAgcGlubmVkUmVjb3JkczogYW55W107XG4gICAgdW5waW5uZWRSZWNvcmRzOiBhbnlbXTtcbiAgICBwaW5uZWREYXRhVmlldzogYW55W107XG4gICAgcGlubmVkUm93czogYW55W107XG4gICAgZGF0YVZpZXc6IGFueVtdO1xuICAgIF9maWx0ZXJlZFVucGlubmVkRGF0YTogYW55W107XG4gICAgX2ZpbHRlcmVkU29ydGVkVW5waW5uZWREYXRhOiBhbnlbXTtcbiAgICBmaWx0ZXJlZFNvcnRlZERhdGE6IGFueVtdO1xuICAgIGRhdGFXaXRoQWRkZWRJblRyYW5zYWN0aW9uUm93czogYW55W107XG4gICAgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvblNlcnZpY2U8VHJhbnNhY3Rpb24sIFN0YXRlPjtcbiAgICB2YWxpZGF0aW9uOiBJZ3hHcmlkVmFsaWRhdGlvblNlcnZpY2U7XG4gICAgZGVmYXVsdFN1bW1hcnlIZWlnaHQ6IG51bWJlcjtcbiAgICBzdW1tYXJ5Um93SGVpZ2h0OiBudW1iZXI7XG4gICAgcm93RWRpdGluZ092ZXJsYXk6IElneFRvZ2dsZURpcmVjdGl2ZTtcbiAgICB0b3RhbFJvd3NDb3VudEFmdGVyRmlsdGVyOiBudW1iZXI7XG4gICAgX3RvdGFsUmVjb3JkczogbnVtYmVyO1xuXG4gICAgcGFnaW5nTW9kZTogR3JpZFBhZ2luZ01vZGU7XG4gICAgcGFnaW5nU3RhdGU6IGFueTtcblxuICAgIHJvd0VkaXRUYWJzOiBhbnk7XG4gICAgbGFzdFNlYXJjaEluZm86IElTZWFyY2hJbmZvO1xuICAgIHBhZ2U6IG51bWJlcjtcbiAgICBwZXJQYWdlOiBudW1iZXI7XG4gICAgZHJhZ1Jvd0lEOiBhbnk7XG4gICAgcm93RHJhZ2dpbmc6IGJvb2xlYW47XG4gICAgZXZlblJvd0NTUzogc3RyaW5nO1xuICAgIG9kZFJvd0NTUzogc3RyaW5nO1xuXG4gICAgZmlyc3RFZGl0YWJsZUNvbHVtbkluZGV4OiBudW1iZXI7XG4gICAgbGFzdEVkaXRhYmxlQ29sdW1uSW5kZXg6IG51bWJlcjtcbiAgICBpc1Jvd1Bpbm5pbmdUb1RvcDogYm9vbGVhbjtcbiAgICBoYXNEZXRhaWxzOiBib29sZWFuO1xuICAgIGhhc1N1bW1hcml6ZWRDb2x1bW5zOiBib29sZWFuO1xuICAgIGhhc0NvbHVtbkdyb3VwczogYm9vbGVhbjtcbiAgICBoYXNFZGl0YWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgdW5pcXVlQ29sdW1uVmFsdWVzU3RyYXRlZ3k6IChjb2x1bW46IENvbHVtblR5cGUsIHRyZWU6IEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSwgZG9uZTogKHZhbHVlczogYW55W10pID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgZ2V0SGVhZGVyQ2VsbFdpZHRoOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IElTaXplSW5mbztcblxuICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICAgZG9jdW1lbnQ6IERvY3VtZW50O1xuICAgIHJvd0V4cGFuZGVkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcm93Q29sbGFwc2VkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgZXhjZWxTdHlsZUhlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIHNlbGVjdFJvd09uQ2xpY2s6IGJvb2xlYW47XG4gICAgY2VsbFNlbGVjdGlvbjogR3JpZFNlbGVjdGlvbk1vZGU7XG4gICAgcm93U2VsZWN0aW9uOiBHcmlkU2VsZWN0aW9uTW9kZTtcbiAgICBjb2x1bW5TZWxlY3Rpb246IEdyaWRTZWxlY3Rpb25Nb2RlO1xuICAgIHN1bW1hcnlDYWxjdWxhdGlvbk1vZGU6IEdyaWRTdW1tYXJ5Q2FsY3VsYXRpb25Nb2RlO1xuICAgIHN1bW1hcnlQb3NpdGlvbjogR3JpZFN1bW1hcnlQb3NpdGlvbjtcblxuICAgIC8vIFhYWDogV29yayBhcm91bmQgdGlsbCB3ZSBmaXhlZCB0aGUgaW5qZWN0aW9uIHRva2Vuc1xuICAgIGxhc3RDaGlsZEdyaWQ/OiBHcmlkVHlwZTtcbiAgICB0b29sYmFyT3V0bGV0PzogVmlld0NvbnRhaW5lclJlZjtcbiAgICBwYWdpbmF0b3JPdXRsZXQ/OiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIGZsYXREYXRhPzogYW55W10gfCBudWxsO1xuICAgIGNoaWxkUm93PzogYW55O1xuICAgIGV4cGFuc2lvbkRlcHRoPzogbnVtYmVyO1xuICAgIGNoaWxkRGF0YUtleT86IGFueTtcbiAgICBmb3JlaWduS2V5PzogYW55O1xuICAgIGNhc2NhZGVPbkRlbGV0ZT86IGJvb2xlYW47XG4gICAgbG9hZENoaWxkcmVuT25EZW1hbmQ/OiAocGFyZW50SUQ6IGFueSwgZG9uZTogKGNoaWxkcmVuOiBhbnlbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICBoYXNDaGlsZHJlbktleT86IGFueTtcbiAgICBsb2FkaW5nUm93cz86IFNldDxhbnk+O1xuICAgIHBhcmVudD86IEdyaWRUeXBlO1xuICAgIGhpZ2hsaWdodGVkUm93SUQ/OiBhbnk7XG4gICAgdXBkYXRlT25SZW5kZXI/OiBib29sZWFuO1xuICAgIGNoaWxkTGF5b3V0S2V5cz86IGFueVtdO1xuICAgIGNoaWxkTGF5b3V0TGlzdD86IFF1ZXJ5TGlzdDxhbnk+O1xuICAgIHJvb3RHcmlkPzogR3JpZFR5cGU7XG4gICAgcHJvY2Vzc2VkUm9vdFJlY29yZHM/OiBJVHJlZUdyaWRSZWNvcmRbXTtcbiAgICByb290UmVjb3Jkcz86IElUcmVlR3JpZFJlY29yZFtdO1xuICAgIHJlY29yZHM/OiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+O1xuICAgIHByb2Nlc3NlZEV4cGFuZGVkRmxhdERhdGE/OiBhbnlbXSB8IG51bGw7XG4gICAgcHJvY2Vzc2VkUmVjb3Jkcz86IE1hcDxhbnksIElUcmVlR3JpZFJlY29yZD47XG4gICAgdHJlZUdyb3VwQXJlYT86IGFueTtcblxuICAgIGFjdGl2ZU5vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJQWN0aXZlTm9kZUNoYW5nZUV2ZW50QXJncz47XG4gICAgZ3JpZEtleWRvd246IEV2ZW50RW1pdHRlcjxJR3JpZEtleWRvd25FdmVudEFyZ3M+O1xuICAgIGNlbGxDbGljazogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgZG91YmxlQ2xpY2s6IEV2ZW50RW1pdHRlcjxJR3JpZENlbGxFdmVudEFyZ3M+O1xuICAgIGNvbnRleHRNZW51OiBFdmVudEVtaXR0ZXI8SUdyaWRDZWxsRXZlbnRBcmdzPjtcbiAgICBzZWxlY3RlZDogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgcmFuZ2VTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEdyaWRTZWxlY3Rpb25SYW5nZT47XG4gICAgcm93U2VsZWN0aW9uQ2hhbmdpbmc6IEV2ZW50RW1pdHRlcjxJUm93U2VsZWN0aW9uRXZlbnRBcmdzPjtcbiAgICBsb2NhbGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbiAgICBmaWx0ZXJpbmc6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXZlbnRBcmdzPjtcbiAgICBmaWx0ZXJpbmdEb25lOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZT47XG4gICAgY29sdW1uUGlubmVkOiBFdmVudEVtaXR0ZXI8SVBpbkNvbHVtbkV2ZW50QXJncz47XG4gICAgY29sdW1uUmVzaXplZDogRXZlbnRFbWl0dGVyPElDb2x1bW5SZXNpemVFdmVudEFyZ3M+O1xuICAgIGNvbHVtbk1vdmluZ0VuZDogRXZlbnRFbWl0dGVyPElDb2x1bW5Nb3ZpbmdFbmRFdmVudEFyZ3M+O1xuICAgIGNvbHVtblNlbGVjdGlvbkNoYW5naW5nOiBFdmVudEVtaXR0ZXI8SUNvbHVtblNlbGVjdGlvbkV2ZW50QXJncz47XG4gICAgY29sdW1uTW92aW5nOiBFdmVudEVtaXR0ZXI8SUNvbHVtbk1vdmluZ0V2ZW50QXJncz47XG4gICAgY29sdW1uTW92aW5nU3RhcnQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uTW92aW5nU3RhcnRFdmVudEFyZ3M+O1xuICAgIGNvbHVtblBpbjogRXZlbnRFbWl0dGVyPElQaW5Db2x1bW5DYW5jZWxsYWJsZUV2ZW50QXJncz47XG4gICAgY29sdW1uVmlzaWJpbGl0eUNoYW5naW5nOiBFdmVudEVtaXR0ZXI8SUNvbHVtblZpc2liaWxpdHlDaGFuZ2luZ0V2ZW50QXJncz47XG4gICAgY29sdW1uVmlzaWJpbGl0eUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uVmlzaWJpbGl0eUNoYW5nZWRFdmVudEFyZ3M+O1xuICAgIGJhdGNoRWRpdGluZ0NoYW5nZT86IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbiAgICBvbkRlbnNpdHlDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8SURlbnNpdHlDaGFuZ2VkRXZlbnRBcmdzPjtcbiAgICByb3dBZGQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIHJvd0FkZGVkOiBFdmVudEVtaXR0ZXI8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIHJvd0FkZGVkTm90aWZpZXI6IFN1YmplY3Q8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIHJvd0RlbGV0ZWQ6IEV2ZW50RW1pdHRlcjxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgcm93RGVsZXRlZE5vdGlmaWVyOiBTdWJqZWN0PElSb3dEYXRhRXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdEVudGVyOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgY2VsbEVkaXREb25lOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgY2VsbEVkaXRFeGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgcm93RWRpdEVudGVyOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICByb3dFZGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICByb3dFZGl0RG9uZTogRXZlbnRFbWl0dGVyPElHcmlkRWRpdERvbmVFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXRFeGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgcm93RHJhZ1N0YXJ0OiBFdmVudEVtaXR0ZXI8SVJvd0RyYWdTdGFydEV2ZW50QXJncz47XG4gICAgcm93RHJhZ0VuZDogRXZlbnRFbWl0dGVyPElSb3dEcmFnRW5kRXZlbnRBcmdzPjtcbiAgICByb3dUb2dnbGU6IEV2ZW50RW1pdHRlcjxJUm93VG9nZ2xlRXZlbnRBcmdzPjtcbiAgICBmb3JtR3JvdXBDcmVhdGVkOiBFdmVudEVtaXR0ZXI8SUdyaWRGb3JtR3JvdXBDcmVhdGVkRXZlbnRBcmdzPjtcbiAgICB2YWxpZGF0aW9uU3RhdHVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUdyaWRWYWxpZGF0aW9uU3RhdHVzRXZlbnRBcmdzPjtcblxuICAgIHRvb2xiYXJFeHBvcnRpbmc6IEV2ZW50RW1pdHRlcjxJR3JpZFRvb2xiYXJFeHBvcnRFdmVudEFyZ3M+O1xuICAgIHJlbmRlcmVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICByZXNpemVOb3RpZnk6IFN1YmplY3Q8dm9pZD47XG5cbiAgICBzb3J0U3RyYXRlZ3k6IElHcmlkU29ydGluZ1N0cmF0ZWd5O1xuICAgIGdyb3VwU3RyYXRlZ3k/OiBJR3JpZEdyb3VwaW5nU3RyYXRlZ3k7XG4gICAgZmlsdGVyaW5nTG9naWM6IEZpbHRlcmluZ0xvZ2ljO1xuICAgIGZpbHRlclN0cmF0ZWd5OiBJRmlsdGVyaW5nU3RyYXRlZ3k7XG4gICAgYWxsb3dBZHZhbmNlZEZpbHRlcmluZzogYm9vbGVhbjtcbiAgICBzb3J0aW5nRXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdO1xuICAgIHNvcnRpbmdFeHByZXNzaW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPElTb3J0aW5nRXhwcmVzc2lvbltdPjtcbiAgICBmaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgZmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZT47XG4gICAgYWR2YW5jZWRGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgYWR2YW5jZWRGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlPjtcbiAgICBzb3J0aW5nT3B0aW9uczogSVNvcnRpbmdPcHRpb25zO1xuXG4gICAgYmF0Y2hFZGl0aW5nOiBib29sZWFuO1xuICAgIGdyb3VwaW5nRXhwYW5zaW9uU3RhdGU/OiBJR3JvdXBCeUV4cGFuZFN0YXRlW107XG4gICAgZ3JvdXBpbmdFeHByZXNzaW9ucz86IElHcm91cGluZ0V4cHJlc3Npb25bXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zQ2hhbmdlPzogRXZlbnRFbWl0dGVyPElHcm91cGluZ0V4cHJlc3Npb25bXT47XG4gICAgZ3JvdXBzRXhwYW5kZWQ/OiBib29sZWFuO1xuICAgIGdyb3Vwc1JlY29yZHM/OiBJR3JvdXBCeVJlY29yZFtdO1xuICAgIGdyb3VwaW5nRmxhdFJlc3VsdD86IGFueVtdO1xuICAgIGdyb3VwaW5nUmVzdWx0PzogYW55W107XG4gICAgZ3JvdXBpbmdNZXRhZGF0YT86IGFueVtdO1xuICAgIHNlbGVjdGVkQ2VsbHM/OiBDZWxsVHlwZVtdO1xuICAgIHNlbGVjdGVkUm93czogYW55W107XG4gICAgYWN0aXZlRGVzY2VuZGFudD86IHN0cmluZztcbiAgICBpc1Bpdm90PzogYm9vbGVhbjtcblxuICAgIHRvZ2dsZUdyb3VwPyhncm91cFJvdzogSUdyb3VwQnlSZWNvcmQpOiB2b2lkO1xuICAgIGNsZWFyR3JvdXBpbmc/KGZpZWxkOiBzdHJpbmcpOiB2b2lkO1xuICAgIGdyb3VwQnk/KGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24gfCBBcnJheTxJR3JvdXBpbmdFeHByZXNzaW9uPik6IHZvaWQ7XG4gICAgcmVzb2x2ZU91dGxldD8oKTogSWd4T3ZlcmxheU91dGxldERpcmVjdGl2ZTtcbiAgICB1cGRhdGVDb2x1bW5zKGNvbHVtbnM6IENvbHVtblR5cGVbXSk6IHZvaWQ7XG4gICAgZ2V0U2VsZWN0ZWRSYW5nZXMoKTogR3JpZFNlbGVjdGlvblJhbmdlW107XG4gICAgZGVzZWxlY3RBbGxDb2x1bW5zKCk6IHZvaWQ7XG4gICAgZGVzZWxlY3RDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdIHwgQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICBzZWxlY3RDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdIHwgQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICBzZWxlY3RlZENvbHVtbnMoKTogQ29sdW1uVHlwZVtdO1xuICAgIHJlZnJlc2hTZWFyY2goKTogdm9pZDtcbiAgICBnZXREZWZhdWx0RXhwYW5kU3RhdGUocmVjb3JkOiBhbnkpOiBib29sZWFuO1xuICAgIHRyYWNrQ29sdW1uQ2hhbmdlcyhpbmRleDogbnVtYmVyLCBjb2x1bW46IGFueSk6IGFueTtcbiAgICBnZXRQb3NzaWJsZUNvbHVtbldpZHRoKCk6IHN0cmluZztcbiAgICByZXNldEhvcml6b250YWxWaXJ0dWFsaXphdGlvbigpOiB2b2lkO1xuICAgIGhhc1ZlcnRpY2FsU2Nyb2xsKCk6IGJvb2xlYW47XG4gICAgZ2V0VmlzaWJsZUNvbnRlbnRIZWlnaHQoKTogbnVtYmVyO1xuICAgIGdldERyYWdHaG9zdEN1c3RvbVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICAgIG9wZW5Sb3dPdmVybGF5KGlkOiBhbnkpOiB2b2lkO1xuICAgIG9wZW5BZHZhbmNlZEZpbHRlcmluZ0RpYWxvZygpOiB2b2lkO1xuICAgIHNob3dTbmFja2JhckZvcihpbmRleDogbnVtYmVyKTogdm9pZDtcbiAgICBnZXRDb2x1bW5CeU5hbWUobmFtZTogc3RyaW5nKTogYW55O1xuICAgIGdldENvbHVtbkJ5VmlzaWJsZUluZGV4KGluZGV4OiBudW1iZXIpOiBDb2x1bW5UeXBlO1xuICAgIGdldEhlYWRlckdyb3VwV2lkdGgoY29sdW1uOiBDb2x1bW5UeXBlKTogc3RyaW5nO1xuICAgIGdldFJvd0J5S2V5PyhrZXk6IGFueSk6IFJvd1R5cGU7XG4gICAgZ2V0Um93QnlJbmRleD8oaW5kZXg6IG51bWJlcik6IFJvd1R5cGU7XG4gICAgc2V0RmlsdGVyZWREYXRhKGRhdGE6IGFueSwgcGlubmVkOiBib29sZWFuKTogdm9pZDtcbiAgICBzZXRGaWx0ZXJlZFNvcnRlZERhdGEoZGF0YTogYW55LCBwaW5uZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNvcnQoZXhwcmVzc2lvbjogSVNvcnRpbmdFeHByZXNzaW9uIHwgSVNvcnRpbmdFeHByZXNzaW9uW10pOiB2b2lkO1xuICAgIGNsZWFyU29ydChuYW1lPzogc3RyaW5nKTogdm9pZDtcbiAgICBwaW5Sb3coaWQ6IGFueSwgaW5kZXg/OiBudW1iZXIsIHJvdz86IFJvd1R5cGUpOiBib29sZWFuO1xuICAgIHVucGluUm93KGlkOiBhbnksIHJvdz86IFJvd1R5cGUpOiBib29sZWFuO1xuICAgIGdldFVucGlubmVkSW5kZXhCeUlkKGlkOiBhbnkpOiBudW1iZXI7XG4gICAgZ2V0RW1wdHlSZWNvcmRPYmplY3RGb3IoaW5Sb3c6IFJvd1R5cGUpOiBhbnk7XG4gICAgaXNTdW1tYXJ5Um93KHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc1JlY29yZFBpbm5lZChyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgZ2V0SW5pdGlhbFBpbm5lZEluZGV4KHJlYzogYW55KTogbnVtYmVyO1xuICAgIGlzUmVjb3JkUGlubmVkQnlWaWV3SW5kZXgocm93SW5kZXg6IG51bWJlcik6IGJvb2xlYW47XG4gICAgaXNDb2x1bW5Hcm91cGVkKGZpZWxkTmFtZTogc3RyaW5nKTogYm9vbGVhbjtcbiAgICBpc0RldGFpbFJlY29yZChyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgaXNHcm91cEJ5UmVjb3JkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc0dob3N0UmVjb3JkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc1RyZWVSb3c/KHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc0NoaWxkR3JpZFJlY29yZD8ocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGdldENoaWxkR3JpZHM/KGluRGVwdGg/OiBib29sZWFuKTogYW55W107XG4gICAgaXNIaWVyYXJjaGljYWxSZWNvcmQ/KHJlY29yZDogYW55KTogYm9vbGVhbjtcbiAgICBjb2x1bW5Ub1Zpc2libGVJbmRleChrZXk6IHN0cmluZyB8IG51bWJlcik6IG51bWJlcjtcbiAgICBtb3ZlQ29sdW1uKGNvbHVtbjogQ29sdW1uVHlwZSwgdGFyZ2V0OiBDb2x1bW5UeXBlLCBwb3M6IERyb3BQb3NpdGlvbik6IHZvaWQ7XG4gICAgbmF2aWdhdGVUbyhyb3dJbmRleDogbnVtYmVyLCB2aXNpYmxlQ29sdW1uSW5kZXg6IG51bWJlciwgY2FsbGJhY2s/OiAoZTogYW55KSA9PiBhbnkpOiB2b2lkO1xuICAgIGdldFByZXZpb3VzQ2VsbChjdXJyUm93SW5kZXg6IG51bWJlciwgY3VyVmlzaWJsZUNvbEluZGV4OiBudW1iZXIsIGNhbGxiYWNrOiAoYzogQ29sdW1uVHlwZSkgPT4gYm9vbGVhbik6IElDZWxsUG9zaXRpb247XG4gICAgZ2V0TmV4dENlbGwoY3VyclJvd0luZGV4OiBudW1iZXIsIGN1clZpc2libGVDb2xJbmRleDogbnVtYmVyLCBjYWxsYmFjazogKGM6IENvbHVtblR5cGUpID0+IGJvb2xlYW4pOiBJQ2VsbFBvc2l0aW9uO1xuICAgIGNsZWFyQ2VsbFNlbGVjdGlvbigpOiB2b2lkO1xuICAgIHNlbGVjdFJhbmdlKHJhbmdlOiBHcmlkU2VsZWN0aW9uUmFuZ2UgfCBHcmlkU2VsZWN0aW9uUmFuZ2VbXSk6IHZvaWQ7XG4gICAgc2VsZWN0Um93cyhyb3dJRHM6IGFueVtdLCBjbGVhckN1cnJlbnRTZWxlY3Rpb24/OiBib29sZWFuKTogdm9pZDtcbiAgICBkZXNlbGVjdFJvd3Mocm93SURzOiBhbnlbXSk6IHZvaWQ7XG4gICAgc2VsZWN0QWxsUm93cyhvbmx5RmlsdGVyRGF0YT86IGJvb2xlYW4pOiB2b2lkO1xuICAgIGRlc2VsZWN0QWxsUm93cyhvbmx5RmlsdGVyRGF0YT86IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNldFVwUGFnaW5hdG9yKCk6IHZvaWQ7XG4gICAgY3JlYXRlRmlsdGVyRHJvcGRvd24oY29sdW1uOiBDb2x1bW5UeXBlLCBvcHRpb25zOiBPdmVybGF5U2V0dGluZ3MpOiBhbnk7XG4gICAgLy8gVHlwZSB0byBSb3dUeXBlXG4gICAgY3JlYXRlUm93PyhpbmRleDogbnVtYmVyLCBkYXRhPzogYW55KTogUm93VHlwZTtcbiAgICBkZWxldGVSb3coaWQ6IGFueSk6IGFueTtcbiAgICBkZWxldGVSb3dCeUlkKGlkOiBhbnkpOiBhbnk7XG4gICAgY29sbGFwc2VSb3coaWQ6IGFueSk6IHZvaWQ7XG4gICAgbm90aWZ5Q2hhbmdlcyhyZXBhaW50PzogYm9vbGVhbik6IHZvaWQ7XG4gICAgcmVzZXRDb2x1bW5Db2xsZWN0aW9ucygpOiB2b2lkO1xuICAgIHRyaWdnZXJQaXBlcygpOiB2b2lkO1xuICAgIHJlcG9zaXRpb25Sb3dFZGl0aW5nT3ZlcmxheShyb3c6IFJvd1R5cGUpOiB2b2lkO1xuICAgIGNsb3NlUm93RWRpdGluZ092ZXJsYXkoKTogdm9pZDtcbiAgICByZWZsb3coKTogdm9pZDtcblxuICAgIC8vIFRPRE86IE1heWJlIG1vdmUgdGhlbSB0byBGbGF0R3JpZFR5cGUsIGJ1dCB0aGVuIHdpbGwgd2UgbmVlZCBhbm90aGVyIHRva2VuP1xuICAgIGlzRXhwYW5kZWRHcm91cChncm91cDogSUdyb3VwQnlSZWNvcmQpOiBib29sZWFuO1xuICAgIGNyZWF0ZUNvbHVtbnNMaXN0Pyhjb2xzOiBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHRvZ2dsZUFsbEdyb3VwUm93cz8oKTogdm9pZDtcbiAgICB0b2dnbGVBbGw/KCk6IHZvaWQ7XG4gICAgZ2VuZXJhdGVSb3dQYXRoPyhyb3dJZDogYW55KTogYW55W107XG4gICAgcHJldmVudEhlYWRlclNjcm9sbD8oYXJnczogYW55KTogdm9pZDtcblxufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIGEgRmxhdCBHcmlkIHR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbGF0R3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgZ3JvdXBpbmdFeHBhbnNpb25TdGF0ZTogSUdyb3VwQnlFeHBhbmRTdGF0ZVtdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnM6IElHcm91cGluZ0V4cHJlc3Npb25bXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUdyb3VwaW5nRXhwcmVzc2lvbltdPjtcblxuICAgIHRvZ2dsZUdyb3VwKGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCk6IHZvaWQ7XG4gICAgY2xlYXJHcm91cGluZyhmaWVsZDogc3RyaW5nKTogdm9pZDtcbiAgICBncm91cEJ5KGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24gfCBBcnJheTxJR3JvdXBpbmdFeHByZXNzaW9uPik6IHZvaWQ7XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBUcmVlIEdyaWQgdHlwZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVHcmlkVHlwZSBleHRlbmRzIEdyaWRUeXBlIHtcbiAgICByZWNvcmRzOiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+O1xuICAgIGlzVHJlZVJvdyhyZWM6IGFueSk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBIaWVyYXJjaGljYWwgR3JpZCB0eXBlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGllcmFyY2hpY2FsR3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgY2hpbGRMYXlvdXRLZXlzOiBhbnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaXZvdEdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIHBpdm90Q29uZmlndXJhdGlvbjogSVBpdm90Q29uZmlndXJhdGlvbjtcbiAgICBhbGxEaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXSxcbiAgICBzaG93UGl2b3RDb25maWd1cmF0aW9uVUk6IGJvb2xlYW47XG4gICAgY29sdW1uRGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW107XG4gICAgcm93RGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW107XG4gICAgcm93RGltZW5zaW9uUmVzaXppbmc6IGJvb2xlYW47XG4gICAgdmFsdWVzOiBJUGl2b3RWYWx1ZVtdO1xuICAgIGZpbHRlckRpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdO1xuICAgIGRpbWVuc2lvbkRhdGFDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgcGl2b3RSb3dXaWR0aHM6IG51bWJlcjtcbiAgICBzZXR1cENvbHVtbnMoKTogdm9pZDtcbiAgICB0b2dnbGVSb3cocm93SUQ6IGFueSk6IHZvaWQ7XG4gICAgcmVzb2x2ZURhdGFUeXBlcyhmaWVsZDogYW55KTogR3JpZENvbHVtbkRhdGFUeXBlO1xuICAgIG1vdmVEaW1lbnNpb24oZGltZW5zaW9uOiBJUGl2b3REaW1lbnNpb24sIHRhcmdldENvbGxlY3Rpb25UeXBlOiBQaXZvdERpbWVuc2lvblR5cGUsIGluZGV4PyA6IG51bWJlcik7XG4gICAgZ2V0RGltZW5zaW9uc0J5VHlwZShkaW1lbnNpb246IFBpdm90RGltZW5zaW9uVHlwZSk7XG4gICAgdG9nZ2xlRGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uKTtcbiAgICBzb3J0RGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uLCBzb3J0RGlyZWN0aW9uOiBTb3J0aW5nRGlyZWN0aW9uKTtcbiAgICB0b2dnbGVWYWx1ZSh2YWx1ZTogSVBpdm90VmFsdWUpO1xuICAgIG1vdmVWYWx1ZSh2YWx1ZTogSVBpdm90VmFsdWUsIGluZGV4PzogbnVtYmVyKTtcbiAgICByb3dEaW1lbnNpb25XaWR0aFRvUGl4ZWxzKGRpbTogSVBpdm90RGltZW5zaW9uKTogbnVtYmVyO1xuICAgIGRpbWVuc2lvbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRGltZW5zaW9uc0NoYW5nZT47XG4gICAgdmFsdWVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVZhbHVlc0NoYW5nZT47XG4gICAgcGl2b3RLZXlzOiBJUGl2b3RLZXlzO1xuICAgIGhhc011bHRpcGxlVmFsdWVzOiBib29sZWFuO1xuICAgIGV4Y2VsU3R5bGVGaWx0ZXJNYXhIZWlnaHQ6IHN0cmluZztcbiAgICBleGNlbFN0eWxlRmlsdGVyTWluSGVpZ2h0OiBzdHJpbmc7XG4gICAgdmFsdWVDaGlwVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG59XG5leHBvcnQgaW50ZXJmYWNlIEdyaWRTVkdJY29uIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2l6ZUluZm8ge1xuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgcGFkZGluZzogbnVtYmVyXG59XG4iXX0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvY29tbW9uL2dyaWQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBK0MsY0FBYyxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQThCdEksTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFXLGtCQUFrQixDQUFDLENBQUM7QUFDOUUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQWtCLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWx0ZXJNb2RlLCBHcmlkUGFnaW5nTW9kZSwgR3JpZFNlbGVjdGlvbk1vZGUsIEdyaWRTdW1tYXJ5Q2FsY3VsYXRpb25Nb2RlLCBHcmlkU3VtbWFyeVBvc2l0aW9uLCBHcmlkVmFsaWRhdGlvblRyaWdnZXIgfSBmcm9tICcuL2VudW1zJztcbmltcG9ydCB7XG4gICAgSVNlYXJjaEluZm8sIElHcmlkQ2VsbEV2ZW50QXJncywgSVJvd1NlbGVjdGlvbkV2ZW50QXJncywgSUNvbHVtblNlbGVjdGlvbkV2ZW50QXJncywgSUdyaWRFZGl0RXZlbnRBcmdzLFxuICAgIElQaW5Db2x1bW5DYW5jZWxsYWJsZUV2ZW50QXJncywgSUNvbHVtblZpc2liaWxpdHlDaGFuZ2VkRXZlbnRBcmdzLCBJQ29sdW1uVmlzaWJpbGl0eUNoYW5naW5nRXZlbnRBcmdzLFxuICAgIElSb3dEcmFnRW5kRXZlbnRBcmdzLCBJQ29sdW1uTW92aW5nU3RhcnRFdmVudEFyZ3MsIElDb2x1bW5Nb3ZpbmdFbmRFdmVudEFyZ3MsXG4gICAgSUdyaWRFZGl0RG9uZUV2ZW50QXJncywgSVJvd0RhdGFFdmVudEFyZ3MsIElHcmlkS2V5ZG93bkV2ZW50QXJncywgSVJvd0RyYWdTdGFydEV2ZW50QXJncyxcbiAgICBJQ29sdW1uTW92aW5nRXZlbnRBcmdzLCBJUGluQ29sdW1uRXZlbnRBcmdzLFxuICAgIElBY3RpdmVOb2RlQ2hhbmdlRXZlbnRBcmdzLFxuICAgIElDZWxsUG9zaXRpb24sIElGaWx0ZXJpbmdFdmVudEFyZ3MsIElDb2x1bW5SZXNpemVFdmVudEFyZ3MsIElSb3dUb2dnbGVFdmVudEFyZ3MsIElHcmlkVG9vbGJhckV4cG9ydEV2ZW50QXJnc1xufSBmcm9tICcuLi9jb21tb24vZXZlbnRzJztcbmltcG9ydCB7IERpc3BsYXlEZW5zaXR5LCBJRGVuc2l0eUNoYW5nZWRFdmVudEFyZ3MgfSBmcm9tICcuLi8uLi9jb3JlL2Rpc3BsYXlEZW5zaXR5JztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuLCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUsIElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb25zLXRyZWUnO1xuaW1wb3J0IHsgSUdyaWRSZXNvdXJjZVN0cmluZ3MgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4vZ3JpZC1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgSUdyb3VwaW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJR3JvdXBCeVJlY29yZCB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LXJlY29yZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUdyb3VwQnlFeHBhbmRTdGF0ZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9ncm91cGJ5LWV4cGFuZC1zdGF0ZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4UGFnaW5hdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcGFnaW5hdG9yL3BhZ2luYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWd4Q2VsbCwgSWd4RWRpdFJvdyB9IGZyb20gJy4vY3J1ZC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZWxlY3Rpb25SYW5nZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgRmlsdGVyaW5nTG9naWMgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElGaWx0ZXJpbmdTdHJhdGVneSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgRHJvcFBvc2l0aW9uLCBJZ3hDb2x1bW5Nb3ZpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vbW92aW5nL21vdmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmUsIElneFRvZ2dsZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvdG9nZ2xlL3RvZ2dsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSVRyZWVHcmlkUmVjb3JkIH0gZnJvbSAnLi4vdHJlZS1ncmlkL3RyZWUtZ3JpZC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFN0YXRlLCBUcmFuc2FjdGlvbiwgVHJhbnNhY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNhY3Rpb24vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgR3JpZENvbHVtbkRhdGFUeXBlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2RhdGEtdXRpbCc7XG5pbXBvcnQgeyBJZ3hGaWx0ZXJpbmdPcGVyYW5kIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1jb25kaXRpb24nO1xuaW1wb3J0IHsgSUNvbHVtblBpcGVBcmdzLCBJU29ydGluZ09wdGlvbnMsIE1STFJlc2l6ZUNvbHVtbkluZm8gfSBmcm9tICcuLi9jb2x1bW5zL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSWd4U3VtbWFyeVJlc3VsdCB9IGZyb20gJy4uL3N1bW1hcmllcy9ncmlkLXN1bW1hcnknO1xuaW1wb3J0IHsgSVNvcnRpbmdFeHByZXNzaW9uLCBJU29ydGluZ1N0cmF0ZWd5LCBTb3J0aW5nRGlyZWN0aW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL3NvcnRpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgSUdyaWRHcm91cGluZ1N0cmF0ZWd5LCBJR3JpZFNvcnRpbmdTdHJhdGVneSB9IGZyb20gJy4vc3RyYXRlZ3knO1xuaW1wb3J0IHsgSUZvck9mU3RhdGUsIElneEdyaWRGb3JPZkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvZm9yLW9mL2Zvcl9vZi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT3ZlcmxheVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3ZlcmxheS91dGlsaXRpZXMnO1xuaW1wb3J0IHsgSVBpbm5pbmdDb25maWcgfSBmcm9tICcuLi9ncmlkLmNvbW1vbic7XG5pbXBvcnQgeyBJRGltZW5zaW9uc0NoYW5nZSwgSVBpdm90Q29uZmlndXJhdGlvbiwgSVBpdm90RGltZW5zaW9uLCBJUGl2b3RLZXlzLCBJUGl2b3RWYWx1ZSwgSVZhbHVlc0NoYW5nZSwgUGl2b3REaW1lbnNpb25UeXBlIH0gZnJvbSAnLi4vcGl2b3QtZ3JpZC9waXZvdC1ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJRGF0YUNsb25lU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS1jbG9uZS1zdHJhdGVneSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSWd4R3JpZFZhbGlkYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vZ3JpZC9ncmlkLXZhbGlkYXRpb24uc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBJR1hfR1JJRF9CQVNFID0gbmV3IEluamVjdGlvblRva2VuPEdyaWRUeXBlPignSWd4R3JpZEJhc2VUb2tlbicpO1xuZXhwb3J0IGNvbnN0IElHWF9HUklEX1NFUlZJQ0VfQkFTRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxHcmlkU2VydmljZVR5cGU+KCdJZ3hHcmlkU2VydmljZUJhc2VUb2tlbicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQYXRoU2VnbWVudCB7XG4gICAgcm93SUQ6IGFueTtcbiAgICByb3dJc2xhbmRLZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJR3JpZERhdGFCaW5kYWJsZSB7XG4gICAgZGF0YTogYW55W10gfCBudWxsO1xuICAgIGZpbHRlcmVkRGF0YTogYW55W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2VsbFR5cGUge1xuICAgIHZhbHVlOiBhbnk7XG4gICAgZWRpdFZhbHVlOiBhbnk7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgYWN0aXZlOiBib29sZWFuO1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuICAgIGVkaXRNb2RlOiBib29sZWFuO1xuICAgIG5hdGl2ZUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICBjb2x1bW46IENvbHVtblR5cGU7XG4gICAgcm93OiBSb3dUeXBlO1xuICAgIGdyaWQ6IEdyaWRUeXBlO1xuICAgIGlkPzogeyByb3dJRDogYW55OyBjb2x1bW5JRDogbnVtYmVyOyByb3dJbmRleDogbnVtYmVyIH07XG4gICAgY2VsbElEPzogYW55O1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb24/OiBJR3JpZFZhbGlkYXRpb25TdGF0ZTtcbiAgICByZWFkb25seT86IGJvb2xlYW47XG4gICAgdGl0bGU/OiBhbnk7XG4gICAgd2lkdGg6IHN0cmluZztcbiAgICB2aXNpYmxlQ29sdW1uSW5kZXg/OiBudW1iZXI7XG4gICAgdXBkYXRlOiAodmFsdWU6IGFueSkgPT4gdm9pZDtcbiAgICBzZXRFZGl0TW9kZT8odmFsdWU6IGJvb2xlYW4pOiB2b2lkO1xuICAgIGNhbGN1bGF0ZVNpemVUb0ZpdD8ocmFuZ2U6IGFueSk6IG51bWJlcjtcbiAgICBhY3RpdmF0ZT8oZXZlbnQ6IEZvY3VzRXZlbnQgfCBLZXlib2FyZEV2ZW50KTogdm9pZDtcbiAgICBvbkRvdWJsZUNsaWNrPyhldmVudDogTW91c2VFdmVudCk6IHZvaWQ7XG4gICAgb25DbGljaz8oZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlclR5cGUge1xuICAgIG5hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgIGNvbHVtbjogQ29sdW1uVHlwZTtcbiAgICBkZW5zaXR5OiBEaXNwbGF5RGVuc2l0eTtcbiAgICBzb3J0ZWQ6IGJvb2xlYW47XG4gICAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICB0aXRsZTogYm9vbGVhbjtcbiAgICBzb3J0RGlyZWN0aW9uOiBTb3J0aW5nRGlyZWN0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvd1R5cGUge1xuICAgIG5hdGl2ZUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIHZpZXdJbmRleDogbnVtYmVyO1xuICAgIGlzR3JvdXBCeVJvdz86IGJvb2xlYW47XG4gICAgaXNTdW1tYXJ5Um93PzogYm9vbGVhbjtcbiAgICBzdW1tYXJpZXM/OiBNYXA8c3RyaW5nLCBJZ3hTdW1tYXJ5UmVzdWx0W10+O1xuICAgIGdyb3VwUm93PzogSUdyb3VwQnlSZWNvcmQ7XG4gICAga2V5PzogYW55O1xuICAgIHJlYWRvbmx5IHZhbGlkYXRpb24/OiBJR3JpZFZhbGlkYXRpb25TdGF0ZTtcbiAgICBkYXRhPzogYW55O1xuICAgIGNlbGxzPzogUXVlcnlMaXN0PENlbGxUeXBlPiB8IENlbGxUeXBlW107XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIHZpcnREaXJSb3c/OiBJZ3hHcmlkRm9yT2ZEaXJlY3RpdmU8YW55PjtcbiAgICBwaW5uZWQ/OiBib29sZWFuO1xuICAgIHNlbGVjdGVkPzogYm9vbGVhbjtcbiAgICBleHBhbmRlZD86IGJvb2xlYW47XG4gICAgZGVsZXRlZD86IGJvb2xlYW47XG4gICAgaW5FZGl0TW9kZT86IGJvb2xlYW47XG4gICAgY2hpbGRyZW4/OiBSb3dUeXBlW107XG4gICAgcGFyZW50PzogUm93VHlwZTtcbiAgICBoYXNDaGlsZHJlbj86IGJvb2xlYW47XG4gICAgdHJlZVJvdz86IElUcmVlR3JpZFJlY29yZDtcbiAgICBhZGRSb3dVST86IGJvb2xlYW47XG4gICAgZm9jdXNlZD86IGJvb2xlYW47XG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgb25Sb3dTZWxlY3RvckNsaWNrPzogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICAgIG9uQ2xpY2s/OiAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gICAgYmVnaW5BZGRSb3c/OiAoKSA9PiB2b2lkO1xuICAgIHVwZGF0ZT86ICh2YWx1ZTogYW55KSA9PiB2b2lkO1xuICAgIGRlbGV0ZT86ICgpID0+IGFueTtcbiAgICBwaW4/OiAoKSA9PiB2b2lkO1xuICAgIHVucGluPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5UeXBlIHtcbiAgICBncmlkOiBHcmlkVHlwZTtcbiAgICBjaGlsZHJlbjogUXVlcnlMaXN0PENvbHVtblR5cGU+O1xuICAgIGFsbENoaWxkcmVuOiBDb2x1bW5UeXBlW107XG4gICAgLy8gVFlQRVxuICAgIGhlYWRlckdyb3VwOiBhbnk7XG4gICAgLy8gVFlQRVxuICAgIGhlYWRlckNlbGw6IGFueTtcbiAgICB2YWxpZGF0b3JzOiBhbnlbXTtcblxuICAgIGhlYWRlclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIGNvbGxhcHNpYmxlSW5kaWNhdG9yVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIGhlYWRlckNsYXNzZXM6IGFueTtcbiAgICBoZWFkZXJTdHlsZXM6IGFueTtcbiAgICBoZWFkZXJHcm91cENsYXNzZXM6IGFueTtcbiAgICBoZWFkZXJHcm91cFN0eWxlczogYW55O1xuXG4gICAgY2FsY1dpZHRoOiBhbnk7XG4gICAgbWluV2lkdGhQeDogbnVtYmVyO1xuICAgIG1heFdpZHRoUHg6IG51bWJlcjtcbiAgICBtaW5XaWR0aDogc3RyaW5nO1xuICAgIG1heFdpZHRoOiBzdHJpbmc7XG4gICAgbWluV2lkdGhQZXJjZW50OiBudW1iZXI7XG4gICAgbWF4V2lkdGhQZXJjZW50OiBudW1iZXI7XG5cbiAgICBmaWVsZDogc3RyaW5nO1xuICAgIGhlYWRlcj86IHN0cmluZztcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIGRhdGFUeXBlOiBHcmlkQ29sdW1uRGF0YVR5cGU7XG4gICAgaW5saW5lRWRpdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgdmlzaWJsZUluZGV4OiBudW1iZXI7XG4gICAgY29sbGFwc2libGU/OiBib29sZWFuO1xuICAgIGVkaXRhYmxlOiBib29sZWFuO1xuICAgIHJlc2l6YWJsZTogYm9vbGVhbjtcbiAgICBzZWFyY2hhYmxlOiBib29sZWFuO1xuICAgIGNvbHVtbkdyb3VwOiBib29sZWFuO1xuICAgIC8qKiBAZGVwcmVjYXRlZCBpbiB2ZXJzaW9uIDEzLjEuMC4gVXNlIGBJZ3hHcmlkQ29tcG9uZW50Lm1vdmluZ2AgaW5zdGVhZC4qL1xuICAgIG1vdmFibGU6IGJvb2xlYW47XG4gICAgZ3JvdXBhYmxlOiBib29sZWFuO1xuICAgIHNvcnRhYmxlOiBib29sZWFuO1xuICAgIGZpbHRlcmFibGU6IGJvb2xlYW47XG4gICAgaGlkZGVuOiBib29sZWFuO1xuICAgIGRpc2FibGVQaW5uaW5nOiBib29sZWFuO1xuICAgIGRpc2FibGVIaWRpbmc6IGJvb2xlYW47XG4gICAgc29ydFN0cmF0ZWd5OiBJU29ydGluZ1N0cmF0ZWd5O1xuICAgIHNvcnRpbmdJZ25vcmVDYXNlOiBib29sZWFuO1xuICAgIGZpbHRlckNlbGw6IGFueTtcbiAgICBmaWx0ZXJzOiBJZ3hGaWx0ZXJpbmdPcGVyYW5kO1xuICAgIGZpbHRlcmluZ0lnbm9yZUNhc2U6IGJvb2xlYW47XG4gICAgZmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlOiBGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgaGFzU3VtbWFyeTogYm9vbGVhbjtcbiAgICBzdW1tYXJpZXM6IGFueTtcbiAgICBzdW1tYXJ5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgcGlubmVkOiBib29sZWFuO1xuICAgIGV4cGFuZGVkOiBib29sZWFuO1xuICAgIHNlbGVjdGVkOiBib29sZWFuO1xuICAgIHNlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgY29sdW1uTGF5b3V0OiBib29sZWFuO1xuICAgIGxldmVsOiBudW1iZXI7XG4gICAgcm93U3RhcnQ6IG51bWJlcjtcbiAgICByb3dFbmQ6IG51bWJlcjtcbiAgICBjb2xTdGFydDogbnVtYmVyO1xuICAgIGNvbEVuZDogbnVtYmVyO1xuICAgIGdyaWRSb3dTcGFuOiBudW1iZXI7XG4gICAgZ3JpZENvbHVtblNwYW46IG51bWJlcjtcbiAgICBjb2x1bW5MYXlvdXRDaGlsZDogYm9vbGVhbjtcbiAgICB3aWR0aDogc3RyaW5nO1xuICAgIHRvcExldmVsUGFyZW50PzogQ29sdW1uVHlwZTtcbiAgICBwYXJlbnQ/OiBDb2x1bW5UeXBlO1xuICAgIHBpcGVBcmdzOiBJQ29sdW1uUGlwZUFyZ3M7XG4gICAgaGFzTmVzdGVkUGF0aDogYm9vbGVhbjtcbiAgICBkZWZhdWx0VGltZUZvcm1hdDogc3RyaW5nO1xuICAgIGRlZmF1bHREYXRlVGltZUZvcm1hdDogc3RyaW5nO1xuICAgIGFkZGl0aW9uYWxUZW1wbGF0ZUNvbnRleHQ6IGFueTtcbiAgICBpc0xhc3RQaW5uZWQ6IGJvb2xlYW47XG4gICAgaXNGaXJzdFBpbm5lZDogYm9vbGVhbjtcbiAgICBhcHBseVNlbGVjdGFibGVDbGFzczogYm9vbGVhbjtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGdyb3VwaW5nQ29tcGFyZXI6IChhOiBhbnksIGI6IGFueSkgPT4gbnVtYmVyO1xuXG4gICAgZmlsdGVyQ2VsbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgbW92ZShpbmRleDogbnVtYmVyKTogdm9pZDtcbiAgICBnZXRBdXRvU2l6ZSgpOiBzdHJpbmc7XG4gICAgZ2V0UmVzaXphYmxlQ29sVW5kZXJFbmQoKTogTVJMUmVzaXplQ29sdW1uSW5mb1tdO1xuICAgIGdldENlbGxXaWR0aCgpOiBzdHJpbmc7XG4gICAgZ2V0R3JpZFRlbXBsYXRlKGlzUm93OiBib29sZWFuKTogc3RyaW5nO1xuICAgIHRvZ2dsZVZpc2liaWxpdHkodmFsdWU/OiBib29sZWFuKTogdm9pZDtcbiAgICBmb3JtYXR0ZXIodmFsdWU6IGFueSwgcm93RGF0YT86IGFueSk6IGFueTtcbiAgICBwb3B1bGF0ZVZpc2libGVJbmRleGVzPygpOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkRm9ybUdyb3VwQ3JlYXRlZEV2ZW50QXJncyB7XG4gICAgZm9ybUdyb3VwOiBGb3JtR3JvdXAsXG4gICAgb3duZXI6IEdyaWRUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUdyaWRWYWxpZGF0aW9uU3RhdHVzRXZlbnRBcmdzIHtcbiAgICBzdGF0dXM6IFZhbGlkYXRpb25TdGF0dXMsXG4gICAgb3duZXI6IEdyaWRUeXBlXG59XG5cbmV4cG9ydCB0eXBlIFZhbGlkYXRpb25TdGF0dXMgPSAnVkFMSUQnIHwgJ0lOVkFMSUQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElHcmlkVmFsaWRhdGlvblN0YXRlIHtcbiAgICByZWFkb25seSBzdGF0dXM6IFZhbGlkYXRpb25TdGF0dXM7XG4gICAgcmVhZG9ubHkgZXJyb3JzPzogVmFsaWRhdGlvbkVycm9ycztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmVjb3JkVmFsaWRhdGlvblN0YXRlIGV4dGVuZHMgSUdyaWRWYWxpZGF0aW9uU3RhdGUge1xuICAgIGtleTogYW55O1xuICAgIGZpZWxkczogSUZpZWxkVmFsaWRhdGlvblN0YXRlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkVmFsaWRhdGlvblN0YXRlIGV4dGVuZHMgSUdyaWRWYWxpZGF0aW9uU3RhdGUge1xuICAgIGZpZWxkOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcmlkU2VydmljZVR5cGUge1xuXG4gICAgZ3JpZDogR3JpZFR5cGU7XG4gICAgY3J1ZFNlcnZpY2U6IGFueTtcbiAgICBjbXM6IElneENvbHVtbk1vdmluZ1NlcnZpY2U7XG5cbiAgICBnZXRfZGF0YSgpOiBhbnlbXTtcbiAgICBnZXRfYWxsX2RhdGEoaW5jbHVkZVRyYW5zYWN0aW9ucz86IGJvb2xlYW4pOiBhbnlbXTtcbiAgICBnZXRfY29sdW1uX2J5X25hbWUobmFtZTogc3RyaW5nKTogQ29sdW1uVHlwZTtcbiAgICBnZXRSb3dEYXRhKGlkOiBhbnkpOiBhbnk7XG4gICAgZ2V0X3JlY19ieV9pZChpZDogYW55KTogYW55O1xuICAgIGdldF9yb3dfaWQocm93RGF0YTogYW55KTogYW55O1xuICAgIGdldF9yb3dfYnlfaW5kZXgocm93U2VsZWN0b3I6IGFueSk6IFJvd1R5cGU7XG4gICAgZ2V0X3Jvd19ieV9rZXkocm93U2VsZWN0b3I6IGFueSk6IFJvd1R5cGU7XG4gICAgZ2V0X3JlY19pbmRleF9ieV9pZChwazogc3RyaW5nIHwgbnVtYmVyLCBkYXRhQ29sbGVjdGlvbj86IGFueVtdKTogbnVtYmVyO1xuICAgIGdldF9yZWNfaWRfYnlfaW5kZXgoaW5kZXg6IG51bWJlciwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IGFueTtcbiAgICBnZXRfcm93X2luZGV4X2luX2RhdGEocm93SUQ6IGFueSwgZGF0YUNvbGxlY3Rpb24/OiBhbnlbXSk6IG51bWJlcjtcbiAgICBnZXRfY2VsbF9ieV9rZXkocm93U2VsZWN0b3I6IGFueSwgZmllbGQ6IHN0cmluZyk6IENlbGxUeXBlO1xuICAgIGdldF9jZWxsX2J5X2luZGV4KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbklEOiBudW1iZXIgfCBzdHJpbmcpOiBDZWxsVHlwZTtcbiAgICBnZXRfY2VsbF9ieV92aXNpYmxlX2luZGV4KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpO1xuICAgIHNldF9ncm91cHJvd19leHBhbnNpb25fc3RhdGU/KGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCwgdmFsdWU6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHJvd19kZWxldGVkX3RyYW5zYWN0aW9uKGlkOiBhbnkpOiBib29sZWFuO1xuICAgIGFkZFJvd1RvRGF0YShyb3dEYXRhOiBhbnksIHBhcmVudElEPzogYW55KTogdm9pZDtcbiAgICBkZWxldGVSb3dCeUlkKGlkOiBhbnkpOiBhbnk7XG4gICAgZ2V0X3Jvd19leHBhbnNpb25fc3RhdGUoaWQ6IGFueSk6IGJvb2xlYW47XG4gICAgc2V0X3Jvd19leHBhbnNpb25fc3RhdGUoaWQ6IGFueSwgZXhwYW5kZWQ6IGJvb2xlYW4sIGV2ZW50PzogRXZlbnQpOiB2b2lkO1xuICAgIGdldF9zdW1tYXJ5X2RhdGEoKTogYW55W107XG5cbiAgICBwcmVwYXJlX3NvcnRpbmdfZXhwcmVzc2lvbihzdGF0ZUNvbGxlY3Rpb25zOiBBcnJheTxBcnJheTxhbnk+PiwgZXhwcmVzc2lvbjogSVNvcnRpbmdFeHByZXNzaW9uKTogdm9pZDtcbiAgICBzb3J0KGV4cHJlc3Npb246IElTb3J0aW5nRXhwcmVzc2lvbik6IHZvaWQ7XG4gICAgc29ydF9tdWx0aXBsZShleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10pOiB2b2lkO1xuICAgIGNsZWFyX3NvcnQoZmllbGROYW1lOiBzdHJpbmcpOiB2b2lkO1xuXG4gICAgZmlsdGVyRGF0YUJ5RXhwcmVzc2lvbnMoZXhwcmVzc2lvbnNUcmVlOiBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlKTogYW55W107XG4gICAgc29ydERhdGFCeUV4cHJlc3Npb25zKGRhdGE6IGFueVtdLCBleHByZXNzaW9uczogSVNvcnRpbmdFeHByZXNzaW9uW10pOiBhbnlbXTtcblxuICAgIHVwZGF0ZV9jZWxsKGNlbGw6IElneENlbGwpOiBJR3JpZEVkaXRFdmVudEFyZ3M7XG4gICAgdXBkYXRlX3Jvdyhyb3c6IElneEVkaXRSb3csIHZhbHVlOiBhbnksIGV2ZW50PzogRXZlbnQpOiBJR3JpZEVkaXRFdmVudEFyZ3M7XG5cbiAgICBleHBhbmRfcGF0aF90b19yZWNvcmQ/KHJlY29yZDogSVRyZWVHcmlkUmVjb3JkKTogdm9pZDtcbiAgICBnZXRfc2VsZWN0ZWRfY2hpbGRyZW4/KHJlY29yZDogSVRyZWVHcmlkUmVjb3JkLCBzZWxlY3RlZFJvd0lEczogYW55W10pOiB2b2lkO1xuICAgIGdldF9ncm91cEJ5X3JlY29yZF9pZD8oZ1JvdzogSUdyb3VwQnlSZWNvcmQpOiBzdHJpbmc7XG4gICAgcmVtb3ZlX2dyb3VwaW5nX2V4cHJlc3Npb24/KGZpZWxkTmFtZTogc3RyaW5nKTogdm9pZDtcbiAgICBjbGVhcl9ncm91cGJ5PyhmaWVsZDogc3RyaW5nIHwgYW55KTogdm9pZDtcbiAgICBnZXRQYXJlbnRSb3dJZD8oY2hpbGQ6IEdyaWRUeXBlKTogYW55O1xuICAgIGdldENoaWxkR3JpZHM/KGluRGVwdGg/OiBib29sZWFuKTogR3JpZFR5cGVbXTtcbiAgICBnZXRDaGlsZEdyaWQ/KHBhdGg6IElQYXRoU2VnbWVudFtdKTogR3JpZFR5cGU7XG5cbiAgICB1bnNldENoaWxkUm93SXNsYW5kPyhyb3dJc2xhbmQ6IEdyaWRUeXBlKTogdm9pZDtcbiAgICByZWdpc3RlckNoaWxkUm93SXNsYW5kPyhyb3dJc2xhbmQ6IEdyaWRUeXBlKTogdm9pZDtcbn1cblxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIGEgR3JpZCB0eXBlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR3JpZFR5cGUgZXh0ZW5kcyBJR3JpZERhdGFCaW5kYWJsZSB7XG4gICAgZGlzcGxheURlbnNpdHk6IERpc3BsYXlEZW5zaXR5O1xuICAgIGxvY2FsZTogc3RyaW5nO1xuICAgIHJlc291cmNlU3RyaW5nczogSUdyaWRSZXNvdXJjZVN0cmluZ3M7XG4gICAgbmF0aXZlRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgcm93RWRpdGFibGU6IGJvb2xlYW47XG4gICAgcm9vdFN1bW1hcmllc0VuYWJsZWQ6IGJvb2xlYW47XG4gICAgYWxsb3dGaWx0ZXJpbmc6IGJvb2xlYW47XG4gICAgcm93RHJhZ2dhYmxlOiBib29sZWFuO1xuICAgIHByaW1hcnlLZXk6IGFueTtcbiAgICBpZDogc3RyaW5nO1xuICAgIHJlbmRlcmVkUm93SGVpZ2h0OiBudW1iZXI7XG4gICAgcGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICBzdW1tYXJ5UGlwZVRyaWdnZXI6IG51bWJlcjtcbiAgICBmaWx0ZXJpbmdQaXBlVHJpZ2dlcjogbnVtYmVyO1xuICAgIGhhc0NvbHVtbkxheW91dHM6IGJvb2xlYW47XG4gICAgbW92aW5nOiBib29sZWFuO1xuICAgIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgICBkYXRhQ2xvbmVTdHJhdGVneTogSURhdGFDbG9uZVN0cmF0ZWd5O1xuXG4gICAgZ3JpZEFQSTogR3JpZFNlcnZpY2VUeXBlO1xuXG4gICAgZmlsdGVyTW9kZTogRmlsdGVyTW9kZTtcblxuICAgIC8vIFRZUEVcbiAgICB0aGVhZFJvdzogYW55O1xuICAgIGdyb3VwQXJlYTogYW55O1xuICAgIGZpbHRlckNlbGxMaXN0OiBhbnlbXTtcbiAgICBmaWx0ZXJpbmdSb3c6IGFueTtcbiAgICBhY3Rpb25TdHJpcDogYW55O1xuICAgIHJlc2l6ZUxpbmU6IGFueTtcblxuICAgIHRmb290OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgICBwYWdpbmF0b3I6IElneFBhZ2luYXRvckNvbXBvbmVudDtcbiAgICBwYWdpbmF0b3JMaXN0PzogUXVlcnlMaXN0PElneFBhZ2luYXRvckNvbXBvbmVudD47XG4gICAgY3J1ZFNlcnZpY2U6IGFueTtcbiAgICBzdW1tYXJ5U2VydmljZTogYW55O1xuXG5cblxuICAgIHZpcnR1YWxpemF0aW9uU3RhdGU6IElGb3JPZlN0YXRlO1xuICAgIC8vIFRZUEVcbiAgICBzZWxlY3Rpb25TZXJ2aWNlOiBhbnk7XG4gICAgbmF2aWdhdGlvbjogYW55O1xuICAgIGZpbHRlcmluZ1NlcnZpY2U6IGFueTtcbiAgICBvdXRsZXQ6IGFueTtcbiAgICBoYXNNb3ZhYmxlQ29sdW1uczogYm9vbGVhbjtcbiAgICBpc1Jvd1NlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgc2hvd1Jvd1NlbGVjdG9yczogYm9vbGVhbjtcbiAgICBpc1Bpbm5pbmdUb1N0YXJ0OiBib29sZWFuO1xuICAgIGNvbHVtbkluRHJhZzogYW55O1xuICAgIHBpbm5lZFdpZHRoOiBudW1iZXI7XG4gICAgdW5waW5uZWRXaWR0aDogbnVtYmVyO1xuICAgIHN1bW1hcmllc01hcmdpbjogbnVtYmVyO1xuICAgIGhlYWRTZWxlY3RvckJhc2VBcmlhTGFiZWw6IHN0cmluZztcblxuICAgIGhhc1Zpc2libGVDb2x1bW5zOiBib29sZWFuO1xuICAgIGhhc0V4cGFuZGFibGVDaGlsZHJlbj86IGJvb2xlYW47XG4gICAgc2hvd0V4cGFuZEFsbD86IGJvb2xlYW47XG5cbiAgICBoaWRkZW5Db2x1bW5zQ291bnQ6IG51bWJlcjtcbiAgICBwaW5uZWRDb2x1bW5zQ291bnQ6IG51bWJlcjtcblxuICAgIGljb25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gICAgZ3JvdXBSb3dUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPElneEdyb3VwQnlSb3dUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIGdyb3VwQnlSb3dTZWxlY3RvclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8SWd4R3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGVDb250ZXh0PjtcbiAgICByb3dMb2FkaW5nSW5kaWNhdG9yVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIGhlYWRTZWxlY3RvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hIZWFkU2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIHJvd1NlbGVjdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneFJvd1NlbGVjdG9yVGVtcGxhdGVDb250ZXh0PjtcbiAgICBzb3J0SGVhZGVySWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkSGVhZGVyVGVtcGxhdGVDb250ZXh0PjtcbiAgICBzb3J0QXNjZW5kaW5nSGVhZGVySWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkSGVhZGVyVGVtcGxhdGVDb250ZXh0PjtcbiAgICBzb3J0RGVzY2VuZGluZ0hlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZEhlYWRlclRlbXBsYXRlQ29udGV4dD47XG4gICAgaGVhZGVyQ29sbGFwc2VJbmRpY2F0b3JUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SWd4R3JpZFRlbXBsYXRlQ29udGV4dD47XG4gICAgaGVhZGVyRXhwYW5kSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIGRyYWdJbmRpY2F0b3JJY29uVGVtcGxhdGU6IGFueTtcbiAgICBkcmFnSW5kaWNhdG9ySWNvbkJhc2U6IGFueTtcbiAgICBkaXNhYmxlVHJhbnNpdGlvbnM6IGJvb2xlYW47XG4gICAgY3VycmVuY3lQb3NpdGlvbkxlZnQ6IGJvb2xlYW47XG5cbiAgICBjb2x1bW5XaWR0aFNldEJ5VXNlcjogYm9vbGVhbjtcbiAgICBoZWFkZXJGZWF0dXJlc1dpZHRoOiBudW1iZXI7XG4gICAgY2FsY0hlaWdodDogbnVtYmVyO1xuICAgIGNhbGNXaWR0aDogbnVtYmVyO1xuICAgIG91dGVyV2lkdGg6IG51bWJlcjtcbiAgICByb3dIZWlnaHQ6IG51bWJlcjtcbiAgICBtdWx0aVJvd0xheW91dFJvd1NpemU6IG51bWJlcjtcbiAgICBkZWZhdWx0SGVhZGVyR3JvdXBNaW5XaWR0aDogYW55O1xuICAgIG1heExldmVsSGVhZGVyRGVwdGg6IG51bWJlcjtcbiAgICBkZWZhdWx0Um93SGVpZ2h0OiBudW1iZXI7XG4gICAgX2Jhc2VGb250U2l6ZT86IG51bWJlcjtcbiAgICBzY3JvbGxTaXplOiBudW1iZXI7XG5cbiAgICB2YWxpZGF0aW9uVHJpZ2dlcjogR3JpZFZhbGlkYXRpb25UcmlnZ2VyO1xuICAgIHBpbm5pbmc6IElQaW5uaW5nQ29uZmlnO1xuICAgIGV4cGFuc2lvblN0YXRlczogTWFwPGFueSwgYm9vbGVhbj47XG4gICAgcGFyZW50VmlydERpcjogYW55O1xuICAgIHRib2R5OiBhbnk7XG4gICAgdmVydGljYWxTY3JvbGxDb250YWluZXI6IGFueTtcbiAgICBkYXRhUm93TGlzdDogYW55O1xuICAgIHJvd0xpc3Q6IGFueTtcbiAgICBjb2x1bW5MaXN0OiBRdWVyeUxpc3Q8Q29sdW1uVHlwZT47XG4gICAgY29sdW1uczogQ29sdW1uVHlwZVtdO1xuICAgIHZpc2libGVDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgdW5waW5uZWRDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgcGlubmVkQ29sdW1uczogQ29sdW1uVHlwZVtdO1xuICAgIGhlYWRlckNlbGxMaXN0OiBhbnlbXTtcbiAgICBoZWFkZXJHcm91cHM6IGFueVtdO1xuICAgIGhlYWRlckdyb3Vwc0xpc3Q6IGFueVtdO1xuICAgIHN1bW1hcmllc1Jvd0xpc3Q6IGFueTtcbiAgICBoZWFkZXJDb250YWluZXI6IGFueTtcbiAgICBpc0NlbGxTZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIGlzTXVsdGlSb3dTZWxlY3Rpb25FbmFibGVkOiBib29sZWFuO1xuICAgIGhhc1Bpbm5lZFJlY29yZHM6IGJvb2xlYW47XG4gICAgcGlubmVkUmVjb3Jkc0NvdW50OiBudW1iZXI7XG4gICAgcGlubmVkUmVjb3JkczogYW55W107XG4gICAgdW5waW5uZWRSZWNvcmRzOiBhbnlbXTtcbiAgICBwaW5uZWREYXRhVmlldzogYW55W107XG4gICAgcGlubmVkUm93czogYW55W107XG4gICAgZGF0YVZpZXc6IGFueVtdO1xuICAgIF9maWx0ZXJlZFVucGlubmVkRGF0YTogYW55W107XG4gICAgX2ZpbHRlcmVkU29ydGVkVW5waW5uZWREYXRhOiBhbnlbXTtcbiAgICBmaWx0ZXJlZFNvcnRlZERhdGE6IGFueVtdO1xuICAgIGRhdGFXaXRoQWRkZWRJblRyYW5zYWN0aW9uUm93czogYW55W107XG4gICAgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvblNlcnZpY2U8VHJhbnNhY3Rpb24sIFN0YXRlPjtcbiAgICB2YWxpZGF0aW9uOiBJZ3hHcmlkVmFsaWRhdGlvblNlcnZpY2U7XG4gICAgZGVmYXVsdFN1bW1hcnlIZWlnaHQ6IG51bWJlcjtcbiAgICBzdW1tYXJ5Um93SGVpZ2h0OiBudW1iZXI7XG4gICAgcm93RWRpdGluZ092ZXJsYXk6IElneFRvZ2dsZURpcmVjdGl2ZTtcbiAgICB0b3RhbFJvd3NDb3VudEFmdGVyRmlsdGVyOiBudW1iZXI7XG4gICAgX3RvdGFsUmVjb3JkczogbnVtYmVyO1xuXG4gICAgcGFnaW5nTW9kZTogR3JpZFBhZ2luZ01vZGU7XG4gICAgcGFnaW5nU3RhdGU6IGFueTtcblxuICAgIHJvd0VkaXRUYWJzOiBhbnk7XG4gICAgbGFzdFNlYXJjaEluZm86IElTZWFyY2hJbmZvO1xuICAgIHBhZ2U6IG51bWJlcjtcbiAgICBwZXJQYWdlOiBudW1iZXI7XG4gICAgZHJhZ1Jvd0lEOiBhbnk7XG4gICAgcm93RHJhZ2dpbmc6IGJvb2xlYW47XG4gICAgZXZlblJvd0NTUzogc3RyaW5nO1xuICAgIG9kZFJvd0NTUzogc3RyaW5nO1xuXG4gICAgZmlyc3RFZGl0YWJsZUNvbHVtbkluZGV4OiBudW1iZXI7XG4gICAgbGFzdEVkaXRhYmxlQ29sdW1uSW5kZXg6IG51bWJlcjtcbiAgICBpc1Jvd1Bpbm5pbmdUb1RvcDogYm9vbGVhbjtcbiAgICBoYXNEZXRhaWxzOiBib29sZWFuO1xuICAgIGhhc1N1bW1hcml6ZWRDb2x1bW5zOiBib29sZWFuO1xuICAgIGhhc0NvbHVtbkdyb3VwczogYm9vbGVhbjtcbiAgICBoYXNFZGl0YWJsZUNvbHVtbnM6IGJvb2xlYW47XG4gICAgdW5pcXVlQ29sdW1uVmFsdWVzU3RyYXRlZ3k6IChjb2x1bW46IENvbHVtblR5cGUsIHRyZWU6IEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSwgZG9uZTogKHZhbHVlczogYW55W10pID0+IHZvaWQpID0+IHZvaWQ7XG4gICAgZ2V0SGVhZGVyQ2VsbFdpZHRoOiAoZWxlbWVudDogSFRNTEVsZW1lbnQpID0+IElTaXplSW5mbztcblxuICAgIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWY7XG4gICAgZG9jdW1lbnQ6IERvY3VtZW50O1xuICAgIHJvd0V4cGFuZGVkSW5kaWNhdG9yVGVtcGxhdGU6IFRlbXBsYXRlUmVmPElneEdyaWRSb3dUZW1wbGF0ZUNvbnRleHQ+O1xuICAgIHJvd0NvbGxhcHNlZEluZGljYXRvclRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkUm93VGVtcGxhdGVDb250ZXh0PjtcbiAgICBleGNlbFN0eWxlSGVhZGVySWNvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxJZ3hHcmlkSGVhZGVyVGVtcGxhdGVDb250ZXh0PjtcblxuICAgIHNlbGVjdFJvd09uQ2xpY2s6IGJvb2xlYW47XG4gICAgY2VsbFNlbGVjdGlvbjogR3JpZFNlbGVjdGlvbk1vZGU7XG4gICAgcm93U2VsZWN0aW9uOiBHcmlkU2VsZWN0aW9uTW9kZTtcbiAgICBjb2x1bW5TZWxlY3Rpb246IEdyaWRTZWxlY3Rpb25Nb2RlO1xuICAgIHN1bW1hcnlDYWxjdWxhdGlvbk1vZGU6IEdyaWRTdW1tYXJ5Q2FsY3VsYXRpb25Nb2RlO1xuICAgIHN1bW1hcnlQb3NpdGlvbjogR3JpZFN1bW1hcnlQb3NpdGlvbjtcblxuICAgIC8vIFhYWDogV29yayBhcm91bmQgdGlsbCB3ZSBmaXhlZCB0aGUgaW5qZWN0aW9uIHRva2Vuc1xuICAgIGxhc3RDaGlsZEdyaWQ/OiBHcmlkVHlwZTtcbiAgICB0b29sYmFyT3V0bGV0PzogVmlld0NvbnRhaW5lclJlZjtcbiAgICBwYWdpbmF0b3JPdXRsZXQ/OiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIGZsYXREYXRhPzogYW55W10gfCBudWxsO1xuICAgIGNoaWxkUm93PzogYW55O1xuICAgIGV4cGFuc2lvbkRlcHRoPzogbnVtYmVyO1xuICAgIGNoaWxkRGF0YUtleT86IGFueTtcbiAgICBmb3JlaWduS2V5PzogYW55O1xuICAgIGNhc2NhZGVPbkRlbGV0ZT86IGJvb2xlYW47XG4gICAgbG9hZENoaWxkcmVuT25EZW1hbmQ/OiAocGFyZW50SUQ6IGFueSwgZG9uZTogKGNoaWxkcmVuOiBhbnlbXSkgPT4gdm9pZCkgPT4gdm9pZDtcbiAgICBoYXNDaGlsZHJlbktleT86IGFueTtcbiAgICBsb2FkaW5nUm93cz86IFNldDxhbnk+O1xuICAgIHBhcmVudD86IEdyaWRUeXBlO1xuICAgIGhpZ2hsaWdodGVkUm93SUQ/OiBhbnk7XG4gICAgdXBkYXRlT25SZW5kZXI/OiBib29sZWFuO1xuICAgIGNoaWxkTGF5b3V0S2V5cz86IGFueVtdO1xuICAgIGNoaWxkTGF5b3V0TGlzdD86IFF1ZXJ5TGlzdDxhbnk+O1xuICAgIHJvb3RHcmlkPzogR3JpZFR5cGU7XG4gICAgcHJvY2Vzc2VkUm9vdFJlY29yZHM/OiBJVHJlZUdyaWRSZWNvcmRbXTtcbiAgICByb290UmVjb3Jkcz86IElUcmVlR3JpZFJlY29yZFtdO1xuICAgIHJlY29yZHM/OiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+O1xuICAgIHByb2Nlc3NlZEV4cGFuZGVkRmxhdERhdGE/OiBhbnlbXSB8IG51bGw7XG4gICAgcHJvY2Vzc2VkUmVjb3Jkcz86IE1hcDxhbnksIElUcmVlR3JpZFJlY29yZD47XG4gICAgdHJlZUdyb3VwQXJlYT86IGFueTtcblxuICAgIGFjdGl2ZU5vZGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJQWN0aXZlTm9kZUNoYW5nZUV2ZW50QXJncz47XG4gICAgZ3JpZEtleWRvd246IEV2ZW50RW1pdHRlcjxJR3JpZEtleWRvd25FdmVudEFyZ3M+O1xuICAgIGNlbGxDbGljazogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgZG91YmxlQ2xpY2s6IEV2ZW50RW1pdHRlcjxJR3JpZENlbGxFdmVudEFyZ3M+O1xuICAgIGNvbnRleHRNZW51OiBFdmVudEVtaXR0ZXI8SUdyaWRDZWxsRXZlbnRBcmdzPjtcbiAgICBzZWxlY3RlZDogRXZlbnRFbWl0dGVyPElHcmlkQ2VsbEV2ZW50QXJncz47XG4gICAgcmFuZ2VTZWxlY3RlZDogRXZlbnRFbWl0dGVyPEdyaWRTZWxlY3Rpb25SYW5nZT47XG4gICAgcm93U2VsZWN0aW9uQ2hhbmdpbmc6IEV2ZW50RW1pdHRlcjxJUm93U2VsZWN0aW9uRXZlbnRBcmdzPjtcbiAgICBsb2NhbGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbiAgICBmaWx0ZXJpbmc6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXZlbnRBcmdzPjtcbiAgICBmaWx0ZXJpbmdEb25lOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZT47XG4gICAgY29sdW1uUGlubmVkOiBFdmVudEVtaXR0ZXI8SVBpbkNvbHVtbkV2ZW50QXJncz47XG4gICAgY29sdW1uUmVzaXplZDogRXZlbnRFbWl0dGVyPElDb2x1bW5SZXNpemVFdmVudEFyZ3M+O1xuICAgIGNvbHVtbk1vdmluZ0VuZDogRXZlbnRFbWl0dGVyPElDb2x1bW5Nb3ZpbmdFbmRFdmVudEFyZ3M+O1xuICAgIGNvbHVtblNlbGVjdGlvbkNoYW5naW5nOiBFdmVudEVtaXR0ZXI8SUNvbHVtblNlbGVjdGlvbkV2ZW50QXJncz47XG4gICAgY29sdW1uTW92aW5nOiBFdmVudEVtaXR0ZXI8SUNvbHVtbk1vdmluZ0V2ZW50QXJncz47XG4gICAgY29sdW1uTW92aW5nU3RhcnQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uTW92aW5nU3RhcnRFdmVudEFyZ3M+O1xuICAgIGNvbHVtblBpbjogRXZlbnRFbWl0dGVyPElQaW5Db2x1bW5DYW5jZWxsYWJsZUV2ZW50QXJncz47XG4gICAgY29sdW1uVmlzaWJpbGl0eUNoYW5naW5nOiBFdmVudEVtaXR0ZXI8SUNvbHVtblZpc2liaWxpdHlDaGFuZ2luZ0V2ZW50QXJncz47XG4gICAgY29sdW1uVmlzaWJpbGl0eUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJQ29sdW1uVmlzaWJpbGl0eUNoYW5nZWRFdmVudEFyZ3M+O1xuICAgIGJhdGNoRWRpdGluZ0NoYW5nZT86IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcbiAgICBvbkRlbnNpdHlDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8SURlbnNpdHlDaGFuZ2VkRXZlbnRBcmdzPjtcbiAgICByb3dBZGQ6IEV2ZW50RW1pdHRlcjxJR3JpZEVkaXRFdmVudEFyZ3M+O1xuICAgIHJvd0FkZGVkOiBFdmVudEVtaXR0ZXI8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIHJvd0FkZGVkTm90aWZpZXI6IFN1YmplY3Q8SVJvd0RhdGFFdmVudEFyZ3M+O1xuICAgIHJvd0RlbGV0ZWQ6IEV2ZW50RW1pdHRlcjxJUm93RGF0YUV2ZW50QXJncz47XG4gICAgcm93RGVsZXRlZE5vdGlmaWVyOiBTdWJqZWN0PElSb3dEYXRhRXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdEVudGVyOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICBjZWxsRWRpdDogRXZlbnRFbWl0dGVyPElHcmlkRWRpdEV2ZW50QXJncz47XG4gICAgY2VsbEVkaXREb25lOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgY2VsbEVkaXRFeGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgcm93RWRpdEVudGVyOiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICByb3dFZGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RXZlbnRBcmdzPjtcbiAgICByb3dFZGl0RG9uZTogRXZlbnRFbWl0dGVyPElHcmlkRWRpdERvbmVFdmVudEFyZ3M+O1xuICAgIHJvd0VkaXRFeGl0OiBFdmVudEVtaXR0ZXI8SUdyaWRFZGl0RG9uZUV2ZW50QXJncz47XG4gICAgcm93RHJhZ1N0YXJ0OiBFdmVudEVtaXR0ZXI8SVJvd0RyYWdTdGFydEV2ZW50QXJncz47XG4gICAgcm93RHJhZ0VuZDogRXZlbnRFbWl0dGVyPElSb3dEcmFnRW5kRXZlbnRBcmdzPjtcbiAgICByb3dUb2dnbGU6IEV2ZW50RW1pdHRlcjxJUm93VG9nZ2xlRXZlbnRBcmdzPjtcbiAgICBmb3JtR3JvdXBDcmVhdGVkOiBFdmVudEVtaXR0ZXI8SUdyaWRGb3JtR3JvdXBDcmVhdGVkRXZlbnRBcmdzPjtcbiAgICB2YWxpZGF0aW9uU3RhdHVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUdyaWRWYWxpZGF0aW9uU3RhdHVzRXZlbnRBcmdzPjtcblxuICAgIHRvb2xiYXJFeHBvcnRpbmc6IEV2ZW50RW1pdHRlcjxJR3JpZFRvb2xiYXJFeHBvcnRFdmVudEFyZ3M+O1xuICAgIHJlbmRlcmVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICByZXNpemVOb3RpZnk6IFN1YmplY3Q8dm9pZD47XG5cbiAgICBzb3J0U3RyYXRlZ3k6IElHcmlkU29ydGluZ1N0cmF0ZWd5O1xuICAgIGdyb3VwU3RyYXRlZ3k/OiBJR3JpZEdyb3VwaW5nU3RyYXRlZ3k7XG4gICAgZmlsdGVyaW5nTG9naWM6IEZpbHRlcmluZ0xvZ2ljO1xuICAgIGZpbHRlclN0cmF0ZWd5OiBJRmlsdGVyaW5nU3RyYXRlZ3k7XG4gICAgYWxsb3dBZHZhbmNlZEZpbHRlcmluZzogYm9vbGVhbjtcbiAgICBzb3J0aW5nRXhwcmVzc2lvbnM6IElTb3J0aW5nRXhwcmVzc2lvbltdO1xuICAgIHNvcnRpbmdFeHByZXNzaW9uc0NoYW5nZTogRXZlbnRFbWl0dGVyPElTb3J0aW5nRXhwcmVzc2lvbltdPjtcbiAgICBmaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgZmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZT47XG4gICAgYWR2YW5jZWRGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgYWR2YW5jZWRGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlPjtcbiAgICBzb3J0aW5nT3B0aW9uczogSVNvcnRpbmdPcHRpb25zO1xuXG4gICAgYmF0Y2hFZGl0aW5nOiBib29sZWFuO1xuICAgIGdyb3VwaW5nRXhwYW5zaW9uU3RhdGU/OiBJR3JvdXBCeUV4cGFuZFN0YXRlW107XG4gICAgZ3JvdXBpbmdFeHByZXNzaW9ucz86IElHcm91cGluZ0V4cHJlc3Npb25bXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zQ2hhbmdlPzogRXZlbnRFbWl0dGVyPElHcm91cGluZ0V4cHJlc3Npb25bXT47XG4gICAgZ3JvdXBzRXhwYW5kZWQ/OiBib29sZWFuO1xuICAgIGdyb3Vwc1JlY29yZHM/OiBJR3JvdXBCeVJlY29yZFtdO1xuICAgIGdyb3VwaW5nRmxhdFJlc3VsdD86IGFueVtdO1xuICAgIGdyb3VwaW5nUmVzdWx0PzogYW55W107XG4gICAgZ3JvdXBpbmdNZXRhZGF0YT86IGFueVtdO1xuICAgIHNlbGVjdGVkQ2VsbHM/OiBDZWxsVHlwZVtdO1xuICAgIHNlbGVjdGVkUm93czogYW55W107XG4gICAgYWN0aXZlRGVzY2VuZGFudD86IHN0cmluZztcbiAgICBpc1Bpdm90PzogYm9vbGVhbjtcblxuICAgIHRvZ2dsZUdyb3VwPyhncm91cFJvdzogSUdyb3VwQnlSZWNvcmQpOiB2b2lkO1xuICAgIGNsZWFyR3JvdXBpbmc/KGZpZWxkOiBzdHJpbmcpOiB2b2lkO1xuICAgIGdyb3VwQnk/KGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24gfCBBcnJheTxJR3JvdXBpbmdFeHByZXNzaW9uPik6IHZvaWQ7XG4gICAgcmVzb2x2ZU91dGxldD8oKTogSWd4T3ZlcmxheU91dGxldERpcmVjdGl2ZTtcbiAgICB1cGRhdGVDb2x1bW5zKGNvbHVtbnM6IENvbHVtblR5cGVbXSk6IHZvaWQ7XG4gICAgZ2V0U2VsZWN0ZWRSYW5nZXMoKTogR3JpZFNlbGVjdGlvblJhbmdlW107XG4gICAgZGVzZWxlY3RBbGxDb2x1bW5zKCk6IHZvaWQ7XG4gICAgZGVzZWxlY3RDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdIHwgQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICBzZWxlY3RDb2x1bW5zKGNvbHVtbnM6IHN0cmluZ1tdIHwgQ29sdW1uVHlwZVtdKTogdm9pZDtcbiAgICBzZWxlY3RlZENvbHVtbnMoKTogQ29sdW1uVHlwZVtdO1xuICAgIHJlZnJlc2hTZWFyY2goKTogdm9pZDtcbiAgICBnZXREZWZhdWx0RXhwYW5kU3RhdGUocmVjb3JkOiBhbnkpOiBib29sZWFuO1xuICAgIHRyYWNrQ29sdW1uQ2hhbmdlcyhpbmRleDogbnVtYmVyLCBjb2x1bW46IGFueSk6IGFueTtcbiAgICBnZXRQb3NzaWJsZUNvbHVtbldpZHRoKCk6IHN0cmluZztcbiAgICByZXNldEhvcml6b250YWxWaXJ0dWFsaXphdGlvbigpOiB2b2lkO1xuICAgIGhhc1ZlcnRpY2FsU2Nyb2xsKCk6IGJvb2xlYW47XG4gICAgZ2V0VmlzaWJsZUNvbnRlbnRIZWlnaHQoKTogbnVtYmVyO1xuICAgIGdldERyYWdHaG9zdEN1c3RvbVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsO1xuICAgIG9wZW5Sb3dPdmVybGF5KGlkOiBhbnkpOiB2b2lkO1xuICAgIG9wZW5BZHZhbmNlZEZpbHRlcmluZ0RpYWxvZygpOiB2b2lkO1xuICAgIHNob3dTbmFja2JhckZvcihpbmRleDogbnVtYmVyKTogdm9pZDtcbiAgICBnZXRDb2x1bW5CeU5hbWUobmFtZTogc3RyaW5nKTogYW55O1xuICAgIGdldENvbHVtbkJ5VmlzaWJsZUluZGV4KGluZGV4OiBudW1iZXIpOiBDb2x1bW5UeXBlO1xuICAgIGdldEhlYWRlckdyb3VwV2lkdGgoY29sdW1uOiBDb2x1bW5UeXBlKTogc3RyaW5nO1xuICAgIGdldFJvd0J5S2V5PyhrZXk6IGFueSk6IFJvd1R5cGU7XG4gICAgZ2V0Um93QnlJbmRleD8oaW5kZXg6IG51bWJlcik6IFJvd1R5cGU7XG4gICAgc2V0RmlsdGVyZWREYXRhKGRhdGE6IGFueSwgcGlubmVkOiBib29sZWFuKTogdm9pZDtcbiAgICBzZXRGaWx0ZXJlZFNvcnRlZERhdGEoZGF0YTogYW55LCBwaW5uZWQ6IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNvcnQoZXhwcmVzc2lvbjogSVNvcnRpbmdFeHByZXNzaW9uIHwgSVNvcnRpbmdFeHByZXNzaW9uW10pOiB2b2lkO1xuICAgIGNsZWFyU29ydChuYW1lPzogc3RyaW5nKTogdm9pZDtcbiAgICBwaW5Sb3coaWQ6IGFueSwgaW5kZXg/OiBudW1iZXIsIHJvdz86IFJvd1R5cGUpOiBib29sZWFuO1xuICAgIHVucGluUm93KGlkOiBhbnksIHJvdz86IFJvd1R5cGUpOiBib29sZWFuO1xuICAgIGdldFVucGlubmVkSW5kZXhCeUlkKGlkOiBhbnkpOiBudW1iZXI7XG4gICAgZ2V0RW1wdHlSZWNvcmRPYmplY3RGb3IoaW5Sb3c6IFJvd1R5cGUpOiBhbnk7XG4gICAgaXNTdW1tYXJ5Um93KHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc1JlY29yZFBpbm5lZChyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgZ2V0SW5pdGlhbFBpbm5lZEluZGV4KHJlYzogYW55KTogbnVtYmVyO1xuICAgIGlzUmVjb3JkUGlubmVkQnlWaWV3SW5kZXgocm93SW5kZXg6IG51bWJlcik6IGJvb2xlYW47XG4gICAgaXNDb2x1bW5Hcm91cGVkKGZpZWxkTmFtZTogc3RyaW5nKTogYm9vbGVhbjtcbiAgICBpc0RldGFpbFJlY29yZChyZWM6IGFueSk6IGJvb2xlYW47XG4gICAgaXNHcm91cEJ5UmVjb3JkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc0dob3N0UmVjb3JkKHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc1RyZWVSb3c/KHJlYzogYW55KTogYm9vbGVhbjtcbiAgICBpc0NoaWxkR3JpZFJlY29yZD8ocmVjOiBhbnkpOiBib29sZWFuO1xuICAgIGdldENoaWxkR3JpZHM/KGluRGVwdGg/OiBib29sZWFuKTogYW55W107XG4gICAgaXNIaWVyYXJjaGljYWxSZWNvcmQ/KHJlY29yZDogYW55KTogYm9vbGVhbjtcbiAgICBjb2x1bW5Ub1Zpc2libGVJbmRleChrZXk6IHN0cmluZyB8IG51bWJlcik6IG51bWJlcjtcbiAgICBtb3ZlQ29sdW1uKGNvbHVtbjogQ29sdW1uVHlwZSwgdGFyZ2V0OiBDb2x1bW5UeXBlLCBwb3M6IERyb3BQb3NpdGlvbik6IHZvaWQ7XG4gICAgbmF2aWdhdGVUbyhyb3dJbmRleDogbnVtYmVyLCB2aXNpYmxlQ29sdW1uSW5kZXg6IG51bWJlciwgY2FsbGJhY2s/OiAoZTogYW55KSA9PiBhbnkpOiB2b2lkO1xuICAgIGdldFByZXZpb3VzQ2VsbChjdXJyUm93SW5kZXg6IG51bWJlciwgY3VyVmlzaWJsZUNvbEluZGV4OiBudW1iZXIsIGNhbGxiYWNrOiAoYzogQ29sdW1uVHlwZSkgPT4gYm9vbGVhbik6IElDZWxsUG9zaXRpb247XG4gICAgZ2V0TmV4dENlbGwoY3VyclJvd0luZGV4OiBudW1iZXIsIGN1clZpc2libGVDb2xJbmRleDogbnVtYmVyLCBjYWxsYmFjazogKGM6IENvbHVtblR5cGUpID0+IGJvb2xlYW4pOiBJQ2VsbFBvc2l0aW9uO1xuICAgIGNsZWFyQ2VsbFNlbGVjdGlvbigpOiB2b2lkO1xuICAgIHNlbGVjdFJhbmdlKHJhbmdlOiBHcmlkU2VsZWN0aW9uUmFuZ2UgfCBHcmlkU2VsZWN0aW9uUmFuZ2VbXSk6IHZvaWQ7XG4gICAgc2VsZWN0Um93cyhyb3dJRHM6IGFueVtdLCBjbGVhckN1cnJlbnRTZWxlY3Rpb24/OiBib29sZWFuKTogdm9pZDtcbiAgICBkZXNlbGVjdFJvd3Mocm93SURzOiBhbnlbXSk6IHZvaWQ7XG4gICAgc2VsZWN0QWxsUm93cyhvbmx5RmlsdGVyRGF0YT86IGJvb2xlYW4pOiB2b2lkO1xuICAgIGRlc2VsZWN0QWxsUm93cyhvbmx5RmlsdGVyRGF0YT86IGJvb2xlYW4pOiB2b2lkO1xuICAgIHNldFVwUGFnaW5hdG9yKCk6IHZvaWQ7XG4gICAgY3JlYXRlRmlsdGVyRHJvcGRvd24oY29sdW1uOiBDb2x1bW5UeXBlLCBvcHRpb25zOiBPdmVybGF5U2V0dGluZ3MpOiBhbnk7XG4gICAgLy8gVHlwZSB0byBSb3dUeXBlXG4gICAgY3JlYXRlUm93PyhpbmRleDogbnVtYmVyLCBkYXRhPzogYW55KTogUm93VHlwZTtcbiAgICBkZWxldGVSb3coaWQ6IGFueSk6IGFueTtcbiAgICBkZWxldGVSb3dCeUlkKGlkOiBhbnkpOiBhbnk7XG4gICAgY29sbGFwc2VSb3coaWQ6IGFueSk6IHZvaWQ7XG4gICAgbm90aWZ5Q2hhbmdlcyhyZXBhaW50PzogYm9vbGVhbik6IHZvaWQ7XG4gICAgcmVzZXRDb2x1bW5Db2xsZWN0aW9ucygpOiB2b2lkO1xuICAgIHRyaWdnZXJQaXBlcygpOiB2b2lkO1xuICAgIHJlcG9zaXRpb25Sb3dFZGl0aW5nT3ZlcmxheShyb3c6IFJvd1R5cGUpOiB2b2lkO1xuICAgIGNsb3NlUm93RWRpdGluZ092ZXJsYXkoKTogdm9pZDtcbiAgICByZWZsb3coKTogdm9pZDtcblxuICAgIC8vIFRPRE86IE1heWJlIG1vdmUgdGhlbSB0byBGbGF0R3JpZFR5cGUsIGJ1dCB0aGVuIHdpbGwgd2UgbmVlZCBhbm90aGVyIHRva2VuP1xuICAgIGlzRXhwYW5kZWRHcm91cChncm91cDogSUdyb3VwQnlSZWNvcmQpOiBib29sZWFuO1xuICAgIGNyZWF0ZUNvbHVtbnNMaXN0Pyhjb2xzOiBDb2x1bW5UeXBlW10pOiB2b2lkO1xuICAgIHRvZ2dsZUFsbEdyb3VwUm93cz8oKTogdm9pZDtcbiAgICB0b2dnbGVBbGw/KCk6IHZvaWQ7XG4gICAgZ2VuZXJhdGVSb3dQYXRoPyhyb3dJZDogYW55KTogYW55W107XG4gICAgcHJldmVudEhlYWRlclNjcm9sbD8oYXJnczogYW55KTogdm9pZDtcblxufVxuXG4vKipcbiAqIEFuIGludGVyZmFjZSBkZXNjcmliaW5nIGEgRmxhdCBHcmlkIHR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGbGF0R3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgZ3JvdXBpbmdFeHBhbnNpb25TdGF0ZTogSUdyb3VwQnlFeHBhbmRTdGF0ZVtdO1xuICAgIGdyb3VwaW5nRXhwcmVzc2lvbnM6IElHcm91cGluZ0V4cHJlc3Npb25bXTtcbiAgICBncm91cGluZ0V4cHJlc3Npb25zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SUdyb3VwaW5nRXhwcmVzc2lvbltdPjtcblxuICAgIHRvZ2dsZUdyb3VwKGdyb3VwUm93OiBJR3JvdXBCeVJlY29yZCk6IHZvaWQ7XG4gICAgY2xlYXJHcm91cGluZyhmaWVsZDogc3RyaW5nKTogdm9pZDtcbiAgICBncm91cEJ5KGV4cHJlc3Npb246IElHcm91cGluZ0V4cHJlc3Npb24gfCBBcnJheTxJR3JvdXBpbmdFeHByZXNzaW9uPik6IHZvaWQ7XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBUcmVlIEdyaWQgdHlwZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVHcmlkVHlwZSBleHRlbmRzIEdyaWRUeXBlIHtcbiAgICByZWNvcmRzOiBNYXA8YW55LCBJVHJlZUdyaWRSZWNvcmQ+O1xuICAgIGlzVHJlZVJvdyhyZWM6IGFueSk6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGRlc2NyaWJpbmcgYSBIaWVyYXJjaGljYWwgR3JpZCB0eXBlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGllcmFyY2hpY2FsR3JpZFR5cGUgZXh0ZW5kcyBHcmlkVHlwZSB7XG4gICAgY2hpbGRMYXlvdXRLZXlzOiBhbnlbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaXZvdEdyaWRUeXBlIGV4dGVuZHMgR3JpZFR5cGUge1xuICAgIHBpdm90Q29uZmlndXJhdGlvbjogSVBpdm90Q29uZmlndXJhdGlvbjtcbiAgICBhbGxEaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXSxcbiAgICBzaG93UGl2b3RDb25maWd1cmF0aW9uVUk6IGJvb2xlYW47XG4gICAgY29sdW1uRGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW107XG4gICAgcm93RGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW107XG4gICAgcm93RGltZW5zaW9uUmVzaXppbmc6IGJvb2xlYW47XG4gICAgdmFsdWVzOiBJUGl2b3RWYWx1ZVtdO1xuICAgIGZpbHRlckRpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdO1xuICAgIGRpbWVuc2lvbkRhdGFDb2x1bW5zOiBDb2x1bW5UeXBlW107XG4gICAgcGl2b3RSb3dXaWR0aHM6IG51bWJlcjtcbiAgICBzZXR1cENvbHVtbnMoKTogdm9pZDtcbiAgICB0b2dnbGVSb3cocm93SUQ6IGFueSk6IHZvaWQ7XG4gICAgcmVzb2x2ZURhdGFUeXBlcyhmaWVsZDogYW55KTogR3JpZENvbHVtbkRhdGFUeXBlO1xuICAgIG1vdmVEaW1lbnNpb24oZGltZW5zaW9uOiBJUGl2b3REaW1lbnNpb24sIHRhcmdldENvbGxlY3Rpb25UeXBlOiBQaXZvdERpbWVuc2lvblR5cGUsIGluZGV4PyA6IG51bWJlcik7XG4gICAgZ2V0RGltZW5zaW9uc0J5VHlwZShkaW1lbnNpb246IFBpdm90RGltZW5zaW9uVHlwZSk7XG4gICAgdG9nZ2xlRGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uKTtcbiAgICBzb3J0RGltZW5zaW9uKGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uLCBzb3J0RGlyZWN0aW9uOiBTb3J0aW5nRGlyZWN0aW9uKTtcbiAgICB0b2dnbGVWYWx1ZSh2YWx1ZTogSVBpdm90VmFsdWUpO1xuICAgIG1vdmVWYWx1ZSh2YWx1ZTogSVBpdm90VmFsdWUsIGluZGV4PzogbnVtYmVyKTtcbiAgICByb3dEaW1lbnNpb25XaWR0aFRvUGl4ZWxzKGRpbTogSVBpdm90RGltZW5zaW9uKTogbnVtYmVyO1xuICAgIGRpbWVuc2lvbnNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJRGltZW5zaW9uc0NoYW5nZT47XG4gICAgdmFsdWVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVZhbHVlc0NoYW5nZT47XG4gICAgcGl2b3RLZXlzOiBJUGl2b3RLZXlzO1xuICAgIGhhc011bHRpcGxlVmFsdWVzOiBib29sZWFuO1xuICAgIGV4Y2VsU3R5bGVGaWx0ZXJNYXhIZWlnaHQ6IHN0cmluZztcbiAgICBleGNlbFN0eWxlRmlsdGVyTWluSGVpZ2h0OiBzdHJpbmc7XG4gICAgdmFsdWVDaGlwVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG59XG5leHBvcnQgaW50ZXJmYWNlIEdyaWRTVkdJY29uIHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2l6ZUluZm8ge1xuICAgIHdpZHRoOiBudW1iZXIsXG4gICAgcGFkZGluZzogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZE1hc3RlckRldGFpbENvbnRleHQge1xuICAgICRpbXBsaWNpdDogYW55O1xuICAgIGluZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JvdXBCeVJvd1RlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJR3JvdXBCeVJlY29yZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IEdyaWRUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd1RlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBSb3dUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd0RyYWdHaG9zdENvbnRleHQge1xuICAgICRpbXBsaWNpdDogYW55LCAvLyB0aGlzIGlzIHRoZSByb3cgZGF0YVxuICAgIGRhdGE6IGFueSwgLy8gdGhpcyBpcyBhbHNvIHRoZSByb3cgZGF0YSBmb3Igc29tZSByZWFzb24uXG4gICAgZ3JpZDogR3JpZFR5cGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcmlkRW1wdHlUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd0VkaXRUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogdW5kZWZpbmVkLFxuICAgIHJvd0NoYW5nZXNDb3VudDogbnVtYmVyLFxuICAgIGVuZEVkaXQ6ICAoY29tbWl0OiBib29sZWFuLCBldmVudD86IEV2ZW50KSA9PiB2b2lkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZFJvd0VkaXRUZXh0VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEdyaWRSb3dFZGl0QWN0aW9uc1RlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiAoY29tbWl0OiBib29sZWFuLCBldmVudD86IEV2ZW50KSA9PiB2b2lkXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4R3JpZEhlYWRlclRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBIZWFkZXJUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4Q29sdW1uVGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IENvbHVtblR5cGUsXG4gICAgY29sdW1uOiBDb2x1bW5UeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4Q2VsbFRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBhbnksXG4gICAgYWRkaXRpb25hbFRlbXBsYXRlQ29udGV4dDogYW55LFxuICAgIGZvcm1Db250cm9sPzogRm9ybUNvbnRyb2w8YW55PixcbiAgICBkZWZhdWx0RXJyb3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT4sXG4gICAgY2VsbD86IENlbGxUeXBlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDoge1xuICAgICAgICBpbmRleDogbnVtYmVyLFxuICAgICAgICByb3dJRDogYW55LFxuICAgICAgICBrZXk6IGFueSxcbiAgICAgICAgc2VsZWN0ZWQ6IGJvb2xlYW4sXG4gICAgICAgIHNlbGVjdD86ICgpID0+IHZvaWQsXG4gICAgICAgIGRlc2VsZWN0PzogKCkgPT4gdm9pZFxuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hHcm91cEJ5Um93U2VsZWN0b3JUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDoge1xuICAgICAgICBzZWxlY3RlZENvdW50OiBudW1iZXIsXG4gICAgICAgIHRvdGFsQ291bnQ6IG51bWJlcixcbiAgICAgICAgZ3JvdXBSb3c6IElHcm91cEJ5UmVjb3JkXG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElneEhlYWRTZWxlY3RvclRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiB7XG4gICAgICAgIHNlbGVjdGVkQ291bnQ6IG51bWJlcjtcbiAgICAgICAgdG90YWxDb3VudDogbnVtYmVyO1xuICAgICAgICBzZWxlY3RBbGw/OiAoKSA9PiB2b2lkO1xuICAgICAgICBkZXNlbGVjdEFsbD86ICgpID0+IHZvaWQ7XG4gICAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hTdW1tYXJ5VGVtcGxhdGVDb250ZXh0IHtcbiAgICAkaW1wbGljaXQ6IElneFN1bW1hcnlSZXN1bHRbXVxufVxuIl19
@@ -83,7 +83,7 @@ export class IgxGridFilteringCellComponent {
83
83
  * @memberof IgxGridFilteringCellComponent
84
84
  */
85
85
  get context() {
86
- return { column: this.column };
86
+ return { $implicit: this.column, column: this.column };
87
87
  }
88
88
  /**
89
89
  * Chip clicked event handler.
@@ -216,4 +216,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
216
216
  type: HostBinding,
217
217
  args: ['class']
218
218
  }] } });
219
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1maWx0ZXJpbmctY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZmlsdGVyaW5nL2Jhc2UvZ3JpZC1maWx0ZXJpbmctY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZmlsdGVyaW5nL2Jhc2UvZ3JpZC1maWx0ZXJpbmctY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFFTCxXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQXNCLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7OztBQUdyRjs7R0FFRztBQU1ILE1BQU0sT0FBTyw2QkFBNkI7SUFnRHRDLFlBQW1CLEdBQXNCLEVBQVMsZ0JBQXFDO1FBQXBFLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFxQjtRQUpoRixxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFFcEIsY0FBUyxHQUFHLG9DQUFvQyxDQUFDO1FBR3JELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUF4QkQsSUFDVyxZQUFZO1FBQ25CLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FB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QU0sWUFDckMseUJBQXlCOzBJQUs1QixNQUFNO3NCQURaLEtBQUs7Z0JBSUksV0FBVztzQkFEcEIsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSW5ELGFBQWE7c0JBRHRCLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlyRCxhQUFhO3NCQUR0QixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJckQsU0FBUztzQkFEbEIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUU7Z0JBSTdDLFFBQVE7c0JBRGpCLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJakMsU0FBUztzQkFEbEIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXhDLFdBQVc7c0JBRHBCLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUt6QyxZQUFZO3NCQUR0QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUZpbHRlcmluZ0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElneEZpbHRlcmluZ1NlcnZpY2UgfSBmcm9tICcuLi9ncmlkLWZpbHRlcmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IERpc3BsYXlEZW5zaXR5IH0gZnJvbSAnLi4vLi4vLi4vY29yZS9kaXNwbGF5RGVuc2l0eSc7XG5pbXBvcnQgeyBFeHByZXNzaW9uVUkgfSBmcm9tICcuLi9leGNlbC1zdHlsZS9jb21tb24nO1xuaW1wb3J0IHsgSWd4Q2hpcHNBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY2hpcHMvY2hpcHMtYXJlYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUJhc2VDaGlwRXZlbnRBcmdzLCBJZ3hDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY2hpcHMvY2hpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sdW1uVHlwZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2lneC1ncmlkLWZpbHRlcmluZy1jZWxsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1maWx0ZXJpbmctY2VsbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSWd4R3JpZEZpbHRlcmluZ0NlbGxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIERvQ2hlY2sge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbHVtbjogQ29sdW1uVHlwZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2VtcHR5RmlsdGVyJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGVtcHR5RmlsdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdEZpbHRlcicsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBkZWZhdWx0RmlsdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnY29tcGxleEZpbHRlcicsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBjb21wbGV4RmlsdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnY2hpcHNBcmVhJywgeyByZWFkOiBJZ3hDaGlwc0FyZWFDb21wb25lbnQgfSlcbiAgICBwcm90ZWN0ZWQgY2hpcHNBcmVhOiBJZ3hDaGlwc0FyZWFDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdtb3JlSWNvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHByb3RlY3RlZCBtb3JlSWNvbjogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ2dob3N0Q2hpcCcsIHsgcmVhZDogSWd4Q2hpcENvbXBvbmVudCB9KVxuICAgIHByb3RlY3RlZCBnaG9zdENoaXA6IElneENoaXBDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdjb21wbGV4Q2hpcCcsIHsgcmVhZDogSWd4Q2hpcENvbXBvbmVudCB9KVxuICAgIHByb3RlY3RlZCBjb21wbGV4Q2hpcDogSWd4Q2hpcENvbXBvbmVudDtcblxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHVibGljIGdldCBzdHlsZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGNsYXNzZXMgPSB0aGlzLmNvbHVtbiAmJiB0aGlzLmNvbHVtbi5zZWxlY3RlZCA/XG4gICAgICAgICAgICAnaWd4LWdyaWRfX2ZpbHRlcmluZy1jZWxsLS1zZWxlY3RlZCcgOlxuICAgICAgICAgICAgJ2lneC1ncmlkX19maWx0ZXJpbmctY2VsbCc7XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLmNvbHVtbi5ncmlkLmRpc3BsYXlEZW5zaXR5KSB7XG4gICAgICAgICAgICBjYXNlIERpc3BsYXlEZW5zaXR5LmNvbXBhY3Q6XG4gICAgICAgICAgICAgICAgY2xhc3NlcyA9IGNsYXNzZXMgKyAnIGlneC1ncmlkX19maWx0ZXJpbmctY2VsbC0tY29tcGFjdCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIERpc3BsYXlEZW5zaXR5LmNvc3k6XG4gICAgICAgICAgICAgICAgY2xhc3NlcyA9IGNsYXNzZXMgKyAnIGlneC1ncmlkX19maWx0ZXJpbmctY2VsbC0tY29zeSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNsYXNzZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGV4cHJlc3Npb25zTGlzdDogRXhwcmVzc2lvblVJW107XG4gICAgcHVibGljIG1vcmVGaWx0ZXJzQ291bnQgPSAwO1xuXG4gICAgcHJpdmF0ZSBiYXNlQ2xhc3MgPSAnaWd4LWdyaWRfX2ZpbHRlcmluZy1jZWxsLWluZGljYXRvcic7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHVibGljIGZpbHRlcmluZ1NlcnZpY2U6IElneEZpbHRlcmluZ1NlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLnN1YnNjcmliZVRvRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UuY29sdW1uVG9Nb3JlSWNvbkhpZGRlbi5zZXQodGhpcy5jb2x1bW4uZmllbGQsIHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRmlsdGVyQ2VsbEFyZWEoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlckNlbGxBcmVhKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIGEgY2hpcCB3aXRoIGEgZ2l2ZW4gaW5kZXggaXMgdmlzaWJsZSBvciBub3QuXG4gICAgICovXG4gICAgcHVibGljIGlzQ2hpcFZpc2libGUoaW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBleHByZXNzaW9uID0gdGhpcy5leHByZXNzaW9uc0xpc3RbaW5kZXhdO1xuICAgICAgICByZXR1cm4gISEoZXhwcmVzc2lvbiAmJiBleHByZXNzaW9uLmlzVmlzaWJsZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgZmlsdGVyaW5nIGNlbGwgYXJlYS5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlRmlsdGVyQ2VsbEFyZWEoKSB7XG4gICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0ID0gdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmdldEV4cHJlc3Npb25zKHRoaXMuY29sdW1uLmZpZWxkKTtcbiAgICAgICAgdGhpcy51cGRhdGVWaXNpYmxlRmlsdGVycygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGlzcGxheURlbnNpdHkoKTogRGlzcGxheURlbnNpdHkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uZ3JpZC5kaXNwbGF5RGVuc2l0eSA9PT0gRGlzcGxheURlbnNpdHkuY29tZm9ydGFibGUgPyBEaXNwbGF5RGVuc2l0eS5jb3N5IDogdGhpcy5jb2x1bW4uZ3JpZC5kaXNwbGF5RGVuc2l0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICBpZiAoIXRoaXMuY29sdW1uLmZpbHRlcmFibGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbi5maWx0ZXJDZWxsVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5maWx0ZXJDZWxsVGVtcGxhdGU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXhwcmVzc2lvblRyZWUgPSB0aGlzLmNvbHVtbi5maWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgICAgIGlmICghZXhwcmVzc2lvblRyZWUgfHwgZXhwcmVzc2lvblRyZWUuZmlsdGVyaW5nT3BlcmFuZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbXB0eUZpbHRlcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmlzRmlsdGVyQ29tcGxleCh0aGlzLmNvbHVtbi5maWVsZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBsZXhGaWx0ZXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdEZpbHRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjb250ZXh0IHBhc3NlZCB0byB0aGUgZmlsdGVyIHRlbXBsYXRlLlxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneEdyaWRGaWx0ZXJpbmdDZWxsQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGdldCBjb250ZXh0KCkge1xuICAgICAgICByZXR1cm4geyBjb2x1bW46IHRoaXMuY29sdW1uIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hpcCBjbGlja2VkIGV2ZW50IGhhbmRsZXIuXG4gICAgICovXG4gICAgcHVibGljIG9uQ2hpcENsaWNrZWQoZXhwcmVzc2lvbj86IElGaWx0ZXJpbmdFeHByZXNzaW9uKSB7XG4gICAgICAgIGlmIChleHByZXNzaW9uKSB7XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5pc1NlbGVjdGVkID0gKGl0ZW0uZXhwcmVzc2lvbiA9PT0gZXhwcmVzc2lvbik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmV4cHJlc3Npb25zTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5pc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0WzBdLmlzU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsdGVyaW5nU2VydmljZS5ncmlkLm5hdmlnYXRpb24ucGVyZm9ybUhvcml6b250YWxTY3JvbGxUb0NlbGwodGhpcy5jb2x1bW4udmlzaWJsZUluZGV4KTtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmZpbHRlcmVkQ29sdW1uID0gdGhpcy5jb2x1bW47XG4gICAgICAgIHRoaXMuZmlsdGVyaW5nU2VydmljZS5pc0ZpbHRlclJvd1Zpc2libGUgPSB0cnVlO1xuICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2Uuc2VsZWN0ZWRFeHByZXNzaW9uID0gZXhwcmVzc2lvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGlwIHJlbW92ZWQgZXZlbnQgaGFuZGxlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgb25DaGlwUmVtb3ZlZChldmVudEFyZ3M6IElCYXNlQ2hpcEV2ZW50QXJncywgaXRlbTogRXhwcmVzc2lvblVJKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4VG9SZW1vdmUgPSB0aGlzLmV4cHJlc3Npb25zTGlzdC5pbmRleE9mKGl0ZW0pO1xuICAgICAgICB0aGlzLnJlbW92ZUV4cHJlc3Npb24oaW5kZXhUb1JlbW92ZSk7XG4gICAgICAgIHRoaXMuZmlsdGVyaW5nU2VydmljZS5ncmlkLnRoZWFkUm93Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGVhcnMgdGhlIGZpbHRlcmluZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY2xlYXJGaWx0ZXJpbmcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyaW5nU2VydmljZS5jbGVhckZpbHRlcih0aGlzLmNvbHVtbi5maWVsZCk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBmaWx0ZXJpbmcgaW5kaWNhdG9yIGNsYXNzLlxuICAgICAqL1xuICAgIHB1YmxpYyBmaWx0ZXJpbmdJbmRpY2F0b3JDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFt0aGlzLmJhc2VDbGFzc106ICF0aGlzLmlzTW9yZUljb25IaWRkZW4oKSxcbiAgICAgICAgICAgIFtgJHt0aGlzLmJhc2VDbGFzc30tLWhpZGRlbmBdOiB0aGlzLmlzTW9yZUljb25IaWRkZW4oKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlRXhwcmVzc2lvbihpbmRleFRvUmVtb3ZlOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGluZGV4VG9SZW1vdmUgPT09IDAgJiYgdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyRmlsdGVyaW5nKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UucmVtb3ZlRXhwcmVzc2lvbih0aGlzLmNvbHVtbi5maWVsZCwgaW5kZXhUb1JlbW92ZSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWaXNpYmxlRmlsdGVycygpO1xuICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UuZmlsdGVySW50ZXJuYWwodGhpcy5jb2x1bW4uZmllbGQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNNb3JlSWNvbkhpZGRlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyaW5nU2VydmljZS5jb2x1bW5Ub01vcmVJY29uSGlkZGVuLmdldCh0aGlzLmNvbHVtbi5maWVsZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVWaXNpYmxlRmlsdGVycygpIHtcbiAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3QuZm9yRWFjaCgoZXgpID0+IGV4LmlzVmlzaWJsZSA9IHRydWUpO1xuXG4gICAgICAgIGlmICh0aGlzLm1vcmVJY29uKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UuY29sdW1uVG9Nb3JlSWNvbkhpZGRlbi5zZXQodGhpcy5jb2x1bW4uZmllbGQsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICBpZiAodGhpcy5jaGlwc0FyZWEgJiYgdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgY29uc3QgYXJlYVdpZHRoID0gdGhpcy5jaGlwc0FyZWEuZWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgbGV0IHZpZXdXaWR0aCA9IDA7XG4gICAgICAgICAgICBjb25zdCBjaGlwc0FyZWFFbGVtZW50cyA9IHRoaXMuY2hpcHNBcmVhLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jaGlsZHJlbjtcbiAgICAgICAgICAgIGxldCB2aXNpYmxlQ2hpcHNDb3VudCA9IDA7XG4gICAgICAgICAgICBjb25zdCBtb3JlSWNvbldpZHRoID0gdGhpcy5tb3JlSWNvbi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC1cbiAgICAgICAgICAgICAgICBwYXJzZUludChkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHRoaXMubW9yZUljb24ubmF0aXZlRWxlbWVudClbJ21hcmdpbi1sZWZ0J10sIDEwKTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNoaXBzQXJlYUVsZW1lbnRzLmxlbmd0aCAtIDE7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgICBpZiAodmlld1dpZHRoICsgY2hpcHNBcmVhRWxlbWVudHNbaW5kZXhdLm9mZnNldFdpZHRoIDwgYXJlYVdpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXdXaWR0aCArPSBjaGlwc0FyZWFFbGVtZW50c1tpbmRleF0ub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCAlIDIgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVDaGlwc0NvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3V2lkdGggKz0gcGFyc2VJbnQoZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShjaGlwc0FyZWFFbGVtZW50c1tpbmRleF0pWydtYXJnaW4tbGVmdCddLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3V2lkdGggKz0gcGFyc2VJbnQoZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShjaGlwc0FyZWFFbGVtZW50c1tpbmRleF0pWydtYXJnaW4tcmlnaHQnXSwgMTApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ICUgMiAhPT0gMCAmJiB2aWV3V2lkdGggKyBtb3JlSWNvbldpZHRoID4gYXJlYVdpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlQ2hpcHNDb3VudC0tO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZpc2libGVDaGlwc0NvdW50ID4gMCAmJiB2aWV3V2lkdGggLSBjaGlwc0FyZWFFbGVtZW50c1tpbmRleCAtIDFdLm9mZnNldFdpZHRoICsgbW9yZUljb25XaWR0aCA+IGFyZWFXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZUNoaXBzQ291bnQtLTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vcmVGaWx0ZXJzQ291bnQgPSB0aGlzLmV4cHJlc3Npb25zTGlzdC5sZW5ndGggLSB2aXNpYmxlQ2hpcHNDb3VudDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmNvbHVtblRvTW9yZUljb25IaWRkZW4uc2V0KHRoaXMuY29sdW1uLmZpZWxkLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHZpc2libGVDaGlwc0NvdW50OyBpIDwgdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdFtpXS5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZW1wdHlGaWx0ZXI+XG4gICAgPGlneC1jaGlwcy1hcmVhIFthdHRyLmRyYWdnYWJsZV09XCJmYWxzZVwiIGNsYXNzPVwiaWd4LWZpbHRlcmluZy1jaGlwc1wiPlxuICAgICAgICA8aWd4LWNoaXAgI2dob3N0Q2hpcCBbYXR0ci5kcmFnZ2FibGVdPVwiZmFsc2VcIiAoY2xpY2spPVwib25DaGlwQ2xpY2tlZCgpXCIgW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCIgW3RhYkluZGV4XT1cIi0xXCI+XG4gICAgICAgICAgICA8aWd4LWljb24gW2F0dHIuZHJhZ2dhYmxlXT1cImZhbHNlXCIgaWd4UHJlZml4PmZpbHRlcl9saXN0PC9pZ3gtaWNvbj5cbiAgICAgICAgICAgIDxzcGFuIFthdHRyLmRyYWdnYWJsZV09XCJmYWxzZVwiPnt7ZmlsdGVyaW5nU2VydmljZS5ncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9maWx0ZXJ9fTwvc3Bhbj5cbiAgICAgICAgPC9pZ3gtY2hpcD5cbiAgICA8L2lneC1jaGlwcy1hcmVhPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNkZWZhdWx0RmlsdGVyPlxuICAgIDxpZ3gtY2hpcHMtYXJlYSAjY2hpcHNBcmVhIGNsYXNzPVwiaWd4LWZpbHRlcmluZy1jaGlwc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGV4cHJlc3Npb25zTGlzdDsgbGV0IGxhc3QgPSBsYXN0OyBsZXQgaW5kZXggPSBpbmRleDtcIiA+XG4gICAgICAgICAgICA8aWd4LWNoaXAgKm5nSWY9XCJpc0NoaXBWaXNpYmxlKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwiLTFcIlxuICAgICAgICAgICAgICAgIFtkaXNwbGF5RGVuc2l0eV09XCJkaXNwbGF5RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2hpcENsaWNrZWQoaXRlbS5leHByZXNzaW9uKVwiXG4gICAgICAgICAgICAgICAgKHJlbW92ZSk9XCJvbkNoaXBSZW1vdmVkKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgICAgICAgICA8aWd4LWljb24gaWd4UHJlZml4XG4gICAgICAgICAgICAgICAgICAgIGZhbWlseT1cImlteC1pY29uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIml0ZW0uZXhwcmVzc2lvbi5jb25kaXRpb24uaWNvbk5hbWVcIj5cbiAgICAgICAgICAgICAgICA8L2lneC1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuICNsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAge3tmaWx0ZXJpbmdTZXJ2aWNlLmdldENoaXBMYWJlbChpdGVtLmV4cHJlc3Npb24pfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2lneC1jaGlwPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpZ3gtZmlsdGVyaW5nLWNoaXBzX19jb25uZWN0b3JcIiAqbmdJZj1cIiFsYXN0ICYmIGlzQ2hpcFZpc2libGUoaW5kZXggKyAxKVwiPnt7ZmlsdGVyaW5nU2VydmljZS5nZXRPcGVyYXRvckFzU3RyaW5nKGl0ZW0uYWZ0ZXJPcGVyYXRvcil9fTwvc3Bhbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxkaXYgI21vcmVJY29uIFtuZ0NsYXNzXT1cImZpbHRlcmluZ0luZGljYXRvckNsYXNzKClcIiAoY2xpY2spPVwib25DaGlwQ2xpY2tlZCgpXCI+XG4gICAgICAgICAgICA8aWd4LWljb24+ZmlsdGVyX2xpc3Q8L2lneC1pY29uPlxuICAgICAgICAgICAgPGlneC1iYWRnZSBbdmFsdWVdPVwibW9yZUZpbHRlcnNDb3VudFwiPjwvaWd4LWJhZGdlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2lneC1jaGlwcy1hcmVhPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb21wbGV4RmlsdGVyPlxuICAgIDxpZ3gtY2hpcCAjY29tcGxleENoaXAgW3JlbW92YWJsZV09XCJ0cnVlXCIgW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCIgKHJlbW92ZSk9XCJjbGVhckZpbHRlcmluZygpXCIgW3RhYkluZGV4XT1cIi0xXCI+XG4gICAgICAgIDxpZ3gtaWNvbiBpZ3hQcmVmaXg+ZmlsdGVyX2xpc3Q8L2lneC1pY29uPlxuICAgICAgICA8c3Bhbj57e2ZpbHRlcmluZ1NlcnZpY2UuZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfY29tcGxleF9maWx0ZXJ9fTwvc3Bhbj5cbiAgICA8L2lneC1jaGlwPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlOyBjb250ZXh0OiBjb250ZXh0XCI+PC9uZy1jb250YWluZXI+XG4iXX0=
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1maWx0ZXJpbmctY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZmlsdGVyaW5nL2Jhc2UvZ3JpZC1maWx0ZXJpbmctY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZmlsdGVyaW5nL2Jhc2UvZ3JpZC1maWx0ZXJpbmctY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFFTCxXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQXNCLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7OztBQUdyRjs7R0FFRztBQU1ILE1BQU0sT0FBTyw2QkFBNkI7SUFnRHRDLFlBQW1CLEdBQXNCLEVBQVMsZ0JBQXFDO1FBQXBFLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFxQjtRQUpoRixxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFFcEIsY0FBUyxHQUFHLG9DQUFvQyxDQUFDO1FBR3JELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUF4QkQsSUFDVyxZQUFZO1FBQ25CLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FB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QUx6QyxTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0sWUFDckMseUJBQXlCOzBJQUs1QixNQUFNO3NCQURaLEtBQUs7Z0JBSUksV0FBVztzQkFEcEIsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSW5ELGFBQWE7c0JBRHRCLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlyRCxhQUFhO3NCQUR0QixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJckQsU0FBUztzQkFEbEIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUU7Z0JBSTdDLFFBQVE7c0JBRGpCLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJakMsU0FBUztzQkFEbEIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXhDLFdBQVc7c0JBRHBCLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUt6QyxZQUFZO3NCQUR0QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUZpbHRlcmluZ0V4cHJlc3Npb24gfSBmcm9tICcuLi8uLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlJztcbmltcG9ydCB7IElneEZpbHRlcmluZ1NlcnZpY2UgfSBmcm9tICcuLi9ncmlkLWZpbHRlcmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IERpc3BsYXlEZW5zaXR5IH0gZnJvbSAnLi4vLi4vLi4vY29yZS9kaXNwbGF5RGVuc2l0eSc7XG5pbXBvcnQgeyBFeHByZXNzaW9uVUkgfSBmcm9tICcuLi9leGNlbC1zdHlsZS9jb21tb24nO1xuaW1wb3J0IHsgSWd4Q2hpcHNBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY2hpcHMvY2hpcHMtYXJlYS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSUJhc2VDaGlwRXZlbnRBcmdzLCBJZ3hDaGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY2hpcHMvY2hpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sdW1uVHlwZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5cbi8qKlxuICogQGhpZGRlblxuICovXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzZWxlY3RvcjogJ2lneC1ncmlkLWZpbHRlcmluZy1jZWxsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1maWx0ZXJpbmctY2VsbC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgSWd4R3JpZEZpbHRlcmluZ0NlbGxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIERvQ2hlY2sge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbHVtbjogQ29sdW1uVHlwZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2VtcHR5RmlsdGVyJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGVtcHR5RmlsdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdEZpbHRlcicsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBkZWZhdWx0RmlsdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnY29tcGxleEZpbHRlcicsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBjb21wbGV4RmlsdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnY2hpcHNBcmVhJywgeyByZWFkOiBJZ3hDaGlwc0FyZWFDb21wb25lbnQgfSlcbiAgICBwcm90ZWN0ZWQgY2hpcHNBcmVhOiBJZ3hDaGlwc0FyZWFDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdtb3JlSWNvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHByb3RlY3RlZCBtb3JlSWNvbjogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ2dob3N0Q2hpcCcsIHsgcmVhZDogSWd4Q2hpcENvbXBvbmVudCB9KVxuICAgIHByb3RlY3RlZCBnaG9zdENoaXA6IElneENoaXBDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdjb21wbGV4Q2hpcCcsIHsgcmVhZDogSWd4Q2hpcENvbXBvbmVudCB9KVxuICAgIHByb3RlY3RlZCBjb21wbGV4Q2hpcDogSWd4Q2hpcENvbXBvbmVudDtcblxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHVibGljIGdldCBzdHlsZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGNsYXNzZXMgPSB0aGlzLmNvbHVtbiAmJiB0aGlzLmNvbHVtbi5zZWxlY3RlZCA/XG4gICAgICAgICAgICAnaWd4LWdyaWRfX2ZpbHRlcmluZy1jZWxsLS1zZWxlY3RlZCcgOlxuICAgICAgICAgICAgJ2lneC1ncmlkX19maWx0ZXJpbmctY2VsbCc7XG5cbiAgICAgICAgc3dpdGNoICh0aGlzLmNvbHVtbi5ncmlkLmRpc3BsYXlEZW5zaXR5KSB7XG4gICAgICAgICAgICBjYXNlIERpc3BsYXlEZW5zaXR5LmNvbXBhY3Q6XG4gICAgICAgICAgICAgICAgY2xhc3NlcyA9IGNsYXNzZXMgKyAnIGlneC1ncmlkX19maWx0ZXJpbmctY2VsbC0tY29tcGFjdCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIERpc3BsYXlEZW5zaXR5LmNvc3k6XG4gICAgICAgICAgICAgICAgY2xhc3NlcyA9IGNsYXNzZXMgKyAnIGlneC1ncmlkX19maWx0ZXJpbmctY2VsbC0tY29zeSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNsYXNzZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGV4cHJlc3Npb25zTGlzdDogRXhwcmVzc2lvblVJW107XG4gICAgcHVibGljIG1vcmVGaWx0ZXJzQ291bnQgPSAwO1xuXG4gICAgcHJpdmF0ZSBiYXNlQ2xhc3MgPSAnaWd4LWdyaWRfX2ZpbHRlcmluZy1jZWxsLWluZGljYXRvcic7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHVibGljIGZpbHRlcmluZ1NlcnZpY2U6IElneEZpbHRlcmluZ1NlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLnN1YnNjcmliZVRvRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UuY29sdW1uVG9Nb3JlSWNvbkhpZGRlbi5zZXQodGhpcy5jb2x1bW4uZmllbGQsIHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlRmlsdGVyQ2VsbEFyZWEoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlckNlbGxBcmVhKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB3aGV0aGVyIGEgY2hpcCB3aXRoIGEgZ2l2ZW4gaW5kZXggaXMgdmlzaWJsZSBvciBub3QuXG4gICAgICovXG4gICAgcHVibGljIGlzQ2hpcFZpc2libGUoaW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBleHByZXNzaW9uID0gdGhpcy5leHByZXNzaW9uc0xpc3RbaW5kZXhdO1xuICAgICAgICByZXR1cm4gISEoZXhwcmVzc2lvbiAmJiBleHByZXNzaW9uLmlzVmlzaWJsZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgZmlsdGVyaW5nIGNlbGwgYXJlYS5cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlRmlsdGVyQ2VsbEFyZWEoKSB7XG4gICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0ID0gdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmdldEV4cHJlc3Npb25zKHRoaXMuY29sdW1uLmZpZWxkKTtcbiAgICAgICAgdGhpcy51cGRhdGVWaXNpYmxlRmlsdGVycygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGlzcGxheURlbnNpdHkoKTogRGlzcGxheURlbnNpdHkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uZ3JpZC5kaXNwbGF5RGVuc2l0eSA9PT0gRGlzcGxheURlbnNpdHkuY29tZm9ydGFibGUgPyBEaXNwbGF5RGVuc2l0eS5jb3N5IDogdGhpcy5jb2x1bW4uZ3JpZC5kaXNwbGF5RGVuc2l0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICBpZiAoIXRoaXMuY29sdW1uLmZpbHRlcmFibGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbi5maWx0ZXJDZWxsVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5maWx0ZXJDZWxsVGVtcGxhdGU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXhwcmVzc2lvblRyZWUgPSB0aGlzLmNvbHVtbi5maWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgICAgIGlmICghZXhwcmVzc2lvblRyZWUgfHwgZXhwcmVzc2lvblRyZWUuZmlsdGVyaW5nT3BlcmFuZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbXB0eUZpbHRlcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmlzRmlsdGVyQ29tcGxleCh0aGlzLmNvbHVtbi5maWVsZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBsZXhGaWx0ZXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdEZpbHRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjb250ZXh0IHBhc3NlZCB0byB0aGUgZmlsdGVyIHRlbXBsYXRlLlxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneEdyaWRGaWx0ZXJpbmdDZWxsQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGdldCBjb250ZXh0KCkge1xuICAgICAgICByZXR1cm4geyAkaW1wbGljaXQ6IHRoaXMuY29sdW1uLCBjb2x1bW46IHRoaXMuY29sdW1ufTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGlwIGNsaWNrZWQgZXZlbnQgaGFuZGxlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgb25DaGlwQ2xpY2tlZChleHByZXNzaW9uPzogSUZpbHRlcmluZ0V4cHJlc3Npb24pIHtcbiAgICAgICAgaWYgKGV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLmlzU2VsZWN0ZWQgPSAoaXRlbS5leHByZXNzaW9uID09PSBleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZXhwcmVzc2lvbnNMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3RbMF0uaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmdyaWQubmF2aWdhdGlvbi5wZXJmb3JtSG9yaXpvbnRhbFNjcm9sbFRvQ2VsbCh0aGlzLmNvbHVtbi52aXNpYmxlSW5kZXgpO1xuICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UuZmlsdGVyZWRDb2x1bW4gPSB0aGlzLmNvbHVtbjtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmlzRmlsdGVyUm93VmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuZmlsdGVyaW5nU2VydmljZS5zZWxlY3RlZEV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoaXAgcmVtb3ZlZCBldmVudCBoYW5kbGVyLlxuICAgICAqL1xuICAgIHB1YmxpYyBvbkNoaXBSZW1vdmVkKGV2ZW50QXJnczogSUJhc2VDaGlwRXZlbnRBcmdzLCBpdGVtOiBFeHByZXNzaW9uVUkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXhUb1JlbW92ZSA9IHRoaXMuZXhwcmVzc2lvbnNMaXN0LmluZGV4T2YoaXRlbSk7XG4gICAgICAgIHRoaXMucmVtb3ZlRXhwcmVzc2lvbihpbmRleFRvUmVtb3ZlKTtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmdyaWQudGhlYWRSb3cubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFycyB0aGUgZmlsdGVyaW5nLlxuICAgICAqL1xuICAgIHB1YmxpYyBjbGVhckZpbHRlcmluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmNsZWFyRmlsdGVyKHRoaXMuY29sdW1uLmZpZWxkKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGZpbHRlcmluZyBpbmRpY2F0b3IgY2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIGZpbHRlcmluZ0luZGljYXRvckNsYXNzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgW3RoaXMuYmFzZUNsYXNzXTogIXRoaXMuaXNNb3JlSWNvbkhpZGRlbigpLFxuICAgICAgICAgICAgW2Ake3RoaXMuYmFzZUNsYXNzfS0taGlkZGVuYF06IHRoaXMuaXNNb3JlSWNvbkhpZGRlbigpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVFeHByZXNzaW9uKGluZGV4VG9SZW1vdmU6IG51bWJlcikge1xuICAgICAgICBpZiAoaW5kZXhUb1JlbW92ZSA9PT0gMCAmJiB0aGlzLmV4cHJlc3Npb25zTGlzdC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJGaWx0ZXJpbmcoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZmlsdGVyaW5nU2VydmljZS5yZW1vdmVFeHByZXNzaW9uKHRoaXMuY29sdW1uLmZpZWxkLCBpbmRleFRvUmVtb3ZlKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVZpc2libGVGaWx0ZXJzKCk7XG4gICAgICAgIHRoaXMuZmlsdGVyaW5nU2VydmljZS5maWx0ZXJJbnRlcm5hbCh0aGlzLmNvbHVtbi5maWVsZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc01vcmVJY29uSGlkZGVuKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmNvbHVtblRvTW9yZUljb25IaWRkZW4uZ2V0KHRoaXMuY29sdW1uLmZpZWxkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZpc2libGVGaWx0ZXJzKCkge1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdC5mb3JFYWNoKChleCkgPT4gZXguaXNWaXNpYmxlID0gdHJ1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMubW9yZUljb24pIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyaW5nU2VydmljZS5jb2x1bW5Ub01vcmVJY29uSGlkZGVuLnNldCh0aGlzLmNvbHVtbi5maWVsZCwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIGlmICh0aGlzLmNoaXBzQXJlYSAmJiB0aGlzLmV4cHJlc3Npb25zTGlzdC5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBjb25zdCBhcmVhV2lkdGggPSB0aGlzLmNoaXBzQXJlYS5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICBsZXQgdmlld1dpZHRoID0gMDtcbiAgICAgICAgICAgIGNvbnN0IGNoaXBzQXJlYUVsZW1lbnRzID0gdGhpcy5jaGlwc0FyZWEuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuO1xuICAgICAgICAgICAgbGV0IHZpc2libGVDaGlwc0NvdW50ID0gMDtcbiAgICAgICAgICAgIGNvbnN0IG1vcmVJY29uV2lkdGggPSB0aGlzLm1vcmVJY29uLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggLVxuICAgICAgICAgICAgICAgIHBhcnNlSW50KGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUodGhpcy5tb3JlSWNvbi5uYXRpdmVFbGVtZW50KVsnbWFyZ2luLWxlZnQnXSwgMTApO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY2hpcHNBcmVhRWxlbWVudHMubGVuZ3RoIC0gMTsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgIGlmICh2aWV3V2lkdGggKyBjaGlwc0FyZWFFbGVtZW50c1tpbmRleF0ub2Zmc2V0V2lkdGggPCBhcmVhV2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdmlld1dpZHRoICs9IGNoaXBzQXJlYUVsZW1lbnRzW2luZGV4XS5vZmZzZXRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ICUgMiA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZUNoaXBzQ291bnQrKztcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdXaWR0aCArPSBwYXJzZUludChkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGNoaXBzQXJlYUVsZW1lbnRzW2luZGV4XSlbJ21hcmdpbi1sZWZ0J10sIDEwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdXaWR0aCArPSBwYXJzZUludChkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGNoaXBzQXJlYUVsZW1lbnRzW2luZGV4XSlbJ21hcmdpbi1yaWdodCddLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggJSAyICE9PSAwICYmIHZpZXdXaWR0aCArIG1vcmVJY29uV2lkdGggPiBhcmVhV2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVDaGlwc0NvdW50LS07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmlzaWJsZUNoaXBzQ291bnQgPiAwICYmIHZpZXdXaWR0aCAtIGNoaXBzQXJlYUVsZW1lbnRzW2luZGV4IC0gMV0ub2Zmc2V0V2lkdGggKyBtb3JlSWNvbldpZHRoID4gYXJlYVdpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlQ2hpcHNDb3VudC0tO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9yZUZpbHRlcnNDb3VudCA9IHRoaXMuZXhwcmVzc2lvbnNMaXN0Lmxlbmd0aCAtIHZpc2libGVDaGlwc0NvdW50O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UuY29sdW1uVG9Nb3JlSWNvbkhpZGRlbi5zZXQodGhpcy5jb2x1bW4uZmllbGQsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gdmlzaWJsZUNoaXBzQ291bnQ7IGkgPCB0aGlzLmV4cHJlc3Npb25zTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0W2ldLmlzVmlzaWJsZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLXRlbXBsYXRlICNlbXB0eUZpbHRlcj5cbiAgICA8aWd4LWNoaXBzLWFyZWEgW2F0dHIuZHJhZ2dhYmxlXT1cImZhbHNlXCIgY2xhc3M9XCJpZ3gtZmlsdGVyaW5nLWNoaXBzXCI+XG4gICAgICAgIDxpZ3gtY2hpcCAjZ2hvc3RDaGlwIFthdHRyLmRyYWdnYWJsZV09XCJmYWxzZVwiIChjbGljayk9XCJvbkNoaXBDbGlja2VkKClcIiBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIiBbdGFiSW5kZXhdPVwiLTFcIj5cbiAgICAgICAgICAgIDxpZ3gtaWNvbiBbYXR0ci5kcmFnZ2FibGVdPVwiZmFsc2VcIiBpZ3hQcmVmaXg+ZmlsdGVyX2xpc3Q8L2lneC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gW2F0dHIuZHJhZ2dhYmxlXT1cImZhbHNlXCI+e3tmaWx0ZXJpbmdTZXJ2aWNlLmdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2ZpbHRlcn19PC9zcGFuPlxuICAgICAgICA8L2lneC1jaGlwPlxuICAgIDwvaWd4LWNoaXBzLWFyZWE+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRGaWx0ZXI+XG4gICAgPGlneC1jaGlwcy1hcmVhICNjaGlwc0FyZWEgY2xhc3M9XCJpZ3gtZmlsdGVyaW5nLWNoaXBzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZXhwcmVzc2lvbnNMaXN0OyBsZXQgbGFzdCA9IGxhc3Q7IGxldCBpbmRleCA9IGluZGV4O1wiID5cbiAgICAgICAgICAgIDxpZ3gtY2hpcCAqbmdJZj1cImlzQ2hpcFZpc2libGUoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCItMVwiXG4gICAgICAgICAgICAgICAgW2Rpc3BsYXlEZW5zaXR5XT1cImRpc3BsYXlEZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DaGlwQ2xpY2tlZChpdGVtLmV4cHJlc3Npb24pXCJcbiAgICAgICAgICAgICAgICAocmVtb3ZlKT1cIm9uQ2hpcFJlbW92ZWQoJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICAgICAgICAgIDxpZ3gtaWNvbiBpZ3hQcmVmaXhcbiAgICAgICAgICAgICAgICAgICAgZmFtaWx5PVwiaW14LWljb25zXCJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiaXRlbS5leHByZXNzaW9uLmNvbmRpdGlvbi5pY29uTmFtZVwiPlxuICAgICAgICAgICAgICAgIDwvaWd4LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gI2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICB7e2ZpbHRlcmluZ1NlcnZpY2UuZ2V0Q2hpcExhYmVsKGl0ZW0uZXhwcmVzc2lvbil9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvaWd4LWNoaXA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlneC1maWx0ZXJpbmctY2hpcHNfX2Nvbm5lY3RvclwiICpuZ0lmPVwiIWxhc3QgJiYgaXNDaGlwVmlzaWJsZShpbmRleCArIDEpXCI+e3tmaWx0ZXJpbmdTZXJ2aWNlLmdldE9wZXJhdG9yQXNTdHJpbmcoaXRlbS5hZnRlck9wZXJhdG9yKX19PC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiAjbW9yZUljb24gW25nQ2xhc3NdPVwiZmlsdGVyaW5nSW5kaWNhdG9yQ2xhc3MoKVwiIChjbGljayk9XCJvbkNoaXBDbGlja2VkKClcIj5cbiAgICAgICAgICAgIDxpZ3gtaWNvbj5maWx0ZXJfbGlzdDwvaWd4LWljb24+XG4gICAgICAgICAgICA8aWd4LWJhZGdlIFt2YWx1ZV09XCJtb3JlRmlsdGVyc0NvdW50XCI+PC9pZ3gtYmFkZ2U+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvaWd4LWNoaXBzLWFyZWE+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbXBsZXhGaWx0ZXI+XG4gICAgPGlneC1jaGlwICNjb21wbGV4Q2hpcCBbcmVtb3ZhYmxlXT1cInRydWVcIiBbZGlzcGxheURlbnNpdHldPVwiZGlzcGxheURlbnNpdHlcIiAocmVtb3ZlKT1cImNsZWFyRmlsdGVyaW5nKClcIiBbdGFiSW5kZXhdPVwiLTFcIj5cbiAgICAgICAgPGlneC1pY29uIGlneFByZWZpeD5maWx0ZXJfbGlzdDwvaWd4LWljb24+XG4gICAgICAgIDxzcGFuPnt7ZmlsdGVyaW5nU2VydmljZS5ncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9jb21wbGV4X2ZpbHRlcn19PC9zcGFuPlxuICAgIDwvaWd4LWNoaXA+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IGNvbnRleHRcIj48L25nLWNvbnRhaW5lcj5cbiJdfQ==