@scania/tegel-angular-17 1.48.0 → 1.49.1

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.
@@ -151,11 +151,11 @@ let TdsBodyCell = class TdsBodyCell {
151
151
  this.el = r.nativeElement;
152
152
  }
153
153
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsBodyCell, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
154
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsBodyCell, selector: "tds-body-cell", inputs: { cellKey: "cellKey", cellValue: "cellValue", disablePadding: "disablePadding", textAlign: "textAlign" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
154
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsBodyCell, selector: "tds-body-cell", inputs: { cellKey: "cellKey", cellValue: "cellValue", colSpan: "colSpan", disablePadding: "disablePadding", rowSpan: "rowSpan", textAlign: "textAlign" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
155
155
  };
156
156
  TdsBodyCell = __decorate([
157
157
  ProxyCmp({
158
- inputs: ['cellKey', 'cellValue', 'disablePadding', 'textAlign']
158
+ inputs: ['cellKey', 'cellValue', 'colSpan', 'disablePadding', 'rowSpan', 'textAlign']
159
159
  })
160
160
  ], TdsBodyCell);
161
161
  export { TdsBodyCell };
@@ -166,7 +166,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
166
166
  changeDetection: ChangeDetectionStrategy.OnPush,
167
167
  template: '<ng-content></ng-content>',
168
168
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
169
- inputs: ['cellKey', 'cellValue', 'disablePadding', 'textAlign'],
169
+ inputs: ['cellKey', 'cellValue', 'colSpan', 'disablePadding', 'rowSpan', 'textAlign'],
170
170
  standalone: false
171
171
  }]
172
172
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
@@ -707,11 +707,11 @@ let TdsHeaderCell = class TdsHeaderCell {
707
707
  this.el = r.nativeElement;
708
708
  }
709
709
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsHeaderCell, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
710
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderCell, selector: "tds-header-cell", inputs: { cellKey: "cellKey", cellValue: "cellValue", customWidth: "customWidth", disablePadding: "disablePadding", sortable: "sortable", tdsAriaLabelSortButton: "tdsAriaLabelSortButton", textAlign: "textAlign" }, outputs: { tdsSort: "tdsSort" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
710
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsHeaderCell, selector: "tds-header-cell", inputs: { cellKey: "cellKey", cellValue: "cellValue", colSpan: "colSpan", customWidth: "customWidth", disablePadding: "disablePadding", rowSpan: "rowSpan", sortable: "sortable", tdsAriaLabelSortButton: "tdsAriaLabelSortButton", textAlign: "textAlign" }, outputs: { tdsSort: "tdsSort" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
711
711
  };
712
712
  TdsHeaderCell = __decorate([
713
713
  ProxyCmp({
714
- inputs: ['cellKey', 'cellValue', 'customWidth', 'disablePadding', 'sortable', 'tdsAriaLabelSortButton', 'textAlign']
714
+ inputs: ['cellKey', 'cellValue', 'colSpan', 'customWidth', 'disablePadding', 'rowSpan', 'sortable', 'tdsAriaLabelSortButton', 'textAlign']
715
715
  })
716
716
  ], TdsHeaderCell);
717
717
  export { TdsHeaderCell };
@@ -722,7 +722,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
722
722
  changeDetection: ChangeDetectionStrategy.OnPush,
723
723
  template: '<ng-content></ng-content>',
724
724
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
725
- inputs: ['cellKey', 'cellValue', 'customWidth', 'disablePadding', 'sortable', 'tdsAriaLabelSortButton', 'textAlign'],
725
+ inputs: ['cellKey', 'cellValue', 'colSpan', 'customWidth', 'disablePadding', 'rowSpan', 'sortable', 'tdsAriaLabelSortButton', 'textAlign'],
726
726
  outputs: ['tdsSort'],
727
727
  standalone: false
728
728
  }]
@@ -1981,15 +1981,16 @@ let TdsTableBodyRowExpandable = class TdsTableBodyRowExpandable {
1981
1981
  constructor(c, r, z) {
1982
1982
  this.z = z;
1983
1983
  this.tdsChange = new EventEmitter();
1984
+ this.tdsSelect = new EventEmitter();
1984
1985
  c.detach();
1985
1986
  this.el = r.nativeElement;
1986
1987
  }
1987
1988
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TdsTableBodyRowExpandable, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1988
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableBodyRowExpandable, selector: "tds-table-body-row-expandable", inputs: { autoCollapse: "autoCollapse", colSpan: "colSpan", expanded: "expanded", overflow: "overflow", rowId: "rowId", tdsAriaLabelExpandButton: "tdsAriaLabelExpandButton" }, outputs: { tdsChange: "tdsChange" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1989
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TdsTableBodyRowExpandable, selector: "tds-table-body-row-expandable", inputs: { autoCollapse: "autoCollapse", colSpan: "colSpan", disabled: "disabled", expanded: "expanded", overflow: "overflow", rowId: "rowId", selected: "selected", tdsAriaLabelExpandButton: "tdsAriaLabelExpandButton" }, outputs: { tdsChange: "tdsChange", tdsSelect: "tdsSelect" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1989
1990
  };
1990
1991
  TdsTableBodyRowExpandable = __decorate([
1991
1992
  ProxyCmp({
1992
- inputs: ['autoCollapse', 'colSpan', 'expanded', 'overflow', 'rowId', 'tdsAriaLabelExpandButton'],
1993
+ inputs: ['autoCollapse', 'colSpan', 'disabled', 'expanded', 'overflow', 'rowId', 'selected', 'tdsAriaLabelExpandButton'],
1993
1994
  methods: ['expand', 'collapse']
1994
1995
  })
1995
1996
  ], TdsTableBodyRowExpandable);
@@ -2001,12 +2002,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
2001
2002
  changeDetection: ChangeDetectionStrategy.OnPush,
2002
2003
  template: '<ng-content></ng-content>',
2003
2004
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
2004
- inputs: ['autoCollapse', 'colSpan', 'expanded', 'overflow', 'rowId', 'tdsAriaLabelExpandButton'],
2005
- outputs: ['tdsChange'],
2005
+ inputs: ['autoCollapse', 'colSpan', 'disabled', 'expanded', 'overflow', 'rowId', 'selected', 'tdsAriaLabelExpandButton'],
2006
+ outputs: ['tdsChange', 'tdsSelect'],
2006
2007
  standalone: false
2007
2008
  }]
2008
2009
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { tdsChange: [{
2009
2010
  type: Output
2011
+ }], tdsSelect: [{
2012
+ type: Output
2010
2013
  }] } });
2011
2014
  let TdsTableFooter = class TdsTableFooter {
2012
2015
  constructor(c, r, z) {
@@ -2321,4 +2324,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
2321
2324
  standalone: false
2322
2325
  }]
2323
2326
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }] });
2324
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zdGVuY2lsLWdlbmVyYXRlZC9jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQkFBb0I7QUFDcEIsOENBQThDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFaEksT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQWdCbEQsSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBWTtJQUV2QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOytHQUxVLFlBQVk7bUdBQVosWUFBWSwrSEFMYiwyQkFBMkI7O0FBSzFCLFlBQVk7SUFYeEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDO0tBQzFDLENBQUM7R0FTVyxZQUFZLENBTXhCOzs0RkFOWSxZQUFZO2tCQVJ4QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUM7b0JBQ3pDLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjs7QUEwQk0sSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7SUFHM0IsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFB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QkFBMkI7O0FBSzFCLFVBQVU7SUFYdEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDO0tBQ3pLLENBQUM7R0FTVyxVQUFVLENBTXRCOzs0RkFOWSxVQUFVO2tCQVJ0QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO29CQUN2QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUM7b0JBQ3hLLFVBQVUsRUFBRSxLQUFLO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBhdXRvLWdlbmVyYXRlZCBhbmd1bGFyIGRpcmVjdGl2ZSBwcm94aWVzICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQcm94eUNtcCB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tcG9uZW50cyB9IGZyb20gJ0BzY2FuaWEvdGVnZWwnO1xuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlTGFzdEJvcmRlcicsICdtb2RlVmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWFjY29yZGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUxhc3RCb3JkZXInLCAnbW9kZVZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzQWNjb3JkaW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzQWNjb3JkaW9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQWNjb3JkaW9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNBY2NvcmRpb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJpYUxldmVsVmFsdWUnLCAnZGlzYWJsZWQnLCAnZXhwYW5kSWNvblBvc2l0aW9uJywgJ2V4cGFuZGVkJywgJ2hlYWRlcicsICdwYWRkaW5nUmVzZXQnXSxcbiAgbWV0aG9kczogWyd0b2dnbGVBY2NvcmRpb25JdGVtJywgJ2V4cGFuZCcsICdjb2xsYXBzZScsICdpc0V4cGFuZGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtYWNjb3JkaW9uLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FyaWFMZXZlbFZhbHVlJywgJ2Rpc2FibGVkJywgJ2V4cGFuZEljb25Qb3NpdGlvbicsICdleHBhbmRlZCcsICdoZWFkZXInLCAncGFkZGluZ1Jlc2V0J10sXG4gIG91dHB1dHM6IFsndGRzVG9nZ2xlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0FjY29yZGlvbkl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNBY2NvcmRpb25JdGVtRWxlbWVudDtcbiAgQE91dHB1dCgpIHRkc1RvZ2dsZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBleHBhbmRlZDogYm9vbGVhbjsgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0FjY29yZGlvbkl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0FjY29yZGlvbkl0ZW0ge1xuICAvKipcbiAgICogRmlyZXMgd2hlbiB0aGUgQWNjb3JkaW9uIEl0ZW0gaXMgY2xpY2tlZCwgYnV0IGJlZm9yZSBpdCBpcyBjbG9zZWQgb3Igb3BlbmVkLlxuICAgKi9cbiAgdGRzVG9nZ2xlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBleHBhbmRlZDogYm9vbGVhbjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRkZW4nLCAnc2l6ZScsICd0ZHNBcmlhTGl2ZScsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWJhZGdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRkZW4nLCAnc2l6ZScsICd0ZHNBcmlhTGl2ZScsICd2YWx1ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNCYWRnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0JhZGdlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQmFkZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0JhZGdlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Jhbm5lcklkJywgJ2hlYWRlcicsICdoaWRkZW4nLCAnaWNvbicsICdyb2xlVHlwZScsICdzdWJoZWFkZXInLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ2hpZGVCYW5uZXInLCAnc2hvd0Jhbm5lciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWJhbm5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFubmVySWQnLCAnaGVhZGVyJywgJ2hpZGRlbicsICdpY29uJywgJ3JvbGVUeXBlJywgJ3N1YmhlYWRlcicsICd2YXJpYW50J10sXG4gIG91dHB1dHM6IFsndGRzQ2xvc2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzQmFubmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzQmFubmVyRWxlbWVudDtcbiAgQE91dHB1dCgpIHRkc0Nsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGJhbm5lcklkOiBzdHJpbmc7IH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNCYW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0Jhbm5lciB7XG4gIC8qKlxuICAgKiBTZW5kcyBhIHVuaXF1ZSBCYW5uZXIgaWRlbnRpZmllciB3aGVuIHRoZSBjbG9zZSBidXR0b24gaXMgcHJlc3NlZC5cbiAgICovXG4gIHRkc0Nsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBiYW5uZXJJZDogc3RyaW5nOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbXBvbmVudFRhZycsICdtb2RlVmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWJsb2NrJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb21wb25lbnRUYWcnLCAnbW9kZVZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzQmxvY2sge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNCbG9ja0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0Jsb2NrIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNCbG9jayB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjZWxsS2V5JywgJ2NlbGxWYWx1ZScsICdkaXNhYmxlUGFkZGluZycsICd0ZXh0QWxpZ24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1ib2R5LWNlbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NlbGxLZXknLCAnY2VsbFZhbHVlJywgJ2Rpc2FibGVQYWRkaW5nJywgJ3RleHRBbGlnbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNCb2R5Q2VsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0JvZHlDZWxsRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQm9keUNlbGwgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0JvZHlDZWxsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1cnJlbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1icmVhZGNydW1iJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXJyZW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0JyZWFkY3J1bWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNCcmVhZGNydW1iRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQnJlYWRjcnVtYiBleHRlbmRzIENvbXBvbmVudHMuVGRzQnJlYWRjcnVtYiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyd0ZHNBcmlhTGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1icmVhZGNydW1icycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndGRzQXJpYUxhYmVsJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0JyZWFkY3J1bWJzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzQnJlYWRjcnVtYnNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNCcmVhZGNydW1icyBleHRlbmRzIENvbXBvbmVudHMuVGRzQnJlYWRjcnVtYnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2Rpc2FibGVkJywgJ2Z1bGxibGVlZCcsICdtb2RlVmFyaWFudCcsICduYW1lJywgJ3NpemUnLCAndGRzQXJpYUxhYmVsJywgJ3RleHQnLCAndHlwZScsICd2YWx1ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnZGlzYWJsZWQnLCAnZnVsbGJsZWVkJywgJ21vZGVWYXJpYW50JywgJ25hbWUnLCAnc2l6ZScsICd0ZHNBcmlhTGFiZWwnLCAndGV4dCcsICd0eXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzQnV0dG9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNCdXR0b24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYm9keURpdmlkZXInLCAnYm9keUltZycsICdib2R5SW1nQWx0JywgJ2NhcmRJZCcsICdjbGlja2FibGUnLCAnZXhwYW5kYWJsZScsICdleHBhbmRlZCcsICdoZWFkZXInLCAnaW1hZ2VQbGFjZW1lbnQnLCAnbW9kZVZhcmlhbnQnLCAnc3RyZXRjaCcsICdzdWJoZWFkZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydib2R5RGl2aWRlcicsICdib2R5SW1nJywgJ2JvZHlJbWdBbHQnLCAnY2FyZElkJywgJ2NsaWNrYWJsZScsICdleHBhbmRhYmxlJywgJ2V4cGFuZGVkJywgJ2hlYWRlcicsICdpbWFnZVBsYWNlbWVudCcsICdtb2RlVmFyaWFudCcsICdzdHJldGNoJywgJ3N1YmhlYWRlciddLFxuICBvdXRwdXRzOiBbJ3Rkc0NsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0NhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNDYXJkRWxlbWVudDtcbiAgQE91dHB1dCgpIHRkc0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNhcmRJZDogc3RyaW5nOyB9Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuVGRzQ2FyZCB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgQ2FyZCBpZGVudGlmaWVyIHdoZW4gdGhlIENhcmQgaXMgY2xpY2tlZCwgaWYgY2xpY2thYmxlPXRydWVcbiAgICovXG4gIHRkc0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjYXJkSWQ6IHN0cmluZzsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2JveElkJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaW5kZXRlcm1pbmF0ZScsICduYW1lJywgJ3JlcXVpcmVkJywgJ3Rkc0FyaWFEZXNjcmliZWRieScsICd0ZHNBcmlhTGFiZWwnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWyd0b2dnbGVDaGVja2JveCcsICdmb2N1c0VsZW1lbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1jaGVja2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tib3hJZCcsICdjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2luZGV0ZXJtaW5hdGUnLCAnbmFtZScsICdyZXF1aXJlZCcsICd0ZHNBcmlhRGVzY3JpYmVkYnknLCAndGRzQXJpYUxhYmVsJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsndGRzQ2hhbmdlJywgJ3Rkc0ZvY3VzJywgJ3Rkc0JsdXInXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzQ2hlY2tib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNDaGVja2JveEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgY2hlY2tib3hJZDogc3RyaW5nOyBjaGVja2VkOiBib29sZWFuOyBpbmRldGVybWluYXRlOiBib29sZWFuOyB2YWx1ZT86IHN0cmluZzsgfT4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLlRkc0NoZWNrYm94IHtcbiAgLyoqXG4gICAqIFNlbmRzIHVuaXF1ZSBDaGVja2JveCBpZGVudGlmaWVyIGFuZCBjaGVja2VkIHN0YXR1cyB3aGVuIGl0IGlzIGNoZWNrZWQvdW5jaGVja2VkLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjaGVja2JveElkOiBzdHJpbmc7IGNoZWNrZWQ6IGJvb2xlYW47IGluZGV0ZXJtaW5hdGU6IGJvb2xlYW47IHZhbHVlPzogc3RyaW5nOyB9Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudCBmb3IgdGhlIENoZWNrYm94XG4gICAqL1xuICB0ZHNGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnQgZm9yIHRoZSBDaGVja2JveFxuICAgKi9cbiAgdGRzQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdjaGlwSWQnLCAnZGlzYWJsZWQnLCAnbmFtZScsICdzaXplJywgJ3Rkc0FyaWFMYWJlbCcsICd0eXBlJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtY2hpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdjaGlwSWQnLCAnZGlzYWJsZWQnLCAnbmFtZScsICdzaXplJywgJ3Rkc0FyaWFMYWJlbCcsICd0eXBlJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsndGRzQ2hhbmdlJywgJ3Rkc0NsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0NoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNDaGlwRWxlbWVudDtcbiAgQE91dHB1dCgpIHRkc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjaGlwSWQ6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDsgY2hlY2tlZD86IGJvb2xlYW47IH0+PigpO1xuICBAT3V0cHV0KCkgdGRzQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgY2hpcElkOiBzdHJpbmc7IH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNDaGlwIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNDaGlwIHtcbiAgLyoqXG4gICAqIFNlbmRzIHVuaXF1ZSBDaGlwIGlkZW50aWZpZXIgYW5kIHZhbHVlIHdoZW4gaXQgaXMgY2hhbmdlZCAoY2hlY2tlZC91bmNoZWNrZWQpLlxuVmFsaWQgb25seSBmb3IgdHlwZSBjaGVja2JveCBhbmQgcmFkaW8uXG5JZiBubyBJRCBpcyBzcGVjaWZpZWQsIGEgcmFuZG9tIG9uZSB3aWxsIGJlIGdlbmVyYXRlZC5cblRvIHVzZSB0aGlzIGxpc3RlbmVyLCBkb24ndCB1c2UgdGhlIHJhbmRvbWl6ZWQgSUQsIHVzZSBhIHNwZWNpZmljIG9uZSBvZiB5b3VyIGNob29zaW5nLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjaGlwSWQ6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDsgY2hlY2tlZD86IGJvb2xlYW47IH0+PjtcbiAgLyoqXG4gICAqIFNlbmRzIHVuaXF1ZSBDaGlwIGlkZW50aWZpZXIgd2hlbiBDaGlwIGlzIGNsaWNrZWQuXG5WYWxpZCBvbmx5IGZvciB0eXBlIGJ1dHRvbi5cbklmIG5vIElEIGlzIHNwZWNpZmllZCwgYSByYW5kb20gb25lIHdpbGwgYmUgZ2VuZXJhdGVkLlxuVG8gdXNlIHRoaXMgbGlzdGVuZXIsIGRvbid0IHVzZSB0aGUgcmFuZG9taXplZCBJRCwgdXNlIGEgc3BlY2lmaWMgb25lIG9mIHlvdXIgY2hvb3NpbmcuXG4gICAqL1xuICB0ZHNDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgY2hpcElkOiBzdHJpbmc7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1jb3JlLWhlYWRlci1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0NvcmVIZWFkZXJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzQ29yZUhlYWRlckl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNDb3JlSGVhZGVySXRlbSBleHRlbmRzIENvbXBvbmVudHMuVGRzQ29yZUhlYWRlckl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2ZvY3VzJywgJ2RlZmF1bHRWYWx1ZScsICdkaXNhYmxlZCcsICdoZWxwZXInLCAnbGFiZWwnLCAnbGFiZWxQb3NpdGlvbicsICdtYXgnLCAnbWluJywgJ21vZGVWYXJpYW50JywgJ25hbWUnLCAnbm9NaW5XaWR0aCcsICdzaXplJywgJ3N0YXRlJywgJ3Rkc0FyaWFMYWJlbCcsICd0eXBlJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsncmVzZXQnLCAnc2V0VmFsdWUnLCAnZm9jdXNFbGVtZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtZGF0ZXRpbWUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdkZWZhdWx0VmFsdWUnLCAnZGlzYWJsZWQnLCAnaGVscGVyJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbWF4JywgJ21pbicsICdtb2RlVmFyaWFudCcsICduYW1lJywgJ25vTWluV2lkdGgnLCAnc2l6ZScsICdzdGF0ZScsICd0ZHNBcmlhTGFiZWwnLCAndHlwZScsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3Rkc0NoYW5nZScsICd0ZHNCbHVyJywgJ3Rkc0ZvY3VzJywgJ3Rkc0lucHV0J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0RhdGV0aW1lIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzRGF0ZXRpbWVFbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PigpO1xuICBAT3V0cHV0KCkgdGRzQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNJbnB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SW5wdXRFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0RhdGV0aW1lIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNEYXRldGltZSB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnQgZm9yIHRoZSBEYXRldGltZVxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBCbHVyIGV2ZW50IGZvciB0aGUgRGF0ZXRpbWVcbiAgICovXG4gIHRkc0JsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudCBmb3IgdGhlIERhdGV0aW1lXG4gICAqL1xuICB0ZHNGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGV2ZW50IGZvciB0aGUgRGF0ZXRpbWVcbiAgICovXG4gIHRkc0lucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SW5wdXRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydvcmllbnRhdGlvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtZGl2aWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnb3JpZW50YXRpb24nLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNEaXZpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzRGl2aWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0RpdmlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0RpdmlkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2RlZmF1bHRWYWx1ZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdmaWx0ZXInLCAnaGVscGVyJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbW9kZVZhcmlhbnQnLCAnbXVsdGlzZWxlY3QnLCAnbmFtZScsICdub1Jlc3VsdFRleHQnLCAnbm9ybWFsaXplVGV4dCcsICdvcGVuRGlyZWN0aW9uJywgJ3BsYWNlaG9sZGVyJywgJ3NpemUnLCAndGRzQXJpYUxhYmVsJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0VmFsdWUnLCAncmVzZXQnLCAncmVtb3ZlVmFsdWUnLCAnZm9jdXNFbGVtZW50JywgJ2Nsb3NlJywgJ3VwZGF0ZURpc3BsYXknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2RlZmF1bHRWYWx1ZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdmaWx0ZXInLCAnaGVscGVyJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbW9kZVZhcmlhbnQnLCAnbXVsdGlzZWxlY3QnLCAnbmFtZScsICdub1Jlc3VsdFRleHQnLCAnbm9ybWFsaXplVGV4dCcsICdvcGVuRGlyZWN0aW9uJywgJ3BsYWNlaG9sZGVyJywgJ3NpemUnLCAndGRzQXJpYUxhYmVsJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsndGRzQ2hhbmdlJywgJ3Rkc0ZvY3VzJywgJ3Rkc0JsdXInLCAndGRzSW5wdXQnLCAndGRzQ2xlYXInXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzRHJvcGRvd24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNEcm9wZG93bkVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkOyB2YWx1ZTogc3RyaW5nIHwgbnVsbDsgfT4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHRkc0lucHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHRkc0NsZWFyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNsZWFyZWRWYWx1ZTogc3RyaW5nIH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuVGRzRHJvcGRvd24ge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50IGZvciB0aGUgRHJvcGRvd24uXG4gICAqL1xuICB0ZHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDsgdmFsdWU6IHN0cmluZyB8IG51bGw7IH0+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50IGZvciB0aGUgRHJvcGRvd24uXG4gICAqL1xuICB0ZHNGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnQgZm9yIHRoZSBEcm9wZG93bi5cbiAgICovXG4gIHRkc0JsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBldmVudCBmb3IgdGhlIERyb3Bkb3duLlxuICAgKi9cbiAgdGRzSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbGVhciBldmVudCBmb3IgdGhlIERyb3Bkb3duLlxuICAgKi9cbiAgdGRzQ2xlYXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNsZWFyZWRWYWx1ZTogc3RyaW5nIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAndGRzQXJpYUxhYmVsJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0U2VsZWN0ZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1kcm9wZG93bi1vcHRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3Rkc0FyaWFMYWJlbCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3Rkc1NlbGVjdCcsICd0ZHNGb2N1cycsICd0ZHNCbHVyJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0Ryb3Bkb3duT3B0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzRHJvcGRvd25PcHRpb25FbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlbGVjdGVkOiBib29sZWFuOyB2YWx1ZTogc3RyaW5nOyB9Pj4oKTtcbiAgQE91dHB1dCgpIHRkc0ZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHRkc0JsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNEcm9wZG93bk9wdGlvbiBleHRlbmRzIENvbXBvbmVudHMuVGRzRHJvcGRvd25PcHRpb24ge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnQgZm9yIHRoZSBEcm9wZG93biBvcHRpb24uXG4gICAqL1xuICB0ZHNTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlbGVjdGVkOiBib29sZWFuOyB2YWx1ZTogc3RyaW5nOyB9Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudCBmb3IgdGhlIERyb3Bkb3duIG9wdGlvbi5cbiAgICovXG4gIHRkc0ZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudCBmb3IgdGhlIERyb3Bkb3duIG9wdGlvbi5cbiAgICovXG4gIHRkc0JsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtZm9sZGVyLXRhYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzRm9sZGVyVGFiIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzRm9sZGVyVGFiRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzRm9sZGVyVGFiIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNGb2xkZXJUYWIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVmYXVsdFNlbGVjdGVkSW5kZXgnLCAnbW9kZVZhcmlhbnQnLCAnc2VsZWN0ZWRJbmRleCcsICd0ZHNTY3JvbGxMZWZ0QXJpYUxhYmVsJywgJ3Rkc1Njcm9sbFJpZ2h0QXJpYUxhYmVsJ10sXG4gIG1ldGhvZHM6IFsnc2VsZWN0VGFiJywgJ3JlaW5pdGlhbGl6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWZvbGRlci10YWJzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWZhdWx0U2VsZWN0ZWRJbmRleCcsICdtb2RlVmFyaWFudCcsICdzZWxlY3RlZEluZGV4JywgJ3Rkc1Njcm9sbExlZnRBcmlhTGFiZWwnLCAndGRzU2Nyb2xsUmlnaHRBcmlhTGFiZWwnXSxcbiAgb3V0cHV0czogWyd0ZHNDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzRm9sZGVyVGFicyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0ZvbGRlclRhYnNFbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlbGVjdGVkVGFiSW5kZXg6IG51bWJlcjsgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0ZvbGRlclRhYnMgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0ZvbGRlclRhYnMge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWxlY3RlZCBUYWIgaXMgY2hhbmdlZC5cbiAgICovXG4gIHRkc0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VsZWN0ZWRUYWJJbmRleDogbnVtYmVyOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ21vZGVWYXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydtb2RlVmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNGb290ZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNGb290ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0Zvb3RlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyd0ZHNMaXN0QXJpYUxhYmVsJywgJ3RpdGxlVGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWZvb3Rlci1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndGRzTGlzdEFyaWFMYWJlbCcsICd0aXRsZVRleHQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzRm9vdGVyR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNGb290ZXJHcm91cEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0Zvb3Rlckdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNGb290ZXJHcm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWZvb3Rlci1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0Zvb3Rlckl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNGb290ZXJJdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzRm9vdGVySXRlbSBleHRlbmRzIENvbXBvbmVudHMuVGRzRm9vdGVySXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNIZWFkZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1icmFuZC1zeW1ib2wnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyQnJhbmRTeW1ib2wge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNIZWFkZXJCcmFuZFN5bWJvbEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckJyYW5kU3ltYm9sIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJCcmFuZFN5bWJvbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjZWxsS2V5JywgJ2NlbGxWYWx1ZScsICdjdXN0b21XaWR0aCcsICdkaXNhYmxlUGFkZGluZycsICdzb3J0YWJsZScsICd0ZHNBcmlhTGFiZWxTb3J0QnV0dG9uJywgJ3RleHRBbGlnbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1jZWxsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjZWxsS2V5JywgJ2NlbGxWYWx1ZScsICdjdXN0b21XaWR0aCcsICdkaXNhYmxlUGFkZGluZycsICdzb3J0YWJsZScsICd0ZHNBcmlhTGFiZWxTb3J0QnV0dG9uJywgJ3RleHRBbGlnbiddLFxuICBvdXRwdXRzOiBbJ3Rkc1NvcnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyQ2VsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0hlYWRlckNlbGxFbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzU29ydCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0YWJsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7IGNvbHVtbktleTogc3RyaW5nIHwgdW5kZWZpbmVkOyBzb3J0aW5nRGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJzsgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckNlbGwgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckNlbGwge1xuICAvKipcbiAgICogU2VuZHMgdW5pcXVlIFRhYmxlIGlkZW50aWZpZXIsIGNvbHVtbiBrZXkgYW5kIHNvcnRpbmcgZGlyZWN0aW9uIHRvIHRoZSB0ZHMtdGFibGUtYm9keSBjb21wb25lbnQsXG5jYW4gYWxzbyBiZSBsaXN0ZW5lZCB0byBpbXBsZW1lbnQgY3VzdG9tLXNvcnRpbmcgbG9naWMuXG4gICAqL1xuICB0ZHNTb3J0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0YWJsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7IGNvbHVtbktleTogc3RyaW5nIHwgdW5kZWZpbmVkOyBzb3J0aW5nRGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJzsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICdub0Ryb3Bkb3duSWNvbicsICdzZWxlY3RlZCcsICd0ZHNBcmlhTGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItZHJvcGRvd24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ25vRHJvcGRvd25JY29uJywgJ3NlbGVjdGVkJywgJ3Rkc0FyaWFMYWJlbCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJEcm9wZG93biB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0hlYWRlckRyb3Bkb3duRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyRHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckRyb3Bkb3duIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItZHJvcGRvd24tbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2l6ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJEcm9wZG93bkxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNIZWFkZXJEcm9wZG93bkxpc3RFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJEcm9wZG93bkxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckRyb3Bkb3duTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzZWxlY3RlZCcsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWRyb3Bkb3duLWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2VsZWN0ZWQnLCAnc2l6ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJEcm9wZG93bkxpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzSGVhZGVyRHJvcGRvd25MaXN0SXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckRyb3Bkb3duTGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckRyb3Bkb3duTGlzdEl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGVyJywgJ2ltZ0FsdCcsICdpbWdVcmwnLCAnc3ViaGVhZGVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWRyb3Bkb3duLWxpc3QtdXNlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGVyJywgJ2ltZ0FsdCcsICdpbWdVcmwnLCAnc3ViaGVhZGVyJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckRyb3Bkb3duTGlzdFVzZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNIZWFkZXJEcm9wZG93bkxpc3RVc2VyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyRHJvcGRvd25MaXN0VXNlciBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyRHJvcGRvd25MaXN0VXNlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyd0ZHNBcmlhTGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItaGFtYnVyZ2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd0ZHNBcmlhTGFiZWwnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVySGFtYnVyZ2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzSGVhZGVySGFtYnVyZ2VyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVySGFtYnVyZ2VyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJIYW1idXJnZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ3NlbGVjdGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdzZWxlY3RlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzSGVhZGVySXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndGRzQXJpYUxhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWxhdW5jaGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd0ZHNBcmlhTGFiZWwnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyTGF1bmNoZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNIZWFkZXJMYXVuY2hlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckxhdW5jaGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJMYXVuY2hlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAndGRzQXJpYUxhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWxhdW5jaGVyLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ3Rkc0FyaWFMYWJlbCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJMYXVuY2hlckJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0hlYWRlckxhdW5jaGVyQnV0dG9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyTGF1bmNoZXJCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckxhdW5jaGVyQnV0dG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWxhdW5jaGVyLWdyaWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyTGF1bmNoZXJHcmlkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzSGVhZGVyTGF1bmNoZXJHcmlkRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyTGF1bmNoZXJHcmlkIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJMYXVuY2hlckdyaWQge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItbGF1bmNoZXItZ3JpZC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckxhdW5jaGVyR3JpZEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNIZWFkZXJMYXVuY2hlckdyaWRJdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyTGF1bmNoZXJHcmlkSXRlbSBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyTGF1bmNoZXJHcmlkSXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1sYXVuY2hlci1ncmlkLXRpdGxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckxhdW5jaGVyR3JpZFRpdGxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzSGVhZGVyTGF1bmNoZXJHcmlkVGl0bGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJMYXVuY2hlckdyaWRUaXRsZSBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyTGF1bmNoZXJHcmlkVGl0bGUge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItbGF1bmNoZXItbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJMYXVuY2hlckxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNIZWFkZXJMYXVuY2hlckxpc3RFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJMYXVuY2hlckxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckxhdW5jaGVyTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1sYXVuY2hlci1saXN0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyTGF1bmNoZXJMaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0hlYWRlckxhdW5jaGVyTGlzdEl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJMYXVuY2hlckxpc3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJMYXVuY2hlckxpc3RJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWxhdW5jaGVyLWxpc3QtdGl0bGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyTGF1bmNoZXJMaXN0VGl0bGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNIZWFkZXJMYXVuY2hlckxpc3RUaXRsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckxhdW5jaGVyTGlzdFRpdGxlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJMYXVuY2hlckxpc3RUaXRsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci10aXRsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJUaXRsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0hlYWRlclRpdGxlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyVGl0bGUgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlclRpdGxlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ25hbWUnLCAnc2l6ZScsICdzdmdEZXNjcmlwdGlvbicsICdzdmdUaXRsZScsICd0ZHNBcmlhSGlkZGVuJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbmFtZScsICdzaXplJywgJ3N2Z0Rlc2NyaXB0aW9uJywgJ3N2Z1RpdGxlJywgJ3Rkc0FyaWFIaWRkZW4nXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzSWNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0ljb25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNJY29uIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNJY29uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaW5saW5lLXRhYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzSW5saW5lVGFiIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzSW5saW5lVGFiRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSW5saW5lVGFiIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNJbmxpbmVUYWIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVmYXVsdFNlbGVjdGVkSW5kZXgnLCAnbGVmdFBhZGRpbmcnLCAnbW9kZVZhcmlhbnQnLCAnc2VsZWN0ZWRJbmRleCcsICd0ZHNTY3JvbGxMZWZ0QXJpYUxhYmVsJywgJ3Rkc1Njcm9sbFJpZ2h0QXJpYUxhYmVsJ10sXG4gIG1ldGhvZHM6IFsnc2VsZWN0VGFiJywgJ3JlaW5pdGlhbGl6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWlubGluZS10YWJzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWZhdWx0U2VsZWN0ZWRJbmRleCcsICdsZWZ0UGFkZGluZycsICdtb2RlVmFyaWFudCcsICdzZWxlY3RlZEluZGV4JywgJ3Rkc1Njcm9sbExlZnRBcmlhTGFiZWwnLCAndGRzU2Nyb2xsUmlnaHRBcmlhTGFiZWwnXSxcbiAgb3V0cHV0czogWyd0ZHNDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzSW5saW5lVGFicyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0lubGluZVRhYnNFbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlbGVjdGVkVGFiSW5kZXg6IG51bWJlcjsgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0lubGluZVRhYnMgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0lubGluZVRhYnMge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWxlY3RlZCBUYWIgaXMgY2hhbmdlZC5cbiAgICovXG4gIHRkc0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VsZWN0ZWRUYWJJbmRleDogbnVtYmVyOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3N0YW5kYWxvbmUnLCAndW5kZXJsaW5lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnc3RhbmRhbG9uZScsICd1bmRlcmxpbmUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzTGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0xpbmtFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNMaW5rIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNMaW5rIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRlcicsICdtaW5pbWFsJywgJ21vZGVWYXJpYW50JywgJ25vSWNvbicsICd0ZHNBbGVydERpYWxvZycsICd0ZHNBcmlhTGFiZWwnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLW1lc3NhZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hlYWRlcicsICdtaW5pbWFsJywgJ21vZGVWYXJpYW50JywgJ25vSWNvbicsICd0ZHNBbGVydERpYWxvZycsICd0ZHNBcmlhTGFiZWwnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNNZXNzYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzTWVzc2FnZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc01lc3NhZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlRkc01lc3NhZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aW9uc1Bvc2l0aW9uJywgJ2Nsb3NhYmxlJywgJ2hlYWRlcicsICdwcmV2ZW50JywgJ3JlZmVyZW5jZUVsJywgJ3NlbGVjdG9yJywgJ3Nob3cnLCAnc2l6ZScsICd0ZHNBbGVydERpYWxvZyddLFxuICBtZXRob2RzOiBbJ3Nob3dNb2RhbCcsICdjbG9zZU1vZGFsJywgJ2lzT3BlbicsICdpbml0aWFsaXplTW9kYWwnLCAnY2xlYW51cE1vZGFsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtbW9kYWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGlvbnNQb3NpdGlvbicsICdjbG9zYWJsZScsICdoZWFkZXInLCAncHJldmVudCcsICdyZWZlcmVuY2VFbCcsICdzZWxlY3RvcicsICdzaG93JywgJ3NpemUnLCAndGRzQWxlcnREaWFsb2cnXSxcbiAgb3V0cHV0czogWyd0ZHNDbG9zZScsICd0ZHNPcGVuJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc01vZGFsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzTW9kYWxFbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PG9iamVjdD4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNPcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzTW9kYWwgZXh0ZW5kcyBDb21wb25lbnRzLlRkc01vZGFsIHtcbiAgLyoqXG4gICAqIEVtaXRzIHdoZW4gdGhlIE1vZGFsIGlzIGNsb3NlZC5cbiAgICovXG4gIHRkc0Nsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8b2JqZWN0Pj47XG4gIC8qKlxuICAgKiBFbWl0cyBqdXN0IGJlZm9yZSBNb2RhbCBpcyBvcGVuZWQuXG4gICAqL1xuICB0ZHNPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8dm9pZD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLW5hdmlnYXRpb24tdGFiJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNOYXZpZ2F0aW9uVGFiIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzTmF2aWdhdGlvblRhYkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc05hdmlnYXRpb25UYWIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc05hdmlnYXRpb25UYWIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVmYXVsdFNlbGVjdGVkSW5kZXgnLCAnbGVmdFBhZGRpbmcnLCAnbW9kZVZhcmlhbnQnLCAnc2VsZWN0ZWRJbmRleCcsICd0ZHNTY3JvbGxMZWZ0QXJpYUxhYmVsJywgJ3Rkc1Njcm9sbFJpZ2h0QXJpYUxhYmVsJ10sXG4gIG1ldGhvZHM6IFsnc2VsZWN0VGFiJywgJ3JlaW5pdGlhbGl6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLW5hdmlnYXRpb24tdGFicycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVmYXVsdFNlbGVjdGVkSW5kZXgnLCAnbGVmdFBhZGRpbmcnLCAnbW9kZVZhcmlhbnQnLCAnc2VsZWN0ZWRJbmRleCcsICd0ZHNTY3JvbGxMZWZ0QXJpYUxhYmVsJywgJ3Rkc1Njcm9sbFJpZ2h0QXJpYUxhYmVsJ10sXG4gIG91dHB1dHM6IFsndGRzQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc05hdmlnYXRpb25UYWJzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzTmF2aWdhdGlvblRhYnNFbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlbGVjdGVkVGFiSW5kZXg6IG51bWJlcjsgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc05hdmlnYXRpb25UYWJzIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNOYXZpZ2F0aW9uVGFicyB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIFRhYiBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzZWxlY3RlZFRhYkluZGV4OiBudW1iZXI7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2RlZmF1bHRTaG93JywgJ21vZGVWYXJpYW50JywgJ21vZGlmaWVycycsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdycsICd0ZHNBbGVydERpYWxvZyddLFxuICBtZXRob2RzOiBbJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtcG9wb3Zlci1jYW52YXMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdkZWZhdWx0U2hvdycsICdtb2RlVmFyaWFudCcsICdtb2RpZmllcnMnLCAnb2Zmc2V0RGlzdGFuY2UnLCAnb2Zmc2V0U2tpZGRpbmcnLCAncGxhY2VtZW50JywgJ3JlZmVyZW5jZUVsJywgJ3NlbGVjdG9yJywgJ3Nob3cnLCAndGRzQWxlcnREaWFsb2cnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzUG9wb3ZlckNhbnZhcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1BvcG92ZXJDYW52YXNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNQb3BvdmVyQ2FudmFzIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNQb3BvdmVyQ2FudmFzIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdhdXRvSGlkZScsICdkZWZhdWx0U2hvdycsICdtb2RpZmllcnMnLCAnb2Zmc2V0RGlzdGFuY2UnLCAnb2Zmc2V0U2tpZGRpbmcnLCAncGxhY2VtZW50JywgJ3JlZmVyZW5jZUVsJywgJ3NlbGVjdG9yJywgJ3Nob3cnLCAndHJpZ2dlciddLFxuICBtZXRob2RzOiBbJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtcG9wb3Zlci1jb3JlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnYXV0b0hpZGUnLCAnZGVmYXVsdFNob3cnLCAnbW9kaWZpZXJzJywgJ29mZnNldERpc3RhbmNlJywgJ29mZnNldFNraWRkaW5nJywgJ3BsYWNlbWVudCcsICdyZWZlcmVuY2VFbCcsICdzZWxlY3RvcicsICdzaG93JywgJ3RyaWdnZXInXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzUG9wb3ZlckNvcmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNQb3BvdmVyQ29yZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1BvcG92ZXJDb3JlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNQb3BvdmVyQ29yZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnZGVmYXVsdFNob3cnLCAnZmx1aWRXaWR0aCcsICdtb2RlVmFyaWFudCcsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdyddLFxuICBtZXRob2RzOiBbJ2Nsb3NlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtcG9wb3Zlci1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnZGVmYXVsdFNob3cnLCAnZmx1aWRXaWR0aCcsICdtb2RlVmFyaWFudCcsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdyddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNQb3BvdmVyTWVudSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1BvcG92ZXJNZW51RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzUG9wb3Zlck1lbnUgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1BvcG92ZXJNZW51IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtcG9wb3Zlci1tZW51LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1BvcG92ZXJNZW51SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1BvcG92ZXJNZW51SXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1BvcG92ZXJNZW51SXRlbSBleHRlbmRzIENvbXBvbmVudHMuVGRzUG9wb3Zlck1lbnVJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnbmFtZScsICdyYWRpb0lkJywgJ3JlcXVpcmVkJywgJ3Rkc0FyaWFMYWJlbCcsICd0ZHNUYWJJbmRleCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ2ZvY3VzRWxlbWVudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXJhZGlvLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICduYW1lJywgJ3JhZGlvSWQnLCAncmVxdWlyZWQnLCAndGRzQXJpYUxhYmVsJywgJ3Rkc1RhYkluZGV4JywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsndGRzQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1JhZGlvQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzUmFkaW9CdXR0b25FbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHJhZGlvSWQ6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDsgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1JhZGlvQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNSYWRpb0J1dHRvbiB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgUmFkaW8gQnV0dG9uIGlkZW50aWZpZXIgYW5kIHN0YXR1cyB3aGVuIGl0IGlzIGNoZWNrZWQuXG5JZiBubyBJRCBpcyBzcGVjaWZpZWQsIGEgcmFuZG9tIG9uZSB3aWxsIGJlIGdlbmVyYXRlZC5cblRvIHVzZSB0aGlzIGxpc3RlbmVyLCBkb24ndCB1c2UgdGhlIHJhbmRvbWl6ZWQgSUQsIHVzZSBhIHNwZWNpZmljIG9uZSBvZiB5b3VyIGNob29zaW5nLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyByYWRpb0lkOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sbGFwc2VkJywgJ29wZW4nLCAncGVyc2lzdGVudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29sbGFwc2VkJywgJ29wZW4nLCAncGVyc2lzdGVudCddLFxuICBvdXRwdXRzOiBbJ3Rkc0NvbGxhcHNlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NpZGVNZW51IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzU2lkZU1lbnVFbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzQ29sbGFwc2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZHNTaWRlTWVudUNvbGxhcHNlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgQ29sbGFwc2VFdmVudCBhcyBJVGRzU2lkZU1lbnVDb2xsYXBzZUV2ZW50IH0gZnJvbSAnQHNjYW5pYS90ZWdlbCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTaWRlTWVudSBleHRlbmRzIENvbXBvbmVudHMuVGRzU2lkZU1lbnUge1xuICAvKipcbiAgICogRXZlbnQgdGhhdCBpcyBlbWl0dGVkIHdoZW4gdGhlIFNpZGUgTWVudSBpcyBjb2xsYXBzZWQuXG4gICAqL1xuICB0ZHNDb2xsYXBzZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElUZHNTaWRlTWVudUNvbGxhcHNlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zaWRlLW1lbnUtY2xvc2UtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NpZGVNZW51Q2xvc2VCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNTaWRlTWVudUNsb3NlQnV0dG9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU2lkZU1lbnVDbG9zZUJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuVGRzU2lkZU1lbnVDbG9zZUJ1dHRvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS1jb2xsYXBzZS1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgb3V0cHV0czogWyd0ZHNDb2xsYXBzZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudUNvbGxhcHNlQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzU2lkZU1lbnVDb2xsYXBzZUJ1dHRvbkVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNDb2xsYXBzZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRkc1NpZGVNZW51Q29sbGFwc2VCdXR0b25Db2xsYXBzZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IENvbGxhcHNlRXZlbnQgYXMgSVRkc1NpZGVNZW51Q29sbGFwc2VCdXR0b25Db2xsYXBzZUV2ZW50IH0gZnJvbSAnQHNjYW5pYS90ZWdlbCc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTaWRlTWVudUNvbGxhcHNlQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudUNvbGxhcHNlQnV0dG9uIHtcbiAgLyoqXG4gICAqIEV2ZW50IHRoYXQgaXMgYnJvYWRjYXN0IHdoZW4gdGhlIGNvbGxhcHNlIGJ1dHRvbiBpcyBjbGlja2VkLlxuUHJldmVudCBpdCBmcm9tIGRpc2FibGluZyBhdXRvbWF0aWMgY29sbGFwc2luZywgYW5kIHNldCB0aGUgY29sbGFwc2VkIHByb3Agb24gdGhlIFNpZGUgTWVudSB5b3Vyc2VsZi5cbiAgICovXG4gIHRkc0NvbGxhcHNlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRkc1NpZGVNZW51Q29sbGFwc2VCdXR0b25Db2xsYXBzZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2J1dHRvbkxhYmVsJywgJ2RlZmF1bHRPcGVuJywgJ29wZW4nLCAnc2VsZWN0ZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zaWRlLW1lbnUtZHJvcGRvd24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2J1dHRvbkxhYmVsJywgJ2RlZmF1bHRPcGVuJywgJ29wZW4nLCAnc2VsZWN0ZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzU2lkZU1lbnVEcm9wZG93biB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1NpZGVNZW51RHJvcGRvd25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTaWRlTWVudURyb3Bkb3duIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudURyb3Bkb3duIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc2lkZS1tZW51LWRyb3Bkb3duLWxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzU2lkZU1lbnVEcm9wZG93bkxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNTaWRlTWVudURyb3Bkb3duTGlzdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51RHJvcGRvd25MaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudURyb3Bkb3duTGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS1kcm9wZG93bi1saXN0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3NlbGVjdGVkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NpZGVNZW51RHJvcGRvd25MaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1NpZGVNZW51RHJvcGRvd25MaXN0SXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51RHJvcGRvd25MaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuVGRzU2lkZU1lbnVEcm9wZG93bkxpc3RJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdzZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnc2VsZWN0ZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzU2lkZU1lbnVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzU2lkZU1lbnVJdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU2lkZU1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zaWRlLW1lbnUtb3ZlcmxheScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudU92ZXJsYXkge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNTaWRlTWVudU92ZXJsYXlFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTaWRlTWVudU92ZXJsYXkgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NpZGVNZW51T3ZlcmxheSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2ltZ0FsdCcsICdpbWdTcmMnLCAnc3ViaGVhZGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS11c2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW3sgbmFtZTogJ2hlYWRpbmcnLCByZXF1aXJlZDogdHJ1ZSB9LCAnaW1nQWx0JywgJ2ltZ1NyYycsICdzdWJoZWFkaW5nJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NpZGVNZW51VXNlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1NpZGVNZW51VXNlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51VXNlciBleHRlbmRzIENvbXBvbmVudHMuVGRzU2lkZU1lbnVVc2VyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsdCcsICdzcmMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zaWRlLW1lbnUtdXNlci1pbWFnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWx0JywgJ3NyYyddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudVVzZXJJbWFnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1NpZGVNZW51VXNlckltYWdlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU2lkZU1lbnVVc2VySW1hZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NpZGVNZW51VXNlckltYWdlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnc3ViaGVhZGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS11c2VyLWxhYmVsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW3sgbmFtZTogJ2hlYWRpbmcnLCByZXF1aXJlZDogdHJ1ZSB9LCAnc3ViaGVhZGluZyddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudVVzZXJMYWJlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1NpZGVNZW51VXNlckxhYmVsRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU2lkZU1lbnVVc2VyTGFiZWwgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NpZGVNZW51VXNlckxhYmVsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRyb2xzJywgJ2Rpc2FibGVkJywgJ2lucHV0JywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZWFkT25seScsICdzaG93VGlja051bWJlcnMnLCAnc2xpZGVySWQnLCAnc25hcCcsICdzdGVwJywgJ3Rkc0FyaWFMYWJlbCcsICd0ZHNSZWFkT25seUFyaWFMYWJlbCcsICd0aHVtYlNpemUnLCAndGlja3MnLCAndG9vbHRpcCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3Jlc2V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc2xpZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250cm9scycsICdkaXNhYmxlZCcsICdpbnB1dCcsICdsYWJlbCcsICdtYXgnLCAnbWluJywgJ25hbWUnLCAncmVhZE9ubHknLCAnc2hvd1RpY2tOdW1iZXJzJywgJ3NsaWRlcklkJywgJ3NuYXAnLCAnc3RlcCcsICd0ZHNBcmlhTGFiZWwnLCAndGRzUmVhZE9ubHlBcmlhTGFiZWwnLCAndGh1bWJTaXplJywgJ3RpY2tzJywgJ3Rvb2x0aXAnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWyd0ZHNDaGFuZ2UnLCAndGRzSW5wdXQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzU2xpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzU2xpZGVyRWxlbWVudDtcbiAgQE91dHB1dCgpIHRkc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nOyB9Pj4oKTtcbiAgQE91dHB1dCgpIHRkc0lucHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmc7IH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTbGlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NsaWRlciB7XG4gIC8qKlxuICAgKiBTZW5kcyB0aGUgdmFsdWUgb2YgdGhlIHNsaWRlciB3aGVuIGNoYW5nZWQuIEZpcmVzIGFmdGVyIG1vdXNlIHVwIGFuZCB0b3VjaCBlbmQgZXZlbnRzLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nOyB9Pj47XG4gIC8qKlxuICAgKiBTZW5kcyB0aGUgdmFsdWUgb2YgdGhlIHNsaWRlciB3aGlsZSBtb3ZpbmcgdGhlIHRodW1iLiBGaXJlcyBvbiBtb3VzZSBtb3ZlIGFuZCB0b3VjaCBtb3ZlIGV2ZW50cy5cbiAgICovXG4gIHRkc0lucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB2YWx1ZTogc3RyaW5nOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNwaW5uZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3NpemUnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNTcGlubmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzU3Bpbm5lckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NwaW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NwaW5uZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaW5kZXgnLCAnc3RhdGUnLCAndGRzQXJpYUN1cnJlbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zdGVwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpbmRleCcsICdzdGF0ZScsICd0ZHNBcmlhQ3VycmVudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNTdGVwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzU3RlcEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1N0ZXAgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1N0ZXAge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUxhYmVscycsICdsYWJlbFBvc2l0aW9uJywgJ29yaWVudGF0aW9uJywgJ3NpemUnLCAnc3RlcHBlcklkJywgJ3Rkc0FyaWFMYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXN0ZXBwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVMYWJlbHMnLCAnbGFiZWxQb3NpdGlvbicsICdvcmllbnRhdGlvbicsICdzaXplJywgJ3N0ZXBwZXJJZCcsICd0ZHNBcmlhTGFiZWwnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzU3RlcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1N0ZXBwZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTdGVwcGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTdGVwcGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbXBhY3REZXNpZ24nLCAnZXhwYW5kYWJsZVJvd3MnLCAnaG9yaXpvbnRhbFNjcm9sbFdpZHRoJywgJ21vZGVWYXJpYW50JywgJ211bHRpc2VsZWN0JywgJ25vTWluV2lkdGgnLCAncmVzcG9uc2l2ZScsICd0YWJsZUlkJywgJ3ZlcnRpY2FsRGl2aWRlcnMnLCAnemVicmFNb2RlJ10sXG4gIG1ldGhvZHM6IFsnZ2V0U2VsZWN0ZWRSb3dzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdGFibGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbXBhY3REZXNpZ24nLCAnZXhwYW5kYWJsZVJvd3MnLCAnaG9yaXpvbnRhbFNjcm9sbFdpZHRoJywgJ21vZGVWYXJpYW50JywgJ211bHRpc2VsZWN0JywgJ25vTWluV2lkdGgnLCAncmVzcG9uc2l2ZScsICd0YWJsZUlkJywgJ3ZlcnRpY2FsRGl2aWRlcnMnLCAnemVicmFNb2RlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1RhYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzVGFibGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUYWJsZSBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFibGUge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWJsZS1ib2R5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1RhYmxlQm9keSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1RhYmxlQm9keUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RhYmxlQm9keSBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFibGVCb2R5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3Nob3dJY29uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdGFibGUtYm9keS1pbnB1dC13cmFwcGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzaG93SWNvbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNUYWJsZUJvZHlJbnB1dFdyYXBwZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNUYWJsZUJvZHlJbnB1dFdyYXBwZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUYWJsZUJvZHlJbnB1dFdyYXBwZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1RhYmxlQm9keUlucHV0V3JhcHBlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbGlja2FibGUnLCAnZGlzYWJsZWQnLCAnc2VsZWN0ZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWJsZS1ib2R5LXJvdycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xpY2thYmxlJywgJ2Rpc2FibGVkJywgJ3NlbGVjdGVkJ10sXG4gIG91dHB1dHM6IFsndGRzU2VsZWN0JywgJ3Rkc0NsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1RhYmxlQm9keVJvdyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1RhYmxlQm9keVJvd0VsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdGFibGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkOyBjaGVja2VkOiBib29sZWFuOyBzZWxlY3RlZFJvd3M6IG9iamVjdFtdIHwgdW5kZWZpbmVkOyB9Pj4oKTtcbiAgQE91dHB1dCgpIHRkc0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGV2ZW50OiBNb3VzZUV2ZW50OyB0YWJsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7IHJvd0luZGV4OiBudW1iZXI7IH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUYWJsZUJvZHlSb3cgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1RhYmxlQm9keVJvdyB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSByb3cgaXMgc2VsZWN0ZWQvZGVzZWxlY3RlZC5cbiAgICovXG4gIHRkc1NlbGVjdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdGFibGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkOyBjaGVja2VkOiBib29sZWFuOyBzZWxlY3RlZFJvd3M6IG9iamVjdFtdIHwgdW5kZWZpbmVkOyB9Pj47XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSByb3cgaXMgY2xpY2tlZC5cbiAgICovXG4gIHRkc0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBldmVudDogTW91c2VFdmVudDsgdGFibGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkOyByb3dJbmRleDogbnVtYmVyOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9Db2xsYXBzZScsICdjb2xTcGFuJywgJ2V4cGFuZGVkJywgJ292ZXJmbG93JywgJ3Jvd0lkJywgJ3Rkc0FyaWFMYWJlbEV4cGFuZEJ1dHRvbiddLFxuICBtZXRob2RzOiBbJ2V4cGFuZCcsICdjb2xsYXBzZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRhYmxlLWJvZHktcm93LWV4cGFuZGFibGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9Db2xsYXBzZScsICdjb2xTcGFuJywgJ2V4cGFuZGVkJywgJ292ZXJmbG93JywgJ3Jvd0lkJywgJ3Rkc0FyaWFMYWJlbEV4cGFuZEJ1dHRvbiddLFxuICBvdXRwdXRzOiBbJ3Rkc0NoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNUYWJsZUJvZHlSb3dFeHBhbmRhYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzVGFibGVCb2R5Um93RXhwYW5kYWJsZUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgcm93SWQ6IHN0cmluZzsgaXNFeHBhbmRlZDogYm9vbGVhbjsgdGFibGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkOyB9Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVGFibGVCb2R5Um93RXhwYW5kYWJsZSBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFibGVCb2R5Um93RXhwYW5kYWJsZSB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgdGFibGUgcm93IGlkZW50aWZpZXIgYW5kIGlzRXhwYW5kZWQgc3RhdHVzIHdoZW4gaXQgaXMgZXhwYW5kZWQvY29sbGFwc2VkLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyByb3dJZDogc3RyaW5nOyBpc0V4cGFuZGVkOiBib29sZWFuOyB0YWJsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29scycsICdwYWdlcycsICdwYWdpbmF0aW9uJywgJ3BhZ2luYXRpb25WYWx1ZScsICdyb3dzUGVyUGFnZVZhbHVlcycsICdyb3dzcGVycGFnZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRhYmxlLWZvb3RlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29scycsICdwYWdlcycsICdwYWdpbmF0aW9uJywgJ3BhZ2luYXRpb25WYWx1ZScsICdyb3dzUGVyUGFnZVZhbHVlcycsICdyb3dzcGVycGFnZSddLFxuICBvdXRwdXRzOiBbJ3Rkc1BhZ2luYXRpb24nXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGFibGVGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNUYWJsZUZvb3RlckVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNQYWdpbmF0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRhYmxlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDsgcGFnaW5hdGlvblZhbHVlOiBudW1iZXI7IHJvd3NQZXJQYWdlPzogbnVtYmVyOyB9Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVGFibGVGb290ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1RhYmxlRm9vdGVyIHtcbiAgLyoqXG4gICAqIEV2ZW50IHRvIHNlbmQgY3VycmVudCBwYWdlIHZhbHVlIHRvIHRkcy10YWJsZS1ib2R5IGNvbXBvbmVudCwgY2FuIGFsc28gYmUgbGlzdGVuZWQgdG8gaW4gb3JkZXIgdG8gaW1wbGVtZW50IGN1c3RvbSBwYWdpbmF0aW9uIGxvZ2ljLlxuICAgKi9cbiAgdGRzUGFnaW5hdGlvbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdGFibGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkOyBwYWdpbmF0aW9uVmFsdWU6IG51bWJlcjsgcm93c1BlclBhZ2U/OiBudW1iZXI7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWxsU2VsZWN0ZWQnLCAnZGlzYWJsZWQnLCAnaW5kZXRlcm1pbmF0ZScsICdzZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRhYmxlLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxsU2VsZWN0ZWQnLCAnZGlzYWJsZWQnLCAnaW5kZXRlcm1pbmF0ZScsICdzZWxlY3RlZCddLFxuICBvdXRwdXRzOiBbJ3Rkc1NlbGVjdEFsbCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNUYWJsZUhlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1RhYmxlSGVhZGVyRWxlbWVudDtcbiAgQE91dHB1dCgpIHRkc1NlbGVjdEFsbCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0YWJsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7IGNoZWNrZWQ6IGJvb2xlYW47IHNlbGVjdGVkUm93czogb2JqZWN0W10gfCB1bmRlZmluZWQ7IH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUYWJsZUhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFibGVIZWFkZXIge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzdGF0dXMgb2YgdGhlIHNlbGVjdCBhbGwgY2hlY2tib3ggY2hhbmdlcy5cbiAgICovXG4gIHRkc1NlbGVjdEFsbDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdGFibGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkOyBjaGVja2VkOiBib29sZWFuOyBzZWxlY3RlZFJvd3M6IG9iamVjdFtdIHwgdW5kZWZpbmVkOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbXBhY3REZXNpZ24nLCAnc2hvd0ljb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWJsZS1oZWFkZXItaW5wdXQtd3JhcHBlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29tcGFjdERlc2lnbicsICdzaG93SWNvbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNUYWJsZUhlYWRlcklucHV0V3JhcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1RhYmxlSGVhZGVySW5wdXRXcmFwcGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVGFibGVIZWFkZXJJbnB1dFdyYXBwZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1RhYmxlSGVhZGVySW5wdXRXcmFwcGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ZpbHRlcicsICd0YWJsZVRpdGxlJywgJ3Rkc1NlYXJjaEFyaWFMYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRhYmxlLXRvb2xiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZpbHRlcicsICd0YWJsZVRpdGxlJywgJ3Rkc1NlYXJjaEFyaWFMYWJlbCddLFxuICBvdXRwdXRzOiBbJ3Rkc0ZpbHRlciddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNUYWJsZVRvb2xiYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNUYWJsZVRvb2xiYXJFbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzRmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRhYmxlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDsgcXVlcnk6IHN0cmluZzsgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RhYmxlVG9vbGJhciBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFibGVUb29sYmFyIHtcbiAgLyoqXG4gICAqIFVzZWQgZm9yIHNlbmRpbmcgdXNlcnMnIGlucHV0IHRvIHRoZSBtYWluIHBhcmVudCB0ZHMtdGFibGUgdGhlIGNvbXBvbmVudCxcbmNhbiBhbHNvIGJlIGxpc3RlbmVkIHRvIGluIG9yZGVyIHRvIGltcGxlbWVudCBjdXN0b20gc29ydGluZyBsb2dpYy5cbiAgICovXG4gIHRkc0ZpbHRlcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdGFibGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkOyBxdWVyeTogc3RyaW5nOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NpemUnLCAndGV4dCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdGFnJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzaXplJywgeyBuYW1lOiAndGV4dCcsIHJlcXVpcmVkOiB0cnVlIH0sICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1RhZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1RhZ0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RhZyBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFnIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9jb21wbGV0ZScsICdhdXRvZm9jdXMnLCAnZGlzYWJsZWQnLCAnaGVscGVyJywgJ2hpZGVOdW1iZXJBcnJvd3MnLCAnaGlkZVJlYWRPbmx5SWNvbicsICdsYWJlbCcsICdsYWJlbFBvc2l0aW9uJywgJ21heCcsICdtYXhMZW5ndGgnLCAnbWluJywgJ21vZGVWYXJpYW50JywgJ25hbWUnLCAnbm9NaW5XaWR0aCcsICdwbGFjZWhvbGRlcicsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3N0YXRlJywgJ3N0ZXAnLCAndGRzQXJpYUxhYmVsJywgJ3R5cGUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydmb2N1c0VsZW1lbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10ZXh0LWZpZWxkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvY29tcGxldGUnLCAnYXV0b2ZvY3VzJywgJ2Rpc2FibGVkJywgJ2hlbHBlcicsICdoaWRlTnVtYmVyQXJyb3dzJywgJ2hpZGVSZWFkT25seUljb24nLCAnbGFiZWwnLCAnbGFiZWxQb3NpdGlvbicsICdtYXgnLCAnbWF4TGVuZ3RoJywgJ21pbicsICdtb2RlVmFyaWFudCcsICduYW1lJywgJ25vTWluV2lkdGgnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdGF0ZScsICdzdGVwJywgJ3Rkc0FyaWFMYWJlbCcsICd0eXBlJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsndGRzQ2hhbmdlJywgJ3Rkc0lucHV0JywgJ3Rkc0ZvY3VzJywgJ3Rkc0JsdXInLCAndGRzRXJyb3InXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGV4dEZpZWxkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzVGV4dEZpZWxkRWxlbWVudDtcbiAgQE91dHB1dCgpIHRkc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj4oKTtcbiAgQE91dHB1dCgpIHRkc0lucHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHRkc0ZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHRkc0JsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgdGRzRXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgb3JpZ2luYWxWYWx1ZTogc3RyaW5nOyBjbGFtcGVkVmFsdWU6IHN0cmluZzsgcmVhc29uOiAnbWluJyB8ICdtYXgnIH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUZXh0RmllbGQgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1RleHRGaWVsZCB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnQgZm9yIHRoZSBUZXh0IEZpZWxkXG4gICAqL1xuICB0ZHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIElucHV0IGV2ZW50IGZvciB0aGUgVGV4dCBGaWVsZFxuICAgKi9cbiAgdGRzSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudCBmb3IgdGhlIFRleHQgRmllbGRcbiAgICovXG4gIHRkc0ZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudCBmb3IgdGhlIFRleHQgRmllbGRcbiAgICovXG4gIHRkc0JsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBFcnJvciBldmVudCBmb3IgdGhlIFRleHQgRmllbGQgLSBlbWl0dGVkIHdoZW4gdmFsdWUgaXMgY2xhbXBlZCB0byBtaW4vbWF4XG4gICAqL1xuICB0ZHNFcnJvcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgb3JpZ2luYWxWYWx1ZTogc3RyaW5nOyBjbGFtcGVkVmFsdWU6IHN0cmluZzsgcmVhc29uOiAnbWluJyB8ICdtYXgnIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2ZvY3VzJywgJ2NvbHMnLCAnZGlzYWJsZWQnLCAnaGVscGVyJywgJ2hpZGVSZWFkT25seUljb24nLCAnbGFiZWwnLCAnbGFiZWxQb3NpdGlvbicsICdtYXhMZW5ndGgnLCAnbW9kZVZhcmlhbnQnLCAnbmFtZScsICdub01pbldpZHRoJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRPbmx5JywgJ3Jvd3MnLCAnc3RhdGUnLCAndGRzQXJpYUxhYmVsJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnZm9jdXNFbGVtZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdGV4dGFyZWEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdjb2xzJywgJ2Rpc2FibGVkJywgJ2hlbHBlcicsICdoaWRlUmVhZE9ubHlJY29uJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbWF4TGVuZ3RoJywgJ21vZGVWYXJpYW50JywgJ25hbWUnLCAnbm9NaW5XaWR0aCcsICdwbGFjZWhvbGRlcicsICdyZWFkT25seScsICdyb3dzJywgJ3N0YXRlJywgJ3Rkc0FyaWFMYWJlbCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3Rkc0NoYW5nZScsICd0ZHNCbHVyJywgJ3Rkc0lucHV0JywgJ3Rkc0ZvY3VzJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1RleHRhcmVhIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzVGV4dGFyZWFFbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PigpO1xuICBAT3V0cHV0KCkgdGRzQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNJbnB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SW5wdXRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RleHRhcmVhIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUZXh0YXJlYSB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnQgZm9yIHRoZSBUZXh0YXJlYVxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBCbHVyIGV2ZW50IGZvciB0aGUgVGV4dGFyZWFcbiAgICovXG4gIHRkc0JsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBldmVudCBmb3IgdGhlIFRleHRhcmVhXG4gICAqL1xuICB0ZHNJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElucHV0RXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50IGZvciB0aGUgVGV4dGFyZWFcbiAgICovXG4gIHRkc0ZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbG9zYWJsZScsICdoZWFkZXInLCAnaGlkZGVuJywgJ3N1YmhlYWRlcicsICd0ZHNBcmlhTGl2ZScsICd0ZHNDbG9zZUFyaWFMYWJlbCcsICd0b2FzdElkJywgJ3RvYXN0Um9sZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnaGlkZVRvYXN0JywgJ3Nob3dUb2FzdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRvYXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbG9zYWJsZScsICdoZWFkZXInLCAnaGlkZGVuJywgJ3N1YmhlYWRlcicsICd0ZHNBcmlhTGl2ZScsICd0ZHNDbG9zZUFyaWFMYWJlbCcsICd0b2FzdElkJywgJ3RvYXN0Um9sZScsICd2YXJpYW50J10sXG4gIG91dHB1dHM6IFsndGRzQ2xvc2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzVG9hc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNUb2FzdEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0b2FzdElkOiBzdHJpbmc7IH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUb2FzdCBleHRlbmRzIENvbXBvbmVudHMuVGRzVG9hc3Qge1xuICAvKipcbiAgICogU2VuZHMgdW5pcXVlIFRvYXN0IGlkZW50aWZpZXIgd2hlbiBjb21wb25lbnQgaXMgY2xvc2VkLlxuICAgKi9cbiAgdGRzQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRvYXN0SWQ6IHN0cmluZzsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2hlYWRsaW5lJywgJ25hbWUnLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0ZHNBcmlhTGFiZWwnLCAndG9nZ2xlSWQnXSxcbiAgbWV0aG9kczogWyd0b2dnbGUnLCAnZm9jdXNFbGVtZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2hlYWRsaW5lJywgJ25hbWUnLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0ZHNBcmlhTGFiZWwnLCAndG9nZ2xlSWQnXSxcbiAgb3V0cHV0czogWyd0ZHNUb2dnbGUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzVG9nZ2xlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzVG9nZ2xlRWxlbWVudDtcbiAgQE91dHB1dCgpIHRkc1RvZ2dsZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0b2dnbGVJZDogc3RyaW5nOyBjaGVja2VkOiBib29sZWFuOyB9Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUb2dnbGUge1xuICAvKipcbiAgICogU2VuZHMgdW5pcXVlIFRvZ2dsZSBpZGVudGlmaWVyIGFuZCBzdGF0dXMgd2hlbiBpdCBpcyB0b2dnbGVkLlxuICAgKi9cbiAgdGRzVG9nZ2xlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0b2dnbGVJZDogc3RyaW5nOyBjaGVja2VkOiBib29sZWFuOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2RlZmF1bHRTaG93JywgJ21vdXNlT3ZlclRvb2x0aXAnLCAnb2Zmc2V0RGlzdGFuY2UnLCAnb2Zmc2V0U2tpZGRpbmcnLCAncGxhY2VtZW50JywgJ3JlZmVyZW5jZUVsJywgJ3NlbGVjdG9yJywgJ3Nob3cnLCAndGRzQXJpYURlc2NyaWJlZGJ5JywgJ3RleHQnLCAndHJpZ2dlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRvb2x0aXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlZmF1bHRTaG93JywgJ21vdXNlT3ZlclRvb2x0aXAnLCAnb2Zmc2V0RGlzdGFuY2UnLCAnb2Zmc2V0U2tpZGRpbmcnLCAncGxhY2VtZW50JywgJ3JlZmVyZW5jZUVsJywgJ3NlbGVjdG9yJywgJ3Nob3cnLCAndGRzQXJpYURlc2NyaWJlZGJ5JywgJ3RleHQnLCAndHJpZ2dlciddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNUb29sdGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzVG9vbHRpcEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1Rvb2x0aXAgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1Rvb2x0aXAge31cblxuXG4iXX0=
2327
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zdGVuY2lsLWdlbmVyYXRlZC9jb21wb25lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQkFBb0I7QUFDcEIsOENBQThDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFaEksT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQWdCbEQsSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBWTtJQUV2QixZQUFZLENBQW9CLEVBQUUsQ0FBYSxFQUFZLENBQVM7UUFBVCxNQUFDLEdBQUQsQ0FBQyxDQUFRO1FBQ2xFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNYLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOytHQUxVLFlBQVk7bUdBQVosWUFBWSwrSEFMYiwyQkFBMkI7O0FBSzFCLFlBQVk7SUFYeEIsUUFBUSxDQUFDO1FBQ1IsTUFBTSxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsYUFBYSxDQUFDO0tBQzFDLENBQUM7R0FTVyxZQUFZLENBTXhCOzs0RkFOWSxZQUFZO2tCQVJ4QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsdUVBQXVFO29CQUN2RSxNQUFNLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUM7b0JBQ3pDLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjs7QUEwQk0sSUFBTSxnQkFBZ0IsR0FBdEIsTUFBTSxnQkFBZ0I7SUFHM0IsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFB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QixNQUFNLFVBQVU7SUFFckIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUNsRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzsrR0FMVSxVQUFVO21HQUFWLFVBQVUseVdBTFgsMkJBQTJCOztBQUsxQixVQUFVO0lBWHRCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQztLQUN6SyxDQUFDO0dBU1csVUFBVSxDQU10Qjs7NEZBTlksVUFBVTtrQkFSdEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLHVFQUF1RTtvQkFDdkUsTUFBTSxFQUFFLENBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDO29CQUN4SyxVQUFVLEVBQUUsS0FBSztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUHJveHlDbXAgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBvbmVudHMgfSBmcm9tICdAc2NhbmlhL3RlZ2VsJztcblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUxhc3RCb3JkZXInLCAnbW9kZVZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1hY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVMYXN0Qm9yZGVyJywgJ21vZGVWYXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0FjY29yZGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0FjY29yZGlvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0FjY29yZGlvbiBleHRlbmRzIENvbXBvbmVudHMuVGRzQWNjb3JkaW9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FyaWFMZXZlbFZhbHVlJywgJ2Rpc2FibGVkJywgJ2V4cGFuZEljb25Qb3NpdGlvbicsICdleHBhbmRlZCcsICdoZWFkZXInLCAncGFkZGluZ1Jlc2V0J10sXG4gIG1ldGhvZHM6IFsndG9nZ2xlQWNjb3JkaW9uSXRlbScsICdleHBhbmQnLCAnY29sbGFwc2UnLCAnaXNFeHBhbmRlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWFjY29yZGlvbi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcmlhTGV2ZWxWYWx1ZScsICdkaXNhYmxlZCcsICdleHBhbmRJY29uUG9zaXRpb24nLCAnZXhwYW5kZWQnLCAnaGVhZGVyJywgJ3BhZGRpbmdSZXNldCddLFxuICBvdXRwdXRzOiBbJ3Rkc1RvZ2dsZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNBY2NvcmRpb25JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzQWNjb3JkaW9uSXRlbUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNUb2dnbGUgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZXhwYW5kZWQ6IGJvb2xlYW47IH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNBY2NvcmRpb25JdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNBY2NvcmRpb25JdGVtIHtcbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIEFjY29yZGlvbiBJdGVtIGlzIGNsaWNrZWQsIGJ1dCBiZWZvcmUgaXQgaXMgY2xvc2VkIG9yIG9wZW5lZC5cbiAgICovXG4gIHRkc1RvZ2dsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZXhwYW5kZWQ6IGJvb2xlYW47IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZGVuJywgJ3NpemUnLCAndGRzQXJpYUxpdmUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1iYWRnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZGVuJywgJ3NpemUnLCAndGRzQXJpYUxpdmUnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzQmFkZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNCYWRnZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0JhZGdlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNCYWRnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYW5uZXJJZCcsICdoZWFkZXInLCAnaGlkZGVuJywgJ2ljb24nLCAncm9sZVR5cGUnLCAnc3ViaGVhZGVyJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydoaWRlQmFubmVyJywgJ3Nob3dCYW5uZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1iYW5uZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Jhbm5lcklkJywgJ2hlYWRlcicsICdoaWRkZW4nLCAnaWNvbicsICdyb2xlVHlwZScsICdzdWJoZWFkZXInLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ3Rkc0Nsb3NlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0Jhbm5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0Jhbm5lckVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBiYW5uZXJJZDogc3RyaW5nOyB9Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQmFubmVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNCYW5uZXIge1xuICAvKipcbiAgICogU2VuZHMgYSB1bmlxdWUgQmFubmVyIGlkZW50aWZpZXIgd2hlbiB0aGUgY2xvc2UgYnV0dG9uIGlzIHByZXNzZWQuXG4gICAqL1xuICB0ZHNDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgYmFubmVySWQ6IHN0cmluZzsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb21wb25lbnRUYWcnLCAnbW9kZVZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1ibG9jaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29tcG9uZW50VGFnJywgJ21vZGVWYXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0Jsb2NrIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzQmxvY2tFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNCbG9jayBleHRlbmRzIENvbXBvbmVudHMuVGRzQmxvY2sge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2VsbEtleScsICdjZWxsVmFsdWUnLCAnY29sU3BhbicsICdkaXNhYmxlUGFkZGluZycsICdyb3dTcGFuJywgJ3RleHRBbGlnbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWJvZHktY2VsbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2VsbEtleScsICdjZWxsVmFsdWUnLCAnY29sU3BhbicsICdkaXNhYmxlUGFkZGluZycsICdyb3dTcGFuJywgJ3RleHRBbGlnbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNCb2R5Q2VsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0JvZHlDZWxsRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQm9keUNlbGwgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0JvZHlDZWxsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1cnJlbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1icmVhZGNydW1iJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjdXJyZW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0JyZWFkY3J1bWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNCcmVhZGNydW1iRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQnJlYWRjcnVtYiBleHRlbmRzIENvbXBvbmVudHMuVGRzQnJlYWRjcnVtYiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyd0ZHNBcmlhTGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1icmVhZGNydW1icycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndGRzQXJpYUxhYmVsJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0JyZWFkY3J1bWJzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzQnJlYWRjcnVtYnNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNCcmVhZGNydW1icyBleHRlbmRzIENvbXBvbmVudHMuVGRzQnJlYWRjcnVtYnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2Rpc2FibGVkJywgJ2Z1bGxibGVlZCcsICdtb2RlVmFyaWFudCcsICduYW1lJywgJ3NpemUnLCAndGRzQXJpYUxhYmVsJywgJ3RleHQnLCAndHlwZScsICd2YWx1ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnZGlzYWJsZWQnLCAnZnVsbGJsZWVkJywgJ21vZGVWYXJpYW50JywgJ25hbWUnLCAnc2l6ZScsICd0ZHNBcmlhTGFiZWwnLCAndGV4dCcsICd0eXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzQnV0dG9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNCdXR0b24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYm9keURpdmlkZXInLCAnYm9keUltZycsICdib2R5SW1nQWx0JywgJ2NhcmRJZCcsICdjbGlja2FibGUnLCAnZXhwYW5kYWJsZScsICdleHBhbmRlZCcsICdoZWFkZXInLCAnaW1hZ2VQbGFjZW1lbnQnLCAnbW9kZVZhcmlhbnQnLCAnc3RyZXRjaCcsICdzdWJoZWFkZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydib2R5RGl2aWRlcicsICdib2R5SW1nJywgJ2JvZHlJbWdBbHQnLCAnY2FyZElkJywgJ2NsaWNrYWJsZScsICdleHBhbmRhYmxlJywgJ2V4cGFuZGVkJywgJ2hlYWRlcicsICdpbWFnZVBsYWNlbWVudCcsICdtb2RlVmFyaWFudCcsICdzdHJldGNoJywgJ3N1YmhlYWRlciddLFxuICBvdXRwdXRzOiBbJ3Rkc0NsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0NhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNDYXJkRWxlbWVudDtcbiAgQE91dHB1dCgpIHRkc0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNhcmRJZDogc3RyaW5nOyB9Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuVGRzQ2FyZCB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgQ2FyZCBpZGVudGlmaWVyIHdoZW4gdGhlIENhcmQgaXMgY2xpY2tlZCwgaWYgY2xpY2thYmxlPXRydWVcbiAgICovXG4gIHRkc0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjYXJkSWQ6IHN0cmluZzsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2JveElkJywgJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaW5kZXRlcm1pbmF0ZScsICduYW1lJywgJ3JlcXVpcmVkJywgJ3Rkc0FyaWFEZXNjcmliZWRieScsICd0ZHNBcmlhTGFiZWwnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWyd0b2dnbGVDaGVja2JveCcsICdmb2N1c0VsZW1lbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1jaGVja2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tib3hJZCcsICdjaGVja2VkJywgJ2Rpc2FibGVkJywgJ2luZGV0ZXJtaW5hdGUnLCAnbmFtZScsICdyZXF1aXJlZCcsICd0ZHNBcmlhRGVzY3JpYmVkYnknLCAndGRzQXJpYUxhYmVsJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsndGRzQ2hhbmdlJywgJ3Rkc0ZvY3VzJywgJ3Rkc0JsdXInXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzQ2hlY2tib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNDaGVja2JveEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgY2hlY2tib3hJZDogc3RyaW5nOyBjaGVja2VkOiBib29sZWFuOyBpbmRldGVybWluYXRlOiBib29sZWFuOyB2YWx1ZT86IHN0cmluZzsgfT4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzQ2hlY2tib3ggZXh0ZW5kcyBDb21wb25lbnRzLlRkc0NoZWNrYm94IHtcbiAgLyoqXG4gICAqIFNlbmRzIHVuaXF1ZSBDaGVja2JveCBpZGVudGlmaWVyIGFuZCBjaGVja2VkIHN0YXR1cyB3aGVuIGl0IGlzIGNoZWNrZWQvdW5jaGVja2VkLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjaGVja2JveElkOiBzdHJpbmc7IGNoZWNrZWQ6IGJvb2xlYW47IGluZGV0ZXJtaW5hdGU6IGJvb2xlYW47IHZhbHVlPzogc3RyaW5nOyB9Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudCBmb3IgdGhlIENoZWNrYm94XG4gICAqL1xuICB0ZHNGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnQgZm9yIHRoZSBDaGVja2JveFxuICAgKi9cbiAgdGRzQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdjaGlwSWQnLCAnZGlzYWJsZWQnLCAnbmFtZScsICdzaXplJywgJ3Rkc0FyaWFMYWJlbCcsICd0eXBlJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtY2hpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdjaGlwSWQnLCAnZGlzYWJsZWQnLCAnbmFtZScsICdzaXplJywgJ3Rkc0FyaWFMYWJlbCcsICd0eXBlJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsndGRzQ2hhbmdlJywgJ3Rkc0NsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0NoaXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNDaGlwRWxlbWVudDtcbiAgQE91dHB1dCgpIHRkc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjaGlwSWQ6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDsgY2hlY2tlZD86IGJvb2xlYW47IH0+PigpO1xuICBAT3V0cHV0KCkgdGRzQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgY2hpcElkOiBzdHJpbmc7IH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNDaGlwIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNDaGlwIHtcbiAgLyoqXG4gICAqIFNlbmRzIHVuaXF1ZSBDaGlwIGlkZW50aWZpZXIgYW5kIHZhbHVlIHdoZW4gaXQgaXMgY2hhbmdlZCAoY2hlY2tlZC91bmNoZWNrZWQpLlxuVmFsaWQgb25seSBmb3IgdHlwZSBjaGVja2JveCBhbmQgcmFkaW8uXG5JZiBubyBJRCBpcyBzcGVjaWZpZWQsIGEgcmFuZG9tIG9uZSB3aWxsIGJlIGdlbmVyYXRlZC5cblRvIHVzZSB0aGlzIGxpc3RlbmVyLCBkb24ndCB1c2UgdGhlIHJhbmRvbWl6ZWQgSUQsIHVzZSBhIHNwZWNpZmljIG9uZSBvZiB5b3VyIGNob29zaW5nLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBjaGlwSWQ6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDsgY2hlY2tlZD86IGJvb2xlYW47IH0+PjtcbiAgLyoqXG4gICAqIFNlbmRzIHVuaXF1ZSBDaGlwIGlkZW50aWZpZXIgd2hlbiBDaGlwIGlzIGNsaWNrZWQuXG5WYWxpZCBvbmx5IGZvciB0eXBlIGJ1dHRvbi5cbklmIG5vIElEIGlzIHNwZWNpZmllZCwgYSByYW5kb20gb25lIHdpbGwgYmUgZ2VuZXJhdGVkLlxuVG8gdXNlIHRoaXMgbGlzdGVuZXIsIGRvbid0IHVzZSB0aGUgcmFuZG9taXplZCBJRCwgdXNlIGEgc3BlY2lmaWMgb25lIG9mIHlvdXIgY2hvb3NpbmcuXG4gICAqL1xuICB0ZHNDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgY2hpcElkOiBzdHJpbmc7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1jb3JlLWhlYWRlci1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0NvcmVIZWFkZXJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzQ29yZUhlYWRlckl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNDb3JlSGVhZGVySXRlbSBleHRlbmRzIENvbXBvbmVudHMuVGRzQ29yZUhlYWRlckl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2ZvY3VzJywgJ2RlZmF1bHRWYWx1ZScsICdkaXNhYmxlZCcsICdoZWxwZXInLCAnbGFiZWwnLCAnbGFiZWxQb3NpdGlvbicsICdtYXgnLCAnbWluJywgJ21vZGVWYXJpYW50JywgJ25hbWUnLCAnbm9NaW5XaWR0aCcsICdzaXplJywgJ3N0YXRlJywgJ3Rkc0FyaWFMYWJlbCcsICd0eXBlJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsncmVzZXQnLCAnc2V0VmFsdWUnLCAnZm9jdXNFbGVtZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtZGF0ZXRpbWUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9mb2N1cycsICdkZWZhdWx0VmFsdWUnLCAnZGlzYWJsZWQnLCAnaGVscGVyJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbWF4JywgJ21pbicsICdtb2RlVmFyaWFudCcsICduYW1lJywgJ25vTWluV2lkdGgnLCAnc2l6ZScsICdzdGF0ZScsICd0ZHNBcmlhTGFiZWwnLCAndHlwZScsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3Rkc0NoYW5nZScsICd0ZHNCbHVyJywgJ3Rkc0ZvY3VzJywgJ3Rkc0lucHV0J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0RhdGV0aW1lIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzRGF0ZXRpbWVFbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PigpO1xuICBAT3V0cHV0KCkgdGRzQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNJbnB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SW5wdXRFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0RhdGV0aW1lIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNEYXRldGltZSB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnQgZm9yIHRoZSBEYXRldGltZVxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8YW55Pj47XG4gIC8qKlxuICAgKiBCbHVyIGV2ZW50IGZvciB0aGUgRGF0ZXRpbWVcbiAgICovXG4gIHRkc0JsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudCBmb3IgdGhlIERhdGV0aW1lXG4gICAqL1xuICB0ZHNGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGV2ZW50IGZvciB0aGUgRGF0ZXRpbWVcbiAgICovXG4gIHRkc0lucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SW5wdXRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydvcmllbnRhdGlvbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtZGl2aWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnb3JpZW50YXRpb24nLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNEaXZpZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzRGl2aWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0RpdmlkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0RpdmlkZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2RlZmF1bHRWYWx1ZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdmaWx0ZXInLCAnaGVscGVyJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbW9kZVZhcmlhbnQnLCAnbXVsdGlzZWxlY3QnLCAnbmFtZScsICdub1Jlc3VsdFRleHQnLCAnbm9ybWFsaXplVGV4dCcsICdvcGVuRGlyZWN0aW9uJywgJ3BsYWNlaG9sZGVyJywgJ3NpemUnLCAndGRzQXJpYUxhYmVsJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0VmFsdWUnLCAncmVzZXQnLCAncmVtb3ZlVmFsdWUnLCAnZm9jdXNFbGVtZW50JywgJ2Nsb3NlJywgJ3VwZGF0ZURpc3BsYXknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2RlZmF1bHRWYWx1ZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdmaWx0ZXInLCAnaGVscGVyJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbW9kZVZhcmlhbnQnLCAnbXVsdGlzZWxlY3QnLCAnbmFtZScsICdub1Jlc3VsdFRleHQnLCAnbm9ybWFsaXplVGV4dCcsICdvcGVuRGlyZWN0aW9uJywgJ3BsYWNlaG9sZGVyJywgJ3NpemUnLCAndGRzQXJpYUxhYmVsJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsndGRzQ2hhbmdlJywgJ3Rkc0ZvY3VzJywgJ3Rkc0JsdXInLCAndGRzSW5wdXQnLCAndGRzQ2xlYXInXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzRHJvcGRvd24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNEcm9wZG93bkVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgbmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkOyB2YWx1ZTogc3RyaW5nIHwgbnVsbDsgfT4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHRkc0lucHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHRkc0NsZWFyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNsZWFyZWRWYWx1ZTogc3RyaW5nIH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuVGRzRHJvcGRvd24ge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50IGZvciB0aGUgRHJvcGRvd24uXG4gICAqL1xuICB0ZHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDsgdmFsdWU6IHN0cmluZyB8IG51bGw7IH0+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50IGZvciB0aGUgRHJvcGRvd24uXG4gICAqL1xuICB0ZHNGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnQgZm9yIHRoZSBEcm9wZG93bi5cbiAgICovXG4gIHRkc0JsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBldmVudCBmb3IgdGhlIERyb3Bkb3duLlxuICAgKi9cbiAgdGRzSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbGVhciBldmVudCBmb3IgdGhlIERyb3Bkb3duLlxuICAgKi9cbiAgdGRzQ2xlYXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGNsZWFyZWRWYWx1ZTogc3RyaW5nIH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAndGRzQXJpYUxhYmVsJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0U2VsZWN0ZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1kcm9wZG93bi1vcHRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ3Rkc0FyaWFMYWJlbCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3Rkc1NlbGVjdCcsICd0ZHNGb2N1cycsICd0ZHNCbHVyJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0Ryb3Bkb3duT3B0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzRHJvcGRvd25PcHRpb25FbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlbGVjdGVkOiBib29sZWFuOyB2YWx1ZTogc3RyaW5nOyB9Pj4oKTtcbiAgQE91dHB1dCgpIHRkc0ZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHRkc0JsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNEcm9wZG93bk9wdGlvbiBleHRlbmRzIENvbXBvbmVudHMuVGRzRHJvcGRvd25PcHRpb24ge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnQgZm9yIHRoZSBEcm9wZG93biBvcHRpb24uXG4gICAqL1xuICB0ZHNTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlbGVjdGVkOiBib29sZWFuOyB2YWx1ZTogc3RyaW5nOyB9Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudCBmb3IgdGhlIERyb3Bkb3duIG9wdGlvbi5cbiAgICovXG4gIHRkc0ZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudCBmb3IgdGhlIERyb3Bkb3duIG9wdGlvbi5cbiAgICovXG4gIHRkc0JsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtZm9sZGVyLXRhYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzRm9sZGVyVGFiIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzRm9sZGVyVGFiRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzRm9sZGVyVGFiIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNGb2xkZXJUYWIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVmYXVsdFNlbGVjdGVkSW5kZXgnLCAnbW9kZVZhcmlhbnQnLCAnc2VsZWN0ZWRJbmRleCcsICd0ZHNTY3JvbGxMZWZ0QXJpYUxhYmVsJywgJ3Rkc1Njcm9sbFJpZ2h0QXJpYUxhYmVsJ10sXG4gIG1ldGhvZHM6IFsnc2VsZWN0VGFiJywgJ3JlaW5pdGlhbGl6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWZvbGRlci10YWJzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWZhdWx0U2VsZWN0ZWRJbmRleCcsICdtb2RlVmFyaWFudCcsICdzZWxlY3RlZEluZGV4JywgJ3Rkc1Njcm9sbExlZnRBcmlhTGFiZWwnLCAndGRzU2Nyb2xsUmlnaHRBcmlhTGFiZWwnXSxcbiAgb3V0cHV0czogWyd0ZHNDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzRm9sZGVyVGFicyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0ZvbGRlclRhYnNFbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlbGVjdGVkVGFiSW5kZXg6IG51bWJlcjsgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0ZvbGRlclRhYnMgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0ZvbGRlclRhYnMge1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzZWxlY3RlZCBUYWIgaXMgY2hhbmdlZC5cbiAgICovXG4gIHRkc0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VsZWN0ZWRUYWJJbmRleDogbnVtYmVyOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ21vZGVWYXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydtb2RlVmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNGb290ZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNGb290ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0Zvb3RlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyd0ZHNMaXN0QXJpYUxhYmVsJywgJ3RpdGxlVGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWZvb3Rlci1ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndGRzTGlzdEFyaWFMYWJlbCcsICd0aXRsZVRleHQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzRm9vdGVyR3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNGb290ZXJHcm91cEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0Zvb3Rlckdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNGb290ZXJHcm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWZvb3Rlci1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0Zvb3Rlckl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNGb290ZXJJdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzRm9vdGVySXRlbSBleHRlbmRzIENvbXBvbmVudHMuVGRzRm9vdGVySXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNIZWFkZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1icmFuZC1zeW1ib2wnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyQnJhbmRTeW1ib2wge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNIZWFkZXJCcmFuZFN5bWJvbEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckJyYW5kU3ltYm9sIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJCcmFuZFN5bWJvbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjZWxsS2V5JywgJ2NlbGxWYWx1ZScsICdjb2xTcGFuJywgJ2N1c3RvbVdpZHRoJywgJ2Rpc2FibGVQYWRkaW5nJywgJ3Jvd1NwYW4nLCAnc29ydGFibGUnLCAndGRzQXJpYUxhYmVsU29ydEJ1dHRvbicsICd0ZXh0QWxpZ24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItY2VsbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2VsbEtleScsICdjZWxsVmFsdWUnLCAnY29sU3BhbicsICdjdXN0b21XaWR0aCcsICdkaXNhYmxlUGFkZGluZycsICdyb3dTcGFuJywgJ3NvcnRhYmxlJywgJ3Rkc0FyaWFMYWJlbFNvcnRCdXR0b24nLCAndGV4dEFsaWduJ10sXG4gIG91dHB1dHM6IFsndGRzU29ydCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJDZWxsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzSGVhZGVyQ2VsbEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNTb3J0ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRhYmxlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDsgY29sdW1uS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7IHNvcnRpbmdEaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnOyB9Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyQ2VsbCBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyQ2VsbCB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgVGFibGUgaWRlbnRpZmllciwgY29sdW1uIGtleSBhbmQgc29ydGluZyBkaXJlY3Rpb24gdG8gdGhlIHRkcy10YWJsZS1ib2R5IGNvbXBvbmVudCxcbmNhbiBhbHNvIGJlIGxpc3RlbmVkIHRvIGltcGxlbWVudCBjdXN0b20tc29ydGluZyBsb2dpYy5cbiAgICovXG4gIHRkc1NvcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRhYmxlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDsgY29sdW1uS2V5OiBzdHJpbmcgfCB1bmRlZmluZWQ7IHNvcnRpbmdEaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ25vRHJvcGRvd25JY29uJywgJ3NlbGVjdGVkJywgJ3Rkc0FyaWFMYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnLCAnbm9Ecm9wZG93bkljb24nLCAnc2VsZWN0ZWQnLCAndGRzQXJpYUxhYmVsJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckRyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzSGVhZGVyRHJvcGRvd25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyRHJvcGRvd24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1kcm9wZG93bi1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzaXplJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckRyb3Bkb3duTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0hlYWRlckRyb3Bkb3duTGlzdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckRyb3Bkb3duTGlzdCBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyRHJvcGRvd25MaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NlbGVjdGVkJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItZHJvcGRvd24tbGlzdC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzZWxlY3RlZCcsICdzaXplJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckRyb3Bkb3duTGlzdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNIZWFkZXJEcm9wZG93bkxpc3RJdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyRHJvcGRvd25MaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyRHJvcGRvd25MaXN0SXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkZXInLCAnaW1nQWx0JywgJ2ltZ1VybCcsICdzdWJoZWFkZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItZHJvcGRvd24tbGlzdC11c2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkZXInLCAnaW1nQWx0JywgJ2ltZ1VybCcsICdzdWJoZWFkZXInXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyRHJvcGRvd25MaXN0VXNlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0hlYWRlckRyb3Bkb3duTGlzdFVzZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJEcm9wZG93bkxpc3RVc2VyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJEcm9wZG93bkxpc3RVc2VyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3Rkc0FyaWFMYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1oYW1idXJnZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3Rkc0FyaWFMYWJlbCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJIYW1idXJnZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNIZWFkZXJIYW1idXJnZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJIYW1idXJnZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckhhbWJ1cmdlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3RpdmUnLCAnc2VsZWN0ZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aXZlJywgJ3NlbGVjdGVkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNIZWFkZXJJdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVySXRlbSBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVySXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWyd0ZHNBcmlhTGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItbGF1bmNoZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3Rkc0FyaWFMYWJlbCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJMYXVuY2hlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0hlYWRlckxhdW5jaGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyTGF1bmNoZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckxhdW5jaGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICd0ZHNBcmlhTGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItbGF1bmNoZXItYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAndGRzQXJpYUxhYmVsJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckxhdW5jaGVyQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzSGVhZGVyTGF1bmNoZXJCdXR0b25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJMYXVuY2hlckJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyTGF1bmNoZXJCdXR0b24ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItbGF1bmNoZXItZ3JpZCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJMYXVuY2hlckdyaWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNIZWFkZXJMYXVuY2hlckdyaWRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJMYXVuY2hlckdyaWQgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckxhdW5jaGVyR3JpZCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1sYXVuY2hlci1ncmlkLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyTGF1bmNoZXJHcmlkSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0hlYWRlckxhdW5jaGVyR3JpZEl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJMYXVuY2hlckdyaWRJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJMYXVuY2hlckdyaWRJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWxhdW5jaGVyLWdyaWQtdGl0bGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzSGVhZGVyTGF1bmNoZXJHcmlkVGl0bGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNIZWFkZXJMYXVuY2hlckdyaWRUaXRsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckxhdW5jaGVyR3JpZFRpdGxlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNIZWFkZXJMYXVuY2hlckdyaWRUaXRsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLWhlYWRlci1sYXVuY2hlci1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlckxhdW5jaGVyTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0hlYWRlckxhdW5jaGVyTGlzdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckxhdW5jaGVyTGlzdCBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyTGF1bmNoZXJMaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLWxhdW5jaGVyLWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJMYXVuY2hlckxpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzSGVhZGVyTGF1bmNoZXJMaXN0SXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0hlYWRlckxhdW5jaGVyTGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckxhdW5jaGVyTGlzdEl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1oZWFkZXItbGF1bmNoZXItbGlzdC10aXRsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNIZWFkZXJMYXVuY2hlckxpc3RUaXRsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc0hlYWRlckxhdW5jaGVyTGlzdFRpdGxlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSGVhZGVyTGF1bmNoZXJMaXN0VGl0bGUgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0hlYWRlckxhdW5jaGVyTGlzdFRpdGxlIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaGVhZGVyLXRpdGxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc0hlYWRlclRpdGxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzSGVhZGVyVGl0bGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNIZWFkZXJUaXRsZSBleHRlbmRzIENvbXBvbmVudHMuVGRzSGVhZGVyVGl0bGUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbmFtZScsICdzaXplJywgJ3N2Z0Rlc2NyaXB0aW9uJywgJ3N2Z1RpdGxlJywgJ3Rkc0FyaWFIaWRkZW4nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1pY29uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyduYW1lJywgJ3NpemUnLCAnc3ZnRGVzY3JpcHRpb24nLCAnc3ZnVGl0bGUnLCAndGRzQXJpYUhpZGRlbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNJY29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzSWNvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0ljb24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc0ljb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1pbmxpbmUtdGFiJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNJbmxpbmVUYWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNJbmxpbmVUYWJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNJbmxpbmVUYWIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0lubGluZVRhYiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZWZhdWx0U2VsZWN0ZWRJbmRleCcsICdsZWZ0UGFkZGluZycsICdtb2RlVmFyaWFudCcsICdzZWxlY3RlZEluZGV4JywgJ3Rkc1Njcm9sbExlZnRBcmlhTGFiZWwnLCAndGRzU2Nyb2xsUmlnaHRBcmlhTGFiZWwnXSxcbiAgbWV0aG9kczogWydzZWxlY3RUYWInLCAncmVpbml0aWFsaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtaW5saW5lLXRhYnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2RlZmF1bHRTZWxlY3RlZEluZGV4JywgJ2xlZnRQYWRkaW5nJywgJ21vZGVWYXJpYW50JywgJ3NlbGVjdGVkSW5kZXgnLCAndGRzU2Nyb2xsTGVmdEFyaWFMYWJlbCcsICd0ZHNTY3JvbGxSaWdodEFyaWFMYWJlbCddLFxuICBvdXRwdXRzOiBbJ3Rkc0NoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNJbmxpbmVUYWJzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzSW5saW5lVGFic0VsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VsZWN0ZWRUYWJJbmRleDogbnVtYmVyOyB9Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzSW5saW5lVGFicyBleHRlbmRzIENvbXBvbmVudHMuVGRzSW5saW5lVGFicyB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIFRhYiBpcyBjaGFuZ2VkLlxuICAgKi9cbiAgdGRzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBzZWxlY3RlZFRhYkluZGV4OiBudW1iZXI7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnc3RhbmRhbG9uZScsICd1bmRlcmxpbmUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1saW5rJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdzdGFuZGFsb25lJywgJ3VuZGVybGluZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNMaW5rIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzTGlua0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc0xpbmsgZXh0ZW5kcyBDb21wb25lbnRzLlRkc0xpbmsge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGVyJywgJ21pbmltYWwnLCAnbW9kZVZhcmlhbnQnLCAnbm9JY29uJywgJ3Rkc0FsZXJ0RGlhbG9nJywgJ3Rkc0FyaWFMYWJlbCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtbWVzc2FnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGVyJywgJ21pbmltYWwnLCAnbW9kZVZhcmlhbnQnLCAnbm9JY29uJywgJ3Rkc0FsZXJ0RGlhbG9nJywgJ3Rkc0FyaWFMYWJlbCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc01lc3NhZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNNZXNzYWdlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzTWVzc2FnZSBleHRlbmRzIENvbXBvbmVudHMuVGRzTWVzc2FnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3Rpb25zUG9zaXRpb24nLCAnY2xvc2FibGUnLCAnaGVhZGVyJywgJ3ByZXZlbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdycsICdzaXplJywgJ3Rkc0FsZXJ0RGlhbG9nJ10sXG4gIG1ldGhvZHM6IFsnc2hvd01vZGFsJywgJ2Nsb3NlTW9kYWwnLCAnaXNPcGVuJywgJ2luaXRpYWxpemVNb2RhbCcsICdjbGVhbnVwTW9kYWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1tb2RhbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aW9uc1Bvc2l0aW9uJywgJ2Nsb3NhYmxlJywgJ2hlYWRlcicsICdwcmV2ZW50JywgJ3JlZmVyZW5jZUVsJywgJ3NlbGVjdG9yJywgJ3Nob3cnLCAnc2l6ZScsICd0ZHNBbGVydERpYWxvZyddLFxuICBvdXRwdXRzOiBbJ3Rkc0Nsb3NlJywgJ3Rkc09wZW4nXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzTW9kYWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNNb2RhbEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8b2JqZWN0Pj4oKTtcbiAgQE91dHB1dCgpIHRkc09wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHZvaWQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNNb2RhbCBleHRlbmRzIENvbXBvbmVudHMuVGRzTW9kYWwge1xuICAvKipcbiAgICogRW1pdHMgd2hlbiB0aGUgTW9kYWwgaXMgY2xvc2VkLlxuICAgKi9cbiAgdGRzQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxvYmplY3Q+PjtcbiAgLyoqXG4gICAqIEVtaXRzIGp1c3QgYmVmb3JlIE1vZGFsIGlzIG9wZW5lZC5cbiAgICovXG4gIHRkc09wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx2b2lkPj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtbmF2aWdhdGlvbi10YWInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc05hdmlnYXRpb25UYWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNOYXZpZ2F0aW9uVGFiRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzTmF2aWdhdGlvblRhYiBleHRlbmRzIENvbXBvbmVudHMuVGRzTmF2aWdhdGlvblRhYiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZWZhdWx0U2VsZWN0ZWRJbmRleCcsICdsZWZ0UGFkZGluZycsICdtb2RlVmFyaWFudCcsICdzZWxlY3RlZEluZGV4JywgJ3Rkc1Njcm9sbExlZnRBcmlhTGFiZWwnLCAndGRzU2Nyb2xsUmlnaHRBcmlhTGFiZWwnXSxcbiAgbWV0aG9kczogWydzZWxlY3RUYWInLCAncmVpbml0aWFsaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtbmF2aWdhdGlvbi10YWJzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZWZhdWx0U2VsZWN0ZWRJbmRleCcsICdsZWZ0UGFkZGluZycsICdtb2RlVmFyaWFudCcsICdzZWxlY3RlZEluZGV4JywgJ3Rkc1Njcm9sbExlZnRBcmlhTGFiZWwnLCAndGRzU2Nyb2xsUmlnaHRBcmlhTGFiZWwnXSxcbiAgb3V0cHV0czogWyd0ZHNDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzTmF2aWdhdGlvblRhYnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNOYXZpZ2F0aW9uVGFic0VsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgc2VsZWN0ZWRUYWJJbmRleDogbnVtYmVyOyB9Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzTmF2aWdhdGlvblRhYnMgZXh0ZW5kcyBDb21wb25lbnRzLlRkc05hdmlnYXRpb25UYWJzIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0ZWQgVGFiIGlzIGNoYW5nZWQuXG4gICAqL1xuICB0ZHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHNlbGVjdGVkVGFiSW5kZXg6IG51bWJlcjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmltYXRpb24nLCAnZGVmYXVsdFNob3cnLCAnbW9kZVZhcmlhbnQnLCAnbW9kaWZpZXJzJywgJ29mZnNldERpc3RhbmNlJywgJ29mZnNldFNraWRkaW5nJywgJ3BsYWNlbWVudCcsICdyZWZlcmVuY2VFbCcsICdzZWxlY3RvcicsICdzaG93JywgJ3Rkc0FsZXJ0RGlhbG9nJ10sXG4gIG1ldGhvZHM6IFsnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1wb3BvdmVyLWNhbnZhcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2RlZmF1bHRTaG93JywgJ21vZGVWYXJpYW50JywgJ21vZGlmaWVycycsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdycsICd0ZHNBbGVydERpYWxvZyddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNQb3BvdmVyQ2FudmFzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzUG9wb3ZlckNhbnZhc0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1BvcG92ZXJDYW52YXMgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1BvcG92ZXJDYW52YXMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5pbWF0aW9uJywgJ2F1dG9IaWRlJywgJ2RlZmF1bHRTaG93JywgJ21vZGlmaWVycycsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdycsICd0cmlnZ2VyJ10sXG4gIG1ldGhvZHM6IFsnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1wb3BvdmVyLWNvcmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdhdXRvSGlkZScsICdkZWZhdWx0U2hvdycsICdtb2RpZmllcnMnLCAnb2Zmc2V0RGlzdGFuY2UnLCAnb2Zmc2V0U2tpZGRpbmcnLCAncGxhY2VtZW50JywgJ3JlZmVyZW5jZUVsJywgJ3NlbGVjdG9yJywgJ3Nob3cnLCAndHJpZ2dlciddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNQb3BvdmVyQ29yZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1BvcG92ZXJDb3JlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzUG9wb3ZlckNvcmUgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1BvcG92ZXJDb3JlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdkZWZhdWx0U2hvdycsICdmbHVpZFdpZHRoJywgJ21vZGVWYXJpYW50JywgJ29mZnNldERpc3RhbmNlJywgJ29mZnNldFNraWRkaW5nJywgJ3BsYWNlbWVudCcsICdyZWZlcmVuY2VFbCcsICdzZWxlY3RvcicsICdzaG93J10sXG4gIG1ldGhvZHM6IFsnY2xvc2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1wb3BvdmVyLW1lbnUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuaW1hdGlvbicsICdkZWZhdWx0U2hvdycsICdmbHVpZFdpZHRoJywgJ21vZGVWYXJpYW50JywgJ29mZnNldERpc3RhbmNlJywgJ29mZnNldFNraWRkaW5nJywgJ3BsYWNlbWVudCcsICdyZWZlcmVuY2VFbCcsICdzZWxlY3RvcicsICdzaG93J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1BvcG92ZXJNZW51IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzUG9wb3Zlck1lbnVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNQb3BvdmVyTWVudSBleHRlbmRzIENvbXBvbmVudHMuVGRzUG9wb3Zlck1lbnUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1wb3BvdmVyLW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzUG9wb3Zlck1lbnVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzUG9wb3Zlck1lbnVJdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzUG9wb3Zlck1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNQb3BvdmVyTWVudUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZCcsICdkaXNhYmxlZCcsICduYW1lJywgJ3JhZGlvSWQnLCAncmVxdWlyZWQnLCAndGRzQXJpYUxhYmVsJywgJ3Rkc1RhYkluZGV4JywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnZm9jdXNFbGVtZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtcmFkaW8tYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkJywgJ2Rpc2FibGVkJywgJ25hbWUnLCAncmFkaW9JZCcsICdyZXF1aXJlZCcsICd0ZHNBcmlhTGFiZWwnLCAndGRzVGFiSW5kZXgnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWyd0ZHNDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzUmFkaW9CdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNSYWRpb0J1dHRvbkVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgcmFkaW9JZDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkOyB9Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzUmFkaW9CdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc1JhZGlvQnV0dG9uIHtcbiAgLyoqXG4gICAqIFNlbmRzIHVuaXF1ZSBSYWRpbyBCdXR0b24gaWRlbnRpZmllciBhbmQgc3RhdHVzIHdoZW4gaXQgaXMgY2hlY2tlZC5cbklmIG5vIElEIGlzIHNwZWNpZmllZCwgYSByYW5kb20gb25lIHdpbGwgYmUgZ2VuZXJhdGVkLlxuVG8gdXNlIHRoaXMgbGlzdGVuZXIsIGRvbid0IHVzZSB0aGUgcmFuZG9taXplZCBJRCwgdXNlIGEgc3BlY2lmaWMgb25lIG9mIHlvdXIgY2hvb3NpbmcuXG4gICAqL1xuICB0ZHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHJhZGlvSWQ6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xsYXBzZWQnLCAnb3BlbicsICdwZXJzaXN0ZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc2lkZS1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xsYXBzZWQnLCAnb3BlbicsICdwZXJzaXN0ZW50J10sXG4gIG91dHB1dHM6IFsndGRzQ29sbGFwc2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzU2lkZU1lbnUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNTaWRlTWVudUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNDb2xsYXBzZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRkc1NpZGVNZW51Q29sbGFwc2VFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBDb2xsYXBzZUV2ZW50IGFzIElUZHNTaWRlTWVudUNvbGxhcHNlRXZlbnQgfSBmcm9tICdAc2NhbmlhL3RlZ2VsJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51IGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudSB7XG4gIC8qKlxuICAgKiBFdmVudCB0aGF0IGlzIGVtaXR0ZWQgd2hlbiB0aGUgU2lkZSBNZW51IGlzIGNvbGxhcHNlZC5cbiAgICovXG4gIHRkc0NvbGxhcHNlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVRkc1NpZGVNZW51Q29sbGFwc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS1jbG9zZS1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzU2lkZU1lbnVDbG9zZUJ1dHRvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1NpZGVNZW51Q2xvc2VCdXR0b25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTaWRlTWVudUNsb3NlQnV0dG9uIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudUNsb3NlQnV0dG9uIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc2lkZS1tZW51LWNvbGxhcHNlLWJ1dHRvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBvdXRwdXRzOiBbJ3Rkc0NvbGxhcHNlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NpZGVNZW51Q29sbGFwc2VCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNTaWRlTWVudUNvbGxhcHNlQnV0dG9uRWxlbWVudDtcbiAgQE91dHB1dCgpIHRkc0NvbGxhcHNlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGRzU2lkZU1lbnVDb2xsYXBzZUJ1dHRvbkNvbGxhcHNlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgQ29sbGFwc2VFdmVudCBhcyBJVGRzU2lkZU1lbnVDb2xsYXBzZUJ1dHRvbkNvbGxhcHNlRXZlbnQgfSBmcm9tICdAc2NhbmlhL3RlZ2VsJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51Q29sbGFwc2VCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NpZGVNZW51Q29sbGFwc2VCdXR0b24ge1xuICAvKipcbiAgICogRXZlbnQgdGhhdCBpcyBicm9hZGNhc3Qgd2hlbiB0aGUgY29sbGFwc2UgYnV0dG9uIGlzIGNsaWNrZWQuXG5QcmV2ZW50IGl0IGZyb20gZGlzYWJsaW5nIGF1dG9tYXRpYyBjb2xsYXBzaW5nLCBhbmQgc2V0IHRoZSBjb2xsYXBzZWQgcHJvcCBvbiB0aGUgU2lkZSBNZW51IHlvdXJzZWxmLlxuICAgKi9cbiAgdGRzQ29sbGFwc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJVGRzU2lkZU1lbnVDb2xsYXBzZUJ1dHRvbkNvbGxhcHNlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYnV0dG9uTGFiZWwnLCAnZGVmYXVsdE9wZW4nLCAnb3BlbicsICdzZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYnV0dG9uTGFiZWwnLCAnZGVmYXVsdE9wZW4nLCAnb3BlbicsICdzZWxlY3RlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudURyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzU2lkZU1lbnVEcm9wZG93bkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51RHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NpZGVNZW51RHJvcGRvd24ge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zaWRlLW1lbnUtZHJvcGRvd24tbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudURyb3Bkb3duTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1NpZGVNZW51RHJvcGRvd25MaXN0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU2lkZU1lbnVEcm9wZG93bkxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NpZGVNZW51RHJvcGRvd25MaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NlbGVjdGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc2lkZS1tZW51LWRyb3Bkb3duLWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2VsZWN0ZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzU2lkZU1lbnVEcm9wZG93bkxpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzU2lkZU1lbnVEcm9wZG93bkxpc3RJdGVtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU2lkZU1lbnVEcm9wZG93bkxpc3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudURyb3Bkb3duTGlzdEl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ3NlbGVjdGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc2lkZS1tZW51LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdzZWxlY3RlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNTaWRlTWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNTaWRlTWVudUl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTaWRlTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlRkc1NpZGVNZW51SXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS1vdmVybGF5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NpZGVNZW51T3ZlcmxheSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1NpZGVNZW51T3ZlcmxheUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NpZGVNZW51T3ZlcmxheSBleHRlbmRzIENvbXBvbmVudHMuVGRzU2lkZU1lbnVPdmVybGF5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaW1nQWx0JywgJ2ltZ1NyYycsICdzdWJoZWFkaW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc2lkZS1tZW51LXVzZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbeyBuYW1lOiAnaGVhZGluZycsIHJlcXVpcmVkOiB0cnVlIH0sICdpbWdBbHQnLCAnaW1nU3JjJywgJ3N1YmhlYWRpbmcnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzU2lkZU1lbnVVc2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzU2lkZU1lbnVVc2VyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU2lkZU1lbnVVc2VyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNTaWRlTWVudVVzZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWx0JywgJ3NyYyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXNpZGUtbWVudS11c2VyLWltYWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbHQnLCAnc3JjJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NpZGVNZW51VXNlckltYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzU2lkZU1lbnVVc2VySW1hZ2VFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTaWRlTWVudVVzZXJJbWFnZSBleHRlbmRzIENvbXBvbmVudHMuVGRzU2lkZU1lbnVVc2VySW1hZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZycsICdzdWJoZWFkaW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc2lkZS1tZW51LXVzZXItbGFiZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbeyBuYW1lOiAnaGVhZGluZycsIHJlcXVpcmVkOiB0cnVlIH0sICdzdWJoZWFkaW5nJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NpZGVNZW51VXNlckxhYmVsIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzU2lkZU1lbnVVc2VyTGFiZWxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNTaWRlTWVudVVzZXJMYWJlbCBleHRlbmRzIENvbXBvbmVudHMuVGRzU2lkZU1lbnVVc2VyTGFiZWwge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udHJvbHMnLCAnZGlzYWJsZWQnLCAnaW5wdXQnLCAnbGFiZWwnLCAnbWF4JywgJ21pbicsICduYW1lJywgJ3JlYWRPbmx5JywgJ3Nob3dUaWNrTnVtYmVycycsICdzbGlkZXJJZCcsICdzbmFwJywgJ3N0ZXAnLCAndGRzQXJpYUxhYmVsJywgJ3Rkc1JlYWRPbmx5QXJpYUxhYmVsJywgJ3RodW1iU2l6ZScsICd0aWNrcycsICd0b29sdGlwJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsncmVzZXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy1zbGlkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRyb2xzJywgJ2Rpc2FibGVkJywgJ2lucHV0JywgJ2xhYmVsJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdyZWFkT25seScsICdzaG93VGlja051bWJlcnMnLCAnc2xpZGVySWQnLCAnc25hcCcsICdzdGVwJywgJ3Rkc0FyaWFMYWJlbCcsICd0ZHNSZWFkT25seUFyaWFMYWJlbCcsICd0aHVtYlNpemUnLCAndGlja3MnLCAndG9vbHRpcCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3Rkc0NoYW5nZScsICd0ZHNJbnB1dCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNTbGlkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNTbGlkZXJFbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmc7IH0+PigpO1xuICBAT3V0cHV0KCkgdGRzSW5wdXQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdmFsdWU6IHN0cmluZzsgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1NsaWRlciBleHRlbmRzIENvbXBvbmVudHMuVGRzU2xpZGVyIHtcbiAgLyoqXG4gICAqIFNlbmRzIHRoZSB2YWx1ZSBvZiB0aGUgc2xpZGVyIHdoZW4gY2hhbmdlZC4gRmlyZXMgYWZ0ZXIgbW91c2UgdXAgYW5kIHRvdWNoIGVuZCBldmVudHMuXG4gICAqL1xuICB0ZHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmc7IH0+PjtcbiAgLyoqXG4gICAqIFNlbmRzIHRoZSB2YWx1ZSBvZiB0aGUgc2xpZGVyIHdoaWxlIG1vdmluZyB0aGUgdGh1bWIuIEZpcmVzIG9uIG1vdXNlIG1vdmUgYW5kIHRvdWNoIG1vdmUgZXZlbnRzLlxuICAgKi9cbiAgdGRzSW5wdXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHZhbHVlOiBzdHJpbmc7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2l6ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc3Bpbm5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnc2l6ZScsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1NwaW5uZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNTcGlubmVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU3Bpbm5lciBleHRlbmRzIENvbXBvbmVudHMuVGRzU3Bpbm5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbmRleCcsICdzdGF0ZScsICd0ZHNBcmlhQ3VycmVudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXN0ZXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2luZGV4JywgJ3N0YXRlJywgJ3Rkc0FyaWFDdXJyZW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1N0ZXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNTdGVwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzU3RlcCBleHRlbmRzIENvbXBvbmVudHMuVGRzU3RlcCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlTGFiZWxzJywgJ2xhYmVsUG9zaXRpb24nLCAnb3JpZW50YXRpb24nLCAnc2l6ZScsICdzdGVwcGVySWQnLCAndGRzQXJpYUxhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtc3RlcHBlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUxhYmVscycsICdsYWJlbFBvc2l0aW9uJywgJ29yaWVudGF0aW9uJywgJ3NpemUnLCAnc3RlcHBlcklkJywgJ3Rkc0FyaWFMYWJlbCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNTdGVwcGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzU3RlcHBlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1N0ZXBwZXIgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1N0ZXBwZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29tcGFjdERlc2lnbicsICdleHBhbmRhYmxlUm93cycsICdob3Jpem9udGFsU2Nyb2xsV2lkdGgnLCAnbW9kZVZhcmlhbnQnLCAnbXVsdGlzZWxlY3QnLCAnbm9NaW5XaWR0aCcsICdyZXNwb25zaXZlJywgJ3RhYmxlSWQnLCAndmVydGljYWxEaXZpZGVycycsICd6ZWJyYU1vZGUnXSxcbiAgbWV0aG9kczogWydnZXRTZWxlY3RlZFJvd3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29tcGFjdERlc2lnbicsICdleHBhbmRhYmxlUm93cycsICdob3Jpem9udGFsU2Nyb2xsV2lkdGgnLCAnbW9kZVZhcmlhbnQnLCAnbXVsdGlzZWxlY3QnLCAnbm9NaW5XaWR0aCcsICdyZXNwb25zaXZlJywgJ3RhYmxlSWQnLCAndmVydGljYWxEaXZpZGVycycsICd6ZWJyYU1vZGUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNUYWJsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUYWJsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRhYmxlLWJvZHknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGFibGVCb2R5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzVGFibGVCb2R5RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVGFibGVCb2R5IGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUYWJsZUJvZHkge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2hvd0ljb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWJsZS1ib2R5LWlucHV0LXdyYXBwZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3Nob3dJY29uJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1RhYmxlQm9keUlucHV0V3JhcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1RhYmxlQm9keUlucHV0V3JhcHBlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RhYmxlQm9keUlucHV0V3JhcHBlciBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFibGVCb2R5SW5wdXRXcmFwcGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsaWNrYWJsZScsICdkaXNhYmxlZCcsICdzZWxlY3RlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRhYmxlLWJvZHktcm93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGlja2FibGUnLCAnZGlzYWJsZWQnLCAnc2VsZWN0ZWQnXSxcbiAgb3V0cHV0czogWyd0ZHNTZWxlY3QnLCAndGRzQ2xpY2snXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGFibGVCb2R5Um93IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzVGFibGVCb2R5Um93RWxlbWVudDtcbiAgQE91dHB1dCgpIHRkc1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0YWJsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7IGNoZWNrZWQ6IGJvb2xlYW47IHNlbGVjdGVkUm93czogb2JqZWN0W10gfCB1bmRlZmluZWQ7IH0+PigpO1xuICBAT3V0cHV0KCkgdGRzQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgZXZlbnQ6IE1vdXNlRXZlbnQ7IHRhYmxlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDsgcm93SW5kZXg6IG51bWJlcjsgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RhYmxlQm9keVJvdyBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFibGVCb2R5Um93IHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHJvdyBpcyBzZWxlY3RlZC9kZXNlbGVjdGVkLlxuICAgKi9cbiAgdGRzU2VsZWN0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0YWJsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7IGNoZWNrZWQ6IGJvb2xlYW47IHNlbGVjdGVkUm93czogb2JqZWN0W10gfCB1bmRlZmluZWQ7IH0+PjtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIHJvdyBpcyBjbGlja2VkLlxuICAgKi9cbiAgdGRzQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IGV2ZW50OiBNb3VzZUV2ZW50OyB0YWJsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7IHJvd0luZGV4OiBudW1iZXI7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b0NvbGxhcHNlJywgJ2NvbFNwYW4nLCAnZGlzYWJsZWQnLCAnZXhwYW5kZWQnLCAnb3ZlcmZsb3cnLCAncm93SWQnLCAnc2VsZWN0ZWQnLCAndGRzQXJpYUxhYmVsRXhwYW5kQnV0dG9uJ10sXG4gIG1ldGhvZHM6IFsnZXhwYW5kJywgJ2NvbGxhcHNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdGFibGUtYm9keS1yb3ctZXhwYW5kYWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b0NvbGxhcHNlJywgJ2NvbFNwYW4nLCAnZGlzYWJsZWQnLCAnZXhwYW5kZWQnLCAnb3ZlcmZsb3cnLCAncm93SWQnLCAnc2VsZWN0ZWQnLCAndGRzQXJpYUxhYmVsRXhwYW5kQnV0dG9uJ10sXG4gIG91dHB1dHM6IFsndGRzQ2hhbmdlJywgJ3Rkc1NlbGVjdCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNUYWJsZUJvZHlSb3dFeHBhbmRhYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzVGFibGVCb2R5Um93RXhwYW5kYWJsZUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgcm93SWQ6IHN0cmluZzsgaXNFeHBhbmRlZDogYm9vbGVhbjsgdGFibGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkOyB9Pj4oKTtcbiAgQE91dHB1dCgpIHRkc1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0YWJsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7IGNoZWNrZWQ6IGJvb2xlYW47IHNlbGVjdGVkUm93czogb2JqZWN0W10gfCB1bmRlZmluZWQ7IH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUYWJsZUJvZHlSb3dFeHBhbmRhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUYWJsZUJvZHlSb3dFeHBhbmRhYmxlIHtcbiAgLyoqXG4gICAqIFNlbmRzIHVuaXF1ZSB0YWJsZSByb3cgaWRlbnRpZmllciBhbmQgaXNFeHBhbmRlZCBzdGF0dXMgd2hlbiBpdCBpcyBleHBhbmRlZC9jb2xsYXBzZWQuXG4gICAqL1xuICB0ZHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHJvd0lkOiBzdHJpbmc7IGlzRXhwYW5kZWQ6IGJvb2xlYW47IHRhYmxlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDsgfT4+O1xuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIGEgcm93IGlzIHNlbGVjdGVkL2Rlc2VsZWN0ZWQuXG4gICAqL1xuICB0ZHNTZWxlY3Q6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRhYmxlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDsgY2hlY2tlZDogYm9vbGVhbjsgc2VsZWN0ZWRSb3dzOiBvYmplY3RbXSB8IHVuZGVmaW5lZDsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xzJywgJ3BhZ2VzJywgJ3BhZ2luYXRpb24nLCAncGFnaW5hdGlvblZhbHVlJywgJ3Jvd3NQZXJQYWdlVmFsdWVzJywgJ3Jvd3NwZXJwYWdlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdGFibGUtZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xzJywgJ3BhZ2VzJywgJ3BhZ2luYXRpb24nLCAncGFnaW5hdGlvblZhbHVlJywgJ3Jvd3NQZXJQYWdlVmFsdWVzJywgJ3Jvd3NwZXJwYWdlJ10sXG4gIG91dHB1dHM6IFsndGRzUGFnaW5hdGlvbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNUYWJsZUZvb3RlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1RhYmxlRm9vdGVyRWxlbWVudDtcbiAgQE91dHB1dCgpIHRkc1BhZ2luYXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdGFibGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkOyBwYWdpbmF0aW9uVmFsdWU6IG51bWJlcjsgcm93c1BlclBhZ2U/OiBudW1iZXI7IH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUYWJsZUZvb3RlciBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFibGVGb290ZXIge1xuICAvKipcbiAgICogRXZlbnQgdG8gc2VuZCBjdXJyZW50IHBhZ2UgdmFsdWUgdG8gdGRzLXRhYmxlLWJvZHkgY29tcG9uZW50LCBjYW4gYWxzbyBiZSBsaXN0ZW5lZCB0byBpbiBvcmRlciB0byBpbXBsZW1lbnQgY3VzdG9tIHBhZ2luYXRpb24gbG9naWMuXG4gICAqL1xuICB0ZHNQYWdpbmF0aW9uOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0YWJsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7IHBhZ2luYXRpb25WYWx1ZTogbnVtYmVyOyByb3dzUGVyUGFnZT86IG51bWJlcjsgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGxTZWxlY3RlZCcsICdkaXNhYmxlZCcsICdpbmRldGVybWluYXRlJywgJ3NlbGVjdGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdGFibGUtaGVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbGxTZWxlY3RlZCcsICdkaXNhYmxlZCcsICdpbmRldGVybWluYXRlJywgJ3NlbGVjdGVkJ10sXG4gIG91dHB1dHM6IFsndGRzU2VsZWN0QWxsJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1RhYmxlSGVhZGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzVGFibGVIZWFkZXJFbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzU2VsZWN0QWxsID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRhYmxlSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDsgY2hlY2tlZDogYm9vbGVhbjsgc2VsZWN0ZWRSb3dzOiBvYmplY3RbXSB8IHVuZGVmaW5lZDsgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RhYmxlSGVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUYWJsZUhlYWRlciB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHN0YXR1cyBvZiB0aGUgc2VsZWN0IGFsbCBjaGVja2JveCBjaGFuZ2VzLlxuICAgKi9cbiAgdGRzU2VsZWN0QWxsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0YWJsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7IGNoZWNrZWQ6IGJvb2xlYW47IHNlbGVjdGVkUm93czogb2JqZWN0W10gfCB1bmRlZmluZWQ7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29tcGFjdERlc2lnbicsICdzaG93SWNvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRhYmxlLWhlYWRlci1pbnB1dC13cmFwcGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb21wYWN0RGVzaWduJywgJ3Nob3dJY29uJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1RhYmxlSGVhZGVySW5wdXRXcmFwcGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzVGFibGVIZWFkZXJJbnB1dFdyYXBwZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUYWJsZUhlYWRlcklucHV0V3JhcHBlciBleHRlbmRzIENvbXBvbmVudHMuVGRzVGFibGVIZWFkZXJJbnB1dFdyYXBwZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZmlsdGVyJywgJ3RhYmxlVGl0bGUnLCAndGRzU2VhcmNoQXJpYUxhYmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdGFibGUtdG9vbGJhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZmlsdGVyJywgJ3RhYmxlVGl0bGUnLCAndGRzU2VhcmNoQXJpYUxhYmVsJ10sXG4gIG91dHB1dHM6IFsndGRzRmlsdGVyJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1RhYmxlVG9vbGJhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1RhYmxlVG9vbGJhckVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNGaWx0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdGFibGVJZDogc3RyaW5nIHwgdW5kZWZpbmVkOyBxdWVyeTogc3RyaW5nOyB9Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVGFibGVUb29sYmFyIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUYWJsZVRvb2xiYXIge1xuICAvKipcbiAgICogVXNlZCBmb3Igc2VuZGluZyB1c2VycycgaW5wdXQgdG8gdGhlIG1haW4gcGFyZW50IHRkcy10YWJsZSB0aGUgY29tcG9uZW50LFxuY2FuIGFsc28gYmUgbGlzdGVuZWQgdG8gaW4gb3JkZXIgdG8gaW1wbGVtZW50IGN1c3RvbSBzb3J0aW5nIGxvZ2ljLlxuICAgKi9cbiAgdGRzRmlsdGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyB0YWJsZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7IHF1ZXJ5OiBzdHJpbmc7IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnc2l6ZScsICd0ZXh0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10YWcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3NpemUnLCB7IG5hbWU6ICd0ZXh0JywgcmVxdWlyZWQ6IHRydWUgfSwgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGFnIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MVGRzVGFnRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVGFnIGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUYWcge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2NvbXBsZXRlJywgJ2F1dG9mb2N1cycsICdkaXNhYmxlZCcsICdoZWxwZXInLCAnaGlkZU51bWJlckFycm93cycsICdoaWRlUmVhZE9ubHlJY29uJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbWF4JywgJ21heExlbmd0aCcsICdtaW4nLCAnbW9kZVZhcmlhbnQnLCAnbmFtZScsICdub01pbldpZHRoJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRPbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAnc3RhdGUnLCAnc3RlcCcsICd0ZHNBcmlhTGFiZWwnLCAndHlwZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ2ZvY3VzRWxlbWVudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGRzLXRleHQtZmllbGQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9jb21wbGV0ZScsICdhdXRvZm9jdXMnLCAnZGlzYWJsZWQnLCAnaGVscGVyJywgJ2hpZGVOdW1iZXJBcnJvd3MnLCAnaGlkZVJlYWRPbmx5SWNvbicsICdsYWJlbCcsICdsYWJlbFBvc2l0aW9uJywgJ21heCcsICdtYXhMZW5ndGgnLCAnbWluJywgJ21vZGVWYXJpYW50JywgJ25hbWUnLCAnbm9NaW5XaWR0aCcsICdwbGFjZWhvbGRlcicsICdyZWFkT25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3N0YXRlJywgJ3N0ZXAnLCAndGRzQXJpYUxhYmVsJywgJ3R5cGUnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWyd0ZHNDaGFuZ2UnLCAndGRzSW5wdXQnLCAndGRzRm9jdXMnLCAndGRzQmx1cicsICd0ZHNFcnJvciddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNUZXh0RmllbGQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNUZXh0RmllbGRFbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PigpO1xuICBAT3V0cHV0KCkgdGRzSW5wdXQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElucHV0RXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgdGRzRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgdGRzQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8Rm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBvcmlnaW5hbFZhbHVlOiBzdHJpbmc7IGNsYW1wZWRWYWx1ZTogc3RyaW5nOyByZWFzb246ICdtaW4nIHwgJ21heCcgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RleHRGaWVsZCBleHRlbmRzIENvbXBvbmVudHMuVGRzVGV4dEZpZWxkIHtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudCBmb3IgdGhlIFRleHQgRmllbGRcbiAgICovXG4gIHRkc0NoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+O1xuICAvKipcbiAgICogSW5wdXQgZXZlbnQgZm9yIHRoZSBUZXh0IEZpZWxkXG4gICAqL1xuICB0ZHNJbnB1dDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElucHV0RXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50IGZvciB0aGUgVGV4dCBGaWVsZFxuICAgKi9cbiAgdGRzRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBCbHVyIGV2ZW50IGZvciB0aGUgVGV4dCBGaWVsZFxuICAgKi9cbiAgdGRzQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEVycm9yIGV2ZW50IGZvciB0aGUgVGV4dCBGaWVsZCAtIGVtaXR0ZWQgd2hlbiB2YWx1ZSBpcyBjbGFtcGVkIHRvIG1pbi9tYXhcbiAgICovXG4gIHRkc0Vycm9yOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8eyBvcmlnaW5hbFZhbHVlOiBzdHJpbmc7IGNsYW1wZWRWYWx1ZTogc3RyaW5nOyByZWFzb246ICdtaW4nIHwgJ21heCcgfT4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvZm9jdXMnLCAnY29scycsICdkaXNhYmxlZCcsICdoZWxwZXInLCAnaGlkZVJlYWRPbmx5SWNvbicsICdsYWJlbCcsICdsYWJlbFBvc2l0aW9uJywgJ21heExlbmd0aCcsICdtb2RlVmFyaWFudCcsICduYW1lJywgJ25vTWluV2lkdGgnLCAncGxhY2Vob2xkZXInLCAncmVhZE9ubHknLCAncm93cycsICdzdGF0ZScsICd0ZHNBcmlhTGFiZWwnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydmb2N1c0VsZW1lbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10ZXh0YXJlYScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b2ZvY3VzJywgJ2NvbHMnLCAnZGlzYWJsZWQnLCAnaGVscGVyJywgJ2hpZGVSZWFkT25seUljb24nLCAnbGFiZWwnLCAnbGFiZWxQb3NpdGlvbicsICdtYXhMZW5ndGgnLCAnbW9kZVZhcmlhbnQnLCAnbmFtZScsICdub01pbldpZHRoJywgJ3BsYWNlaG9sZGVyJywgJ3JlYWRPbmx5JywgJ3Jvd3MnLCAnc3RhdGUnLCAndGRzQXJpYUxhYmVsJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsndGRzQ2hhbmdlJywgJ3Rkc0JsdXInLCAndGRzSW5wdXQnLCAndGRzRm9jdXMnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVGRzVGV4dGFyZWEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNUZXh0YXJlYUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSB0ZHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PGFueT4+KCk7XG4gIEBPdXRwdXQoKSB0ZHNCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHRkc0lucHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJbnB1dEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHRkc0ZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVGV4dGFyZWEgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1RleHRhcmVhIHtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudCBmb3IgdGhlIFRleHRhcmVhXG4gICAqL1xuICB0ZHNDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxhbnk+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnQgZm9yIHRoZSBUZXh0YXJlYVxuICAgKi9cbiAgdGRzQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGV2ZW50IGZvciB0aGUgVGV4dGFyZWFcbiAgICovXG4gIHRkc0lucHV0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SW5wdXRFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnQgZm9yIHRoZSBUZXh0YXJlYVxuICAgKi9cbiAgdGRzRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxGb2N1c0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NhYmxlJywgJ2hlYWRlcicsICdoaWRkZW4nLCAnc3ViaGVhZGVyJywgJ3Rkc0FyaWFMaXZlJywgJ3Rkc0Nsb3NlQXJpYUxhYmVsJywgJ3RvYXN0SWQnLCAndG9hc3RSb2xlJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydoaWRlVG9hc3QnLCAnc2hvd1RvYXN0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdG9hc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NhYmxlJywgJ2hlYWRlcicsICdoaWRkZW4nLCAnc3ViaGVhZGVyJywgJ3Rkc0FyaWFMaXZlJywgJ3Rkc0Nsb3NlQXJpYUxhYmVsJywgJ3RvYXN0SWQnLCAndG9hc3RSb2xlJywgJ3ZhcmlhbnQnXSxcbiAgb3V0cHV0czogWyd0ZHNDbG9zZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNUb2FzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFRkc1RvYXN0RWxlbWVudDtcbiAgQE91dHB1dCgpIHRkc0Nsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRvYXN0SWQ6IHN0cmluZzsgfT4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFRkc1RvYXN0IGV4dGVuZHMgQ29tcG9uZW50cy5UZHNUb2FzdCB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgVG9hc3QgaWRlbnRpZmllciB3aGVuIGNvbXBvbmVudCBpcyBjbG9zZWQuXG4gICAqL1xuICB0ZHNDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PHsgdG9hc3RJZDogc3RyaW5nOyB9Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaGVhZGxpbmUnLCAnbmFtZScsICdyZXF1aXJlZCcsICdzaXplJywgJ3Rkc0FyaWFMYWJlbCcsICd0b2dnbGVJZCddLFxuICBtZXRob2RzOiBbJ3RvZ2dsZScsICdmb2N1c0VsZW1lbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rkcy10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWQnLCAnZGlzYWJsZWQnLCAnaGVhZGxpbmUnLCAnbmFtZScsICdyZXF1aXJlZCcsICdzaXplJywgJ3Rkc0FyaWFMYWJlbCcsICd0b2dnbGVJZCddLFxuICBvdXRwdXRzOiBbJ3Rkc1RvZ2dsZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZHNUb2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNUb2dnbGVFbGVtZW50O1xuICBAT3V0cHV0KCkgdGRzVG9nZ2xlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRvZ2dsZUlkOiBzdHJpbmc7IGNoZWNrZWQ6IGJvb2xlYW47IH0+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBUZHNUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLlRkc1RvZ2dsZSB7XG4gIC8qKlxuICAgKiBTZW5kcyB1bmlxdWUgVG9nZ2xlIGlkZW50aWZpZXIgYW5kIHN0YXR1cyB3aGVuIGl0IGlzIHRvZ2dsZWQuXG4gICAqL1xuICB0ZHNUb2dnbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDx7IHRvZ2dsZUlkOiBzdHJpbmc7IGNoZWNrZWQ6IGJvb2xlYW47IH0+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVmYXVsdFNob3cnLCAnbW91c2VPdmVyVG9vbHRpcCcsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdycsICd0ZHNBcmlhRGVzY3JpYmVkYnknLCAndGV4dCcsICd0cmlnZ2VyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZHMtdG9vbHRpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVmYXVsdFNob3cnLCAnbW91c2VPdmVyVG9vbHRpcCcsICdvZmZzZXREaXN0YW5jZScsICdvZmZzZXRTa2lkZGluZycsICdwbGFjZW1lbnQnLCAncmVmZXJlbmNlRWwnLCAnc2VsZWN0b3InLCAnc2hvdycsICd0ZHNBcmlhRGVzY3JpYmVkYnknLCAndGV4dCcsICd0cmlnZ2VyJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFRkc1Rvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxUZHNUb29sdGlwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgVGRzVG9vbHRpcCBleHRlbmRzIENvbXBvbmVudHMuVGRzVG9vbHRpcCB7fVxuXG5cbiJdfQ==