@oiz/stzh-components-angular 4.11.0-beta2 → 4.11.0

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.
@@ -1164,11 +1164,11 @@ export let StzhDatalistItem = class StzhDatalistItem {
1164
1164
  this.el = r.nativeElement;
1165
1165
  }
1166
1166
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhDatalistItem, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
1167
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhDatalistItem, selector: "stzh-datalist-item", inputs: { a11yControls: "a11yControls", a11yExpanded: "a11yExpanded", download: "download", hasNested: "hasNested", href: "href", icon: "icon", iconHref: "iconHref", iconLabel: "iconLabel", iconPosition: "iconPosition", iconTooltip: "iconTooltip", label: "label", leadingIcon: "leadingIcon", localization: "localization", meta: "meta", readspeakerHref: "readspeakerHref", readspeakerLabel: "readspeakerLabel", rel: "rel", statusLabel: "statusLabel", statusType: "statusType", target: "target", value: "value", valueTruncate: "valueTruncate" }, outputs: { stzhItemActionClick: "stzhItemActionClick", stzhClick: "stzhClick" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1167
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: StzhDatalistItem, selector: "stzh-datalist-item", inputs: { a11yControls: "a11yControls", a11yExpanded: "a11yExpanded", a11yLabel: "a11yLabel", download: "download", hasNested: "hasNested", href: "href", icon: "icon", iconHref: "iconHref", iconLabel: "iconLabel", iconPosition: "iconPosition", iconTooltip: "iconTooltip", label: "label", leadingIcon: "leadingIcon", localization: "localization", meta: "meta", readspeakerHref: "readspeakerHref", readspeakerLabel: "readspeakerLabel", rel: "rel", statusLabel: "statusLabel", statusType: "statusType", target: "target", value: "value", valueTruncate: "valueTruncate" }, outputs: { stzhItemActionClick: "stzhItemActionClick", stzhClick: "stzhClick" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1168
1168
  };
1169
1169
  StzhDatalistItem = __decorate([
1170
1170
  ProxyCmp({
1171
- inputs: ['a11yControls', 'a11yExpanded', 'download', 'hasNested', 'href', 'icon', 'iconHref', 'iconLabel', 'iconPosition', 'iconTooltip', 'label', 'leadingIcon', 'localization', 'meta', 'readspeakerHref', 'readspeakerLabel', 'rel', 'statusLabel', 'statusType', 'target', 'value', 'valueTruncate']
1171
+ inputs: ['a11yControls', 'a11yExpanded', 'a11yLabel', 'download', 'hasNested', 'href', 'icon', 'iconHref', 'iconLabel', 'iconPosition', 'iconTooltip', 'label', 'leadingIcon', 'localization', 'meta', 'readspeakerHref', 'readspeakerLabel', 'rel', 'statusLabel', 'statusType', 'target', 'value', 'valueTruncate']
1172
1172
  })
1173
1173
  ], StzhDatalistItem);
1174
1174
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: StzhDatalistItem, decorators: [{
@@ -1178,7 +1178,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1178
1178
  changeDetection: ChangeDetectionStrategy.OnPush,
1179
1179
  template: '<ng-content></ng-content>',
1180
1180
  // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
1181
- inputs: ['a11yControls', 'a11yExpanded', 'download', 'hasNested', 'href', 'icon', 'iconHref', 'iconLabel', 'iconPosition', 'iconTooltip', 'label', 'leadingIcon', 'localization', 'meta', 'readspeakerHref', 'readspeakerLabel', 'rel', 'statusLabel', 'statusType', 'target', 'value', 'valueTruncate'],
1181
+ inputs: ['a11yControls', 'a11yExpanded', 'a11yLabel', 'download', 'hasNested', 'href', 'icon', 'iconHref', 'iconLabel', 'iconPosition', 'iconTooltip', 'label', 'leadingIcon', 'localization', 'meta', 'readspeakerHref', 'readspeakerLabel', 'rel', 'statusLabel', 'statusType', 'target', 'value', 'valueTruncate'],
1182
1182
  outputs: ['stzhItemActionClick', 'stzhClick'],
1183
1183
  standalone: false
1184
1184
  }]
@@ -4311,4 +4311,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4311
4311
  standalone: false
4312
4312
  }]
4313
4313
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
4314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0emgtY29tcG9uZW50cy1hbmd1bGFyL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvcHJveGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWhJLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFrQmxELFdBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWE7SUFHeEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUQxRCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBOEQsQ0FBQztRQUUzRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzsrR0FOVSxhQUFhO21HQUFiLGFBQWEsK05BTmQsMkJBQTJCOztBQU0xQixhQUFhO0lBYnpCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxDQUFDO1FBQ2hFLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztLQUMxQixDQUFDO0dBVVcsYUFBYSxDQU96Qjs0RkFQWSxhQUFhO2tCQVR6QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsU0FB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bEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiB0c2xpbnQ6ZGlzYWJsZSAqL1xuLyogYXV0by1nZW5lcmF0ZWQgYW5ndWxhciBkaXJlY3RpdmUgcHJveGllcyAqL1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUHJveHlDbXAgfSBmcm9tICcuL2FuZ3VsYXItY29tcG9uZW50LWxpYi91dGlscyc7XG5cbmltcG9ydCB7IENvbXBvbmVudHMgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2hlYWRpbmcnLCAnbXVsdGlzZWxlY3RhYmxlJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzZXRJdGVtRm9jdXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYWNjb3JkaW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xsYXBzaWJsZScsICdoZWFkaW5nJywgJ211bHRpc2VsZWN0YWJsZScsICd2YXJpYW50J10sXG4gIG91dHB1dHM6IFsnc3R6aFZhcmlhbnRDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFjY29yZGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhBY2NvcmRpb25FbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aFZhcmlhbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uU3R6aEFjY29yZGlvblZhcmlhbnRDaGFuZ2VFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uVmFyaWFudENoYW5nZUV2ZW50IGFzIElTdHpoQWNjb3JkaW9uU3R6aEFjY29yZGlvblZhcmlhbnRDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBY2NvcmRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBY2NvcmRpb24ge1xuICAvKipcbiAgICogVmFyaWFudCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhWYXJpYW50Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25TdHpoQWNjb3JkaW9uVmFyaWFudENoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvbGxhcHNpYmxlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ljb24nLCAnb3BlbicsICdzdWJ0aXRsZScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvZ2dsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hY2NvcmRpb24taXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY29sbGFwc2libGUnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaWNvbicsICdvcGVuJywgJ3N1YnRpdGxlJywgJ3ZhcmlhbnQnXSxcbiAgb3V0cHV0czogWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQWNjb3JkaW9uSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhBY2NvcmRpb25JdGVtRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhPcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoT3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUZvY3VzRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQmx1ckV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtT3BlbkV2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtT3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudCBhcyBJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1Gb2N1c0V2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1CbHVyRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1CbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQWNjb3JkaW9uSXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFjY29yZGlvbkl0ZW0ge1xuICAvKipcbiAgICogT3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudD4+O1xuICAvKipcbiAgICogT3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydzcGFjZUJldHdlZW4nLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hY3Rpb25zJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydzcGFjZUJldHdlZW4nLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQWN0aW9ucyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhBY3Rpb25zRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFjdGlvbnMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBY3Rpb25zIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGlvbnMnLCAnbG9jYWxpemF0aW9uJywgJ3BvcG92ZXJCdXR0b25TaXplJywgJ3BvcG92ZXJCdXR0b25WYXJpYW50JywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hY3Rpb25zZXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGlvbnMnLCAnbG9jYWxpemF0aW9uJywgJ3BvcG92ZXJCdXR0b25TaXplJywgJ3BvcG92ZXJCdXR0b25WYXJpYW50JywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ3N0emhBY3Rpb25DbGljayddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQWN0aW9uc2V0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEFjdGlvbnNldEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWN0aW9uc2V0U3R6aEFjdGlvbnNldEl0ZW1DbGlja0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBY3Rpb25zZXRJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEFjdGlvbnNldFN0emhBY3Rpb25zZXRJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBY3Rpb25zZXQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBY3Rpb25zZXQge1xuICAvKipcbiAgICogSGVhZGVyIGFjdGlvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEFjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY3Rpb25zZXRTdHpoQWN0aW9uc2V0SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NsZWFyYWJsZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ21heFZhbHVlJywgJ21heFZhbHVlRHJvcGRvd24nLCAnbWluVmFsdWUnLCAnbWluVmFsdWVEcm9wZG93bicsICduYW1lJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdGVwJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFtb3VudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NsZWFyYWJsZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ21heFZhbHVlJywgJ21heFZhbHVlRHJvcGRvd24nLCAnbWluVmFsdWUnLCAnbWluVmFsdWVEcm9wZG93bicsICduYW1lJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdGVwJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnc3R6aENoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQW1vdW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEFtb3VudEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFtb3VudFN0emhBbW91bnRDaGFuZ2VFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQW1vdW50Q2hhbmdlRXZlbnQgYXMgSVN0emhBbW91bnRTdHpoQW1vdW50Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQW1vdW50IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQW1vdW50IHtcbiAgLyoqXG4gICAqIEFtb3VudCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFtb3VudFN0emhBbW91bnRDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpdGVtcycsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYW5jaG9ybmF2JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpdGVtcycsICdsb2NhbGl6YXRpb24nXSxcbiAgb3V0cHV0czogWydzdHpoSXRlbUNsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBbmNob3JuYXYge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQW5jaG9ybmF2RWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQW5jaG9ybmF2U3R6aEFuY2hvcm5hdkl0ZW1DbGlja0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBbmNob3JuYXZJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEFuY2hvcm5hdlN0emhBbmNob3JuYXZJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBbmNob3JuYXYgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBbmNob3JuYXYge1xuICAvKipcbiAgICogSXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQW5jaG9ybmF2U3R6aEFuY2hvcm5hdkl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwcE5hdklkJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hcHAtbmF2JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcHBOYXZJZCcsICdpdGVtcycsICdsb2NhbGl6YXRpb24nXSxcbiAgb3V0cHV0czogWydzdHpoQXBwTmF2SXRlbUNsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBcHBOYXYge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQXBwTmF2RWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhBcHBOYXZJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXBwTmF2U3R6aEFwcE5hdkl0ZW1DbGlja0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBcHBOYXZJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEFwcE5hdlN0emhBcHBOYXZJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBcHBOYXYgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBcHBOYXYge1xuICAvKipcbiAgICogQXBwTmF2IGl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhBcHBOYXZJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFwcE5hdlN0emhBcHBOYXZJdGVtQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcHBvaW50bWVudHMnLCAnYXBwb2ludG1lbnRzVGl0bGUnLCAnY2FsZW5kYXJUaXRsZScsICdjdXJyZW50RGF0ZScsICdkYXRlQWRhcHRlcicsICdkaXNhYmxlU29ydCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdzaG93SXRlbXMnLCAnc29ydEJ5JywgJ3N0ZXBJdGVtcycsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hcHBvaW50bWVudHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwcG9pbnRtZW50cycsICdhcHBvaW50bWVudHNUaXRsZScsICdjYWxlbmRhclRpdGxlJywgJ2N1cnJlbnREYXRlJywgJ2RhdGVBZGFwdGVyJywgJ2Rpc2FibGVTb3J0JywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3Nob3dJdGVtcycsICdzb3J0QnknLCAnc3RlcEl0ZW1zJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnc3R6aENoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQXBwb2ludG1lbnRzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEFwcG9pbnRtZW50c0VsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFwcG9pbnRtZW50c1N0emhBcHBvaW50bWVudHNDaGFuZ2VFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQXBwb2ludG1lbnRzQ2hhbmdlRXZlbnQgYXMgSVN0emhBcHBvaW50bWVudHNTdHpoQXBwb2ludG1lbnRzQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQXBwb2ludG1lbnRzIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQXBwb2ludG1lbnRzIHtcbiAgLyoqXG4gICAqIEFwcG9pbnRtZW50cyBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFwcG9pbnRtZW50c1N0emhBcHBvaW50bWVudHNDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpdGVtcycsICdsb2NhbGl6YXRpb24nLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hcmNoaXZlbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dJdGVtcycsICdzdGVwSXRlbXMnXSxcbiAgb3V0cHV0czogWydzdHpoSXRlbUNsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBcmNoaXZlbGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhBcmNoaXZlbGlzdEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoSXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFyY2hpdmVsaXN0U3R6aEFyY2hpdmVsaXN0SXRlbUNsaWNrRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFyY2hpdmVsaXN0SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhBcmNoaXZlbGlzdFN0emhBcmNoaXZlbGlzdEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFyY2hpdmVsaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQXJjaGl2ZWxpc3Qge1xuICAvKipcbiAgICogSXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXJjaGl2ZWxpc3RTdHpoQXJjaGl2ZWxpc3RJdGVtQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkb3dubG9hZEFuYWx5dGljc0lkJywgJ2xvY2FsaXphdGlvbicsICdwcmVsb2FkJywgJ3NyYycsICd0cmFuc2NyaXB0JywgJ3RyYW5zY3JpcHRBbmFseXRpY3NJZCcsICd0cmFuc2NyaXB0U2hvd24nXSxcbiAgbWV0aG9kczogWydwbGF5JywgJ3BhdXNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWF1ZGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkb3dubG9hZEFuYWx5dGljc0lkJywgJ2xvY2FsaXphdGlvbicsICdwcmVsb2FkJywgJ3NyYycsICd0cmFuc2NyaXB0JywgJ3RyYW5zY3JpcHRBbmFseXRpY3NJZCcsICd0cmFuc2NyaXB0U2hvd24nXSxcbiAgb3V0cHV0czogWydzdHpoUGxheScsICdzdHpoUGxheWluZycsICdzdHpoUGF1c2UnLCAnc3R6aFJlcGxheScsICdzdHpoRW5kJywgJ3N0emhFbmRlZCcsICdzdHpoRXJyb3InXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEF1ZGlvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEF1ZGlvRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhQbGF5ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvUGxheUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhQbGF5aW5nID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvUGxheWluZ0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhQYXVzZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb1BhdXNlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFJlcGxheSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb1JlcGxheUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9FbmRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRW5kZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9FbmRlZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb0Vycm9yRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvUGxheUV2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9QbGF5RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb1BsYXlpbmdFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvUGxheWluZ0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9QYXVzZUV2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9QYXVzZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9SZXBsYXlFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvUmVwbGF5RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb0VuZEV2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9FbmRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvRW5kZWRFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvRW5kZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvRXJyb3JFdmVudCBhcyBJU3R6aEF1ZGlvU3R6aEF1ZGlvRXJyb3JFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBdWRpbyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEF1ZGlvIHtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gdGhlIHBhdXNlZCBwcm9wZXJ0eSBpcyBjaGFuZ2VkIGZyb20gdHJ1ZSB0byBmYWxzZSwgYXMgYSByZXN1bHQgb2YgdGhlIHBsYXkoKSBtZXRob2QsIG9yIHRoZSBhdXRvcGxheSBhdHRyaWJ1dGUuXG4gICAqL1xuICBzdHpoUGxheTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9QbGF5RXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gcGxheWJhY2sgaXMgcmVhZHkgdG8gc3RhcnQgYWZ0ZXIgaGF2aW5nIGJlZW4gcGF1c2VkIG9yIGRlbGF5ZWQgZHVlIHRvIGxhY2sgb2YgZGF0YS5cbiAgICovXG4gIHN0emhQbGF5aW5nOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb1BsYXlpbmdFdmVudD4+O1xuICAvKipcbiAgICogRmlyZWQgd2hlbiBhIHJlcXVlc3QgdG8gcGF1c2UgYW4gYWN0aXZpdHkgaXMgaGFuZGxlZCBhbmQgdGhlIGFjdGl2aXR5IGhhcyBlbnRlcmVkIGl0cyBwYXVzZWQgc3RhdGUsIG1vc3QgY29tbW9ubHkgYWZ0ZXIgdGhlIG1lZGlhIGhhcyBiZWVuIHBhdXNlZCB0aHJvdWdoIGEgY2FsbCB0byB0aGUgcGF1c2UoKSBtZXRob2QuXG4gICAqL1xuICBzdHpoUGF1c2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvUGF1c2VFdmVudD4+O1xuICAvKipcbiAgICogRmlyZWQgd2hlbiBtZWRpYSBwbGF5YmFjayBzdGFydHMgYWdhaW4gYWZ0ZXIgYmVpbmcgaW4gYW4gZW5kZWQgc3RhdGUuIFRoaXMgaXMgZmlyZWQgd2hlbiB0aGUgbG9vcCBwcm9wZXJ0eSBpcyB0cnVlIGFuZCBtZWRpYSBsb29wcywgd2hlcmVhcyB0aGUgdmRzLXBsYXkgZXZlbnQgaXMgbm90LlxuICAgKi9cbiAgc3R6aFJlcGxheTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9SZXBsYXlFdmVudD4+O1xuICAvKipcbiAgICogRmlyZWQgZWFjaCB0aW1lIG1lZGlhIHBsYXliYWNrIGhhcyByZWFjaGVkIHRoZSBlbmQuIFRoaXMgaXMgZmlyZWQgZXZlbiBpZiB0aGUgbG9vcCBwcm9wZXJ0eSBpcyB0cnVlLCB3aGljaCBpcyBnZW5lcmFsbHkgd2hlbiB5b3UnZCByZWFjaCBmb3IgdGhpcyBldmVudCBvdmVyIHRoZSBNZWRpYUVuZGVkRXZlbnQgaWYgeW91IHdhbnQgdG8gYmUgbm90aWZpZWQgb2YgbWVkaWEgbG9vcGluZy5cbiAgICovXG4gIHN0emhFbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvRW5kRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gcGxheWJhY2sgb3Igc3RyZWFtaW5nIGhhcyBzdG9wcGVkIGJlY2F1c2UgdGhlIGVuZCBvZiB0aGUgbWVkaWEgd2FzIHJlYWNoZWQgb3IgYmVjYXVzZSBubyBmdXJ0aGVyIGRhdGEgaXMgYXZhaWxhYmxlLiBUaGlzIGlzIG5vdCBmaXJlZCBpZiBwbGF5YmFjayB3aWxsIHN0YXJ0IGZyb20gdGhlIGJlZ2lubmluZyBhZ2FpbiBkdWUgdG8gdGhlIGxvb3AgcHJvcGVydHkgYmVpbmcgdHJ1ZSAoc2VlIE1lZGlhUmVwbGF5RXZlbnQgYW5kIE1lZGlhRW5kRXZlbnQpLlxuICAgKi9cbiAgc3R6aEVuZGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb0VuZGVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpcmVkIHdoZW4gbWVkaWEgbG9hZGluZyBvciBwbGF5YmFjayBoYXMgZW5jb3VudGVyZWQgYW55IGlzc3VlcyAoZm9yIGV4YW1wbGUsIGEgbmV0d29yayBjb25uZWN0aXZpdHkgcHJvYmxlbSkuIFRoZSBldmVudCBkZXRhaWwgY29udGFpbnMgYSBwb3RlbnRpYWwgbWVzc2FnZSBjb250YWluaW5nIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVycm9yIChlbXB0eSBzdHJpbmcgaWYgbm90aGluZyBhdmFpbGFibGUpLCBhbmQgYSBjb2RlIHRoYXQgaWRlbnRpZmllcyB0aGUgZ2VuZXJhbCB0eXBlIG9mIGVycm9yIHRoYXQgb2NjdXJyZWQuXG4gICAqL1xuICBzdHpoRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvRXJyb3JFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWJhZGdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCcsICd0eXBlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhCYWRnZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhCYWRnZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCYWRnZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJhZGdlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVDbG9zZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAndHlwZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1iYW5uZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVDbG9zZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAndHlwZSddLFxuICBvdXRwdXRzOiBbJ3N0emhPcGVuJywgJ3N0emhDbG9zZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQmFubmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEJhbm5lckVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoT3BlbiA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCYW5uZXJTdHpoQmFubmVyT3BlbkV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCYW5uZXJTdHpoQmFubmVyQ2xvc2VFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQmFubmVyT3BlbkV2ZW50IGFzIElTdHpoQmFubmVyU3R6aEJhbm5lck9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEJhbm5lckNsb3NlRXZlbnQgYXMgSVN0emhCYW5uZXJTdHpoQmFubmVyQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCYW5uZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhCYW5uZXIge1xuICAvKipcbiAgICogQmFubmVyIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCYW5uZXJTdHpoQmFubmVyT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBCYW5uZXIgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQmFubmVyU3R6aEJhbm5lckNsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZXhwYW5kZWQnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYnJlYWRjcnVtYicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZXhwYW5kZWQnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJywgJ3ZhcmlhbnQnXSxcbiAgb3V0cHV0czogWydzdHpoSXRlbUNsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhCcmVhZGNydW1iIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEJyZWFkY3J1bWJFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aEl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCcmVhZGNydW1iU3R6aEJyZWFkY3J1bWJJdGVtQ2xpY2tFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQnJlYWRjcnVtYkl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQnJlYWRjcnVtYlN0emhCcmVhZGNydW1iSXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQnJlYWRjcnVtYiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJyZWFkY3J1bWIge1xuICAvKipcbiAgICogSXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnJlYWRjcnVtYlN0emhCcmVhZGNydW1iSXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlDdXJyZW50JywgJ2ExMXlEZXNjcmliZWRieScsICdhMTF5RGlzYWJsZWQnLCAnYTExeUV4cGFuZGVkJywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VQb3NpdGlvbicsICdiYWRnZVR5cGUnLCAnYnV0dG9uQWNjZXNza2V5JywgJ2J1dHRvbklkJywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGlzYWJsZU9uQ2xpY2snLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnZWZmZWN0JywgJ2Z1bGx3aWR0aCcsICdocmVmJywgJ2ljb24nLCAnaWNvbk9ubHknLCAnaWNvblBvc2l0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ25vSHlwaGVuYXRpb24nLCAnbm9QYWRkaW5nTGVmdCcsICdub1BhZGRpbmdSaWdodCcsICdyZWwnLCAncm91bmRlZCcsICdzaG93VG9nZ2xlSWNvbicsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3ZhbHVlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYnV0dG9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUN1cnJlbnQnLCAnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlEaXNhYmxlZCcsICdhMTF5RXhwYW5kZWQnLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVBvc2l0aW9uJywgJ2JhZGdlVHlwZScsICdidXR0b25BY2Nlc3NrZXknLCAnYnV0dG9uSWQnLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkaXNhYmxlT25DbGljaycsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdlZmZlY3QnLCAnZnVsbHdpZHRoJywgJ2hyZWYnLCAnaWNvbicsICdpY29uT25seScsICdpY29uUG9zaXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnbm9IeXBoZW5hdGlvbicsICdub1BhZGRpbmdMZWZ0JywgJ25vUGFkZGluZ1JpZ2h0JywgJ3JlbCcsICdyb3VuZGVkJywgJ3Nob3dUb2dnbGVJY29uJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndGV4dEFsaWduJywgJ3R5cGUnLCAndmFsdWUnLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ3N0emhGb2N1cycsICdzdHpoQmx1cicsICdzdHpoQ2hhbmdlJywgJ3N0emhDbGljayddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQnV0dG9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEJ1dHRvbkVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnV0dG9uU3R6aEJ1dHRvbkZvY3VzRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnV0dG9uU3R6aEJ1dHRvbkJsdXJFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJ1dHRvblN0emhCdXR0b25DaGFuZ2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnV0dG9uU3R6aEJ1dHRvbkNsaWNrRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEJ1dHRvbkZvY3VzRXZlbnQgYXMgSVN0emhCdXR0b25TdHpoQnV0dG9uRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEJ1dHRvbkJsdXJFdmVudCBhcyBJU3R6aEJ1dHRvblN0emhCdXR0b25CbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhCdXR0b25DaGFuZ2VFdmVudCBhcyBJU3R6aEJ1dHRvblN0emhCdXR0b25DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEJ1dHRvbkNsaWNrRXZlbnQgYXMgSVN0emhCdXR0b25TdHpoQnV0dG9uQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCdXR0b24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhCdXR0b24ge1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnV0dG9uU3R6aEJ1dHRvbkZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCdXR0b25TdHpoQnV0dG9uQmx1ckV2ZW50Pj47XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnQgKG9ubHkgY2FsbGVkIGlmIHR5cGUgaXMgcmFkaW8pXG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCdXR0b25TdHpoQnV0dG9uQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJ1dHRvblN0emhCdXR0b25DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Z1bGx3aWR0aCcsICdyb3VuZGVkJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1idXR0b25ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZnVsbHdpZHRoJywgJ3JvdW5kZWQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhCdXR0b25ncm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhCdXR0b25ncm91cEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCdXR0b25ncm91cCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJ1dHRvbmdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ZpcnN0RGF5T2ZXZWVrJywgJ2lzRGF0ZURpc2FibGVkJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25leHRNb250aEFuYWx5dGljc0lkJywgJ3ByZXZNb250aEFuYWx5dGljc0lkJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXNlZERheScsICdzZXREYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhbGVuZGFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmaXJzdERheU9mV2VlaycsICdpc0RhdGVEaXNhYmxlZCcsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21pbicsICduZXh0TW9udGhBbmFseXRpY3NJZCcsICdwcmV2TW9udGhBbmFseXRpY3NJZCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3N0emhDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhbGVuZGFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aENhbGVuZGFyRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FsZW5kYXJTdHpoQ2FsZW5kYXJDaGFuZ2VFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FsZW5kYXJDaGFuZ2VFdmVudCBhcyBJU3R6aENhbGVuZGFyU3R6aENhbGVuZGFyQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2FsZW5kYXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYWxlbmRhciB7XG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gYSBkYXRlIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FsZW5kYXJTdHpoQ2FsZW5kYXJDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdiYWNrZ3JvdW5kQ29sb3InLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY2hlY2tlZCcsICdjb2xsYXBzZWQnLCAnY29sbGFwc2libGUnLCAnZGlzYWJsZWQnLCAnZm9vdGVyQWN0aW9ucycsICdoZWFkZXJBY3Rpb25zJywgJ2hlYWRlckFjdGlvbnNCYWRnZScsICdoZWFkZXJBY3Rpb25zQmFkZ2VUeXBlJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hpZGVNb3ZlbWVudEFjdGlvbnMnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdzZWxlY3RhYmxlJywgJ3NvcnRhYmxlRGlzYWJsZWQnLCAnc3RhcnJhYmxlJywgJ3N0YXJyZWQnLCAnc3VidGl0bGUnLCAnc3VidGl0bGVJbnRlcmFjdGl2ZScsICd0YXJnZXQnLCAndmFsdWUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdiYWNrZ3JvdW5kQ29sb3InLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY2hlY2tlZCcsICdjb2xsYXBzZWQnLCAnY29sbGFwc2libGUnLCAnZGlzYWJsZWQnLCAnZm9vdGVyQWN0aW9ucycsICdoZWFkZXJBY3Rpb25zJywgJ2hlYWRlckFjdGlvbnNCYWRnZScsICdoZWFkZXJBY3Rpb25zQmFkZ2VUeXBlJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hpZGVNb3ZlbWVudEFjdGlvbnMnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdzZWxlY3RhYmxlJywgJ3NvcnRhYmxlRGlzYWJsZWQnLCAnc3RhcnJhYmxlJywgJ3N0YXJyZWQnLCAnc3VidGl0bGUnLCAnc3VidGl0bGVJbnRlcmFjdGl2ZScsICd0YXJnZXQnLCAndmFsdWUnLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ3N0emhDbGljaycsICdzdHpoQ29sbGFwc2UnLCAnc3R6aFN1YnRpdGxlQ2xpY2snLCAnc3R6aFN0YXJDbGljaycsICdzdHpoSGVhZGVyQWN0aW9uQ2xpY2snXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ2FyZEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkQ2xpY2tFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ29sbGFwc2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkQ29sbGFwc2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoU3VidGl0bGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRTdWJ0aXRsZUNsaWNrRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFN0YXJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRTdGFyQ2xpY2tFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoSGVhZGVyQWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkSGVhZGVyQWN0aW9uQ2xpY2tFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZENsaWNrRXZlbnQgYXMgSVN0emhDYXJkU3R6aENhcmRDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZENvbGxhcHNlRXZlbnQgYXMgSVN0emhDYXJkU3R6aENhcmRDb2xsYXBzZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFN1YnRpdGxlQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZFN1YnRpdGxlQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENhcmRTdGFyQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZFN0YXJDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZEhlYWRlckFjdGlvbkNsaWNrRXZlbnQgYXMgSVN0emhDYXJkU3R6aENhcmRIZWFkZXJBY3Rpb25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJkIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENvbGxhcHNlIGV2ZW50XG4gICAqL1xuICBzdHpoQ29sbGFwc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZENvbGxhcHNlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFN1YnRpdGxlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoU3VidGl0bGVDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkU3VidGl0bGVDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBTdGFyIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoU3RhckNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRTdGFyQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogSGVhZGVyIGFjdGlvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEhlYWRlckFjdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRIZWFkZXJBY3Rpb25DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnbGVhZCcsICd0YXJnZXQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FyZC1uYXZpZ2F0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2xlYWQnLCAndGFyZ2V0J10sXG4gIG91dHB1dHM6IFsnc3R6aENsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYXJkTmF2aWdhdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDYXJkTmF2aWdhdGlvbkVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZE5hdmlnYXRpb25TdHpoQ2FyZE5hdmlnYXRpb25DbGlja0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkTmF2aWdhdGlvbkNsaWNrRXZlbnQgYXMgSVN0emhDYXJkTmF2aWdhdGlvblN0emhDYXJkTmF2aWdhdGlvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2FyZE5hdmlnYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJkTmF2aWdhdGlvbiB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudCAoaWYgaHJlZiBpcyB1c2VkKVxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkTmF2aWdhdGlvblN0emhDYXJkTmF2aWdhdGlvbkNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYnJlYWRjcnVtYkl0ZW1zJywgJ2RhdGFsaXN0SXRlbXMnLCAnZGF0ZUFkYXB0ZXInLCAnZGF0ZWxpbmUnLCAnZGVzY3JpcHRpb24nLCAnZG93bmxvYWQnLCAnZG93bmxvYWRIZWFkaW5nJywgJ2Rvd25sb2FkTWV0YScsICdldmVudERhdGVFbmQnLCAnZXZlbnREYXRlU3RhcnQnLCAnZXZlbnRMb2NhdGlvbicsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2ltYWdlUG9zaXRpb24nLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAncGxhY2Vob2xkZXJJbWFnZUVuYWJsZWQnLCAnc2VydmljZScsICd0YWcnLCAndGFyZ2V0JywgJ3RvcGljJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhcmQtc2VhcmNocmVzdWx0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdicmVhZGNydW1iSXRlbXMnLCAnZGF0YWxpc3RJdGVtcycsICdkYXRlQWRhcHRlcicsICdkYXRlbGluZScsICdkZXNjcmlwdGlvbicsICdkb3dubG9hZCcsICdkb3dubG9hZEhlYWRpbmcnLCAnZG93bmxvYWRNZXRhJywgJ2V2ZW50RGF0ZUVuZCcsICdldmVudERhdGVTdGFydCcsICdldmVudExvY2F0aW9uJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnaW1hZ2VQb3NpdGlvbicsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdwbGFjZWhvbGRlckltYWdlRW5hYmxlZCcsICdzZXJ2aWNlJywgJ3RhZycsICd0YXJnZXQnLCAndG9waWMnXSxcbiAgb3V0cHV0czogWydzdHpoQ2xpY2snXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmRTZWFyY2hyZXN1bHQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ2FyZFNlYXJjaHJlc3VsdEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFNlYXJjaHJlc3VsdFN0emhDYXJkU2VhcmNocmVzdWx0Q2xpY2tFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFNlYXJjaHJlc3VsdENsaWNrRXZlbnQgYXMgSVN0emhDYXJkU2VhcmNocmVzdWx0U3R6aENhcmRTZWFyY2hyZXN1bHRDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmRTZWFyY2hyZXN1bHQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJkU2VhcmNocmVzdWx0IHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50IChpZiBocmVmIGlzIHVzZWQpXG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTZWFyY2hyZXN1bHRTdHpoQ2FyZFNlYXJjaHJlc3VsdENsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYnJlYWRjcnVtYkl0ZW1zJywgJ2RhdGFsaXN0SXRlbXMnLCAnZGF0ZUFkYXB0ZXInLCAnZGF0ZWxpbmUnLCAnZGVzY3JpcHRpb24nLCAnZG93bmxvYWQnLCAnZG93bmxvYWRIZWFkaW5nJywgJ2Rvd25sb2FkTWV0YScsICdldmVudERhdGVFbmQnLCAnZXZlbnREYXRlU3RhcnQnLCAnZXZlbnRMb2NhdGlvbicsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2ltYWdlUG9zaXRpb24nLCAnaXNPbkhvbWVwYWdlJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ3BsYWNlaG9sZGVySW1hZ2VFbmFibGVkJywgJ3NlcnZpY2UnLCAndGFnJywgJ3RhcmdldCcsICd0b3BpYyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkLXN1cGVydGVhc2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdicmVhZGNydW1iSXRlbXMnLCAnZGF0YWxpc3RJdGVtcycsICdkYXRlQWRhcHRlcicsICdkYXRlbGluZScsICdkZXNjcmlwdGlvbicsICdkb3dubG9hZCcsICdkb3dubG9hZEhlYWRpbmcnLCAnZG93bmxvYWRNZXRhJywgJ2V2ZW50RGF0ZUVuZCcsICdldmVudERhdGVTdGFydCcsICdldmVudExvY2F0aW9uJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnaW1hZ2VQb3NpdGlvbicsICdpc09uSG9tZXBhZ2UnLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAncGxhY2Vob2xkZXJJbWFnZUVuYWJsZWQnLCAnc2VydmljZScsICd0YWcnLCAndGFyZ2V0JywgJ3RvcGljJ10sXG4gIG91dHB1dHM6IFsnc3R6aENsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYXJkU3VwZXJ0ZWFzZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ2FyZFN1cGVydGVhc2VyRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3VwZXJ0ZWFzZXJTdHpoQ2FyZFN1cGVydGVhc2VyQ2xpY2tFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFN1cGVydGVhc2VyQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdXBlcnRlYXNlclN0emhDYXJkU3VwZXJ0ZWFzZXJDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmRTdXBlcnRlYXNlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmRTdXBlcnRlYXNlciB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudCAoaWYgaHJlZiBpcyB1c2VkKVxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3VwZXJ0ZWFzZXJTdHpoQ2FyZFN1cGVydGVhc2VyQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdsYXlvdXQnLCAnbG9jYWxpemF0aW9uJywgJ21heDNDb2x1bW5zJywgJ3Nob3dUb2dnbGVMaW5rJywgJ3NvcnRhYmxlRGF0YUlkQXR0cmlidXRlJywgJ3NvcnRhYmxlRW5hYmxlZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnbGF5b3V0JywgJ2xvY2FsaXphdGlvbicsICdtYXgzQ29sdW1ucycsICdzaG93VG9nZ2xlTGluaycsICdzb3J0YWJsZURhdGFJZEF0dHJpYnV0ZScsICdzb3J0YWJsZUVuYWJsZWQnXSxcbiAgb3V0cHV0czogWydzdHpoQ29sbGFwc2VBbGwnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmRsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aENhcmRsaXN0RWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDb2xsYXBzZUFsbCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkbGlzdFN0emhDYXJkbGlzdENvbGxhcHNlQWxsRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcmRsaXN0Q29sbGFwc2VBbGxFdmVudCBhcyBJU3R6aENhcmRsaXN0U3R6aENhcmRsaXN0Q29sbGFwc2VBbGxFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDYXJkbGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmRsaXN0IHtcbiAgLyoqXG4gICAqIENvbGxhcHNlIGFsbCBldmVudFxuICAgKi9cbiAgc3R6aENvbGxhcHNlQWxsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkbGlzdFN0emhDYXJkbGlzdENvbGxhcHNlQWxsRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b3BsYXknLCAnYXV0b3BsYXlUaW1lb3V0JywgJ2Rpc2FibGVkJywgJ2xvY2FsaXphdGlvbicsICdub1BlZWsnLCAnbm9uSW50ZXJhY3RpdmUnLCAncHJldmVudEF1dG9wbGF5UGF1c2UnLCAncHJldmVudEF1dG9wbGF5U3RvcCcsICdwcmV2ZW50TW91c2VEcmFnJywgJ3NsaWRlJywgJ3NsaWRlcycsICdzbGlkZXNMYXJnZScsICdzbGlkZXNNZWRpdW0nLCAnc2xpZGVzU21hbGwnLCAnc2xpZGVzVWx0cmEnLCAndGFiVGhyb3VnaCcsICd2YXJpYW50JywgJ3dpdGhUcmFjayddLFxuICBtZXRob2RzOiBbJ3NsaWRlVG8nLCAnc2xpZGVUb1ByZXZpb3VzJywgJ3NsaWRlVG9OZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhcm91c2VsJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvcGxheScsICdhdXRvcGxheVRpbWVvdXQnLCAnZGlzYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ25vUGVlaycsICdub25JbnRlcmFjdGl2ZScsICdwcmV2ZW50QXV0b3BsYXlQYXVzZScsICdwcmV2ZW50QXV0b3BsYXlTdG9wJywgJ3ByZXZlbnRNb3VzZURyYWcnLCAnc2xpZGUnLCAnc2xpZGVzJywgJ3NsaWRlc0xhcmdlJywgJ3NsaWRlc01lZGl1bScsICdzbGlkZXNTbWFsbCcsICdzbGlkZXNVbHRyYScsICd0YWJUaHJvdWdoJywgJ3ZhcmlhbnQnLCAnd2l0aFRyYWNrJ10sXG4gIG91dHB1dHM6IFsnc3R6aFNsaWRlU3RhcnQnLCAnc3R6aFNsaWRlUGFzc2VkJywgJ3N0emhTbGlkZUVuZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2Fyb3VzZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ2Fyb3VzZWxFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aFNsaWRlU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZVN0YXJ0RXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFNsaWRlUGFzc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcm91c2VsU3R6aENhcm91c2VsU2xpZGVQYXNzZWRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoU2xpZGVFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZUVuZEV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYXJvdXNlbFNsaWRlU3RhcnRFdmVudCBhcyBJU3R6aENhcm91c2VsU3R6aENhcm91c2VsU2xpZGVTdGFydEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2Fyb3VzZWxTbGlkZVBhc3NlZEV2ZW50IGFzIElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZVBhc3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2Fyb3VzZWxTbGlkZUVuZEV2ZW50IGFzIElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZUVuZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcm91c2VsIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2Fyb3VzZWwge1xuICAvKipcbiAgICogU2xpZGUgc3RhcnQgZXZlbnRcbiAgICovXG4gIHN0emhTbGlkZVN0YXJ0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJvdXNlbFN0emhDYXJvdXNlbFNsaWRlU3RhcnRFdmVudD4+O1xuICAvKipcbiAgICogU2xpZGUgcGFzc2VkIGV2ZW50XG4gICAqL1xuICBzdHpoU2xpZGVQYXNzZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcm91c2VsU3R6aENhcm91c2VsU2xpZGVQYXNzZWRFdmVudD4+O1xuICAvKipcbiAgICogU2xpZGUgZW5kIGV2ZW50XG4gICAqL1xuICBzdHpoU2xpZGVFbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcm91c2VsU3R6aENhcm91c2VsU2xpZGVFbmRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGlnbicsICdhbGlnblNlbGYnLCAnc3BhbicsICdzcGFuTGFyZ2UnLCAnc3Bhbk1lZGl1bScsICdzcGFuU21hbGwnLCAnc3BhblVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNlbGwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2FsaWduU2VsZicsICdzcGFuJywgJ3NwYW5MYXJnZScsICdzcGFuTWVkaXVtJywgJ3NwYW5TbWFsbCcsICdzcGFuVWx0cmEnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENlbGwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ2VsbEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDZWxsIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2VsbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGFydElkJywgJ2NyZWF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGFydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hhcnRJZCcsICdjcmVhdGUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoYXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aENoYXJ0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoYXJ0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hhcnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNoZWNrYm94JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydzdHpoQ2hhbmdlJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2hlY2tib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ2hlY2tib3hFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveFN0emhDaGVja2JveENoYW5nZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveFN0emhDaGVja2JveEZvY3VzRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hlY2tib3hTdHpoQ2hlY2tib3hCbHVyRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENoZWNrYm94Q2hhbmdlRXZlbnQgYXMgSVN0emhDaGVja2JveFN0emhDaGVja2JveENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2hlY2tib3hGb2N1c0V2ZW50IGFzIElTdHpoQ2hlY2tib3hTdHpoQ2hlY2tib3hGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2hlY2tib3hCbHVyRXZlbnQgYXMgSVN0emhDaGVja2JveFN0emhDaGVja2JveEJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDaGVja2JveCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoZWNrYm94IHtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hlY2tib3hTdHpoQ2hlY2tib3hDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hlY2tib3hTdHpoQ2hlY2tib3hGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hlY2tib3hTdHpoQ2hlY2tib3hCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2hlY2tlZENoZWNrYm94JywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlyZWN0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVMZWdlbmQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3ByZXZlbnRVcGRhdGVQcm9wZXJ0aWVzJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNoZWNrYm94Z3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NoZWNrZWRDaGVja2JveCcsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2RpcmVjdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlTGVnZW5kJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xlZ2VuZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2ZW50VXBkYXRlUHJvcGVydGllcycsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3N0emhDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoZWNrYm94Z3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ2hlY2tib3hncm91cEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94Z3JvdXBTdHpoQ2hlY2tib3hncm91cENoYW5nZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDaGVja2JveGdyb3VwQ2hhbmdlRXZlbnQgYXMgSVN0emhDaGVja2JveGdyb3VwU3R6aENoZWNrYm94Z3JvdXBDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDaGVja2JveGdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hlY2tib3hncm91cCB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94Z3JvdXBTdHpoQ2hlY2tib3hncm91cENoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdjb3VudGVyJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdpbnZlcnRlZCcsICdsYWJlbCcsICdub25JbnRlcmFjdGl2ZScsICdyZW1vdmFibGUnLCAncmVtb3ZlQW5hbHl0aWNzSWQnLCAncmVtb3ZlTGFiZWwnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RhcmdldCcsICd0eXBlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hpcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2NvdW50ZXInLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2ludmVydGVkJywgJ2xhYmVsJywgJ25vbkludGVyYWN0aXZlJywgJ3JlbW92YWJsZScsICdyZW1vdmVBbmFseXRpY3NJZCcsICdyZW1vdmVMYWJlbCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3R5cGUnLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ3N0emhDbGljaycsICdzdHpoUmVtb3ZlJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2hpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDaGlwRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBDbGlja0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhSZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hpcFN0emhDaGlwUmVtb3ZlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoaXBTdHpoQ2hpcEZvY3VzRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hpcFN0emhDaGlwQmx1ckV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwQ2xpY2tFdmVudCBhcyBJU3R6aENoaXBTdHpoQ2hpcENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDaGlwUmVtb3ZlRXZlbnQgYXMgSVN0emhDaGlwU3R6aENoaXBSZW1vdmVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoaXBGb2N1c0V2ZW50IGFzIElTdHpoQ2hpcFN0emhDaGlwRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoaXBCbHVyRXZlbnQgYXMgSVN0emhDaGlwU3R6aENoaXBCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hpcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoaXAge1xuICAvKipcbiAgICogQ2hpcCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBDaGlwIHJlbW92ZSBldmVudFxuICAgKi9cbiAgc3R6aFJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hpcFN0emhDaGlwUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoaXBTdHpoQ2hpcEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hpcGdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGlwZ3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ2hpcGdyb3VwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoaXBncm91cCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoaXBncm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnZGF0YScsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Ryb3Bkb3duT25Nb2JpbGUnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ211bHRpcGxlJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hpcHNlbGVjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2RhdGEnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdkcm9wZG93bk9uTW9iaWxlJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICdtdWx0aXBsZScsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnc3R6aENoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2hpcHNlbGVjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDaGlwc2VsZWN0RWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hpcHNlbGVjdFN0emhDaGlwc2VsZWN0Q2hhbmdlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENoaXBzZWxlY3RDaGFuZ2VFdmVudCBhcyBJU3R6aENoaXBzZWxlY3RTdHpoQ2hpcHNlbGVjdENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoaXBzZWxlY3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDaGlwc2VsZWN0IHtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hpcHNlbGVjdFN0emhDaGlwc2VsZWN0Q2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xhbXBlZCcsICdleHBhbmRMaW5rU2l6ZScsICdleHBhbmRlZCcsICdsaW5lcycsICdsaW5lc0xhcmdlJywgJ2xpbmVzTWVkaXVtJywgJ2xpbmVzU21hbGwnLCAnbGluZXNVbHRyYScsICdsb2NhbGl6YXRpb24nLCAnc2hvd0V4cGFuZExpbmsnXSxcbiAgbWV0aG9kczogWyd1cGRhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2xhbXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NsYW1wZWQnLCAnZXhwYW5kTGlua1NpemUnLCAnZXhwYW5kZWQnLCAnbGluZXMnLCAnbGluZXNMYXJnZScsICdsaW5lc01lZGl1bScsICdsaW5lc1NtYWxsJywgJ2xpbmVzVWx0cmEnLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dFeHBhbmRMaW5rJ10sXG4gIG91dHB1dHM6IFsnc3R6aENsYW1wJywgJ3N0emhFeHBhbmQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENsYW1wIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aENsYW1wRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDbGFtcCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDbGFtcFN0emhDbGFtcENsYW1wRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEV4cGFuZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDbGFtcFN0emhDbGFtcEV4cGFuZEV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDbGFtcENsYW1wRXZlbnQgYXMgSVN0emhDbGFtcFN0emhDbGFtcENsYW1wRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDbGFtcEV4cGFuZEV2ZW50IGFzIElTdHpoQ2xhbXBTdHpoQ2xhbXBFeHBhbmRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDbGFtcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENsYW1wIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gY2xhbXBpbmcgc3RhdGUgY2hhbmdlZFxuICAgKi9cbiAgc3R6aENsYW1wOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDbGFtcFN0emhDbGFtcENsYW1wRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gZXhwYW5kaW5nIHN0YXRlIGNoYW5nZWRcbiAgICovXG4gIHN0emhFeHBhbmQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENsYW1wU3R6aENsYW1wRXhwYW5kRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY29tcGFueS1sb2dvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDb21wYW55TG9nbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDb21wYW55TG9nb0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDb21wYW55TG9nbyBleHRlbmRzIENvbXBvbmVudHMuU3R6aENvbXBhbnlMb2dvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FkZGl0aW9uYWxJbmZvcm1hdGlvbicsICdhZGRyZXNzJywgJ2F2YWlsYWJpbGl0eScsICdhdmFpbGFiaWxpdHlUaXRsZScsICdhdmFpbGFiaWxpdHlUaXRsZUxldmVsJywgJ2NpdHlMYWJlbCcsICdjb250YWN0VGl0bGUnLCAnZGVwYXJ0YW1lbnQnLCAnZW1haWxzJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2xvY2F0aW9uJywgJ21haW5IZWFkaW5nJywgJ21haW5IZWFkaW5nTGV2ZWwnLCAnbmFtZScsICdudW1iZXJzJywgJ3BlcnNvblJvbGUnLCAncG9ib3gnLCAncG9ib3hIZWFkaW5nJywgJ3BvYm94TG9jYXRpb24nLCAncG9ib3hQb3N0YWxDb2RlJywgJ3BvYm94VGl0bGUnLCAncG9zdGFsQ29kZScsICdyZXNwb25zaWJpbGl0eScsICdyZXNwb25zaWJpbGl0eVRpdGxlJywgJ3N0cmVldCcsICdzdHJlZXRJbmZvJywgJ3R5cGUnLCAnd2Vic2l0ZXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY29udGFjdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWRkaXRpb25hbEluZm9ybWF0aW9uJywgJ2FkZHJlc3MnLCAnYXZhaWxhYmlsaXR5JywgJ2F2YWlsYWJpbGl0eVRpdGxlJywgJ2F2YWlsYWJpbGl0eVRpdGxlTGV2ZWwnLCAnY2l0eUxhYmVsJywgJ2NvbnRhY3RUaXRsZScsICdkZXBhcnRhbWVudCcsICdlbWFpbHMnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnbG9jYXRpb24nLCAnbWFpbkhlYWRpbmcnLCAnbWFpbkhlYWRpbmdMZXZlbCcsICduYW1lJywgJ251bWJlcnMnLCAncGVyc29uUm9sZScsICdwb2JveCcsICdwb2JveEhlYWRpbmcnLCAncG9ib3hMb2NhdGlvbicsICdwb2JveFBvc3RhbENvZGUnLCAncG9ib3hUaXRsZScsICdwb3N0YWxDb2RlJywgJ3Jlc3BvbnNpYmlsaXR5JywgJ3Jlc3BvbnNpYmlsaXR5VGl0bGUnLCAnc3RyZWV0JywgJ3N0cmVldEluZm8nLCAndHlwZScsICd3ZWJzaXRlcyddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ29udGFjdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDb250YWN0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENvbnRhY3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDb250YWN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hvYmJpZXMnLCAnam9idGl0bGUnLCAnbG9jYWxpemF0aW9uJywgJ3Jlc3BvbnNpYmlsaXRpZXMnLCAndHJhaW5pbmdzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNvbnRhY3QtY3YnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hvYmJpZXMnLCAnam9idGl0bGUnLCAnbG9jYWxpemF0aW9uJywgJ3Jlc3BvbnNpYmlsaXRpZXMnLCAndHJhaW5pbmdzJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDb250YWN0Q3Yge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ29udGFjdEN2RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENvbnRhY3RDdiBleHRlbmRzIENvbXBvbmVudHMuU3R6aENvbnRhY3RDdiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydub01hcmdpbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jb250YWluZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ25vTWFyZ2luJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDb250YWluZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ29udGFpbmVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENvbnRhaW5lciBleHRlbmRzIENvbXBvbmVudHMuU3R6aENvbnRhaW5lciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwcmV2ZW50RWxlbWVudExheW91dCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNvbnRlbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3ByZXZlbnRFbGVtZW50TGF5b3V0JywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ29udGVudEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDb250ZW50IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ29udGVudCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwcmV2ZW50UmVtb3ZlTmVzdGVkJywgJ3JlbW92ZUZpcnN0TWFyZ2luJywgJ3JlbW92ZUxhc3RNYXJnaW4nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY3NwYWNlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydwcmV2ZW50UmVtb3ZlTmVzdGVkJywgJ3JlbW92ZUZpcnN0TWFyZ2luJywgJ3JlbW92ZUxhc3RNYXJnaW4nXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENzcGFjZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDc3BhY2VFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ3NwYWNlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ3NwYWNlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaHJlZicsICdsYWJlbCcsICdsZWFkJywgJ3N0aWNreURpc2FibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWN0YScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZycsICdocmVmJywgJ2xhYmVsJywgJ2xlYWQnLCAnc3RpY2t5RGlzYWJsZWQnXSxcbiAgb3V0cHV0czogWydzdHpoRm9jdXMnLCAnc3R6aEJsdXInLCAnc3R6aENsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDdGEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ3RhRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDdGFTdHpoQ3RhRm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDdGFTdHpoQ3RhQmx1ckV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDdGFTdHpoQ3RhQ2xpY2tFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ3RhRm9jdXNFdmVudCBhcyBJU3R6aEN0YVN0emhDdGFGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ3RhQmx1ckV2ZW50IGFzIElTdHpoQ3RhU3R6aEN0YUJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEN0YUNsaWNrRXZlbnQgYXMgSVN0emhDdGFTdHpoQ3RhQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDdGEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDdGEge1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ3RhU3R6aEN0YUZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDdGFTdHpoQ3RhQmx1ckV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDdGFTdHpoQ3RhQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiaWdMYWJlbCcsICdjb2x1bW5zJywgJ2NvbHVtbnNMYXJnZScsICdjb2x1bW5zTWVkaXVtJywgJ2NvbHVtbnNTbWFsbCcsICdjb2x1bW5zVWx0cmEnLCAnZGlyZWN0aW9uJywgJ2RpcmVjdGlvbkxhcmdlJywgJ2RpcmVjdGlvbk1lZGl1bScsICdkaXJlY3Rpb25TbWFsbCcsICdkaXJlY3Rpb25VbHRyYScsICdpdGVtcycsICd2YXJpYW50JywgJ3ZlcnRpY2FsR2FwJ10sXG4gIG1ldGhvZHM6IFsnZ2V0Q3VycmVudERpcmVjdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kYXRhbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmlnTGFiZWwnLCAnY29sdW1ucycsICdjb2x1bW5zTGFyZ2UnLCAnY29sdW1uc01lZGl1bScsICdjb2x1bW5zU21hbGwnLCAnY29sdW1uc1VsdHJhJywgJ2RpcmVjdGlvbicsICdkaXJlY3Rpb25MYXJnZScsICdkaXJlY3Rpb25NZWRpdW0nLCAnZGlyZWN0aW9uU21hbGwnLCAnZGlyZWN0aW9uVWx0cmEnLCAnaXRlbXMnLCAndmFyaWFudCcsICd2ZXJ0aWNhbEdhcCddLFxuICBvdXRwdXRzOiBbJ3N0emhWYXJpYW50Q2hhbmdlJywgJ3N0emhCaWdMYWJlbENoYW5nZScsICdzdHpoRGlyZWN0aW9uQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhbGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhEYXRhbGlzdEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoVmFyaWFudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdFZhcmlhbnRDaGFuZ2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQmlnTGFiZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RTdHpoRGF0YWxpc3RCaWdMYWJlbENoYW5nZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhEaXJlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RTdHpoRGF0YWxpc3REaXJlY3Rpb25DaGFuZ2VFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3RWYXJpYW50Q2hhbmdlRXZlbnQgYXMgSVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdFZhcmlhbnRDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGFsaXN0QmlnTGFiZWxDaGFuZ2VFdmVudCBhcyBJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0QmlnTGFiZWxDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGFsaXN0RGlyZWN0aW9uQ2hhbmdlRXZlbnQgYXMgSVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdERpcmVjdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGFsaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0YWxpc3Qge1xuICAvKipcbiAgICogVmFyaWFudCBhdHRyaWJ1dGUgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoVmFyaWFudENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RTdHpoRGF0YWxpc3RWYXJpYW50Q2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJpZyBsYWJlbCBhdHRyaWJ1dGUgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQmlnTGFiZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0QmlnTGFiZWxDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRGlyZWN0aW9uIGF0dHJpYnV0ZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhEaXJlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0RGlyZWN0aW9uQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlFeHBhbmRlZCcsICdkb3dubG9hZCcsICdoYXNOZXN0ZWQnLCAnaHJlZicsICdpY29uJywgJ2ljb25IcmVmJywgJ2ljb25MYWJlbCcsICdpY29uUG9zaXRpb24nLCAnaWNvblRvb2x0aXAnLCAnbGFiZWwnLCAnbGVhZGluZ0ljb24nLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAncmVhZHNwZWFrZXJIcmVmJywgJ3JlYWRzcGVha2VyTGFiZWwnLCAncmVsJywgJ3N0YXR1c0xhYmVsJywgJ3N0YXR1c1R5cGUnLCAndGFyZ2V0JywgJ3ZhbHVlJywgJ3ZhbHVlVHJ1bmNhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlFeHBhbmRlZCcsICdkb3dubG9hZCcsICdoYXNOZXN0ZWQnLCAnaHJlZicsICdpY29uJywgJ2ljb25IcmVmJywgJ2ljb25MYWJlbCcsICdpY29uUG9zaXRpb24nLCAnaWNvblRvb2x0aXAnLCAnbGFiZWwnLCAnbGVhZGluZ0ljb24nLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAncmVhZHNwZWFrZXJIcmVmJywgJ3JlYWRzcGVha2VyTGFiZWwnLCAncmVsJywgJ3N0YXR1c0xhYmVsJywgJ3N0YXR1c1R5cGUnLCAndGFyZ2V0JywgJ3ZhbHVlJywgJ3ZhbHVlVHJ1bmNhdGUnXSxcbiAgb3V0cHV0czogWydzdHpoSXRlbUFjdGlvbkNsaWNrJywgJ3N0emhDbGljayddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0YWxpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aERhdGFsaXN0SXRlbUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoSXRlbUFjdGlvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFsaXN0SXRlbVN0emhEYXRhbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbGlzdEl0ZW1TdHpoRGF0YWxpc3RJdGVtQ2xpY2tFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFsaXN0SXRlbVN0emhEYXRhbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3RJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFsaXN0SXRlbVN0emhEYXRhbGlzdEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGFsaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGFsaXN0SXRlbSB7XG4gIC8qKlxuICAgKiBJdGVtIGFjdGlvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1BY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RJdGVtU3R6aERhdGFsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RJdGVtU3R6aERhdGFsaXN0SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YW1lc3NhZ2VsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhbWVzc2FnZWxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoRGF0YW1lc3NhZ2VsaXN0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGFtZXNzYWdlbGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGFtZXNzYWdlbGlzdCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhY3Rpb25zJywgJ2FuYWx5dGljc0lkJywgJ2Rlc2NyaXB0aW9uJywgJ2hlYWRpbmcnLCAnaHJlZicsICdpY29uJywgJ2xvYWRpbmdTdGF0dXMnLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVsJywgJ3RhZ3MnLCAndGFyZ2V0JywgJ3VucmVhZCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kYXRhbWVzc2FnZWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aW9ucycsICdhbmFseXRpY3NJZCcsICdkZXNjcmlwdGlvbicsICdoZWFkaW5nJywgJ2hyZWYnLCAnaWNvbicsICdsb2FkaW5nU3RhdHVzJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ25vbkludGVyYWN0aXZlJywgJ3JlbCcsICd0YWdzJywgJ3RhcmdldCcsICd1bnJlYWQnXSxcbiAgb3V0cHV0czogWydzdHpoQ2xpY2snLCAnc3R6aEFjdGlvbkNsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhbWVzc2FnZWxpc3RJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1FbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUNsaWNrRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEFjdGlvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1DbGlja0V2ZW50IGFzIElTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50IGFzIElTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRhbWVzc2FnZWxpc3RJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbSB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBBY3Rpb24gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhBY3Rpb25DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYXB0aW9uJywgJ2NvbHVtbnMnLCAnY3N2RHluYW1pY1R5cGluZycsICdjc3ZIZWFkZXInLCAnY3N2VXJsJywgJ2Rpc2FibGVNaW5XaWR0aCcsICdoaWRlQ29sdW1uSGVhZGluZ3MnLCAnaGlkZVNlYXJjaCcsICdpZEZpZWxkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdwYWdlJywgJ3BhZ2VTaXplJywgJ3Jvd0hlYWRlckZpZWxkJywgJ3Jvd3MnLCAnc2hvd0xpc3QnLCAnc29ydEJ5JywgJ3NvcnREaXJlY3Rpb24nLCAndGFibGVMYXlvdXQnXSxcbiAgbWV0aG9kczogWyd0b2dnbGVTb3J0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGF0YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FwdGlvbicsICdjb2x1bW5zJywgJ2NzdkR5bmFtaWNUeXBpbmcnLCAnY3N2SGVhZGVyJywgJ2NzdlVybCcsICdkaXNhYmxlTWluV2lkdGgnLCAnaGlkZUNvbHVtbkhlYWRpbmdzJywgJ2hpZGVTZWFyY2gnLCAnaWRGaWVsZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAncGFnZScsICdwYWdlU2l6ZScsICdyb3dIZWFkZXJGaWVsZCcsICdyb3dzJywgJ3Nob3dMaXN0JywgJ3NvcnRCeScsICdzb3J0RGlyZWN0aW9uJywgJ3RhYmxlTGF5b3V0J10sXG4gIG91dHB1dHM6IFsnc3R6aFJvd0NsaWNrJywgJ3N0emhDZWxsQ2xpY2snLCAnc3R6aEhlYWRpbmdDZWxsQ2xpY2snLCAnc3R6aFNvcnRDbGljaycsICdzdHpoU29ydEJ5Q2hhbmdlJywgJ3N0emhTb3J0RGlyZWN0aW9uQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRhdGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoRGF0YXRhYmxlRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhSb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlUm93Q2xpY2tFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2VsbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoSGVhZGluZ0NlbGxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlSGVhZGluZ0NlbGxDbGlja0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhTb3J0Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnRDbGlja0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhTb3J0QnlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhTb3J0RGlyZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVTb3J0RGlyZWN0aW9uQ2hhbmdlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZVJvd0NsaWNrRXZlbnQgYXMgSVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlUm93Q2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZUNlbGxDbGlja0V2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZUNlbGxDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YXRhYmxlSGVhZGluZ0NlbGxDbGlja0V2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZUhlYWRpbmdDZWxsQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZVNvcnRDbGlja0V2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnRDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YXRhYmxlU29ydEJ5Q2hhbmdlRXZlbnQgYXMgSVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlU29ydEJ5Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVTb3J0RGlyZWN0aW9uQ2hhbmdlRXZlbnQgYXMgSVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlU29ydERpcmVjdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGF0YWJsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGF0YWJsZSB7XG4gIC8qKlxuICAgKiBEYXRhdGFibGUgcm93IGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoUm93Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVSb3dDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBEYXRhdGFibGUgY2VsbCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aENlbGxDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZUNlbGxDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBEYXRhdGFibGUgaGVhZGluZyBjZWxsIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSGVhZGluZ0NlbGxDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZUhlYWRpbmdDZWxsQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRGF0YXRhYmxlIHNvcnQgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhTb3J0Q2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVTb3J0Q2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRGF0YXRhYmxlIHNvcnQgYnkgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoU29ydEJ5Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlU29ydEJ5Q2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGF0YWJsZSBzb3J0IGRpcmVjdGlvbiBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhTb3J0RGlyZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlU29ydERpcmVjdGlvbkNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NhbGVuZGFySXNEYXRlRGlzYWJsZWQnLCAnY2FsZW5kYXJNYXgnLCAnY2FsZW5kYXJNaW4nLCAnZGF0ZUFkYXB0ZXInLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW5saW5lJywgJ2ludGVybmFsRGF0ZUFkYXB0ZXInLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0RGF0ZScsICdnZXRQb3BvdmVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGVwaWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhbGVuZGFySXNEYXRlRGlzYWJsZWQnLCAnY2FsZW5kYXJNYXgnLCAnY2FsZW5kYXJNaW4nLCAnZGF0ZUFkYXB0ZXInLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW5saW5lJywgJ2ludGVybmFsRGF0ZUFkYXB0ZXInLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnc3R6aENoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0ZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhEYXRlcGlja2VyRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0ZXBpY2tlclN0emhEYXRlcGlja2VyQ2hhbmdlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERhdGVwaWNrZXJDaGFuZ2VFdmVudCBhcyBJU3R6aERhdGVwaWNrZXJTdHpoRGF0ZXBpY2tlckNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGVwaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRlcGlja2VyIHtcbiAgLyoqXG4gICAqIERhdGVwaWNrZXIgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRlcGlja2VyU3R6aERhdGVwaWNrZXJDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ3JhbmdlTGlua3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0ZXJhbmdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ3JhbmdlTGlua3MnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERhdGVyYW5nZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhEYXRlcmFuZ2VFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0ZXJhbmdlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0ZXJhbmdlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ29wZW4nXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRldGFpbHMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ29wZW4nXSxcbiAgb3V0cHV0czogWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEZXRhaWxzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aERldGFpbHNFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aE9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtT3BlbkV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhPcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtT3BlbmVkRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudCBhcyBJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudCBhcyBJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQgYXMgSVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50IGFzIElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGV0YWlscyBleHRlbmRzIENvbXBvbmVudHMuU3R6aERldGFpbHMge1xuICAvKipcbiAgICogT3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudD4+O1xuICAvKipcbiAgICogT3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5Um9sZScsICdjbG9zZUFuYWx5dGljc0lkJywgJ2Nsb3NlT25CYWNrZHJvcENsaWNrJywgJ2Nsb3NlT25Fc2NhcGVLZXknLCAnaGVhZGluZycsICdoaWRlQ2xvc2UnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAnc2l6ZScsICdzdGF5J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRpYWxvZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeVJvbGUnLCAnY2xvc2VBbmFseXRpY3NJZCcsICdjbG9zZU9uQmFja2Ryb3BDbGljaycsICdjbG9zZU9uRXNjYXBlS2V5JywgJ2hlYWRpbmcnLCAnaGlkZUNsb3NlJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3NpemUnLCAnc3RheSddLFxuICBvdXRwdXRzOiBbJ3N0emhPcGVuJywgJ3N0emhDbG9zZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGlhbG9nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aERpYWxvZ0VsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoT3BlbiA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaWFsb2dTdHpoRGlhbG9nT3BlbkV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaWFsb2dTdHpoRGlhbG9nQ2xvc2VFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRGlhbG9nT3BlbkV2ZW50IGFzIElTdHpoRGlhbG9nU3R6aERpYWxvZ09wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERpYWxvZ0Nsb3NlRXZlbnQgYXMgSVN0emhEaWFsb2dTdHpoRGlhbG9nQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEaWFsb2cgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEaWFsb2cge1xuICAvKipcbiAgICogRGlhbG9nIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaWFsb2dTdHpoRGlhbG9nT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaWFsb2cgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlhbG9nU3R6aERpYWxvZ0Nsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2VLZXknLCAnaGlkZUNsb3NlJywgJ2luaXRpYWxPcGVuQW5pbWF0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRpc3R1cmJlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xvc2VLZXknLCAnaGlkZUNsb3NlJywgJ2luaXRpYWxPcGVuQW5pbWF0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJ10sXG4gIG91dHB1dHM6IFsnc3R6aE9wZW4nLCAnc3R6aE9wZW5lZCcsICdzdHpoQ2xvc2UnLCAnc3R6aENsb3NlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGlzdHVyYmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aERpc3R1cmJlckVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoT3BlbiA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyT3BlbkV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhPcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlck9wZW5lZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyQ2xvc2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJDbG9zZWRFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRGlzdHVyYmVyT3BlbkV2ZW50IGFzIElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlck9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERpc3R1cmJlck9wZW5lZEV2ZW50IGFzIElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlck9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGlzdHVyYmVyQ2xvc2VFdmVudCBhcyBJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGlzdHVyYmVyQ2xvc2VkRXZlbnQgYXMgSVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGlzdHVyYmVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGlzdHVyYmVyIHtcbiAgLyoqXG4gICAqIERpc3R1cmJlciBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlck9wZW5FdmVudD4+O1xuICAvKipcbiAgICogRGlzdHVyYmVyIG9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlck9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXN0dXJiZXIgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlckNsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpc3R1cmJlciBjbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJDbG9zZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYWxsb3dFbXB0eU9wdGlvbicsICdjbG9zZUFmdGVyU2VsZWN0JywgJ2RlZmF1bHRJdGVtcycsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ljb24nLCAnaWNvbkFuZ2xlJywgJ2lubGluZScsICdpbnZhbGlkJywgJ2lzT3BlbicsICdpdGVtcycsICdsYWJlbCcsICdsYWJlbEZpZWxkJywgJ2xhYmVsSGlkZGVuJywgJ2xvYWQnLCAnbG9hZFRocm90dGxlJywgJ2xvY2FsaXphdGlvbicsICdsb2NrT3B0Z3JvdXBPcmRlcicsICdtYXhPcHRpb25zJywgJ21pbkNoYXJhY3RlcnMnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdub0JhY2tzcGFjZURlbGV0ZScsICdub0xhYmVsVHJ1bmNhdGUnLCAnbm9TZWFyY2gnLCAnbm9XcmFwJywgJ29wZW4nLCAnb3Blbk9uRm9jdXMnLCAnb3B0Z3JvdXBGaWVsZCcsICdvcHRncm91cExhYmVsRmllbGQnLCAnb3B0Z3JvdXBWYWx1ZUZpZWxkJywgJ29wdGdyb3VwcycsICdvcHRpb25zJywgJ3BvcG92ZXJGdWxsd2lkdGgnLCAncG9wb3ZlclBsYWNlbWVudCcsICdwcmVsb2FkJywgJ3JlcXVpcmVkJywgJ3NlYXJjaENvbmp1bmN0aW9uJywgJ3NlYXJjaEZpZWxkJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0cmFuc2Zvcm1Mb2FkUXVlcnknLCAndmFsdWUnLCAndmFsdWVGaWVsZCcsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnZ2V0VmFsdWUnLCAnc2V0VmFsdWUnLCAncmVzZXRMb2FkZWRTZWFyY2hlcycsICdnZXRMb2FkZWRTZWFyY2hlcycsICdnZXRJdGVtcycsICdsb2FkSXRlbXMnLCAnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRyb3Bkb3duJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYWxsb3dFbXB0eU9wdGlvbicsICdjbG9zZUFmdGVyU2VsZWN0JywgJ2RlZmF1bHRJdGVtcycsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ljb24nLCAnaWNvbkFuZ2xlJywgJ2lubGluZScsICdpbnZhbGlkJywgJ2lzT3BlbicsICdpdGVtcycsICdsYWJlbCcsICdsYWJlbEZpZWxkJywgJ2xhYmVsSGlkZGVuJywgJ2xvYWQnLCAnbG9hZFRocm90dGxlJywgJ2xvY2FsaXphdGlvbicsICdsb2NrT3B0Z3JvdXBPcmRlcicsICdtYXhPcHRpb25zJywgJ21pbkNoYXJhY3RlcnMnLCAnbXVsdGlwbGUnLCAnbmFtZScsICdub0JhY2tzcGFjZURlbGV0ZScsICdub0xhYmVsVHJ1bmNhdGUnLCAnbm9TZWFyY2gnLCAnbm9XcmFwJywgJ29wZW4nLCAnb3Blbk9uRm9jdXMnLCAnb3B0Z3JvdXBGaWVsZCcsICdvcHRncm91cExhYmVsRmllbGQnLCAnb3B0Z3JvdXBWYWx1ZUZpZWxkJywgJ29wdGdyb3VwcycsICdvcHRpb25zJywgJ3BvcG92ZXJGdWxsd2lkdGgnLCAncG9wb3ZlclBsYWNlbWVudCcsICdwcmVsb2FkJywgJ3JlcXVpcmVkJywgJ3NlYXJjaENvbmp1bmN0aW9uJywgJ3NlYXJjaEZpZWxkJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0cmFuc2Zvcm1Mb2FkUXVlcnknLCAndmFsdWUnLCAndmFsdWVGaWVsZCcsICd2YXJpYW50J10sXG4gIG91dHB1dHM6IFsnc3R6aENoYW5nZScsICdzdHpoSXRlbUFkZCcsICdzdHpoSXRlbVJlbW92ZScsICdzdHpoT3B0aW9uQWRkJywgJ3N0emhPcHRpb25SZW1vdmUnLCAnc3R6aE9wZW4nLCAnc3R6aENsb3NlJywgJ3N0emhGb2N1cycsICdzdHpoQmx1cicsICdzdHpoSW5pdCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRHJvcGRvd24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoRHJvcGRvd25FbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bkNoYW5nZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhJdGVtQWRkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duSXRlbUFkZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhJdGVtUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duSXRlbVJlbW92ZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhPcHRpb25BZGQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25PcHRpb25BZGRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoT3B0aW9uUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3B0aW9uUmVtb3ZlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aE9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25PcGVuRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3dDbG9zZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bkZvY3VzRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25CbHVyRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEluaXQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0luaXRFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25DaGFuZ2VFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bkl0ZW1BZGRFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duSXRlbUFkZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25JdGVtUmVtb3ZlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1SZW1vdmVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duT3B0aW9uQWRkRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wdGlvbkFkZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25PcHRpb25SZW1vdmVFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3B0aW9uUmVtb3ZlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bk9wZW5FdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd0Nsb3NlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93Q2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duRm9jdXNFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duQmx1ckV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25CbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93SW5pdEV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0luaXRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEcm9wZG93biBleHRlbmRzIENvbXBvbmVudHMuU3R6aERyb3Bkb3duIHtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25DaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gaXRlbSBhZGRlZCBldmVudFxuICAgKi9cbiAgc3R6aEl0ZW1BZGQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duSXRlbUFkZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBpdGVtIHJlbW92ZWQgZXZlbnRcbiAgICovXG4gIHN0emhJdGVtUmVtb3ZlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1SZW1vdmVFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gb3B0aW9uIGFkZGVkIGV2ZW50XG4gICAqL1xuICBzdHpoT3B0aW9uQWRkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wdGlvbkFkZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBvcHRpb24gcmVtb3ZlZCBldmVudFxuICAgKi9cbiAgc3R6aE9wdGlvblJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25PcHRpb25SZW1vdmVFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93Q2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gZm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25CbHVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoSW5pdDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0luaXRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1lZGl0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhFZGl0b3Ige1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoRWRpdG9yRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEVkaXRvciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEVkaXRvciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1ldmVudGRhdGEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhYmVsJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhFdmVudGRhdGEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoRXZlbnRkYXRhRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEV2ZW50ZGF0YSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEV2ZW50ZGF0YSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYWxlbmRhckxhYmVsJywgJ2NhbGVuZGFyVXJsJywgJ2RhdGVBZGFwdGVyJywgJ2VuZCcsICdpdGVtcycsICdpdGVtc1NvcnREaXJlY3Rpb24nLCAnbG9jYWxpemF0aW9uJywgJ21vbnRoSGVhZGluZ0xldmVsJywgJ3N0YXJ0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWV2ZW50aW5mbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FsZW5kYXJMYWJlbCcsICdjYWxlbmRhclVybCcsICdkYXRlQWRhcHRlcicsICdlbmQnLCAnaXRlbXMnLCAnaXRlbXNTb3J0RGlyZWN0aW9uJywgJ2xvY2FsaXphdGlvbicsICdtb250aEhlYWRpbmdMZXZlbCcsICdzdGFydCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRXZlbnRpbmZvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEV2ZW50aW5mb0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhFdmVudGluZm8gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhFdmVudGluZm8ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnbG9jYWxpemF0aW9uJywgJ25vSXRlbXNMaW5rJywgJ25vSXRlbXNUZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWZlZWRyZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2xvY2FsaXphdGlvbicsICdub0l0ZW1zTGluaycsICdub0l0ZW1zVGV4dCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRmVlZHJlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhGZWVkcmVhZGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZlZWRyZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGZWVkcmVhZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xpbmsnLCAndGFyZ2V0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZmVlZHJlYWRlci1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsaW5rJywgJ3RhcmdldCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhGZWVkcmVhZGVySXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhGZWVkcmVhZGVySXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhGZWVkcmVhZGVySXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEZlZWRyZWFkZXJJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVMZWdlbmQnLCAnbGVnZW5kJywgJ2xlZ2VuZEN1cnZlJywgJ2xlZ2VuZExldmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWZpZWxkc2V0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRlTGVnZW5kJywgJ2xlZ2VuZCcsICdsZWdlbmRDdXJ2ZScsICdsZWdlbmRMZXZlbCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRmllbGRzZXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoRmllbGRzZXRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRmllbGRzZXQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGaWVsZHNldCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYXB0aW9uJywgJ2NvcHlyaWdodCcsICdjb3VudGVyJywgJ2Z1bGx3aWR0aCcsICdoZWFkaW5nJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWZpZ3VyZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2FwdGlvbicsICdjb3B5cmlnaHQnLCAnY291bnRlcicsICdmdWxsd2lkdGgnLCAnaGVhZGluZyddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRmlndXJlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEZpZ3VyZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhGaWd1cmUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGaWd1cmUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbWluaW1hbEVkZ2VTcGFjZSddLFxuICBtZXRob2RzOiBbJ3JlcG9zaXRpb24nLCAnYWN0aXZhdGUnLCAnZGVhY3RpdmF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1mbHlpbmdmb2N1cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbWluaW1hbEVkZ2VTcGFjZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRmx5aW5nZm9jdXMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoRmx5aW5nZm9jdXNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRmx5aW5nZm9jdXMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGbHlpbmdmb2N1cyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb3B5cmlnaHQnLCAnbG9jYWxpemF0aW9uJywgJ21haW5VcmwnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1mb290ZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvcHlyaWdodCcsICdsb2NhbGl6YXRpb24nLCAnbWFpblVybCcsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhGb290ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoRm9vdGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZvb3RlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEZvb3RlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYXJvdXNlbEF1dG9wbGF5JywgJ2Nhcm91c2VsQXV0b3BsYXlUaW1lb3V0JywgJ2Nhcm91c2VsRGlzYWJsZWQnLCAnY2Fyb3VzZWxXaXRoVHJhY2snLCAnZXhjbHVkZUZpcnN0SW1hZ2UnLCAnaW1hZ2VzJywgJ2l0ZW1FbGVtZW50JywgJ2xvY2FsaXphdGlvbicsICdyYXRpbycsICdyYXRpb0xhcmdlJywgJ3JhdGlvTWVkaXVtJywgJ3JhdGlvU21hbGwnLCAncmF0aW9VbHRyYScsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydvcGVuTGlnaHRib3gnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZ2FsbGVyeScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2Fyb3VzZWxBdXRvcGxheScsICdjYXJvdXNlbEF1dG9wbGF5VGltZW91dCcsICdjYXJvdXNlbERpc2FibGVkJywgJ2Nhcm91c2VsV2l0aFRyYWNrJywgJ2V4Y2x1ZGVGaXJzdEltYWdlJywgJ2ltYWdlcycsICdpdGVtRWxlbWVudCcsICdsb2NhbGl6YXRpb24nLCAncmF0aW8nLCAncmF0aW9MYXJnZScsICdyYXRpb01lZGl1bScsICdyYXRpb1NtYWxsJywgJ3JhdGlvVWx0cmEnLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcycsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhHYWxsZXJ5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEdhbGxlcnlFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoR2FsbGVyeSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEdhbGxlcnkge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWwnLCAnYXZhaWxhYmxlVGFncycsICdiYXNlVXJsT3ZlcnJpZGUnLCAnY2VudGVyTWFya2VyJywgJ2hlYWRpbmcnLCAnbG9jYXRpb25Db250cm9sJywgJ21hcERhdGFVcmwnLCAncGluY2hSb3RhdGVUaHJlc2hvbGQnLCAncG9pRGF0YVVybCcsICdyZXNldFRhZycsICdzZWFyY2hJbmRleEZpZWxkcycsICdzZWFyY2hJbmRleElkRmllbGQnLCAnem9vbScsICd6b29tTG9jYXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZ2VvLXJlZi1kYXRhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbCcsICdhdmFpbGFibGVUYWdzJywgJ2Jhc2VVcmxPdmVycmlkZScsICdjZW50ZXJNYXJrZXInLCAnaGVhZGluZycsICdsb2NhdGlvbkNvbnRyb2wnLCAnbWFwRGF0YVVybCcsICdwaW5jaFJvdGF0ZVRocmVzaG9sZCcsICdwb2lEYXRhVXJsJywgJ3Jlc2V0VGFnJywgJ3NlYXJjaEluZGV4RmllbGRzJywgJ3NlYXJjaEluZGV4SWRGaWVsZCcsICd6b29tJywgJ3pvb21Mb2NhdGlvbiddLFxuICBvdXRwdXRzOiBbJ3N0emhPdmVybGF5Q2xvc2VDbGljayddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoR2VvUmVmRGF0YSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhHZW9SZWZEYXRhRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhPdmVybGF5Q2xvc2VDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhHZW9SZWZEYXRhU3R6aEdlb1JlZkRhdGFPdmVybGF5Q2xvc2VDbGlja0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhHZW9SZWZEYXRhT3ZlcmxheUNsb3NlQ2xpY2tFdmVudCBhcyBJU3R6aEdlb1JlZkRhdGFTdHpoR2VvUmVmRGF0YU92ZXJsYXlDbG9zZUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoR2VvUmVmRGF0YSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEdlb1JlZkRhdGEge1xuICAvKipcbiAgICogT3ZlcmxheSBjbG9zZSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aE92ZXJsYXlDbG9zZUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhHZW9SZWZEYXRhU3R6aEdlb1JlZkRhdGFPdmVybGF5Q2xvc2VDbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hpZGRlblRpdGxlJywgJ2hpZGVDbG9zZScsICdsb2NhbGl6YXRpb24nLCAnbWFpblRpdGxlJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWdoZXR0b2JveCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaGlkZGVuVGl0bGUnLCAnaGlkZUNsb3NlJywgJ2xvY2FsaXphdGlvbicsICdtYWluVGl0bGUnXSxcbiAgb3V0cHV0czogWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEdoZXR0b2JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhHaGV0dG9ib3hFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aE9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoR2hldHRvYm94U3R6aEdoZXR0b2JveE9wZW5FdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoR2hldHRvYm94U3R6aEdoZXR0b2JveENsb3NlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEdoZXR0b2JveE9wZW5FdmVudCBhcyBJU3R6aEdoZXR0b2JveFN0emhHaGV0dG9ib3hPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhHaGV0dG9ib3hDbG9zZUV2ZW50IGFzIElTdHpoR2hldHRvYm94U3R6aEdoZXR0b2JveENsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoR2hldHRvYm94IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoR2hldHRvYm94IHtcbiAgLyoqXG4gICAqIEdoZXR0b2JveCBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoR2hldHRvYm94U3R6aEdoZXR0b2JveE9wZW5FdmVudD4+O1xuICAvKipcbiAgICogR2hldHRvYm94IGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEdoZXR0b2JveFN0emhHaGV0dG9ib3hDbG9zZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwcE5hdklkJywgJ2FwcE5hdkl0ZW1zJywgJ2hpZGVNZXRhYmFyJywgJ2hyZWYnLCAnbGFuZ3VhZ2VBY3RpdmUnLCAnbGFuZ3VhZ2VJZCcsICdsYW5ndWFnZVByZXZlbnRVcmxjaGFuZ2UnLCAnbGFuZ3VhZ2VTdGF5JywgJ2xhbmd1YWdlcycsICdsb2NhbGl6YXRpb24nLCAnbG9naW5FcnJvck1lc3NhZ2UnLCAnbG9nb0FuYWx5dGljc0lkJywgJ2xvZ29UeXBlJywgJ21lbnVCYWNrTGFiZWwnLCAnbWVudUlkJywgJ21lbnVJdGVtcycsICdtZXRhbmF2SWQnLCAnbWV0YW5hdkl0ZW1zJywgJ3NlYXJjaEFjdGlvbicsICdzZWFyY2hGaWVsZE5hbWUnLCAnc2VhcmNoSWQnLCAnc2VhcmNoVmFsdWUnLCAnc3RpY2t5JywgJ3VzZXJTcGVjaWZpY01ldGFuYXZJdGVtc0VuZHBvaW50JywgJ3VzZXJTcGVjaWZpY01ldGFuYXZJdGVtc05vdExvZ2dlZEluJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWyd1cGRhdGVQb3NpdGlvbicsICdyZXF1ZXN0VXNlclNwZWNpZmljTWV0YW5hdkl0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWhlYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBwTmF2SWQnLCAnYXBwTmF2SXRlbXMnLCAnaGlkZU1ldGFiYXInLCAnaHJlZicsICdsYW5ndWFnZUFjdGl2ZScsICdsYW5ndWFnZUlkJywgJ2xhbmd1YWdlUHJldmVudFVybGNoYW5nZScsICdsYW5ndWFnZVN0YXknLCAnbGFuZ3VhZ2VzJywgJ2xvY2FsaXphdGlvbicsICdsb2dpbkVycm9yTWVzc2FnZScsICdsb2dvQW5hbHl0aWNzSWQnLCAnbG9nb1R5cGUnLCAnbWVudUJhY2tMYWJlbCcsICdtZW51SWQnLCAnbWVudUl0ZW1zJywgJ21ldGFuYXZJZCcsICdtZXRhbmF2SXRlbXMnLCAnc2VhcmNoQWN0aW9uJywgJ3NlYXJjaEZpZWxkTmFtZScsICdzZWFyY2hJZCcsICdzZWFyY2hWYWx1ZScsICdzdGlja3knLCAndXNlclNwZWNpZmljTWV0YW5hdkl0ZW1zRW5kcG9pbnQnLCAndXNlclNwZWNpZmljTWV0YW5hdkl0ZW1zTm90TG9nZ2VkSW4nLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ3N0emhNZXRhbmF2SXRlbUNsaWNrJywgJ3N0emhNZXRhbmF2SXRlbUNoaWxkQ2xpY2snLCAnc3R6aE1ldGFuYXZJdGVtQnV0dG9uQ2xpY2snLCAnc3R6aE1lbnVJdGVtQ2xpY2snLCAnc3R6aExhbmd1YWdlQ2hhbmdlJywgJ3N0emhTZWFyY2hDaGFuZ2UnLCAnc3R6aFNlYXJjaENoYW5nZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhlYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhIZWFkZXJFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aE1ldGFuYXZJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlck1ldGFuYXZJdGVtQ2xpY2tFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoTWV0YW5hdkl0ZW1DaGlsZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNoaWxkQ2xpY2tFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoTWV0YW5hdkl0ZW1CdXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1CdXR0b25DbGlja0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhNZW51SXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZW51SXRlbUNsaWNrRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aExhbmd1YWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJMYW5ndWFnZUNoYW5nZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhTZWFyY2hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlclNlYXJjaENoYW5nZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhTZWFyY2hDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJTZWFyY2hDaGFuZ2VkRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlck1ldGFuYXZJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJNZXRhbmF2SXRlbUNoaWxkQ2xpY2tFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNoaWxkQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlck1ldGFuYXZJdGVtQnV0dG9uQ2xpY2tFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUJ1dHRvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJNZW51SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyTWVudUl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyTGFuZ3VhZ2VDaGFuZ2VFdmVudCBhcyBJU3R6aEhlYWRlclN0emhIZWFkZXJMYW5ndWFnZUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJTZWFyY2hDaGFuZ2VkRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhlYWRlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhlYWRlciB7XG4gIC8qKlxuICAgKiBNZXRhbmF2IGl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhNZXRhbmF2SXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBNZXRhbmF2IGl0ZW0gY2hpbGQgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhNZXRhbmF2SXRlbUNoaWxkQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNoaWxkQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogTWV0YW5hdiBpdGVtIGJ1dHRvbiBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aE1ldGFuYXZJdGVtQnV0dG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUJ1dHRvbkNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE1ldGFuYXYgaXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aE1lbnVJdGVtQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZW51SXRlbUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIExhbmd1YWdlIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aExhbmd1YWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTGFuZ3VhZ2VDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogU2VhcmNoIGlucHV0IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFNlYXJjaENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlclNlYXJjaENoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBTZWFyY2ggaW5wdXQgY2hhbmdlZCBldmVudFxuICAgKi9cbiAgc3R6aFNlYXJjaENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJTZWFyY2hDaGFuZ2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY3VydmUnLCAnaHRtbENvbnRlbnQnLCAnbGV2ZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaGVhZGluZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY3VydmUnLCAnaHRtbENvbnRlbnQnLCAnbGV2ZWwnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhlYWRpbmcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoSGVhZGluZ0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhIZWFkaW5nIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSGVhZGluZyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwbGFjZWhvbGRlcicsICdzZWFyY2hBY3Rpb24nLCAnc2VhcmNoRmllbGROYW1lJywgJ3NlYXJjaElkJywgJ3NlYXJjaFZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWhvbWVwYWdlLXNlYXJjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncGxhY2Vob2xkZXInLCAnc2VhcmNoQWN0aW9uJywgJ3NlYXJjaEZpZWxkTmFtZScsICdzZWFyY2hJZCcsICdzZWFyY2hWYWx1ZSddLFxuICBvdXRwdXRzOiBbJ3N0emhTZWFyY2hDaGFuZ2UnLCAnc3R6aFNlYXJjaENoYW5nZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhvbWVwYWdlU2VhcmNoIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEhvbWVwYWdlU2VhcmNoRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhTZWFyY2hDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSG9tZXBhZ2VTZWFyY2hTdHpoSG9tZXBhZ2VTZWFyY2hTZWFyY2hDaGFuZ2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoU2VhcmNoQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIb21lcGFnZVNlYXJjaFN0emhIb21lcGFnZVNlYXJjaFNlYXJjaENoYW5nZWRFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoSG9tZXBhZ2VTZWFyY2hTZWFyY2hDaGFuZ2VFdmVudCBhcyBJU3R6aEhvbWVwYWdlU2VhcmNoU3R6aEhvbWVwYWdlU2VhcmNoU2VhcmNoQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIb21lcGFnZVNlYXJjaFNlYXJjaENoYW5nZWRFdmVudCBhcyBJU3R6aEhvbWVwYWdlU2VhcmNoU3R6aEhvbWVwYWdlU2VhcmNoU2VhcmNoQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhvbWVwYWdlU2VhcmNoIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSG9tZXBhZ2VTZWFyY2gge1xuICAvKipcbiAgICogU2VhcmNoIGlucHV0IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFNlYXJjaENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSG9tZXBhZ2VTZWFyY2hTdHpoSG9tZXBhZ2VTZWFyY2hTZWFyY2hDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogU2VhcmNoIGlucHV0IGNoYW5nZWQgZXZlbnRcbiAgICovXG4gIHN0emhTZWFyY2hDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIb21lcGFnZVNlYXJjaFN0emhIb21lcGFnZVNlYXJjaFNlYXJjaENoYW5nZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydtb3N0c2VhcmNoZWRJdGVtcycsICd0b3BuZXdzSXRlbXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaG9tZXBhZ2Utc2VydmljZS1oaWdobGlnaHRzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydtb3N0c2VhcmNoZWRJdGVtcycsICd0b3BuZXdzSXRlbXMnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhvbWVwYWdlU2VydmljZUhpZ2hsaWdodHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoSG9tZXBhZ2VTZXJ2aWNlSGlnaGxpZ2h0c0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhIb21lcGFnZVNlcnZpY2VIaWdobGlnaHRzIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSG9tZXBhZ2VTZXJ2aWNlSGlnaGxpZ2h0cyB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1ocicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSHIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoSHJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSHIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhIciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcm91bmQnLCAnYXJvdW5kTGVmdCcsICdhcm91bmRSaWdodCcsICdib3JkZXInLCAnY3VydmUnLCAnaXRlbXMnLCAnanVzdGlmeScsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaHNwYWNlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcm91bmQnLCAnYXJvdW5kTGVmdCcsICdhcm91bmRSaWdodCcsICdib3JkZXInLCAnY3VydmUnLCAnaXRlbXMnLCAnanVzdGlmeScsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhzcGFjZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhIc3BhY2VFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSHNwYWNlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSHNwYWNlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2Vycm9yY29kZScsICdoZWFkaW5nJywgJ2hyZWZCYWNrJywgJ2hyZWZTdGFydCcsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaHR0cC1lcnJvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnZXJyb3Jjb2RlJywgJ2hlYWRpbmcnLCAnaHJlZkJhY2snLCAnaHJlZlN0YXJ0JywgJ2xvY2FsaXphdGlvbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSHR0cEVycm9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEh0dHBFcnJvckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhIdHRwRXJyb3IgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhIdHRwRXJyb3Ige31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeVRpdGxlJywgJ25hbWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaWNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeVRpdGxlJywgJ25hbWUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEljb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoSWNvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhJY29uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSWNvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbGxvdycsICdjb29raWUnLCAnY29va2llQ29uZmlybUljb24nLCAnY29va2llQ29uZmlybUxhYmVsJywgJ2Nvb2tpZUNvbmZpcm1UZXh0JywgJ2Nvb2tpZUV4cGlyZXMnLCAnaGVpZ2h0JywgJ2lmcmFtZUVycm9yVGV4dCcsICdpZnJhbWVJZCcsICdpZnJhbWVSZXNpemVySGVpZ2h0Q29ycmVjdGlvbicsICdpZnJhbWVSZXNpemVyU2Vjb25kbGV2ZWxEb21haW4nLCAnaWZyYW1lUmVzaXplclZhcmlhbnQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmlld0ljb24nLCAncHJldmlld0xhYmVsJywgJ3JlZmVycmVycG9saWN5JywgJ3NhbmRib3gnLCAnc2tpcFByZXZpZXcnLCAnc2tpcFByZXZpZXdJZkNvb2tpZUFjY2VwdGVkJywgJ3NyYycsICd3aWR0aCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1pZnJhbWUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FsbG93JywgJ2Nvb2tpZScsICdjb29raWVDb25maXJtSWNvbicsICdjb29raWVDb25maXJtTGFiZWwnLCAnY29va2llQ29uZmlybVRleHQnLCAnY29va2llRXhwaXJlcycsICdoZWlnaHQnLCAnaWZyYW1lRXJyb3JUZXh0JywgJ2lmcmFtZUlkJywgJ2lmcmFtZVJlc2l6ZXJIZWlnaHRDb3JyZWN0aW9uJywgJ2lmcmFtZVJlc2l6ZXJTZWNvbmRsZXZlbERvbWFpbicsICdpZnJhbWVSZXNpemVyVmFyaWFudCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2aWV3SWNvbicsICdwcmV2aWV3TGFiZWwnLCAncmVmZXJyZXJwb2xpY3knLCAnc2FuZGJveCcsICdza2lwUHJldmlldycsICdza2lwUHJldmlld0lmQ29va2llQWNjZXB0ZWQnLCAnc3JjJywgJ3dpZHRoJ10sXG4gIG91dHB1dHM6IFsnc3R6aFByZXZpZXdTa2lwJywgJ3N0emhWaWV3Q2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJZnJhbWUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoSWZyYW1lRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhQcmV2aWV3U2tpcCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJZnJhbWVTdHpoSWZyYW1lUHJldmlld1NraXBFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoVmlld0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJZnJhbWVTdHpoSWZyYW1lVmlld0NoYW5nZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhJZnJhbWVQcmV2aWV3U2tpcEV2ZW50IGFzIElTdHpoSWZyYW1lU3R6aElmcmFtZVByZXZpZXdTa2lwRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhJZnJhbWVWaWV3Q2hhbmdlRXZlbnQgYXMgSVN0emhJZnJhbWVTdHpoSWZyYW1lVmlld0NoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aElmcmFtZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aElmcmFtZSB7XG4gIC8qKlxuICAgKiBQcmV2aWV3IHNraXAgKG9ubHkgZ2V0cyBleGVjdXRlZCBpZiBpdCBnb2VzIGRpcmVjdGx5IHRvIGlmcmFtZSBhbmQgbm90IGNvb2tpZXdhbGwpXG4gICAqL1xuICBzdHpoUHJldmlld1NraXA6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElmcmFtZVN0emhJZnJhbWVQcmV2aWV3U2tpcEV2ZW50Pj47XG4gIC8qKlxuICAgKiBWaWV3IGNoYW5nZVxuICAgKi9cbiAgc3R6aFZpZXdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElmcmFtZVN0emhJZnJhbWVWaWV3Q2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2hpbnRMZWZ0JywgJ2hpbnRSaWdodCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaW1hZ2Vjb21wYXJpc29uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnaGludExlZnQnLCAnaGludFJpZ2h0JywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3N0emhDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEltYWdlY29tcGFyaXNvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhJbWFnZWNvbXBhcmlzb25FbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbWFnZWNvbXBhcmlzb25TdHpoSW1hZ2Vjb21wYXJpc29uQ2hhbmdlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEltYWdlY29tcGFyaXNvbkNoYW5nZUV2ZW50IGFzIElTdHpoSW1hZ2Vjb21wYXJpc29uU3R6aEltYWdlY29tcGFyaXNvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEltYWdlY29tcGFyaXNvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEltYWdlY29tcGFyaXNvbiB7XG5cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW1hZ2Vjb21wYXJpc29uU3R6aEltYWdlY29tcGFyaXNvbkNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhdXRvY29tcGxldGUnLCAnY2xlYXJhYmxlJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2lucHV0bW9kZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWF4bGVuZ3RoJywgJ21pbicsICdtaW5sZW5ndGgnLCAnbXVsdGlsaW5lJywgJ25hbWUnLCAnbm9BdXRvY29tcGxldGUnLCAnbm9MYWJlbFRydW5jYXRlJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3Jvd3MnLCAnc2hvd1NwaW4nLCAnc2l6ZScsICdzdGVwJywgJ3R5cGUnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaW5wdXQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhdXRvY29tcGxldGUnLCAnY2xlYXJhYmxlJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2lucHV0bW9kZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWF4bGVuZ3RoJywgJ21pbicsICdtaW5sZW5ndGgnLCAnbXVsdGlsaW5lJywgJ25hbWUnLCAnbm9BdXRvY29tcGxldGUnLCAnbm9MYWJlbFRydW5jYXRlJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3Jvd3MnLCAnc2hvd1NwaW4nLCAnc2l6ZScsICdzdGVwJywgJ3R5cGUnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydzdHpoQ2hhbmdlJywgJ3N0emhDaGFuZ2VkJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSW5wdXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoSW5wdXRFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbnB1dFN0emhJbnB1dENoYW5nZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElucHV0U3R6aElucHV0Q2hhbmdlZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbnB1dFN0emhJbnB1dEZvY3VzRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW5wdXRTdHpoSW5wdXRCbHVyRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aElucHV0Q2hhbmdlRXZlbnQgYXMgSVN0emhJbnB1dFN0emhJbnB1dENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSW5wdXRDaGFuZ2VkRXZlbnQgYXMgSVN0emhJbnB1dFN0emhJbnB1dENoYW5nZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aElucHV0Rm9jdXNFdmVudCBhcyBJU3R6aElucHV0U3R6aElucHV0Rm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aElucHV0Qmx1ckV2ZW50IGFzIElTdHpoSW5wdXRTdHpoSW5wdXRCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSW5wdXQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhJbnB1dCB7XG4gIC8qKlxuICAgKiBJbnB1dCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElucHV0U3R6aElucHV0Q2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGNoYW5nZWQgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbnB1dFN0emhJbnB1dENoYW5nZWRFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgZm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW5wdXRTdHpoSW5wdXRGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW5wdXRTdHpoSW5wdXRCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaW52ZXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJbnZlcnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoSW52ZXJ0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEludmVydCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEludmVydCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUN1cnJlbnQnLCAnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlEaXNhYmxlZCcsICdhMTF5RXhwYW5kZWQnLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVBvc2l0aW9uJywgJ2JhZGdlVHlwZScsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdmdWxsd2lkdGgnLCAnaGVpZ2h0JywgJ2hyZWYnLCAnaWNvbicsICdpY29uT25seScsICdpY29uUG9zaXRpb24nLCAnbGFiZWwnLCAnbGlua0FjY2Vzc2tleScsICdsaW5rSWQnLCAnbG9jYWxpemF0aW9uJywgJ3JlbCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3RleHRBbGlnbicsICd0eXBlJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlDdXJyZW50JywgJ2ExMXlEZXNjcmliZWRieScsICdhMTF5RGlzYWJsZWQnLCAnYTExeUV4cGFuZGVkJywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VQb3NpdGlvbicsICdiYWRnZVR5cGUnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnZnVsbHdpZHRoJywgJ2hlaWdodCcsICdocmVmJywgJ2ljb24nLCAnaWNvbk9ubHknLCAnaWNvblBvc2l0aW9uJywgJ2xhYmVsJywgJ2xpbmtBY2Nlc3NrZXknLCAnbGlua0lkJywgJ2xvY2FsaXphdGlvbicsICdyZWwnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RhcmdldCcsICd0ZXh0QWxpZ24nLCAndHlwZScsICd2YXJpYW50J10sXG4gIG91dHB1dHM6IFsnc3R6aENsaWNrJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTGluayB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhMaW5rRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhMaW5rU3R6aExpbmtDbGlja0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhMaW5rU3R6aExpbmtGb2N1c0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aExpbmtTdHpoTGlua0JsdXJFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoTGlua0NsaWNrRXZlbnQgYXMgSVN0emhMaW5rU3R6aExpbmtDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoTGlua0ZvY3VzRXZlbnQgYXMgSVN0emhMaW5rU3R6aExpbmtGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoTGlua0JsdXJFdmVudCBhcyBJU3R6aExpbmtTdHpoTGlua0JsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhMaW5rIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTGluayB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhMaW5rU3R6aExpbmtDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhMaW5rU3R6aExpbmtGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTGlua1N0emhMaW5rQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2l0ZW1zJywgJ3BhZGRpbmdCb3R0b20nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbGlua2xpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2l0ZW1zJywgJ3BhZGRpbmdCb3R0b20nXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aExpbmtsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aExpbmtsaXN0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aExpbmtsaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTGlua2xpc3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1saXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWyd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhMaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aExpc3RFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aExpc3Qge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbGlzdC1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhMaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhMaXN0SXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhMaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aExpc3RJdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVMYWJlbCcsICdsYWJlbCcsICdzaXplJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWxvYWRlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUxhYmVsJywgJ2xhYmVsJywgJ3NpemUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aExvYWRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhMb2FkZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTG9hZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTG9hZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVQZXJjZW50JywgJ2xhYmVsJywgJ3BlcmNlbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbG9hZGluZ2JhcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZVBlcmNlbnQnLCAnbGFiZWwnLCAncGVyY2VudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTG9hZGluZ2JhciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhMb2FkaW5nYmFyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aExvYWRpbmdiYXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhMb2FkaW5nYmFyIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW1lbnUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE1lbnUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoTWVudUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhNZW51IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTWVudSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvdW50ZXInLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2xhYmVsJywgJ3NpemUnLCAndGFyZ2V0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbWVudS1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvdW50ZXInLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2xhYmVsJywgJ3NpemUnLCAndGFyZ2V0JywgJ3ZhcmlhbnQnXSxcbiAgb3V0cHV0czogWydzdHpoRm9jdXMnLCAnc3R6aEJsdXInLCAnc3R6aENsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhNZW51SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhNZW51SXRlbUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1Gb2N1c0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtQmx1ckV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZW51SXRlbVN0emhNZW51SXRlbUNsaWNrRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aE1lbnVJdGVtRm9jdXNFdmVudCBhcyBJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE1lbnVJdGVtQmx1ckV2ZW50IGFzIElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1CbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhNZW51SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhNZW51SXRlbVN0emhNZW51SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTWVudUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhNZW51SXRlbSB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZW51SXRlbVN0emhNZW51SXRlbUZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZW51SXRlbVN0emhNZW51SXRlbUJsdXJFdmVudD4+O1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hpZGVDbG9zZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAndHlwZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1tZXNzYWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoaWRlQ2xvc2UnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3R5cGUnXSxcbiAgb3V0cHV0czogWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE1lc3NhZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoTWVzc2FnZUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoT3BlbiA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZXNzYWdlU3R6aE1lc3NhZ2VPcGVuRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lc3NhZ2VTdHpoTWVzc2FnZUNsb3NlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aE1lc3NhZ2VPcGVuRXZlbnQgYXMgSVN0emhNZXNzYWdlU3R6aE1lc3NhZ2VPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhNZXNzYWdlQ2xvc2VFdmVudCBhcyBJU3R6aE1lc3NhZ2VTdHpoTWVzc2FnZUNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTWVzc2FnZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aE1lc3NhZ2Uge1xuICAvKipcbiAgICogTWVzc2FnZSBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVzc2FnZVN0emhNZXNzYWdlT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBNZXNzYWdlIGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lc3NhZ2VTdHpoTWVzc2FnZUNsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBpJywgJ2xvY2FsaXphdGlvbicsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJywgJ3RhZ3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbWljcm9zaXRlLXRlYXNlcmxpc3QnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwaScsICdsb2NhbGl6YXRpb24nLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcycsICd0YWdzJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhNaWNyb3NpdGVUZWFzZXJsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aE1pY3Jvc2l0ZVRlYXNlcmxpc3RFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTWljcm9zaXRlVGVhc2VybGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aE1pY3Jvc2l0ZVRlYXNlcmxpc3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5TW9udGgnLCAnYTExeURlc2NyaWJlZGJ5WWVhcicsICdkZXNjcmlwdGlvbkxvbmdNb250aCcsICdkZXNjcmlwdGlvbkxvbmdZZWFyJywgJ2Rlc2NyaXB0aW9uTW9udGgnLCAnZGVzY3JpcHRpb25ZZWFyJywgJ2Rpc2FibGVkJywgJ2Vycm9yTW9udGgnLCAnZXJyb3JZZWFyJywgJ2Zvcm1hdCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZE1vbnRoJywgJ2ludmFsaWRZZWFyJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWF4WWVhcicsICdtaW4nLCAnbWluWWVhcicsICdtb250aExhYmVsJywgJ21vbnRoT3BlbicsICdtb250aHMnLCAnbmFtZScsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnLCAneWVhckxhYmVsJywgJ3llYXJPcGVuJywgJ3llYXJTb3J0RGlyZWN0aW9uJywgJ3llYXJzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW1vbnRoeWVhcnBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5TW9udGgnLCAnYTExeURlc2NyaWJlZGJ5WWVhcicsICdkZXNjcmlwdGlvbkxvbmdNb250aCcsICdkZXNjcmlwdGlvbkxvbmdZZWFyJywgJ2Rlc2NyaXB0aW9uTW9udGgnLCAnZGVzY3JpcHRpb25ZZWFyJywgJ2Rpc2FibGVkJywgJ2Vycm9yTW9udGgnLCAnZXJyb3JZZWFyJywgJ2Zvcm1hdCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZE1vbnRoJywgJ2ludmFsaWRZZWFyJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWF4WWVhcicsICdtaW4nLCAnbWluWWVhcicsICdtb250aExhYmVsJywgJ21vbnRoT3BlbicsICdtb250aHMnLCAnbmFtZScsICdwb3BvdmVyUGxhY2VtZW50JywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnLCAneWVhckxhYmVsJywgJ3llYXJPcGVuJywgJ3llYXJTb3J0RGlyZWN0aW9uJywgJ3llYXJzJ10sXG4gIG91dHB1dHM6IFsnc3R6aENoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTW9udGh5ZWFycGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aE1vbnRoeWVhcnBpY2tlckVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1vbnRoeWVhcnBpY2tlclN0emhNb250aHllYXJwaWNrZXJDaGFuZ2VFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoTW9udGh5ZWFycGlja2VyQ2hhbmdlRXZlbnQgYXMgSVN0emhNb250aHllYXJwaWNrZXJTdHpoTW9udGh5ZWFycGlja2VyQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTW9udGh5ZWFycGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTW9udGh5ZWFycGlja2VyIHtcbiAgLyoqXG4gICAqIE1vbnRoeWVhcnBpY2tlciBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1vbnRoeWVhcnBpY2tlclN0emhNb250aHllYXJwaWNrZXJDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nXSxcbiAgbWV0aG9kczogWydhZGRUb2FzdCcsICdyZW1vdmVUb2FzdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1vZmZsaW5lLWluZGljYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhPZmZsaW5lSW5kaWNhdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aE9mZmxpbmVJbmRpY2F0b3JFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoT2ZmbGluZUluZGljYXRvciBleHRlbmRzIENvbXBvbmVudHMuU3R6aE9mZmxpbmVJbmRpY2F0b3Ige31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2VudGVyJywgJ2NlbnRlck1hcmtlcicsICdob3N0bmFtZScsICdsYXllcicsICdsYXllckNvbnRyb2wnLCAnbGF5ZXJzJywgJ2xvY2FsaXphdGlvbicsICdsb2NhdGlvbkNvbnRyb2wnLCAncGluY2hSb3RhdGVUaHJlc2hvbGQnLCAncHJpbnRDb250cm9sJywgJ3Jlc29sdXRpb25zJywgJ3NjYWxlQ29udHJvbCcsICd3cml0ZUV4dGVudFRvVXJsRW5hYmxlZCcsICd6b29tJywgJ3pvb21Mb2NhdGlvbiddLFxuICBtZXRob2RzOiBbJ2dldE1hcCcsICd3cml0ZUV4dGVudFRvVXJsJywgJ2dldFZpc2libGVNYXJrZXJzJywgJ2ZpbmRNYXJrZXJCeUlkJywgJ2FkZEljb25NYXJrZXInLCAnYWRkSWNvbk1hcmtlcnMnLCAndXBkYXRlVmlld1RvRml0TWFya2VycycsICdyZW1vdmVBbGxJY29uTWFya2VycycsICdyZW1vdmVJY29uTWFya2VyJywgJ3NldEljb25NYXJrZXJBY3RpdmUnLCAnc2V0SWNvbk1hcmtlckluYWN0aXZlJywgJ3NldEFsbEljb25NYXJrZXJzSW5hY3RpdmUnLCAnZW5hYmxlTG9jYXRpb25UcmFja2luZycsICdkaXNhYmxlTG9jYXRpb25UcmFja2luZycsICdnZXREaXN0YW5jZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1vbG1hcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2VudGVyJywgJ2NlbnRlck1hcmtlcicsICdob3N0bmFtZScsICdsYXllcicsICdsYXllckNvbnRyb2wnLCAnbGF5ZXJzJywgJ2xvY2FsaXphdGlvbicsICdsb2NhdGlvbkNvbnRyb2wnLCAncGluY2hSb3RhdGVUaHJlc2hvbGQnLCAncHJpbnRDb250cm9sJywgJ3Jlc29sdXRpb25zJywgJ3NjYWxlQ29udHJvbCcsICd3cml0ZUV4dGVudFRvVXJsRW5hYmxlZCcsICd6b29tJywgJ3pvb21Mb2NhdGlvbiddLFxuICBvdXRwdXRzOiBbJ3N0emhJbml0aWFsaXplZCcsICdzdHpoUG9zdFJlbmRlcicsICdzdHpoTW92ZVN0YXJ0JywgJ3N0emhNb3ZlRW5kJywgJ3N0emhNb3ZlUGFuWm9vbSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoT2xtYXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoT2xtYXBFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aEluaXRpYWxpemVkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE9sbWFwU3R6aE9sbWFwSW5pdGlhbGl6ZWRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoUG9zdFJlbmRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcFBvc3RSZW5kZXJFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoTW92ZVN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZVN0YXJ0RXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aE1vdmVFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlRW5kRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aE1vdmVQYW5ab29tID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZVBhblpvb21FdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoT2xtYXBJbml0aWFsaXplZEV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBJbml0aWFsaXplZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoT2xtYXBQb3N0UmVuZGVyRXZlbnQgYXMgSVN0emhPbG1hcFN0emhPbG1hcFBvc3RSZW5kZXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE9sbWFwTW92ZVN0YXJ0RXZlbnQgYXMgSVN0emhPbG1hcFN0emhPbG1hcE1vdmVTdGFydEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoT2xtYXBNb3ZlRW5kRXZlbnQgYXMgSVN0emhPbG1hcFN0emhPbG1hcE1vdmVFbmRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE9sbWFwTW92ZVBhblpvb21FdmVudCBhcyBJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZVBhblpvb21FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhPbG1hcCBleHRlbmRzIENvbXBvbmVudHMuU3R6aE9sbWFwIHtcbiAgLyoqXG4gICAqIE9sbWFwIGluaXRpYWxpemVkIGV2ZW50XG4gICAqL1xuICBzdHpoSW5pdGlhbGl6ZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE9sbWFwU3R6aE9sbWFwSW5pdGlhbGl6ZWRFdmVudD4+O1xuICAvKipcbiAgICogT2xtYXAgcG9zdHJlbmRlciBldmVudFxuICAgKi9cbiAgc3R6aFBvc3RSZW5kZXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE9sbWFwU3R6aE9sbWFwUG9zdFJlbmRlckV2ZW50Pj47XG4gIC8qKlxuICAgKiBPbG1hcCBtb3Zlc3RhcnQgZXZlbnRcbiAgICovXG4gIHN0emhNb3ZlU3RhcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZVN0YXJ0RXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9sbWFwIG1vdmVlbmQgZXZlbnRcbiAgICovXG4gIHN0emhNb3ZlRW5kOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcE1vdmVFbmRFdmVudD4+O1xuICAvKipcbiAgICogT2xtYXAgbW92ZSBwYW4gem9vbSBldmVudFxuICAgKi9cbiAgc3R6aE1vdmVQYW5ab29tOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcE1vdmVQYW5ab29tRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUxhYmVsJywgJ29wZW4nLCAnc3RheSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1vdmVybGF5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5TGFiZWwnLCAnb3BlbicsICdzdGF5J10sXG4gIG91dHB1dHM6IFsnc3R6aE9wZW4nLCAnc3R6aENsb3NlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhPdmVybGF5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aE92ZXJsYXlFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aE9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT3ZlcmxheVN0emhPdmVybGF5T3BlbkV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPdmVybGF5U3R6aE92ZXJsYXlDbG9zZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhPdmVybGF5T3BlbkV2ZW50IGFzIElTdHpoT3ZlcmxheVN0emhPdmVybGF5T3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoT3ZlcmxheUNsb3NlRXZlbnQgYXMgSVN0emhPdmVybGF5U3R6aE92ZXJsYXlDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE92ZXJsYXkgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhPdmVybGF5IHtcbiAgLyoqXG4gICAqIERpYWxvZyBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT3ZlcmxheVN0emhPdmVybGF5T3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaWFsb2cgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT3ZlcmxheVN0emhPdmVybGF5Q2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdlLXNraXBsaW5rcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZVNraXBsaW5rcyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhQYWdlU2tpcGxpbmtzRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2VTa2lwbGlua3MgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdlU2tpcGxpbmtzIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdsb2dvSHJlZicsICdwcmludEFuYWx5dGljc0lkJywgJ3NoYXJlRGlzYWJsZWQnLCAnc2hhcmVNYWlsQm9keScsICdzaGFyZU1haWxTdWJqZWN0JywgJ3NoYXJlU2VydmljZXMnLCAnc2hhcmVUaXRsZScsICdzaGFyZVVybCcsICd3aXRoUHJpbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFnZWJvdHRvbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJywgJ2xvZ29IcmVmJywgJ3ByaW50QW5hbHl0aWNzSWQnLCAnc2hhcmVEaXNhYmxlZCcsICdzaGFyZU1haWxCb2R5JywgJ3NoYXJlTWFpbFN1YmplY3QnLCAnc2hhcmVTZXJ2aWNlcycsICdzaGFyZVRpdGxlJywgJ3NoYXJlVXJsJywgJ3dpdGhQcmludCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZWJvdHRvbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhQYWdlYm90dG9tRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2Vib3R0b20gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdlYm90dG9tIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2Vjb250ZW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYWdlY29udGVudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhQYWdlY29udGVudEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdlY29udGVudCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2Vjb250ZW50IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmQnLCAnZGF0ZWxpbmUnLCAnaHlwaGVuc0VuYWJsZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFnZXRpdGxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiYWNrZ3JvdW5kJywgJ2RhdGVsaW5lJywgJ2h5cGhlbnNFbmFibGVkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYWdldGl0bGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoUGFnZXRpdGxlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2V0aXRsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2V0aXRsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdJZCcsICdsZWFkQXV0aG9yJywgJ3N1YnRpdGxlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2V0aXRsZS1oZXJvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdJZCcsICdsZWFkQXV0aG9yJywgJ3N1YnRpdGxlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYWdldGl0bGVIZXJvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFBhZ2V0aXRsZUhlcm9FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnZXRpdGxlSGVybyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2V0aXRsZUhlcm8ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaHlwaGVuc0VuYWJsZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFnZXRpdGxlLWhvbWUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2h5cGhlbnNFbmFibGVkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYWdldGl0bGVIb21lIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFBhZ2V0aXRsZUhvbWVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnZXRpdGxlSG9tZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhZ2V0aXRsZUhvbWUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2FsbG93TWFudWFsSW5wdXQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0b3RhbCcsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3ByZXYnLCAnbmV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdpbmF0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYWxsb3dNYW51YWxJbnB1dCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3RvdGFsJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnc3R6aENoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnaW5hdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhQYWdpbmF0aW9uRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFnaW5hdGlvblN0emhQYWdpbmF0aW9uQ2hhbmdlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFBhZ2luYXRpb25DaGFuZ2VFdmVudCBhcyBJU3R6aFBhZ2luYXRpb25TdHpoUGFnaW5hdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2luYXRpb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdpbmF0aW9uIHtcbiAgLyoqXG4gICAqIFBhZ2luYXRpb24gY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYWdpbmF0aW9uU3R6aFBhZ2luYXRpb25DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvbG9hZCcsICdjYXB0aW9uJywgJ2NvcHlyaWdodCcsICdoZWFkaW5nJywgJ2xvY2FsaXphdGlvbicsICdvcmllbnRhdGlvbk9uQnlEZWZhdWx0JywgJ3NjZW5lJywgJ3NjZW5lRmFkZUR1cmF0aW9uJywgJ3NjZW5lcycsICdzaG93Q29udHJvbHMnLCAnc2hvd0hvdHNwb3RzJ10sXG4gIG1ldGhvZHM6IFsnZ2V0Vmlld2VyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhbm9yYW1hJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRvbG9hZCcsICdjYXB0aW9uJywgJ2NvcHlyaWdodCcsICdoZWFkaW5nJywgJ2xvY2FsaXphdGlvbicsICdvcmllbnRhdGlvbk9uQnlEZWZhdWx0JywgJ3NjZW5lJywgJ3NjZW5lRmFkZUR1cmF0aW9uJywgJ3NjZW5lcycsICdzaG93Q29udHJvbHMnLCAnc2hvd0hvdHNwb3RzJ10sXG4gIG91dHB1dHM6IFsnc3R6aExvYWQnLCAnc3R6aENoYW5nZScsICdzdHpoRnVsbHNjcmVlbkNoYW5nZScsICdzdHpoU2NlbmVDaGFuZ2UnLCAnc3R6aFpvb21DaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhbm9yYW1hIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFBhbm9yYW1hRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhMb2FkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hTG9hZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFDaGFuZ2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRnVsbHNjcmVlbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUZ1bGxzY3JlZW5DaGFuZ2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoU2NlbmVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFTY2VuZUNoYW5nZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhab29tQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hWm9vbUNoYW5nZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhQYW5vcmFtYUxvYWRFdmVudCBhcyBJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hTG9hZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFDaGFuZ2VFdmVudCBhcyBJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhQYW5vcmFtYUZ1bGxzY3JlZW5DaGFuZ2VFdmVudCBhcyBJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hRnVsbHNjcmVlbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFTY2VuZUNoYW5nZUV2ZW50IGFzIElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFTY2VuZUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFab29tQ2hhbmdlRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYVpvb21DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYW5vcmFtYSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBhbm9yYW1hIHtcbiAgLyoqXG4gICAqIExvYWQgZXZlbnRcbiAgICovXG4gIHN0emhMb2FkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUxvYWRFdmVudD4+O1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGdWxsc2NyZWVuIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aEZ1bGxzY3JlZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hRnVsbHNjcmVlbkNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBTY2VuZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhTY2VuZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFTY2VuZUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBab29tIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFpvb21DaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hWm9vbUNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdwYXltZW50SWJhbicsICdwYXltZW50UmVjaXBpZW50JywgJ3ByaXZhY3lQb2xpY3lVcmwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGt6aC1xcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJywgJ3BheW1lbnRJYmFuJywgJ3BheW1lbnRSZWNpcGllbnQnLCAncHJpdmFjeVBvbGljeVVybCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGt6aFFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFBremhRckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQa3poUXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQa3poUXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzdGFuY2UnLCAnZnVsbHdpZHRoJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3BsYWNlbWVudCcsICdzaXplJywgJ3NraWRkaW5nJywgJ3N0cmF0ZWd5JywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9nZ2xlJywgJ3VwZGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wb3BvdmVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXN0YW5jZScsICdmdWxsd2lkdGgnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NpemUnLCAnc2tpZGRpbmcnLCAnc3RyYXRlZ3knLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBvcG92ZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoUG9wb3ZlckVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoT3BlbiA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQb3BvdmVyU3R6aFBvcG92ZXJPcGVuRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aE9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQb3BvdmVyU3R6aFBvcG92ZXJPcGVuZWRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUG9wb3ZlclN0emhQb3BvdmVyQ2xvc2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBvcG92ZXJTdHpoUG9wb3ZlckNsb3NlZEV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhQb3BvdmVyT3BlbkV2ZW50IGFzIElTdHpoUG9wb3ZlclN0emhQb3BvdmVyT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUG9wb3Zlck9wZW5lZEV2ZW50IGFzIElTdHpoUG9wb3ZlclN0emhQb3BvdmVyT3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhQb3BvdmVyQ2xvc2VFdmVudCBhcyBJU3R6aFBvcG92ZXJTdHpoUG9wb3ZlckNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhQb3BvdmVyQ2xvc2VkRXZlbnQgYXMgSVN0emhQb3BvdmVyU3R6aFBvcG92ZXJDbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQb3BvdmVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUG9wb3ZlciB7XG4gIC8qKlxuICAgKiBQb3BvdmVyIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQb3BvdmVyU3R6aFBvcG92ZXJPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFBvcG92ZXIgb3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQb3BvdmVyU3R6aFBvcG92ZXJPcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogUG9wb3ZlciBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQb3BvdmVyU3R6aFBvcG92ZXJDbG9zZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBQb3BvdmVyIGNsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUG9wb3ZlclN0emhQb3BvdmVyQ2xvc2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcHJpbnQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFByaW50IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFByaW50RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFByaW50IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUHJpbnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0aG9yJywgJ3RleHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcXVvdGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dGhvcicsICd0ZXh0J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhRdW90ZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhRdW90ZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhRdW90ZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFF1b3RlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yYWRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnc3R6aENoYW5nZScsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFJhZGlvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFJhZGlvRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmFkaW9TdHpoUmFkaW9DaGFuZ2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmFkaW9TdHpoUmFkaW9Gb2N1c0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFJhZGlvU3R6aFJhZGlvQmx1ckV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhSYWRpb0NoYW5nZUV2ZW50IGFzIElTdHpoUmFkaW9TdHpoUmFkaW9DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFJhZGlvRm9jdXNFdmVudCBhcyBJU3R6aFJhZGlvU3R6aFJhZGlvRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFJhZGlvQmx1ckV2ZW50IGFzIElTdHpoUmFkaW9TdHpoUmFkaW9CbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUmFkaW8gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSYWRpbyB7XG4gIC8qKlxuICAgKiBJbnB1dCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFJhZGlvU3R6aFJhZGlvQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFJhZGlvU3R6aFJhZGlvRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFJhZGlvU3R6aFJhZGlvQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoZWNrZWRSYWRpbycsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2RpcmVjdGlvbicsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlTGVnZW5kJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xlZ2VuZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdwcmV2ZW50VXBkYXRlUHJvcGVydGllcycsICdyZXF1aXJlZCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yYWRpb2dyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGVja2VkUmFkaW8nLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXJlY3Rpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZUxlZ2VuZCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmVudFVwZGF0ZVByb3BlcnRpZXMnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFJhZGlvZ3JvdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoUmFkaW9ncm91cEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSYWRpb2dyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUmFkaW9ncm91cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYW5hbHl0aWNzSWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRWYWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yYXRpbmcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhbmFseXRpY3NJZCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3N0emhDaGFuZ2UnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSYXRpbmcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoUmF0aW5nRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmF0aW5nU3R6aFJhdGluZ0NoYW5nZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhSYXRpbmdTdHpoUmF0aW5nRm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhSYXRpbmdTdHpoUmF0aW5nQmx1ckV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhSYXRpbmdDaGFuZ2VFdmVudCBhcyBJU3R6aFJhdGluZ1N0emhSYXRpbmdDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFJhdGluZ0ZvY3VzRXZlbnQgYXMgSVN0emhSYXRpbmdTdHpoUmF0aW5nRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFJhdGluZ0JsdXJFdmVudCBhcyBJU3R6aFJhdGluZ1N0emhSYXRpbmdCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUmF0aW5nIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUmF0aW5nIHtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmF0aW5nU3R6aFJhdGluZ0NoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhSYXRpbmdTdHpoUmF0aW5nRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFJhdGluZ1N0emhSYXRpbmdCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZml0JywgJ3BvcnRyYWl0JywgJ3JhdGlvJywgJ3JhdGlvTGFyZ2UnLCAncmF0aW9NZWRpdW0nLCAncmF0aW9TbWFsbCcsICdyYXRpb1VsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXJhdGlvJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmaXQnLCAncG9ydHJhaXQnLCAncmF0aW8nLCAncmF0aW9MYXJnZScsICdyYXRpb01lZGl1bScsICdyYXRpb1NtYWxsJywgJ3JhdGlvVWx0cmEnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFJhdGlvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFJhdGlvRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFJhdGlvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUmF0aW8ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaHJlZiddLFxuICBtZXRob2RzOiBbJ29wZW5QbGF5ZXInLCAnY2xvc2VQbGF5ZXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcmVhZHNwZWFrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbeyBuYW1lOiAnaHJlZicsIHJlcXVpcmVkOiB0cnVlIH1dLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmVhZHNwZWFrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoUmVhZHNwZWFrZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUmVhZHNwZWFrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSZWFkc3BlYWtlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydleHRlcm5hbExpbmtJY29uJywgJ2V4dGVybmFsTGlua1NlbGVjdG9yJywgJ2xvY2FsaXphdGlvbicsICdyZW1vdmVGaXJzdE1hcmdpbicsICdyZW1vdmVMYXN0TWFyZ2luJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXJpY2h0ZXh0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydleHRlcm5hbExpbmtJY29uJywgJ2V4dGVybmFsTGlua1NlbGVjdG9yJywgJ2xvY2FsaXphdGlvbicsICdyZW1vdmVGaXJzdE1hcmdpbicsICdyZW1vdmVMYXN0TWFyZ2luJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSaWNodGV4dCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhSaWNodGV4dEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSaWNodGV4dCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJpY2h0ZXh0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnaXRlbXMnLCAnanVzdGlmeScsICdzcGFuJywgJ3NwYW5MYXJnZScsICdzcGFuTWVkaXVtJywgJ3NwYW5TbWFsbCcsICdzcGFuVWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcm93JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250ZW50JywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc3BhbicsICdzcGFuTGFyZ2UnLCAnc3Bhbk1lZGl1bScsICdzcGFuU21hbGwnLCAnc3BhblVsdHJhJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSb3cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoUm93RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFJvdyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJvdyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlZCcsICdlcnJvcicsICdpbnZhbGlkJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ251bWJlcnMnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2FwdGNoYScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZXJyb3InLCAnaW52YWxpZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdudW1iZXJzJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnc3R6aENoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2FwdGNoYSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhTYXB0Y2hhRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU2FwdGNoYVN0emhTYXB0Y2hhQ2hhbmdlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFNhcHRjaGFDaGFuZ2VFdmVudCBhcyBJU3R6aFNhcHRjaGFTdHpoU2FwdGNoYUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNhcHRjaGEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTYXB0Y2hhIHtcbiAgLyoqXG4gICAqIFNhcHRjaGEgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTYXB0Y2hhU3R6aFNhcHRjaGFDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zY3JvbGx1cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2Nyb2xsdXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoU2Nyb2xsdXBFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2Nyb2xsdXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTY3JvbGx1cCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnYXV0b2ZldGNoQXNpZGVGaWx0ZXJzJywgJ2F1dG9mZXRjaE1haW5GaWx0ZXJzJywgJ2RlYm91bmNlVGltZScsICdlbXB0eUxpbmtIcmVmJywgJ2VtcHR5TGlua0xhYmVsJywgJ2VtcHR5VGV4dCcsICdoZWFkaW5nJywgJ2hpZGVBc2lkZUZpbHRlcnMnLCAnaGlkZU1haW5GaWx0ZXJzJywgJ2hpZGVSZXN1bHRzSGVhZGluZycsICdoeXBoZW5zRW5hYmxlZCcsICdpbml0aWFsRmV0Y2gnLCAnbGltaXQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZXZlbnRVcGRhdGVVcmwnLCAncmVzdWx0SGVhZGluZ0xldmVsJywgJ3NvcnRCeScsICdzb3J0T3B0aW9ucycsICdzdWJzY3JpYmVBZGRpdGlvbmFsUXVlcnlQYXJhbWV0ZXJzJywgJ3N1YnNjcmliZUxhYmVsJywgJ3N1YnNjcmliZVBhdGgnLCAndGVtcGxhdGVSZXN1bHQnLCAndGVtcGxhdGVSZXN1bHRXcmFwcGVyRWxlbWVudCcsICd0ZW1wbGF0ZVJlc3VsdFdyYXBwZXJQcm9wcycsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNlYXJjaCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBpJywgJ2F1dG9mZXRjaEFzaWRlRmlsdGVycycsICdhdXRvZmV0Y2hNYWluRmlsdGVycycsICdkZWJvdW5jZVRpbWUnLCAnZW1wdHlMaW5rSHJlZicsICdlbXB0eUxpbmtMYWJlbCcsICdlbXB0eVRleHQnLCAnaGVhZGluZycsICdoaWRlQXNpZGVGaWx0ZXJzJywgJ2hpZGVNYWluRmlsdGVycycsICdoaWRlUmVzdWx0c0hlYWRpbmcnLCAnaHlwaGVuc0VuYWJsZWQnLCAnaW5pdGlhbEZldGNoJywgJ2xpbWl0JywgJ2xvY2FsaXphdGlvbicsICdwcmV2ZW50VXBkYXRlVXJsJywgJ3Jlc3VsdEhlYWRpbmdMZXZlbCcsICdzb3J0QnknLCAnc29ydE9wdGlvbnMnLCAnc3Vic2NyaWJlQWRkaXRpb25hbFF1ZXJ5UGFyYW1ldGVycycsICdzdWJzY3JpYmVMYWJlbCcsICdzdWJzY3JpYmVQYXRoJywgJ3RlbXBsYXRlUmVzdWx0JywgJ3RlbXBsYXRlUmVzdWx0V3JhcHBlckVsZW1lbnQnLCAndGVtcGxhdGVSZXN1bHRXcmFwcGVyUHJvcHMnLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ3N0emhPdmVybGF5Q2xvc2VDbGljayddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2VhcmNoIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFNlYXJjaEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoT3ZlcmxheUNsb3NlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU2VhcmNoU3R6aFNlYXJjaE92ZXJsYXlDbG9zZUNsaWNrRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFNlYXJjaE92ZXJsYXlDbG9zZUNsaWNrRXZlbnQgYXMgSVN0emhTZWFyY2hTdHpoU2VhcmNoT3ZlcmxheUNsb3NlQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTZWFyY2ggZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTZWFyY2gge1xuICAvKipcbiAgICogU2VhcmNoIG92ZXJsYXkgY2xvc2UgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhPdmVybGF5Q2xvc2VDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU2VhcmNoU3R6aFNlYXJjaE92ZXJsYXlDbG9zZUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmFja2dyb3VuZCcsICdicmVha291dCcsICdtYXJnaW5Cb3R0b20nLCAnbWFyZ2luVG9wJywgJ3BhZGRpbmdCb3R0b20nLCAncGFkZGluZ1RvcCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNlY3Rpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmQnLCAnYnJlYWtvdXQnLCAnbWFyZ2luQm90dG9tJywgJ21hcmdpblRvcCcsICdwYWRkaW5nQm90dG9tJywgJ3BhZGRpbmdUb3AnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2VjdGlvbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhTZWN0aW9uRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNlY3Rpb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTZWN0aW9uIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdtYWlsQm9keScsICdtYWlsU3ViamVjdCcsICdzZXJ2aWNlcycsICd1cmwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2hhcmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdtYWlsQm9keScsICdtYWlsU3ViamVjdCcsICdzZXJ2aWNlcycsICd1cmwnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNoYXJlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFNoYXJlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNoYXJlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2hhcmUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2xvc2VLZXknLCAnaGlkZUZyb21EYXRlJywgJ2xhcmdlJywgJ21lZGl1bScsICdtaWtybycsICdzaG93RnJvbURhdGUnLCAnc21hbGwnLCAndWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2hvdycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xvc2VLZXknLCAnaGlkZUZyb21EYXRlJywgJ2xhcmdlJywgJ21lZGl1bScsICdtaWtybycsICdzaG93RnJvbURhdGUnLCAnc21hbGwnLCAndWx0cmEnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNob3cge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoU2hvd0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTaG93IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2hvdyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpdGVtcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zaXRlbWFwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpdGVtcyddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2l0ZW1hcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhTaXRlbWFwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNpdGVtYXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTaXRlbWFwIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNraW4tcG9ydGFsLW1pdHdpcmtlbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2tpblBvcnRhbE1pdHdpcmtlbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhTa2luUG9ydGFsTWl0d2lya2VuRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNraW5Qb3J0YWxNaXR3aXJrZW4gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTa2luUG9ydGFsTWl0d2lya2VuIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNraW4tc3Rvcnlib29rLXByZXZpZXcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNraW5TdG9yeWJvb2tQcmV2aWV3IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFNraW5TdG9yeWJvb2tQcmV2aWV3RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNraW5TdG9yeWJvb2tQcmV2aWV3IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2tpblN0b3J5Ym9va1ByZXZpZXcge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnaHJlZicsICdsYWJlbCcsICdsaW5rQWNjZXNza2V5JywgJ2xpbmtUaXRsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1za2lwbGluaycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnaHJlZicsICdsYWJlbCcsICdsaW5rQWNjZXNza2V5JywgJ2xpbmtUaXRsZSddLFxuICBvdXRwdXRzOiBbJ3N0emhGb2N1cycsICdzdHpoQmx1ciddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU2tpcGxpbmsge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoU2tpcGxpbmtFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aEZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNraXBsaW5rU3R6aFNraXBsaW5rRm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTa2lwbGlua1N0emhTa2lwbGlua0JsdXJFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoU2tpcGxpbmtGb2N1c0V2ZW50IGFzIElTdHpoU2tpcGxpbmtTdHpoU2tpcGxpbmtGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoU2tpcGxpbmtCbHVyRXZlbnQgYXMgSVN0emhTa2lwbGlua1N0emhTa2lwbGlua0JsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTa2lwbGluayBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNraXBsaW5rIHtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNraXBsaW5rU3R6aFNraXBsaW5rRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNraXBsaW5rU3R6aFNraXBsaW5rQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2l0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNvY2lhbG1lZGlhc3RyZWFtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpdGVtcyddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU29jaWFsbWVkaWFzdHJlYW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoU29jaWFsbWVkaWFzdHJlYW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU29jaWFsbWVkaWFzdHJlYW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTb2NpYWxtZWRpYXN0cmVhbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkYXRlQWRhcHRlcicsICdpdGVtJywgJ2xvY2FsaXphdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zb2NpYWxtZWRpYXN0cmVhbS1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkYXRlQWRhcHRlcicsICdpdGVtJywgJ2xvY2FsaXphdGlvbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU29jaWFsbWVkaWFzdHJlYW1JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFNvY2lhbG1lZGlhc3RyZWFtSXRlbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTb2NpYWxtZWRpYXN0cmVhbUl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTb2NpYWxtZWRpYXN0cmVhbUl0ZW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGFpbmVyJywgJ2RhdGFJZEF0dHJpYnV0ZScsICdkaXNhYmxlZCcsICdmaWx0ZXJFbGVtZW50cycsICdnaG9zdENsb25lJywgJ2xvY2FsaXphdGlvbiddLFxuICBtZXRob2RzOiBbJ3RvQXJyYXknLCAnc29ydCcsICdtb3ZlSXRlbSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zb3J0YWJsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGFpbmVyJywgJ2RhdGFJZEF0dHJpYnV0ZScsICdkaXNhYmxlZCcsICdmaWx0ZXJFbGVtZW50cycsICdnaG9zdENsb25lJywgJ2xvY2FsaXphdGlvbiddLFxuICBvdXRwdXRzOiBbJ3N0emhVcGRhdGUnLCAnc3R6aERpc2FibGUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNvcnRhYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFNvcnRhYmxlRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhVcGRhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU29ydGFibGVTdHpoU29ydGFibGVVcGRhdGVFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRGlzYWJsZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTb3J0YWJsZVN0emhTb3J0YWJsZURpc2FibGVFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoU29ydGFibGVVcGRhdGVFdmVudCBhcyBJU3R6aFNvcnRhYmxlU3R6aFNvcnRhYmxlVXBkYXRlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhTb3J0YWJsZURpc2FibGVFdmVudCBhcyBJU3R6aFNvcnRhYmxlU3R6aFNvcnRhYmxlRGlzYWJsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNvcnRhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU29ydGFibGUge1xuICAvKipcbiAgICogVXBkYXRlIGV2ZW50XG4gICAqL1xuICBzdHpoVXBkYXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTb3J0YWJsZVN0emhTb3J0YWJsZVVwZGF0ZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXNhYmxlIGV2ZW50XG4gICAqL1xuICBzdHpoRGlzYWJsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU29ydGFibGVTdHpoU29ydGFibGVEaXNhYmxlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoU3BhY2VFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3BhY2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYWJlbCcsICdwZXJjZW50JywgJ3R5cGUnLCAnd2l0aExvYWRpbmdiYXInXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc3RhdHVzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCcsICdwZXJjZW50JywgJ3R5cGUnLCAnd2l0aExvYWRpbmdiYXInXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFN0YXR1cyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhTdGF0dXNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3RhdHVzIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU3RhdHVzIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NsaWNrRGlzYWJsZWQnLCAnZGF0YScsICdpbmRleCcsICdsb2NhbGl6YXRpb24nLCAnc3RlcHMnLCAnc3RlcHNMYXJnZScsICdzdGVwc01lZGl1bScsICdzdGVwc1NtYWxsJywgJ3N0ZXBzVWx0cmEnXSxcbiAgbWV0aG9kczogWydnZXRJdGVtRGF0YSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zdGVwcGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjbGlja0Rpc2FibGVkJywgJ2RhdGEnLCAnaW5kZXgnLCAnbG9jYWxpemF0aW9uJywgJ3N0ZXBzJywgJ3N0ZXBzTGFyZ2UnLCAnc3RlcHNNZWRpdW0nLCAnc3RlcHNTbWFsbCcsICdzdGVwc1VsdHJhJ10sXG4gIG91dHB1dHM6IFsnc3R6aENsaWNrJywgJ3N0emhEb3R0ZWRDbGljayddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU3RlcHBlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhTdGVwcGVyRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTdGVwcGVyU3R6aFN0ZXBwZXJJdGVtQ2xpY2tFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRG90dGVkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RlcHBlclN0emhTdGVwcGVySXRlbURvdHRlZENsaWNrRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFN0ZXBwZXJJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aFN0ZXBwZXJTdHpoU3RlcHBlckl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoU3RlcHBlckl0ZW1Eb3R0ZWRDbGlja0V2ZW50IGFzIElTdHpoU3RlcHBlclN0emhTdGVwcGVySXRlbURvdHRlZENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3RlcHBlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFN0ZXBwZXIge1xuICAvKipcbiAgICogU3RlcCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTdGVwcGVyU3R6aFN0ZXBwZXJJdGVtQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRG90dGVkIHN0ZXAgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhEb3R0ZWRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RlcHBlclN0emhTdGVwcGVySXRlbURvdHRlZENsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnY2xpY2tEaXNhYmxlZCcsICdjdXJyZW50JywgJ2Rpc2FibGVkJywgJ2RvdHRlZCcsICdmaXJzdCcsICdoaWRlJywgJ2ljb24nLCAnaW5jb21wbGV0ZScsICdsYWJlbCcsICdsYXN0JywgJ3Bhc3NlZCcsICdzdGVwJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXN0ZXBwZXItaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnY2xpY2tEaXNhYmxlZCcsICdjdXJyZW50JywgJ2Rpc2FibGVkJywgJ2RvdHRlZCcsICdmaXJzdCcsICdoaWRlJywgJ2ljb24nLCAnaW5jb21wbGV0ZScsICdsYWJlbCcsICdsYXN0JywgJ3Bhc3NlZCcsICdzdGVwJ10sXG4gIG91dHB1dHM6IFsnc3R6aENsaWNrJywgJ3N0emhEb3R0ZWRDbGljayddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU3RlcHBlckl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoU3RlcHBlckl0ZW1FbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFN0ZXBwZXJJdGVtU3R6aFN0ZXBwZXJJdGVtQ2xpY2tFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRG90dGVkQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RlcHBlckl0ZW1TdHpoU3RlcHBlckl0ZW1Eb3R0ZWRDbGlja0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhTdGVwcGVySXRlbUNsaWNrRXZlbnQgYXMgSVN0emhTdGVwcGVySXRlbVN0emhTdGVwcGVySXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhTdGVwcGVySXRlbURvdHRlZENsaWNrRXZlbnQgYXMgSVN0emhTdGVwcGVySXRlbVN0emhTdGVwcGVySXRlbURvdHRlZENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3RlcHBlckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTdGVwcGVySXRlbSB7XG4gIC8qKlxuICAgKiBDbGljayBldmVudFxuICAgKi9cbiAgc3R6aENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTdGVwcGVySXRlbVN0emhTdGVwcGVySXRlbUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERvdHRlZCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aERvdHRlZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTdGVwcGVySXRlbVN0emhTdGVwcGVySXRlbURvdHRlZENsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYmxlZWRpbmcnLCAnZGlzYWJsZVN0aWNreUJvdHRvbScsICdkaXNhYmxlU3RpY2t5VG9wJywgJ25hbWUnLCAncG9zaXRpb24nLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zdGlja3knLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2JsZWVkaW5nJywgJ2Rpc2FibGVTdGlja3lCb3R0b20nLCAnZGlzYWJsZVN0aWNreVRvcCcsICduYW1lJywgJ3Bvc2l0aW9uJywgJ3ZhcmlhbnQnXSxcbiAgb3V0cHV0czogWydzdHpoU3R1Y2tUb3AnLCAnc3R6aFN0dWNrQm90dG9tJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTdGlja3kge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoU3RpY2t5RWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhTdHVja1RvcCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTdGlja3lTdHpoU3RpY2t5U3R1Y2tUb3BFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoU3R1Y2tCb3R0b20gPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrQm90dG9tRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFN0aWNreVN0dWNrVG9wRXZlbnQgYXMgSVN0emhTdGlja3lTdHpoU3RpY2t5U3R1Y2tUb3BFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFN0aWNreVN0dWNrQm90dG9tRXZlbnQgYXMgSVN0emhTdGlja3lTdHpoU3RpY2t5U3R1Y2tCb3R0b21FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTdGlja3kgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTdGlja3kge1xuICAvKipcbiAgICogU3RpY2t5IHN0dWNrIHRvcCBldmVudFxuICAgKi9cbiAgc3R6aFN0dWNrVG9wOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTdGlja3lTdHpoU3RpY2t5U3R1Y2tUb3BFdmVudD4+O1xuICAvKipcbiAgICogU3RpY2t5IHN0dWNrIGJvdHRvbSBldmVudFxuICAgKi9cbiAgc3R6aFN0dWNrQm90dG9tOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTdGlja3lTdHpoU3RpY2t5U3R1Y2tCb3R0b21FdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydwYWdldGl0bGVRdWVyeSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zdGlja3ktYWN0aW9ucycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncGFnZXRpdGxlUXVlcnknXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFN0aWNreUFjdGlvbnMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoU3RpY2t5QWN0aW9uc0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTdGlja3lBY3Rpb25zIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU3RpY2t5QWN0aW9ucyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkaXNhYmxlTWluV2lkdGgnLCAnZml4ZWRMZWZ0JywgJ2ZpeGVkUmlnaHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdGFibGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVNaW5XaWR0aCcsICdmaXhlZExlZnQnLCAnZml4ZWRSaWdodCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGFibGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoVGFibGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUYWJsZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhbmFseXRpY3NJZCcsICdkaXNhYmxlZCcsICdocmVmJywgJ2xhYmVsJywgJ25vbkludGVyYWN0aXZlJywgJ3JlbW92ZUFuYWx5dGljc0lkJywgJ3NpemUnLCAndGFyZ2V0JywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdGFnJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhbmFseXRpY3NJZCcsICdkaXNhYmxlZCcsICdocmVmJywgJ2xhYmVsJywgJ25vbkludGVyYWN0aXZlJywgJ3JlbW92ZUFuYWx5dGljc0lkJywgJ3NpemUnLCAndGFyZ2V0JywgJ3R5cGUnXSxcbiAgb3V0cHV0czogWydzdHpoQ2xpY2snLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUYWcge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoVGFnRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUYWdTdHpoVGFnQ2xpY2tFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGFnU3R6aFRhZ0ZvY3VzRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGFnU3R6aFRhZ0JsdXJFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVGFnQ2xpY2tFdmVudCBhcyBJU3R6aFRhZ1N0emhUYWdDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGFnRm9jdXNFdmVudCBhcyBJU3R6aFRhZ1N0emhUYWdGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGFnQmx1ckV2ZW50IGFzIElTdHpoVGFnU3R6aFRhZ0JsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUYWcgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUYWcge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGFnU3R6aFRhZ0NsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGFnU3R6aFRhZ0JsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xvcicsICdjdXJ2ZScsICdmb250JywgJ2xlYWQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRleHQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbG9yJywgJ2N1cnZlJywgJ2ZvbnQnLCAnbGVhZCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRleHQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoVGV4dEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUZXh0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGV4dCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydpbWFnZU1vdmVzJywgJ2ltYWdlUG9zaXRpb24nLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10ZXh0YW5kaW1hZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ltYWdlTW92ZXMnLCAnaW1hZ2VQb3NpdGlvbicsICdzaXplJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUZXh0YW5kaW1hZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoVGV4dGFuZGltYWdlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRleHRhbmRpbWFnZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRleHRhbmRpbWFnZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb2xsYXBzaWJsZScsICdmb2xkYWJsZScsICdtdWx0aXNlbGVjdGFibGUnXSxcbiAgbWV0aG9kczogWydzZXRJdGVtRm9jdXMnLCAndXBkYXRlU3RlcHMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdGltZWxpbmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2ZvbGRhYmxlJywgJ211bHRpc2VsZWN0YWJsZSddLFxuICBvdXRwdXRzOiBbJ3N0emhGb2xkYWJsZUNoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGltZWxpbmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoVGltZWxpbmVFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aEZvbGRhYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lU3R6aFRpbWVsaW5lRm9sZGFibGVDaGFuZ2VFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVGb2xkYWJsZUNoYW5nZUV2ZW50IGFzIElTdHpoVGltZWxpbmVTdHpoVGltZWxpbmVGb2xkYWJsZUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRpbWVsaW5lIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGltZWxpbmUge1xuICAvKipcbiAgICogRm9sZGFibGUgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoRm9sZGFibGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lU3R6aFRpbWVsaW5lRm9sZGFibGVDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjb2xsYXBzaWJsZScsICdjb21wbGV0ZWQnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZm9sZGFibGUnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaWNvbicsICdvcGVuJywgJ3N0ZXAnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRpbWVsaW5lLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VUeXBlJywgJ2NvbGxhcHNpYmxlJywgJ2NvbXBsZXRlZCcsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdmb2xkYWJsZScsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpY29uJywgJ29wZW4nLCAnc3RlcCddLFxuICBvdXRwdXRzOiBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUaW1lbGluZUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoVGltZWxpbmVJdGVtRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhPcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aE9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtT3BlbmVkRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1DbG9zZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUNsb3NlZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtRm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQmx1ckV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUl0ZW1PcGVuRXZlbnQgYXMgSVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtT3BlbmVkRXZlbnQgYXMgSVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtT3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUl0ZW1DbG9zZUV2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUNsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUl0ZW1DbG9zZWRFdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1DbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbUZvY3VzRXZlbnQgYXMgSVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbUJsdXJFdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1CbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGltZWxpbmVJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGltZWxpbmVJdGVtIHtcbiAgLyoqXG4gICAqIE9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBPcGVuZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhPcGVuZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1PcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogQ2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUNsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUNsb3NlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1CbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21pbicsICduYW1lJywgJ29wZW4nLCAncG9wb3ZlclBsYWNlbWVudCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3N0ZXAnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdGltZXBpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21pbicsICduYW1lJywgJ29wZW4nLCAncG9wb3ZlclBsYWNlbWVudCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3N0ZXAnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydzdHpoQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUaW1lcGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFRpbWVwaWNrZXJFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lcGlja2VyU3R6aFRpbWVwaWNrZXJDaGFuZ2VFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVGltZXBpY2tlckNoYW5nZUV2ZW50IGFzIElTdHpoVGltZXBpY2tlclN0emhUaW1lcGlja2VyQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGltZXBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRpbWVwaWNrZXIge1xuICAvKipcbiAgICogVGltZXBpY2tlciBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVwaWNrZXJTdHpoVGltZXBpY2tlckNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVDbG9zZScsICdpbml0aWFsT3BlbkFuaW1hdGlvbicsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRvYXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRlQ2xvc2UnLCAnaW5pdGlhbE9wZW5BbmltYXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAndHlwZSddLFxuICBvdXRwdXRzOiBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvYXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFRvYXN0RWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhPcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbkV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhPcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9hc3RTdHpoVG9hc3RPcGVuZWRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9hc3RTdHpoVG9hc3RDbG9zZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9hc3RTdHpoVG9hc3RDbG9zZWRFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVG9hc3RPcGVuRXZlbnQgYXMgSVN0emhUb2FzdFN0emhUb2FzdE9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvYXN0T3BlbmVkRXZlbnQgYXMgSVN0emhUb2FzdFN0emhUb2FzdE9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9hc3RDbG9zZUV2ZW50IGFzIElTdHpoVG9hc3RTdHpoVG9hc3RDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9hc3RDbG9zZWRFdmVudCBhcyBJU3R6aFRvYXN0U3R6aFRvYXN0Q2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVG9hc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUb2FzdCB7XG4gIC8qKlxuICAgKiBUb2FzdCBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9hc3RTdHpoVG9hc3RPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvYXN0IG9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9hc3RTdHpoVG9hc3RPcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogVG9hc3QgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9hc3RTdHpoVG9hc3RDbG9zZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb2FzdCBjbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvYXN0U3R6aFRvYXN0Q2xvc2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUFmdGVyJywgJ2luaXRpYWxUb2FzdHMnLCAnbWF4J10sXG4gIG1ldGhvZHM6IFsndG9hc3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdG9hc3RiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVBZnRlcicsICdpbml0aWFsVG9hc3RzJywgJ21heCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVG9hc3RiYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoVG9hc3RiYXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVG9hc3RiYXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUb2FzdGJhciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxQb3NpdGlvbicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10b2dnbGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbFBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnc3R6aENoYW5nZScsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvZ2dsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhUb2dnbGVFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2dnbGVTdHpoVG9nZ2xlQ2hhbmdlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvZ2dsZVN0emhUb2dnbGVGb2N1c0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvZ2dsZVN0emhUb2dnbGVCbHVyRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRvZ2dsZUNoYW5nZUV2ZW50IGFzIElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9nZ2xlRm9jdXNFdmVudCBhcyBJU3R6aFRvZ2dsZVN0emhUb2dnbGVGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9nZ2xlQmx1ckV2ZW50IGFzIElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUb2dnbGUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUb2dnbGUge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2dnbGVTdHpoVG9nZ2xlQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvZ2dsZVN0emhUb2dnbGVGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb250ZW50JywgJ2Rpc3RhbmNlJywgJ2ludGVyYWN0aXZlJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3BsYWNlbWVudCcsICdzaXplJywgJ3NraWRkaW5nJywgJ3N0cmF0ZWd5JywgJ3RyaWdnZXInLCAndHlwZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZScsICd0b2dnbGUnLCAndXBkYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRvb2x0aXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRlbnQnLCAnZGlzdGFuY2UnLCAnaW50ZXJhY3RpdmUnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAncGxhY2VtZW50JywgJ3NpemUnLCAnc2tpZGRpbmcnLCAnc3RyYXRlZ3knLCAndHJpZ2dlcicsICd0eXBlJ10sXG4gIG91dHB1dHM6IFsnc3R6aE9wZW4nLCAnc3R6aE9wZW5lZCcsICdzdHpoQ2xvc2UnLCAnc3R6aENsb3NlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVG9vbHRpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhUb29sdGlwRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhPcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcE9wZW5FdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoT3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcE9wZW5lZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb29sdGlwU3R6aFRvb2x0aXBDbG9zZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwQ2xvc2VkRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRvb2x0aXBPcGVuRXZlbnQgYXMgSVN0emhUb29sdGlwU3R6aFRvb2x0aXBPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb29sdGlwT3BlbmVkRXZlbnQgYXMgSVN0emhUb29sdGlwU3R6aFRvb2x0aXBPcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvb2x0aXBDbG9zZUV2ZW50IGFzIElTdHpoVG9vbHRpcFN0emhUb29sdGlwQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvb2x0aXBDbG9zZWRFdmVudCBhcyBJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcENsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRvb2x0aXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUb29sdGlwIHtcbiAgLyoqXG4gICAqIFRvb2x0aXAgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcE9wZW5FdmVudD4+O1xuICAvKipcbiAgICogVG9vbHRpcCBvcGVuZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhPcGVuZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcE9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb29sdGlwIGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcENsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvb2x0aXAgY2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb29sdGlwU3R6aFRvb2x0aXBDbG9zZWRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10d29jb2x1bW5zJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUd29jb2x1bW5zIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFR3b2NvbHVtbnNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVHdvY29sdW1ucyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFR3b2NvbHVtbnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWNjZXB0JywgJ2FjY2VwdGVkRmlsZXMnLCAnYXV0b1Byb2Nlc3NRdWV1ZScsICdidXR0b24nLCAnYnV0dG9uU2NhbicsICdjaHVua1NpemUnLCAnY2h1bmtpbmcnLCAnY2h1bmtzVXBsb2FkZWQnLCAnZGVmYXVsdEhlYWRlcnMnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZVRvYXN0cycsICdkaXNhYmxlZCcsICdkb3dubG9hZERpc2FibGVkJywgJ2Rvd25sb2FkRGlzYWJsZWRXaGlsZVByb2Nlc3NpbmcnLCAnZXJyb3InLCAnZXhpc3RpbmdGaWxlcycsICdmaWxlc2l6ZUJhc2UnLCAnZm9yY2VDaHVua2luZycsICdoZWFkZXJzJywgJ2hlYWRlcnNBc3luYycsICdoaWRkZW5JbnB1dENvbnRhaW5lcicsICdoaWRlT3B0aW9uYWwnLCAnaGlkZVByb2dyZXNzJywgJ2hpZGVQcm9ncmVzc1doaWxlSWRsZScsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xlYWRpbmdJY29uJywgJ2xvY2FsaXphdGlvbicsICdtYXhGaWxlcycsICdtYXhGaWxlc2l6ZScsICdtYXhGaWxlc2l6ZVRvdGFsJywgJ21ldGhvZCcsICduYW1lJywgJ25vTGFiZWxUcnVuY2F0ZScsICdwYXJhbGxlbENodW5rVXBsb2FkcycsICdwYXJhbGxlbFVwbG9hZHMnLCAncGhvdG9ncmFwaGluZ0VuYWJsZWQnLCAncHJldmVudER1cGxpY2F0ZUZpbGVOYW1lcycsICdwcmV2ZW50SGlkZGVuSW5wdXRDbGVhcicsICdyZXF1aXJlZCcsICdyZXRyeUNodW5rcycsICdyZXRyeUNodW5rc0xpbWl0JywgJ3VwbG9hZE11bHRpcGxlJywgJ3VybCcsICd3aXRoQ3JlZGVudGlhbHMnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1cycsICdwcm9jZXNzUXVldWUnLCAncmVtb3ZlRmlsZScsICdyZW1vdmVBbGxGaWxlcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC11cGxvYWQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjY2VwdCcsICdhY2NlcHRlZEZpbGVzJywgJ2F1dG9Qcm9jZXNzUXVldWUnLCAnYnV0dG9uJywgJ2J1dHRvblNjYW4nLCAnY2h1bmtTaXplJywgJ2NodW5raW5nJywgJ2NodW5rc1VwbG9hZGVkJywgJ2RlZmF1bHRIZWFkZXJzJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVUb2FzdHMnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWREaXNhYmxlZCcsICdkb3dubG9hZERpc2FibGVkV2hpbGVQcm9jZXNzaW5nJywgJ2Vycm9yJywgJ2V4aXN0aW5nRmlsZXMnLCAnZmlsZXNpemVCYXNlJywgJ2ZvcmNlQ2h1bmtpbmcnLCAnaGVhZGVycycsICdoZWFkZXJzQXN5bmMnLCAnaGlkZGVuSW5wdXRDb250YWluZXInLCAnaGlkZU9wdGlvbmFsJywgJ2hpZGVQcm9ncmVzcycsICdoaWRlUHJvZ3Jlc3NXaGlsZUlkbGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsZWFkaW5nSWNvbicsICdsb2NhbGl6YXRpb24nLCAnbWF4RmlsZXMnLCAnbWF4RmlsZXNpemUnLCAnbWF4RmlsZXNpemVUb3RhbCcsICdtZXRob2QnLCAnbmFtZScsICdub0xhYmVsVHJ1bmNhdGUnLCAncGFyYWxsZWxDaHVua1VwbG9hZHMnLCAncGFyYWxsZWxVcGxvYWRzJywgJ3Bob3RvZ3JhcGhpbmdFbmFibGVkJywgJ3ByZXZlbnREdXBsaWNhdGVGaWxlTmFtZXMnLCAncHJldmVudEhpZGRlbklucHV0Q2xlYXInLCAncmVxdWlyZWQnLCAncmV0cnlDaHVua3MnLCAncmV0cnlDaHVua3NMaW1pdCcsICd1cGxvYWRNdWx0aXBsZScsICd1cmwnLCAnd2l0aENyZWRlbnRpYWxzJ10sXG4gIG91dHB1dHM6IFsnc3R6aEZpbGVBZGRlZCcsICdzdHpoRmlsZXNBZGRlZCcsICdzdHpoRmlsZVJlbW92ZScsICdzdHpoRmlsZVJlbW92ZWQnLCAnc3R6aFNlbmRpbmcnLCAnc3R6aFNlbmRpbmdNdWx0aXBsZScsICdzdHpoUHJvY2Vzc2luZycsICdzdHpoUHJvY2Vzc2luZ011bHRpcGxlJywgJ3N0emhQcm9ncmVzcycsICdzdHpoUHJvZ3Jlc3NUb3RhbCcsICdzdHpoRXJyb3InLCAnc3R6aEVycm9yTXVsdGlwbGUnLCAnc3R6aFN1Y2Nlc3MnLCAnc3R6aFN1Y2Nlc3NNdWx0aXBsZScsICdzdHpoQ2FuY2VsZWQnLCAnc3R6aENhbmNlbGVkTXVsdGlwbGUnLCAnc3R6aENvbXBsZXRlJywgJ3N0emhDb21wbGV0ZU11bHRpcGxlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhVcGxvYWQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoVXBsb2FkRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhGaWxlQWRkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVBZGRlZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhGaWxlc0FkZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlc0FkZGVkRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEZpbGVSZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVSZW1vdmVFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRmlsZVJlbW92ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVSZW1vdmVkRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFNlbmRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFNlbmRpbmdFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoU2VuZGluZ011bHRpcGxlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRTZW5kaW5nTXVsdGlwbGVFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoUHJvY2Vzc2luZyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhQcm9jZXNzaW5nTXVsdGlwbGUgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2Nlc3NpbmdNdWx0aXBsZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhQcm9ncmVzcyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoUHJvZ3Jlc3NUb3RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NUb3RhbEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhFcnJvciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRXJyb3JFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRXJyb3JNdWx0aXBsZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRXJyb3JNdWx0aXBsZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhTdWNjZXNzID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRTdWNjZXNzRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFN1Y2Nlc3NNdWx0aXBsZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU3VjY2Vzc011bHRpcGxlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENhbmNlbGVkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDYW5jZWxlZE11bHRpcGxlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZE11bHRpcGxlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENvbXBsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDb21wbGV0ZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDb21wbGV0ZU11bHRpcGxlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDb21wbGV0ZU11bHRpcGxlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZEZpbGVBZGRlZEV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVBZGRlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRmlsZXNBZGRlZEV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVzQWRkZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZEZpbGVSZW1vdmVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlUmVtb3ZlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRGaWxlUmVtb3ZlZEV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVSZW1vdmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRTZW5kaW5nRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkU2VuZGluZ0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkU2VuZGluZ011bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkU2VuZGluZ011bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRQcm9jZXNzaW5nRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkUHJvY2Vzc2luZ011bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ011bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRQcm9ncmVzc0V2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2dyZXNzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRQcm9ncmVzc1RvdGFsRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NUb3RhbEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRXJyb3JFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRFcnJvckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRXJyb3JNdWx0aXBsZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFN1Y2Nlc3NFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRTdWNjZXNzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRTdWNjZXNzTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRTdWNjZXNzTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZENhbmNlbGVkRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkQ2FuY2VsZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZENhbmNlbGVkTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZE11bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRDb21wbGV0ZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZENvbXBsZXRlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRDb21wbGV0ZU11bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkQ29tcGxldGVNdWx0aXBsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFVwbG9hZCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFVwbG9hZCB7XG4gIC8qKlxuICAgKiBGaWxlIGFkZGVkXG4gICAqL1xuICBzdHpoRmlsZUFkZGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZUFkZGVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGVzIGFkZGVkIChtdWx0aXBsZSlcbiAgICovXG4gIHN0emhGaWxlc0FkZGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZXNBZGRlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlIHJlbW92ZSAoYmVmb3JlLCBjYW5jZWxhYmxlKVxuICAgKi9cbiAgc3R6aEZpbGVSZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGUgcmVtb3ZlZFxuICAgKi9cbiAgc3R6aEZpbGVSZW1vdmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZVJlbW92ZWRFdmVudD4+O1xuICAvKipcbiAgICogQmVmb3JlIHNlbmRpbmcgZmlsZSAoYWRkIGFkZGl0aW9uYWwgZGF0YSBiZWZvcmUgcmVxdWVzdCBpZiBuZWNlc3NhcnkpXG4gICAqL1xuICBzdHpoU2VuZGluZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFNlbmRpbmdFdmVudD4+O1xuICAvKipcbiAgICogQmVmb3JlIHNlbmRpbmcgbXVsdGlwbGUgZmlsZXMgKGFkZCBhZGRpdGlvbmFsIGRhdGEgYmVmb3JlIHJlcXVlc3QgaWYgbmVjZXNzYXJ5KVxuICAgKi9cbiAgc3R6aFNlbmRpbmdNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFNlbmRpbmdNdWx0aXBsZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBzdGFydGluZyB0byBnZXQgcHJvY2Vzc2VkXG4gICAqL1xuICBzdHpoUHJvY2Vzc2luZzogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2Nlc3NpbmdFdmVudD4+O1xuICAvKipcbiAgICogRmlsZXMgc3RhcnRpbmcgdG8gZ2V0IHByb2Nlc3NlZCAobXVsdGlwbGUpXG4gICAqL1xuICBzdHpoUHJvY2Vzc2luZ011bHRpcGxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvY2Vzc2luZ011bHRpcGxlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFVwbG9hZCBmaWxlIHByb2dyZXNzIGR1cmluZyB1cGxvYWRcbiAgICovXG4gIHN0emhQcm9ncmVzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2dyZXNzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFVwbG9hZCB0b3RhbCBmaWxlIHByb2dyZXNzIGR1cmluZyB1cGxvYWRcbiAgICovXG4gIHN0emhQcm9ncmVzc1RvdGFsOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkUHJvZ3Jlc3NUb3RhbEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlIGVycm9yXG4gICAqL1xuICBzdHpoRXJyb3I6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRFcnJvckV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBlcnJvciAobXVsdGlwbGUgZmlsZXMpXG4gICAqL1xuICBzdHpoRXJyb3JNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yTXVsdGlwbGVFdmVudD4+O1xuICAvKipcbiAgICogRmlsZSBzdWNjZXNzZnVsbHkgdXBsb2FkZWRcbiAgICovXG4gIHN0emhTdWNjZXNzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU3VjY2Vzc0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBzdWNjZXNzZnVsbHkgdXBsb2FkZWQgKG11bHRpcGxlIGZpbGVzKVxuICAgKi9cbiAgc3R6aFN1Y2Nlc3NNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFN1Y2Nlc3NNdWx0aXBsZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBDYW5jZWxlZCBmaWxlIHVwbG9hZFxuICAgKi9cbiAgc3R6aENhbmNlbGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkQ2FuY2VsZWRFdmVudD4+O1xuICAvKipcbiAgICogQ2FuY2VsZWQgZmlsZSB1cGxvYWQgKG11bHRpcGxlIGZpbGVzKVxuICAgKi9cbiAgc3R6aENhbmNlbGVkTXVsdGlwbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDYW5jZWxlZE11bHRpcGxlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENvbXBsZXRlZCB1cGxvYWQgKHN1Y2Nlc3NmdWxseSBvciB3aXRoIGVycm9yKVxuICAgKi9cbiAgc3R6aENvbXBsZXRlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkQ29tcGxldGVFdmVudD4+O1xuICAvKipcbiAgICogQ29tcGxldGVkIHVwbG9hZCAoc3VjY2Vzc2Z1bGx5IG9yIHdpdGggZXJyb3IsIG11bHRpcGxlIGZpbGVzKVxuICAgKi9cbiAgc3R6aENvbXBsZXRlTXVsdGlwbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRDb21wbGV0ZU11bHRpcGxlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b3BsYXlUaW1lb3V0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1jYXJvdXNlbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b3BsYXlUaW1lb3V0J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpDYXJvdXNlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhWYnpDYXJvdXNlbEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpDYXJvdXNlbCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZiekNhcm91c2VsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhbmd1YWdlJywgJ3p2dlNjcmlwdCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotY29ubmVjdGlvbi1maW5kZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhbmd1YWdlJywgJ3p2dlNjcmlwdCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVmJ6Q29ubmVjdGlvbkZpbmRlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhWYnpDb25uZWN0aW9uRmluZGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiekNvbm5lY3Rpb25GaW5kZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhWYnpDb25uZWN0aW9uRmluZGVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdxdWlja2xpbmtzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1pbnRybycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJywgJ3F1aWNrbGlua3MnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZiekludHJvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFZiekludHJvRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiekludHJvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6SW50cm8ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aXZlJywgJ2FsZXJ0JywgJ2FuYWx5dGljc0lkJywgJ2Rpc2FibGVkJywgJ2dsb2JhbCcsICdpY29uJywgJ2xpbmUnLCAndXNlQXBpTGluZUNvbG9ycyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotbGluZWNoaXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhbGVydCcsICdhbmFseXRpY3NJZCcsICdkaXNhYmxlZCcsICdnbG9iYWwnLCAnaWNvbicsICdsaW5lJywgJ3VzZUFwaUxpbmVDb2xvcnMnXSxcbiAgb3V0cHV0czogWydzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZiekxpbmVjaGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFZiekxpbmVjaGlwRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhWYnpMaW5lY2hpcFN0emhWYnpMaW5lY2hpcEZvY3VzRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVmJ6TGluZWNoaXBTdHpoVmJ6TGluZWNoaXBCbHVyRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFZiekxpbmVjaGlwRm9jdXNFdmVudCBhcyBJU3R6aFZiekxpbmVjaGlwU3R6aFZiekxpbmVjaGlwRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFZiekxpbmVjaGlwQmx1ckV2ZW50IGFzIElTdHpoVmJ6TGluZWNoaXBTdHpoVmJ6TGluZWNoaXBCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVmJ6TGluZWNoaXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhWYnpMaW5lY2hpcCB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhWYnpMaW5lY2hpcFN0emhWYnpMaW5lY2hpcEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhWYnpMaW5lY2hpcFN0emhWYnpMaW5lY2hpcEJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcGknLCAnZGF0YScsICdkYXRlQWRhcHRlcicsICdsb2NhbGl6YXRpb24nLCAnbW9yZUluZm9MaW5rJ10sXG4gIG1ldGhvZHM6IFsnZ2V0RGlzdHVyYmFuY2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdmJ6LW1ham9ydGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcGknLCAnZGF0YScsICdkYXRlQWRhcHRlcicsICdsb2NhbGl6YXRpb24nLCAnbW9yZUluZm9MaW5rJ10sXG4gIG91dHB1dHM6IFsnc3R6aERpc3R1cmJhbmNlRmV0Y2hlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVmJ6TWFqb3J0aWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoVmJ6TWFqb3J0aWNrZXJFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aERpc3R1cmJhbmNlRmV0Y2hlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhWYnpNYWpvcnRpY2tlclN0emhWYnpNYWpvcnRpY2tlckRpc3R1cmJhbmNlRmV0Y2hlZEV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhWYnpNYWpvcnRpY2tlckRpc3R1cmJhbmNlRmV0Y2hlZEV2ZW50IGFzIElTdHpoVmJ6TWFqb3J0aWNrZXJTdHpoVmJ6TWFqb3J0aWNrZXJEaXN0dXJiYW5jZUZldGNoZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpNYWpvcnRpY2tlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZiek1ham9ydGlja2VyIHtcbiAgLyoqXG4gICAqIEV2ZW50IHdoZW4gbWFqb3IgZGlzdHVyYmFuY2Ugd2FzIGZldGNoZWRcbiAgICovXG4gIHN0emhEaXN0dXJiYW5jZUZldGNoZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFZiek1ham9ydGlja2VyU3R6aFZiek1ham9ydGlja2VyRGlzdHVyYmFuY2VGZXRjaGVkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBpJywgJ2RhdGEnLCAnZGF0ZUFkYXB0ZXInLCAnbG9jYWxpemF0aW9uJywgJ21vcmVJbmZvTGluaycsICd1c2VBcGlMaW5lQ29sb3JzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei10aWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwaScsICdkYXRhJywgJ2RhdGVBZGFwdGVyJywgJ2xvY2FsaXphdGlvbicsICdtb3JlSW5mb0xpbmsnLCAndXNlQXBpTGluZUNvbG9ycyddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVmJ6VGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFZielRpY2tlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpUaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhWYnpUaWNrZXIge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdmlzdWFsbHloaWRkZW4nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZpc3VhbGx5aGlkZGVuIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFZpc3VhbGx5aGlkZGVuRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZpc3VhbGx5aGlkZGVuIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmlzdWFsbHloaWRkZW4ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2Fyb3VuZEJvdHRvbScsICdhcm91bmRUb3AnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZzcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2Fyb3VuZEJvdHRvbScsICdhcm91bmRUb3AnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWc3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoVnNwYWNlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZzcGFjZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZzcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb29raWUnLCAnY29va2llRXhwaXJlcycsICdsb2NhbGl6YXRpb24nLCAnc2tpcFByZXZpZXcnLCAnc2tpcFByZXZpZXdJZkNvb2tpZUFjY2VwdGVkJywgJ3VybCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC15b3V0dWJlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb29raWUnLCAnY29va2llRXhwaXJlcycsICdsb2NhbGl6YXRpb24nLCAnc2tpcFByZXZpZXcnLCAnc2tpcFByZXZpZXdJZkNvb2tpZUFjY2VwdGVkJywgJ3VybCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoWW91dHViZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhZb3V0dWJlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFlvdXR1YmUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhZb3V0dWJlIHt9XG5cblxuIl19
4314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJveGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0emgtY29tcG9uZW50cy1hbmd1bGFyL3NyYy9saWIvc3RlbmNpbC1nZW5lcmF0ZWQvcHJveGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsb0JBQW9CO0FBQ3BCLDhDQUE4QztBQUM5QyxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWhJLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFrQmxELFdBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWE7SUFHeEIsWUFBWSxDQUFvQixFQUFFLENBQWEsRUFBWSxDQUFTO1FBQVQsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUQxRCxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBOEQsQ0FBQztRQUUzRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQzsrR0FOVSxhQUFhO21HQUFiLGFBQWEsK05BTmQsMkJBQTJCOztBQU0xQixhQUFhO0lBYnpCLFFBQVEsQ0FBQztRQUNSLE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxDQUFDO1FBQ2hFLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztLQUMxQixDQUFDO0dBVVcsYUFBYSxDQU96Qjs0RkFQWSxhQUFhO2tCQVR6QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyx1RUFBdUU7b0JBQ3ZFLE1BQU0sRUFBRSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsU0FB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LFVBQVUsRUFBRSxLQUFLO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIHRzbGludDpkaXNhYmxlICovXG4vKiBhdXRvLWdlbmVyYXRlZCBhbmd1bGFyIGRpcmVjdGl2ZSBwcm94aWVzICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQcm94eUNtcCB9IGZyb20gJy4vYW5ndWxhci1jb21wb25lbnQtbGliL3V0aWxzJztcblxuaW1wb3J0IHsgQ29tcG9uZW50cyB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sbGFwc2libGUnLCAnaGVhZGluZycsICdtdWx0aXNlbGVjdGFibGUnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ3NldEl0ZW1Gb2N1cyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hY2NvcmRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbGxhcHNpYmxlJywgJ2hlYWRpbmcnLCAnbXVsdGlzZWxlY3RhYmxlJywgJ3ZhcmlhbnQnXSxcbiAgb3V0cHV0czogWydzdHpoVmFyaWFudENoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQWNjb3JkaW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEFjY29yZGlvbkVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoVmFyaWFudENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25TdHpoQWNjb3JkaW9uVmFyaWFudENoYW5nZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25WYXJpYW50Q2hhbmdlRXZlbnQgYXMgSVN0emhBY2NvcmRpb25TdHpoQWNjb3JkaW9uVmFyaWFudENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFjY29yZGlvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFjY29yZGlvbiB7XG4gIC8qKlxuICAgKiBWYXJpYW50IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFZhcmlhbnRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvblN0emhBY2NvcmRpb25WYXJpYW50Q2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY29sbGFwc2libGUnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaWNvbicsICdvcGVuJywgJ3N1YnRpdGxlJywgJ3ZhcmlhbnQnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9nZ2xlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFjY29yZGlvbi1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjb2xsYXBzaWJsZScsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlZCcsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpY29uJywgJ29wZW4nLCAnc3VidGl0bGUnLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBY2NvcmRpb25JdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEFjY29yZGlvbkl0ZW1FbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aE9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtT3BlbkV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhPcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtT3BlbmVkRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtRm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1CbHVyRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1PcGVuRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1PcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtT3BlbmVkRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50IGFzIElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudCBhcyBJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUZvY3VzRXZlbnQgYXMgSVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQWNjb3JkaW9uSXRlbUJsdXJFdmVudCBhcyBJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBY2NvcmRpb25JdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQWNjb3JkaW9uSXRlbSB7XG4gIC8qKlxuICAgKiBPcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBPcGVuZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhPcGVuZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjY29yZGlvbkl0ZW1TdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY2NvcmRpb25JdGVtU3R6aEFjY29yZGlvbkl0ZW1Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQWNjb3JkaW9uSXRlbVN0emhBY2NvcmRpb25JdGVtQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3NwYWNlQmV0d2VlbicsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFjdGlvbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3NwYWNlQmV0d2VlbicsICd2YXJpYW50J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBY3Rpb25zIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEFjdGlvbnNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQWN0aW9ucyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFjdGlvbnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aW9ucycsICdsb2NhbGl6YXRpb24nLCAncG9wb3ZlckJ1dHRvblNpemUnLCAncG9wb3ZlckJ1dHRvblZhcmlhbnQnLCAncG9wb3ZlclBsYWNlbWVudCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFjdGlvbnNldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWN0aW9ucycsICdsb2NhbGl6YXRpb24nLCAncG9wb3ZlckJ1dHRvblNpemUnLCAncG9wb3ZlckJ1dHRvblZhcmlhbnQnLCAncG9wb3ZlclBsYWNlbWVudCcsICd2YXJpYW50J10sXG4gIG91dHB1dHM6IFsnc3R6aEFjdGlvbkNsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBY3Rpb25zZXQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQWN0aW9uc2V0RWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhBY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBY3Rpb25zZXRTdHpoQWN0aW9uc2V0SXRlbUNsaWNrRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFjdGlvbnNldEl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQWN0aW9uc2V0U3R6aEFjdGlvbnNldEl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFjdGlvbnNldCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFjdGlvbnNldCB7XG4gIC8qKlxuICAgKiBIZWFkZXIgYWN0aW9uIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEFjdGlvbnNldFN0emhBY3Rpb25zZXRJdGVtQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2xlYXJhYmxlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbWF4VmFsdWUnLCAnbWF4VmFsdWVEcm9wZG93bicsICdtaW5WYWx1ZScsICdtaW5WYWx1ZURyb3Bkb3duJywgJ25hbWUnLCAncG9wb3ZlclBsYWNlbWVudCcsICdyZXF1aXJlZCcsICdzaXplJywgJ3N0ZXAnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYW1vdW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2xlYXJhYmxlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbWF4VmFsdWUnLCAnbWF4VmFsdWVEcm9wZG93bicsICdtaW5WYWx1ZScsICdtaW5WYWx1ZURyb3Bkb3duJywgJ25hbWUnLCAncG9wb3ZlclBsYWNlbWVudCcsICdyZXF1aXJlZCcsICdzaXplJywgJ3N0ZXAnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydzdHpoQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBbW91bnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQW1vdW50RWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQW1vdW50U3R6aEFtb3VudENoYW5nZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBbW91bnRDaGFuZ2VFdmVudCBhcyBJU3R6aEFtb3VudFN0emhBbW91bnRDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBbW91bnQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBbW91bnQge1xuICAvKipcbiAgICogQW1vdW50IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQW1vdW50U3R6aEFtb3VudENoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1hbmNob3JuYXYnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddLFxuICBvdXRwdXRzOiBbJ3N0emhJdGVtQ2xpY2snXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFuY2hvcm5hdiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhBbmNob3JuYXZFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aEl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBbmNob3JuYXZTdHpoQW5jaG9ybmF2SXRlbUNsaWNrRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFuY2hvcm5hdkl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQW5jaG9ybmF2U3R6aEFuY2hvcm5hdkl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFuY2hvcm5hdiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFuY2hvcm5hdiB7XG4gIC8qKlxuICAgKiBJdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBbmNob3JuYXZTdHpoQW5jaG9ybmF2SXRlbUNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBwTmF2SWQnLCAnaXRlbXMnLCAnbG9jYWxpemF0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFwcC1uYXYnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwcE5hdklkJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddLFxuICBvdXRwdXRzOiBbJ3N0emhBcHBOYXZJdGVtQ2xpY2snXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFwcE5hdiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhBcHBOYXZFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aEFwcE5hdkl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBcHBOYXZTdHpoQXBwTmF2SXRlbUNsaWNrRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFwcE5hdkl0ZW1DbGlja0V2ZW50IGFzIElTdHpoQXBwTmF2U3R6aEFwcE5hdkl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEFwcE5hdiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEFwcE5hdiB7XG4gIC8qKlxuICAgKiBBcHBOYXYgaXRlbSBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEFwcE5hdkl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXBwTmF2U3R6aEFwcE5hdkl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwcG9pbnRtZW50cycsICdhcHBvaW50bWVudHNUaXRsZScsICdjYWxlbmRhclRpdGxlJywgJ2N1cnJlbnREYXRlJywgJ2RhdGVBZGFwdGVyJywgJ2Rpc2FibGVTb3J0JywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3Nob3dJdGVtcycsICdzb3J0QnknLCAnc3RlcEl0ZW1zJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFwcG9pbnRtZW50cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBwb2ludG1lbnRzJywgJ2FwcG9pbnRtZW50c1RpdGxlJywgJ2NhbGVuZGFyVGl0bGUnLCAnY3VycmVudERhdGUnLCAnZGF0ZUFkYXB0ZXInLCAnZGlzYWJsZVNvcnQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnc2hvd0l0ZW1zJywgJ3NvcnRCeScsICdzdGVwSXRlbXMnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydzdHpoQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhBcHBvaW50bWVudHMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQXBwb2ludG1lbnRzRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXBwb2ludG1lbnRzU3R6aEFwcG9pbnRtZW50c0NoYW5nZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhBcHBvaW50bWVudHNDaGFuZ2VFdmVudCBhcyBJU3R6aEFwcG9pbnRtZW50c1N0emhBcHBvaW50bWVudHNDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhBcHBvaW50bWVudHMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBcHBvaW50bWVudHMge1xuICAvKipcbiAgICogQXBwb2ludG1lbnRzIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXBwb2ludG1lbnRzU3R6aEFwcG9pbnRtZW50c0NoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbicsICdzaG93SXRlbXMnLCAnc3RlcEl0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWFyY2hpdmVsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpdGVtcycsICdsb2NhbGl6YXRpb24nLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcyddLFxuICBvdXRwdXRzOiBbJ3N0emhJdGVtQ2xpY2snXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEFyY2hpdmVsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEFyY2hpdmVsaXN0RWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhJdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXJjaGl2ZWxpc3RTdHpoQXJjaGl2ZWxpc3RJdGVtQ2xpY2tFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQXJjaGl2ZWxpc3RJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aEFyY2hpdmVsaXN0U3R6aEFyY2hpdmVsaXN0SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQXJjaGl2ZWxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhBcmNoaXZlbGlzdCB7XG4gIC8qKlxuICAgKiBJdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBcmNoaXZlbGlzdFN0emhBcmNoaXZlbGlzdEl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rvd25sb2FkQW5hbHl0aWNzSWQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZWxvYWQnLCAnc3JjJywgJ3RyYW5zY3JpcHQnLCAndHJhbnNjcmlwdEFuYWx5dGljc0lkJywgJ3RyYW5zY3JpcHRTaG93biddLFxuICBtZXRob2RzOiBbJ3BsYXknLCAncGF1c2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYXVkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rvd25sb2FkQW5hbHl0aWNzSWQnLCAnbG9jYWxpemF0aW9uJywgJ3ByZWxvYWQnLCAnc3JjJywgJ3RyYW5zY3JpcHQnLCAndHJhbnNjcmlwdEFuYWx5dGljc0lkJywgJ3RyYW5zY3JpcHRTaG93biddLFxuICBvdXRwdXRzOiBbJ3N0emhQbGF5JywgJ3N0emhQbGF5aW5nJywgJ3N0emhQYXVzZScsICdzdHpoUmVwbGF5JywgJ3N0emhFbmQnLCAnc3R6aEVuZGVkJywgJ3N0emhFcnJvciddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQXVkaW8ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQXVkaW9FbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aFBsYXkgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9QbGF5RXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFBsYXlpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9QbGF5aW5nRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFBhdXNlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvUGF1c2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoUmVwbGF5ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvUmVwbGF5RXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb0VuZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhFbmRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb0VuZGVkRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvRXJyb3JFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9QbGF5RXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb1BsYXlFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvUGxheWluZ0V2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9QbGF5aW5nRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb1BhdXNlRXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb1BhdXNlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBdWRpb1JlcGxheUV2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9SZXBsYXlFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEF1ZGlvRW5kRXZlbnQgYXMgSVN0emhBdWRpb1N0emhBdWRpb0VuZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9FbmRlZEV2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9FbmRlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQXVkaW9FcnJvckV2ZW50IGFzIElTdHpoQXVkaW9TdHpoQXVkaW9FcnJvckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEF1ZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQXVkaW8ge1xuICAvKipcbiAgICogRmlyZWQgd2hlbiB0aGUgcGF1c2VkIHByb3BlcnR5IGlzIGNoYW5nZWQgZnJvbSB0cnVlIHRvIGZhbHNlLCBhcyBhIHJlc3VsdCBvZiB0aGUgcGxheSgpIG1ldGhvZCwgb3IgdGhlIGF1dG9wbGF5IGF0dHJpYnV0ZS5cbiAgICovXG4gIHN0emhQbGF5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb1BsYXlFdmVudD4+O1xuICAvKipcbiAgICogRmlyZWQgd2hlbiBwbGF5YmFjayBpcyByZWFkeSB0byBzdGFydCBhZnRlciBoYXZpbmcgYmVlbiBwYXVzZWQgb3IgZGVsYXllZCBkdWUgdG8gbGFjayBvZiBkYXRhLlxuICAgKi9cbiAgc3R6aFBsYXlpbmc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvUGxheWluZ0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIGEgcmVxdWVzdCB0byBwYXVzZSBhbiBhY3Rpdml0eSBpcyBoYW5kbGVkIGFuZCB0aGUgYWN0aXZpdHkgaGFzIGVudGVyZWQgaXRzIHBhdXNlZCBzdGF0ZSwgbW9zdCBjb21tb25seSBhZnRlciB0aGUgbWVkaWEgaGFzIGJlZW4gcGF1c2VkIHRocm91Z2ggYSBjYWxsIHRvIHRoZSBwYXVzZSgpIG1ldGhvZC5cbiAgICovXG4gIHN0emhQYXVzZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9QYXVzZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaXJlZCB3aGVuIG1lZGlhIHBsYXliYWNrIHN0YXJ0cyBhZ2FpbiBhZnRlciBiZWluZyBpbiBhbiBlbmRlZCBzdGF0ZS4gVGhpcyBpcyBmaXJlZCB3aGVuIHRoZSBsb29wIHByb3BlcnR5IGlzIHRydWUgYW5kIG1lZGlhIGxvb3BzLCB3aGVyZWFzIHRoZSB2ZHMtcGxheSBldmVudCBpcyBub3QuXG4gICAqL1xuICBzdHpoUmVwbGF5OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhBdWRpb1N0emhBdWRpb1JlcGxheUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaXJlZCBlYWNoIHRpbWUgbWVkaWEgcGxheWJhY2sgaGFzIHJlYWNoZWQgdGhlIGVuZC4gVGhpcyBpcyBmaXJlZCBldmVuIGlmIHRoZSBsb29wIHByb3BlcnR5IGlzIHRydWUsIHdoaWNoIGlzIGdlbmVyYWxseSB3aGVuIHlvdSdkIHJlYWNoIGZvciB0aGlzIGV2ZW50IG92ZXIgdGhlIE1lZGlhRW5kZWRFdmVudCBpZiB5b3Ugd2FudCB0byBiZSBub3RpZmllZCBvZiBtZWRpYSBsb29waW5nLlxuICAgKi9cbiAgc3R6aEVuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9FbmRFdmVudD4+O1xuICAvKipcbiAgICogRmlyZWQgd2hlbiBwbGF5YmFjayBvciBzdHJlYW1pbmcgaGFzIHN0b3BwZWQgYmVjYXVzZSB0aGUgZW5kIG9mIHRoZSBtZWRpYSB3YXMgcmVhY2hlZCBvciBiZWNhdXNlIG5vIGZ1cnRoZXIgZGF0YSBpcyBhdmFpbGFibGUuIFRoaXMgaXMgbm90IGZpcmVkIGlmIHBsYXliYWNrIHdpbGwgc3RhcnQgZnJvbSB0aGUgYmVnaW5uaW5nIGFnYWluIGR1ZSB0byB0aGUgbG9vcCBwcm9wZXJ0eSBiZWluZyB0cnVlIChzZWUgTWVkaWFSZXBsYXlFdmVudCBhbmQgTWVkaWFFbmRFdmVudCkuXG4gICAqL1xuICBzdHpoRW5kZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEF1ZGlvU3R6aEF1ZGlvRW5kZWRFdmVudD4+O1xuICAvKipcbiAgICogRmlyZWQgd2hlbiBtZWRpYSBsb2FkaW5nIG9yIHBsYXliYWNrIGhhcyBlbmNvdW50ZXJlZCBhbnkgaXNzdWVzIChmb3IgZXhhbXBsZSwgYSBuZXR3b3JrIGNvbm5lY3Rpdml0eSBwcm9ibGVtKS4gVGhlIGV2ZW50IGRldGFpbCBjb250YWlucyBhIHBvdGVudGlhbCBtZXNzYWdlIGNvbnRhaW5pbmcgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3IgKGVtcHR5IHN0cmluZyBpZiBub3RoaW5nIGF2YWlsYWJsZSksIGFuZCBhIGNvZGUgdGhhdCBpZGVudGlmaWVzIHRoZSBnZW5lcmFsIHR5cGUgb2YgZXJyb3IgdGhhdCBvY2N1cnJlZC5cbiAgICovXG4gIHN0emhFcnJvcjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQXVkaW9TdHpoQXVkaW9FcnJvckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ3R5cGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtYmFkZ2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xhYmVsJywgJ3R5cGUnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEJhZGdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEJhZGdlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEJhZGdlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQmFkZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGlkZUNsb3NlJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICd0eXBlJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWJhbm5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUNsb3NlJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICd0eXBlJ10sXG4gIG91dHB1dHM6IFsnc3R6aE9wZW4nLCAnc3R6aENsb3NlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhCYW5uZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQmFubmVyRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhPcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJhbm5lclN0emhCYW5uZXJPcGVuRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJhbm5lclN0emhCYW5uZXJDbG9zZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhCYW5uZXJPcGVuRXZlbnQgYXMgSVN0emhCYW5uZXJTdHpoQmFubmVyT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQmFubmVyQ2xvc2VFdmVudCBhcyBJU3R6aEJhbm5lclN0emhCYW5uZXJDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEJhbm5lciBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJhbm5lciB7XG4gIC8qKlxuICAgKiBCYW5uZXIgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJhbm5lclN0emhCYW5uZXJPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJhbm5lciBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCYW5uZXJTdHpoQmFubmVyQ2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydleHBhbmRlZCcsICdpdGVtcycsICdsb2NhbGl6YXRpb24nLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1icmVhZGNydW1iJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydleHBhbmRlZCcsICdpdGVtcycsICdsb2NhbGl6YXRpb24nLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ3N0emhJdGVtQ2xpY2snXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEJyZWFkY3J1bWIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQnJlYWRjcnVtYkVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoSXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJyZWFkY3J1bWJTdHpoQnJlYWRjcnVtYkl0ZW1DbGlja0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhCcmVhZGNydW1iSXRlbUNsaWNrRXZlbnQgYXMgSVN0emhCcmVhZGNydW1iU3R6aEJyZWFkY3J1bWJJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhCcmVhZGNydW1iIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQnJlYWRjcnVtYiB7XG4gIC8qKlxuICAgKiBJdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCcmVhZGNydW1iU3R6aEJyZWFkY3J1bWJJdGVtQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUN1cnJlbnQnLCAnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlEaXNhYmxlZCcsICdhMTF5RXhwYW5kZWQnLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVBvc2l0aW9uJywgJ2JhZGdlVHlwZScsICdidXR0b25BY2Nlc3NrZXknLCAnYnV0dG9uSWQnLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkaXNhYmxlT25DbGljaycsICdkaXNhYmxlZCcsICdkb3dubG9hZCcsICdlZmZlY3QnLCAnZnVsbHdpZHRoJywgJ2hyZWYnLCAnaWNvbicsICdpY29uT25seScsICdpY29uUG9zaXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnbm9IeXBoZW5hdGlvbicsICdub1BhZGRpbmdMZWZ0JywgJ25vUGFkZGluZ1JpZ2h0JywgJ3JlbCcsICdyb3VuZGVkJywgJ3Nob3dUb2dnbGVJY29uJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndGV4dEFsaWduJywgJ3R5cGUnLCAndmFsdWUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1idXR0b24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlDb250cm9scycsICdhMTF5Q3VycmVudCcsICdhMTF5RGVzY3JpYmVkYnknLCAnYTExeURpc2FibGVkJywgJ2ExMXlFeHBhbmRlZCcsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlUG9zaXRpb24nLCAnYmFkZ2VUeXBlJywgJ2J1dHRvbkFjY2Vzc2tleScsICdidXR0b25JZCcsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rpc2FibGVPbkNsaWNrJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2VmZmVjdCcsICdmdWxsd2lkdGgnLCAnaHJlZicsICdpY29uJywgJ2ljb25Pbmx5JywgJ2ljb25Qb3NpdGlvbicsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdub0h5cGhlbmF0aW9uJywgJ25vUGFkZGluZ0xlZnQnLCAnbm9QYWRkaW5nUmlnaHQnLCAncmVsJywgJ3JvdW5kZWQnLCAnc2hvd1RvZ2dsZUljb24nLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RhcmdldCcsICd0ZXh0QWxpZ24nLCAndHlwZScsICd2YWx1ZScsICd2YXJpYW50J10sXG4gIG91dHB1dHM6IFsnc3R6aEZvY3VzJywgJ3N0emhCbHVyJywgJ3N0emhDaGFuZ2UnLCAnc3R6aENsaWNrJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhCdXR0b24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQnV0dG9uRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCdXR0b25TdHpoQnV0dG9uRm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCdXR0b25TdHpoQnV0dG9uQmx1ckV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnV0dG9uU3R6aEJ1dHRvbkNoYW5nZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCdXR0b25TdHpoQnV0dG9uQ2xpY2tFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQnV0dG9uRm9jdXNFdmVudCBhcyBJU3R6aEJ1dHRvblN0emhCdXR0b25Gb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQnV0dG9uQmx1ckV2ZW50IGFzIElTdHpoQnV0dG9uU3R6aEJ1dHRvbkJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEJ1dHRvbkNoYW5nZUV2ZW50IGFzIElTdHpoQnV0dG9uU3R6aEJ1dHRvbkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQnV0dG9uQ2xpY2tFdmVudCBhcyBJU3R6aEJ1dHRvblN0emhCdXR0b25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEJ1dHRvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEJ1dHRvbiB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhCdXR0b25TdHpoQnV0dG9uRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJ1dHRvblN0emhCdXR0b25CbHVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudCAob25seSBjYWxsZWQgaWYgdHlwZSBpcyByYWRpbylcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEJ1dHRvblN0emhCdXR0b25DaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQnV0dG9uU3R6aEJ1dHRvbkNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZnVsbHdpZHRoJywgJ3JvdW5kZWQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWJ1dHRvbmdyb3VwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydmdWxsd2lkdGgnLCAncm91bmRlZCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEJ1dHRvbmdyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEJ1dHRvbmdyb3VwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEJ1dHRvbmdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQnV0dG9uZ3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZmlyc3REYXlPZldlZWsnLCAnaXNEYXRlRGlzYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtaW4nLCAnbmV4dE1vbnRoQW5hbHl0aWNzSWQnLCAncHJldk1vbnRoQW5hbHl0aWNzSWQnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydzZXRGb2N1c2VkRGF5JywgJ3NldERhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FsZW5kYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ZpcnN0RGF5T2ZXZWVrJywgJ2lzRGF0ZURpc2FibGVkJywgJ2xvY2FsaXphdGlvbicsICdtYXgnLCAnbWluJywgJ25leHRNb250aEFuYWx5dGljc0lkJywgJ3ByZXZNb250aEFuYWx5dGljc0lkJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnc3R6aENoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FsZW5kYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ2FsZW5kYXJFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYWxlbmRhclN0emhDYWxlbmRhckNoYW5nZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYWxlbmRhckNoYW5nZUV2ZW50IGFzIElTdHpoQ2FsZW5kYXJTdHpoQ2FsZW5kYXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDYWxlbmRhciBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhbGVuZGFyIHtcbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBhIGRhdGUgaXMgc2VsZWN0ZWQuXG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYWxlbmRhclN0emhDYWxlbmRhckNoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JhY2tncm91bmRDb2xvcicsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjaGVja2VkJywgJ2NvbGxhcHNlZCcsICdjb2xsYXBzaWJsZScsICdkaXNhYmxlZCcsICdmb290ZXJBY3Rpb25zJywgJ2hlYWRlckFjdGlvbnMnLCAnaGVhZGVyQWN0aW9uc0JhZGdlJywgJ2hlYWRlckFjdGlvbnNCYWRnZVR5cGUnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaGlkZU1vdmVtZW50QWN0aW9ucycsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3NlbGVjdGFibGUnLCAnc29ydGFibGVEaXNhYmxlZCcsICdzdGFycmFibGUnLCAnc3RhcnJlZCcsICdzdWJ0aXRsZScsICdzdWJ0aXRsZUludGVyYWN0aXZlJywgJ3RhcmdldCcsICd2YWx1ZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhcmQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JhY2tncm91bmRDb2xvcicsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjaGVja2VkJywgJ2NvbGxhcHNlZCcsICdjb2xsYXBzaWJsZScsICdkaXNhYmxlZCcsICdmb290ZXJBY3Rpb25zJywgJ2hlYWRlckFjdGlvbnMnLCAnaGVhZGVyQWN0aW9uc0JhZGdlJywgJ2hlYWRlckFjdGlvbnNCYWRnZVR5cGUnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaGlkZU1vdmVtZW50QWN0aW9ucycsICdocmVmJywgJ2h5cGhlbnNFbmFibGVkJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3NlbGVjdGFibGUnLCAnc29ydGFibGVEaXNhYmxlZCcsICdzdGFycmFibGUnLCAnc3RhcnJlZCcsICdzdWJ0aXRsZScsICdzdWJ0aXRsZUludGVyYWN0aXZlJywgJ3RhcmdldCcsICd2YWx1ZScsICd2YXJpYW50J10sXG4gIG91dHB1dHM6IFsnc3R6aENsaWNrJywgJ3N0emhDb2xsYXBzZScsICdzdHpoU3VidGl0bGVDbGljaycsICdzdHpoU3RhckNsaWNrJywgJ3N0emhIZWFkZXJBY3Rpb25DbGljayddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FyZCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDYXJkRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRDbGlja0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDb2xsYXBzZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRDb2xsYXBzZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhTdWJ0aXRsZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZFN1YnRpdGxlQ2xpY2tFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoU3RhckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZFN0YXJDbGlja0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhIZWFkZXJBY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRIZWFkZXJBY3Rpb25DbGlja0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkQ29sbGFwc2VFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZENvbGxhcHNlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkU3VidGl0bGVDbGlja0V2ZW50IGFzIElTdHpoQ2FyZFN0emhDYXJkU3VidGl0bGVDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZFN0YXJDbGlja0V2ZW50IGFzIElTdHpoQ2FyZFN0emhDYXJkU3RhckNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkSGVhZGVyQWN0aW9uQ2xpY2tFdmVudCBhcyBJU3R6aENhcmRTdHpoQ2FyZEhlYWRlckFjdGlvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2FyZCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmQge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogQ29sbGFwc2UgZXZlbnRcbiAgICovXG4gIHN0emhDb2xsYXBzZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFN0emhDYXJkQ29sbGFwc2VFdmVudD4+O1xuICAvKipcbiAgICogU3VidGl0bGUgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhTdWJ0aXRsZUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU3R6aENhcmRTdWJ0aXRsZUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFN0YXIgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhTdGFyQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZFN0YXJDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBIZWFkZXIgYWN0aW9uIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoSGVhZGVyQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdHpoQ2FyZEhlYWRlckFjdGlvbkNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdsZWFkJywgJ3RhcmdldCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jYXJkLW5hdmlnYXRpb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnbGVhZCcsICd0YXJnZXQnXSxcbiAgb3V0cHV0czogWydzdHpoQ2xpY2snXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmROYXZpZ2F0aW9uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aENhcmROYXZpZ2F0aW9uRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkTmF2aWdhdGlvblN0emhDYXJkTmF2aWdhdGlvbkNsaWNrRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcmROYXZpZ2F0aW9uQ2xpY2tFdmVudCBhcyBJU3R6aENhcmROYXZpZ2F0aW9uU3R6aENhcmROYXZpZ2F0aW9uQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDYXJkTmF2aWdhdGlvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmROYXZpZ2F0aW9uIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50IChpZiBocmVmIGlzIHVzZWQpXG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmROYXZpZ2F0aW9uU3R6aENhcmROYXZpZ2F0aW9uQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdicmVhZGNydW1iSXRlbXMnLCAnZGF0YWxpc3RJdGVtcycsICdkYXRlQWRhcHRlcicsICdkYXRlbGluZScsICdkZXNjcmlwdGlvbicsICdkb3dubG9hZCcsICdkb3dubG9hZEhlYWRpbmcnLCAnZG93bmxvYWRNZXRhJywgJ2V2ZW50RGF0ZUVuZCcsICdldmVudERhdGVTdGFydCcsICdldmVudExvY2F0aW9uJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnaW1hZ2VQb3NpdGlvbicsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdwbGFjZWhvbGRlckltYWdlRW5hYmxlZCcsICdzZXJ2aWNlJywgJ3RhZycsICd0YXJnZXQnLCAndG9waWMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2FyZC1zZWFyY2hyZXN1bHQnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JyZWFkY3J1bWJJdGVtcycsICdkYXRhbGlzdEl0ZW1zJywgJ2RhdGVBZGFwdGVyJywgJ2RhdGVsaW5lJywgJ2Rlc2NyaXB0aW9uJywgJ2Rvd25sb2FkJywgJ2Rvd25sb2FkSGVhZGluZycsICdkb3dubG9hZE1ldGEnLCAnZXZlbnREYXRlRW5kJywgJ2V2ZW50RGF0ZVN0YXJ0JywgJ2V2ZW50TG9jYXRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdpbWFnZVBvc2l0aW9uJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ3BsYWNlaG9sZGVySW1hZ2VFbmFibGVkJywgJ3NlcnZpY2UnLCAndGFnJywgJ3RhcmdldCcsICd0b3BpYyddLFxuICBvdXRwdXRzOiBbJ3N0emhDbGljayddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FyZFNlYXJjaHJlc3VsdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDYXJkU2VhcmNocmVzdWx0RWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJkU2VhcmNocmVzdWx0U3R6aENhcmRTZWFyY2hyZXN1bHRDbGlja0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkU2VhcmNocmVzdWx0Q2xpY2tFdmVudCBhcyBJU3R6aENhcmRTZWFyY2hyZXN1bHRTdHpoQ2FyZFNlYXJjaHJlc3VsdENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2FyZFNlYXJjaHJlc3VsdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENhcmRTZWFyY2hyZXN1bHQge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnQgKGlmIGhyZWYgaXMgdXNlZClcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2FyZFNlYXJjaHJlc3VsdFN0emhDYXJkU2VhcmNocmVzdWx0Q2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdicmVhZGNydW1iSXRlbXMnLCAnZGF0YWxpc3RJdGVtcycsICdkYXRlQWRhcHRlcicsICdkYXRlbGluZScsICdkZXNjcmlwdGlvbicsICdkb3dubG9hZCcsICdkb3dubG9hZEhlYWRpbmcnLCAnZG93bmxvYWRNZXRhJywgJ2V2ZW50RGF0ZUVuZCcsICdldmVudERhdGVTdGFydCcsICdldmVudExvY2F0aW9uJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2hyZWYnLCAnaHlwaGVuc0VuYWJsZWQnLCAnaW1hZ2VQb3NpdGlvbicsICdpc09uSG9tZXBhZ2UnLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAncGxhY2Vob2xkZXJJbWFnZUVuYWJsZWQnLCAnc2VydmljZScsICd0YWcnLCAndGFyZ2V0JywgJ3RvcGljJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhcmQtc3VwZXJ0ZWFzZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2JyZWFkY3J1bWJJdGVtcycsICdkYXRhbGlzdEl0ZW1zJywgJ2RhdGVBZGFwdGVyJywgJ2RhdGVsaW5lJywgJ2Rlc2NyaXB0aW9uJywgJ2Rvd25sb2FkJywgJ2Rvd25sb2FkSGVhZGluZycsICdkb3dubG9hZE1ldGEnLCAnZXZlbnREYXRlRW5kJywgJ2V2ZW50RGF0ZVN0YXJ0JywgJ2V2ZW50TG9jYXRpb24nLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaHJlZicsICdoeXBoZW5zRW5hYmxlZCcsICdpbWFnZVBvc2l0aW9uJywgJ2lzT25Ib21lcGFnZScsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdwbGFjZWhvbGRlckltYWdlRW5hYmxlZCcsICdzZXJ2aWNlJywgJ3RhZycsICd0YXJnZXQnLCAndG9waWMnXSxcbiAgb3V0cHV0czogWydzdHpoQ2xpY2snXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENhcmRTdXBlcnRlYXNlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDYXJkU3VwZXJ0ZWFzZXJFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdXBlcnRlYXNlclN0emhDYXJkU3VwZXJ0ZWFzZXJDbGlja0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDYXJkU3VwZXJ0ZWFzZXJDbGlja0V2ZW50IGFzIElTdHpoQ2FyZFN1cGVydGVhc2VyU3R6aENhcmRTdXBlcnRlYXNlckNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2FyZFN1cGVydGVhc2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2FyZFN1cGVydGVhc2VyIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50IChpZiBocmVmIGlzIHVzZWQpXG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRTdXBlcnRlYXNlclN0emhDYXJkU3VwZXJ0ZWFzZXJDbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2xheW91dCcsICdsb2NhbGl6YXRpb24nLCAnbWF4M0NvbHVtbnMnLCAnc2hvd1RvZ2dsZUxpbmsnLCAnc29ydGFibGVEYXRhSWRBdHRyaWJ1dGUnLCAnc29ydGFibGVFbmFibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNhcmRsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdsYXlvdXQnLCAnbG9jYWxpemF0aW9uJywgJ21heDNDb2x1bW5zJywgJ3Nob3dUb2dnbGVMaW5rJywgJ3NvcnRhYmxlRGF0YUlkQXR0cmlidXRlJywgJ3NvcnRhYmxlRW5hYmxlZCddLFxuICBvdXRwdXRzOiBbJ3N0emhDb2xsYXBzZUFsbCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2FyZGxpc3Qge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ2FyZGxpc3RFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aENvbGxhcHNlQWxsID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRsaXN0U3R6aENhcmRsaXN0Q29sbGFwc2VBbGxFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2FyZGxpc3RDb2xsYXBzZUFsbEV2ZW50IGFzIElTdHpoQ2FyZGxpc3RTdHpoQ2FyZGxpc3RDb2xsYXBzZUFsbEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENhcmRsaXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2FyZGxpc3Qge1xuICAvKipcbiAgICogQ29sbGFwc2UgYWxsIGV2ZW50XG4gICAqL1xuICBzdHpoQ29sbGFwc2VBbGw6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcmRsaXN0U3R6aENhcmRsaXN0Q29sbGFwc2VBbGxFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhdXRvcGxheScsICdhdXRvcGxheVRpbWVvdXQnLCAnZGlzYWJsZWQnLCAnbG9jYWxpemF0aW9uJywgJ25vUGVlaycsICdub25JbnRlcmFjdGl2ZScsICdwcmV2ZW50QXV0b3BsYXlQYXVzZScsICdwcmV2ZW50QXV0b3BsYXlTdG9wJywgJ3ByZXZlbnRNb3VzZURyYWcnLCAnc2xpZGUnLCAnc2xpZGVzJywgJ3NsaWRlc0xhcmdlJywgJ3NsaWRlc01lZGl1bScsICdzbGlkZXNTbWFsbCcsICdzbGlkZXNVbHRyYScsICd0YWJUaHJvdWdoJywgJ3ZhcmlhbnQnLCAnd2l0aFRyYWNrJ10sXG4gIG1ldGhvZHM6IFsnc2xpZGVUbycsICdzbGlkZVRvUHJldmlvdXMnLCAnc2xpZGVUb05leHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2Fyb3VzZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9wbGF5JywgJ2F1dG9wbGF5VGltZW91dCcsICdkaXNhYmxlZCcsICdsb2NhbGl6YXRpb24nLCAnbm9QZWVrJywgJ25vbkludGVyYWN0aXZlJywgJ3ByZXZlbnRBdXRvcGxheVBhdXNlJywgJ3ByZXZlbnRBdXRvcGxheVN0b3AnLCAncHJldmVudE1vdXNlRHJhZycsICdzbGlkZScsICdzbGlkZXMnLCAnc2xpZGVzTGFyZ2UnLCAnc2xpZGVzTWVkaXVtJywgJ3NsaWRlc1NtYWxsJywgJ3NsaWRlc1VsdHJhJywgJ3RhYlRocm91Z2gnLCAndmFyaWFudCcsICd3aXRoVHJhY2snXSxcbiAgb3V0cHV0czogWydzdHpoU2xpZGVTdGFydCcsICdzdHpoU2xpZGVQYXNzZWQnLCAnc3R6aFNsaWRlRW5kJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDYXJvdXNlbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDYXJvdXNlbEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoU2xpZGVTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJvdXNlbFN0emhDYXJvdXNlbFNsaWRlU3RhcnRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoU2xpZGVQYXNzZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZVBhc3NlZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhTbGlkZUVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDYXJvdXNlbFN0emhDYXJvdXNlbFNsaWRlRW5kRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENhcm91c2VsU2xpZGVTdGFydEV2ZW50IGFzIElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZVN0YXJ0RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJvdXNlbFNsaWRlUGFzc2VkRXZlbnQgYXMgSVN0emhDYXJvdXNlbFN0emhDYXJvdXNlbFNsaWRlUGFzc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDYXJvdXNlbFNsaWRlRW5kRXZlbnQgYXMgSVN0emhDYXJvdXNlbFN0emhDYXJvdXNlbFNsaWRlRW5kRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2Fyb3VzZWwgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDYXJvdXNlbCB7XG4gIC8qKlxuICAgKiBTbGlkZSBzdGFydCBldmVudFxuICAgKi9cbiAgc3R6aFNsaWRlU3RhcnQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENhcm91c2VsU3R6aENhcm91c2VsU2xpZGVTdGFydEV2ZW50Pj47XG4gIC8qKlxuICAgKiBTbGlkZSBwYXNzZWQgZXZlbnRcbiAgICovXG4gIHN0emhTbGlkZVBhc3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZVBhc3NlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBTbGlkZSBlbmQgZXZlbnRcbiAgICovXG4gIHN0emhTbGlkZUVuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2Fyb3VzZWxTdHpoQ2Fyb3VzZWxTbGlkZUVuZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsaWduJywgJ2FsaWduU2VsZicsICdzcGFuJywgJ3NwYW5MYXJnZScsICdzcGFuTWVkaXVtJywgJ3NwYW5TbWFsbCcsICdzcGFuVWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2VsbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWxpZ24nLCAnYWxpZ25TZWxmJywgJ3NwYW4nLCAnc3BhbkxhcmdlJywgJ3NwYW5NZWRpdW0nLCAnc3BhblNtYWxsJywgJ3NwYW5VbHRyYSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2VsbCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDZWxsRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENlbGwgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDZWxsIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NoYXJ0SWQnLCAnY3JlYXRlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNoYXJ0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjaGFydElkJywgJ2NyZWF0ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2hhcnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ2hhcnRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hhcnQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDaGFydCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hlY2tib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3N0emhDaGFuZ2UnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGVja2JveCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDaGVja2JveEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Q2hhbmdlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Rm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveFN0emhDaGVja2JveEJsdXJFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2hlY2tib3hDaGFuZ2VFdmVudCBhcyBJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDaGVja2JveEZvY3VzRXZlbnQgYXMgSVN0emhDaGVja2JveFN0emhDaGVja2JveEZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDaGVja2JveEJsdXJFdmVudCBhcyBJU3R6aENoZWNrYm94U3R6aENoZWNrYm94Qmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoZWNrYm94IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hlY2tib3gge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveFN0emhDaGVja2JveENoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveFN0emhDaGVja2JveEZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGVja2JveFN0emhDaGVja2JveEJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkQ2hlY2tib3gnLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXJlY3Rpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZUxlZ2VuZCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmVudFVwZGF0ZVByb3BlcnRpZXMnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY2hlY2tib3hncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZENoZWNrYm94JywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlyZWN0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVMZWdlbmQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3ByZXZlbnRVcGRhdGVQcm9wZXJ0aWVzJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnc3R6aENoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2hlY2tib3hncm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDaGVja2JveGdyb3VwRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hlY2tib3hncm91cFN0emhDaGVja2JveGdyb3VwQ2hhbmdlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENoZWNrYm94Z3JvdXBDaGFuZ2VFdmVudCBhcyBJU3R6aENoZWNrYm94Z3JvdXBTdHpoQ2hlY2tib3hncm91cENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENoZWNrYm94Z3JvdXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDaGVja2JveGdyb3VwIHtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hlY2tib3hncm91cFN0emhDaGVja2JveGdyb3VwQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2NvdW50ZXInLCAnZGlzYWJsZWQnLCAnaHJlZicsICdpY29uJywgJ2ludmVydGVkJywgJ2xhYmVsJywgJ25vbkludGVyYWN0aXZlJywgJ3JlbW92YWJsZScsICdyZW1vdmVBbmFseXRpY3NJZCcsICdyZW1vdmVMYWJlbCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndGFyZ2V0JywgJ3R5cGUnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYTExeUxhYmVsJywgJ2ExMXlUYWJpbmRleCcsICdhY3RpdmUnLCAnYW5hbHl0aWNzSWQnLCAnY291bnRlcicsICdkaXNhYmxlZCcsICdocmVmJywgJ2ljb24nLCAnaW52ZXJ0ZWQnLCAnbGFiZWwnLCAnbm9uSW50ZXJhY3RpdmUnLCAncmVtb3ZhYmxlJywgJ3JlbW92ZUFuYWx5dGljc0lkJywgJ3JlbW92ZUxhYmVsJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndHlwZScsICd2YXJpYW50J10sXG4gIG91dHB1dHM6IFsnc3R6aENsaWNrJywgJ3N0emhSZW1vdmUnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGlwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aENoaXBFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoaXBTdHpoQ2hpcENsaWNrRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBSZW1vdmVFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hpcFN0emhDaGlwRm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBCbHVyRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENoaXBDbGlja0V2ZW50IGFzIElTdHpoQ2hpcFN0emhDaGlwQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENoaXBSZW1vdmVFdmVudCBhcyBJU3R6aENoaXBTdHpoQ2hpcFJlbW92ZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2hpcEZvY3VzRXZlbnQgYXMgSVN0emhDaGlwU3R6aENoaXBGb2N1c0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ2hpcEJsdXJFdmVudCBhcyBJU3R6aENoaXBTdHpoQ2hpcEJsdXJFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDaGlwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hpcCB7XG4gIC8qKlxuICAgKiBDaGlwIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoaXBTdHpoQ2hpcENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENoaXAgcmVtb3ZlIGV2ZW50XG4gICAqL1xuICBzdHpoUmVtb3ZlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwU3R6aENoaXBSZW1vdmVFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2hpcFN0emhDaGlwRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENoaXBTdHpoQ2hpcEJsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGlwZ3JvdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENoaXBncm91cCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDaGlwZ3JvdXBFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hpcGdyb3VwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2hpcGdyb3VwIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdkYXRhJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZHJvcGRvd25Pbk1vYmlsZScsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbXVsdGlwbGUnLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jaGlwc2VsZWN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnZGF0YScsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Ryb3Bkb3duT25Nb2JpbGUnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ211bHRpcGxlJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydzdHpoQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDaGlwc2VsZWN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aENoaXBzZWxlY3RFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwc2VsZWN0U3R6aENoaXBzZWxlY3RDaGFuZ2VFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoQ2hpcHNlbGVjdENoYW5nZUV2ZW50IGFzIElTdHpoQ2hpcHNlbGVjdFN0emhDaGlwc2VsZWN0Q2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ2hpcHNlbGVjdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENoaXBzZWxlY3Qge1xuICAvKipcbiAgICogQ2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDaGlwc2VsZWN0U3R6aENoaXBzZWxlY3RDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbGFtcGVkJywgJ2V4cGFuZExpbmtTaXplJywgJ2V4cGFuZGVkJywgJ2xpbmVzJywgJ2xpbmVzTGFyZ2UnLCAnbGluZXNNZWRpdW0nLCAnbGluZXNTbWFsbCcsICdsaW5lc1VsdHJhJywgJ2xvY2FsaXphdGlvbicsICdzaG93RXhwYW5kTGluayddLFxuICBtZXRob2RzOiBbJ3VwZGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jbGFtcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xhbXBlZCcsICdleHBhbmRMaW5rU2l6ZScsICdleHBhbmRlZCcsICdsaW5lcycsICdsaW5lc0xhcmdlJywgJ2xpbmVzTWVkaXVtJywgJ2xpbmVzU21hbGwnLCAnbGluZXNVbHRyYScsICdsb2NhbGl6YXRpb24nLCAnc2hvd0V4cGFuZExpbmsnXSxcbiAgb3V0cHV0czogWydzdHpoQ2xhbXAnLCAnc3R6aEV4cGFuZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ2xhbXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoQ2xhbXBFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aENsYW1wID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENsYW1wU3R6aENsYW1wQ2xhbXBFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRXhwYW5kID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENsYW1wU3R6aENsYW1wRXhwYW5kRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aENsYW1wQ2xhbXBFdmVudCBhcyBJU3R6aENsYW1wU3R6aENsYW1wQ2xhbXBFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aENsYW1wRXhwYW5kRXZlbnQgYXMgSVN0emhDbGFtcFN0emhDbGFtcEV4cGFuZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENsYW1wIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ2xhbXAge1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBjbGFtcGluZyBzdGF0ZSBjaGFuZ2VkXG4gICAqL1xuICBzdHpoQ2xhbXA6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aENsYW1wU3R6aENsYW1wQ2xhbXBFdmVudD4+O1xuICAvKipcbiAgICogRXZlbnQgd2hlbiBleHBhbmRpbmcgc3RhdGUgY2hhbmdlZFxuICAgKi9cbiAgc3R6aEV4cGFuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoQ2xhbXBTdHpoQ2xhbXBFeHBhbmRFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jb21wYW55LWxvZ28nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbXBhbnlMb2dvIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aENvbXBhbnlMb2dvRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENvbXBhbnlMb2dvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ29tcGFueUxvZ28ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWRkaXRpb25hbEluZm9ybWF0aW9uJywgJ2FkZHJlc3MnLCAnYXZhaWxhYmlsaXR5JywgJ2F2YWlsYWJpbGl0eVRpdGxlJywgJ2F2YWlsYWJpbGl0eVRpdGxlTGV2ZWwnLCAnY2l0eUxhYmVsJywgJ2NvbnRhY3RUaXRsZScsICdkZXBhcnRhbWVudCcsICdlbWFpbHMnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnbG9jYXRpb24nLCAnbWFpbkhlYWRpbmcnLCAnbWFpbkhlYWRpbmdMZXZlbCcsICduYW1lJywgJ251bWJlcnMnLCAncGVyc29uUm9sZScsICdwb2JveCcsICdwb2JveEhlYWRpbmcnLCAncG9ib3hMb2NhdGlvbicsICdwb2JveFBvc3RhbENvZGUnLCAncG9ib3hUaXRsZScsICdwb3N0YWxDb2RlJywgJ3Jlc3BvbnNpYmlsaXR5JywgJ3Jlc3BvbnNpYmlsaXR5VGl0bGUnLCAnc3RyZWV0JywgJ3N0cmVldEluZm8nLCAndHlwZScsICd3ZWJzaXRlcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jb250YWN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhZGRpdGlvbmFsSW5mb3JtYXRpb24nLCAnYWRkcmVzcycsICdhdmFpbGFiaWxpdHknLCAnYXZhaWxhYmlsaXR5VGl0bGUnLCAnYXZhaWxhYmlsaXR5VGl0bGVMZXZlbCcsICdjaXR5TGFiZWwnLCAnY29udGFjdFRpdGxlJywgJ2RlcGFydGFtZW50JywgJ2VtYWlscycsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdsb2NhdGlvbicsICdtYWluSGVhZGluZycsICdtYWluSGVhZGluZ0xldmVsJywgJ25hbWUnLCAnbnVtYmVycycsICdwZXJzb25Sb2xlJywgJ3BvYm94JywgJ3BvYm94SGVhZGluZycsICdwb2JveExvY2F0aW9uJywgJ3BvYm94UG9zdGFsQ29kZScsICdwb2JveFRpdGxlJywgJ3Bvc3RhbENvZGUnLCAncmVzcG9uc2liaWxpdHknLCAncmVzcG9uc2liaWxpdHlUaXRsZScsICdzdHJlZXQnLCAnc3RyZWV0SW5mbycsICd0eXBlJywgJ3dlYnNpdGVzJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhDb250YWN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aENvbnRhY3RFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ29udGFjdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aENvbnRhY3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaG9iYmllcycsICdqb2J0aXRsZScsICdsb2NhbGl6YXRpb24nLCAncmVzcG9uc2liaWxpdGllcycsICd0cmFpbmluZ3MnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY29udGFjdC1jdicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaG9iYmllcycsICdqb2J0aXRsZScsICdsb2NhbGl6YXRpb24nLCAncmVzcG9uc2liaWxpdGllcycsICd0cmFpbmluZ3MnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbnRhY3RDdiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDb250YWN0Q3ZFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ29udGFjdEN2IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ29udGFjdEN2IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ25vTWFyZ2luJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWNvbnRhaW5lcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbm9NYXJnaW4nXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aENvbnRhaW5lciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDb250YWluZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoQ29udGFpbmVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoQ29udGFpbmVyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3ByZXZlbnRFbGVtZW50TGF5b3V0JywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY29udGVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsncHJldmVudEVsZW1lbnRMYXlvdXQnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ29udGVudCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDb250ZW50RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aENvbnRlbnQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDb250ZW50IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3ByZXZlbnRSZW1vdmVOZXN0ZWQnLCAncmVtb3ZlRmlyc3RNYXJnaW4nLCAncmVtb3ZlTGFzdE1hcmdpbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1jc3BhY2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3ByZXZlbnRSZW1vdmVOZXN0ZWQnLCAncmVtb3ZlRmlyc3RNYXJnaW4nLCAncmVtb3ZlTGFzdE1hcmdpbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoQ3NwYWNlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aENzcGFjZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhDc3BhY2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhDc3BhY2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZycsICdocmVmJywgJ2xhYmVsJywgJ2xlYWQnLCAnc3RpY2t5RGlzYWJsZWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtY3RhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hyZWYnLCAnbGFiZWwnLCAnbGVhZCcsICdzdGlja3lEaXNhYmxlZCddLFxuICBvdXRwdXRzOiBbJ3N0emhGb2N1cycsICdzdHpoQmx1cicsICdzdHpoQ2xpY2snXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEN0YSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhDdGFFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aEZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEN0YVN0emhDdGFGb2N1c0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEN0YVN0emhDdGFCbHVyRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEN0YVN0emhDdGFDbGlja0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhDdGFGb2N1c0V2ZW50IGFzIElTdHpoQ3RhU3R6aEN0YUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhDdGFCbHVyRXZlbnQgYXMgSVN0emhDdGFTdHpoQ3RhQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoQ3RhQ2xpY2tFdmVudCBhcyBJU3R6aEN0YVN0emhDdGFDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEN0YSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEN0YSB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhDdGFTdHpoQ3RhRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogQmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEN0YVN0emhDdGFCbHVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEN0YVN0emhDdGFDbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JpZ0xhYmVsJywgJ2NvbHVtbnMnLCAnY29sdW1uc0xhcmdlJywgJ2NvbHVtbnNNZWRpdW0nLCAnY29sdW1uc1NtYWxsJywgJ2NvbHVtbnNVbHRyYScsICdkaXJlY3Rpb24nLCAnZGlyZWN0aW9uTGFyZ2UnLCAnZGlyZWN0aW9uTWVkaXVtJywgJ2RpcmVjdGlvblNtYWxsJywgJ2RpcmVjdGlvblVsdHJhJywgJ2l0ZW1zJywgJ3ZhcmlhbnQnLCAndmVydGljYWxHYXAnXSxcbiAgbWV0aG9kczogWydnZXRDdXJyZW50RGlyZWN0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGFsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiaWdMYWJlbCcsICdjb2x1bW5zJywgJ2NvbHVtbnNMYXJnZScsICdjb2x1bW5zTWVkaXVtJywgJ2NvbHVtbnNTbWFsbCcsICdjb2x1bW5zVWx0cmEnLCAnZGlyZWN0aW9uJywgJ2RpcmVjdGlvbkxhcmdlJywgJ2RpcmVjdGlvbk1lZGl1bScsICdkaXJlY3Rpb25TbWFsbCcsICdkaXJlY3Rpb25VbHRyYScsICdpdGVtcycsICd2YXJpYW50JywgJ3ZlcnRpY2FsR2FwJ10sXG4gIG91dHB1dHM6IFsnc3R6aFZhcmlhbnRDaGFuZ2UnLCAnc3R6aEJpZ0xhYmVsQ2hhbmdlJywgJ3N0emhEaXJlY3Rpb25DaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERhdGFsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aERhdGFsaXN0RWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhWYXJpYW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0VmFyaWFudENoYW5nZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhCaWdMYWJlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdEJpZ0xhYmVsQ2hhbmdlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aERpcmVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdERpcmVjdGlvbkNoYW5nZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbGlzdFZhcmlhbnRDaGFuZ2VFdmVudCBhcyBJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0VmFyaWFudENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3RCaWdMYWJlbENoYW5nZUV2ZW50IGFzIElTdHpoRGF0YWxpc3RTdHpoRGF0YWxpc3RCaWdMYWJlbENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YWxpc3REaXJlY3Rpb25DaGFuZ2VFdmVudCBhcyBJU3R6aERhdGFsaXN0U3R6aERhdGFsaXN0RGlyZWN0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0YWxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhbGlzdCB7XG4gIC8qKlxuICAgKiBWYXJpYW50IGF0dHJpYnV0ZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhWYXJpYW50Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbGlzdFN0emhEYXRhbGlzdFZhcmlhbnRDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogQmlnIGxhYmVsIGF0dHJpYnV0ZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhCaWdMYWJlbENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RTdHpoRGF0YWxpc3RCaWdMYWJlbENoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXJlY3Rpb24gYXR0cmlidXRlIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aERpcmVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RTdHpoRGF0YWxpc3REaXJlY3Rpb25DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5Q29udHJvbHMnLCAnYTExeUV4cGFuZGVkJywgJ2ExMXlMYWJlbCcsICdkb3dubG9hZCcsICdoYXNOZXN0ZWQnLCAnaHJlZicsICdpY29uJywgJ2ljb25IcmVmJywgJ2ljb25MYWJlbCcsICdpY29uUG9zaXRpb24nLCAnaWNvblRvb2x0aXAnLCAnbGFiZWwnLCAnbGVhZGluZ0ljb24nLCAnbG9jYWxpemF0aW9uJywgJ21ldGEnLCAncmVhZHNwZWFrZXJIcmVmJywgJ3JlYWRzcGVha2VyTGFiZWwnLCAncmVsJywgJ3N0YXR1c0xhYmVsJywgJ3N0YXR1c1R5cGUnLCAndGFyZ2V0JywgJ3ZhbHVlJywgJ3ZhbHVlVHJ1bmNhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlFeHBhbmRlZCcsICdhMTF5TGFiZWwnLCAnZG93bmxvYWQnLCAnaGFzTmVzdGVkJywgJ2hyZWYnLCAnaWNvbicsICdpY29uSHJlZicsICdpY29uTGFiZWwnLCAnaWNvblBvc2l0aW9uJywgJ2ljb25Ub29sdGlwJywgJ2xhYmVsJywgJ2xlYWRpbmdJY29uJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ3JlYWRzcGVha2VySHJlZicsICdyZWFkc3BlYWtlckxhYmVsJywgJ3JlbCcsICdzdGF0dXNMYWJlbCcsICdzdGF0dXNUeXBlJywgJ3RhcmdldCcsICd2YWx1ZScsICd2YWx1ZVRydW5jYXRlJ10sXG4gIG91dHB1dHM6IFsnc3R6aEl0ZW1BY3Rpb25DbGljaycsICdzdHpoQ2xpY2snXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERhdGFsaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhEYXRhbGlzdEl0ZW1FbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aEl0ZW1BY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbGlzdEl0ZW1TdHpoRGF0YWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YWxpc3RJdGVtU3R6aERhdGFsaXN0SXRlbUNsaWNrRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERhdGFsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQgYXMgSVN0emhEYXRhbGlzdEl0ZW1TdHpoRGF0YWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGFsaXN0SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhEYXRhbGlzdEl0ZW1TdHpoRGF0YWxpc3RJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRhbGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhbGlzdEl0ZW0ge1xuICAvKipcbiAgICogSXRlbSBhY3Rpb24gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhJdGVtQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFsaXN0SXRlbVN0emhEYXRhbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFsaXN0SXRlbVN0emhEYXRhbGlzdEl0ZW1DbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGFtZXNzYWdlbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0YW1lc3NhZ2VsaXN0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aERhdGFtZXNzYWdlbGlzdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRhbWVzc2FnZWxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhbWVzc2FnZWxpc3Qge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWN0aW9ucycsICdhbmFseXRpY3NJZCcsICdkZXNjcmlwdGlvbicsICdoZWFkaW5nJywgJ2hyZWYnLCAnaWNvbicsICdsb2FkaW5nU3RhdHVzJywgJ2xvY2FsaXphdGlvbicsICdtZXRhJywgJ25vbkludGVyYWN0aXZlJywgJ3JlbCcsICd0YWdzJywgJ3RhcmdldCcsICd1bnJlYWQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZGF0YW1lc3NhZ2VsaXN0LWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FjdGlvbnMnLCAnYW5hbHl0aWNzSWQnLCAnZGVzY3JpcHRpb24nLCAnaGVhZGluZycsICdocmVmJywgJ2ljb24nLCAnbG9hZGluZ1N0YXR1cycsICdsb2NhbGl6YXRpb24nLCAnbWV0YScsICdub25JbnRlcmFjdGl2ZScsICdyZWwnLCAndGFncycsICd0YXJnZXQnLCAndW5yZWFkJ10sXG4gIG91dHB1dHM6IFsnc3R6aENsaWNrJywgJ3N0emhBY3Rpb25DbGljayddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhEYXRhbWVzc2FnZWxpc3RJdGVtRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1DbGlja0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhBY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1BY3Rpb25DbGlja0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQWN0aW9uQ2xpY2tFdmVudCBhcyBJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW0ge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbVN0emhEYXRhbWVzc2FnZWxpc3RJdGVtQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogQWN0aW9uIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQWN0aW9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGFtZXNzYWdlbGlzdEl0ZW1TdHpoRGF0YW1lc3NhZ2VsaXN0SXRlbUFjdGlvbkNsaWNrRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FwdGlvbicsICdjb2x1bW5zJywgJ2NzdkR5bmFtaWNUeXBpbmcnLCAnY3N2SGVhZGVyJywgJ2NzdlVybCcsICdkaXNhYmxlTWluV2lkdGgnLCAnaGlkZUNvbHVtbkhlYWRpbmdzJywgJ2hpZGVTZWFyY2gnLCAnaWRGaWVsZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAncGFnZScsICdwYWdlU2l6ZScsICdyb3dIZWFkZXJGaWVsZCcsICdyb3dzJywgJ3Nob3dMaXN0JywgJ3NvcnRCeScsICdzb3J0RGlyZWN0aW9uJywgJ3RhYmxlTGF5b3V0J10sXG4gIG1ldGhvZHM6IFsndG9nZ2xlU29ydCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kYXRhdGFibGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhcHRpb24nLCAnY29sdW1ucycsICdjc3ZEeW5hbWljVHlwaW5nJywgJ2NzdkhlYWRlcicsICdjc3ZVcmwnLCAnZGlzYWJsZU1pbldpZHRoJywgJ2hpZGVDb2x1bW5IZWFkaW5ncycsICdoaWRlU2VhcmNoJywgJ2lkRmllbGQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3BhZ2UnLCAncGFnZVNpemUnLCAncm93SGVhZGVyRmllbGQnLCAncm93cycsICdzaG93TGlzdCcsICdzb3J0QnknLCAnc29ydERpcmVjdGlvbicsICd0YWJsZUxheW91dCddLFxuICBvdXRwdXRzOiBbJ3N0emhSb3dDbGljaycsICdzdHpoQ2VsbENsaWNrJywgJ3N0emhIZWFkaW5nQ2VsbENsaWNrJywgJ3N0emhTb3J0Q2xpY2snLCAnc3R6aFNvcnRCeUNoYW5nZScsICdzdHpoU29ydERpcmVjdGlvbkNoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGF0YXRhYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aERhdGF0YWJsZUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoUm93Q2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVJvd0NsaWNrRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENlbGxDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlQ2VsbENsaWNrRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEhlYWRpbmdDZWxsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZUhlYWRpbmdDZWxsQ2xpY2tFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoU29ydENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVTb3J0Q2xpY2tFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoU29ydEJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVTb3J0QnlDaGFuZ2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoU29ydERpcmVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlU29ydERpcmVjdGlvbkNoYW5nZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVSb3dDbGlja0V2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVJvd0NsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZUhlYWRpbmdDZWxsQ2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVIZWFkaW5nQ2VsbENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEYXRhdGFibGVTb3J0Q2xpY2tFdmVudCBhcyBJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVTb3J0Q2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRGF0YXRhYmxlU29ydERpcmVjdGlvbkNoYW5nZUV2ZW50IGFzIElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnREaXJlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRhdGFibGUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEYXRhdGFibGUge1xuICAvKipcbiAgICogRGF0YXRhYmxlIHJvdyBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aFJvd0NsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlUm93Q2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRGF0YXRhYmxlIGNlbGwgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDZWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVDZWxsQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRGF0YXRhYmxlIGhlYWRpbmcgY2VsbCBjbGljayBldmVudFxuICAgKi9cbiAgc3R6aEhlYWRpbmdDZWxsQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGF0YWJsZVN0emhEYXRhdGFibGVIZWFkaW5nQ2VsbENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGF0YWJsZSBzb3J0IGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoU29ydENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEYXRhdGFibGVTdHpoRGF0YXRhYmxlU29ydENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERhdGF0YWJsZSBzb3J0IGJ5IGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aFNvcnRCeUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnRCeUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEYXRhdGFibGUgc29ydCBkaXJlY3Rpb24gY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoU29ydERpcmVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0YXRhYmxlU3R6aERhdGF0YWJsZVNvcnREaXJlY3Rpb25DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjYWxlbmRhcklzRGF0ZURpc2FibGVkJywgJ2NhbGVuZGFyTWF4JywgJ2NhbGVuZGFyTWluJywgJ2RhdGVBZGFwdGVyJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2lubGluZScsICdpbnRlcm5hbERhdGVBZGFwdGVyJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddLFxuICBtZXRob2RzOiBbJ3NldERhdGUnLCAnZ2V0UG9wb3ZlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kYXRlcGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjYWxlbmRhcklzRGF0ZURpc2FibGVkJywgJ2NhbGVuZGFyTWF4JywgJ2NhbGVuZGFyTWluJywgJ2RhdGVBZGFwdGVyJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2lubGluZScsICdpbnRlcm5hbERhdGVBZGFwdGVyJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3N0emhDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERhdGVwaWNrZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoRGF0ZXBpY2tlckVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERhdGVwaWNrZXJTdHpoRGF0ZXBpY2tlckNoYW5nZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhEYXRlcGlja2VyQ2hhbmdlRXZlbnQgYXMgSVN0emhEYXRlcGlja2VyU3R6aERhdGVwaWNrZXJDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhEYXRlcGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGF0ZXBpY2tlciB7XG4gIC8qKlxuICAgKiBEYXRlcGlja2VyIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGF0ZXBpY2tlclN0emhEYXRlcGlja2VyQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICdyYW5nZUxpbmtzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWRhdGVyYW5nZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICdyYW5nZUxpbmtzJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhEYXRlcmFuZ2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoRGF0ZXJhbmdlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERhdGVyYW5nZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aERhdGVyYW5nZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydvcGVuJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvZ2dsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kZXRhaWxzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydvcGVuJ10sXG4gIG91dHB1dHM6IFsnc3R6aE9wZW4nLCAnc3R6aE9wZW5lZCcsICdzdHpoQ2xvc2UnLCAnc3R6aENsb3NlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRGV0YWlscyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhEZXRhaWxzRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhPcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5FdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoT3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbU9wZW5lZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1PcGVuRXZlbnQgYXMgSVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1PcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhBY2NvcmRpb25JdGVtT3BlbmVkRXZlbnQgYXMgSVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1PcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1DbG9zZUV2ZW50IGFzIElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEFjY29yZGlvbkl0ZW1DbG9zZWRFdmVudCBhcyBJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbUNsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERldGFpbHMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEZXRhaWxzIHtcbiAgLyoqXG4gICAqIE9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEZXRhaWxzU3R6aEFjY29yZGlvbkl0ZW1PcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERldGFpbHNTdHpoQWNjb3JkaW9uSXRlbUNsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGV0YWlsc1N0emhBY2NvcmRpb25JdGVtQ2xvc2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeVJvbGUnLCAnY2xvc2VBbmFseXRpY3NJZCcsICdjbG9zZU9uQmFja2Ryb3BDbGljaycsICdjbG9zZU9uRXNjYXBlS2V5JywgJ2hlYWRpbmcnLCAnaGlkZUNsb3NlJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3NpemUnLCAnc3RheSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kaWFsb2cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlSb2xlJywgJ2Nsb3NlQW5hbHl0aWNzSWQnLCAnY2xvc2VPbkJhY2tkcm9wQ2xpY2snLCAnY2xvc2VPbkVzY2FwZUtleScsICdoZWFkaW5nJywgJ2hpZGVDbG9zZScsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICdzaXplJywgJ3N0YXknXSxcbiAgb3V0cHV0czogWydzdHpoT3BlbicsICdzdHpoQ2xvc2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERpYWxvZyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhEaWFsb2dFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aE9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlhbG9nU3R6aERpYWxvZ09wZW5FdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlhbG9nU3R6aERpYWxvZ0Nsb3NlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERpYWxvZ09wZW5FdmVudCBhcyBJU3R6aERpYWxvZ1N0emhEaWFsb2dPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEaWFsb2dDbG9zZUV2ZW50IGFzIElTdHpoRGlhbG9nU3R6aERpYWxvZ0Nsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRGlhbG9nIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRGlhbG9nIHtcbiAgLyoqXG4gICAqIERpYWxvZyBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlhbG9nU3R6aERpYWxvZ09wZW5FdmVudD4+O1xuICAvKipcbiAgICogRGlhbG9nIGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpYWxvZ1N0emhEaWFsb2dDbG9zZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NlS2V5JywgJ2hpZGVDbG9zZScsICdpbml0aWFsT3BlbkFuaW1hdGlvbicsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbiddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kaXN0dXJiZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NlS2V5JywgJ2hpZGVDbG9zZScsICdpbml0aWFsT3BlbkFuaW1hdGlvbicsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbiddLFxuICBvdXRwdXRzOiBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERpc3R1cmJlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhEaXN0dXJiZXJFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aE9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlck9wZW5FdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoT3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJPcGVuZWRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlckNsb3NlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyQ2xvc2VkRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERpc3R1cmJlck9wZW5FdmVudCBhcyBJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEaXN0dXJiZXJPcGVuZWRFdmVudCBhcyBJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJPcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERpc3R1cmJlckNsb3NlRXZlbnQgYXMgSVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyQ2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERpc3R1cmJlckNsb3NlZEV2ZW50IGFzIElTdHpoRGlzdHVyYmVyU3R6aERpc3R1cmJlckNsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aERpc3R1cmJlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aERpc3R1cmJlciB7XG4gIC8qKlxuICAgKiBEaXN0dXJiZXIgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERpc3R1cmJlciBvcGVuZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhPcGVuZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJPcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogRGlzdHVyYmVyIGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERpc3R1cmJlclN0emhEaXN0dXJiZXJDbG9zZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBEaXN0dXJiZXIgY2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEaXN0dXJiZXJTdHpoRGlzdHVyYmVyQ2xvc2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2FsbG93RW1wdHlPcHRpb24nLCAnY2xvc2VBZnRlclNlbGVjdCcsICdkZWZhdWx0SXRlbXMnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpY29uJywgJ2ljb25BbmdsZScsICdpbmxpbmUnLCAnaW52YWxpZCcsICdpc09wZW4nLCAnaXRlbXMnLCAnbGFiZWwnLCAnbGFiZWxGaWVsZCcsICdsYWJlbEhpZGRlbicsICdsb2FkJywgJ2xvYWRUaHJvdHRsZScsICdsb2NhbGl6YXRpb24nLCAnbG9ja09wdGdyb3VwT3JkZXInLCAnbWF4T3B0aW9ucycsICdtaW5DaGFyYWN0ZXJzJywgJ211bHRpcGxlJywgJ25hbWUnLCAnbm9CYWNrc3BhY2VEZWxldGUnLCAnbm9MYWJlbFRydW5jYXRlJywgJ25vU2VhcmNoJywgJ25vV3JhcCcsICdvcGVuJywgJ29wZW5PbkZvY3VzJywgJ29wdGdyb3VwRmllbGQnLCAnb3B0Z3JvdXBMYWJlbEZpZWxkJywgJ29wdGdyb3VwVmFsdWVGaWVsZCcsICdvcHRncm91cHMnLCAnb3B0aW9ucycsICdwb3BvdmVyRnVsbHdpZHRoJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncHJlbG9hZCcsICdyZXF1aXJlZCcsICdzZWFyY2hDb25qdW5jdGlvbicsICdzZWFyY2hGaWVsZCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndHJhbnNmb3JtTG9hZFF1ZXJ5JywgJ3ZhbHVlJywgJ3ZhbHVlRmllbGQnLCAndmFyaWFudCddLFxuICBtZXRob2RzOiBbJ2dldFZhbHVlJywgJ3NldFZhbHVlJywgJ3Jlc2V0TG9hZGVkU2VhcmNoZXMnLCAnZ2V0TG9hZGVkU2VhcmNoZXMnLCAnZ2V0SXRlbXMnLCAnbG9hZEl0ZW1zJywgJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1kcm9wZG93bicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2FsbG93RW1wdHlPcHRpb24nLCAnY2xvc2VBZnRlclNlbGVjdCcsICdkZWZhdWx0SXRlbXMnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpY29uJywgJ2ljb25BbmdsZScsICdpbmxpbmUnLCAnaW52YWxpZCcsICdpc09wZW4nLCAnaXRlbXMnLCAnbGFiZWwnLCAnbGFiZWxGaWVsZCcsICdsYWJlbEhpZGRlbicsICdsb2FkJywgJ2xvYWRUaHJvdHRsZScsICdsb2NhbGl6YXRpb24nLCAnbG9ja09wdGdyb3VwT3JkZXInLCAnbWF4T3B0aW9ucycsICdtaW5DaGFyYWN0ZXJzJywgJ211bHRpcGxlJywgJ25hbWUnLCAnbm9CYWNrc3BhY2VEZWxldGUnLCAnbm9MYWJlbFRydW5jYXRlJywgJ25vU2VhcmNoJywgJ25vV3JhcCcsICdvcGVuJywgJ29wZW5PbkZvY3VzJywgJ29wdGdyb3VwRmllbGQnLCAnb3B0Z3JvdXBMYWJlbEZpZWxkJywgJ29wdGdyb3VwVmFsdWVGaWVsZCcsICdvcHRncm91cHMnLCAnb3B0aW9ucycsICdwb3BvdmVyRnVsbHdpZHRoJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncHJlbG9hZCcsICdyZXF1aXJlZCcsICdzZWFyY2hDb25qdW5jdGlvbicsICdzZWFyY2hGaWVsZCcsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnLCAndHJhbnNmb3JtTG9hZFF1ZXJ5JywgJ3ZhbHVlJywgJ3ZhbHVlRmllbGQnLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ3N0emhDaGFuZ2UnLCAnc3R6aEl0ZW1BZGQnLCAnc3R6aEl0ZW1SZW1vdmUnLCAnc3R6aE9wdGlvbkFkZCcsICdzdHpoT3B0aW9uUmVtb3ZlJywgJ3N0emhPcGVuJywgJ3N0emhDbG9zZScsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInLCAnc3R6aEluaXQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aERyb3Bkb3duIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aERyb3Bkb3duRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25DaGFuZ2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoSXRlbUFkZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1BZGRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoSXRlbVJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1SZW1vdmVFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoT3B0aW9uQWRkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3B0aW9uQWRkRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aE9wdGlvblJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wdGlvblJlbW92ZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhPcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3BlbkV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93Q2xvc2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25Gb2N1c0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQmx1ckV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhJbml0ID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3dJbml0RXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duQ2hhbmdlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25JdGVtQWRkRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1BZGRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duSXRlbVJlbW92ZUV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25JdGVtUmVtb3ZlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bk9wdGlvbkFkZEV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25PcHRpb25BZGRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3duT3B0aW9uUmVtb3ZlRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wdGlvblJlbW92ZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd25PcGVuRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aERyb3Bkb3dDbG9zZUV2ZW50IGFzIElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0Nsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bkZvY3VzRXZlbnQgYXMgSVN0emhEcm9wZG93blN0emhEcm9wZG93bkZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhEcm9wZG93bkJsdXJFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoRHJvcGRvd0luaXRFdmVudCBhcyBJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3dJbml0RXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRHJvcGRvd24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhEcm9wZG93biB7XG4gIC8qKlxuICAgKiBEcm9wZG93biBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGl0ZW0gYWRkZWQgZXZlbnRcbiAgICovXG4gIHN0emhJdGVtQWRkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bkl0ZW1BZGRFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gaXRlbSByZW1vdmVkIGV2ZW50XG4gICAqL1xuICBzdHpoSXRlbVJlbW92ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25JdGVtUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIG9wdGlvbiBhZGRlZCBldmVudFxuICAgKi9cbiAgc3R6aE9wdGlvbkFkZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd25PcHRpb25BZGRFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gb3B0aW9uIHJlbW92ZWQgZXZlbnRcbiAgICovXG4gIHN0emhPcHRpb25SZW1vdmU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duT3B0aW9uUmVtb3ZlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhEcm9wZG93blN0emhEcm9wZG93bk9wZW5FdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoRHJvcGRvd25TdHpoRHJvcGRvd0Nsb3NlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERyb3Bkb3duIGZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogRHJvcGRvd24gYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3duQmx1ckV2ZW50Pj47XG4gIC8qKlxuICAgKiBEcm9wZG93biBmb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEluaXQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aERyb3Bkb3duU3R6aERyb3Bkb3dJbml0RXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZycsICdpdGVtcycsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZWRpdG9yJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2l0ZW1zJywgJ2xvY2FsaXphdGlvbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRWRpdG9yIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEVkaXRvckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhFZGl0b3IgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhFZGl0b3Ige31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFiZWwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZXZlbnRkYXRhJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYWJlbCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRXZlbnRkYXRhIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEV2ZW50ZGF0YUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhFdmVudGRhdGEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhFdmVudGRhdGEge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FsZW5kYXJMYWJlbCcsICdjYWxlbmRhclVybCcsICdkYXRlQWRhcHRlcicsICdlbmQnLCAnaXRlbXMnLCAnaXRlbXNTb3J0RGlyZWN0aW9uJywgJ2xvY2FsaXphdGlvbicsICdtb250aEhlYWRpbmdMZXZlbCcsICdzdGFydCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1ldmVudGluZm8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhbGVuZGFyTGFiZWwnLCAnY2FsZW5kYXJVcmwnLCAnZGF0ZUFkYXB0ZXInLCAnZW5kJywgJ2l0ZW1zJywgJ2l0ZW1zU29ydERpcmVjdGlvbicsICdsb2NhbGl6YXRpb24nLCAnbW9udGhIZWFkaW5nTGV2ZWwnLCAnc3RhcnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEV2ZW50aW5mbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhFdmVudGluZm9FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRXZlbnRpbmZvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRXZlbnRpbmZvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2xvY2FsaXphdGlvbicsICdub0l0ZW1zTGluaycsICdub0l0ZW1zVGV4dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1mZWVkcmVhZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdsb2NhbGl6YXRpb24nLCAnbm9JdGVtc0xpbmsnLCAnbm9JdGVtc1RleHQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEZlZWRyZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoRmVlZHJlYWRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhGZWVkcmVhZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRmVlZHJlYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsaW5rJywgJ3RhcmdldCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWZlZWRyZWFkZXItaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGluaycsICd0YXJnZXQnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRmVlZHJlYWRlckl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoRmVlZHJlYWRlckl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRmVlZHJlYWRlckl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGZWVkcmVhZGVySXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlTGVnZW5kJywgJ2xlZ2VuZCcsICdsZWdlbmRDdXJ2ZScsICdsZWdlbmRMZXZlbCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1maWVsZHNldCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUxlZ2VuZCcsICdsZWdlbmQnLCAnbGVnZW5kQ3VydmUnLCAnbGVnZW5kTGV2ZWwnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEZpZWxkc2V0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEZpZWxkc2V0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZpZWxkc2V0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRmllbGRzZXQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2FwdGlvbicsICdjb3B5cmlnaHQnLCAnY291bnRlcicsICdmdWxsd2lkdGgnLCAnaGVhZGluZyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1maWd1cmUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NhcHRpb24nLCAnY29weXJpZ2h0JywgJ2NvdW50ZXInLCAnZnVsbHdpZHRoJywgJ2hlYWRpbmcnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEZpZ3VyZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhGaWd1cmVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoRmlndXJlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRmlndXJlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ21pbmltYWxFZGdlU3BhY2UnXSxcbiAgbWV0aG9kczogWydyZXBvc2l0aW9uJywgJ2FjdGl2YXRlJywgJ2RlYWN0aXZhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZmx5aW5nZm9jdXMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ21pbmltYWxFZGdlU3BhY2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEZseWluZ2ZvY3VzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEZseWluZ2ZvY3VzRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEZseWluZ2ZvY3VzIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoRmx5aW5nZm9jdXMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29weXJpZ2h0JywgJ2xvY2FsaXphdGlvbicsICdtYWluVXJsJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtZm9vdGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb3B5cmlnaHQnLCAnbG9jYWxpemF0aW9uJywgJ21haW5VcmwnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoRm9vdGVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEZvb3RlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhGb290ZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhGb290ZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY2Fyb3VzZWxBdXRvcGxheScsICdjYXJvdXNlbEF1dG9wbGF5VGltZW91dCcsICdjYXJvdXNlbERpc2FibGVkJywgJ2Nhcm91c2VsV2l0aFRyYWNrJywgJ2V4Y2x1ZGVGaXJzdEltYWdlJywgJ2ltYWdlcycsICdpdGVtRWxlbWVudCcsICdsb2NhbGl6YXRpb24nLCAncmF0aW8nLCAncmF0aW9MYXJnZScsICdyYXRpb01lZGl1bScsICdyYXRpb1NtYWxsJywgJ3JhdGlvVWx0cmEnLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcycsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnb3BlbkxpZ2h0Ym94J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWdhbGxlcnknLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nhcm91c2VsQXV0b3BsYXknLCAnY2Fyb3VzZWxBdXRvcGxheVRpbWVvdXQnLCAnY2Fyb3VzZWxEaXNhYmxlZCcsICdjYXJvdXNlbFdpdGhUcmFjaycsICdleGNsdWRlRmlyc3RJbWFnZScsICdpbWFnZXMnLCAnaXRlbUVsZW1lbnQnLCAnbG9jYWxpemF0aW9uJywgJ3JhdGlvJywgJ3JhdGlvTGFyZ2UnLCAncmF0aW9NZWRpdW0nLCAncmF0aW9TbWFsbCcsICdyYXRpb1VsdHJhJywgJ3Nob3dJdGVtcycsICdzdGVwSXRlbXMnLCAndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoR2FsbGVyeSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhHYWxsZXJ5RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEdhbGxlcnkgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhHYWxsZXJ5IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FsJywgJ2F2YWlsYWJsZVRhZ3MnLCAnYmFzZVVybE92ZXJyaWRlJywgJ2NlbnRlck1hcmtlcicsICdoZWFkaW5nJywgJ2xvY2F0aW9uQ29udHJvbCcsICdtYXBEYXRhVXJsJywgJ3BpbmNoUm90YXRlVGhyZXNob2xkJywgJ3BvaURhdGFVcmwnLCAncmVzZXRUYWcnLCAnc2VhcmNoSW5kZXhGaWVsZHMnLCAnc2VhcmNoSW5kZXhJZEZpZWxkJywgJ3pvb20nLCAnem9vbUxvY2F0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWdlby1yZWYtZGF0YScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYWwnLCAnYXZhaWxhYmxlVGFncycsICdiYXNlVXJsT3ZlcnJpZGUnLCAnY2VudGVyTWFya2VyJywgJ2hlYWRpbmcnLCAnbG9jYXRpb25Db250cm9sJywgJ21hcERhdGFVcmwnLCAncGluY2hSb3RhdGVUaHJlc2hvbGQnLCAncG9pRGF0YVVybCcsICdyZXNldFRhZycsICdzZWFyY2hJbmRleEZpZWxkcycsICdzZWFyY2hJbmRleElkRmllbGQnLCAnem9vbScsICd6b29tTG9jYXRpb24nXSxcbiAgb3V0cHV0czogWydzdHpoT3ZlcmxheUNsb3NlQ2xpY2snXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEdlb1JlZkRhdGEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoR2VvUmVmRGF0YUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoT3ZlcmxheUNsb3NlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoR2VvUmVmRGF0YVN0emhHZW9SZWZEYXRhT3ZlcmxheUNsb3NlQ2xpY2tFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoR2VvUmVmRGF0YU92ZXJsYXlDbG9zZUNsaWNrRXZlbnQgYXMgSVN0emhHZW9SZWZEYXRhU3R6aEdlb1JlZkRhdGFPdmVybGF5Q2xvc2VDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEdlb1JlZkRhdGEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhHZW9SZWZEYXRhIHtcbiAgLyoqXG4gICAqIE92ZXJsYXkgY2xvc2UgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhPdmVybGF5Q2xvc2VDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoR2VvUmVmRGF0YVN0emhHZW9SZWZEYXRhT3ZlcmxheUNsb3NlQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoaWRkZW5UaXRsZScsICdoaWRlQ2xvc2UnLCAnbG9jYWxpemF0aW9uJywgJ21haW5UaXRsZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1naGV0dG9ib3gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2hpZGRlblRpdGxlJywgJ2hpZGVDbG9zZScsICdsb2NhbGl6YXRpb24nLCAnbWFpblRpdGxlJ10sXG4gIG91dHB1dHM6IFsnc3R6aE9wZW4nLCAnc3R6aENsb3NlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhHaGV0dG9ib3gge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoR2hldHRvYm94RWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhPcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEdoZXR0b2JveFN0emhHaGV0dG9ib3hPcGVuRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEdoZXR0b2JveFN0emhHaGV0dG9ib3hDbG9zZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhHaGV0dG9ib3hPcGVuRXZlbnQgYXMgSVN0emhHaGV0dG9ib3hTdHpoR2hldHRvYm94T3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoR2hldHRvYm94Q2xvc2VFdmVudCBhcyBJU3R6aEdoZXR0b2JveFN0emhHaGV0dG9ib3hDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEdoZXR0b2JveCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEdoZXR0b2JveCB7XG4gIC8qKlxuICAgKiBHaGV0dG9ib3ggb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEdoZXR0b2JveFN0emhHaGV0dG9ib3hPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEdoZXR0b2JveCBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhHaGV0dG9ib3hTdHpoR2hldHRvYm94Q2xvc2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhcHBOYXZJZCcsICdhcHBOYXZJdGVtcycsICdoaWRlTWV0YWJhcicsICdocmVmJywgJ2xhbmd1YWdlQWN0aXZlJywgJ2xhbmd1YWdlSWQnLCAnbGFuZ3VhZ2VQcmV2ZW50VXJsY2hhbmdlJywgJ2xhbmd1YWdlU3RheScsICdsYW5ndWFnZXMnLCAnbG9jYWxpemF0aW9uJywgJ2xvZ2luRXJyb3JNZXNzYWdlJywgJ2xvZ29BbmFseXRpY3NJZCcsICdsb2dvVHlwZScsICdtZW51QmFja0xhYmVsJywgJ21lbnVJZCcsICdtZW51SXRlbXMnLCAnbWV0YW5hdklkJywgJ21ldGFuYXZJdGVtcycsICdzZWFyY2hBY3Rpb24nLCAnc2VhcmNoRmllbGROYW1lJywgJ3NlYXJjaElkJywgJ3NlYXJjaFZhbHVlJywgJ3N0aWNreScsICd1c2VyU3BlY2lmaWNNZXRhbmF2SXRlbXNFbmRwb2ludCcsICd1c2VyU3BlY2lmaWNNZXRhbmF2SXRlbXNOb3RMb2dnZWRJbicsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsndXBkYXRlUG9zaXRpb24nLCAncmVxdWVzdFVzZXJTcGVjaWZpY01ldGFuYXZJdGVtcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1oZWFkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwcE5hdklkJywgJ2FwcE5hdkl0ZW1zJywgJ2hpZGVNZXRhYmFyJywgJ2hyZWYnLCAnbGFuZ3VhZ2VBY3RpdmUnLCAnbGFuZ3VhZ2VJZCcsICdsYW5ndWFnZVByZXZlbnRVcmxjaGFuZ2UnLCAnbGFuZ3VhZ2VTdGF5JywgJ2xhbmd1YWdlcycsICdsb2NhbGl6YXRpb24nLCAnbG9naW5FcnJvck1lc3NhZ2UnLCAnbG9nb0FuYWx5dGljc0lkJywgJ2xvZ29UeXBlJywgJ21lbnVCYWNrTGFiZWwnLCAnbWVudUlkJywgJ21lbnVJdGVtcycsICdtZXRhbmF2SWQnLCAnbWV0YW5hdkl0ZW1zJywgJ3NlYXJjaEFjdGlvbicsICdzZWFyY2hGaWVsZE5hbWUnLCAnc2VhcmNoSWQnLCAnc2VhcmNoVmFsdWUnLCAnc3RpY2t5JywgJ3VzZXJTcGVjaWZpY01ldGFuYXZJdGVtc0VuZHBvaW50JywgJ3VzZXJTcGVjaWZpY01ldGFuYXZJdGVtc05vdExvZ2dlZEluJywgJ3ZhcmlhbnQnXSxcbiAgb3V0cHV0czogWydzdHpoTWV0YW5hdkl0ZW1DbGljaycsICdzdHpoTWV0YW5hdkl0ZW1DaGlsZENsaWNrJywgJ3N0emhNZXRhbmF2SXRlbUJ1dHRvbkNsaWNrJywgJ3N0emhNZW51SXRlbUNsaWNrJywgJ3N0emhMYW5ndWFnZUNoYW5nZScsICdzdHpoU2VhcmNoQ2hhbmdlJywgJ3N0emhTZWFyY2hDaGFuZ2VkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIZWFkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoSGVhZGVyRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhNZXRhbmF2SXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJNZXRhbmF2SXRlbUNsaWNrRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aE1ldGFuYXZJdGVtQ2hpbGRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1DaGlsZENsaWNrRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aE1ldGFuYXZJdGVtQnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlck1ldGFuYXZJdGVtQnV0dG9uQ2xpY2tFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoTWVudUl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTWVudUl0ZW1DbGlja0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhMYW5ndWFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTGFuZ3VhZ2VDaGFuZ2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoU2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJTZWFyY2hDaGFuZ2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoU2VhcmNoQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlZEV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJNZXRhbmF2SXRlbUNsaWNrRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyTWV0YW5hdkl0ZW1DaGlsZENsaWNrRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1DaGlsZENsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhIZWFkZXJNZXRhbmF2SXRlbUJ1dHRvbkNsaWNrRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1CdXR0b25DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyTWVudUl0ZW1DbGlja0V2ZW50IGFzIElTdHpoSGVhZGVyU3R6aEhlYWRlck1lbnVJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlckxhbmd1YWdlQ2hhbmdlRXZlbnQgYXMgSVN0emhIZWFkZXJTdHpoSGVhZGVyTGFuZ3VhZ2VDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aEhlYWRlclNlYXJjaENoYW5nZUV2ZW50IGFzIElTdHpoSGVhZGVyU3R6aEhlYWRlclNlYXJjaENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlZEV2ZW50IGFzIElTdHpoSGVhZGVyU3R6aEhlYWRlclNlYXJjaENoYW5nZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhIZWFkZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhIZWFkZXIge1xuICAvKipcbiAgICogTWV0YW5hdiBpdGVtIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoTWV0YW5hdkl0ZW1DbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlck1ldGFuYXZJdGVtQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogTWV0YW5hdiBpdGVtIGNoaWxkIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoTWV0YW5hdkl0ZW1DaGlsZENsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1DaGlsZENsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE1ldGFuYXYgaXRlbSBidXR0b24gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhNZXRhbmF2SXRlbUJ1dHRvbkNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTWV0YW5hdkl0ZW1CdXR0b25DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBNZXRhbmF2IGl0ZW0gY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhNZW51SXRlbUNsaWNrOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyTWVudUl0ZW1DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBMYW5ndWFnZSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhMYW5ndWFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSGVhZGVyU3R6aEhlYWRlckxhbmd1YWdlQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFNlYXJjaCBpbnB1dCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhTZWFyY2hDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhlYWRlclN0emhIZWFkZXJTZWFyY2hDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogU2VhcmNoIGlucHV0IGNoYW5nZWQgZXZlbnRcbiAgICovXG4gIHN0emhTZWFyY2hDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhIZWFkZXJTdHpoSGVhZGVyU2VhcmNoQ2hhbmdlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2N1cnZlJywgJ2h0bWxDb250ZW50JywgJ2xldmVsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWhlYWRpbmcnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2N1cnZlJywgJ2h0bWxDb250ZW50JywgJ2xldmVsJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIZWFkaW5nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEhlYWRpbmdFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSGVhZGluZyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhlYWRpbmcge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncGxhY2Vob2xkZXInLCAnc2VhcmNoQWN0aW9uJywgJ3NlYXJjaEZpZWxkTmFtZScsICdzZWFyY2hJZCcsICdzZWFyY2hWYWx1ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1ob21lcGFnZS1zZWFyY2gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BsYWNlaG9sZGVyJywgJ3NlYXJjaEFjdGlvbicsICdzZWFyY2hGaWVsZE5hbWUnLCAnc2VhcmNoSWQnLCAnc2VhcmNoVmFsdWUnXSxcbiAgb3V0cHV0czogWydzdHpoU2VhcmNoQ2hhbmdlJywgJ3N0emhTZWFyY2hDaGFuZ2VkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIb21lcGFnZVNlYXJjaCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhIb21lcGFnZVNlYXJjaEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoU2VhcmNoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhvbWVwYWdlU2VhcmNoU3R6aEhvbWVwYWdlU2VhcmNoU2VhcmNoQ2hhbmdlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFNlYXJjaENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSG9tZXBhZ2VTZWFyY2hTdHpoSG9tZXBhZ2VTZWFyY2hTZWFyY2hDaGFuZ2VkRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aEhvbWVwYWdlU2VhcmNoU2VhcmNoQ2hhbmdlRXZlbnQgYXMgSVN0emhIb21lcGFnZVNlYXJjaFN0emhIb21lcGFnZVNlYXJjaFNlYXJjaENoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSG9tZXBhZ2VTZWFyY2hTZWFyY2hDaGFuZ2VkRXZlbnQgYXMgSVN0emhIb21lcGFnZVNlYXJjaFN0emhIb21lcGFnZVNlYXJjaFNlYXJjaENoYW5nZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhIb21lcGFnZVNlYXJjaCBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhvbWVwYWdlU2VhcmNoIHtcbiAgLyoqXG4gICAqIFNlYXJjaCBpbnB1dCBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhTZWFyY2hDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEhvbWVwYWdlU2VhcmNoU3R6aEhvbWVwYWdlU2VhcmNoU2VhcmNoQ2hhbmdlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFNlYXJjaCBpbnB1dCBjaGFuZ2VkIGV2ZW50XG4gICAqL1xuICBzdHpoU2VhcmNoQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSG9tZXBhZ2VTZWFyY2hTdHpoSG9tZXBhZ2VTZWFyY2hTZWFyY2hDaGFuZ2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbW9zdHNlYXJjaGVkSXRlbXMnLCAndG9wbmV3c0l0ZW1zJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWhvbWVwYWdlLXNlcnZpY2UtaGlnaGxpZ2h0cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbW9zdHNlYXJjaGVkSXRlbXMnLCAndG9wbmV3c0l0ZW1zJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIb21lcGFnZVNlcnZpY2VIaWdobGlnaHRzIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEhvbWVwYWdlU2VydmljZUhpZ2hsaWdodHNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSG9tZXBhZ2VTZXJ2aWNlSGlnaGxpZ2h0cyBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhvbWVwYWdlU2VydmljZUhpZ2hsaWdodHMge31cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaHInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEhyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEhyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSHIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2Fyb3VuZExlZnQnLCAnYXJvdW5kUmlnaHQnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWhzcGFjZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXJvdW5kJywgJ2Fyb3VuZExlZnQnLCAnYXJvdW5kUmlnaHQnLCAnYm9yZGVyJywgJ2N1cnZlJywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhIc3BhY2Uge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoSHNwYWNlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aEhzcGFjZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aEhzcGFjZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdlcnJvcmNvZGUnLCAnaGVhZGluZycsICdocmVmQmFjaycsICdocmVmU3RhcnQnLCAnbG9jYWxpemF0aW9uJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWh0dHAtZXJyb3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rlc2NyaXB0aW9uJywgJ2Vycm9yY29kZScsICdoZWFkaW5nJywgJ2hyZWZCYWNrJywgJ2hyZWZTdGFydCcsICdsb2NhbGl6YXRpb24nXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aEh0dHBFcnJvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhIdHRwRXJyb3JFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSHR0cEVycm9yIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSHR0cEVycm9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlUaXRsZScsICduYW1lJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWljb24nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlUaXRsZScsICduYW1lJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJY29uIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEljb25FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoSWNvbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aEljb24ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYWxsb3cnLCAnY29va2llJywgJ2Nvb2tpZUNvbmZpcm1JY29uJywgJ2Nvb2tpZUNvbmZpcm1MYWJlbCcsICdjb29raWVDb25maXJtVGV4dCcsICdjb29raWVFeHBpcmVzJywgJ2hlaWdodCcsICdpZnJhbWVFcnJvclRleHQnLCAnaWZyYW1lSWQnLCAnaWZyYW1lUmVzaXplckhlaWdodENvcnJlY3Rpb24nLCAnaWZyYW1lUmVzaXplclNlY29uZGxldmVsRG9tYWluJywgJ2lmcmFtZVJlc2l6ZXJWYXJpYW50JywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3ByZXZpZXdJY29uJywgJ3ByZXZpZXdMYWJlbCcsICdyZWZlcnJlcnBvbGljeScsICdzYW5kYm94JywgJ3NraXBQcmV2aWV3JywgJ3NraXBQcmV2aWV3SWZDb29raWVBY2NlcHRlZCcsICdzcmMnLCAnd2lkdGgnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtaWZyYW1lJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbGxvdycsICdjb29raWUnLCAnY29va2llQ29uZmlybUljb24nLCAnY29va2llQ29uZmlybUxhYmVsJywgJ2Nvb2tpZUNvbmZpcm1UZXh0JywgJ2Nvb2tpZUV4cGlyZXMnLCAnaGVpZ2h0JywgJ2lmcmFtZUVycm9yVGV4dCcsICdpZnJhbWVJZCcsICdpZnJhbWVSZXNpemVySGVpZ2h0Q29ycmVjdGlvbicsICdpZnJhbWVSZXNpemVyU2Vjb25kbGV2ZWxEb21haW4nLCAnaWZyYW1lUmVzaXplclZhcmlhbnQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmlld0ljb24nLCAncHJldmlld0xhYmVsJywgJ3JlZmVycmVycG9saWN5JywgJ3NhbmRib3gnLCAnc2tpcFByZXZpZXcnLCAnc2tpcFByZXZpZXdJZkNvb2tpZUFjY2VwdGVkJywgJ3NyYycsICd3aWR0aCddLFxuICBvdXRwdXRzOiBbJ3N0emhQcmV2aWV3U2tpcCcsICdzdHpoVmlld0NoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSWZyYW1lIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aElmcmFtZUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoUHJldmlld1NraXAgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSWZyYW1lU3R6aElmcmFtZVByZXZpZXdTa2lwRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFZpZXdDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSWZyYW1lU3R6aElmcmFtZVZpZXdDaGFuZ2VFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoSWZyYW1lUHJldmlld1NraXBFdmVudCBhcyBJU3R6aElmcmFtZVN0emhJZnJhbWVQcmV2aWV3U2tpcEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoSWZyYW1lVmlld0NoYW5nZUV2ZW50IGFzIElTdHpoSWZyYW1lU3R6aElmcmFtZVZpZXdDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhJZnJhbWUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhJZnJhbWUge1xuICAvKipcbiAgICogUHJldmlldyBza2lwIChvbmx5IGdldHMgZXhlY3V0ZWQgaWYgaXQgZ29lcyBkaXJlY3RseSB0byBpZnJhbWUgYW5kIG5vdCBjb29raWV3YWxsKVxuICAgKi9cbiAgc3R6aFByZXZpZXdTa2lwOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJZnJhbWVTdHpoSWZyYW1lUHJldmlld1NraXBFdmVudD4+O1xuICAvKipcbiAgICogVmlldyBjaGFuZ2VcbiAgICovXG4gIHN0emhWaWV3Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJZnJhbWVTdHpoSWZyYW1lVmlld0NoYW5nZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdoaW50TGVmdCcsICdoaW50UmlnaHQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWltYWdlY29tcGFyaXNvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2hpbnRMZWZ0JywgJ2hpbnRSaWdodCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydzdHpoQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhJbWFnZWNvbXBhcmlzb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoSW1hZ2Vjb21wYXJpc29uRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW1hZ2Vjb21wYXJpc29uU3R6aEltYWdlY29tcGFyaXNvbkNoYW5nZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhJbWFnZWNvbXBhcmlzb25DaGFuZ2VFdmVudCBhcyBJU3R6aEltYWdlY29tcGFyaXNvblN0emhJbWFnZWNvbXBhcmlzb25DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhJbWFnZWNvbXBhcmlzb24gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhJbWFnZWNvbXBhcmlzb24ge1xuXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aEltYWdlY29tcGFyaXNvblN0emhJbWFnZWNvbXBhcmlzb25DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYXV0b2NvbXBsZXRlJywgJ2NsZWFyYWJsZScsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnB1dG1vZGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21heGxlbmd0aCcsICdtaW4nLCAnbWlubGVuZ3RoJywgJ211bHRpbGluZScsICduYW1lJywgJ25vQXV0b2NvbXBsZXRlJywgJ25vTGFiZWxUcnVuY2F0ZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyb3dzJywgJ3Nob3dTcGluJywgJ3NpemUnLCAnc3RlcCcsICd0eXBlJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWlucHV0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYXV0b2NvbXBsZXRlJywgJ2NsZWFyYWJsZScsICdkZWZhdWx0VmFsdWUnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnB1dG1vZGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21heGxlbmd0aCcsICdtaW4nLCAnbWlubGVuZ3RoJywgJ211bHRpbGluZScsICduYW1lJywgJ25vQXV0b2NvbXBsZXRlJywgJ25vTGFiZWxUcnVuY2F0ZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdyb3dzJywgJ3Nob3dTcGluJywgJ3NpemUnLCAnc3RlcCcsICd0eXBlJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnc3R6aENoYW5nZScsICdzdHpoQ2hhbmdlZCcsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aElucHV0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aElucHV0RWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW5wdXRTdHpoSW5wdXRDaGFuZ2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbnB1dFN0emhJbnB1dENoYW5nZWRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW5wdXRTdHpoSW5wdXRGb2N1c0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElucHV0U3R6aElucHV0Qmx1ckV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhJbnB1dENoYW5nZUV2ZW50IGFzIElTdHpoSW5wdXRTdHpoSW5wdXRDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aElucHV0Q2hhbmdlZEV2ZW50IGFzIElTdHpoSW5wdXRTdHpoSW5wdXRDaGFuZ2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhJbnB1dEZvY3VzRXZlbnQgYXMgSVN0emhJbnB1dFN0emhJbnB1dEZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhJbnB1dEJsdXJFdmVudCBhcyBJU3R6aElucHV0U3R6aElucHV0Qmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aElucHV0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoSW5wdXQge1xuICAvKipcbiAgICogSW5wdXQgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhJbnB1dFN0emhJbnB1dENoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBjaGFuZ2VkIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoSW5wdXRTdHpoSW5wdXRDaGFuZ2VkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGZvY3VzIGV2ZW50XG4gICAqL1xuICBzdHpoRm9jdXM6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElucHV0U3R6aElucHV0Rm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aElucHV0U3R6aElucHV0Qmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWludmVydCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoSW52ZXJ0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aEludmVydEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhJbnZlcnQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhJbnZlcnQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUNvbnRyb2xzJywgJ2ExMXlDdXJyZW50JywgJ2ExMXlEZXNjcmliZWRieScsICdhMTF5RGlzYWJsZWQnLCAnYTExeUV4cGFuZGVkJywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYWN0aXZlJywgJ2FuYWx5dGljc0lkJywgJ2JhZGdlJywgJ2JhZGdlRW1wdHknLCAnYmFkZ2VQb3NpdGlvbicsICdiYWRnZVR5cGUnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWQnLCAnZnVsbHdpZHRoJywgJ2hlaWdodCcsICdocmVmJywgJ2ljb24nLCAnaWNvbk9ubHknLCAnaWNvblBvc2l0aW9uJywgJ2xhYmVsJywgJ2xpbmtBY2Nlc3NrZXknLCAnbGlua0lkJywgJ2xvY2FsaXphdGlvbicsICdyZWwnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJywgJ3RhcmdldCcsICd0ZXh0QWxpZ24nLCAndHlwZScsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWxpbmsnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlDb250cm9scycsICdhMTF5Q3VycmVudCcsICdhMTF5RGVzY3JpYmVkYnknLCAnYTExeURpc2FibGVkJywgJ2ExMXlFeHBhbmRlZCcsICdhMTF5TGFiZWwnLCAnYTExeVRhYmluZGV4JywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlUG9zaXRpb24nLCAnYmFkZ2VUeXBlJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkJywgJ2Z1bGx3aWR0aCcsICdoZWlnaHQnLCAnaHJlZicsICdpY29uJywgJ2ljb25Pbmx5JywgJ2ljb25Qb3NpdGlvbicsICdsYWJlbCcsICdsaW5rQWNjZXNza2V5JywgJ2xpbmtJZCcsICdsb2NhbGl6YXRpb24nLCAncmVsJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYScsICd0YXJnZXQnLCAndGV4dEFsaWduJywgJ3R5cGUnLCAndmFyaWFudCddLFxuICBvdXRwdXRzOiBbJ3N0emhDbGljaycsICdzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aExpbmsge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoTGlua0VsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTGlua1N0emhMaW5rQ2xpY2tFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTGlua1N0emhMaW5rRm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhMaW5rU3R6aExpbmtCbHVyRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aExpbmtDbGlja0V2ZW50IGFzIElTdHpoTGlua1N0emhMaW5rQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aExpbmtGb2N1c0V2ZW50IGFzIElTdHpoTGlua1N0emhMaW5rRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aExpbmtCbHVyRXZlbnQgYXMgSVN0emhMaW5rU3R6aExpbmtCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTGluayBleHRlbmRzIENvbXBvbmVudHMuU3R6aExpbmsge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTGlua1N0emhMaW5rQ2xpY2tFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTGlua1N0emhMaW5rRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aExpbmtTdHpoTGlua0JsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpdGVtcycsICdwYWRkaW5nQm90dG9tJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWxpbmtsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpdGVtcycsICdwYWRkaW5nQm90dG9tJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhMaW5rbGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhMaW5rbGlzdEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhMaW5rbGlzdCBleHRlbmRzIENvbXBvbmVudHMuU3R6aExpbmtsaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbGlzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsndmFyaWFudCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhMaXN0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aExpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhMaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWxpc3QtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTGlzdEl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoTGlzdEl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTGlzdEl0ZW0gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhMaXN0SXRlbSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlTGFiZWwnLCAnbGFiZWwnLCAnc2l6ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1sb2FkZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVMYWJlbCcsICdsYWJlbCcsICdzaXplJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhMb2FkZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoTG9hZGVyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aExvYWRlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aExvYWRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlUGVyY2VudCcsICdsYWJlbCcsICdwZXJjZW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLWxvYWRpbmdiYXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2hpZGVQZXJjZW50JywgJ2xhYmVsJywgJ3BlcmNlbnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aExvYWRpbmdiYXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoTG9hZGluZ2JhckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhMb2FkaW5nYmFyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTG9hZGluZ2JhciB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1tZW51JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhNZW51IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aE1lbnVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoTWVudSBleHRlbmRzIENvbXBvbmVudHMuU3R6aE1lbnUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeUxhYmVsJywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjb3VudGVyJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdsYWJlbCcsICdzaXplJywgJ3RhcmdldCcsICd2YXJpYW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW1lbnUtaXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUxhYmVsJywgJ2FjdGl2ZScsICdhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjb3VudGVyJywgJ2Rpc2FibGVkJywgJ2hyZWYnLCAnaWNvbicsICdsYWJlbCcsICdzaXplJywgJ3RhcmdldCcsICd2YXJpYW50J10sXG4gIG91dHB1dHM6IFsnc3R6aEZvY3VzJywgJ3N0emhCbHVyJywgJ3N0emhDbGljayddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTWVudUl0ZW0ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoTWVudUl0ZW1FbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aEZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtRm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZW51SXRlbVN0emhNZW51SXRlbUJsdXJFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1DbGlja0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhNZW51SXRlbUZvY3VzRXZlbnQgYXMgSVN0emhNZW51SXRlbVN0emhNZW51SXRlbUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhNZW51SXRlbUJsdXJFdmVudCBhcyBJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoTWVudUl0ZW1DbGlja0V2ZW50IGFzIElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE1lbnVJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoTWVudUl0ZW0ge1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1Gb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBCbHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVudUl0ZW1TdHpoTWVudUl0ZW1CbHVyRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lbnVJdGVtU3R6aE1lbnVJdGVtQ2xpY2tFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydkZXNjcmlwdGlvbicsICdoaWRlQ2xvc2UnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ3R5cGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtbWVzc2FnZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGVzY3JpcHRpb24nLCAnaGlkZUNsb3NlJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICd0eXBlJ10sXG4gIG91dHB1dHM6IFsnc3R6aE9wZW4nLCAnc3R6aENsb3NlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhNZXNzYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aE1lc3NhZ2VFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aE9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoTWVzc2FnZVN0emhNZXNzYWdlT3BlbkV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZXNzYWdlU3R6aE1lc3NhZ2VDbG9zZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhNZXNzYWdlT3BlbkV2ZW50IGFzIElTdHpoTWVzc2FnZVN0emhNZXNzYWdlT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoTWVzc2FnZUNsb3NlRXZlbnQgYXMgSVN0emhNZXNzYWdlU3R6aE1lc3NhZ2VDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE1lc3NhZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhNZXNzYWdlIHtcbiAgLyoqXG4gICAqIE1lc3NhZ2Ugb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE1lc3NhZ2VTdHpoTWVzc2FnZU9wZW5FdmVudD4+O1xuICAvKipcbiAgICogTWVzc2FnZSBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNZXNzYWdlU3R6aE1lc3NhZ2VDbG9zZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwaScsICdsb2NhbGl6YXRpb24nLCAnc2hvd0l0ZW1zJywgJ3N0ZXBJdGVtcycsICd0YWdzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLW1pY3Jvc2l0ZS10ZWFzZXJsaXN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcGknLCAnbG9jYWxpemF0aW9uJywgJ3Nob3dJdGVtcycsICdzdGVwSXRlbXMnLCAndGFncyddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoTWljcm9zaXRlVGVhc2VybGlzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhNaWNyb3NpdGVUZWFzZXJsaXN0RWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE1pY3Jvc2l0ZVRlYXNlcmxpc3QgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhNaWNyb3NpdGVUZWFzZXJsaXN0IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieU1vbnRoJywgJ2ExMXlEZXNjcmliZWRieVllYXInLCAnZGVzY3JpcHRpb25Mb25nTW9udGgnLCAnZGVzY3JpcHRpb25Mb25nWWVhcicsICdkZXNjcmlwdGlvbk1vbnRoJywgJ2Rlc2NyaXB0aW9uWWVhcicsICdkaXNhYmxlZCcsICdlcnJvck1vbnRoJywgJ2Vycm9yWWVhcicsICdmb3JtYXQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWRNb250aCcsICdpbnZhbGlkWWVhcicsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21heFllYXInLCAnbWluJywgJ21pblllYXInLCAnbW9udGhMYWJlbCcsICdtb250aE9wZW4nLCAnbW9udGhzJywgJ25hbWUnLCAncG9wb3ZlclBsYWNlbWVudCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJywgJ3llYXJMYWJlbCcsICd5ZWFyT3BlbicsICd5ZWFyU29ydERpcmVjdGlvbicsICd5ZWFycyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1tb250aHllYXJwaWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieU1vbnRoJywgJ2ExMXlEZXNjcmliZWRieVllYXInLCAnZGVzY3JpcHRpb25Mb25nTW9udGgnLCAnZGVzY3JpcHRpb25Mb25nWWVhcicsICdkZXNjcmlwdGlvbk1vbnRoJywgJ2Rlc2NyaXB0aW9uWWVhcicsICdkaXNhYmxlZCcsICdlcnJvck1vbnRoJywgJ2Vycm9yWWVhcicsICdmb3JtYXQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWRNb250aCcsICdpbnZhbGlkWWVhcicsICdsb2NhbGl6YXRpb24nLCAnbWF4JywgJ21heFllYXInLCAnbWluJywgJ21pblllYXInLCAnbW9udGhMYWJlbCcsICdtb250aE9wZW4nLCAnbW9udGhzJywgJ25hbWUnLCAncG9wb3ZlclBsYWNlbWVudCcsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJywgJ3llYXJMYWJlbCcsICd5ZWFyT3BlbicsICd5ZWFyU29ydERpcmVjdGlvbicsICd5ZWFycyddLFxuICBvdXRwdXRzOiBbJ3N0emhDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE1vbnRoeWVhcnBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhNb250aHllYXJwaWNrZXJFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNb250aHllYXJwaWNrZXJTdHpoTW9udGh5ZWFycGlja2VyQ2hhbmdlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aE1vbnRoeWVhcnBpY2tlckNoYW5nZUV2ZW50IGFzIElTdHpoTW9udGh5ZWFycGlja2VyU3R6aE1vbnRoeWVhcnBpY2tlckNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE1vbnRoeWVhcnBpY2tlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aE1vbnRoeWVhcnBpY2tlciB7XG4gIC8qKlxuICAgKiBNb250aHllYXJwaWNrZXIgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhNb250aHllYXJwaWNrZXJTdHpoTW9udGh5ZWFycGlja2VyQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbG9jYWxpemF0aW9uJ10sXG4gIG1ldGhvZHM6IFsnYWRkVG9hc3QnLCAncmVtb3ZlVG9hc3QnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtb2ZmbGluZS1pbmRpY2F0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoT2ZmbGluZUluZGljYXRvciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhPZmZsaW5lSW5kaWNhdG9yRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aE9mZmxpbmVJbmRpY2F0b3IgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhPZmZsaW5lSW5kaWNhdG9yIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NlbnRlcicsICdjZW50ZXJNYXJrZXInLCAnaG9zdG5hbWUnLCAnbGF5ZXInLCAnbGF5ZXJDb250cm9sJywgJ2xheWVycycsICdsb2NhbGl6YXRpb24nLCAnbG9jYXRpb25Db250cm9sJywgJ3BpbmNoUm90YXRlVGhyZXNob2xkJywgJ3ByaW50Q29udHJvbCcsICdyZXNvbHV0aW9ucycsICdzY2FsZUNvbnRyb2wnLCAnd3JpdGVFeHRlbnRUb1VybEVuYWJsZWQnLCAnem9vbScsICd6b29tTG9jYXRpb24nXSxcbiAgbWV0aG9kczogWydnZXRNYXAnLCAnd3JpdGVFeHRlbnRUb1VybCcsICdnZXRWaXNpYmxlTWFya2VycycsICdmaW5kTWFya2VyQnlJZCcsICdhZGRJY29uTWFya2VyJywgJ2FkZEljb25NYXJrZXJzJywgJ3VwZGF0ZVZpZXdUb0ZpdE1hcmtlcnMnLCAncmVtb3ZlQWxsSWNvbk1hcmtlcnMnLCAncmVtb3ZlSWNvbk1hcmtlcicsICdzZXRJY29uTWFya2VyQWN0aXZlJywgJ3NldEljb25NYXJrZXJJbmFjdGl2ZScsICdzZXRBbGxJY29uTWFya2Vyc0luYWN0aXZlJywgJ2VuYWJsZUxvY2F0aW9uVHJhY2tpbmcnLCAnZGlzYWJsZUxvY2F0aW9uVHJhY2tpbmcnLCAnZ2V0RGlzdGFuY2UnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtb2xtYXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NlbnRlcicsICdjZW50ZXJNYXJrZXInLCAnaG9zdG5hbWUnLCAnbGF5ZXInLCAnbGF5ZXJDb250cm9sJywgJ2xheWVycycsICdsb2NhbGl6YXRpb24nLCAnbG9jYXRpb25Db250cm9sJywgJ3BpbmNoUm90YXRlVGhyZXNob2xkJywgJ3ByaW50Q29udHJvbCcsICdyZXNvbHV0aW9ucycsICdzY2FsZUNvbnRyb2wnLCAnd3JpdGVFeHRlbnRUb1VybEVuYWJsZWQnLCAnem9vbScsICd6b29tTG9jYXRpb24nXSxcbiAgb3V0cHV0czogWydzdHpoSW5pdGlhbGl6ZWQnLCAnc3R6aFBvc3RSZW5kZXInLCAnc3R6aE1vdmVTdGFydCcsICdzdHpoTW92ZUVuZCcsICdzdHpoTW92ZVBhblpvb20nXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aE9sbWFwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aE9sbWFwRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhJbml0aWFsaXplZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcEluaXRpYWxpemVkRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFBvc3RSZW5kZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBQb3N0UmVuZGVyRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aE1vdmVTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcE1vdmVTdGFydEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhNb3ZlRW5kID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE9sbWFwU3R6aE9sbWFwTW92ZUVuZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhNb3ZlUGFuWm9vbSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcE1vdmVQYW5ab29tRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aE9sbWFwSW5pdGlhbGl6ZWRFdmVudCBhcyBJU3R6aE9sbWFwU3R6aE9sbWFwSW5pdGlhbGl6ZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE9sbWFwUG9zdFJlbmRlckV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBQb3N0UmVuZGVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcE1vdmVTdGFydEV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlU3RhcnRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE9sbWFwTW92ZUVuZEV2ZW50IGFzIElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlRW5kRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhPbG1hcE1vdmVQYW5ab29tRXZlbnQgYXMgSVN0emhPbG1hcFN0emhPbG1hcE1vdmVQYW5ab29tRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoT2xtYXAgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhPbG1hcCB7XG4gIC8qKlxuICAgKiBPbG1hcCBpbml0aWFsaXplZCBldmVudFxuICAgKi9cbiAgc3R6aEluaXRpYWxpemVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcEluaXRpYWxpemVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9sbWFwIHBvc3RyZW5kZXIgZXZlbnRcbiAgICovXG4gIHN0emhQb3N0UmVuZGVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcFBvc3RSZW5kZXJFdmVudD4+O1xuICAvKipcbiAgICogT2xtYXAgbW92ZXN0YXJ0IGV2ZW50XG4gICAqL1xuICBzdHpoTW92ZVN0YXJ0OiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhPbG1hcFN0emhPbG1hcE1vdmVTdGFydEV2ZW50Pj47XG4gIC8qKlxuICAgKiBPbG1hcCBtb3ZlZW5kIGV2ZW50XG4gICAqL1xuICBzdHpoTW92ZUVuZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlRW5kRXZlbnQ+PjtcbiAgLyoqXG4gICAqIE9sbWFwIG1vdmUgcGFuIHpvb20gZXZlbnRcbiAgICovXG4gIHN0emhNb3ZlUGFuWm9vbTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT2xtYXBTdHpoT2xtYXBNb3ZlUGFuWm9vbUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlMYWJlbCcsICdvcGVuJywgJ3N0YXknXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtb3ZlcmxheScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeUxhYmVsJywgJ29wZW4nLCAnc3RheSddLFxuICBvdXRwdXRzOiBbJ3N0emhPcGVuJywgJ3N0emhDbG9zZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoT3ZlcmxheSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhPdmVybGF5RWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhPcGVuID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE92ZXJsYXlTdHpoT3ZlcmxheU9wZW5FdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoT3ZlcmxheVN0emhPdmVybGF5Q2xvc2VFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoT3ZlcmxheU9wZW5FdmVudCBhcyBJU3R6aE92ZXJsYXlTdHpoT3ZlcmxheU9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aE92ZXJsYXlDbG9zZUV2ZW50IGFzIElTdHpoT3ZlcmxheVN0emhPdmVybGF5Q2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhPdmVybGF5IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoT3ZlcmxheSB7XG4gIC8qKlxuICAgKiBEaWFsb2cgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE92ZXJsYXlTdHpoT3ZlcmxheU9wZW5FdmVudD4+O1xuICAvKipcbiAgICogRGlhbG9nIGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aE92ZXJsYXlTdHpoT3ZlcmxheUNsb3NlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFnZS1za2lwbGlua3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2VTa2lwbGlua3Mge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoUGFnZVNraXBsaW5rc0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdlU2tpcGxpbmtzIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZVNraXBsaW5rcyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAnbG9nb0hyZWYnLCAncHJpbnRBbmFseXRpY3NJZCcsICdzaGFyZURpc2FibGVkJywgJ3NoYXJlTWFpbEJvZHknLCAnc2hhcmVNYWlsU3ViamVjdCcsICdzaGFyZVNlcnZpY2VzJywgJ3NoYXJlVGl0bGUnLCAnc2hhcmVVcmwnLCAnd2l0aFByaW50J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2Vib3R0b20nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdsb2dvSHJlZicsICdwcmludEFuYWx5dGljc0lkJywgJ3NoYXJlRGlzYWJsZWQnLCAnc2hhcmVNYWlsQm9keScsICdzaGFyZU1haWxTdWJqZWN0JywgJ3NoYXJlU2VydmljZXMnLCAnc2hhcmVUaXRsZScsICdzaGFyZVVybCcsICd3aXRoUHJpbnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2Vib3R0b20ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoUGFnZWJvdHRvbUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdlYm90dG9tIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnZWJvdHRvbSB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdlY29udGVudCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZWNvbnRlbnQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoUGFnZWNvbnRlbnRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFnZWNvbnRlbnQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdlY29udGVudCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydiYWNrZ3JvdW5kJywgJ2RhdGVsaW5lJywgJ2h5cGhlbnNFbmFibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2V0aXRsZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYmFja2dyb3VuZCcsICdkYXRlbGluZScsICdoeXBoZW5zRW5hYmxlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZXRpdGxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFBhZ2V0aXRsZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdldGl0bGUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdldGl0bGUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaGVhZGluZycsICdoZWFkaW5nSWQnLCAnbGVhZEF1dGhvcicsICdzdWJ0aXRsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYWdldGl0bGUtaGVybycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZycsICdoZWFkaW5nSWQnLCAnbGVhZEF1dGhvcicsICdzdWJ0aXRsZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZXRpdGxlSGVybyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhQYWdldGl0bGVIZXJvRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2V0aXRsZUhlcm8gZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdldGl0bGVIZXJvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2h5cGhlbnNFbmFibGVkJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBhZ2V0aXRsZS1ob21lJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoeXBoZW5zRW5hYmxlZCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUGFnZXRpdGxlSG9tZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhQYWdldGl0bGVIb21lRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFBhZ2V0aXRsZUhvbWUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYWdldGl0bGVIb21lIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdhbGxvd01hbnVhbElucHV0JywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkaXNhYmxlZCcsICdlcnJvcicsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndG90YWwnLCAndmFsdWUnXSxcbiAgbWV0aG9kczogWydwcmV2JywgJ25leHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcGFnaW5hdGlvbicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2FsbG93TWFudWFsSW5wdXQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICd0b3RhbCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3N0emhDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBhZ2luYXRpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoUGFnaW5hdGlvbkVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhZ2luYXRpb25TdHpoUGFnaW5hdGlvbkNoYW5nZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhQYWdpbmF0aW9uQ2hhbmdlRXZlbnQgYXMgSVN0emhQYWdpbmF0aW9uU3R6aFBhZ2luYXRpb25DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQYWdpbmF0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGFnaW5hdGlvbiB7XG4gIC8qKlxuICAgKiBQYWdpbmF0aW9uIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFnaW5hdGlvblN0emhQYWdpbmF0aW9uQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXV0b2xvYWQnLCAnY2FwdGlvbicsICdjb3B5cmlnaHQnLCAnaGVhZGluZycsICdsb2NhbGl6YXRpb24nLCAnb3JpZW50YXRpb25PbkJ5RGVmYXVsdCcsICdzY2VuZScsICdzY2VuZUZhZGVEdXJhdGlvbicsICdzY2VuZXMnLCAnc2hvd0NvbnRyb2xzJywgJ3Nob3dIb3RzcG90cyddLFxuICBtZXRob2RzOiBbJ2dldFZpZXdlciddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1wYW5vcmFtYScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXV0b2xvYWQnLCAnY2FwdGlvbicsICdjb3B5cmlnaHQnLCAnaGVhZGluZycsICdsb2NhbGl6YXRpb24nLCAnb3JpZW50YXRpb25PbkJ5RGVmYXVsdCcsICdzY2VuZScsICdzY2VuZUZhZGVEdXJhdGlvbicsICdzY2VuZXMnLCAnc2hvd0NvbnRyb2xzJywgJ3Nob3dIb3RzcG90cyddLFxuICBvdXRwdXRzOiBbJ3N0emhMb2FkJywgJ3N0emhDaGFuZ2UnLCAnc3R6aEZ1bGxzY3JlZW5DaGFuZ2UnLCAnc3R6aFNjZW5lQ2hhbmdlJywgJ3N0emhab29tQ2hhbmdlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQYW5vcmFtYSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhQYW5vcmFtYUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoTG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUxvYWRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hQ2hhbmdlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEZ1bGxzY3JlZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFGdWxsc2NyZWVuQ2hhbmdlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFNjZW5lQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoWm9vbUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYVpvb21DaGFuZ2VFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFMb2FkRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUxvYWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBhbm9yYW1hQ2hhbmdlRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUGFub3JhbWFGdWxsc2NyZWVuQ2hhbmdlRXZlbnQgYXMgSVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUZ1bGxzY3JlZW5DaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudCBhcyBJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBhbm9yYW1hWm9vbUNoYW5nZUV2ZW50IGFzIElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFab29tQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGFub3JhbWEgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhQYW5vcmFtYSB7XG4gIC8qKlxuICAgKiBMb2FkIGV2ZW50XG4gICAqL1xuICBzdHpoTG9hZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFMb2FkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUGFub3JhbWFTdHpoUGFub3JhbWFDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRnVsbHNjcmVlbiBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhGdWxsc2NyZWVuQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYUZ1bGxzY3JlZW5DaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogU2NlbmUgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoU2NlbmVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBhbm9yYW1hU3R6aFBhbm9yYW1hU2NlbmVDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogWm9vbSBjaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhab29tQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQYW5vcmFtYVN0emhQYW5vcmFtYVpvb21DaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAncGF5bWVudEliYW4nLCAncGF5bWVudFJlY2lwaWVudCcsICdwcml2YWN5UG9saWN5VXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXBremgtcXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdwYXltZW50SWJhbicsICdwYXltZW50UmVjaXBpZW50JywgJ3ByaXZhY3lQb2xpY3lVcmwnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFBremhRciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhQa3poUXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUGt6aFFyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUGt6aFFyIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Rpc3RhbmNlJywgJ2Z1bGx3aWR0aCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2l6ZScsICdza2lkZGluZycsICdzdHJhdGVneScsICd2YXJpYW50J10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvZ2dsZScsICd1cGRhdGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcG9wb3ZlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGlzdGFuY2UnLCAnZnVsbHdpZHRoJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3BsYWNlbWVudCcsICdzaXplJywgJ3NraWRkaW5nJywgJ3N0cmF0ZWd5JywgJ3ZhcmlhbnQnXSxcbiAgb3V0cHV0czogWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQb3BvdmVyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFBvcG92ZXJFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aE9wZW4gPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUG9wb3ZlclN0emhQb3BvdmVyT3BlbkV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhPcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUG9wb3ZlclN0emhQb3BvdmVyT3BlbmVkRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBvcG92ZXJTdHpoUG9wb3ZlckNsb3NlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhQb3BvdmVyU3R6aFBvcG92ZXJDbG9zZWRFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUG9wb3Zlck9wZW5FdmVudCBhcyBJU3R6aFBvcG92ZXJTdHpoUG9wb3Zlck9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFBvcG92ZXJPcGVuZWRFdmVudCBhcyBJU3R6aFBvcG92ZXJTdHpoUG9wb3Zlck9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUG9wb3ZlckNsb3NlRXZlbnQgYXMgSVN0emhQb3BvdmVyU3R6aFBvcG92ZXJDbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoUG9wb3ZlckNsb3NlZEV2ZW50IGFzIElTdHpoUG9wb3ZlclN0emhQb3BvdmVyQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUG9wb3ZlciBleHRlbmRzIENvbXBvbmVudHMuU3R6aFBvcG92ZXIge1xuICAvKipcbiAgICogUG9wb3ZlciBvcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUG9wb3ZlclN0emhQb3BvdmVyT3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBQb3BvdmVyIG9wZW5lZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aE9wZW5lZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUG9wb3ZlclN0emhQb3BvdmVyT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFBvcG92ZXIgY2xvc2UgZXZlbnRcbiAgICovXG4gIHN0emhDbG9zZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUG9wb3ZlclN0emhQb3BvdmVyQ2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogUG9wb3ZlciBjbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFBvcG92ZXJTdHpoUG9wb3ZlckNsb3NlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXByaW50JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhQcmludCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhQcmludEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhQcmludCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFByaW50IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dGhvcicsICd0ZXh0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXF1b3RlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhdXRob3InLCAndGV4dCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUXVvdGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoUXVvdGVFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUXVvdGUgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhRdW90ZSB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcmFkaW8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdjaGVja2VkJywgJ2RlZmF1bHRDaGVja2VkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3N0emhDaGFuZ2UnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSYWRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhSYWRpb0VsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFJhZGlvU3R6aFJhZGlvQ2hhbmdlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFJhZGlvU3R6aFJhZGlvRm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhSYWRpb1N0emhSYWRpb0JsdXJFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUmFkaW9DaGFuZ2VFdmVudCBhcyBJU3R6aFJhZGlvU3R6aFJhZGlvQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhSYWRpb0ZvY3VzRXZlbnQgYXMgSVN0emhSYWRpb1N0emhSYWRpb0ZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhSYWRpb0JsdXJFdmVudCBhcyBJU3R6aFJhZGlvU3R6aFJhZGlvQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFJhZGlvIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUmFkaW8ge1xuICAvKipcbiAgICogSW5wdXQgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhSYWRpb1N0emhSYWRpb0NoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBmb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhSYWRpb1N0emhSYWRpb0ZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhSYWRpb1N0emhSYWRpb0JsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjaGVja2VkUmFkaW8nLCAnZGVmYXVsdFZhbHVlJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXJlY3Rpb24nLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZUxlZ2VuZCcsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsZWdlbmQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncHJldmVudFVwZGF0ZVByb3BlcnRpZXMnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcmFkaW9ncm91cCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2hlY2tlZFJhZGlvJywgJ2RlZmF1bHRWYWx1ZScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlyZWN0aW9uJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVMZWdlbmQnLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGVnZW5kJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3ByZXZlbnRVcGRhdGVQcm9wZXJ0aWVzJywgJ3JlcXVpcmVkJywgJ3ZhbHVlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSYWRpb2dyb3VwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFJhZGlvZ3JvdXBFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUmFkaW9ncm91cCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJhZGlvZ3JvdXAge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2FuYWx5dGljc0lkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rlc2NyaXB0aW9uTG9uZycsICdkZXNjcmlwdGlvbkxvbmdUaXRsZScsICdkaXNhYmxlZCcsICdlcnJvcicsICdoaWRlT3B0aW9uYWwnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZWFkb25seScsICdyZXF1aXJlZCcsICdzaXplJywgJ3ZhbHVlJ10sXG4gIG1ldGhvZHM6IFsnc2V0VmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtcmF0aW5nJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnYW5hbHl0aWNzSWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsSGlkZGVuJywgJ2xvY2FsaXphdGlvbicsICduYW1lJywgJ3JlYWRvbmx5JywgJ3JlcXVpcmVkJywgJ3NpemUnLCAndmFsdWUnXSxcbiAgb3V0cHV0czogWydzdHpoQ2hhbmdlJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmF0aW5nIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFJhdGluZ0VsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFJhdGluZ1N0emhSYXRpbmdDaGFuZ2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmF0aW5nU3R6aFJhdGluZ0ZvY3VzRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmF0aW5nU3R6aFJhdGluZ0JsdXJFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoUmF0aW5nQ2hhbmdlRXZlbnQgYXMgSVN0emhSYXRpbmdTdHpoUmF0aW5nQ2hhbmdlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhSYXRpbmdGb2N1c0V2ZW50IGFzIElTdHpoUmF0aW5nU3R6aFJhdGluZ0ZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhSYXRpbmdCbHVyRXZlbnQgYXMgSVN0emhSYXRpbmdTdHpoUmF0aW5nQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFJhdGluZyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJhdGluZyB7XG4gIC8qKlxuICAgKiBDaGFuZ2UgZXZlbnRcbiAgICovXG4gIHN0emhDaGFuZ2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFJhdGluZ1N0emhSYXRpbmdDaGFuZ2VFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoUmF0aW5nU3R6aFJhdGluZ0ZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhSYXRpbmdTdHpoUmF0aW5nQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ZpdCcsICdwb3J0cmFpdCcsICdyYXRpbycsICdyYXRpb0xhcmdlJywgJ3JhdGlvTWVkaXVtJywgJ3JhdGlvU21hbGwnLCAncmF0aW9VbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yYXRpbycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZml0JywgJ3BvcnRyYWl0JywgJ3JhdGlvJywgJ3JhdGlvTGFyZ2UnLCAncmF0aW9NZWRpdW0nLCAncmF0aW9TbWFsbCcsICdyYXRpb1VsdHJhJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhSYXRpbyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhSYXRpb0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSYXRpbyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFJhdGlvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hyZWYnXSxcbiAgbWV0aG9kczogWydvcGVuUGxheWVyJywgJ2Nsb3NlUGxheWVyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXJlYWRzcGVha2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW3sgbmFtZTogJ2hyZWYnLCByZXF1aXJlZDogdHJ1ZSB9XSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFJlYWRzcGVha2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFJlYWRzcGVha2VyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFJlYWRzcGVha2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoUmVhZHNwZWFrZXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZXh0ZXJuYWxMaW5rSWNvbicsICdleHRlcm5hbExpbmtTZWxlY3RvcicsICdsb2NhbGl6YXRpb24nLCAncmVtb3ZlRmlyc3RNYXJnaW4nLCAncmVtb3ZlTGFzdE1hcmdpbiddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1yaWNodGV4dCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZXh0ZXJuYWxMaW5rSWNvbicsICdleHRlcm5hbExpbmtTZWxlY3RvcicsICdsb2NhbGl6YXRpb24nLCAncmVtb3ZlRmlyc3RNYXJnaW4nLCAncmVtb3ZlTGFzdE1hcmdpbiddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUmljaHRleHQge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoUmljaHRleHRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoUmljaHRleHQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSaWNodGV4dCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjb250ZW50JywgJ2l0ZW1zJywgJ2p1c3RpZnknLCAnc3BhbicsICdzcGFuTGFyZ2UnLCAnc3Bhbk1lZGl1bScsICdzcGFuU21hbGwnLCAnc3BhblVsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXJvdycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29udGVudCcsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NwYW4nLCAnc3BhbkxhcmdlJywgJ3NwYW5NZWRpdW0nLCAnc3BhblNtYWxsJywgJ3NwYW5VbHRyYSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoUm93IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFJvd0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhSb3cgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhSb3cge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZWQnLCAnZXJyb3InLCAnaW52YWxpZCcsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdudW1iZXJzJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNhcHRjaGEnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2ludmFsaWQnLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAnbnVtYmVycycsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3N0emhDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNhcHRjaGEge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoU2FwdGNoYUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNhcHRjaGFTdHpoU2FwdGNoYUNoYW5nZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhTYXB0Y2hhQ2hhbmdlRXZlbnQgYXMgSVN0emhTYXB0Y2hhU3R6aFNhcHRjaGFDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTYXB0Y2hhIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2FwdGNoYSB7XG4gIC8qKlxuICAgKiBTYXB0Y2hhIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU2FwdGNoYVN0emhTYXB0Y2hhQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2Nyb2xsdXAnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNjcm9sbHVwIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFNjcm9sbHVwRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNjcm9sbHVwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2Nyb2xsdXAge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBpJywgJ2F1dG9mZXRjaEFzaWRlRmlsdGVycycsICdhdXRvZmV0Y2hNYWluRmlsdGVycycsICdkZWJvdW5jZVRpbWUnLCAnZW1wdHlMaW5rSHJlZicsICdlbXB0eUxpbmtMYWJlbCcsICdlbXB0eVRleHQnLCAnaGVhZGluZycsICdoaWRlQXNpZGVGaWx0ZXJzJywgJ2hpZGVNYWluRmlsdGVycycsICdoaWRlUmVzdWx0c0hlYWRpbmcnLCAnaHlwaGVuc0VuYWJsZWQnLCAnaW5pdGlhbEZldGNoJywgJ2xpbWl0JywgJ2xvY2FsaXphdGlvbicsICdwcmV2ZW50VXBkYXRlVXJsJywgJ3Jlc3VsdEhlYWRpbmdMZXZlbCcsICdzb3J0QnknLCAnc29ydE9wdGlvbnMnLCAnc3Vic2NyaWJlQWRkaXRpb25hbFF1ZXJ5UGFyYW1ldGVycycsICdzdWJzY3JpYmVMYWJlbCcsICdzdWJzY3JpYmVQYXRoJywgJ3RlbXBsYXRlUmVzdWx0JywgJ3RlbXBsYXRlUmVzdWx0V3JhcHBlckVsZW1lbnQnLCAndGVtcGxhdGVSZXN1bHRXcmFwcGVyUHJvcHMnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zZWFyY2gnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FwaScsICdhdXRvZmV0Y2hBc2lkZUZpbHRlcnMnLCAnYXV0b2ZldGNoTWFpbkZpbHRlcnMnLCAnZGVib3VuY2VUaW1lJywgJ2VtcHR5TGlua0hyZWYnLCAnZW1wdHlMaW5rTGFiZWwnLCAnZW1wdHlUZXh0JywgJ2hlYWRpbmcnLCAnaGlkZUFzaWRlRmlsdGVycycsICdoaWRlTWFpbkZpbHRlcnMnLCAnaGlkZVJlc3VsdHNIZWFkaW5nJywgJ2h5cGhlbnNFbmFibGVkJywgJ2luaXRpYWxGZXRjaCcsICdsaW1pdCcsICdsb2NhbGl6YXRpb24nLCAncHJldmVudFVwZGF0ZVVybCcsICdyZXN1bHRIZWFkaW5nTGV2ZWwnLCAnc29ydEJ5JywgJ3NvcnRPcHRpb25zJywgJ3N1YnNjcmliZUFkZGl0aW9uYWxRdWVyeVBhcmFtZXRlcnMnLCAnc3Vic2NyaWJlTGFiZWwnLCAnc3Vic2NyaWJlUGF0aCcsICd0ZW1wbGF0ZVJlc3VsdCcsICd0ZW1wbGF0ZVJlc3VsdFdyYXBwZXJFbGVtZW50JywgJ3RlbXBsYXRlUmVzdWx0V3JhcHBlclByb3BzJywgJ3ZhcmlhbnQnXSxcbiAgb3V0cHV0czogWydzdHpoT3ZlcmxheUNsb3NlQ2xpY2snXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNlYXJjaCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhTZWFyY2hFbGVtZW50O1xuICBAT3V0cHV0KCkgc3R6aE92ZXJsYXlDbG9zZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNlYXJjaFN0emhTZWFyY2hPdmVybGF5Q2xvc2VDbGlja0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhTZWFyY2hPdmVybGF5Q2xvc2VDbGlja0V2ZW50IGFzIElTdHpoU2VhcmNoU3R6aFNlYXJjaE92ZXJsYXlDbG9zZUNsaWNrRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2VhcmNoIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2VhcmNoIHtcbiAgLyoqXG4gICAqIFNlYXJjaCBvdmVybGF5IGNsb3NlIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoT3ZlcmxheUNsb3NlQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNlYXJjaFN0emhTZWFyY2hPdmVybGF5Q2xvc2VDbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JhY2tncm91bmQnLCAnYnJlYWtvdXQnLCAnbWFyZ2luQm90dG9tJywgJ21hcmdpblRvcCcsICdwYWRkaW5nQm90dG9tJywgJ3BhZGRpbmdUb3AnLCAndmFyaWFudCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zZWN0aW9uJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydiYWNrZ3JvdW5kJywgJ2JyZWFrb3V0JywgJ21hcmdpbkJvdHRvbScsICdtYXJnaW5Ub3AnLCAncGFkZGluZ0JvdHRvbScsICdwYWRkaW5nVG9wJywgJ3ZhcmlhbnQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNlY3Rpb24ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoU2VjdGlvbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTZWN0aW9uIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2VjdGlvbiB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAnbWFpbEJvZHknLCAnbWFpbFN1YmplY3QnLCAnc2VydmljZXMnLCAndXJsJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNoYXJlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAnbWFpbEJvZHknLCAnbWFpbFN1YmplY3QnLCAnc2VydmljZXMnLCAndXJsJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTaGFyZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhTaGFyZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTaGFyZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNoYXJlIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Nsb3NlS2V5JywgJ2hpZGVGcm9tRGF0ZScsICdsYXJnZScsICdtZWRpdW0nLCAnbWlrcm8nLCAnc2hvd0Zyb21EYXRlJywgJ3NtYWxsJywgJ3VsdHJhJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXNob3cnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Nsb3NlS2V5JywgJ2hpZGVGcm9tRGF0ZScsICdsYXJnZScsICdtZWRpdW0nLCAnbWlrcm8nLCAnc2hvd0Zyb21EYXRlJywgJ3NtYWxsJywgJ3VsdHJhJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTaG93IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFNob3dFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2hvdyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNob3cge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaXRlbXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2l0ZW1hcCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaXRlbXMnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNpdGVtYXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoU2l0ZW1hcEVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTaXRlbWFwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2l0ZW1hcCB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1za2luLXBvcnRhbC1taXR3aXJrZW4nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNraW5Qb3J0YWxNaXR3aXJrZW4ge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoU2tpblBvcnRhbE1pdHdpcmtlbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTa2luUG9ydGFsTWl0d2lya2VuIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU2tpblBvcnRhbE1pdHdpcmtlbiB7fVxuXG5cbkBQcm94eUNtcCh7XG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1za2luLXN0b3J5Ym9vay1wcmV2aWV3JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTa2luU3Rvcnlib29rUHJldmlldyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhTa2luU3Rvcnlib29rUHJldmlld0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTa2luU3Rvcnlib29rUHJldmlldyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNraW5TdG9yeWJvb2tQcmV2aWV3IHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbGlua0FjY2Vzc2tleScsICdsaW5rVGl0bGUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc2tpcGxpbmsnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2hyZWYnLCAnbGFiZWwnLCAnbGlua0FjY2Vzc2tleScsICdsaW5rVGl0bGUnXSxcbiAgb3V0cHV0czogWydzdHpoRm9jdXMnLCAnc3R6aEJsdXInXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNraXBsaW5rIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFNraXBsaW5rRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTa2lwbGlua1N0emhTa2lwbGlua0ZvY3VzRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU2tpcGxpbmtTdHpoU2tpcGxpbmtCbHVyRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFNraXBsaW5rRm9jdXNFdmVudCBhcyBJU3R6aFNraXBsaW5rU3R6aFNraXBsaW5rRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFNraXBsaW5rQmx1ckV2ZW50IGFzIElTdHpoU2tpcGxpbmtTdHpoU2tpcGxpbmtCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU2tpcGxpbmsgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTa2lwbGluayB7XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTa2lwbGlua1N0emhTa2lwbGlua0ZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTa2lwbGlua1N0emhTa2lwbGlua0JsdXJFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoZWFkaW5nJywgJ2hlYWRpbmdMZXZlbCcsICdpdGVtcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zb2NpYWxtZWRpYXN0cmVhbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaXRlbXMnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNvY2lhbG1lZGlhc3RyZWFtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFNvY2lhbG1lZGlhc3RyZWFtRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNvY2lhbG1lZGlhc3RyZWFtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU29jaWFsbWVkaWFzdHJlYW0ge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGF0ZUFkYXB0ZXInLCAnaXRlbScsICdsb2NhbGl6YXRpb24nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc29jaWFsbWVkaWFzdHJlYW0taXRlbScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnZGF0ZUFkYXB0ZXInLCAnaXRlbScsICdsb2NhbGl6YXRpb24nXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNvY2lhbG1lZGlhc3RyZWFtSXRlbSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhTb2NpYWxtZWRpYXN0cmVhbUl0ZW1FbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU29jaWFsbWVkaWFzdHJlYW1JdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU29jaWFsbWVkaWFzdHJlYW1JdGVtIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2NvbnRhaW5lcicsICdkYXRhSWRBdHRyaWJ1dGUnLCAnZGlzYWJsZWQnLCAnZmlsdGVyRWxlbWVudHMnLCAnZ2hvc3RDbG9uZScsICdsb2NhbGl6YXRpb24nXSxcbiAgbWV0aG9kczogWyd0b0FycmF5JywgJ3NvcnQnLCAnbW92ZUl0ZW0nXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc29ydGFibGUnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2NvbnRhaW5lcicsICdkYXRhSWRBdHRyaWJ1dGUnLCAnZGlzYWJsZWQnLCAnZmlsdGVyRWxlbWVudHMnLCAnZ2hvc3RDbG9uZScsICdsb2NhbGl6YXRpb24nXSxcbiAgb3V0cHV0czogWydzdHpoVXBkYXRlJywgJ3N0emhEaXNhYmxlJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTb3J0YWJsZSB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhTb3J0YWJsZUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoVXBkYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNvcnRhYmxlU3R6aFNvcnRhYmxlVXBkYXRlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aERpc2FibGUgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU29ydGFibGVTdHpoU29ydGFibGVEaXNhYmxlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFNvcnRhYmxlVXBkYXRlRXZlbnQgYXMgSVN0emhTb3J0YWJsZVN0emhTb3J0YWJsZVVwZGF0ZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoU29ydGFibGVEaXNhYmxlRXZlbnQgYXMgSVN0emhTb3J0YWJsZVN0emhTb3J0YWJsZURpc2FibGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhTb3J0YWJsZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFNvcnRhYmxlIHtcbiAgLyoqXG4gICAqIFVwZGF0ZSBldmVudFxuICAgKi9cbiAgc3R6aFVwZGF0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU29ydGFibGVTdHpoU29ydGFibGVVcGRhdGVFdmVudD4+O1xuICAvKipcbiAgICogRGlzYWJsZSBldmVudFxuICAgKi9cbiAgc3R6aERpc2FibGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFNvcnRhYmxlU3R6aFNvcnRhYmxlRGlzYWJsZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdib3JkZXInLCAnY3VydmUnLCAnaXRlbXMnLCAnanVzdGlmeScsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc3BhY2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdib3JkZXInLCAnY3VydmUnLCAnaXRlbXMnLCAnanVzdGlmeScsICdzaXplJywgJ3NpemVMYXJnZScsICdzaXplTWVkaXVtJywgJ3NpemVTbWFsbCcsICdzaXplVWx0cmEnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFNwYWNlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFNwYWNlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFNwYWNlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU3BhY2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnbGFiZWwnLCAncGVyY2VudCcsICd0eXBlJywgJ3dpdGhMb2FkaW5nYmFyJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXN0YXR1cycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnbGFiZWwnLCAncGVyY2VudCcsICd0eXBlJywgJ3dpdGhMb2FkaW5nYmFyJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTdGF0dXMge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoU3RhdHVzRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFN0YXR1cyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFN0YXR1cyB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydjbGlja0Rpc2FibGVkJywgJ2RhdGEnLCAnaW5kZXgnLCAnbG9jYWxpemF0aW9uJywgJ3N0ZXBzJywgJ3N0ZXBzTGFyZ2UnLCAnc3RlcHNNZWRpdW0nLCAnc3RlcHNTbWFsbCcsICdzdGVwc1VsdHJhJ10sXG4gIG1ldGhvZHM6IFsnZ2V0SXRlbURhdGEnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc3RlcHBlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY2xpY2tEaXNhYmxlZCcsICdkYXRhJywgJ2luZGV4JywgJ2xvY2FsaXphdGlvbicsICdzdGVwcycsICdzdGVwc0xhcmdlJywgJ3N0ZXBzTWVkaXVtJywgJ3N0ZXBzU21hbGwnLCAnc3RlcHNVbHRyYSddLFxuICBvdXRwdXRzOiBbJ3N0emhDbGljaycsICdzdHpoRG90dGVkQ2xpY2snXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFN0ZXBwZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoU3RlcHBlckVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RlcHBlclN0emhTdGVwcGVySXRlbUNsaWNrRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aERvdHRlZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFN0ZXBwZXJTdHpoU3RlcHBlckl0ZW1Eb3R0ZWRDbGlja0V2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhTdGVwcGVySXRlbUNsaWNrRXZlbnQgYXMgSVN0emhTdGVwcGVyU3R6aFN0ZXBwZXJJdGVtQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFN0ZXBwZXJJdGVtRG90dGVkQ2xpY2tFdmVudCBhcyBJU3R6aFN0ZXBwZXJTdHpoU3RlcHBlckl0ZW1Eb3R0ZWRDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFN0ZXBwZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhTdGVwcGVyIHtcbiAgLyoqXG4gICAqIFN0ZXAgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RlcHBlclN0emhTdGVwcGVySXRlbUNsaWNrRXZlbnQ+PjtcbiAgLyoqXG4gICAqIERvdHRlZCBzdGVwIGNsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoRG90dGVkQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFN0ZXBwZXJTdHpoU3RlcHBlckl0ZW1Eb3R0ZWRDbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2NsaWNrRGlzYWJsZWQnLCAnY3VycmVudCcsICdkaXNhYmxlZCcsICdkb3R0ZWQnLCAnZmlyc3QnLCAnaGlkZScsICdpY29uJywgJ2luY29tcGxldGUnLCAnbGFiZWwnLCAnbGFzdCcsICdwYXNzZWQnLCAnc3RlcCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC1zdGVwcGVyLWl0ZW0nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2FuYWx5dGljc0lkJywgJ2NsaWNrRGlzYWJsZWQnLCAnY3VycmVudCcsICdkaXNhYmxlZCcsICdkb3R0ZWQnLCAnZmlyc3QnLCAnaGlkZScsICdpY29uJywgJ2luY29tcGxldGUnLCAnbGFiZWwnLCAnbGFzdCcsICdwYXNzZWQnLCAnc3RlcCddLFxuICBvdXRwdXRzOiBbJ3N0emhDbGljaycsICdzdHpoRG90dGVkQ2xpY2snXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFN0ZXBwZXJJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFN0ZXBwZXJJdGVtRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhTdGVwcGVySXRlbVN0emhTdGVwcGVySXRlbUNsaWNrRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aERvdHRlZENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFN0ZXBwZXJJdGVtU3R6aFN0ZXBwZXJJdGVtRG90dGVkQ2xpY2tFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoU3RlcHBlckl0ZW1DbGlja0V2ZW50IGFzIElTdHpoU3RlcHBlckl0ZW1TdHpoU3RlcHBlckl0ZW1DbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoU3RlcHBlckl0ZW1Eb3R0ZWRDbGlja0V2ZW50IGFzIElTdHpoU3RlcHBlckl0ZW1TdHpoU3RlcHBlckl0ZW1Eb3R0ZWRDbGlja0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFN0ZXBwZXJJdGVtIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU3RlcHBlckl0ZW0ge1xuICAvKipcbiAgICogQ2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RlcHBlckl0ZW1TdHpoU3RlcHBlckl0ZW1DbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBEb3R0ZWQgY2xpY2sgZXZlbnRcbiAgICovXG4gIHN0emhEb3R0ZWRDbGljazogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RlcHBlckl0ZW1TdHpoU3RlcHBlckl0ZW1Eb3R0ZWRDbGlja0V2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2JsZWVkaW5nJywgJ2Rpc2FibGVTdGlja3lCb3R0b20nLCAnZGlzYWJsZVN0aWNreVRvcCcsICduYW1lJywgJ3Bvc2l0aW9uJywgJ3ZhcmlhbnQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc3RpY2t5JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydibGVlZGluZycsICdkaXNhYmxlU3RpY2t5Qm90dG9tJywgJ2Rpc2FibGVTdGlja3lUb3AnLCAnbmFtZScsICdwb3NpdGlvbicsICd2YXJpYW50J10sXG4gIG91dHB1dHM6IFsnc3R6aFN0dWNrVG9wJywgJ3N0emhTdHVja0JvdHRvbSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoU3RpY2t5IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFN0aWNreUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoU3R1Y2tUb3AgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrVG9wRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFN0dWNrQm90dG9tID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFN0aWNreVN0emhTdGlja3lTdHVja0JvdHRvbUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhTdGlja3lTdHVja1RvcEV2ZW50IGFzIElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrVG9wRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhTdGlja3lTdHVja0JvdHRvbUV2ZW50IGFzIElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrQm90dG9tRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3RpY2t5IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoU3RpY2t5IHtcbiAgLyoqXG4gICAqIFN0aWNreSBzdHVjayB0b3AgZXZlbnRcbiAgICovXG4gIHN0emhTdHVja1RvcDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrVG9wRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFN0aWNreSBzdHVjayBib3R0b20gZXZlbnRcbiAgICovXG4gIHN0emhTdHVja0JvdHRvbTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoU3RpY2t5U3R6aFN0aWNreVN0dWNrQm90dG9tRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsncGFnZXRpdGxlUXVlcnknXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtc3RpY2t5LWFjdGlvbnMnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ3BhZ2V0aXRsZVF1ZXJ5J10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhTdGlja3lBY3Rpb25zIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFN0aWNreUFjdGlvbnNFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoU3RpY2t5QWN0aW9ucyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFN0aWNreUFjdGlvbnMge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnZGlzYWJsZU1pbldpZHRoJywgJ2ZpeGVkTGVmdCcsICdmaXhlZFJpZ2h0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRhYmxlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydkaXNhYmxlTWluV2lkdGgnLCAnZml4ZWRMZWZ0JywgJ2ZpeGVkUmlnaHQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRhYmxlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFRhYmxlRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRhYmxlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGFibGUge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYW5hbHl0aWNzSWQnLCAnZGlzYWJsZWQnLCAnaHJlZicsICdsYWJlbCcsICdub25JbnRlcmFjdGl2ZScsICdyZW1vdmVBbmFseXRpY3NJZCcsICdzaXplJywgJ3RhcmdldCcsICd0eXBlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRhZycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2ExMXlMYWJlbCcsICdhMTF5VGFiaW5kZXgnLCAnYW5hbHl0aWNzSWQnLCAnZGlzYWJsZWQnLCAnaHJlZicsICdsYWJlbCcsICdub25JbnRlcmFjdGl2ZScsICdyZW1vdmVBbmFseXRpY3NJZCcsICdzaXplJywgJ3RhcmdldCcsICd0eXBlJ10sXG4gIG91dHB1dHM6IFsnc3R6aENsaWNrJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGFnIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFRhZ0VsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGFnU3R6aFRhZ0NsaWNrRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdGb2N1c0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdCbHVyRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0NsaWNrRXZlbnQgYXMgSVN0emhUYWdTdHpoVGFnQ2xpY2tFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0ZvY3VzRXZlbnQgYXMgSVN0emhUYWdTdHpoVGFnRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRhZ0JsdXJFdmVudCBhcyBJU3R6aFRhZ1N0emhUYWdCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGFnIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVGFnIHtcbiAgLyoqXG4gICAqIENsaWNrIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xpY2s6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdDbGlja0V2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUYWdTdHpoVGFnRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRhZ1N0emhUYWdCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sb3InLCAnY3VydmUnLCAnZm9udCcsICdsZWFkJywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10ZXh0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xvcicsICdjdXJ2ZScsICdmb250JywgJ2xlYWQnLCAnc2l6ZScsICdzaXplTGFyZ2UnLCAnc2l6ZU1lZGl1bScsICdzaXplU21hbGwnLCAnc2l6ZVVsdHJhJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUZXh0IHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFRleHRFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVGV4dCBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRleHQge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnaW1hZ2VNb3ZlcycsICdpbWFnZVBvc2l0aW9uJywgJ3NpemUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdGV4dGFuZGltYWdlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydpbWFnZU1vdmVzJywgJ2ltYWdlUG9zaXRpb24nLCAnc2l6ZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGV4dGFuZGltYWdlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFRleHRhbmRpbWFnZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUZXh0YW5kaW1hZ2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUZXh0YW5kaW1hZ2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29sbGFwc2libGUnLCAnZm9sZGFibGUnLCAnbXVsdGlzZWxlY3RhYmxlJ10sXG4gIG1ldGhvZHM6IFsnc2V0SXRlbUZvY3VzJywgJ3VwZGF0ZVN0ZXBzJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRpbWVsaW5lJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb2xsYXBzaWJsZScsICdmb2xkYWJsZScsICdtdWx0aXNlbGVjdGFibGUnXSxcbiAgb3V0cHV0czogWydzdHpoRm9sZGFibGVDaGFuZ2UnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRpbWVsaW5lIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFRpbWVsaW5lRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhGb2xkYWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZVN0emhUaW1lbGluZUZvbGRhYmxlQ2hhbmdlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lRm9sZGFibGVDaGFuZ2VFdmVudCBhcyBJU3R6aFRpbWVsaW5lU3R6aFRpbWVsaW5lRm9sZGFibGVDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUaW1lbGluZSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRpbWVsaW5lIHtcbiAgLyoqXG4gICAqIEZvbGRhYmxlIGNoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aEZvbGRhYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZVN0emhUaW1lbGluZUZvbGRhYmxlQ2hhbmdlRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYW5hbHl0aWNzSWQnLCAnYmFkZ2UnLCAnYmFkZ2VFbXB0eScsICdiYWRnZVR5cGUnLCAnY29sbGFwc2libGUnLCAnY29tcGxldGVkJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVkJywgJ2ZvbGRhYmxlJywgJ2hlYWRpbmcnLCAnaGVhZGluZ0xldmVsJywgJ2ljb24nLCAnb3BlbicsICdzdGVwJ10sXG4gIG1ldGhvZHM6IFsnc2hvdycsICdoaWRlJywgJ3RvZ2dsZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10aW1lbGluZS1pdGVtJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhbmFseXRpY3NJZCcsICdiYWRnZScsICdiYWRnZUVtcHR5JywgJ2JhZGdlVHlwZScsICdjb2xsYXBzaWJsZScsICdjb21wbGV0ZWQnLCAnZGVzY3JpcHRpb24nLCAnZGlzYWJsZWQnLCAnZm9sZGFibGUnLCAnaGVhZGluZycsICdoZWFkaW5nTGV2ZWwnLCAnaWNvbicsICdvcGVuJywgJ3N0ZXAnXSxcbiAgb3V0cHV0czogWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJywgJ3N0emhGb2N1cycsICdzdHpoQmx1ciddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGltZWxpbmVJdGVtIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFRpbWVsaW5lSXRlbUVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoT3BlbiA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtT3BlbkV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhPcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbU9wZW5lZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1DbG9zZWRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUZvY3VzRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUJsdXJFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtT3BlbkV2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbU9wZW5FdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVsaW5lSXRlbU9wZW5lZEV2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbU9wZW5lZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtQ2xvc2VFdmVudCBhcyBJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1DbG9zZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVGltZWxpbmVJdGVtQ2xvc2VkRXZlbnQgYXMgSVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQ2xvc2VkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUl0ZW1Gb2N1c0V2ZW50IGFzIElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUaW1lbGluZUl0ZW1CbHVyRXZlbnQgYXMgSVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRpbWVsaW5lSXRlbSBleHRlbmRzIENvbXBvbmVudHMuU3R6aFRpbWVsaW5lSXRlbSB7XG4gIC8qKlxuICAgKiBPcGVuIGV2ZW50XG4gICAqL1xuICBzdHpoT3BlbjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbU9wZW5FdmVudD4+O1xuICAvKipcbiAgICogT3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtT3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1DbG9zZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBDbG9zZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhDbG9zZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRpbWVsaW5lSXRlbVN0emhUaW1lbGluZUl0ZW1DbG9zZWRFdmVudD4+O1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZWxpbmVJdGVtU3R6aFRpbWVsaW5lSXRlbUZvY3VzRXZlbnQ+PjtcbiAgLyoqXG4gICAqIElucHV0IGJsdXIgZXZlbnRcbiAgICovXG4gIHN0emhCbHVyOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lbGluZUl0ZW1TdHpoVGltZWxpbmVJdGVtQmx1ckV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdvcGVuJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdGVwJywgJ3ZhbHVlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRpbWVwaWNrZXInLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2ExMXlEZXNjcmliZWRieScsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ21heCcsICdtaW4nLCAnbmFtZScsICdvcGVuJywgJ3BvcG92ZXJQbGFjZW1lbnQnLCAncmVhZG9ubHknLCAncmVxdWlyZWQnLCAnc2l6ZScsICdzdGVwJywgJ3ZhbHVlJ10sXG4gIG91dHB1dHM6IFsnc3R6aENoYW5nZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVGltZXBpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhUaW1lcGlja2VyRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVGltZXBpY2tlclN0emhUaW1lcGlja2VyQ2hhbmdlRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRpbWVwaWNrZXJDaGFuZ2VFdmVudCBhcyBJU3R6aFRpbWVwaWNrZXJTdHpoVGltZXBpY2tlckNoYW5nZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRpbWVwaWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUaW1lcGlja2VyIHtcbiAgLyoqXG4gICAqIFRpbWVwaWNrZXIgY2hhbmdlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUaW1lcGlja2VyU3R6aFRpbWVwaWNrZXJDaGFuZ2VFdmVudD4+O1xufVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydoaWRlQ2xvc2UnLCAnaW5pdGlhbE9wZW5BbmltYXRpb24nLCAnbGFiZWwnLCAnbG9jYWxpemF0aW9uJywgJ29wZW4nLCAndHlwZSddLFxuICBtZXRob2RzOiBbJ3Nob3cnLCAnaGlkZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10b2FzdCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnaGlkZUNsb3NlJywgJ2luaXRpYWxPcGVuQW5pbWF0aW9uJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3R5cGUnXSxcbiAgb3V0cHV0czogWydzdHpoT3BlbicsICdzdHpoT3BlbmVkJywgJ3N0emhDbG9zZScsICdzdHpoQ2xvc2VkJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUb2FzdCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhUb2FzdEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoT3BlbiA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdE9wZW5FdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoT3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbmVkRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aENsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvYXN0U3R6aFRvYXN0Q2xvc2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvYXN0U3R6aFRvYXN0Q2xvc2VkRXZlbnQ+PigpO1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmltcG9ydCB0eXBlIHsgU3R6aFRvYXN0T3BlbkV2ZW50IGFzIElTdHpoVG9hc3RTdHpoVG9hc3RPcGVuRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb2FzdE9wZW5lZEV2ZW50IGFzIElTdHpoVG9hc3RTdHpoVG9hc3RPcGVuZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvYXN0Q2xvc2VFdmVudCBhcyBJU3R6aFRvYXN0U3R6aFRvYXN0Q2xvc2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvYXN0Q2xvc2VkRXZlbnQgYXMgSVN0emhUb2FzdFN0emhUb2FzdENsb3NlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRvYXN0IGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVG9hc3Qge1xuICAvKipcbiAgICogVG9hc3Qgb3BlbiBldmVudFxuICAgKi9cbiAgc3R6aE9wZW46IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbkV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb2FzdCBvcGVuZWQgZXZlbnQgKGFmdGVyIGFuaW1hdGlvbilcbiAgICovXG4gIHN0emhPcGVuZWQ6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvYXN0U3R6aFRvYXN0T3BlbmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvYXN0IGNsb3NlIGV2ZW50XG4gICAqL1xuICBzdHpoQ2xvc2U6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvYXN0U3R6aFRvYXN0Q2xvc2VFdmVudD4+O1xuICAvKipcbiAgICogVG9hc3QgY2xvc2VkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoQ2xvc2VkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2FzdFN0emhUb2FzdENsb3NlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2hpZGVBZnRlcicsICdpbml0aWFsVG9hc3RzJywgJ21heCddLFxuICBtZXRob2RzOiBbJ3RvYXN0J11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXRvYXN0YmFyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydoaWRlQWZ0ZXInLCAnaW5pdGlhbFRvYXN0cycsICdtYXgnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvYXN0YmFyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFRvYXN0YmFyRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFRvYXN0YmFyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVG9hc3RiYXIge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYTExeURlc2NyaWJlZGJ5JywgJ2NoZWNrZWQnLCAnZGVmYXVsdENoZWNrZWQnLCAnZGVzY3JpcHRpb24nLCAnZGVzY3JpcHRpb25Mb25nJywgJ2Rlc2NyaXB0aW9uTG9uZ1RpdGxlJywgJ2Rpc2FibGVkJywgJ2Vycm9yJywgJ2hpZGVPcHRpb25hbCcsICdpbnZhbGlkJywgJ2xhYmVsJywgJ2xhYmVsUG9zaXRpb24nLCAnbG9jYWxpemF0aW9uJywgJ25hbWUnLCAncmVxdWlyZWQnLCAndmFsdWUnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdG9nZ2xlJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhMTF5RGVzY3JpYmVkYnknLCAnY2hlY2tlZCcsICdkZWZhdWx0Q2hlY2tlZCcsICdkZXNjcmlwdGlvbicsICdkZXNjcmlwdGlvbkxvbmcnLCAnZGVzY3JpcHRpb25Mb25nVGl0bGUnLCAnZGlzYWJsZWQnLCAnZXJyb3InLCAnaGlkZU9wdGlvbmFsJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxQb3NpdGlvbicsICdsb2NhbGl6YXRpb24nLCAnbmFtZScsICdyZXF1aXJlZCcsICd2YWx1ZSddLFxuICBvdXRwdXRzOiBbJ3N0emhDaGFuZ2UnLCAnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhUb2dnbGUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoVG9nZ2xlRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUNoYW5nZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2dnbGVTdHpoVG9nZ2xlRm9jdXNFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2dnbGVTdHpoVG9nZ2xlQmx1ckV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUb2dnbGVDaGFuZ2VFdmVudCBhcyBJU3R6aFRvZ2dsZVN0emhUb2dnbGVDaGFuZ2VFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvZ2dsZUZvY3VzRXZlbnQgYXMgSVN0emhUb2dnbGVTdHpoVG9nZ2xlRm9jdXNFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFRvZ2dsZUJsdXJFdmVudCBhcyBJU3R6aFRvZ2dsZVN0emhUb2dnbGVCbHVyRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVG9nZ2xlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVG9nZ2xlIHtcbiAgLyoqXG4gICAqIENoYW5nZSBldmVudFxuICAgKi9cbiAgc3R6aENoYW5nZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9nZ2xlU3R6aFRvZ2dsZUNoYW5nZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGb2N1cyBldmVudFxuICAgKi9cbiAgc3R6aEZvY3VzOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb2dnbGVTdHpoVG9nZ2xlRm9jdXNFdmVudD4+O1xuICAvKipcbiAgICogSW5wdXQgYmx1ciBldmVudFxuICAgKi9cbiAgc3R6aEJsdXI6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvZ2dsZVN0emhUb2dnbGVCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29udGVudCcsICdkaXN0YW5jZScsICdpbnRlcmFjdGl2ZScsICdsYWJlbCcsICdsb2NhbGl6YXRpb24nLCAnb3BlbicsICdwbGFjZW1lbnQnLCAnc2l6ZScsICdza2lkZGluZycsICdzdHJhdGVneScsICd0cmlnZ2VyJywgJ3R5cGUnXSxcbiAgbWV0aG9kczogWydzaG93JywgJ2hpZGUnLCAndG9nZ2xlJywgJ3VwZGF0ZSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC10b29sdGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydjb250ZW50JywgJ2Rpc3RhbmNlJywgJ2ludGVyYWN0aXZlJywgJ2xhYmVsJywgJ2xvY2FsaXphdGlvbicsICdvcGVuJywgJ3BsYWNlbWVudCcsICdzaXplJywgJ3NraWRkaW5nJywgJ3N0cmF0ZWd5JywgJ3RyaWdnZXInLCAndHlwZSddLFxuICBvdXRwdXRzOiBbJ3N0emhPcGVuJywgJ3N0emhPcGVuZWQnLCAnc3R6aENsb3NlJywgJ3N0emhDbG9zZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFRvb2x0aXAge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoVG9vbHRpcEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoT3BlbiA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb29sdGlwU3R6aFRvb2x0aXBPcGVuRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aE9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb29sdGlwU3R6aFRvb2x0aXBPcGVuZWRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwQ2xvc2VFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcENsb3NlZEV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhUb29sdGlwT3BlbkV2ZW50IGFzIElTdHpoVG9vbHRpcFN0emhUb29sdGlwT3BlbkV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVG9vbHRpcE9wZW5lZEV2ZW50IGFzIElTdHpoVG9vbHRpcFN0emhUb29sdGlwT3BlbmVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb29sdGlwQ2xvc2VFdmVudCBhcyBJU3R6aFRvb2x0aXBTdHpoVG9vbHRpcENsb3NlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhUb29sdGlwQ2xvc2VkRXZlbnQgYXMgSVN0emhUb29sdGlwU3R6aFRvb2x0aXBDbG9zZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhUb29sdGlwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVG9vbHRpcCB7XG4gIC8qKlxuICAgKiBUb29sdGlwIG9wZW4gZXZlbnRcbiAgICovXG4gIHN0emhPcGVuOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb29sdGlwU3R6aFRvb2x0aXBPcGVuRXZlbnQ+PjtcbiAgLyoqXG4gICAqIFRvb2x0aXAgb3BlbmVkIGV2ZW50IChhZnRlciBhbmltYXRpb24pXG4gICAqL1xuICBzdHpoT3BlbmVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb29sdGlwU3R6aFRvb2x0aXBPcGVuZWRFdmVudD4+O1xuICAvKipcbiAgICogVG9vbHRpcCBjbG9zZSBldmVudFxuICAgKi9cbiAgc3R6aENsb3NlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhUb29sdGlwU3R6aFRvb2x0aXBDbG9zZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBUb29sdGlwIGNsb3NlZCBldmVudCAoYWZ0ZXIgYW5pbWF0aW9uKVxuICAgKi9cbiAgc3R6aENsb3NlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVG9vbHRpcFN0emhUb29sdGlwQ2xvc2VkRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdHdvY29sdW1ucycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFtdLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVHdvY29sdW1ucyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhUd29jb2x1bW5zRWxlbWVudDtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFR3b2NvbHVtbnMgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhUd29jb2x1bW5zIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjY2VwdCcsICdhY2NlcHRlZEZpbGVzJywgJ2F1dG9Qcm9jZXNzUXVldWUnLCAnYnV0dG9uJywgJ2J1dHRvblNjYW4nLCAnY2h1bmtTaXplJywgJ2NodW5raW5nJywgJ2NodW5rc1VwbG9hZGVkJywgJ2RlZmF1bHRIZWFkZXJzJywgJ2Rlc2NyaXB0aW9uJywgJ2Rpc2FibGVUb2FzdHMnLCAnZGlzYWJsZWQnLCAnZG93bmxvYWREaXNhYmxlZCcsICdkb3dubG9hZERpc2FibGVkV2hpbGVQcm9jZXNzaW5nJywgJ2Vycm9yJywgJ2V4aXN0aW5nRmlsZXMnLCAnZmlsZXNpemVCYXNlJywgJ2ZvcmNlQ2h1bmtpbmcnLCAnaGVhZGVycycsICdoZWFkZXJzQXN5bmMnLCAnaGlkZGVuSW5wdXRDb250YWluZXInLCAnaGlkZU9wdGlvbmFsJywgJ2hpZGVQcm9ncmVzcycsICdoaWRlUHJvZ3Jlc3NXaGlsZUlkbGUnLCAnaW52YWxpZCcsICdsYWJlbCcsICdsYWJlbEhpZGRlbicsICdsZWFkaW5nSWNvbicsICdsb2NhbGl6YXRpb24nLCAnbWF4RmlsZXMnLCAnbWF4RmlsZXNpemUnLCAnbWF4RmlsZXNpemVUb3RhbCcsICdtZXRob2QnLCAnbmFtZScsICdub0xhYmVsVHJ1bmNhdGUnLCAncGFyYWxsZWxDaHVua1VwbG9hZHMnLCAncGFyYWxsZWxVcGxvYWRzJywgJ3Bob3RvZ3JhcGhpbmdFbmFibGVkJywgJ3ByZXZlbnREdXBsaWNhdGVGaWxlTmFtZXMnLCAncHJldmVudEhpZGRlbklucHV0Q2xlYXInLCAncmVxdWlyZWQnLCAncmV0cnlDaHVua3MnLCAncmV0cnlDaHVua3NMaW1pdCcsICd1cGxvYWRNdWx0aXBsZScsICd1cmwnLCAnd2l0aENyZWRlbnRpYWxzJ10sXG4gIG1ldGhvZHM6IFsnc2V0Rm9jdXMnLCAncHJvY2Vzc1F1ZXVlJywgJ3JlbW92ZUZpbGUnLCAncmVtb3ZlQWxsRmlsZXMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdXBsb2FkJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY2NlcHQnLCAnYWNjZXB0ZWRGaWxlcycsICdhdXRvUHJvY2Vzc1F1ZXVlJywgJ2J1dHRvbicsICdidXR0b25TY2FuJywgJ2NodW5rU2l6ZScsICdjaHVua2luZycsICdjaHVua3NVcGxvYWRlZCcsICdkZWZhdWx0SGVhZGVycycsICdkZXNjcmlwdGlvbicsICdkaXNhYmxlVG9hc3RzJywgJ2Rpc2FibGVkJywgJ2Rvd25sb2FkRGlzYWJsZWQnLCAnZG93bmxvYWREaXNhYmxlZFdoaWxlUHJvY2Vzc2luZycsICdlcnJvcicsICdleGlzdGluZ0ZpbGVzJywgJ2ZpbGVzaXplQmFzZScsICdmb3JjZUNodW5raW5nJywgJ2hlYWRlcnMnLCAnaGVhZGVyc0FzeW5jJywgJ2hpZGRlbklucHV0Q29udGFpbmVyJywgJ2hpZGVPcHRpb25hbCcsICdoaWRlUHJvZ3Jlc3MnLCAnaGlkZVByb2dyZXNzV2hpbGVJZGxlJywgJ2ludmFsaWQnLCAnbGFiZWwnLCAnbGFiZWxIaWRkZW4nLCAnbGVhZGluZ0ljb24nLCAnbG9jYWxpemF0aW9uJywgJ21heEZpbGVzJywgJ21heEZpbGVzaXplJywgJ21heEZpbGVzaXplVG90YWwnLCAnbWV0aG9kJywgJ25hbWUnLCAnbm9MYWJlbFRydW5jYXRlJywgJ3BhcmFsbGVsQ2h1bmtVcGxvYWRzJywgJ3BhcmFsbGVsVXBsb2FkcycsICdwaG90b2dyYXBoaW5nRW5hYmxlZCcsICdwcmV2ZW50RHVwbGljYXRlRmlsZU5hbWVzJywgJ3ByZXZlbnRIaWRkZW5JbnB1dENsZWFyJywgJ3JlcXVpcmVkJywgJ3JldHJ5Q2h1bmtzJywgJ3JldHJ5Q2h1bmtzTGltaXQnLCAndXBsb2FkTXVsdGlwbGUnLCAndXJsJywgJ3dpdGhDcmVkZW50aWFscyddLFxuICBvdXRwdXRzOiBbJ3N0emhGaWxlQWRkZWQnLCAnc3R6aEZpbGVzQWRkZWQnLCAnc3R6aEZpbGVSZW1vdmUnLCAnc3R6aEZpbGVSZW1vdmVkJywgJ3N0emhTZW5kaW5nJywgJ3N0emhTZW5kaW5nTXVsdGlwbGUnLCAnc3R6aFByb2Nlc3NpbmcnLCAnc3R6aFByb2Nlc3NpbmdNdWx0aXBsZScsICdzdHpoUHJvZ3Jlc3MnLCAnc3R6aFByb2dyZXNzVG90YWwnLCAnc3R6aEVycm9yJywgJ3N0emhFcnJvck11bHRpcGxlJywgJ3N0emhTdWNjZXNzJywgJ3N0emhTdWNjZXNzTXVsdGlwbGUnLCAnc3R6aENhbmNlbGVkJywgJ3N0emhDYW5jZWxlZE11bHRpcGxlJywgJ3N0emhDb21wbGV0ZScsICdzdHpoQ29tcGxldGVNdWx0aXBsZSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVXBsb2FkIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFVwbG9hZEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoRmlsZUFkZGVkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlQWRkZWRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRmlsZXNBZGRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZXNBZGRlZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhGaWxlUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlUmVtb3ZlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEZpbGVSZW1vdmVkID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlUmVtb3ZlZEV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhTZW5kaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRTZW5kaW5nRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFNlbmRpbmdNdWx0aXBsZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU2VuZGluZ011bHRpcGxlRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFByb2Nlc3NpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2Nlc3NpbmdFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoUHJvY2Vzc2luZ011bHRpcGxlID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9jZXNzaW5nTXVsdGlwbGVFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoUHJvZ3Jlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2dyZXNzRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aFByb2dyZXNzVG90YWwgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2dyZXNzVG90YWxFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoRXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yRXZlbnQ+PigpO1xuICBAT3V0cHV0KCkgc3R6aEVycm9yTXVsdGlwbGUgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEVycm9yTXVsdGlwbGVFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoU3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkU3VjY2Vzc0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhTdWNjZXNzTXVsdGlwbGUgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFN1Y2Nlc3NNdWx0aXBsZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDYW5jZWxlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkQ2FuY2VsZWRFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ2FuY2VsZWRNdWx0aXBsZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkQ2FuY2VsZWRNdWx0aXBsZUV2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhDb21wbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkQ29tcGxldGVFdmVudD4+KCk7XG4gIEBPdXRwdXQoKSBzdHpoQ29tcGxldGVNdWx0aXBsZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkQ29tcGxldGVNdWx0aXBsZUV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRGaWxlQWRkZWRFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlQWRkZWRFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZEZpbGVzQWRkZWRFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlc0FkZGVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRGaWxlUmVtb3ZlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZVJlbW92ZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkRmlsZVJlbW92ZWRFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRGaWxlUmVtb3ZlZEV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkU2VuZGluZ0V2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZFNlbmRpbmdFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFNlbmRpbmdNdWx0aXBsZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZFNlbmRpbmdNdWx0aXBsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkUHJvY2Vzc2luZ0V2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2Nlc3NpbmdFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZFByb2Nlc3NpbmdNdWx0aXBsZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2Nlc3NpbmdNdWx0aXBsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkUHJvZ3Jlc3NFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9ncmVzc0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkUHJvZ3Jlc3NUb3RhbEV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2dyZXNzVG90YWxFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZEVycm9yRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkRXJyb3JFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcbmltcG9ydCB0eXBlIHsgU3R6aFVwbG9hZEVycm9yTXVsdGlwbGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRFcnJvck11bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRTdWNjZXNzRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkU3VjY2Vzc0V2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkU3VjY2Vzc011bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkU3VjY2Vzc011bHRpcGxlRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRDYW5jZWxlZEV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZENhbmNlbGVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhVcGxvYWRDYW5jZWxlZE11bHRpcGxlRXZlbnQgYXMgSVN0emhVcGxvYWRTdHpoVXBsb2FkQ2FuY2VsZWRNdWx0aXBsZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkQ29tcGxldGVFdmVudCBhcyBJU3R6aFVwbG9hZFN0emhVcGxvYWRDb21wbGV0ZUV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuaW1wb3J0IHR5cGUgeyBTdHpoVXBsb2FkQ29tcGxldGVNdWx0aXBsZUV2ZW50IGFzIElTdHpoVXBsb2FkU3R6aFVwbG9hZENvbXBsZXRlTXVsdGlwbGVFdmVudCB9IGZyb20gJ0BvaXovc3R6aC1jb21wb25lbnRzJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhVcGxvYWQgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhVcGxvYWQge1xuICAvKipcbiAgICogRmlsZSBhZGRlZFxuICAgKi9cbiAgc3R6aEZpbGVBZGRlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVBZGRlZEV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlcyBhZGRlZCAobXVsdGlwbGUpXG4gICAqL1xuICBzdHpoRmlsZXNBZGRlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVzQWRkZWRFdmVudD4+O1xuICAvKipcbiAgICogRmlsZSByZW1vdmUgKGJlZm9yZSwgY2FuY2VsYWJsZSlcbiAgICovXG4gIHN0emhGaWxlUmVtb3ZlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRmlsZVJlbW92ZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBGaWxlIHJlbW92ZWRcbiAgICovXG4gIHN0emhGaWxlUmVtb3ZlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZEZpbGVSZW1vdmVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJlZm9yZSBzZW5kaW5nIGZpbGUgKGFkZCBhZGRpdGlvbmFsIGRhdGEgYmVmb3JlIHJlcXVlc3QgaWYgbmVjZXNzYXJ5KVxuICAgKi9cbiAgc3R6aFNlbmRpbmc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRTZW5kaW5nRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEJlZm9yZSBzZW5kaW5nIG11bHRpcGxlIGZpbGVzIChhZGQgYWRkaXRpb25hbCBkYXRhIGJlZm9yZSByZXF1ZXN0IGlmIG5lY2Vzc2FyeSlcbiAgICovXG4gIHN0emhTZW5kaW5nTXVsdGlwbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRTZW5kaW5nTXVsdGlwbGVFdmVudD4+O1xuICAvKipcbiAgICogRmlsZXMgc3RhcnRpbmcgdG8gZ2V0IHByb2Nlc3NlZFxuICAgKi9cbiAgc3R6aFByb2Nlc3Npbmc6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9jZXNzaW5nRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGVzIHN0YXJ0aW5nIHRvIGdldCBwcm9jZXNzZWQgKG11bHRpcGxlKVxuICAgKi9cbiAgc3R6aFByb2Nlc3NpbmdNdWx0aXBsZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2Nlc3NpbmdNdWx0aXBsZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBVcGxvYWQgZmlsZSBwcm9ncmVzcyBkdXJpbmcgdXBsb2FkXG4gICAqL1xuICBzdHpoUHJvZ3Jlc3M6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRQcm9ncmVzc0V2ZW50Pj47XG4gIC8qKlxuICAgKiBVcGxvYWQgdG90YWwgZmlsZSBwcm9ncmVzcyBkdXJpbmcgdXBsb2FkXG4gICAqL1xuICBzdHpoUHJvZ3Jlc3NUb3RhbDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFByb2dyZXNzVG90YWxFdmVudD4+O1xuICAvKipcbiAgICogRmlsZSBlcnJvclxuICAgKi9cbiAgc3R6aEVycm9yOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkRXJyb3JFdmVudD4+O1xuICAvKipcbiAgICogRmlsZXMgZXJyb3IgKG11bHRpcGxlIGZpbGVzKVxuICAgKi9cbiAgc3R6aEVycm9yTXVsdGlwbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRFcnJvck11bHRpcGxlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIEZpbGUgc3VjY2Vzc2Z1bGx5IHVwbG9hZGVkXG4gICAqL1xuICBzdHpoU3VjY2VzczogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZFN1Y2Nlc3NFdmVudD4+O1xuICAvKipcbiAgICogRmlsZXMgc3VjY2Vzc2Z1bGx5IHVwbG9hZGVkIChtdWx0aXBsZSBmaWxlcylcbiAgICovXG4gIHN0emhTdWNjZXNzTXVsdGlwbGU6IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFVwbG9hZFN0emhVcGxvYWRTdWNjZXNzTXVsdGlwbGVFdmVudD4+O1xuICAvKipcbiAgICogQ2FuY2VsZWQgZmlsZSB1cGxvYWRcbiAgICovXG4gIHN0emhDYW5jZWxlZDogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZENhbmNlbGVkRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENhbmNlbGVkIGZpbGUgdXBsb2FkIChtdWx0aXBsZSBmaWxlcylcbiAgICovXG4gIHN0emhDYW5jZWxlZE11bHRpcGxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkQ2FuY2VsZWRNdWx0aXBsZUV2ZW50Pj47XG4gIC8qKlxuICAgKiBDb21wbGV0ZWQgdXBsb2FkIChzdWNjZXNzZnVsbHkgb3Igd2l0aCBlcnJvcilcbiAgICovXG4gIHN0emhDb21wbGV0ZTogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVXBsb2FkU3R6aFVwbG9hZENvbXBsZXRlRXZlbnQ+PjtcbiAgLyoqXG4gICAqIENvbXBsZXRlZCB1cGxvYWQgKHN1Y2Nlc3NmdWxseSBvciB3aXRoIGVycm9yLCBtdWx0aXBsZSBmaWxlcylcbiAgICovXG4gIHN0emhDb21wbGV0ZU11bHRpcGxlOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhVcGxvYWRTdHpoVXBsb2FkQ29tcGxldGVNdWx0aXBsZUV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2F1dG9wbGF5VGltZW91dCddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotY2Fyb3VzZWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2F1dG9wbGF5VGltZW91dCddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVmJ6Q2Fyb3VzZWwge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoVmJ6Q2Fyb3VzZWxFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVmJ6Q2Fyb3VzZWwgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhWYnpDYXJvdXNlbCB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsYW5ndWFnZScsICd6dnZTY3JpcHQnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdmJ6LWNvbm5lY3Rpb24tZmluZGVyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydsYW5ndWFnZScsICd6dnZTY3JpcHQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZiekNvbm5lY3Rpb25GaW5kZXIge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoVmJ6Q29ubmVjdGlvbkZpbmRlckVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpDb25uZWN0aW9uRmluZGVyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6Q29ubmVjdGlvbkZpbmRlciB7fVxuXG5cbkBQcm94eUNtcCh7XG4gIGlucHV0czogWydsb2NhbGl6YXRpb24nLCAncXVpY2tsaW5rcyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotaW50cm8nLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2xvY2FsaXphdGlvbicsICdxdWlja2xpbmtzJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpJbnRybyB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhWYnpJbnRyb0VsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWYnpJbnRybyBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZiekludHJvIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FjdGl2ZScsICdhbGVydCcsICdhbmFseXRpY3NJZCcsICdkaXNhYmxlZCcsICdnbG9iYWwnLCAnaWNvbicsICdsaW5lJywgJ3VzZUFwaUxpbmVDb2xvcnMnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgtdmJ6LWxpbmVjaGlwJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhY3RpdmUnLCAnYWxlcnQnLCAnYW5hbHl0aWNzSWQnLCAnZGlzYWJsZWQnLCAnZ2xvYmFsJywgJ2ljb24nLCAnbGluZScsICd1c2VBcGlMaW5lQ29sb3JzJ10sXG4gIG91dHB1dHM6IFsnc3R6aEZvY3VzJywgJ3N0emhCbHVyJ10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWYnpMaW5lY2hpcCB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhWYnpMaW5lY2hpcEVsZW1lbnQ7XG4gIEBPdXRwdXQoKSBzdHpoRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVmJ6TGluZWNoaXBTdHpoVmJ6TGluZWNoaXBGb2N1c0V2ZW50Pj4oKTtcbiAgQE91dHB1dCgpIHN0emhCbHVyID0gbmV3IEV2ZW50RW1pdHRlcjxDdXN0b21FdmVudDxJU3R6aFZiekxpbmVjaGlwU3R6aFZiekxpbmVjaGlwQmx1ckV2ZW50Pj4oKTtcbiAgY29uc3RydWN0b3IoYzogQ2hhbmdlRGV0ZWN0b3JSZWYsIHI6IEVsZW1lbnRSZWYsIHByb3RlY3RlZCB6OiBOZ1pvbmUpIHtcbiAgICBjLmRldGFjaCgpO1xuICAgIHRoaXMuZWwgPSByLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cbn1cblxuXG5pbXBvcnQgdHlwZSB7IFN0emhWYnpMaW5lY2hpcEZvY3VzRXZlbnQgYXMgSVN0emhWYnpMaW5lY2hpcFN0emhWYnpMaW5lY2hpcEZvY3VzRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5pbXBvcnQgdHlwZSB7IFN0emhWYnpMaW5lY2hpcEJsdXJFdmVudCBhcyBJU3R6aFZiekxpbmVjaGlwU3R6aFZiekxpbmVjaGlwQmx1ckV2ZW50IH0gZnJvbSAnQG9pei9zdHpoLWNvbXBvbmVudHMnO1xuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3R6aFZiekxpbmVjaGlwIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6TGluZWNoaXAge1xuICAvKipcbiAgICogRm9jdXMgZXZlbnRcbiAgICovXG4gIHN0emhGb2N1czogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVmJ6TGluZWNoaXBTdHpoVmJ6TGluZWNoaXBGb2N1c0V2ZW50Pj47XG4gIC8qKlxuICAgKiBJbnB1dCBibHVyIGV2ZW50XG4gICAqL1xuICBzdHpoQmx1cjogRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVmJ6TGluZWNoaXBTdHpoVmJ6TGluZWNoaXBCbHVyRXZlbnQ+Pjtcbn1cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnYXBpJywgJ2RhdGEnLCAnZGF0ZUFkYXB0ZXInLCAnbG9jYWxpemF0aW9uJywgJ21vcmVJbmZvTGluayddLFxuICBtZXRob2RzOiBbJ2dldERpc3R1cmJhbmNlJ11cbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZiei1tYWpvcnRpY2tlcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnYXBpJywgJ2RhdGEnLCAnZGF0ZUFkYXB0ZXInLCAnbG9jYWxpemF0aW9uJywgJ21vcmVJbmZvTGluayddLFxuICBvdXRwdXRzOiBbJ3N0emhEaXN0dXJiYW5jZUZldGNoZWQnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZiek1ham9ydGlja2VyIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFZiek1ham9ydGlja2VyRWxlbWVudDtcbiAgQE91dHB1dCgpIHN0emhEaXN0dXJiYW5jZUZldGNoZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEN1c3RvbUV2ZW50PElTdHpoVmJ6TWFqb3J0aWNrZXJTdHpoVmJ6TWFqb3J0aWNrZXJEaXN0dXJiYW5jZUZldGNoZWRFdmVudD4+KCk7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuaW1wb3J0IHR5cGUgeyBTdHpoVmJ6TWFqb3J0aWNrZXJEaXN0dXJiYW5jZUZldGNoZWRFdmVudCBhcyBJU3R6aFZiek1ham9ydGlja2VyU3R6aFZiek1ham9ydGlja2VyRGlzdHVyYmFuY2VGZXRjaGVkRXZlbnQgfSBmcm9tICdAb2l6L3N0emgtY29tcG9uZW50cyc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVmJ6TWFqb3J0aWNrZXIgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhWYnpNYWpvcnRpY2tlciB7XG4gIC8qKlxuICAgKiBFdmVudCB3aGVuIG1ham9yIGRpc3R1cmJhbmNlIHdhcyBmZXRjaGVkXG4gICAqL1xuICBzdHpoRGlzdHVyYmFuY2VGZXRjaGVkOiBFdmVudEVtaXR0ZXI8Q3VzdG9tRXZlbnQ8SVN0emhWYnpNYWpvcnRpY2tlclN0emhWYnpNYWpvcnRpY2tlckRpc3R1cmJhbmNlRmV0Y2hlZEV2ZW50Pj47XG59XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2FwaScsICdkYXRhJywgJ2RhdGVBZGFwdGVyJywgJ2xvY2FsaXphdGlvbicsICdtb3JlSW5mb0xpbmsnLCAndXNlQXBpTGluZUNvbG9ycyddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12YnotdGlja2VyJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogWydhcGknLCAnZGF0YScsICdkYXRlQWRhcHRlcicsICdsb2NhbGl6YXRpb24nLCAnbW9yZUluZm9MaW5rJywgJ3VzZUFwaUxpbmVDb2xvcnMnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFZielRpY2tlciB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhWYnpUaWNrZXJFbGVtZW50O1xuICBjb25zdHJ1Y3RvcihjOiBDaGFuZ2VEZXRlY3RvclJlZiwgcjogRWxlbWVudFJlZiwgcHJvdGVjdGVkIHo6IE5nWm9uZSkge1xuICAgIGMuZGV0YWNoKCk7XG4gICAgdGhpcy5lbCA9IHIubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuXG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHpoVmJ6VGlja2VyIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoVmJ6VGlja2VyIHt9XG5cblxuQFByb3h5Q21wKHtcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzdHpoLXZpc3VhbGx5aGlkZGVuJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXRzLW1ldGFkYXRhLXByb3BlcnR5XG4gIGlucHV0czogW10sXG4gIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIFN0emhWaXN1YWxseWhpZGRlbiB7XG4gIHByb3RlY3RlZCBlbDogSFRNTFN0emhWaXN1YWxseWhpZGRlbkVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWaXN1YWxseWhpZGRlbiBleHRlbmRzIENvbXBvbmVudHMuU3R6aFZpc3VhbGx5aGlkZGVuIHt9XG5cblxuQFByb3h5Q21wKHtcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdhcm91bmRCb3R0b20nLCAnYXJvdW5kVG9wJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddXG59KVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3R6aC12c3BhY2UnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudD48L25nLWNvbnRlbnQ+JyxcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dHMtbWV0YWRhdGEtcHJvcGVydHlcbiAgaW5wdXRzOiBbJ2Fyb3VuZCcsICdhcm91bmRCb3R0b20nLCAnYXJvdW5kVG9wJywgJ2JvcmRlcicsICdjdXJ2ZScsICdpdGVtcycsICdqdXN0aWZ5JywgJ3NpemUnLCAnc2l6ZUxhcmdlJywgJ3NpemVNZWRpdW0nLCAnc2l6ZVNtYWxsJywgJ3NpemVVbHRyYSddLFxuICBzdGFuZGFsb25lOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBTdHpoVnNwYWNlIHtcbiAgcHJvdGVjdGVkIGVsOiBIVE1MU3R6aFZzcGFjZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhWc3BhY2UgZXh0ZW5kcyBDb21wb25lbnRzLlN0emhWc3BhY2Uge31cblxuXG5AUHJveHlDbXAoe1xuICBpbnB1dHM6IFsnY29va2llJywgJ2Nvb2tpZUV4cGlyZXMnLCAnbG9jYWxpemF0aW9uJywgJ3NraXBQcmV2aWV3JywgJ3NraXBQcmV2aWV3SWZDb29raWVBY2NlcHRlZCcsICd1cmwnXVxufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3N0emgteW91dHViZScsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nLFxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0cy1tZXRhZGF0YS1wcm9wZXJ0eVxuICBpbnB1dHM6IFsnY29va2llJywgJ2Nvb2tpZUV4cGlyZXMnLCAnbG9jYWxpemF0aW9uJywgJ3NraXBQcmV2aWV3JywgJ3NraXBQcmV2aWV3SWZDb29raWVBY2NlcHRlZCcsICd1cmwnXSxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgU3R6aFlvdXR1YmUge1xuICBwcm90ZWN0ZWQgZWw6IEhUTUxTdHpoWW91dHViZUVsZW1lbnQ7XG4gIGNvbnN0cnVjdG9yKGM6IENoYW5nZURldGVjdG9yUmVmLCByOiBFbGVtZW50UmVmLCBwcm90ZWN0ZWQgejogTmdab25lKSB7XG4gICAgYy5kZXRhY2goKTtcbiAgICB0aGlzLmVsID0gci5uYXRpdmVFbGVtZW50O1xuICB9XG59XG5cblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFN0emhZb3V0dWJlIGV4dGVuZHMgQ29tcG9uZW50cy5TdHpoWW91dHViZSB7fVxuXG5cbiJdfQ==