@schneideress/dashboardframework 17.0.1 → 17.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/esm2022/gridster/lib/gridster.component.mjs +11 -11
  2. package/esm2022/gridster/lib/gridster.interface.mjs +1 -1
  3. package/esm2022/gridster/lib/gridster.module.mjs +5 -5
  4. package/esm2022/gridster/lib/gridsterCompact.service.mjs +1 -1
  5. package/esm2022/gridster/lib/gridsterConfig.constant.mjs +1 -1
  6. package/esm2022/gridster/lib/gridsterConfig.interface.mjs +1 -1
  7. package/esm2022/gridster/lib/gridsterConfigS.interface.mjs +1 -1
  8. package/esm2022/gridster/lib/gridsterDraggable.service.mjs +1 -1
  9. package/esm2022/gridster/lib/gridsterEmptyCell.service.mjs +1 -1
  10. package/esm2022/gridster/lib/gridsterItem.component.mjs +5 -5
  11. package/esm2022/gridster/lib/gridsterItem.interface.mjs +1 -1
  12. package/esm2022/gridster/lib/gridsterPreview.component.mjs +4 -4
  13. package/esm2022/gridster/lib/gridsterPush.service.mjs +1 -1
  14. package/esm2022/gridster/lib/gridsterPushResize.service.mjs +1 -1
  15. package/esm2022/gridster/lib/gridsterRenderer.interface.mjs +1 -1
  16. package/esm2022/gridster/lib/gridsterRenderer.service.mjs +1 -1
  17. package/esm2022/gridster/lib/gridsterResizable.service.mjs +1 -1
  18. package/esm2022/gridster/lib/gridsterResizeEventType.interface.mjs +1 -1
  19. package/esm2022/gridster/lib/gridsterScroll.service.mjs +1 -1
  20. package/esm2022/gridster/lib/gridsterSwap.service.mjs +1 -1
  21. package/esm2022/gridster/lib/gridsterUtils.service.mjs +1 -1
  22. package/esm2022/lib/ra-dashboard-area/ra.dashboard.area.mjs +3 -3
  23. package/esm2022/lib/ra-widget-container/lock-tooltip/lock.tooltip.component.mjs +3 -3
  24. package/esm2022/lib/ra-widget-container/ra.widget.container.component.mjs +96 -96
  25. package/esm2022/lib/ra.base.dashboard.filter.mjs +3 -3
  26. package/esm2022/lib/ra.base.dashboard.template.mjs +3 -3
  27. package/esm2022/lib/ra.dashbard.event.bus.mjs +3 -3
  28. package/esm2022/lib/ra.dashboard.module.mjs +4 -4
  29. package/esm2022/lib/ra.dashboard.responsive.service.mjs +3 -3
  30. package/esm2022/lib/ra.dashboard.service.mjs +3 -3
  31. package/fesm2022/schneideress-dashboardframework.mjs +141 -141
  32. package/fesm2022/schneideress-dashboardframework.mjs.map +1 -1
  33. package/gridster/lib/gridsterItem.interface.d.ts +3 -0
  34. package/package.json +1 -1
@@ -161,13 +161,13 @@ export class GridsterComponent {
161
161
  if (changes.options) {
162
162
  this.setOptions();
163
163
  this.options.api = {
164
- optionsChanged: this.optionsChanged,
165
- resize: this.onResize,
166
- getNextPossiblePosition: this.getNextPossiblePosition,
167
- getFirstPossiblePosition: this.getFirstPossiblePosition,
168
- getLastPossiblePosition: this.getLastPossiblePosition,
164
+ optionsChanged: this.optionsChanged.bind(this),
165
+ resize: this.onResize.bind(this),
166
+ getNextPossiblePosition: this.getNextPossiblePosition.bind(this),
167
+ getFirstPossiblePosition: this.getFirstPossiblePosition.bind(this),
168
+ getLastPossiblePosition: this.getLastPossiblePosition.bind(this),
169
169
  getItemComponent: (item) => this.getItemComponent(item),
170
- getCurrentRowHeight: this.getCurrentRowHeight
170
+ getCurrentRowHeight: this.getCurrentRowHeight.bind(this)
171
171
  };
172
172
  this.columns = this.$options.minCols;
173
173
  this.rows = this.$options.minRows + this.$options.addEmptyRowsCount;
@@ -603,12 +603,12 @@ export class GridsterComponent {
603
603
  }
604
604
  return 0;
605
605
  }
606
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: GridsterComponent, deps: [{ token: ElementRef }, { token: Renderer2 }, { token: ChangeDetectorRef }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
607
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: GridsterComponent, isStandalone: true, selector: "gridster", inputs: { options: "options" }, usesOnChanges: true, ngImport: i0, template: "<div\n class=\"gridster-column\"\n *ngFor=\"let column of gridColumns; let i = index;\"\n [ngStyle]=\"gridRenderer.getGridColumnStyle(i)\"\n></div>\n<div\n class=\"gridster-row\"\n *ngFor=\"let row of gridRows; let i = index;\"\n [ngStyle]=\"gridRenderer.getGridRowStyle(i)\"\n></div>\n<ng-content></ng-content>\n<gridster-preview\n [gridRenderer]=\"gridRenderer\"\n [previewStyle$]=\"previewStyle$\"\n class=\"gridster-preview\"\n></gridster-preview>\n", styles: ["gridster{position:relative;box-sizing:border-box;background:gray;width:100%;height:100%;-webkit-user-select:none;user-select:none;display:block}gridster.fit{overflow-x:hidden;overflow-y:hidden}gridster.scrollVertical{overflow-x:hidden;overflow-y:auto}gridster.scrollHorizontal{overflow-x:auto;overflow-y:hidden}gridster.fixed{overflow:auto}gridster.mobile{overflow-x:hidden;overflow-y:auto}gridster.mobile gridster-item{position:relative}gridster.gridSize{height:initial;width:initial}gridster.gridSize.fit{height:100%;width:100%}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid white;border-right:1px solid white}gridster .gridster-row{border-top:1px solid white;border-bottom:1px solid white}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: GridsterPreviewComponent, selector: "gridster-preview", inputs: ["previewStyle$", "gridRenderer"] }], encapsulation: i0.ViewEncapsulation.None }); }
606
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterComponent, deps: [{ token: ElementRef }, { token: Renderer2 }, { token: ChangeDetectorRef }, { token: NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
607
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: GridsterComponent, isStandalone: true, selector: "gridster", inputs: { options: "options" }, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"gridster-column\"\r\n *ngFor=\"let column of gridColumns; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridColumnStyle(i)\"\r\n></div>\r\n<div\r\n class=\"gridster-row\"\r\n *ngFor=\"let row of gridRows; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridRowStyle(i)\"\r\n></div>\r\n<ng-content></ng-content>\r\n<gridster-preview\r\n [gridRenderer]=\"gridRenderer\"\r\n [previewStyle$]=\"previewStyle$\"\r\n class=\"gridster-preview\"\r\n></gridster-preview>\r\n", styles: ["gridster{position:relative;box-sizing:border-box;background:gray;width:100%;height:100%;-webkit-user-select:none;user-select:none;display:block}gridster.fit{overflow-x:hidden;overflow-y:hidden}gridster.scrollVertical{overflow-x:hidden;overflow-y:auto}gridster.scrollHorizontal{overflow-x:auto;overflow-y:hidden}gridster.fixed{overflow:auto}gridster.mobile{overflow-x:hidden;overflow-y:auto}gridster.mobile gridster-item{position:relative}gridster.gridSize{height:initial;width:initial}gridster.gridSize.fit{height:100%;width:100%}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid white;border-right:1px solid white}gridster .gridster-row{border-top:1px solid white;border-bottom:1px solid white}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: GridsterPreviewComponent, selector: "gridster-preview", inputs: ["previewStyle$", "gridRenderer"] }], encapsulation: i0.ViewEncapsulation.None }); }
608
608
  }
609
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: GridsterComponent, decorators: [{
609
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterComponent, decorators: [{
610
610
  type: Component,
611
- args: [{ selector: 'gridster', encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgForOf, NgStyle, GridsterPreviewComponent], template: "<div\n class=\"gridster-column\"\n *ngFor=\"let column of gridColumns; let i = index;\"\n [ngStyle]=\"gridRenderer.getGridColumnStyle(i)\"\n></div>\n<div\n class=\"gridster-row\"\n *ngFor=\"let row of gridRows; let i = index;\"\n [ngStyle]=\"gridRenderer.getGridRowStyle(i)\"\n></div>\n<ng-content></ng-content>\n<gridster-preview\n [gridRenderer]=\"gridRenderer\"\n [previewStyle$]=\"previewStyle$\"\n class=\"gridster-preview\"\n></gridster-preview>\n", styles: ["gridster{position:relative;box-sizing:border-box;background:gray;width:100%;height:100%;-webkit-user-select:none;user-select:none;display:block}gridster.fit{overflow-x:hidden;overflow-y:hidden}gridster.scrollVertical{overflow-x:hidden;overflow-y:auto}gridster.scrollHorizontal{overflow-x:auto;overflow-y:hidden}gridster.fixed{overflow:auto}gridster.mobile{overflow-x:hidden;overflow-y:auto}gridster.mobile gridster-item{position:relative}gridster.gridSize{height:initial;width:initial}gridster.gridSize.fit{height:100%;width:100%}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid white;border-right:1px solid white}gridster .gridster-row{border-top:1px solid white;border-bottom:1px solid white}\n"] }]
611
+ args: [{ selector: 'gridster', encapsulation: ViewEncapsulation.None, standalone: true, imports: [NgForOf, NgStyle, GridsterPreviewComponent], template: "<div\r\n class=\"gridster-column\"\r\n *ngFor=\"let column of gridColumns; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridColumnStyle(i)\"\r\n></div>\r\n<div\r\n class=\"gridster-row\"\r\n *ngFor=\"let row of gridRows; let i = index;\"\r\n [ngStyle]=\"gridRenderer.getGridRowStyle(i)\"\r\n></div>\r\n<ng-content></ng-content>\r\n<gridster-preview\r\n [gridRenderer]=\"gridRenderer\"\r\n [previewStyle$]=\"previewStyle$\"\r\n class=\"gridster-preview\"\r\n></gridster-preview>\r\n", styles: ["gridster{position:relative;box-sizing:border-box;background:gray;width:100%;height:100%;-webkit-user-select:none;user-select:none;display:block}gridster.fit{overflow-x:hidden;overflow-y:hidden}gridster.scrollVertical{overflow-x:hidden;overflow-y:auto}gridster.scrollHorizontal{overflow-x:auto;overflow-y:hidden}gridster.fixed{overflow:auto}gridster.mobile{overflow-x:hidden;overflow-y:auto}gridster.mobile gridster-item{position:relative}gridster.gridSize{height:initial;width:initial}gridster.gridSize.fit{height:100%;width:100%}gridster .gridster-column,gridster .gridster-row{position:absolute;display:none;transition:.3s;box-sizing:border-box}gridster.display-grid .gridster-column,gridster.display-grid .gridster-row{display:block}gridster .gridster-column{border-left:1px solid white;border-right:1px solid white}gridster .gridster-row{border-top:1px solid white;border-bottom:1px solid white}\n"] }]
612
612
  }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
613
613
  type: Inject,
614
614
  args: [ElementRef]
@@ -624,4 +624,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
624
624
  }] }], propDecorators: { options: [{
625
625
  type: Input
626
626
  }] } });
627
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmEtZGFzaGJvYXJkLWZyYW1ld29yay9zcmMvZ3JpZHN0ZXIvbGliL2dyaWRzdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhLWRhc2hib2FyZC1mcmFtZXdvcmsvc3JjL2dyaWRzdGVyL2xpYi9ncmlkc3Rlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFJTixTQUFTLEVBRVQsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQWtCLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBS2hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFXeEQsTUFBTSxPQUFPLGlCQUFpQjtJQTZCNUIsWUFDc0IsRUFBYyxFQUNSLFFBQW1CLEVBQ1gsS0FBd0IsRUFD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QUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ2hFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNoRSxNQUFNLFdBQVcsR0FDZixJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVM7WUFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUN2QixNQUFNLFdBQVcsR0FDZixJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVM7WUFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUN2QixNQUFNLFdBQVcsR0FDZixJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVM7WUFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUN2QixNQUFNLFdBQVcsR0FDZixJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVM7WUFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUN2QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQztRQUMxRSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLFdBQVcsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQztRQUMxRSxNQUFNLFlBQVksR0FDaEIsSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTO1lBQzVCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVc7WUFD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TTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLE1BQU07eUNBL0JQLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nRm9yT2YsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR3JpZHN0ZXJDb21wb25lbnRJbnRlcmZhY2UgfSBmcm9tICcuL2dyaWRzdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBHcmlkc3RlckNvbXBhY3QgfSBmcm9tICcuL2dyaWRzdGVyQ29tcGFjdC5zZXJ2aWNlJztcblxuaW1wb3J0IHsgR3JpZHN0ZXJDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9ncmlkc3RlckNvbmZpZy5jb25zdGFudCc7XG5pbXBvcnQgeyBHcmlkc3RlckNvbmZpZywgR3JpZFR5cGUgfSBmcm9tICcuL2dyaWRzdGVyQ29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBHcmlkc3RlckNvbmZpZ1MgfSBmcm9tICcuL2dyaWRzdGVyQ29uZmlnUy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR3JpZHN0ZXJFbXB0eUNlbGwgfSBmcm9tICcuL2dyaWRzdGVyRW1wdHlDZWxsLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgR3JpZHN0ZXJJdGVtLFxuICBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2Vcbn0gZnJvbSAnLi9ncmlkc3Rlckl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IEdyaWRzdGVyUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vZ3JpZHN0ZXJQcmV2aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkc3RlclJlbmRlcmVyIH0gZnJvbSAnLi9ncmlkc3RlclJlbmRlcmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JpZHN0ZXJVdGlscyB9IGZyb20gJy4vZ3JpZHN0ZXJVdGlscy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnZ3JpZHN0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZHN0ZXIuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyaWRzdGVyLmNzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdGb3JPZiwgTmdTdHlsZSwgR3JpZHN0ZXJQcmV2aWV3Q29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBHcmlkc3RlckNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEdyaWRzdGVyQ29tcG9uZW50SW50ZXJmYWNlIHtcbiAgQElucHV0KCkgb3B0aW9ucyE6IEdyaWRzdGVyQ29uZmlnO1xuICBtb3ZpbmdJdGVtITogR3JpZHN0ZXJJdGVtIHwgbnVsbDtcbiAgZWw6IEhUTUxFbGVtZW50O1xuICAkb3B0aW9uczogR3JpZHN0ZXJDb25maWdTO1xuICBtb2JpbGU6IGJvb2xlYW47XG4gIGN1cldpZHRoOiBudW1iZXI7XG4gIGN1ckhlaWdodDogbnVtYmVyO1xuICBncmlkOiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2VbXTtcbiAgY29sdW1ucyA9IDA7XG4gIHJvd3MgPSAwO1xuICBjdXJDb2xXaWR0aDogbnVtYmVyO1xuICBjdXJSb3dIZWlnaHQ6IG51bWJlcjtcbiAgZ3JpZENvbHVtbnMgPSBbXTtcbiAgZ3JpZFJvd3MgPSBbXTtcbiAgd2luZG93UmVzaXplITogKCgpID0+IHZvaWQpIHwgbnVsbDtcbiAgZHJhZ0luUHJvZ3Jlc3M6IGJvb2xlYW47XG4gIGVtcHR5Q2VsbDogR3JpZHN0ZXJFbXB0eUNlbGw7XG4gIGNvbXBhY3Q6IEdyaWRzdGVyQ29tcGFjdDtcbiAgZ3JpZFJlbmRlcmVyOiBHcmlkc3RlclJlbmRlcmVyO1xuICBwcmV2aWV3U3R5bGUkOiBFdmVudEVtaXR0ZXI8R3JpZHN0ZXJJdGVtIHwgbnVsbD4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8R3JpZHN0ZXJJdGVtIHwgbnVsbD4oKTtcblxuICBjYWxjdWxhdGVMYXlvdXQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlc2l6ZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEVsZW1lbnRSZWYpIGVsOiBFbGVtZW50UmVmLFxuICAgIEBJbmplY3QoUmVuZGVyZXIyKSBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBASW5qZWN0KENoYW5nZURldGVjdG9yUmVmKSBwdWJsaWMgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIEBJbmplY3QoTmdab25lKSBwdWJsaWMgem9uZTogTmdab25lXG4gICkge1xuICAgIHRoaXMuZWwgPSBlbC5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuJG9wdGlvbnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KEdyaWRzdGVyQ29uZmlnU2VydmljZSkpO1xuICAgIHRoaXMubW9iaWxlID0gZmFsc2U7XG4gICAgdGhpcy5jdXJXaWR0aCA9IDA7XG4gICAgdGhpcy5jdXJIZWlnaHQgPSAwO1xuICAgIHRoaXMuZ3JpZCA9IFtdO1xuICAgIHRoaXMuY3VyQ29sV2lkdGggPSAwO1xuICAgIHRoaXMuY3VyUm93SGVpZ2h0ID0gMDtcbiAgICB0aGlzLmRyYWdJblByb2dyZXNzID0gZmFsc2U7XG4gICAgdGhpcy5lbXB0eUNlbGwgPSBuZXcgR3JpZHN0ZXJFbXB0eUNlbGwodGhpcyk7XG4gICAgdGhpcy5jb21wYWN0ID0gbmV3IEdyaWRzdGVyQ29tcGFjdCh0aGlzKTtcbiAgICB0aGlzLmdyaWRSZW5kZXJlciA9IG5ldyBHcmlkc3RlclJlbmRlcmVyKHRoaXMpO1xuICB9XG5cbiAgLy8gLS0tLS0tIEZ1bmN0aW9uIGZvciBzd2FwV2hpbGVEcmFnZ2luZyBvcHRpb25cblxuICAvLyBpZGVudGljYWwgdG8gY2hlY2tDb2xsaXNpb24oKSBleGNlcHQgdGhhdCBoZXJlIHdlIGFkZCBib3VuZGFyaWVzLlxuICBzdGF0aWMgY2hlY2tDb2xsaXNpb25Ud29JdGVtc0ZvclN3YXBpbmcoXG4gICAgaXRlbTogR3JpZHN0ZXJJdGVtLFxuICAgIGl0ZW0yOiBHcmlkc3Rlckl0ZW1cbiAgKTogYm9vbGVhbiB7XG4gICAgLy8gaWYgdGhlIGNvbHMgb3Igcm93cyBvZiB0aGUgaXRlbXMgYXJlIDEgLCBkb2VzbnQgbWFrZSBhbnkgc2Vuc2UgdG8gc2V0IGEgYm91bmRhcnkuIE9ubHkgaWYgdGhlIGl0ZW0gaXMgYmlnZ2VyIHdlIHNldCBhIGJvdW5kYXJ5XG4gICAgY29uc3QgaG9yaXpvbnRhbEJvdW5kYXJ5SXRlbTEgPSBpdGVtLmNvbHMgPT09IDEgPyAwIDogMTtcbiAgICBjb25zdCBob3Jpem9udGFsQm91bmRhcnlJdGVtMiA9IGl0ZW0yLmNvbHMgPT09IDEgPyAwIDogMTtcbiAgICBjb25zdCB2ZXJ0aWNhbEJvdW5kYXJ5SXRlbTEgPSBpdGVtLnJvd3MgPT09IDEgPyAwIDogMTtcbiAgICBjb25zdCB2ZXJ0aWNhbEJvdW5kYXJ5SXRlbTIgPSBpdGVtMi5yb3dzID09PSAxID8gMCA6IDE7XG4gICAgcmV0dXJuIChcbiAgICAgIGl0ZW0ueCArIGhvcml6b250YWxCb3VuZGFyeUl0ZW0xIDwgaXRlbTIueCArIGl0ZW0yLmNvbHMgJiZcbiAgICAgIGl0ZW0ueCArIGl0ZW0uY29scyA+IGl0ZW0yLnggKyBob3Jpem9udGFsQm91bmRhcnlJdGVtMiAmJlxuICAgICAgaXRlbS55ICsgdmVydGljYWxCb3VuZGFyeUl0ZW0xIDwgaXRlbTIueSArIGl0ZW0yLnJvd3MgJiZcbiAgICAgIGl0ZW0ueSArIGl0ZW0ucm93cyA+IGl0ZW0yLnkgKyB2ZXJ0aWNhbEJvdW5kYXJ5SXRlbTJcbiAgICApO1xuICB9XG5cbiAgY2hlY2tDb2xsaXNpb25Ud29JdGVtcyhpdGVtOiBHcmlkc3Rlckl0ZW0sIGl0ZW0yOiBHcmlkc3Rlckl0ZW0pOiBib29sZWFuIHtcbiAgICBjb25zdCBjb2xsaXNpb24gPVxuICAgICAgaXRlbS54IDwgaXRlbTIueCArIGl0ZW0yLmNvbHMgJiZcbiAgICAgIGl0ZW0ueCArIGl0ZW0uY29scyA+IGl0ZW0yLnggJiZcbiAgICAgIGl0ZW0ueSA8IGl0ZW0yLnkgKyBpdGVtMi5yb3dzICYmXG4gICAgICBpdGVtLnkgKyBpdGVtLnJvd3MgPiBpdGVtMi55O1xuICAgIGlmICghY29sbGlzaW9uKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghdGhpcy4kb3B0aW9ucy5hbGxvd011bHRpTGF5ZXIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0TGF5ZXJJbmRleCA9IHRoaXMuJG9wdGlvbnMuZGVmYXVsdExheWVySW5kZXg7XG4gICAgY29uc3QgbGF5ZXJJbmRleCA9XG4gICAgICBpdGVtLmxheWVySW5kZXggPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRMYXllckluZGV4IDogaXRlbS5sYXllckluZGV4O1xuICAgIGNvbnN0IGxheWVySW5kZXgyID1cbiAgICAgIGl0ZW0yLmxheWVySW5kZXggPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRMYXllckluZGV4IDogaXRlbTIubGF5ZXJJbmRleDtcbiAgICByZXR1cm4gbGF5ZXJJbmRleCA9PT0gbGF5ZXJJbmRleDI7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmluaXRDYWxsYmFjaykge1xuICAgICAgdGhpcy5vcHRpb25zLmluaXRDYWxsYmFjayh0aGlzKTtcbiAgICB9XG5cbiAgICB0aGlzLmNhbGN1bGF0ZUxheW91dCRcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgwKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNhbGN1bGF0ZUxheW91dCgpKTtcblxuICAgIHRoaXMucmVzaXplJFxuICAgICAgLnBpcGUoXG4gICAgICAgIC8vIENhbmNlbCBwcmV2aW91c2x5IHNjaGVkdWxlZCBET00gdGltZXIgaWYgYGNhbGN1bGF0ZUxheW91dCgpYCBoYXMgYmVlbiBjYWxsZWRcbiAgICAgICAgLy8gd2l0aGluIHRoaXMgdGltZSByYW5nZS5cbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRpbWVyKDEwMCkpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXNpemUoKSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMub3B0aW9ucykge1xuICAgICAgdGhpcy5zZXRPcHRpb25zKCk7XG4gICAgICB0aGlzLm9wdGlvbnMuYXBpID0ge1xuICAgICAgICBvcHRpb25zQ2hhbmdlZDogdGhpcy5vcHRpb25zQ2hhbmdlZCxcbiAgICAgICAgcmVzaXplOiB0aGlzLm9uUmVzaXplLFxuICAgICAgICBnZXROZXh0UG9zc2libGVQb3NpdGlvbjogdGhpcy5nZXROZXh0UG9zc2libGVQb3NpdGlvbixcbiAgICAgICAgZ2V0Rmlyc3RQb3NzaWJsZVBvc2l0aW9uOiB0aGlzLmdldEZpcnN0UG9zc2libGVQb3NpdGlvbixcbiAgICAgICAgZ2V0TGFzdFBvc3NpYmxlUG9zaXRpb246IHRoaXMuZ2V0TGFzdFBvc3NpYmxlUG9zaXRpb24sXG4gICAgICAgIGdldEl0ZW1Db21wb25lbnQ6IChpdGVtOiBHcmlkc3Rlckl0ZW0pID0+IHRoaXMuZ2V0SXRlbUNvbXBvbmVudChpdGVtKSxcbiAgICAgICAgZ2V0Q3VycmVudFJvd0hlaWdodDogdGhpcy5nZXRDdXJyZW50Um93SGVpZ2h0XG4gICAgICB9O1xuICAgICAgdGhpcy5jb2x1bW5zID0gdGhpcy4kb3B0aW9ucy5taW5Db2xzO1xuICAgICAgdGhpcy5yb3dzID0gdGhpcy4kb3B0aW9ucy5taW5Sb3dzICsgdGhpcy4kb3B0aW9ucy5hZGRFbXB0eVJvd3NDb3VudDtcbiAgICAgIHRoaXMuc2V0R3JpZFNpemUoKTtcbiAgICAgIHRoaXMuY2FsY3VsYXRlTGF5b3V0KCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q3VycmVudFJvd0hlaWdodCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1clJvd0hlaWdodDtcbiAgfVxuXG4gIHByaXZhdGUgcmVzaXplKCk6IHZvaWQge1xuICAgIGxldCBoZWlnaHQ7XG4gICAgbGV0IHdpZHRoO1xuICAgIGlmICh0aGlzLiRvcHRpb25zLmdyaWRUeXBlID09PSAnZml0JyAmJiAhdGhpcy5tb2JpbGUpIHtcbiAgICAgIHdpZHRoID0gdGhpcy5lbC5vZmZzZXRXaWR0aDtcbiAgICAgIGhlaWdodCA9IHRoaXMuZWwub2Zmc2V0SGVpZ2h0O1xuICAgIH0gZWxzZSB7XG4gICAgICB3aWR0aCA9IHRoaXMuZWwuY2xpZW50V2lkdGg7XG4gICAgICBoZWlnaHQgPSB0aGlzLmVsLmNsaWVudEhlaWdodDtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgKHdpZHRoICE9PSB0aGlzLmN1cldpZHRoIHx8IGhlaWdodCAhPT0gdGhpcy5jdXJIZWlnaHQpICYmXG4gICAgICB0aGlzLmNoZWNrSWZUb1Jlc2l6ZSgpXG4gICAgKSB7XG4gICAgICB0aGlzLm9uUmVzaXplKCk7XG4gICAgfVxuICB9XG5cbiAgc2V0T3B0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLiRvcHRpb25zID0gR3JpZHN0ZXJVdGlscy5tZXJnZShcbiAgICAgIHRoaXMuJG9wdGlvbnMsXG4gICAgICB0aGlzLm9wdGlvbnMsXG4gICAgICB0aGlzLiRvcHRpb25zXG4gICAgKTtcbiAgICBpZiAoIXRoaXMuJG9wdGlvbnMuZGlzYWJsZVdpbmRvd1Jlc2l6ZSAmJiAhdGhpcy53aW5kb3dSZXNpemUpIHtcbiAgICAgIHRoaXMud2luZG93UmVzaXplID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICd3aW5kb3cnLFxuICAgICAgICAncmVzaXplJyxcbiAgICAgICAgdGhpcy5vblJlc2l6ZVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuJG9wdGlvbnMuZGlzYWJsZVdpbmRvd1Jlc2l6ZSAmJiB0aGlzLndpbmRvd1Jlc2l6ZSkge1xuICAgICAgdGhpcy53aW5kb3dSZXNpemUoKTtcbiAgICAgIHRoaXMud2luZG93UmVzaXplID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5lbXB0eUNlbGwudXBkYXRlT3B0aW9ucygpO1xuICB9XG5cbiAgb3B0aW9uc0NoYW5nZWQgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5zZXRPcHRpb25zKCk7XG4gICAgbGV0IHdpZGdldHNJbmRleDogbnVtYmVyID0gdGhpcy5ncmlkLmxlbmd0aCAtIDE7XG4gICAgbGV0IHdpZGdldDogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlO1xuICAgIGZvciAoOyB3aWRnZXRzSW5kZXggPj0gMDsgd2lkZ2V0c0luZGV4LS0pIHtcbiAgICAgIHdpZGdldCA9IHRoaXMuZ3JpZFt3aWRnZXRzSW5kZXhdO1xuICAgICAgd2lkZ2V0LnVwZGF0ZU9wdGlvbnMoKTtcbiAgICB9XG4gICAgdGhpcy5jYWxjdWxhdGVMYXlvdXQoKTtcbiAgfTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLnByZXZpZXdTdHlsZSQuY29tcGxldGUoKTtcbiAgICBpZiAodGhpcy53aW5kb3dSZXNpemUpIHtcbiAgICAgIHRoaXMud2luZG93UmVzaXplKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmRlc3Ryb3lDYWxsYmFjaykge1xuICAgICAgdGhpcy5vcHRpb25zLmRlc3Ryb3lDYWxsYmFjayh0aGlzKTtcbiAgICB9XG4gICAgaWYgKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMuYXBpKSB7XG4gICAgICB0aGlzLm9wdGlvbnMuYXBpLnJlc2l6ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMub3B0aW9ucy5hcGkub3B0aW9uc0NoYW5nZWQgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLm9wdGlvbnMuYXBpLmdldE5leHRQb3NzaWJsZVBvc2l0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5vcHRpb25zLmFwaSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5lbXB0eUNlbGwuZGVzdHJveSgpO1xuICAgIHRoaXMuZW1wdHlDZWxsID0gbnVsbCE7XG4gICAgdGhpcy5jb21wYWN0LmRlc3Ryb3koKTtcbiAgICB0aGlzLmNvbXBhY3QgPSBudWxsITtcbiAgfVxuXG4gIG9uUmVzaXplID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLmVsLmNsaWVudFdpZHRoKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLnNldEdyaWRTaXplKSB7XG4gICAgICAgIC8vIHJlc2V0IHdpZHRoL2hlaWdodCBzbyB0aGUgc2l6ZSBpcyByZWNhbGN1bGF0ZWQgYWZ0ZXJ3YXJkc1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwsICd3aWR0aCcsICcnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLCAnaGVpZ2h0JywgJycpO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXRHcmlkU2l6ZSgpO1xuICAgICAgdGhpcy5jYWxjdWxhdGVMYXlvdXQoKTtcbiAgICB9XG4gIH07XG5cbiAgY2hlY2tJZlRvUmVzaXplKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGNsaWVudFdpZHRoID0gdGhpcy5lbC5jbGllbnRXaWR0aDtcbiAgICBjb25zdCBvZmZzZXRXaWR0aCA9IHRoaXMuZWwub2Zmc2V0V2lkdGg7XG4gICAgY29uc3Qgc2Nyb2xsV2lkdGggPSB0aGlzLmVsLnNjcm9sbFdpZHRoO1xuICAgIGNvbnN0IGNsaWVudEhlaWdodCA9IHRoaXMuZWwuY2xpZW50SGVpZ2h0O1xuICAgIGNvbnN0IG9mZnNldEhlaWdodCA9IHRoaXMuZWwub2Zmc2V0SGVpZ2h0O1xuICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IHRoaXMuZWwuc2Nyb2xsSGVpZ2h0O1xuICAgIGNvbnN0IHZlcnRpY2FsU2Nyb2xsUHJlc2VudCA9XG4gICAgICBjbGllbnRXaWR0aCA8IG9mZnNldFdpZHRoICYmXG4gICAgICBzY3JvbGxIZWlnaHQgPiBvZmZzZXRIZWlnaHQgJiZcbiAgICAgIHNjcm9sbEhlaWdodCAtIG9mZnNldEhlaWdodCA8IG9mZnNldFdpZHRoIC0gY2xpZW50V2lkdGg7XG4gICAgY29uc3QgaG9yaXpvbnRhbFNjcm9sbFByZXNlbnQgPVxuICAgICAgY2xpZW50SGVpZ2h0IDwgb2Zmc2V0SGVpZ2h0ICYmXG4gICAgICBzY3JvbGxXaWR0aCA+IG9mZnNldFdpZHRoICYmXG4gICAgICBzY3JvbGxXaWR0aCAtIG9mZnNldFdpZHRoIDwgb2Zmc2V0SGVpZ2h0IC0gY2xpZW50SGVpZ2h0O1xuICAgIGlmICh2ZXJ0aWNhbFNjcm9sbFByZXNlbnQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuICFob3Jpem9udGFsU2Nyb2xsUHJlc2VudDtcbiAgfVxuXG4gIGNoZWNrSWZNb2JpbGUoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuJG9wdGlvbnMudXNlQm9keUZvckJyZWFrcG9pbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLiRvcHRpb25zLm1vYmlsZUJyZWFrcG9pbnQgPiBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy4kb3B0aW9ucy5tb2JpbGVCcmVha3BvaW50ID4gdGhpcy5jdXJXaWR0aDtcbiAgICB9XG4gIH1cblxuICBzZXRHcmlkU2l6ZSgpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IHRoaXMuZWw7XG4gICAgbGV0IHdpZHRoO1xuICAgIGxldCBoZWlnaHQ7XG4gICAgaWYgKFxuICAgICAgdGhpcy4kb3B0aW9ucy5zZXRHcmlkU2l6ZSB8fFxuICAgICAgKHRoaXMuJG9wdGlvbnMuZ3JpZFR5cGUgPT09IEdyaWRUeXBlLkZpdCAmJiAhdGhpcy5tb2JpbGUpXG4gICAgKSB7XG4gICAgICB3aWR0aCA9IGVsLm9mZnNldFdpZHRoO1xuICAgICAgaGVpZ2h0ID0gZWwub2Zmc2V0SGVpZ2h0O1xuICAgIH0gZWxzZSB7XG4gICAgICB3aWR0aCA9IGVsLmNsaWVudFdpZHRoO1xuICAgICAgaGVpZ2h0ID0gZWwuY2xpZW50SGVpZ2h0O1xuICAgIH1cbiAgICB0aGlzLmN1cldpZHRoID0gd2lkdGg7XG4gICAgdGhpcy5jdXJIZWlnaHQgPSBoZWlnaHQ7XG4gIH1cblxuICBzZXRHcmlkRGltZW5zaW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLnNldEdyaWRTaXplKCk7XG4gICAgaWYgKCF0aGlzLm1vYmlsZSAmJiB0aGlzLmNoZWNrSWZNb2JpbGUoKSkge1xuICAgICAgdGhpcy5tb2JpbGUgPSAhdGhpcy5tb2JpbGU7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwsICdtb2JpbGUnKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubW9iaWxlICYmICF0aGlzLmNoZWNrSWZNb2JpbGUoKSkge1xuICAgICAgdGhpcy5tb2JpbGUgPSAhdGhpcy5tb2JpbGU7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwsICdtb2JpbGUnKTtcbiAgICB9XG4gICAgbGV0IHJvd3MgPSB0aGlzLiRvcHRpb25zLm1pblJvd3M7XG4gICAgbGV0IGNvbHVtbnMgPSB0aGlzLiRvcHRpb25zLm1pbkNvbHM7XG5cbiAgICBsZXQgd2lkZ2V0c0luZGV4ID0gdGhpcy5ncmlkLmxlbmd0aCAtIDE7XG4gICAgbGV0IHdpZGdldDtcbiAgICBmb3IgKDsgd2lkZ2V0c0luZGV4ID49IDA7IHdpZGdldHNJbmRleC0tKSB7XG4gICAgICB3aWRnZXQgPSB0aGlzLmdyaWRbd2lkZ2V0c0luZGV4XTtcbiAgICAgIGlmICghd2lkZ2V0Lm5vdFBsYWNlZCkge1xuICAgICAgICByb3dzID0gTWF0aC5tYXgocm93cywgd2lkZ2V0LiRpdGVtLnkgKyB3aWRnZXQuJGl0ZW0ucm93cyk7XG4gICAgICAgIGNvbHVtbnMgPSBNYXRoLm1heChjb2x1bW5zLCB3aWRnZXQuJGl0ZW0ueCArIHdpZGdldC4kaXRlbS5jb2xzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcm93cyArPSB0aGlzLiRvcHRpb25zLmFkZEVtcHR5Um93c0NvdW50O1xuICAgIGlmICh0aGlzLmNvbHVtbnMgIT09IGNvbHVtbnMgfHwgdGhpcy5yb3dzICE9PSByb3dzKSB7XG4gICAgICB0aGlzLmNvbHVtbnMgPSBjb2x1bW5zO1xuICAgICAgdGhpcy5yb3dzID0gcm93cztcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuZ3JpZFNpemVDaGFuZ2VkQ2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmdyaWRTaXplQ2hhbmdlZENhbGxiYWNrKHRoaXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlTGF5b3V0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbXBhY3QpIHtcbiAgICAgIHRoaXMuY29tcGFjdC5jaGVja0NvbXBhY3QoKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldEdyaWREaW1lbnNpb25zKCk7XG4gICAgaWYgKHRoaXMuJG9wdGlvbnMub3V0ZXJNYXJnaW4pIHtcbiAgICAgIGxldCBtYXJnaW5XaWR0aCA9IC10aGlzLiRvcHRpb25zLm1hcmdpbjtcbiAgICAgIGlmICh0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luTGVmdCAhPT0gbnVsbCkge1xuICAgICAgICBtYXJnaW5XaWR0aCArPSB0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luTGVmdDtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICB0aGlzLmVsLFxuICAgICAgICAgICdwYWRkaW5nLWxlZnQnLFxuICAgICAgICAgIHRoaXMuJG9wdGlvbnMub3V0ZXJNYXJnaW5MZWZ0ICsgJ3B4J1xuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWFyZ2luV2lkdGggKz0gdGhpcy4kb3B0aW9ucy5tYXJnaW47XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgdGhpcy5lbCxcbiAgICAgICAgICAncGFkZGluZy1sZWZ0JyxcbiAgICAgICAgICB0aGlzLiRvcHRpb25zLm1hcmdpbiArICdweCdcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luUmlnaHQgIT09IG51bGwpIHtcbiAgICAgICAgbWFyZ2luV2lkdGggKz0gdGhpcy4kb3B0aW9ucy5vdXRlck1hcmdpblJpZ2h0O1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgIHRoaXMuZWwsXG4gICAgICAgICAgJ3BhZGRpbmctcmlnaHQnLFxuICAgICAgICAgIHRoaXMuJG9wdGlvbnMub3V0ZXJNYXJnaW5SaWdodCArICdweCdcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1hcmdpbldpZHRoICs9IHRoaXMuJG9wdGlvbnMubWFyZ2luO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgIHRoaXMuZWwsXG4gICAgICAgICAgJ3BhZGRpbmctcmlnaHQnLFxuICAgICAgICAgIHRoaXMuJG9wdGlvbnMubWFyZ2luICsgJ3B4J1xuICAgICAgICApO1xuICAgICAgfVxuICAgICAgdGhpcy5jdXJDb2xXaWR0aCA9ICh0aGlzLmN1cldpZHRoIC0gbWFyZ2luV2lkdGgpIC8gdGhpcy5jb2x1bW5zO1xuICAgICAgbGV0IG1hcmdpbkhlaWdodCA9IC10aGlzLiRvcHRpb25zLm1hcmdpbjtcbiAgICAgIGlmICh0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luVG9wICE9PSBudWxsKSB7XG4gICAgICAgIG1hcmdpbkhlaWdodCArPSB0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luVG9wO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgIHRoaXMuZWwsXG4gICAgICAgICAgJ3BhZGRpbmctdG9wJyxcbiAgICAgICAgICB0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luVG9wICsgJ3B4J1xuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWFyZ2luSGVpZ2h0ICs9IHRoaXMuJG9wdGlvbnMubWFyZ2luO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgIHRoaXMuZWwsXG4gICAgICAgICAgJ3BhZGRpbmctdG9wJyxcbiAgICAgICAgICB0aGlzLiRvcHRpb25zLm1hcmdpbiArICdweCdcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luQm90dG9tICE9PSBudWxsKSB7XG4gICAgICAgIG1hcmdpbkhlaWdodCArPSB0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luQm90dG9tO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgIHRoaXMuZWwsXG4gICAgICAgICAgJ3BhZGRpbmctYm90dG9tJyxcbiAgICAgICAgICB0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luQm90dG9tICsgJ3B4J1xuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWFyZ2luSGVpZ2h0ICs9IHRoaXMuJG9wdGlvbnMubWFyZ2luO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgIHRoaXMuZWwsXG4gICAgICAgICAgJ3BhZGRpbmctYm90dG9tJyxcbiAgICAgICAgICB0aGlzLiRvcHRpb25zLm1hcmdpbiArICdweCdcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY3VyUm93SGVpZ2h0ID1cbiAgICAgICAgKCh0aGlzLmN1ckhlaWdodCAtIG1hcmdpbkhlaWdodCkgLyB0aGlzLnJvd3MpICpcbiAgICAgICAgdGhpcy4kb3B0aW9ucy5yb3dIZWlnaHRSYXRpbztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jdXJDb2xXaWR0aCA9ICh0aGlzLmN1cldpZHRoICsgdGhpcy4kb3B0aW9ucy5tYXJnaW4pIC8gdGhpcy5jb2x1bW5zO1xuICAgICAgdGhpcy5jdXJSb3dIZWlnaHQgPVxuICAgICAgICAoKHRoaXMuY3VySGVpZ2h0ICsgdGhpcy4kb3B0aW9ucy5tYXJnaW4pIC8gdGhpcy5yb3dzKSAqXG4gICAgICAgIHRoaXMuJG9wdGlvbnMucm93SGVpZ2h0UmF0aW87XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwsICdwYWRkaW5nLWxlZnQnLCAwICsgJ3B4Jyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwsICdwYWRkaW5nLXJpZ2h0JywgMCArICdweCcpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLCAncGFkZGluZy10b3AnLCAwICsgJ3B4Jyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwsICdwYWRkaW5nLWJvdHRvbScsIDAgKyAncHgnKTtcbiAgICB9XG4gICAgdGhpcy5ncmlkUmVuZGVyZXIudXBkYXRlR3JpZHN0ZXIoKTtcblxuICAgIGlmICh0aGlzLiRvcHRpb25zLnNldEdyaWRTaXplKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwsICdncmlkU2l6ZScpO1xuICAgICAgaWYgKCF0aGlzLm1vYmlsZSkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgIHRoaXMuZWwsXG4gICAgICAgICAgJ3dpZHRoJyxcbiAgICAgICAgICB0aGlzLmNvbHVtbnMgKiB0aGlzLmN1ckNvbFdpZHRoICsgdGhpcy4kb3B0aW9ucy5tYXJnaW4gKyAncHgnXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgdGhpcy5lbCxcbiAgICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgICB0aGlzLnJvd3MgKiB0aGlzLmN1clJvd0hlaWdodCArIHRoaXMuJG9wdGlvbnMubWFyZ2luICsgJ3B4J1xuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwsICdncmlkU2l6ZScpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLCAnd2lkdGgnLCAnJyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwsICdoZWlnaHQnLCAnJyk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlR3JpZCgpO1xuXG4gICAgbGV0IHdpZGdldHNJbmRleDogbnVtYmVyID0gdGhpcy5ncmlkLmxlbmd0aCAtIDE7XG4gICAgbGV0IHdpZGdldDogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlO1xuICAgIGZvciAoOyB3aWRnZXRzSW5kZXggPj0gMDsgd2lkZ2V0c0luZGV4LS0pIHtcbiAgICAgIHdpZGdldCA9IHRoaXMuZ3JpZFt3aWRnZXRzSW5kZXhdO1xuICAgICAgd2lkZ2V0LnNldFNpemUoKTtcbiAgICAgIHdpZGdldC5kcmFnLnRvZ2dsZSgpO1xuICAgICAgd2lkZ2V0LnJlc2l6ZS50b2dnbGUoKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc2l6ZSQubmV4dCgpO1xuICB9XG5cbiAgdXBkYXRlR3JpZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4kb3B0aW9ucy5kaXNwbGF5R3JpZCA9PT0gJ2Fsd2F5cycgJiYgIXRoaXMubW9iaWxlKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwsICdkaXNwbGF5LWdyaWQnKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdGhpcy4kb3B0aW9ucy5kaXNwbGF5R3JpZCA9PT0gJ29uRHJhZyZSZXNpemUnICYmXG4gICAgICB0aGlzLmRyYWdJblByb2dyZXNzXG4gICAgKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwsICdkaXNwbGF5LWdyaWQnKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgdGhpcy4kb3B0aW9ucy5kaXNwbGF5R3JpZCA9PT0gJ25vbmUnIHx8XG4gICAgICAhdGhpcy5kcmFnSW5Qcm9ncmVzcyB8fFxuICAgICAgdGhpcy5tb2JpbGVcbiAgICApIHtcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbCwgJ2Rpc3BsYXktZ3JpZCcpO1xuICAgIH1cbiAgICB0aGlzLnNldEdyaWREaW1lbnNpb25zKCk7XG4gICAgdGhpcy5ncmlkQ29sdW1ucy5sZW5ndGggPSBHcmlkc3RlckNvbXBvbmVudC5nZXROZXdBcnJheUxlbmd0aChcbiAgICAgIHRoaXMuY29sdW1ucyxcbiAgICAgIHRoaXMuY3VyV2lkdGgsXG4gICAgICB0aGlzLmN1ckNvbFdpZHRoXG4gICAgKTtcbiAgICB0aGlzLmdyaWRSb3dzLmxlbmd0aCA9IEdyaWRzdGVyQ29tcG9uZW50LmdldE5ld0FycmF5TGVuZ3RoKFxuICAgICAgdGhpcy5yb3dzLFxuICAgICAgdGhpcy5jdXJIZWlnaHQsXG4gICAgICB0aGlzLmN1clJvd0hlaWdodFxuICAgICk7XG4gICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGFkZEl0ZW0oaXRlbUNvbXBvbmVudDogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlKTogdm9pZCB7XG4gICAgaWYgKGl0ZW1Db21wb25lbnQuJGl0ZW0uY29scyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpdGVtQ29tcG9uZW50LiRpdGVtLmNvbHMgPSB0aGlzLiRvcHRpb25zLmRlZmF1bHRJdGVtQ29scztcbiAgICAgIGl0ZW1Db21wb25lbnQuaXRlbS5jb2xzID0gaXRlbUNvbXBvbmVudC4kaXRlbS5jb2xzO1xuICAgICAgaXRlbUNvbXBvbmVudC5pdGVtQ2hhbmdlZCgpO1xuICAgIH1cbiAgICBpZiAoaXRlbUNvbXBvbmVudC4kaXRlbS5yb3dzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGl0ZW1Db21wb25lbnQuJGl0ZW0ucm93cyA9IHRoaXMuJG9wdGlvbnMuZGVmYXVsdEl0ZW1Sb3dzO1xuICAgICAgaXRlbUNvbXBvbmVudC5pdGVtLnJvd3MgPSBpdGVtQ29tcG9uZW50LiRpdGVtLnJvd3M7XG4gICAgICBpdGVtQ29tcG9uZW50Lml0ZW1DaGFuZ2VkKCk7XG4gICAgfVxuICAgIGlmIChpdGVtQ29tcG9uZW50LiRpdGVtLnggPT09IC0xIHx8IGl0ZW1Db21wb25lbnQuJGl0ZW0ueSA9PT0gLTEpIHtcbiAgICAgIHRoaXMuYXV0b1Bvc2l0aW9uSXRlbShpdGVtQ29tcG9uZW50KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2hlY2tDb2xsaXNpb24oaXRlbUNvbXBvbmVudC4kaXRlbSkpIHtcbiAgICAgIGlmICghdGhpcy4kb3B0aW9ucy5kaXNhYmxlV2FybmluZ3MpIHtcbiAgICAgICAgaXRlbUNvbXBvbmVudC5ub3RQbGFjZWQgPSB0cnVlO1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgXCJDYW4ndCBiZSBwbGFjZWQgaW4gdGhlIGJvdW5kcyBvZiB0aGUgZGFzaGJvYXJkLCB0cnlpbmcgdG8gYXV0byBwb3NpdGlvbiEvblwiICtcbiAgICAgICAgICBKU09OLnN0cmluZ2lmeShpdGVtQ29tcG9uZW50Lml0ZW0sIFsnY29scycsICdyb3dzJywgJ3gnLCAneSddKVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLiRvcHRpb25zLmRpc2FibGVBdXRvUG9zaXRpb25PbkNvbmZsaWN0KSB7XG4gICAgICAgIHRoaXMuYXV0b1Bvc2l0aW9uSXRlbShpdGVtQ29tcG9uZW50KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGl0ZW1Db21wb25lbnQubm90UGxhY2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5ncmlkLnB1c2goaXRlbUNvbXBvbmVudCk7XG4gICAgdGhpcy5jYWxjdWxhdGVMYXlvdXQkLm5leHQoKTtcbiAgfVxuXG4gIHJlbW92ZUl0ZW0oaXRlbUNvbXBvbmVudDogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkLnNwbGljZSh0aGlzLmdyaWQuaW5kZXhPZihpdGVtQ29tcG9uZW50KSwgMSk7XG4gICAgdGhpcy5jYWxjdWxhdGVMYXlvdXQkLm5leHQoKTtcbiAgICBpZiAodGhpcy5vcHRpb25zLml0ZW1SZW1vdmVkQ2FsbGJhY2spIHtcbiAgICAgIHRoaXMub3B0aW9ucy5pdGVtUmVtb3ZlZENhbGxiYWNrKGl0ZW1Db21wb25lbnQuaXRlbSwgaXRlbUNvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cbiAgY2hlY2tDb2xsaXNpb24oaXRlbTogR3JpZHN0ZXJJdGVtKTogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlIHwgYm9vbGVhbiB7XG4gICAgbGV0IGNvbGxpc2lvbjogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlIHwgYm9vbGVhbiA9IGZhbHNlO1xuICAgIGlmICh0aGlzLm9wdGlvbnMuaXRlbVZhbGlkYXRlQ2FsbGJhY2spIHtcbiAgICAgIGNvbGxpc2lvbiA9ICF0aGlzLm9wdGlvbnMuaXRlbVZhbGlkYXRlQ2FsbGJhY2soaXRlbSk7XG4gICAgfVxuICAgIGlmICghY29sbGlzaW9uICYmIHRoaXMuY2hlY2tHcmlkQ29sbGlzaW9uKGl0ZW0pKSB7XG4gICAgICBjb2xsaXNpb24gPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoIWNvbGxpc2lvbikge1xuICAgICAgY29uc3QgYyA9IHRoaXMuZmluZEl0ZW1XaXRoSXRlbShpdGVtKTtcbiAgICAgIGlmIChjKSB7XG4gICAgICAgIGNvbGxpc2lvbiA9IGM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjb2xsaXNpb247XG4gIH1cblxuICBjaGVja0dyaWRDb2xsaXNpb24oaXRlbTogR3JpZHN0ZXJJdGVtKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgbm9OZWdhdGl2ZVBvc2l0aW9uID0gaXRlbS55ID4gLTEgJiYgaXRlbS54ID4gLTE7XG4gICAgY29uc3QgbWF4R3JpZENvbHMgPSBpdGVtLmNvbHMgKyBpdGVtLnggPD0gdGhpcy4kb3B0aW9ucy5tYXhDb2xzO1xuICAgIGNvbnN0IG1heEdyaWRSb3dzID0gaXRlbS5yb3dzICsgaXRlbS55IDw9IHRoaXMuJG9wdGlvbnMubWF4Um93cztcbiAgICBjb25zdCBtYXhJdGVtQ29scyA9XG4gICAgICBpdGVtLm1heEl0ZW1Db2xzID09PSB1bmRlZmluZWRcbiAgICAgICAgPyB0aGlzLiRvcHRpb25zLm1heEl0ZW1Db2xzXG4gICAgICAgIDogaXRlbS5tYXhJdGVtQ29scztcbiAgICBjb25zdCBtaW5JdGVtQ29scyA9XG4gICAgICBpdGVtLm1pbkl0ZW1Db2xzID09PSB1bmRlZmluZWRcbiAgICAgICAgPyB0aGlzLiRvcHRpb25zLm1pbkl0ZW1Db2xzXG4gICAgICAgIDogaXRlbS5taW5JdGVtQ29scztcbiAgICBjb25zdCBtYXhJdGVtUm93cyA9XG4gICAgICBpdGVtLm1heEl0ZW1Sb3dzID09PSB1bmRlZmluZWRcbiAgICAgICAgPyB0aGlzLiRvcHRpb25zLm1heEl0ZW1Sb3dzXG4gICAgICAgIDogaXRlbS5tYXhJdGVtUm93cztcbiAgICBjb25zdCBtaW5JdGVtUm93cyA9XG4gICAgICBpdGVtLm1pbkl0ZW1Sb3dzID09PSB1bmRlZmluZWRcbiAgICAgICAgPyB0aGlzLiRvcHRpb25zLm1pbkl0ZW1Sb3dzXG4gICAgICAgIDogaXRlbS5taW5JdGVtUm93cztcbiAgICBjb25zdCBpbkNvbHNMaW1pdHMgPSBpdGVtLmNvbHMgPD0gbWF4SXRlbUNvbHMgJiYgaXRlbS5jb2xzID49IG1pbkl0ZW1Db2xzO1xuICAgIGNvbnN0IGluUm93c0xpbWl0cyA9IGl0ZW0ucm93cyA8PSBtYXhJdGVtUm93cyAmJiBpdGVtLnJvd3MgPj0gbWluSXRlbVJvd3M7XG4gICAgY29uc3QgbWluQXJlYUxpbWl0ID1cbiAgICAgIGl0ZW0ubWluSXRlbUFyZWEgPT09IHVuZGVmaW5lZFxuICAgICAgICA/IHRoaXMuJG9wdGlvbnMubWluSXRlbUFyZWFcbiAgICAgICAgOiBpdGVtLm1pbkl0ZW1BcmVhO1xuICAgIGNvbnN0IG1heEFyZWFMaW1pdCA9XG4gICAgICBpdGVtLm1heEl0ZW1BcmVhID09PSB1bmRlZmluZWRcbiAgICAgICAgPyB0aGlzLiRvcHRpb25zLm1heEl0ZW1BcmVhXG4gICAgICAgIDogaXRlbS5tYXhJdGVtQXJlYTtcbiAgICBjb25zdCBhcmVhID0gaXRlbS5jb2xzICogaXRlbS5yb3dzO1xuICAgIGNvbnN0IGluTWluQXJlYSA9IG1pbkFyZWFMaW1pdCA8PSBhcmVhO1xuICAgIGNvbnN0IGluTWF4QXJlYSA9IG1heEFyZWFMaW1pdCA+PSBhcmVhO1xuICAgIHJldHVybiAhKFxuICAgICAgbm9OZWdhdGl2ZVBvc2l0aW9uICYmXG4gICAgICBtYXhHcmlkQ29scyAmJlxuICAgICAgbWF4R3JpZFJvd3MgJiZcbiAgICAgIGluQ29sc0xpbWl0cyAmJlxuICAgICAgaW5Sb3dzTGltaXRzICYmXG4gICAgICBpbk1pbkFyZWEgJiZcbiAgICAgIGluTWF4QXJlYVxuICAgICk7XG4gIH1cblxuICBmaW5kSXRlbVdpdGhJdGVtKFxuICAgIGl0ZW06IEdyaWRzdGVySXRlbVxuICApOiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2UgfCBib29sZWFuIHtcbiAgICBsZXQgd2lkZ2V0c0luZGV4ID0gMDtcbiAgICBsZXQgd2lkZ2V0OiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2U7XG4gICAgZm9yICg7IHdpZGdldHNJbmRleCA8IHRoaXMuZ3JpZC5sZW5ndGg7IHdpZGdldHNJbmRleCsrKSB7XG4gICAgICB3aWRnZXQgPSB0aGlzLmdyaWRbd2lkZ2V0c0luZGV4XTtcbiAgICAgIGlmIChcbiAgICAgICAgd2lkZ2V0LiRpdGVtICE9PSBpdGVtICYmXG4gICAgICAgIHRoaXMuY2hlY2tDb2xsaXNpb25Ud29JdGVtcyh3aWRnZXQuJGl0ZW0sIGl0ZW0pXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHdpZGdldDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZmluZEl0ZW1zV2l0aEl0ZW0oaXRlbTogR3JpZHN0ZXJJdGVtKTogQXJyYXk8R3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlPiB7XG4gICAgY29uc3QgYTogQXJyYXk8R3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlPiA9IFtdO1xuICAgIGxldCB3aWRnZXRzSW5kZXggPSAwO1xuICAgIGxldCB3aWRnZXQ6IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZTtcbiAgICBmb3IgKDsgd2lkZ2V0c0luZGV4IDwgdGhpcy5ncmlkLmxlbmd0aDsgd2lkZ2V0c0luZGV4KyspIHtcbiAgICAgIHdpZGdldCA9IHRoaXMuZ3JpZFt3aWRnZXRzSW5kZXhdO1xuICAgICAgaWYgKFxuICAgICAgICB3aWRnZXQuJGl0ZW0gIT09IGl0ZW0gJiZcbiAgICAgICAgdGhpcy5jaGVja0NvbGxpc2lvblR3b0l0ZW1zKHdpZGdldC4kaXRlbSwgaXRlbSlcbiAgICAgICkge1xuICAgICAgICBhLnB1c2god2lkZ2V0KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGE7XG4gIH1cblxuICBhdXRvUG9zaXRpb25JdGVtKGl0ZW1Db21wb25lbnQ6IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmdldE5leHRQb3NzaWJsZVBvc2l0aW9uKGl0ZW1Db21wb25lbnQuJGl0ZW0pKSB7XG4gICAgICBpdGVtQ29tcG9uZW50Lm5vdFBsYWNlZCA9IGZhbHNlO1xuICAgICAgaXRlbUNvbXBvbmVudC5pdGVtLnggPSBpdGVtQ29tcG9uZW50LiRpdGVtLng7XG4gICAgICBpdGVtQ29tcG9uZW50Lml0ZW0ueSA9IGl0ZW1Db21wb25lbnQuJGl0ZW0ueTtcbiAgICAgIGl0ZW1Db21wb25lbnQuaXRlbUNoYW5nZWQoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaXRlbUNvbXBvbmVudC5ub3RQbGFjZWQgPSB0cnVlO1xuICAgICAgaWYgKCF0aGlzLiRvcHRpb25zLmRpc2FibGVXYXJuaW5ncykge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgXCJDYW4ndCBiZSBwbGFjZWQgaW4gdGhlIGJvdW5kcyBvZiB0aGUgZGFzaGJvYXJkIS9uXCIgK1xuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGl0ZW1Db21wb25lbnQuaXRlbSwgWydjb2xzJywgJ3Jvd3MnLCAneCcsICd5J10pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0TmV4dFBvc3NpYmxlUG9zaXRpb24gPSAoXG4gICAgbmV3SXRlbTogR3JpZHN0ZXJJdGVtLFxuICAgIHN0YXJ0aW5nRnJvbTogeyB5PzogbnVtYmVyOyB4PzogbnVtYmVyIH0gPSB7fVxuICApOiBib29sZWFuID0+IHtcbiAgICBpZiAobmV3SXRlbS5jb2xzID09PSAtMSkge1xuICAgICAgbmV3SXRlbS5jb2xzID0gdGhpcy4kb3B0aW9ucy5kZWZhdWx0SXRlbUNvbHM7XG4gICAgfVxuICAgIGlmIChuZXdJdGVtLnJvd3MgPT09IC0xKSB7XG4gICAgICBuZXdJdGVtLnJvd3MgPSB0aGlzLiRvcHRpb25zLmRlZmF1bHRJdGVtUm93cztcbiAgICB9XG4gICAgdGhpcy5zZXRHcmlkRGltZW5zaW9ucygpO1xuICAgIGxldCByb3dzSW5kZXggPSBzdGFydGluZ0Zyb20ueSB8fCAwO1xuICAgIGxldCBjb2xzSW5kZXg7XG4gICAgZm9yICg7IHJvd3NJbmRleCA8IHRoaXMucm93czsgcm93c0luZGV4KyspIHtcbiAgICAgIG5ld0l0ZW0ueSA9IHJvd3NJbmRleDtcbiAgICAgIGNvbHNJbmRleCA9IHN0YXJ0aW5nRnJvbS54IHx8IDA7XG4gICAgICBmb3IgKDsgY29sc0luZGV4IDwgdGhpcy5jb2x1bW5zOyBjb2xzSW5kZXgrKykge1xuICAgICAgICBuZXdJdGVtLnggPSBjb2xzSW5kZXg7XG4gICAgICAgIGlmICghdGhpcy5jaGVja0NvbGxpc2lvbihuZXdJdGVtKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGNhbkFkZFRvUm93cyA9IHRoaXMuJG9wdGlvbnMubWF4Um93cyA+PSB0aGlzLnJvd3MgKyBuZXdJdGVtLnJvd3M7XG4gICAgY29uc3QgY2FuQWRkVG9Db2x1bW5zID1cbiAgICAgIHRoaXMuJG9wdGlvbnMubWF4Q29scyA+PSB0aGlzLmNvbHVtbnMgKyBuZXdJdGVtLmNvbHM7XG4gICAgY29uc3QgYWRkVG9Sb3dzID0gdGhpcy5yb3dzIDw9IHRoaXMuY29sdW1ucyAmJiBjYW5BZGRUb1Jvd3M7XG4gICAgaWYgKCFhZGRUb1Jvd3MgJiYgY2FuQWRkVG9Db2x1bW5zKSB7XG4gICAgICBuZXdJdGVtLnggPSB0aGlzLmNvbHVtbnM7XG4gICAgICBuZXdJdGVtLnkgPSAwO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmIChjYW5BZGRUb1Jvd3MpIHtcbiAgICAgIG5ld0l0ZW0ueSA9IHRoaXMucm93cztcbiAgICAgIG5ld0l0ZW0ueCA9IDA7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xuXG4gIGdldEZpcnN0UG9zc2libGVQb3NpdGlvbiA9IChpdGVtOiBHcmlkc3Rlckl0ZW0pOiBHcmlkc3Rlckl0ZW0gPT4ge1xuICAgIGNvbnN0IHRtcEl0ZW0gPSBPYmplY3QuYXNzaWduKHt9LCBpdGVtKTtcbiAgICB0aGlzLmdldE5leHRQb3NzaWJsZVBvc2l0aW9uKHRtcEl0ZW0pO1xuICAgIHJldHVybiB0bXBJdGVtO1xuICB9O1xuXG4gIGdldExhc3RQb3NzaWJsZVBvc2l0aW9uID0gKGl0ZW06IEdyaWRzdGVySXRlbSk6IEdyaWRzdGVySXRlbSA9PiB7XG4gICAgbGV0IGZhcnRoZXN0SXRlbTogeyB5OiBudW1iZXI7IHg6IG51bWJlciB9ID0geyB5OiAwLCB4OiAwIH07XG4gICAgZmFydGhlc3RJdGVtID0gdGhpcy5ncmlkLnJlZHVjZShcbiAgICAgIChcbiAgICAgICAgcHJldjogeyB5OiBudW1iZXI7IHg6IG51bWJlciB9LFxuICAgICAgICBjdXJyOiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2VcbiAgICAgICkgPT4ge1xuICAgICAgICBjb25zdCBjdXJyQ29vcmRzID0ge1xuICAgICAgICAgIHk6IGN1cnIuJGl0ZW0ueSArIGN1cnIuJGl0ZW0ucm93cyAtIDEsXG4gICAgICAgICAgeDogY3Vyci4kaXRlbS54ICsgY3Vyci4kaXRlbS5jb2xzIC0gMVxuICAgICAgICB9O1xuICAgICAgICBpZiAoR3JpZHN0ZXJVdGlscy5jb21wYXJlSXRlbXMocHJldiwgY3VyckNvb3JkcykgPT09IDEpIHtcbiAgICAgICAgICByZXR1cm4gY3VyckNvb3JkcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGZhcnRoZXN0SXRlbVxuICAgICk7XG5cbiAgICBjb25zdCB0bXBJdGVtID0gT2JqZWN0LmFzc2lnbih7fSwgaXRlbSk7XG4gICAgdGhpcy5nZXROZXh0UG9zc2libGVQb3NpdGlvbih0bXBJdGVtLCBmYXJ0aGVzdEl0ZW0pO1xuICAgIHJldHVybiB0bXBJdGVtO1xuICB9O1xuXG4gIHBpeGVsc1RvUG9zaXRpb25YKFxuICAgIHg6IG51bWJlcixcbiAgICByb3VuZGluZ01ldGhvZDogKHg6IG51bWJlcikgPT4gbnVtYmVyLFxuICAgIG5vTGltaXQ/OiBib29sZWFuXG4gICk6IG51bWJlciB7XG4gICAgY29uc3QgcG9zaXRpb24gPSByb3VuZGluZ01ldGhvZCh4IC8gdGhpcy5jdXJDb2xXaWR0aCk7XG4gICAgaWYgKG5vTGltaXQpIHtcbiAgICAgIHJldHVybiBwb3NpdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIE1hdGgubWF4KHBvc2l0aW9uLCAwKTtcbiAgICB9XG4gIH1cblxuICBwaXhlbHNUb1Bvc2l0aW9uWShcbiAgICB5OiBudW1iZXIsXG4gICAgcm91bmRpbmdNZXRob2Q6ICh4OiBudW1iZXIpID0+IG51bWJlcixcbiAgICBub0xpbWl0PzogYm9vbGVhblxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gcm91bmRpbmdNZXRob2QoeSAvIHRoaXMuY3VyUm93SGVpZ2h0KTtcbiAgICBpZiAobm9MaW1pdCkge1xuICAgICAgcmV0dXJuIHBvc2l0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gTWF0aC5tYXgocG9zaXRpb24sIDApO1xuICAgIH1cbiAgfVxuXG4gIHBvc2l0aW9uWFRvUGl4ZWxzKHg6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHggKiB0aGlzLmN1ckNvbFdpZHRoO1xuICB9XG5cbiAgcG9zaXRpb25ZVG9QaXhlbHMoeTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4geSAqIHRoaXMuY3VyUm93SGVpZ2h0O1xuICB9XG5cbiAgZ2V0SXRlbUNvbXBvbmVudChcbiAgICBpdGVtOiBHcmlkc3Rlckl0ZW1cbiAgKTogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5ncmlkLmZpbmQoYyA9PiBjLml0ZW0gPT09IGl0ZW0pO1xuICB9XG5cbiAgLy8gLS0tLS0tIEZ1bmN0aW9ucyBmb3Igc3dhcFdoaWxlRHJhZ2dpbmcgb3B0aW9uXG5cbiAgLy8gaWRlbnRpY2FsIHRvIGNoZWNrQ29sbGlzaW9uKCkgZXhjZXB0IHRoYXQgdGhpcyBmdW5jdGlvbiBjYWxscyBmaW5kSXRlbVdpdGhJdGVtRm9yU3dhcGluZygpIGluc3RlYWQgb2YgZmluZEl0ZW1XaXRoSXRlbSgpXG4gIGNoZWNrQ29sbGlzaW9uRm9yU3dhcGluZyhcbiAgICBpdGVtOiBHcmlkc3Rlckl0ZW1cbiAgKTogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlIHwgYm9vbGVhbiB7XG4gICAgbGV0IGNvbGxpc2lvbjogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlIHwgYm9vbGVhbiA9IGZhbHNlO1xuICAgIGlmICh0aGlzLm9wdGlvbnMuaXRlbVZhbGlkYXRlQ2FsbGJhY2spIHtcbiAgICAgIGNvbGxpc2lvbiA9ICF0aGlzLm9wdGlvbnMuaXRlbVZhbGlkYXRlQ2FsbGJhY2soaXRlbSk7XG4gICAgfVxuICAgIGlmICghY29sbGlzaW9uICYmIHRoaXMuY2hlY2tHcmlkQ29sbGlzaW9uKGl0ZW0pKSB7XG4gICAgICBjb2xsaXNpb24gPSB0cnVlO1xuICAgIH1cbiAgICBpZiAoIWNvbGxpc2lvbikge1xuICAgICAgY29uc3QgYyA9IHRoaXMuZmluZEl0ZW1XaXRoSXRlbUZvclN3YXBwaW5nKGl0ZW0pO1xuICAgICAgaWYgKGMpIHtcbiAgICAgICAgY29sbGlzaW9uID0gYztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNvbGxpc2lvbjtcbiAgfVxuXG4gIC8vIGlkZW50aWNhbCB0byBmaW5kSXRlbVdpdGhJdGVtKCkgZXhjZXB0IHRoYXQgdGhpcyBmdW5jdGlvbiBjYWxscyBjaGVja0NvbGxpc2lvblR3b0l0ZW1zRm9yU3dhcGluZygpIGluc3RlYWQgb2YgY2hlY2tDb2xsaXNpb25Ud29JdGVtcygpXG4gIGZpbmRJdGVtV2l0aEl0ZW1Gb3JTd2FwcGluZyhcbiAgICBpdGVtOiBHcmlkc3Rlckl0ZW1cbiAgKTogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlIHwgYm9vbGVhbiB7XG4gICAgbGV0IHdpZGdldHNJbmRleDogbnVtYmVyID0gdGhpcy5ncmlkLmxlbmd0aCAtIDE7XG4gICAgbGV0IHdpZGdldDogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlO1xuICAgIGZvciAoOyB3aWRnZXRzSW5kZXggPiAtMTsgd2lkZ2V0c0luZGV4LS0pIHtcbiAgICAgIHdpZGdldCA9IHRoaXMuZ3JpZFt3aWRnZXRzSW5kZXhdO1xuICAgICAgaWYgKFxuICAgICAgICB3aWRnZXQuJGl0ZW0gIT09IGl0ZW0gJiZcbiAgICAgICAgR3JpZHN0ZXJDb21wb25lbnQuY2hlY2tDb2xsaXNpb25Ud29JdGVtc0ZvclN3YXBpbmcod2lkZ2V0LiRpdGVtLCBpdGVtKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiB3aWRnZXQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByZXZpZXdTdHlsZShkcmFnID0gZmFsc2UpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tb3ZpbmdJdGVtKSB7XG4gICAgICBpZiAodGhpcy5jb21wYWN0ICYmIGRyYWcpIHtcbiAgICAgICAgdGhpcy5jb21wYWN0LmNoZWNrQ29tcGFjdEl0ZW0odGhpcy5tb3ZpbmdJdGVtKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucHJldmlld1N0eWxlJC5uZXh0KHRoaXMubW92aW5nSXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJldmlld1N0eWxlJC5uZXh0KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIC8vIC0tLS0tLSBFbmQgb2YgZnVuY3Rpb25zIGZvciBzd2FwV2hpbGVEcmFnZ2luZyBvcHRpb25cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L21lbWJlci1vcmRlcmluZ1xuICBwcml2YXRlIHN0YXRpYyBnZXROZXdBcnJheUxlbmd0aChcbiAgICBsZW5ndGg6IG51bWJlcixcbiAgICBvdmVyYWxsU2l6ZTogbnVtYmVyLFxuICAgIHNpemU6IG51bWJlclxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IG5ld0xlbmd0aCA9IE1hdGgubWF4KGxlbmd0aCwgTWF0aC5mbG9vcihvdmVyYWxsU2l6ZSAvIHNpemUpKTtcblxuICAgIGlmIChuZXdMZW5ndGggPCAwKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBpZiAoTnVtYmVyLmlzRmluaXRlKG5ld0xlbmd0aCkpIHtcbiAgICAgIHJldHVybiBNYXRoLmZsb29yKG5ld0xlbmd0aCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIDA7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJncmlkc3Rlci1jb2x1bW5cIlxuICAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGdyaWRDb2x1bW5zOyBsZXQgaSA9IGluZGV4O1wiXG4gIFtuZ1N0eWxlXT1cImdyaWRSZW5kZXJlci5nZXRHcmlkQ29sdW1uU3R5bGUoaSlcIlxuPjwvZGl2PlxuPGRpdlxuICBjbGFzcz1cImdyaWRzdGVyLXJvd1wiXG4gICpuZ0Zvcj1cImxldCByb3cgb2YgZ3JpZFJvd3M7IGxldCBpID0gaW5kZXg7XCJcbiAgW25nU3R5bGVdPVwiZ3JpZFJlbmRlcmVyLmdldEdyaWRSb3dTdHlsZShpKVwiXG4+PC9kaXY+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48Z3JpZHN0ZXItcHJldmlld1xuICBbZ3JpZFJlbmRlcmVyXT1cImdyaWRSZW5kZXJlclwiXG4gIFtwcmV2aWV3U3R5bGUkXT1cInByZXZpZXdTdHlsZSRcIlxuICBjbGFzcz1cImdyaWRzdGVyLXByZXZpZXdcIlxuPjwvZ3JpZHN0ZXItcHJldmlldz5cbiJdfQ==
627
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmEtZGFzaGJvYXJkLWZyYW1ld29yay9zcmMvZ3JpZHN0ZXIvbGliL2dyaWRzdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhLWRhc2hib2FyZC1mcmFtZXdvcmsvc3JjL2dyaWRzdGVyL2xpYi9ncmlkc3Rlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFJTixTQUFTLEVBRVQsaUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQWtCLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBS2hFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFXeEQsTUFBTSxPQUFPLGlCQUFpQjtJQTZCNUIsWUFDc0IsRUFBYyxFQUNSLFFBQW1CLEVBQ1gsS0FBd0IsRUFD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QVM7K0JBRUUsVUFBVSxpQkFHTCxpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsd0JBQXdCLENBQUM7OzBCQWdDbEQsTUFBTTsyQkFBQyxVQUFVOzswQkFDakIsTUFBTTsyQkFBQyxTQUFTOzswQkFDaEIsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLE1BQU07eUNBL0JQLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nRm9yT2YsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgTmdab25lLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIFJlbmRlcmVyMixcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgU3ViamVjdCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdyaWRzdGVyQ29tcG9uZW50SW50ZXJmYWNlIH0gZnJvbSAnLi9ncmlkc3Rlci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBHcmlkc3RlckNvbXBhY3QgfSBmcm9tICcuL2dyaWRzdGVyQ29tcGFjdC5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IEdyaWRzdGVyQ29uZmlnU2VydmljZSB9IGZyb20gJy4vZ3JpZHN0ZXJDb25maWcuY29uc3RhbnQnO1xyXG5pbXBvcnQgeyBHcmlkc3RlckNvbmZpZywgR3JpZFR5cGUgfSBmcm9tICcuL2dyaWRzdGVyQ29uZmlnLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEdyaWRzdGVyQ29uZmlnUyB9IGZyb20gJy4vZ3JpZHN0ZXJDb25maWdTLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEdyaWRzdGVyRW1wdHlDZWxsIH0gZnJvbSAnLi9ncmlkc3RlckVtcHR5Q2VsbC5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBHcmlkc3Rlckl0ZW0sXHJcbiAgR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlXHJcbn0gZnJvbSAnLi9ncmlkc3Rlckl0ZW0uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgR3JpZHN0ZXJQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9ncmlkc3RlclByZXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgR3JpZHN0ZXJSZW5kZXJlciB9IGZyb20gJy4vZ3JpZHN0ZXJSZW5kZXJlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3JpZHN0ZXJVdGlscyB9IGZyb20gJy4vZ3JpZHN0ZXJVdGlscy5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdncmlkc3RlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyaWRzdGVyLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2dyaWRzdGVyLmNzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTmdGb3JPZiwgTmdTdHlsZSwgR3JpZHN0ZXJQcmV2aWV3Q29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JpZHN0ZXJDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEdyaWRzdGVyQ29tcG9uZW50SW50ZXJmYWNlIHtcclxuICBASW5wdXQoKSBvcHRpb25zITogR3JpZHN0ZXJDb25maWc7XHJcbiAgbW92aW5nSXRlbSE6IEdyaWRzdGVySXRlbSB8IG51bGw7XHJcbiAgZWw6IEhUTUxFbGVtZW50O1xyXG4gICRvcHRpb25zOiBHcmlkc3RlckNvbmZpZ1M7XHJcbiAgbW9iaWxlOiBib29sZWFuO1xyXG4gIGN1cldpZHRoOiBudW1iZXI7XHJcbiAgY3VySGVpZ2h0OiBudW1iZXI7XHJcbiAgZ3JpZDogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlW107XHJcbiAgY29sdW1ucyA9IDA7XHJcbiAgcm93cyA9IDA7XHJcbiAgY3VyQ29sV2lkdGg6IG51bWJlcjtcclxuICBjdXJSb3dIZWlnaHQ6IG51bWJlcjtcclxuICBncmlkQ29sdW1ucyA9IFtdO1xyXG4gIGdyaWRSb3dzID0gW107XHJcbiAgd2luZG93UmVzaXplITogKCgpID0+IHZvaWQpIHwgbnVsbDtcclxuICBkcmFnSW5Qcm9ncmVzczogYm9vbGVhbjtcclxuICBlbXB0eUNlbGw6IEdyaWRzdGVyRW1wdHlDZWxsO1xyXG4gIGNvbXBhY3Q6IEdyaWRzdGVyQ29tcGFjdDtcclxuICBncmlkUmVuZGVyZXI6IEdyaWRzdGVyUmVuZGVyZXI7XHJcbiAgcHJldmlld1N0eWxlJDogRXZlbnRFbWl0dGVyPEdyaWRzdGVySXRlbSB8IG51bGw+ID1cclxuICAgIG5ldyBFdmVudEVtaXR0ZXI8R3JpZHN0ZXJJdGVtIHwgbnVsbD4oKTtcclxuXHJcbiAgY2FsY3VsYXRlTGF5b3V0JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIHByaXZhdGUgcmVzaXplJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChFbGVtZW50UmVmKSBlbDogRWxlbWVudFJlZixcclxuICAgIEBJbmplY3QoUmVuZGVyZXIyKSBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIEBJbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpIHB1YmxpYyBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBASW5qZWN0KE5nWm9uZSkgcHVibGljIHpvbmU6IE5nWm9uZVxyXG4gICkge1xyXG4gICAgdGhpcy5lbCA9IGVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB0aGlzLiRvcHRpb25zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShHcmlkc3RlckNvbmZpZ1NlcnZpY2UpKTtcclxuICAgIHRoaXMubW9iaWxlID0gZmFsc2U7XHJcbiAgICB0aGlzLmN1cldpZHRoID0gMDtcclxuICAgIHRoaXMuY3VySGVpZ2h0ID0gMDtcclxuICAgIHRoaXMuZ3JpZCA9IFtdO1xyXG4gICAgdGhpcy5jdXJDb2xXaWR0aCA9IDA7XHJcbiAgICB0aGlzLmN1clJvd0hlaWdodCA9IDA7XHJcbiAgICB0aGlzLmRyYWdJblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICB0aGlzLmVtcHR5Q2VsbCA9IG5ldyBHcmlkc3RlckVtcHR5Q2VsbCh0aGlzKTtcclxuICAgIHRoaXMuY29tcGFjdCA9IG5ldyBHcmlkc3RlckNvbXBhY3QodGhpcyk7XHJcbiAgICB0aGlzLmdyaWRSZW5kZXJlciA9IG5ldyBHcmlkc3RlclJlbmRlcmVyKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tIEZ1bmN0aW9uIGZvciBzd2FwV2hpbGVEcmFnZ2luZyBvcHRpb25cclxuXHJcbiAgLy8gaWRlbnRpY2FsIHRvIGNoZWNrQ29sbGlzaW9uKCkgZXhjZXB0IHRoYXQgaGVyZSB3ZSBhZGQgYm91bmRhcmllcy5cclxuICBzdGF0aWMgY2hlY2tDb2xsaXNpb25Ud29JdGVtc0ZvclN3YXBpbmcoXHJcbiAgICBpdGVtOiBHcmlkc3Rlckl0ZW0sXHJcbiAgICBpdGVtMjogR3JpZHN0ZXJJdGVtXHJcbiAgKTogYm9vbGVhbiB7XHJcbiAgICAvLyBpZiB0aGUgY29scyBvciByb3dzIG9mIHRoZSBpdGVtcyBhcmUgMSAsIGRvZXNudCBtYWtlIGFueSBzZW5zZSB0byBzZXQgYSBib3VuZGFyeS4gT25seSBpZiB0aGUgaXRlbSBpcyBiaWdnZXIgd2Ugc2V0IGEgYm91bmRhcnlcclxuICAgIGNvbnN0IGhvcml6b250YWxCb3VuZGFyeUl0ZW0xID0gaXRlbS5jb2xzID09PSAxID8gMCA6IDE7XHJcbiAgICBjb25zdCBob3Jpem9udGFsQm91bmRhcnlJdGVtMiA9IGl0ZW0yLmNvbHMgPT09IDEgPyAwIDogMTtcclxuICAgIGNvbnN0IHZlcnRpY2FsQm91bmRhcnlJdGVtMSA9IGl0ZW0ucm93cyA9PT0gMSA/IDAgOiAxO1xyXG4gICAgY29uc3QgdmVydGljYWxCb3VuZGFyeUl0ZW0yID0gaXRlbTIucm93cyA9PT0gMSA/IDAgOiAxO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgaXRlbS54ICsgaG9yaXpvbnRhbEJvdW5kYXJ5SXRlbTEgPCBpdGVtMi54ICsgaXRlbTIuY29scyAmJlxyXG4gICAgICBpdGVtLnggKyBpdGVtLmNvbHMgPiBpdGVtMi54ICsgaG9yaXpvbnRhbEJvdW5kYXJ5SXRlbTIgJiZcclxuICAgICAgaXRlbS55ICsgdmVydGljYWxCb3VuZGFyeUl0ZW0xIDwgaXRlbTIueSArIGl0ZW0yLnJvd3MgJiZcclxuICAgICAgaXRlbS55ICsgaXRlbS5yb3dzID4gaXRlbTIueSArIHZlcnRpY2FsQm91bmRhcnlJdGVtMlxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNoZWNrQ29sbGlzaW9uVHdvSXRlbXMoaXRlbTogR3JpZHN0ZXJJdGVtLCBpdGVtMjogR3JpZHN0ZXJJdGVtKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjb2xsaXNpb24gPVxyXG4gICAgICBpdGVtLnggPCBpdGVtMi54ICsgaXRlbTIuY29scyAmJlxyXG4gICAgICBpdGVtLnggKyBpdGVtLmNvbHMgPiBpdGVtMi54ICYmXHJcbiAgICAgIGl0ZW0ueSA8IGl0ZW0yLnkgKyBpdGVtMi5yb3dzICYmXHJcbiAgICAgIGl0ZW0ueSArIGl0ZW0ucm93cyA+IGl0ZW0yLnk7XHJcbiAgICBpZiAoIWNvbGxpc2lvbikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuJG9wdGlvbnMuYWxsb3dNdWx0aUxheWVyKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGVmYXVsdExheWVySW5kZXggPSB0aGlzLiRvcHRpb25zLmRlZmF1bHRMYXllckluZGV4O1xyXG4gICAgY29uc3QgbGF5ZXJJbmRleCA9XHJcbiAgICAgIGl0ZW0ubGF5ZXJJbmRleCA9PT0gdW5kZWZpbmVkID8gZGVmYXVsdExheWVySW5kZXggOiBpdGVtLmxheWVySW5kZXg7XHJcbiAgICBjb25zdCBsYXllckluZGV4MiA9XHJcbiAgICAgIGl0ZW0yLmxheWVySW5kZXggPT09IHVuZGVmaW5lZCA/IGRlZmF1bHRMYXllckluZGV4IDogaXRlbTIubGF5ZXJJbmRleDtcclxuICAgIHJldHVybiBsYXllckluZGV4ID09PSBsYXllckluZGV4MjtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5pbml0Q2FsbGJhY2spIHtcclxuICAgICAgdGhpcy5vcHRpb25zLmluaXRDYWxsYmFjayh0aGlzKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNhbGN1bGF0ZUxheW91dCRcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDApLCB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jYWxjdWxhdGVMYXlvdXQoKSk7XHJcblxyXG4gICAgdGhpcy5yZXNpemUkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIC8vIENhbmNlbCBwcmV2aW91c2x5IHNjaGVkdWxlZCBET00gdGltZXIgaWYgYGNhbGN1bGF0ZUxheW91dCgpYCBoYXMgYmVlbiBjYWxsZWRcclxuICAgICAgICAvLyB3aXRoaW4gdGhpcyB0aW1lIHJhbmdlLlxyXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aW1lcigxMDApKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMucmVzaXplKCkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMub3B0aW9ucykge1xyXG4gICAgICB0aGlzLnNldE9wdGlvbnMoKTtcclxuICAgICAgdGhpcy5vcHRpb25zLmFwaSA9IHtcclxuICAgICAgICBvcHRpb25zQ2hhbmdlZDogdGhpcy5vcHRpb25zQ2hhbmdlZC5iaW5kKHRoaXMpLFxyXG4gICAgICAgIHJlc2l6ZTogdGhpcy5vblJlc2l6ZS5iaW5kKHRoaXMpLFxyXG4gICAgICAgIGdldE5leHRQb3NzaWJsZVBvc2l0aW9uOiB0aGlzLmdldE5leHRQb3NzaWJsZVBvc2l0aW9uLmJpbmQodGhpcyksXHJcbiAgICAgICAgZ2V0Rmlyc3RQb3NzaWJsZVBvc2l0aW9uOiB0aGlzLmdldEZpcnN0UG9zc2libGVQb3NpdGlvbi5iaW5kKHRoaXMpLFxyXG4gICAgICAgIGdldExhc3RQb3NzaWJsZVBvc2l0aW9uOiB0aGlzLmdldExhc3RQb3NzaWJsZVBvc2l0aW9uLmJpbmQodGhpcyksXHJcbiAgICAgICAgZ2V0SXRlbUNvbXBvbmVudDogKGl0ZW06IEdyaWRzdGVySXRlbSkgPT4gdGhpcy5nZXRJdGVtQ29tcG9uZW50KGl0ZW0pLFxyXG4gICAgICAgIGdldEN1cnJlbnRSb3dIZWlnaHQ6IHRoaXMuZ2V0Q3VycmVudFJvd0hlaWdodC5iaW5kKHRoaXMpXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuJG9wdGlvbnMubWluQ29scztcclxuICAgICAgdGhpcy5yb3dzID0gdGhpcy4kb3B0aW9ucy5taW5Sb3dzICsgdGhpcy4kb3B0aW9ucy5hZGRFbXB0eVJvd3NDb3VudDtcclxuICAgICAgdGhpcy5zZXRHcmlkU2l6ZSgpO1xyXG4gICAgICB0aGlzLmNhbGN1bGF0ZUxheW91dCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q3VycmVudFJvd0hlaWdodCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VyUm93SGVpZ2h0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNpemUoKTogdm9pZCB7XHJcbiAgICBsZXQgaGVpZ2h0O1xyXG4gICAgbGV0IHdpZHRoO1xyXG4gICAgaWYgKHRoaXMuJG9wdGlvbnMuZ3JpZFR5cGUgPT09ICdmaXQnICYmICF0aGlzLm1vYmlsZSkge1xyXG4gICAgICB3aWR0aCA9IHRoaXMuZWwub2Zmc2V0V2lkdGg7XHJcbiAgICAgIGhlaWdodCA9IHRoaXMuZWwub2Zmc2V0SGVpZ2h0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd2lkdGggPSB0aGlzLmVsLmNsaWVudFdpZHRoO1xyXG4gICAgICBoZWlnaHQgPSB0aGlzLmVsLmNsaWVudEhlaWdodDtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgKHdpZHRoICE9PSB0aGlzLmN1cldpZHRoIHx8IGhlaWdodCAhPT0gdGhpcy5jdXJIZWlnaHQpICYmXHJcbiAgICAgIHRoaXMuY2hlY2tJZlRvUmVzaXplKClcclxuICAgICkge1xyXG4gICAgICB0aGlzLm9uUmVzaXplKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRPcHRpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy4kb3B0aW9ucyA9IEdyaWRzdGVyVXRpbHMubWVyZ2UoXHJcbiAgICAgIHRoaXMuJG9wdGlvbnMsXHJcbiAgICAgIHRoaXMub3B0aW9ucyxcclxuICAgICAgdGhpcy4kb3B0aW9uc1xyXG4gICAgKTtcclxuICAgIGlmICghdGhpcy4kb3B0aW9ucy5kaXNhYmxlV2luZG93UmVzaXplICYmICF0aGlzLndpbmRvd1Jlc2l6ZSkge1xyXG4gICAgICB0aGlzLndpbmRvd1Jlc2l6ZSA9IHRoaXMucmVuZGVyZXIubGlzdGVuKFxyXG4gICAgICAgICd3aW5kb3cnLFxyXG4gICAgICAgICdyZXNpemUnLFxyXG4gICAgICAgIHRoaXMub25SZXNpemVcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy4kb3B0aW9ucy5kaXNhYmxlV2luZG93UmVzaXplICYmIHRoaXMud2luZG93UmVzaXplKSB7XHJcbiAgICAgIHRoaXMud2luZG93UmVzaXplKCk7XHJcbiAgICAgIHRoaXMud2luZG93UmVzaXplID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZW1wdHlDZWxsLnVwZGF0ZU9wdGlvbnMoKTtcclxuICB9XHJcblxyXG4gIG9wdGlvbnNDaGFuZ2VkID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy5zZXRPcHRpb25zKCk7XHJcbiAgICBsZXQgd2lkZ2V0c0luZGV4OiBudW1iZXIgPSB0aGlzLmdyaWQubGVuZ3RoIC0gMTtcclxuICAgIGxldCB3aWRnZXQ6IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZTtcclxuICAgIGZvciAoOyB3aWRnZXRzSW5kZXggPj0gMDsgd2lkZ2V0c0luZGV4LS0pIHtcclxuICAgICAgd2lkZ2V0ID0gdGhpcy5ncmlkW3dpZGdldHNJbmRleF07XHJcbiAgICAgIHdpZGdldC51cGRhdGVPcHRpb25zKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNhbGN1bGF0ZUxheW91dCgpO1xyXG4gIH07XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLnByZXZpZXdTdHlsZSQuY29tcGxldGUoKTtcclxuICAgIGlmICh0aGlzLndpbmRvd1Jlc2l6ZSkge1xyXG4gICAgICB0aGlzLndpbmRvd1Jlc2l6ZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMuZGVzdHJveUNhbGxiYWNrKSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5kZXN0cm95Q2FsbGJhY2sodGhpcyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5hcGkpIHtcclxuICAgICAgdGhpcy5vcHRpb25zLmFwaS5yZXNpemUgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5hcGkub3B0aW9uc0NoYW5nZWQgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5hcGkuZ2V0TmV4dFBvc3NpYmxlUG9zaXRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5hcGkgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmVtcHR5Q2VsbC5kZXN0cm95KCk7XHJcbiAgICB0aGlzLmVtcHR5Q2VsbCA9IG51bGwhO1xyXG4gICAgdGhpcy5jb21wYWN0LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuY29tcGFjdCA9IG51bGwhO1xyXG4gIH1cclxuXHJcbiAgb25SZXNpemUgPSAoKTogdm9pZCA9PiB7XHJcbiAgICBpZiAodGhpcy5lbC5jbGllbnRXaWR0aCkge1xyXG4gICAgICBpZiAodGhpcy5vcHRpb25zLnNldEdyaWRTaXplKSB7XHJcbiAgICAgICAgLy8gcmVzZXQgd2lkdGgvaGVpZ2h0IHNvIHRoZSBzaXplIGlzIHJlY2FsY3VsYXRlZCBhZnRlcndhcmRzXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLCAnd2lkdGgnLCAnJyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLCAnaGVpZ2h0JywgJycpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2V0R3JpZFNpemUoKTtcclxuICAgICAgdGhpcy5jYWxjdWxhdGVMYXlvdXQoKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBjaGVja0lmVG9SZXNpemUoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjbGllbnRXaWR0aCA9IHRoaXMuZWwuY2xpZW50V2lkdGg7XHJcbiAgICBjb25zdCBvZmZzZXRXaWR0aCA9IHRoaXMuZWwub2Zmc2V0V2lkdGg7XHJcbiAgICBjb25zdCBzY3JvbGxXaWR0aCA9IHRoaXMuZWwuc2Nyb2xsV2lkdGg7XHJcbiAgICBjb25zdCBjbGllbnRIZWlnaHQgPSB0aGlzLmVsLmNsaWVudEhlaWdodDtcclxuICAgIGNvbnN0IG9mZnNldEhlaWdodCA9IHRoaXMuZWwub2Zmc2V0SGVpZ2h0O1xyXG4gICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID0gdGhpcy5lbC5zY3JvbGxIZWlnaHQ7XHJcbiAgICBjb25zdCB2ZXJ0aWNhbFNjcm9sbFByZXNlbnQgPVxyXG4gICAgICBjbGllbnRXaWR0aCA8IG9mZnNldFdpZHRoICYmXHJcbiAgICAgIHNjcm9sbEhlaWdodCA+IG9mZnNldEhlaWdodCAmJlxyXG4gICAgICBzY3JvbGxIZWlnaHQgLSBvZmZzZXRIZWlnaHQgPCBvZmZzZXRXaWR0aCAtIGNsaWVudFdpZHRoO1xyXG4gICAgY29uc3QgaG9yaXpvbnRhbFNjcm9sbFByZXNlbnQgPVxyXG4gICAgICBjbGllbnRIZWlnaHQgPCBvZmZzZXRIZWlnaHQgJiZcclxuICAgICAgc2Nyb2xsV2lkdGggPiBvZmZzZXRXaWR0aCAmJlxyXG4gICAgICBzY3JvbGxXaWR0aCAtIG9mZnNldFdpZHRoIDwgb2Zmc2V0SGVpZ2h0IC0gY2xpZW50SGVpZ2h0O1xyXG4gICAgaWYgKHZlcnRpY2FsU2Nyb2xsUHJlc2VudCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gIWhvcml6b250YWxTY3JvbGxQcmVzZW50O1xyXG4gIH1cclxuXHJcbiAgY2hlY2tJZk1vYmlsZSgpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLiRvcHRpb25zLnVzZUJvZHlGb3JCcmVha3BvaW50KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLiRvcHRpb25zLm1vYmlsZUJyZWFrcG9pbnQgPiBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuJG9wdGlvbnMubW9iaWxlQnJlYWtwb2ludCA+IHRoaXMuY3VyV2lkdGg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRHcmlkU2l6ZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGVsID0gdGhpcy5lbDtcclxuICAgIGxldCB3aWR0aDtcclxuICAgIGxldCBoZWlnaHQ7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuJG9wdGlvbnMuc2V0R3JpZFNpemUgfHxcclxuICAgICAgKHRoaXMuJG9wdGlvbnMuZ3JpZFR5cGUgPT09IEdyaWRUeXBlLkZpdCAmJiAhdGhpcy5tb2JpbGUpXHJcbiAgICApIHtcclxuICAgICAgd2lkdGggPSBlbC5vZmZzZXRXaWR0aDtcclxuICAgICAgaGVpZ2h0ID0gZWwub2Zmc2V0SGVpZ2h0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd2lkdGggPSBlbC5jbGllbnRXaWR0aDtcclxuICAgICAgaGVpZ2h0ID0gZWwuY2xpZW50SGVpZ2h0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5jdXJXaWR0aCA9IHdpZHRoO1xyXG4gICAgdGhpcy5jdXJIZWlnaHQgPSBoZWlnaHQ7XHJcbiAgfVxyXG5cclxuICBzZXRHcmlkRGltZW5zaW9ucygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0R3JpZFNpemUoKTtcclxuICAgIGlmICghdGhpcy5tb2JpbGUgJiYgdGhpcy5jaGVja0lmTW9iaWxlKCkpIHtcclxuICAgICAgdGhpcy5tb2JpbGUgPSAhdGhpcy5tb2JpbGU7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbCwgJ21vYmlsZScpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm1vYmlsZSAmJiAhdGhpcy5jaGVja0lmTW9iaWxlKCkpIHtcclxuICAgICAgdGhpcy5tb2JpbGUgPSAhdGhpcy5tb2JpbGU7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbCwgJ21vYmlsZScpO1xyXG4gICAgfVxyXG4gICAgbGV0IHJvd3MgPSB0aGlzLiRvcHRpb25zLm1pblJvd3M7XHJcbiAgICBsZXQgY29sdW1ucyA9IHRoaXMuJG9wdGlvbnMubWluQ29scztcclxuXHJcbiAgICBsZXQgd2lkZ2V0c0luZGV4ID0gdGhpcy5ncmlkLmxlbmd0aCAtIDE7XHJcbiAgICBsZXQgd2lkZ2V0O1xyXG4gICAgZm9yICg7IHdpZGdldHNJbmRleCA+PSAwOyB3aWRnZXRzSW5kZXgtLSkge1xyXG4gICAgICB3aWRnZXQgPSB0aGlzLmdyaWRbd2lkZ2V0c0luZGV4XTtcclxuICAgICAgaWYgKCF3aWRnZXQubm90UGxhY2VkKSB7XHJcbiAgICAgICAgcm93cyA9IE1hdGgubWF4KHJvd3MsIHdpZGdldC4kaXRlbS55ICsgd2lkZ2V0LiRpdGVtLnJvd3MpO1xyXG4gICAgICAgIGNvbHVtbnMgPSBNYXRoLm1heChjb2x1bW5zLCB3aWRnZXQuJGl0ZW0ueCArIHdpZGdldC4kaXRlbS5jb2xzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcm93cyArPSB0aGlzLiRvcHRpb25zLmFkZEVtcHR5Um93c0NvdW50O1xyXG4gICAgaWYgKHRoaXMuY29sdW1ucyAhPT0gY29sdW1ucyB8fCB0aGlzLnJvd3MgIT09IHJvd3MpIHtcclxuICAgICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcclxuICAgICAgdGhpcy5yb3dzID0gcm93cztcclxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5ncmlkU2l6ZUNoYW5nZWRDYWxsYmFjaykge1xyXG4gICAgICAgIHRoaXMub3B0aW9ucy5ncmlkU2l6ZUNoYW5nZWRDYWxsYmFjayh0aGlzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYWxjdWxhdGVMYXlvdXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb21wYWN0KSB7XHJcbiAgICAgIHRoaXMuY29tcGFjdC5jaGVja0NvbXBhY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldEdyaWREaW1lbnNpb25zKCk7XHJcbiAgICBpZiAodGhpcy4kb3B0aW9ucy5vdXRlck1hcmdpbikge1xyXG4gICAgICBsZXQgbWFyZ2luV2lkdGggPSAtdGhpcy4kb3B0aW9ucy5tYXJnaW47XHJcbiAgICAgIGlmICh0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luTGVmdCAhPT0gbnVsbCkge1xyXG4gICAgICAgIG1hcmdpbldpZHRoICs9IHRoaXMuJG9wdGlvbnMub3V0ZXJNYXJnaW5MZWZ0O1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXHJcbiAgICAgICAgICB0aGlzLmVsLFxyXG4gICAgICAgICAgJ3BhZGRpbmctbGVmdCcsXHJcbiAgICAgICAgICB0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luTGVmdCArICdweCdcclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG1hcmdpbldpZHRoICs9IHRoaXMuJG9wdGlvbnMubWFyZ2luO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXHJcbiAgICAgICAgICB0aGlzLmVsLFxyXG4gICAgICAgICAgJ3BhZGRpbmctbGVmdCcsXHJcbiAgICAgICAgICB0aGlzLiRvcHRpb25zLm1hcmdpbiArICdweCdcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luUmlnaHQgIT09IG51bGwpIHtcclxuICAgICAgICBtYXJnaW5XaWR0aCArPSB0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luUmlnaHQ7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgIHRoaXMuZWwsXHJcbiAgICAgICAgICAncGFkZGluZy1yaWdodCcsXHJcbiAgICAgICAgICB0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luUmlnaHQgKyAncHgnXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBtYXJnaW5XaWR0aCArPSB0aGlzLiRvcHRpb25zLm1hcmdpbjtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxyXG4gICAgICAgICAgdGhpcy5lbCxcclxuICAgICAgICAgICdwYWRkaW5nLXJpZ2h0JyxcclxuICAgICAgICAgIHRoaXMuJG9wdGlvbnMubWFyZ2luICsgJ3B4J1xyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jdXJDb2xXaWR0aCA9ICh0aGlzLmN1cldpZHRoIC0gbWFyZ2luV2lkdGgpIC8gdGhpcy5jb2x1bW5zO1xyXG4gICAgICBsZXQgbWFyZ2luSGVpZ2h0ID0gLXRoaXMuJG9wdGlvbnMubWFyZ2luO1xyXG4gICAgICBpZiAodGhpcy4kb3B0aW9ucy5vdXRlck1hcmdpblRvcCAhPT0gbnVsbCkge1xyXG4gICAgICAgIG1hcmdpbkhlaWdodCArPSB0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luVG9wO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXHJcbiAgICAgICAgICB0aGlzLmVsLFxyXG4gICAgICAgICAgJ3BhZGRpbmctdG9wJyxcclxuICAgICAgICAgIHRoaXMuJG9wdGlvbnMub3V0ZXJNYXJnaW5Ub3AgKyAncHgnXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBtYXJnaW5IZWlnaHQgKz0gdGhpcy4kb3B0aW9ucy5tYXJnaW47XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgIHRoaXMuZWwsXHJcbiAgICAgICAgICAncGFkZGluZy10b3AnLFxyXG4gICAgICAgICAgdGhpcy4kb3B0aW9ucy5tYXJnaW4gKyAncHgnXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy4kb3B0aW9ucy5vdXRlck1hcmdpbkJvdHRvbSAhPT0gbnVsbCkge1xyXG4gICAgICAgIG1hcmdpbkhlaWdodCArPSB0aGlzLiRvcHRpb25zLm91dGVyTWFyZ2luQm90dG9tO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXHJcbiAgICAgICAgICB0aGlzLmVsLFxyXG4gICAgICAgICAgJ3BhZGRpbmctYm90dG9tJyxcclxuICAgICAgICAgIHRoaXMuJG9wdGlvbnMub3V0ZXJNYXJnaW5Cb3R0b20gKyAncHgnXHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBtYXJnaW5IZWlnaHQgKz0gdGhpcy4kb3B0aW9ucy5tYXJnaW47XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgIHRoaXMuZWwsXHJcbiAgICAgICAgICAncGFkZGluZy1ib3R0b20nLFxyXG4gICAgICAgICAgdGhpcy4kb3B0aW9ucy5tYXJnaW4gKyAncHgnXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmN1clJvd0hlaWdodCA9XHJcbiAgICAgICAgKCh0aGlzLmN1ckhlaWdodCAtIG1hcmdpbkhlaWdodCkgLyB0aGlzLnJvd3MpICpcclxuICAgICAgICB0aGlzLiRvcHRpb25zLnJvd0hlaWdodFJhdGlvO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJDb2xXaWR0aCA9ICh0aGlzLmN1cldpZHRoICsgdGhpcy4kb3B0aW9ucy5tYXJnaW4pIC8gdGhpcy5jb2x1bW5zO1xyXG4gICAgICB0aGlzLmN1clJvd0hlaWdodCA9XHJcbiAgICAgICAgKCh0aGlzLmN1ckhlaWdodCArIHRoaXMuJG9wdGlvbnMubWFyZ2luKSAvIHRoaXMucm93cykgKlxyXG4gICAgICAgIHRoaXMuJG9wdGlvbnMucm93SGVpZ2h0UmF0aW87XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbCwgJ3BhZGRpbmctbGVmdCcsIDAgKyAncHgnKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLCAncGFkZGluZy1yaWdodCcsIDAgKyAncHgnKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLCAncGFkZGluZy10b3AnLCAwICsgJ3B4Jyk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbCwgJ3BhZGRpbmctYm90dG9tJywgMCArICdweCcpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ncmlkUmVuZGVyZXIudXBkYXRlR3JpZHN0ZXIoKTtcclxuXHJcbiAgICBpZiAodGhpcy4kb3B0aW9ucy5zZXRHcmlkU2l6ZSkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwsICdncmlkU2l6ZScpO1xyXG4gICAgICBpZiAoIXRoaXMubW9iaWxlKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgIHRoaXMuZWwsXHJcbiAgICAgICAgICAnd2lkdGgnLFxyXG4gICAgICAgICAgdGhpcy5jb2x1bW5zICogdGhpcy5jdXJDb2xXaWR0aCArIHRoaXMuJG9wdGlvbnMubWFyZ2luICsgJ3B4J1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgIHRoaXMuZWwsXHJcbiAgICAgICAgICAnaGVpZ2h0JyxcclxuICAgICAgICAgIHRoaXMucm93cyAqIHRoaXMuY3VyUm93SGVpZ2h0ICsgdGhpcy4kb3B0aW9ucy5tYXJnaW4gKyAncHgnXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLCAnZ3JpZFNpemUnKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLCAnd2lkdGgnLCAnJyk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbCwgJ2hlaWdodCcsICcnKTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlR3JpZCgpO1xyXG5cclxuICAgIGxldCB3aWRnZXRzSW5kZXg6IG51bWJlciA9IHRoaXMuZ3JpZC5sZW5ndGggLSAxO1xyXG4gICAgbGV0IHdpZGdldDogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlO1xyXG4gICAgZm9yICg7IHdpZGdldHNJbmRleCA+PSAwOyB3aWRnZXRzSW5kZXgtLSkge1xyXG4gICAgICB3aWRnZXQgPSB0aGlzLmdyaWRbd2lkZ2V0c0luZGV4XTtcclxuICAgICAgd2lkZ2V0LnNldFNpemUoKTtcclxuICAgICAgd2lkZ2V0LmRyYWcudG9nZ2xlKCk7XHJcbiAgICAgIHdpZGdldC5yZXNpemUudG9nZ2xlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5yZXNpemUkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUdyaWQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy4kb3B0aW9ucy5kaXNwbGF5R3JpZCA9PT0gJ2Fsd2F5cycgJiYgIXRoaXMubW9iaWxlKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbCwgJ2Rpc3BsYXktZ3JpZCcpO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgdGhpcy4kb3B0aW9ucy5kaXNwbGF5R3JpZCA9PT0gJ29uRHJhZyZSZXNpemUnICYmXHJcbiAgICAgIHRoaXMuZHJhZ0luUHJvZ3Jlc3NcclxuICAgICkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwsICdkaXNwbGF5LWdyaWQnKTtcclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHRoaXMuJG9wdGlvbnMuZGlzcGxheUdyaWQgPT09ICdub25lJyB8fFxyXG4gICAgICAhdGhpcy5kcmFnSW5Qcm9ncmVzcyB8fFxyXG4gICAgICB0aGlzLm1vYmlsZVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbCwgJ2Rpc3BsYXktZ3JpZCcpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRHcmlkRGltZW5zaW9ucygpO1xyXG4gICAgdGhpcy5ncmlkQ29sdW1ucy5sZW5ndGggPSBHcmlkc3RlckNvbXBvbmVudC5nZXROZXdBcnJheUxlbmd0aChcclxuICAgICAgdGhpcy5jb2x1bW5zLFxyXG4gICAgICB0aGlzLmN1cldpZHRoLFxyXG4gICAgICB0aGlzLmN1ckNvbFdpZHRoXHJcbiAgICApO1xyXG4gICAgdGhpcy5ncmlkUm93cy5sZW5ndGggPSBHcmlkc3RlckNvbXBvbmVudC5nZXROZXdBcnJheUxlbmd0aChcclxuICAgICAgdGhpcy5yb3dzLFxyXG4gICAgICB0aGlzLmN1ckhlaWdodCxcclxuICAgICAgdGhpcy5jdXJSb3dIZWlnaHRcclxuICAgICk7XHJcbiAgICB0aGlzLmNkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgYWRkSXRlbShpdGVtQ29tcG9uZW50OiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2UpOiB2b2lkIHtcclxuICAgIGlmIChpdGVtQ29tcG9uZW50LiRpdGVtLmNvbHMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpdGVtQ29tcG9uZW50LiRpdGVtLmNvbHMgPSB0aGlzLiRvcHRpb25zLmRlZmF1bHRJdGVtQ29scztcclxuICAgICAgaXRlbUNvbXBvbmVudC5pdGVtLmNvbHMgPSBpdGVtQ29tcG9uZW50LiRpdGVtLmNvbHM7XHJcbiAgICAgIGl0ZW1Db21wb25lbnQuaXRlbUNoYW5nZWQoKTtcclxuICAgIH1cclxuICAgIGlmIChpdGVtQ29tcG9uZW50LiRpdGVtLnJvd3MgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBpdGVtQ29tcG9uZW50LiRpdGVtLnJvd3MgPSB0aGlzLiRvcHRpb25zLmRlZmF1bHRJdGVtUm93cztcclxuICAgICAgaXRlbUNvbXBvbmVudC5pdGVtLnJvd3MgPSBpdGVtQ29tcG9uZW50LiRpdGVtLnJvd3M7XHJcbiAgICAgIGl0ZW1Db21wb25lbnQuaXRlbUNoYW5nZWQoKTtcclxuICAgIH1cclxuICAgIGlmIChpdGVtQ29tcG9uZW50LiRpdGVtLnggPT09IC0xIHx8IGl0ZW1Db21wb25lbnQuJGl0ZW0ueSA9PT0gLTEpIHtcclxuICAgICAgdGhpcy5hdXRvUG9zaXRpb25JdGVtKGl0ZW1Db21wb25lbnQpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNoZWNrQ29sbGlzaW9uKGl0ZW1Db21wb25lbnQuJGl0ZW0pKSB7XHJcbiAgICAgIGlmICghdGhpcy4kb3B0aW9ucy5kaXNhYmxlV2FybmluZ3MpIHtcclxuICAgICAgICBpdGVtQ29tcG9uZW50Lm5vdFBsYWNlZCA9IHRydWU7XHJcbiAgICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICAgXCJDYW4ndCBiZSBwbGFjZWQgaW4gdGhlIGJvdW5kcyBvZiB0aGUgZGFzaGJvYXJkLCB0cnlpbmcgdG8gYXV0byBwb3NpdGlvbiEvblwiICtcclxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGl0ZW1Db21wb25lbnQuaXRlbSwgWydjb2xzJywgJ3Jvd3MnLCAneCcsICd5J10pXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIXRoaXMuJG9wdGlvbnMuZGlzYWJsZUF1dG9Qb3NpdGlvbk9uQ29uZmxpY3QpIHtcclxuICAgICAgICB0aGlzLmF1dG9Qb3NpdGlvbkl0ZW0oaXRlbUNvbXBvbmVudCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaXRlbUNvbXBvbmVudC5ub3RQbGFjZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmdyaWQucHVzaChpdGVtQ29tcG9uZW50KTtcclxuICAgIHRoaXMuY2FsY3VsYXRlTGF5b3V0JC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICByZW1vdmVJdGVtKGl0ZW1Db21wb25lbnQ6IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZSk6IHZvaWQge1xyXG4gICAgdGhpcy5ncmlkLnNwbGljZSh0aGlzLmdyaWQuaW5kZXhPZihpdGVtQ29tcG9uZW50KSwgMSk7XHJcbiAgICB0aGlzLmNhbGN1bGF0ZUxheW91dCQubmV4dCgpO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5pdGVtUmVtb3ZlZENhbGxiYWNrKSB7XHJcbiAgICAgIHRoaXMub3B0aW9ucy5pdGVtUmVtb3ZlZENhbGxiYWNrKGl0ZW1Db21wb25lbnQuaXRlbSwgaXRlbUNvbXBvbmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0NvbGxpc2lvbihpdGVtOiBHcmlkc3Rlckl0ZW0pOiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2UgfCBib29sZWFuIHtcclxuICAgIGxldCBjb2xsaXNpb246IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZSB8IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuaXRlbVZhbGlkYXRlQ2FsbGJhY2spIHtcclxuICAgICAgY29sbGlzaW9uID0gIXRoaXMub3B0aW9ucy5pdGVtVmFsaWRhdGVDYWxsYmFjayhpdGVtKTtcclxuICAgIH1cclxuICAgIGlmICghY29sbGlzaW9uICYmIHRoaXMuY2hlY2tHcmlkQ29sbGlzaW9uKGl0ZW0pKSB7XHJcbiAgICAgIGNvbGxpc2lvbiA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoIWNvbGxpc2lvbikge1xyXG4gICAgICBjb25zdCBjID0gdGhpcy5maW5kSXRlbVdpdGhJdGVtKGl0ZW0pO1xyXG4gICAgICBpZiAoYykge1xyXG4gICAgICAgIGNvbGxpc2lvbiA9IGM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjb2xsaXNpb247XHJcbiAgfVxyXG5cclxuICBjaGVja0dyaWRDb2xsaXNpb24oaXRlbTogR3JpZHN0ZXJJdGVtKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBub05lZ2F0aXZlUG9zaXRpb24gPSBpdGVtLnkgPiAtMSAmJiBpdGVtLnggPiAtMTtcclxuICAgIGNvbnN0IG1heEdyaWRDb2xzID0gaXRlbS5jb2xzICsgaXRlbS54IDw9IHRoaXMuJG9wdGlvbnMubWF4Q29scztcclxuICAgIGNvbnN0IG1heEdyaWRSb3dzID0gaXRlbS5yb3dzICsgaXRlbS55IDw9IHRoaXMuJG9wdGlvbnMubWF4Um93cztcclxuICAgIGNvbnN0IG1heEl0ZW1Db2xzID1cclxuICAgICAgaXRlbS5tYXhJdGVtQ29scyA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyB0aGlzLiRvcHRpb25zLm1heEl0ZW1Db2xzXHJcbiAgICAgICAgOiBpdGVtLm1heEl0ZW1Db2xzO1xyXG4gICAgY29uc3QgbWluSXRlbUNvbHMgPVxyXG4gICAgICBpdGVtLm1pbkl0ZW1Db2xzID09PSB1bmRlZmluZWRcclxuICAgICAgICA/IHRoaXMuJG9wdGlvbnMubWluSXRlbUNvbHNcclxuICAgICAgICA6IGl0ZW0ubWluSXRlbUNvbHM7XHJcbiAgICBjb25zdCBtYXhJdGVtUm93cyA9XHJcbiAgICAgIGl0ZW0ubWF4SXRlbVJvd3MgPT09IHVuZGVmaW5lZFxyXG4gICAgICAgID8gdGhpcy4kb3B0aW9ucy5tYXhJdGVtUm93c1xyXG4gICAgICAgIDogaXRlbS5tYXhJdGVtUm93cztcclxuICAgIGNvbnN0IG1pbkl0ZW1Sb3dzID1cclxuICAgICAgaXRlbS5taW5JdGVtUm93cyA9PT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyB0aGlzLiRvcHRpb25zLm1pbkl0ZW1Sb3dzXHJcbiAgICAgICAgOiBpdGVtLm1pbkl0ZW1Sb3dzO1xyXG4gICAgY29uc3QgaW5Db2xzTGltaXRzID0gaXRlbS5jb2xzIDw9IG1heEl0ZW1Db2xzICYmIGl0ZW0uY29scyA+PSBtaW5JdGVtQ29scztcclxuICAgIGNvbnN0IGluUm93c0xpbWl0cyA9IGl0ZW0ucm93cyA8PSBtYXhJdGVtUm93cyAmJiBpdGVtLnJvd3MgPj0gbWluSXRlbVJvd3M7XHJcbiAgICBjb25zdCBtaW5BcmVhTGltaXQgPVxyXG4gICAgICBpdGVtLm1pbkl0ZW1BcmVhID09PSB1bmRlZmluZWRcclxuICAgICAgICA/IHRoaXMuJG9wdGlvbnMubWluSXRlbUFyZWFcclxuICAgICAgICA6IGl0ZW0ubWluSXRlbUFyZWE7XHJcbiAgICBjb25zdCBtYXhBcmVhTGltaXQgPVxyXG4gICAgICBpdGVtLm1heEl0ZW1BcmVhID09PSB1bmRlZmluZWRcclxuICAgICAgICA/IHRoaXMuJG9wdGlvbnMubWF4SXRlbUFyZWFcclxuICAgICAgICA6IGl0ZW0ubWF4SXRlbUFyZWE7XHJcbiAgICBjb25zdCBhcmVhID0gaXRlbS5jb2xzICogaXRlbS5yb3dzO1xyXG4gICAgY29uc3QgaW5NaW5BcmVhID0gbWluQXJlYUxpbWl0IDw9IGFyZWE7XHJcbiAgICBjb25zdCBpbk1heEFyZWEgPSBtYXhBcmVhTGltaXQgPj0gYXJlYTtcclxuICAgIHJldHVybiAhKFxyXG4gICAgICBub05lZ2F0aXZlUG9zaXRpb24gJiZcclxuICAgICAgbWF4R3JpZENvbHMgJiZcclxuICAgICAgbWF4R3JpZFJvd3MgJiZcclxuICAgICAgaW5Db2xzTGltaXRzICYmXHJcbiAgICAgIGluUm93c0xpbWl0cyAmJlxyXG4gICAgICBpbk1pbkFyZWEgJiZcclxuICAgICAgaW5NYXhBcmVhXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmluZEl0ZW1XaXRoSXRlbShcclxuICAgIGl0ZW06IEdyaWRzdGVySXRlbVxyXG4gICk6IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZSB8IGJvb2xlYW4ge1xyXG4gICAgbGV0IHdpZGdldHNJbmRleCA9IDA7XHJcbiAgICBsZXQgd2lkZ2V0OiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2U7XHJcbiAgICBmb3IgKDsgd2lkZ2V0c0luZGV4IDwgdGhpcy5ncmlkLmxlbmd0aDsgd2lkZ2V0c0luZGV4KyspIHtcclxuICAgICAgd2lkZ2V0ID0gdGhpcy5ncmlkW3dpZGdldHNJbmRleF07XHJcbiAgICAgIGlmIChcclxuICAgICAgICB3aWRnZXQuJGl0ZW0gIT09IGl0ZW0gJiZcclxuICAgICAgICB0aGlzLmNoZWNrQ29sbGlzaW9uVHdvSXRlbXMod2lkZ2V0LiRpdGVtLCBpdGVtKVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gd2lkZ2V0O1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBmaW5kSXRlbXNXaXRoSXRlbShpdGVtOiBHcmlkc3Rlckl0ZW0pOiBBcnJheTxHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2U+IHtcclxuICAgIGNvbnN0IGE6IEFycmF5PEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZT4gPSBbXTtcclxuICAgIGxldCB3aWRnZXRzSW5kZXggPSAwO1xyXG4gICAgbGV0IHdpZGdldDogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlO1xyXG4gICAgZm9yICg7IHdpZGdldHNJbmRleCA8IHRoaXMuZ3JpZC5sZW5ndGg7IHdpZGdldHNJbmRleCsrKSB7XHJcbiAgICAgIHdpZGdldCA9IHRoaXMuZ3JpZFt3aWRnZXRzSW5kZXhdO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgd2lkZ2V0LiRpdGVtICE9PSBpdGVtICYmXHJcbiAgICAgICAgdGhpcy5jaGVja0NvbGxpc2lvblR3b0l0ZW1zKHdpZGdldC4kaXRlbSwgaXRlbSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgYS5wdXNoKHdpZGdldCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBhO1xyXG4gIH1cclxuXHJcbiAgYXV0b1Bvc2l0aW9uSXRlbShpdGVtQ29tcG9uZW50OiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2UpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmdldE5leHRQb3NzaWJsZVBvc2l0aW9uKGl0ZW1Db21wb25lbnQuJGl0ZW0pKSB7XHJcbiAgICAgIGl0ZW1Db21wb25lbnQubm90UGxhY2VkID0gZmFsc2U7XHJcbiAgICAgIGl0ZW1Db21wb25lbnQuaXRlbS54ID0gaXRlbUNvbXBvbmVudC4kaXRlbS54O1xyXG4gICAgICBpdGVtQ29tcG9uZW50Lml0ZW0ueSA9IGl0ZW1Db21wb25lbnQuJGl0ZW0ueTtcclxuICAgICAgaXRlbUNvbXBvbmVudC5pdGVtQ2hhbmdlZCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbUNvbXBvbmVudC5ub3RQbGFjZWQgPSB0cnVlO1xyXG4gICAgICBpZiAoIXRoaXMuJG9wdGlvbnMuZGlzYWJsZVdhcm5pbmdzKSB7XHJcbiAgICAgICAgY29uc29sZS53YXJuKFxyXG4gICAgICAgICAgXCJDYW4ndCBiZSBwbGFjZWQgaW4gdGhlIGJvdW5kcyBvZiB0aGUgZGFzaGJvYXJkIS9uXCIgK1xyXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoaXRlbUNvbXBvbmVudC5pdGVtLCBbJ2NvbHMnLCAncm93cycsICd4JywgJ3knXSlcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXROZXh0UG9zc2libGVQb3NpdGlvbiA9IChcclxuICAgIG5ld0l0ZW06IEdyaWRzdGVySXRlbSxcclxuICAgIHN0YXJ0aW5nRnJvbTogeyB5PzogbnVtYmVyOyB4PzogbnVtYmVyIH0gPSB7fVxyXG4gICk6IGJvb2xlYW4gPT4ge1xyXG4gICAgaWYgKG5ld0l0ZW0uY29scyA9PT0gLTEpIHtcclxuICAgICAgbmV3SXRlbS5jb2xzID0gdGhpcy4kb3B0aW9ucy5kZWZhdWx0SXRlbUNvbHM7XHJcbiAgICB9XHJcbiAgICBpZiAobmV3SXRlbS5yb3dzID09PSAtMSkge1xyXG4gICAgICBuZXdJdGVtLnJvd3MgPSB0aGlzLiRvcHRpb25zLmRlZmF1bHRJdGVtUm93cztcclxuICAgIH1cclxuICAgIHRoaXMuc2V0R3JpZERpbWVuc2lvbnMoKTtcclxuICAgIGxldCByb3dzSW5kZXggPSBzdGFydGluZ0Zyb20ueSB8fCAwO1xyXG4gICAgbGV0IGNvbHNJbmRleDtcclxuICAgIGZvciAoOyByb3dzSW5kZXggPCB0aGlzLnJvd3M7IHJvd3NJbmRleCsrKSB7XHJcbiAgICAgIG5ld0l0ZW0ueSA9IHJvd3NJbmRleDtcclxuICAgICAgY29sc0luZGV4ID0gc3RhcnRpbmdGcm9tLnggfHwgMDtcclxuICAgICAgZm9yICg7IGNvbHNJbmRleCA8IHRoaXMuY29sdW1uczsgY29sc0luZGV4KyspIHtcclxuICAgICAgICBuZXdJdGVtLnggPSBjb2xzSW5kZXg7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNoZWNrQ29sbGlzaW9uKG5ld0l0ZW0pKSB7XHJcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGNhbkFkZFRvUm93cyA9IHRoaXMuJG9wdGlvbnMubWF4Um93cyA+PSB0aGlzLnJvd3MgKyBuZXdJdGVtLnJvd3M7XHJcbiAgICBjb25zdCBjYW5BZGRUb0NvbHVtbnMgPVxyXG4gICAgICB0aGlzLiRvcHRpb25zLm1heENvbHMgPj0gdGhpcy5jb2x1bW5zICsgbmV3SXRlbS5jb2xzO1xyXG4gICAgY29uc3QgYWRkVG9Sb3dzID0gdGhpcy5yb3dzIDw9IHRoaXMuY29sdW1ucyAmJiBjYW5BZGRUb1Jvd3M7XHJcbiAgICBpZiAoIWFkZFRvUm93cyAmJiBjYW5BZGRUb0NvbHVtbnMpIHtcclxuICAgICAgbmV3SXRlbS54ID0gdGhpcy5jb2x1bW5zO1xyXG4gICAgICBuZXdJdGVtLnkgPSAwO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSBpZiAoY2FuQWRkVG9Sb3dzKSB7XHJcbiAgICAgIG5ld0l0ZW0ueSA9IHRoaXMucm93cztcclxuICAgICAgbmV3SXRlbS54ID0gMDtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfTtcclxuXHJcbiAgZ2V0Rmlyc3RQb3NzaWJsZVBvc2l0aW9uID0gKGl0ZW06IEdyaWRzdGVySXRlbSk6IEdyaWRzdGVySXRlbSA9PiB7XHJcbiAgICBjb25zdCB0bXBJdGVtID0gT2JqZWN0LmFzc2lnbih7fSwgaXRlbSk7XHJcbiAgICB0aGlzLmdldE5leHRQb3NzaWJsZVBvc2l0aW9uKHRtcEl0ZW0pO1xyXG4gICAgcmV0dXJuIHRtcEl0ZW07XHJcbiAgfTtcclxuXHJcbiAgZ2V0TGFzdFBvc3NpYmxlUG9zaXRpb24gPSAoaXRlbTogR3JpZHN0ZXJJdGVtKTogR3JpZHN0ZXJJdGVtID0+IHtcclxuICAgIGxldCBmYXJ0aGVzdEl0ZW06IHsgeTogbnVtYmVyOyB4OiBudW1iZXIgfSA9IHsgeTogMCwgeDogMCB9O1xyXG4gICAgZmFydGhlc3RJdGVtID0gdGhpcy5ncmlkLnJlZHVjZShcclxuICAgICAgKFxyXG4gICAgICAgIHByZXY6IHsgeTogbnVtYmVyOyB4OiBudW1iZXIgfSxcclxuICAgICAgICBjdXJyOiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2VcclxuICAgICAgKSA9PiB7XHJcbiAgICAgICAgY29uc3QgY3VyckNvb3JkcyA9IHtcclxuICAgICAgICAgIHk6IGN1cnIuJGl0ZW0ueSArIGN1cnIuJGl0ZW0ucm93cyAtIDEsXHJcbiAgICAgICAgICB4OiBjdXJyLiRpdGVtLnggKyBjdXJyLiRpdGVtLmNvbHMgLSAxXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAoR3JpZHN0ZXJVdGlscy5jb21wYXJlSXRlbXMocHJldiwgY3VyckNvb3JkcykgPT09IDEpIHtcclxuICAgICAgICAgIHJldHVybiBjdXJyQ29vcmRzO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gcHJldjtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGZhcnRoZXN0SXRlbVxyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCB0bXBJdGVtID0gT2JqZWN0LmFzc2lnbih7fSwgaXRlbSk7XHJcbiAgICB0aGlzLmdldE5leHRQb3NzaWJsZVBvc2l0aW9uKHRtcEl0ZW0sIGZhcnRoZXN0SXRlbSk7XHJcbiAgICByZXR1cm4gdG1wSXRlbTtcclxuICB9O1xyXG5cclxuICBwaXhlbHNUb1Bvc2l0aW9uWChcclxuICAgIHg6IG51bWJlcixcclxuICAgIHJvdW5kaW5nTWV0aG9kOiAoeDogbnVtYmVyKSA9PiBudW1iZXIsXHJcbiAgICBub0xpbWl0PzogYm9vbGVhblxyXG4gICk6IG51bWJlciB7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHJvdW5kaW5nTWV0aG9kKHggLyB0aGlzLmN1ckNvbFdpZHRoKTtcclxuICAgIGlmIChub0xpbWl0KSB7XHJcbiAgICAgIHJldHVybiBwb3NpdGlvbjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBNYXRoLm1heChwb3NpdGlvbiwgMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwaXhlbHNUb1Bvc2l0aW9uWShcclxuICAgIHk6IG51bWJlcixcclxuICAgIHJvdW5kaW5nTWV0aG9kOiAoeDogbnVtYmVyKSA9PiBudW1iZXIsXHJcbiAgICBub0xpbWl0PzogYm9vbGVhblxyXG4gICk6IG51bWJlciB7XHJcbiAgICBjb25zdCBwb3NpdGlvbiA9IHJvdW5kaW5nTWV0aG9kKHkgLyB0aGlzLmN1clJvd0hlaWdodCk7XHJcbiAgICBpZiAobm9MaW1pdCkge1xyXG4gICAgICByZXR1cm4gcG9zaXRpb247XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gTWF0aC5tYXgocG9zaXRpb24sIDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9zaXRpb25YVG9QaXhlbHMoeDogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB4ICogdGhpcy5jdXJDb2xXaWR0aDtcclxuICB9XHJcblxyXG4gIHBvc2l0aW9uWVRvUGl4ZWxzKHk6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICByZXR1cm4geSAqIHRoaXMuY3VyUm93SGVpZ2h0O1xyXG4gIH1cclxuXHJcbiAgZ2V0SXRlbUNvbXBvbmVudChcclxuICAgIGl0ZW06IEdyaWRzdGVySXRlbVxyXG4gICk6IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZSB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5ncmlkLmZpbmQoYyA9PiBjLml0ZW0gPT09IGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgLy8gLS0tLS0tIEZ1bmN0aW9ucyBmb3Igc3dhcFdoaWxlRHJhZ2dpbmcgb3B0aW9uXHJcblxyXG4gIC8vIGlkZW50aWNhbCB0byBjaGVja0NvbGxpc2lvbigpIGV4Y2VwdCB0aGF0IHRoaXMgZnVuY3Rpb24gY2FsbHMgZmluZEl0ZW1XaXRoSXRlbUZvclN3YXBpbmcoKSBpbnN0ZWFkIG9mIGZpbmRJdGVtV2l0aEl0ZW0oKVxyXG4gIGNoZWNrQ29sbGlzaW9uRm9yU3dhcGluZyhcclxuICAgIGl0ZW06IEdyaWRzdGVySXRlbVxyXG4gICk6IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZSB8IGJvb2xlYW4ge1xyXG4gICAgbGV0IGNvbGxpc2lvbjogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlIHwgYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5pdGVtVmFsaWRhdGVDYWxsYmFjaykge1xyXG4gICAgICBjb2xsaXNpb24gPSAhdGhpcy5vcHRpb25zLml0ZW1WYWxpZGF0ZUNhbGxiYWNrKGl0ZW0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCFjb2xsaXNpb24gJiYgdGhpcy5jaGVja0dyaWRDb2xsaXNpb24oaXRlbSkpIHtcclxuICAgICAgY29sbGlzaW9uID0gdHJ1ZTtcclxuICAgIH1cclxuICAgIGlmICghY29sbGlzaW9uKSB7XHJcbiAgICAgIGNvbnN0IGMgPSB0aGlzLmZpbmRJdGVtV2l0aEl0ZW1Gb3JTd2FwcGluZyhpdGVtKTtcclxuICAgICAgaWYgKGMpIHtcclxuICAgICAgICBjb2xsaXNpb24gPSBjO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29sbGlzaW9uO1xyXG4gIH1cclxuXHJcbiAgLy8gaWRlbnRpY2FsIHRvIGZpbmRJdGVtV2l0aEl0ZW0oKSBleGNlcHQgdGhhdCB0aGlzIGZ1bmN0aW9uIGNhbGxzIGNoZWNrQ29sbGlzaW9uVHdvSXRlbXNGb3JTd2FwaW5nKCkgaW5zdGVhZCBvZiBjaGVja0NvbGxpc2lvblR3b0l0ZW1zKClcclxuICBmaW5kSXRlbVdpdGhJdGVtRm9yU3dhcHBpbmcoXHJcbiAgICBpdGVtOiBHcmlkc3Rlckl0ZW1cclxuICApOiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2UgfCBib29sZWFuIHtcclxuICAgIGxldCB3aWRnZXRzSW5kZXg6IG51bWJlciA9IHRoaXMuZ3JpZC5sZW5ndGggLSAxO1xyXG4gICAgbGV0IHdpZGdldDogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlO1xyXG4gICAgZm9yICg7IHdpZGdldHNJbmRleCA+IC0xOyB3aWRnZXRzSW5kZXgtLSkge1xyXG4gICAgICB3aWRnZXQgPSB0aGlzLmdyaWRbd2lkZ2V0c0luZGV4XTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHdpZGdldC4kaXRlbSAhPT0gaXRlbSAmJlxyXG4gICAgICAgIEdyaWRzdGVyQ29tcG9uZW50LmNoZWNrQ29sbGlzaW9uVHdvSXRlbXNGb3JTd2FwaW5nKHdpZGdldC4kaXRlbSwgaXRlbSlcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHdpZGdldDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJldmlld1N0eWxlKGRyYWcgPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubW92aW5nSXRlbSkge1xyXG4gICAgICBpZiAodGhpcy5jb21wYWN0ICYmIGRyYWcpIHtcclxuICAgICAgICB0aGlzLmNvbXBhY3QuY2hlY2tDb21wYWN0SXRlbSh0aGlzLm1vdmluZ0l0ZW0pO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucHJldmlld1N0eWxlJC5uZXh0KHRoaXMubW92aW5nSXRlbSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnByZXZpZXdTdHlsZSQubmV4dChudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIC0tLS0tLSBFbmQgb2YgZnVuY3Rpb25zIGZvciBzd2FwV2hpbGVEcmFnZ2luZyBvcHRpb25cclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcclxuICBwcml2YXRlIHN0YXRpYyBnZXROZXdBcnJheUxlbmd0aChcclxuICAgIGxlbmd0aDogbnVtYmVyLFxyXG4gICAgb3ZlcmFsbFNpemU6IG51bWJlcixcclxuICAgIHNpemU6IG51bWJlclxyXG4gICk6IG51bWJlciB7XHJcbiAgICBjb25zdCBuZXdMZW5ndGggPSBNYXRoLm1heChsZW5ndGgsIE1hdGguZmxvb3Iob3ZlcmFsbFNpemUgLyBzaXplKSk7XHJcblxyXG4gICAgaWYgKG5ld0xlbmd0aCA8IDApIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKE51bWJlci5pc0Zpbml0ZShuZXdMZW5ndGgpKSB7XHJcbiAgICAgIHJldHVybiBNYXRoLmZsb29yKG5ld0xlbmd0aCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImdyaWRzdGVyLWNvbHVtblwiXHJcbiAgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBncmlkQ29sdW1uczsgbGV0IGkgPSBpbmRleDtcIlxyXG4gIFtuZ1N0eWxlXT1cImdyaWRSZW5kZXJlci5nZXRHcmlkQ29sdW1uU3R5bGUoaSlcIlxyXG4+PC9kaXY+XHJcbjxkaXZcclxuICBjbGFzcz1cImdyaWRzdGVyLXJvd1wiXHJcbiAgKm5nRm9yPVwibGV0IHJvdyBvZiBncmlkUm93czsgbGV0IGkgPSBpbmRleDtcIlxyXG4gIFtuZ1N0eWxlXT1cImdyaWRSZW5kZXJlci5nZXRHcmlkUm93U3R5bGUoaSlcIlxyXG4+PC9kaXY+XHJcbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuPGdyaWRzdGVyLXByZXZpZXdcclxuICBbZ3JpZFJlbmRlcmVyXT1cImdyaWRSZW5kZXJlclwiXHJcbiAgW3ByZXZpZXdTdHlsZSRdPVwicHJldmlld1N0eWxlJFwiXHJcbiAgY2xhc3M9XCJncmlkc3Rlci1wcmV2aWV3XCJcclxuPjwvZ3JpZHN0ZXItcHJldmlldz5cclxuIl19
@@ -1,3 +1,3 @@
1
1
  export class GridsterComponentInterface {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmEtZGFzaGJvYXJkLWZyYW1ld29yay9zcmMvZ3JpZHN0ZXIvbGliL2dyaWRzdGVyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLE9BQWdCLDBCQUEwQjtDQXdEL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHcmlkc3RlckNvbmZpZ1MgfSBmcm9tICcuL2dyaWRzdGVyQ29uZmlnUy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIE5nWm9uZSwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBHcmlkc3RlckVtcHR5Q2VsbCB9IGZyb20gJy4vZ3JpZHN0ZXJFbXB0eUNlbGwuc2VydmljZSc7XG5pbXBvcnQgeyBHcmlkc3RlckNvbXBhY3QgfSBmcm9tICcuL2dyaWRzdGVyQ29tcGFjdC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRzdGVyQ29uZmlnIH0gZnJvbSAnLi9ncmlkc3RlckNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgR3JpZHN0ZXJJdGVtLFxuICBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2Vcbn0gZnJvbSAnLi9ncmlkc3Rlckl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IEdyaWRzdGVyUmVuZGVyZXIgfSBmcm9tICcuL2dyaWRzdGVyUmVuZGVyZXIuc2VydmljZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHcmlkc3RlckNvbXBvbmVudEludGVyZmFjZSB7XG4gICRvcHRpb25zITogR3JpZHN0ZXJDb25maWdTO1xuICBncmlkITogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlW107XG4gIGNoZWNrQ29sbGlzaW9uITogKFxuICAgIGl0ZW06IEdyaWRzdGVySXRlbVxuICApID0+IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZSB8IGJvb2xlYW47XG4gIGNoZWNrQ29sbGlzaW9uRm9yU3dhcGluZyE6IChcbiAgICBpdGVtOiBHcmlkc3Rlckl0ZW1cbiAgKSA9PiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2UgfCBib29sZWFuO1xuICBwb3NpdGlvblhUb1BpeGVscyE6ICh4OiBudW1iZXIpID0+IG51bWJlcjtcbiAgcGl4ZWxzVG9Qb3NpdGlvblghOiAoXG4gICAgeDogbnVtYmVyLFxuICAgIHJvdW5kaW5nTWV0aG9kOiAoeDogbnVtYmVyKSA9PiBudW1iZXIsXG4gICAgbm9MaW1pdD86IGJvb2xlYW5cbiAgKSA9PiBudW1iZXI7XG4gIHBvc2l0aW9uWVRvUGl4ZWxzITogKHk6IG51bWJlcikgPT4gbnVtYmVyO1xuICBwaXhlbHNUb1Bvc2l0aW9uWSE6IChcbiAgICB5OiBudW1iZXIsXG4gICAgcm91bmRpbmdNZXRob2Q6ICh4OiBudW1iZXIpID0+IG51bWJlcixcbiAgICBub0xpbWl0PzogYm9vbGVhblxuICApID0+IG51bWJlcjtcbiAgZmluZEl0ZW1XaXRoSXRlbSE6IChcbiAgICBpdGVtOiBHcmlkc3Rlckl0ZW1cbiAgKSA9PiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2UgfCBib29sZWFuO1xuICBmaW5kSXRlbXNXaXRoSXRlbSE6IChpdGVtOiBHcmlkc3Rlckl0ZW0pID0+IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZVtdO1xuICBjaGVja0dyaWRDb2xsaXNpb24hOiAoaXRlbTogR3JpZHN0ZXJJdGVtKSA9PiBib29sZWFuO1xuICBjaGVja0NvbGxpc2lvblR3b0l0ZW1zITogKGl0ZW06IEdyaWRzdGVySXRlbSwgaXRlbTI6IEdyaWRzdGVySXRlbSkgPT4gYm9vbGVhbjtcbiAgZ2V0SXRlbUNvbXBvbmVudCE6IChcbiAgICBpdGVtOiBHcmlkc3Rlckl0ZW1cbiAgKSA9PiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2UgfCB1bmRlZmluZWQ7XG4gIGVsITogSFRNTEVsZW1lbnQ7XG4gIHJlbmRlcmVyITogUmVuZGVyZXIyO1xuICBncmlkUmVuZGVyZXIhOiBHcmlkc3RlclJlbmRlcmVyO1xuICBjZFJlZiE6IENoYW5nZURldGVjdG9yUmVmO1xuICBvcHRpb25zITogR3JpZHN0ZXJDb25maWc7XG4gIGNhbGN1bGF0ZUxheW91dCQhOiBTdWJqZWN0PHZvaWQ+O1xuICB1cGRhdGVHcmlkITogKCkgPT4gdm9pZDtcbiAgbW92aW5nSXRlbSE6IEdyaWRzdGVySXRlbSB8IG51bGw7XG4gIGFkZEl0ZW0hOiAoaXRlbTogR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlKSA9PiB2b2lkO1xuICByZW1vdmVJdGVtITogKGl0ZW06IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZSkgPT4gdm9pZDtcbiAgcHJldmlld1N0eWxlITogKGRyYWc/OiBib29sZWFuKSA9PiB2b2lkO1xuICBtb2JpbGUhOiBib29sZWFuO1xuICBjdXJXaWR0aCE6IG51bWJlcjtcbiAgY3VySGVpZ2h0ITogbnVtYmVyO1xuICBjb2x1bW5zITogbnVtYmVyO1xuICByb3dzITogbnVtYmVyO1xuICBjdXJDb2xXaWR0aCE6IG51bWJlcjtcbiAgY3VyUm93SGVpZ2h0ITogbnVtYmVyO1xuICB3aW5kb3dSZXNpemUhOiAoKCkgPT4gdm9pZCkgfCBudWxsO1xuICBzZXRHcmlkRGltZW5zaW9ucyE6ICgpID0+IHZvaWQ7XG4gIGRyYWdJblByb2dyZXNzITogYm9vbGVhbjtcbiAgZW1wdHlDZWxsITogR3JpZHN0ZXJFbXB0eUNlbGw7XG4gIGNvbXBhY3QhOiBHcmlkc3RlckNvbXBhY3Q7XG4gIHpvbmUhOiBOZ1pvbmU7XG4gIGdyaWRSb3dzITogQXJyYXk8bnVtYmVyPjtcbiAgZ3JpZENvbHVtbnMhOiBBcnJheTxudW1iZXI+O1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmEtZGFzaGJvYXJkLWZyYW1ld29yay9zcmMvZ3JpZHN0ZXIvbGliL2dyaWRzdGVyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFZQSxNQUFNLE9BQWdCLDBCQUEwQjtDQXdEL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHcmlkc3RlckNvbmZpZ1MgfSBmcm9tICcuL2dyaWRzdGVyQ29uZmlnUy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgTmdab25lLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBHcmlkc3RlckVtcHR5Q2VsbCB9IGZyb20gJy4vZ3JpZHN0ZXJFbXB0eUNlbGwuc2VydmljZSc7XHJcbmltcG9ydCB7IEdyaWRzdGVyQ29tcGFjdCB9IGZyb20gJy4vZ3JpZHN0ZXJDb21wYWN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHcmlkc3RlckNvbmZpZyB9IGZyb20gJy4vZ3JpZHN0ZXJDb25maWcuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtcclxuICBHcmlkc3Rlckl0ZW0sXHJcbiAgR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlXHJcbn0gZnJvbSAnLi9ncmlkc3Rlckl0ZW0uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgR3JpZHN0ZXJSZW5kZXJlciB9IGZyb20gJy4vZ3JpZHN0ZXJSZW5kZXJlci5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBHcmlkc3RlckNvbXBvbmVudEludGVyZmFjZSB7XHJcbiAgJG9wdGlvbnMhOiBHcmlkc3RlckNvbmZpZ1M7XHJcbiAgZ3JpZCE6IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZVtdO1xyXG4gIGNoZWNrQ29sbGlzaW9uITogKFxyXG4gICAgaXRlbTogR3JpZHN0ZXJJdGVtXHJcbiAgKSA9PiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2UgfCBib29sZWFuO1xyXG4gIGNoZWNrQ29sbGlzaW9uRm9yU3dhcGluZyE6IChcclxuICAgIGl0ZW06IEdyaWRzdGVySXRlbVxyXG4gICkgPT4gR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlIHwgYm9vbGVhbjtcclxuICBwb3NpdGlvblhUb1BpeGVscyE6ICh4OiBudW1iZXIpID0+IG51bWJlcjtcclxuICBwaXhlbHNUb1Bvc2l0aW9uWCE6IChcclxuICAgIHg6IG51bWJlcixcclxuICAgIHJvdW5kaW5nTWV0aG9kOiAoeDogbnVtYmVyKSA9PiBudW1iZXIsXHJcbiAgICBub0xpbWl0PzogYm9vbGVhblxyXG4gICkgPT4gbnVtYmVyO1xyXG4gIHBvc2l0aW9uWVRvUGl4ZWxzITogKHk6IG51bWJlcikgPT4gbnVtYmVyO1xyXG4gIHBpeGVsc1RvUG9zaXRpb25ZITogKFxyXG4gICAgeTogbnVtYmVyLFxyXG4gICAgcm91bmRpbmdNZXRob2Q6ICh4OiBudW1iZXIpID0+IG51bWJlcixcclxuICAgIG5vTGltaXQ/OiBib29sZWFuXHJcbiAgKSA9PiBudW1iZXI7XHJcbiAgZmluZEl0ZW1XaXRoSXRlbSE6IChcclxuICAgIGl0ZW06IEdyaWRzdGVySXRlbVxyXG4gICkgPT4gR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlIHwgYm9vbGVhbjtcclxuICBmaW5kSXRlbXNXaXRoSXRlbSE6IChpdGVtOiBHcmlkc3Rlckl0ZW0pID0+IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZVtdO1xyXG4gIGNoZWNrR3JpZENvbGxpc2lvbiE6IChpdGVtOiBHcmlkc3Rlckl0ZW0pID0+IGJvb2xlYW47XHJcbiAgY2hlY2tDb2xsaXNpb25Ud29JdGVtcyE6IChpdGVtOiBHcmlkc3Rlckl0ZW0sIGl0ZW0yOiBHcmlkc3Rlckl0ZW0pID0+IGJvb2xlYW47XHJcbiAgZ2V0SXRlbUNvbXBvbmVudCE6IChcclxuICAgIGl0ZW06IEdyaWRzdGVySXRlbVxyXG4gICkgPT4gR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlIHwgdW5kZWZpbmVkO1xyXG4gIGVsITogSFRNTEVsZW1lbnQ7XHJcbiAgcmVuZGVyZXIhOiBSZW5kZXJlcjI7XHJcbiAgZ3JpZFJlbmRlcmVyITogR3JpZHN0ZXJSZW5kZXJlcjtcclxuICBjZFJlZiE6IENoYW5nZURldGVjdG9yUmVmO1xyXG4gIG9wdGlvbnMhOiBHcmlkc3RlckNvbmZpZztcclxuICBjYWxjdWxhdGVMYXlvdXQkITogU3ViamVjdDx2b2lkPjtcclxuICB1cGRhdGVHcmlkITogKCkgPT4gdm9pZDtcclxuICBtb3ZpbmdJdGVtITogR3JpZHN0ZXJJdGVtIHwgbnVsbDtcclxuICBhZGRJdGVtITogKGl0ZW06IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZSkgPT4gdm9pZDtcclxuICByZW1vdmVJdGVtITogKGl0ZW06IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZSkgPT4gdm9pZDtcclxuICBwcmV2aWV3U3R5bGUhOiAoZHJhZz86IGJvb2xlYW4pID0+IHZvaWQ7XHJcbiAgbW9iaWxlITogYm9vbGVhbjtcclxuICBjdXJXaWR0aCE6IG51bWJlcjtcclxuICBjdXJIZWlnaHQhOiBudW1iZXI7XHJcbiAgY29sdW1ucyE6IG51bWJlcjtcclxuICByb3dzITogbnVtYmVyO1xyXG4gIGN1ckNvbFdpZHRoITogbnVtYmVyO1xyXG4gIGN1clJvd0hlaWdodCE6IG51bWJlcjtcclxuICB3aW5kb3dSZXNpemUhOiAoKCkgPT4gdm9pZCkgfCBudWxsO1xyXG4gIHNldEdyaWREaW1lbnNpb25zITogKCkgPT4gdm9pZDtcclxuICBkcmFnSW5Qcm9ncmVzcyE6IGJvb2xlYW47XHJcbiAgZW1wdHlDZWxsITogR3JpZHN0ZXJFbXB0eUNlbGw7XHJcbiAgY29tcGFjdCE6IEdyaWRzdGVyQ29tcGFjdDtcclxuICB6b25lITogTmdab25lO1xyXG4gIGdyaWRSb3dzITogQXJyYXk8bnVtYmVyPjtcclxuICBncmlkQ29sdW1ucyE6IEFycmF5PG51bWJlcj47XHJcbn1cclxuIl19
@@ -3,15 +3,15 @@ import { GridsterComponent } from './gridster.component';
3
3
  import { GridsterItemComponent } from './gridsterItem.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class GridsterModule {
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: GridsterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: GridsterModule, imports: [GridsterComponent, GridsterItemComponent], exports: [GridsterComponent, GridsterItemComponent] }); }
8
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: GridsterModule }); }
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: GridsterModule, imports: [GridsterComponent, GridsterItemComponent], exports: [GridsterComponent, GridsterItemComponent] }); }
8
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterModule }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: GridsterModule, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: GridsterModule, decorators: [{
11
11
  type: NgModule,
12
12
  args: [{
13
13
  imports: [GridsterComponent, GridsterItemComponent],
14
14
  exports: [GridsterComponent, GridsterItemComponent]
15
15
  }]
16
16
  }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmEtZGFzaGJvYXJkLWZyYW1ld29yay9zcmMvZ3JpZHN0ZXIvbGliL2dyaWRzdGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU1qRSxNQUFNLE9BQU8sY0FBYzs4R0FBZCxjQUFjOytHQUFkLGNBQWMsWUFIZixpQkFBaUIsRUFBRSxxQkFBcUIsYUFDeEMsaUJBQWlCLEVBQUUscUJBQXFCOytHQUV2QyxjQUFjOzsyRkFBZCxjQUFjO2tCQUoxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixFQUFFLHFCQUFxQixDQUFDO29CQUNuRCxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxxQkFBcUIsQ0FBQztpQkFDcEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBHcmlkc3RlckNvbXBvbmVudCB9IGZyb20gJy4vZ3JpZHN0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEdyaWRzdGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZ3JpZHN0ZXJJdGVtLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtHcmlkc3RlckNvbXBvbmVudCwgR3JpZHN0ZXJJdGVtQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW0dyaWRzdGVyQ29tcG9uZW50LCBHcmlkc3Rlckl0ZW1Db21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRzdGVyTW9kdWxlIHt9XG4iXX0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmEtZGFzaGJvYXJkLWZyYW1ld29yay9zcmMvZ3JpZHN0ZXIvbGliL2dyaWRzdGVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQU1qRSxNQUFNLE9BQU8sY0FBYzs4R0FBZCxjQUFjOytHQUFkLGNBQWMsWUFIZixpQkFBaUIsRUFBRSxxQkFBcUIsYUFDeEMsaUJBQWlCLEVBQUUscUJBQXFCOytHQUV2QyxjQUFjOzsyRkFBZCxjQUFjO2tCQUoxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixFQUFFLHFCQUFxQixDQUFDO29CQUNuRCxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxxQkFBcUIsQ0FBQztpQkFDcEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgR3JpZHN0ZXJDb21wb25lbnQgfSBmcm9tICcuL2dyaWRzdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdyaWRzdGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vZ3JpZHN0ZXJJdGVtLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtHcmlkc3RlckNvbXBvbmVudCwgR3JpZHN0ZXJJdGVtQ29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbR3JpZHN0ZXJDb21wb25lbnQsIEdyaWRzdGVySXRlbUNvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEdyaWRzdGVyTW9kdWxlIHt9XHJcbiJdfQ==
@@ -123,4 +123,4 @@ export class GridsterCompact {
123
123
  }
124
124
  }
125
125
  }
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJDb21wYWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYS1kYXNoYm9hcmQtZnJhbWV3b3JrL3NyYy9ncmlkc3Rlci9saWIvZ3JpZHN0ZXJDb21wYWN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQW9CLFFBQW9DO1FBQXBDLGFBQVEsR0FBUixRQUFRLENBQTRCO0lBQUcsQ0FBQztJQUU1RCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckMsQ0FBQztpQkFBTSxJQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsV0FBVyxFQUM5RCxDQUFDO2dCQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxDQUFDO2lCQUFNLElBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxnQkFBZ0IsRUFDbkUsQ0FBQztnQkFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxv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QWE7UUFFYixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDO1lBQ3pCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHcmlkc3RlckNvbXBvbmVudEludGVyZmFjZSB9IGZyb20gJy4vZ3JpZHN0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIEdyaWRzdGVySXRlbSxcbiAgR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlXG59IGZyb20gJy4vZ3JpZHN0ZXJJdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb21wYWN0VHlwZSB9IGZyb20gJy4vZ3JpZHN0ZXJDb25maWcuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNsYXNzIEdyaWRzdGVyQ29tcGFjdCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZ3JpZHN0ZXI6IEdyaWRzdGVyQ29tcG9uZW50SW50ZXJmYWNlKSB7fVxuXG4gIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkc3RlciA9IG51bGwhO1xuICB9XG5cbiAgY2hlY2tDb21wYWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlICE9PSBDb21wYWN0VHlwZS5Ob25lKSB7XG4gICAgICBpZiAodGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdFVwKSB7XG4gICAgICAgIHRoaXMuY2hlY2tDb21wYWN0TW92ZW1lbnQoJ3knLCAtMSk7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlID09PSBDb21wYWN0VHlwZS5Db21wYWN0TGVmdFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuY2hlY2tDb21wYWN0TW92ZW1lbnQoJ3gnLCAtMSk7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlID09PSBDb21wYWN0VHlwZS5Db21wYWN0VXBBbmRMZWZ0XG4gICAgICApIHtcbiAgICAgICAgdGhpcy5jaGVja0NvbXBhY3RNb3ZlbWVudCgneScsIC0xKTtcbiAgICAgICAgdGhpcy5jaGVja0NvbXBhY3RNb3ZlbWVudCgneCcsIC0xKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuY29tcGFjdFR5cGUgPT09IENvbXBhY3RUeXBlLkNvbXBhY3RMZWZ0QW5kVXBcbiAgICAgICkge1xuICAgICAgICB0aGlzLmNoZWNrQ29tcGFjdE1vdmVtZW50KCd4JywgLTEpO1xuICAgICAgICB0aGlzLmNoZWNrQ29tcGFjdE1vdmVtZW50KCd5JywgLTEpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdFJpZ2h0XG4gICAgICApIHtcbiAgICAgICAgdGhpcy5jaGVja0NvbXBhY3RNb3ZlbWVudCgneCcsIDEpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdFVwQW5kUmlnaHRcbiAgICAgICkge1xuICAgICAgICB0aGlzLmNoZWNrQ29tcGFjdE1vdmVtZW50KCd5JywgLTEpO1xuICAgICAgICB0aGlzLmNoZWNrQ29tcGFjdE1vdmVtZW50KCd4JywgMSk7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlID09PSBDb21wYWN0VHlwZS5Db21wYWN0UmlnaHRBbmRVcFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuY2hlY2tDb21wYWN0TW92ZW1lbnQoJ3gnLCAxKTtcbiAgICAgICAgdGhpcy5jaGVja0NvbXBhY3RNb3ZlbWVudCgneScsIC0xKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuY29tcGFjdFR5cGUgPT09IENvbXBhY3RUeXBlLkNvbXBhY3REb3duXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5jaGVja0NvbXBhY3RNb3ZlbWVudCgneScsIDEpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdERvd25BbmRMZWZ0XG4gICAgICApIHtcbiAgICAgICAgdGhpcy5jaGVja0NvbXBhY3RNb3ZlbWVudCgneScsIDEpO1xuICAgICAgICB0aGlzLmNoZWNrQ29tcGFjdE1vdmVtZW50KCd4JywgLTEpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdERvd25BbmRSaWdodFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuY2hlY2tDb21wYWN0TW92ZW1lbnQoJ3knLCAxKTtcbiAgICAgICAgdGhpcy5jaGVja0NvbXBhY3RNb3ZlbWVudCgneCcsIDEpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdExlZnRBbmREb3duXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5jaGVja0NvbXBhY3RNb3ZlbWVudCgneCcsIC0xKTtcbiAgICAgICAgdGhpcy5jaGVja0NvbXBhY3RNb3ZlbWVudCgneScsIDEpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdFJpZ2h0QW5kRG93blxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuY2hlY2tDb21wYWN0TW92ZW1lbnQoJ3gnLCAxKTtcbiAgICAgICAgdGhpcy5jaGVja0NvbXBhY3RNb3ZlbWVudCgneScsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGNoZWNrQ29tcGFjdEl0ZW0oaXRlbTogR3JpZHN0ZXJJdGVtKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuY29tcGFjdFR5cGUgIT09IENvbXBhY3RUeXBlLk5vbmUpIHtcbiAgICAgIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlID09PSBDb21wYWN0VHlwZS5Db21wYWN0VXApIHtcbiAgICAgICAgdGhpcy5tb3ZlVGlsbENvbGxpc2lvbihpdGVtLCAneScsIC0xKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuY29tcGFjdFR5cGUgPT09IENvbXBhY3RUeXBlLkNvbXBhY3RMZWZ0XG4gICAgICApIHtcbiAgICAgICAgdGhpcy5tb3ZlVGlsbENvbGxpc2lvbihpdGVtLCAneCcsIC0xKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuY29tcGFjdFR5cGUgPT09IENvbXBhY3RUeXBlLkNvbXBhY3RVcEFuZExlZnRcbiAgICAgICkge1xuICAgICAgICB0aGlzLm1vdmVUaWxsQ29sbGlzaW9uKGl0ZW0sICd5JywgLTEpO1xuICAgICAgICB0aGlzLm1vdmVUaWxsQ29sbGlzaW9uKGl0ZW0sICd4JywgLTEpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdExlZnRBbmRVcFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMubW92ZVRpbGxDb2xsaXNpb24oaXRlbSwgJ3gnLCAtMSk7XG4gICAgICAgIHRoaXMubW92ZVRpbGxDb2xsaXNpb24oaXRlbSwgJ3knLCAtMSk7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlID09PSBDb21wYWN0VHlwZS5Db21wYWN0VXBBbmRSaWdodFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMubW92ZVRpbGxDb2xsaXNpb24oaXRlbSwgJ3knLCAtMSk7XG4gICAgICAgIHRoaXMubW92ZVRpbGxDb2xsaXNpb24oaXRlbSwgJ3gnLCAxKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuY29tcGFjdFR5cGUgPT09IENvbXBhY3RUeXBlLkNvbXBhY3REb3duXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5tb3ZlVGlsbENvbGxpc2lvbihpdGVtLCAneScsIDEpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdERvd25BbmRMZWZ0XG4gICAgICApIHtcbiAgICAgICAgdGhpcy5tb3ZlVGlsbENvbGxpc2lvbihpdGVtLCAneScsIDEpO1xuICAgICAgICB0aGlzLm1vdmVUaWxsQ29sbGlzaW9uKGl0ZW0sICd4JywgLTEpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdExlZnRBbmREb3duXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5tb3ZlVGlsbENvbGxpc2lvbihpdGVtLCAneCcsIC0xKTtcbiAgICAgICAgdGhpcy5tb3ZlVGlsbENvbGxpc2lvbihpdGVtLCAneScsIDEpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdERvd25BbmRSaWdodFxuICAgICAgKSB7XG4gICAgICAgIHRoaXMubW92ZVRpbGxDb2xsaXNpb24oaXRlbSwgJ3knLCAxKTtcbiAgICAgICAgdGhpcy5tb3ZlVGlsbENvbGxpc2lvbihpdGVtLCAneCcsIDEpO1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdFJpZ2h0QW5kRG93blxuICAgICAgKSB7XG4gICAgICAgIHRoaXMubW92ZVRpbGxDb2xsaXNpb24oaXRlbSwgJ3gnLCAxKTtcbiAgICAgICAgdGhpcy5tb3ZlVGlsbENvbGxpc2lvbihpdGVtLCAneScsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tDb21wYWN0TW92ZW1lbnQoZGlyZWN0aW9uOiAneCcgfCAneScsIGRlbHRhOiBudW1iZXIpOiB2b2lkIHtcbiAgICBsZXQgd2lkZ2V0TW92ZWQgPSBmYWxzZTtcbiAgICB0aGlzLmdyaWRzdGVyLmdyaWQuZm9yRWFjaCgod2lkZ2V0OiBHcmlkc3Rlckl0ZW1Db21wb25lbnRJbnRlcmZhY2UpID0+IHtcbiAgICAgIGlmICh3aWRnZXQuJGl0ZW0uY29tcGFjdEVuYWJsZWQgIT09IGZhbHNlKSB7XG4gICAgICAgIGNvbnN0IG1vdmVkID0gdGhpcy5tb3ZlVGlsbENvbGxpc2lvbih3aWRnZXQuJGl0ZW0sIGRpcmVjdGlvbiwgZGVsdGEpO1xuICAgICAgICBpZiAobW92ZWQpIHtcbiAgICAgICAgICB3aWRnZXRNb3ZlZCA9IHRydWU7XG4gICAgICAgICAgd2lkZ2V0Lml0ZW1bZGlyZWN0aW9uXSA9IHdpZGdldC4kaXRlbVtkaXJlY3Rpb25dO1xuICAgICAgICAgIHdpZGdldC5pdGVtQ2hhbmdlZCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgaWYgKHdpZGdldE1vdmVkKSB7XG4gICAgICB0aGlzLmNoZWNrQ29tcGFjdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbW92ZVRpbGxDb2xsaXNpb24oXG4gICAgaXRlbTogR3JpZHN0ZXJJdGVtLFxuICAgIGRpcmVjdGlvbjogJ3gnIHwgJ3knLFxuICAgIGRlbHRhOiBudW1iZXJcbiAgKTogYm9vbGVhbiB7XG4gICAgaXRlbVtkaXJlY3Rpb25dICs9IGRlbHRhO1xuICAgIGlmICh0aGlzLmdyaWRzdGVyLmNoZWNrQ29sbGlzaW9uKGl0ZW0pKSB7XG4gICAgICBpdGVtW2RpcmVjdGlvbl0gLT0gZGVsdGE7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW92ZVRpbGxDb2xsaXNpb24oaXRlbSwgZGlyZWN0aW9uLCBkZWx0YSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJDb21wYWN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYS1kYXNoYm9hcmQtZnJhbWV3b3JrL3NyYy9ncmlkc3Rlci9saWIvZ3JpZHN0ZXJDb21wYWN0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFlBQW9CLFFBQW9DO1FBQXBDLGFBQVEsR0FBUixRQUFRLENBQTRCO0lBQUcsQ0FBQztJQUU1RCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqRSxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckMsQ0FBQztpQkFBTSxJQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsV0FBVyxFQUM5RCxDQUFDO2dCQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxDQUFDO2lCQUFNLElBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxnQkFBZ0IsRUFDbkUsQ0FBQztnQkFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxDQUFDO2lCQUFNLElBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxnQkFBZ0IsRUFDbkUsQ0FBQztnQkFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxDQUFDO2lCQUFNLElBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxZQUFZLEVBQy9ELENBQUM7Z0JBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwQyxDQUFDO2lCQUFNLElBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxpQkFBaUIsRUFDcEUsQ0FBQztnQkFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEMsQ0FBQztpQkFBTSxJQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsaUJBQWlCLEVBQ3BFLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLENBQUM7aUJBQU0sSUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLFdBQVcsRUFDOUQsQ0FBQztnQkFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7aUJBQU0sSUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLGtCQUFrQixFQUNyRSxDQUFDO2dCQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxDQUFDO2lCQUFNLElBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxtQkFBbUIsRUFDdEUsQ0FBQztnQkFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7aUJBQU0sSUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLGtCQUFrQixFQUNyRSxDQUFDO2dCQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNwQyxDQUFDO2lCQUFNLElBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxtQkFBbUIsRUFDdEUsQ0FBQztnQkFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQWtCO1FBQ2pDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1RCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2pFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsQ0FBQztpQkFBTSxJQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsV0FBVyxFQUM5RCxDQUFDO2dCQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsQ0FBQztpQkFBTSxJQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsZ0JBQWdCLEVBQ25FLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QyxDQUFDO2lCQUFNLElBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxnQkFBZ0IsRUFDbkUsQ0FBQztnQkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7aUJBQU0sSUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLGlCQUFpQixFQUNwRSxDQUFDO2dCQUNELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7aUJBQU0sSUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLFdBQVcsRUFDOUQsQ0FBQztnQkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2QyxDQUFDO2lCQUFNLElBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxrQkFBa0IsRUFDckUsQ0FBQztnQkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QyxDQUFDO2lCQUFNLElBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxrQkFBa0IsRUFDckUsQ0FBQztnQkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2QyxDQUFDO2lCQUFNLElBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsQ0FBQyxtQkFBbUIsRUFDdEUsQ0FBQztnQkFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdkMsQ0FBQztpQkFBTSxJQUNMLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsbUJBQW1CLEVBQ3RFLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFNBQW9CLEVBQUUsS0FBYTtRQUM5RCxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBc0MsRUFBRSxFQUFFO1lBQ3BFLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDckUsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDVixXQUFXLEdBQUcsSUFBSSxDQUFDO29CQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ2pELE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDdkIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQ3ZCLElBQWtCLEVBQ2xCLFNBQW9CLEVBQ3BCLEtBQWE7UUFFYixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDO1lBQ3pCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvQyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHcmlkc3RlckNvbXBvbmVudEludGVyZmFjZSB9IGZyb20gJy4vZ3JpZHN0ZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtcclxuICBHcmlkc3Rlckl0ZW0sXHJcbiAgR3JpZHN0ZXJJdGVtQ29tcG9uZW50SW50ZXJmYWNlXHJcbn0gZnJvbSAnLi9ncmlkc3Rlckl0ZW0uaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQ29tcGFjdFR5cGUgfSBmcm9tICcuL2dyaWRzdGVyQ29uZmlnLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgR3JpZHN0ZXJDb21wYWN0IHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGdyaWRzdGVyOiBHcmlkc3RlckNvbXBvbmVudEludGVyZmFjZSkge31cclxuXHJcbiAgZGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ3JpZHN0ZXIgPSBudWxsITtcclxuICB9XHJcblxyXG4gIGNoZWNrQ29tcGFjdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlICE9PSBDb21wYWN0VHlwZS5Ob25lKSB7XHJcbiAgICAgIGlmICh0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlID09PSBDb21wYWN0VHlwZS5Db21wYWN0VXApIHtcclxuICAgICAgICB0aGlzLmNoZWNrQ29tcGFjdE1vdmVtZW50KCd5JywgLTEpO1xyXG4gICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuY29tcGFjdFR5cGUgPT09IENvbXBhY3RUeXBlLkNvbXBhY3RMZWZ0XHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tDb21wYWN0TW92ZW1lbnQoJ3gnLCAtMSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdFVwQW5kTGVmdFxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNoZWNrQ29tcGFjdE1vdmVtZW50KCd5JywgLTEpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tDb21wYWN0TW92ZW1lbnQoJ3gnLCAtMSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdExlZnRBbmRVcFxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNoZWNrQ29tcGFjdE1vdmVtZW50KCd4JywgLTEpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tDb21wYWN0TW92ZW1lbnQoJ3knLCAtMSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdFJpZ2h0XHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tDb21wYWN0TW92ZW1lbnQoJ3gnLCAxKTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlID09PSBDb21wYWN0VHlwZS5Db21wYWN0VXBBbmRSaWdodFxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNoZWNrQ29tcGFjdE1vdmVtZW50KCd5JywgLTEpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tDb21wYWN0TW92ZW1lbnQoJ3gnLCAxKTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlID09PSBDb21wYWN0VHlwZS5Db21wYWN0UmlnaHRBbmRVcFxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNoZWNrQ29tcGFjdE1vdmVtZW50KCd4JywgMSk7XHJcbiAgICAgICAgdGhpcy5jaGVja0NvbXBhY3RNb3ZlbWVudCgneScsIC0xKTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlID09PSBDb21wYWN0VHlwZS5Db21wYWN0RG93blxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNoZWNrQ29tcGFjdE1vdmVtZW50KCd5JywgMSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdERvd25BbmRMZWZ0XHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuY2hlY2tDb21wYWN0TW92ZW1lbnQoJ3knLCAxKTtcclxuICAgICAgICB0aGlzLmNoZWNrQ29tcGFjdE1vdmVtZW50KCd4JywgLTEpO1xyXG4gICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuY29tcGFjdFR5cGUgPT09IENvbXBhY3RUeXBlLkNvbXBhY3REb3duQW5kUmlnaHRcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja0NvbXBhY3RNb3ZlbWVudCgneScsIDEpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tDb21wYWN0TW92ZW1lbnQoJ3gnLCAxKTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlID09PSBDb21wYWN0VHlwZS5Db21wYWN0TGVmdEFuZERvd25cclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5jaGVja0NvbXBhY3RNb3ZlbWVudCgneCcsIC0xKTtcclxuICAgICAgICB0aGlzLmNoZWNrQ29tcGFjdE1vdmVtZW50KCd5JywgMSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdFJpZ2h0QW5kRG93blxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLmNoZWNrQ29tcGFjdE1vdmVtZW50KCd4JywgMSk7XHJcbiAgICAgICAgdGhpcy5jaGVja0NvbXBhY3RNb3ZlbWVudCgneScsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0NvbXBhY3RJdGVtKGl0ZW06IEdyaWRzdGVySXRlbSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuY29tcGFjdFR5cGUgIT09IENvbXBhY3RUeXBlLk5vbmUpIHtcclxuICAgICAgaWYgKHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuY29tcGFjdFR5cGUgPT09IENvbXBhY3RUeXBlLkNvbXBhY3RVcCkge1xyXG4gICAgICAgIHRoaXMubW92ZVRpbGxDb2xsaXNpb24oaXRlbSwgJ3knLCAtMSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdExlZnRcclxuICAgICAgKSB7XHJcbiAgICAgICAgdGhpcy5tb3ZlVGlsbENvbGxpc2lvbihpdGVtLCAneCcsIC0xKTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlID09PSBDb21wYWN0VHlwZS5Db21wYWN0VXBBbmRMZWZ0XHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMubW92ZVRpbGxDb2xsaXNpb24oaXRlbSwgJ3knLCAtMSk7XHJcbiAgICAgICAgdGhpcy5tb3ZlVGlsbENvbGxpc2lvbihpdGVtLCAneCcsIC0xKTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlID09PSBDb21wYWN0VHlwZS5Db21wYWN0TGVmdEFuZFVwXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMubW92ZVRpbGxDb2xsaXNpb24oaXRlbSwgJ3gnLCAtMSk7XHJcbiAgICAgICAgdGhpcy5tb3ZlVGlsbENvbGxpc2lvbihpdGVtLCAneScsIC0xKTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlID09PSBDb21wYWN0VHlwZS5Db21wYWN0VXBBbmRSaWdodFxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLm1vdmVUaWxsQ29sbGlzaW9uKGl0ZW0sICd5JywgLTEpO1xyXG4gICAgICAgIHRoaXMubW92ZVRpbGxDb2xsaXNpb24oaXRlbSwgJ3gnLCAxKTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlID09PSBDb21wYWN0VHlwZS5Db21wYWN0RG93blxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLm1vdmVUaWxsQ29sbGlzaW9uKGl0ZW0sICd5JywgMSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdERvd25BbmRMZWZ0XHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMubW92ZVRpbGxDb2xsaXNpb24oaXRlbSwgJ3knLCAxKTtcclxuICAgICAgICB0aGlzLm1vdmVUaWxsQ29sbGlzaW9uKGl0ZW0sICd4JywgLTEpO1xyXG4gICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgIHRoaXMuZ3JpZHN0ZXIuJG9wdGlvbnMuY29tcGFjdFR5cGUgPT09IENvbXBhY3RUeXBlLkNvbXBhY3RMZWZ0QW5kRG93blxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLm1vdmVUaWxsQ29sbGlzaW9uKGl0ZW0sICd4JywgLTEpO1xyXG4gICAgICAgIHRoaXMubW92ZVRpbGxDb2xsaXNpb24oaXRlbSwgJ3knLCAxKTtcclxuICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICB0aGlzLmdyaWRzdGVyLiRvcHRpb25zLmNvbXBhY3RUeXBlID09PSBDb21wYWN0VHlwZS5Db21wYWN0RG93bkFuZFJpZ2h0XHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMubW92ZVRpbGxDb2xsaXNpb24oaXRlbSwgJ3knLCAxKTtcclxuICAgICAgICB0aGlzLm1vdmVUaWxsQ29sbGlzaW9uKGl0ZW0sICd4JywgMSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgdGhpcy5ncmlkc3Rlci4kb3B0aW9ucy5jb21wYWN0VHlwZSA9PT0gQ29tcGFjdFR5cGUuQ29tcGFjdFJpZ2h0QW5kRG93blxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLm1vdmVUaWxsQ29sbGlzaW9uKGl0ZW0sICd4JywgMSk7XHJcbiAgICAgICAgdGhpcy5tb3ZlVGlsbENvbGxpc2lvbihpdGVtLCAneScsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrQ29tcGFjdE1vdmVtZW50KGRpcmVjdGlvbjogJ3gnIHwgJ3knLCBkZWx0YTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBsZXQgd2lkZ2V0TW92ZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuZ3JpZHN0ZXIuZ3JpZC5mb3JFYWNoKCh3aWRnZXQ6IEdyaWRzdGVySXRlbUNvbXBvbmVudEludGVyZmFjZSkgPT4ge1xyXG4gICAgICBpZiAod2lkZ2V0LiRpdGVtLmNvbXBhY3RFbmFibGVkICE9PSBmYWxzZSkge1xyXG4gICAgICAgIGNvbnN0IG1vdmVkID0gdGhpcy5tb3ZlVGlsbENvbGxpc2lvbih3aWRnZXQuJGl0ZW0sIGRpcmVjdGlvbiwgZGVsdGEpO1xyXG4gICAgICAgIGlmIChtb3ZlZCkge1xyXG4gICAgICAgICAgd2lkZ2V0TW92ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgd2lkZ2V0Lml0ZW1bZGlyZWN0aW9uXSA9IHdpZGdldC4kaXRlbVtkaXJlY3Rpb25dO1xyXG4gICAgICAgICAgd2lkZ2V0Lml0ZW1DaGFuZ2VkKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmICh3aWRnZXRNb3ZlZCkge1xyXG4gICAgICB0aGlzLmNoZWNrQ29tcGFjdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtb3ZlVGlsbENvbGxpc2lvbihcclxuICAgIGl0ZW06IEdyaWRzdGVySXRlbSxcclxuICAgIGRpcmVjdGlvbjogJ3gnIHwgJ3knLFxyXG4gICAgZGVsdGE6IG51bWJlclxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgaXRlbVtkaXJlY3Rpb25dICs9IGRlbHRhO1xyXG4gICAgaWYgKHRoaXMuZ3JpZHN0ZXIuY2hlY2tDb2xsaXNpb24oaXRlbSkpIHtcclxuICAgICAgaXRlbVtkaXJlY3Rpb25dIC09IGRlbHRhO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vdmVUaWxsQ29sbGlzaW9uKGl0ZW0sIGRpcmVjdGlvbiwgZGVsdGEpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -115,4 +115,4 @@ export const GridsterConfigService = {
115
115
  disableAutoPositionOnConflict: false, // disable auto-position of items on conflict state,
116
116
  dirType: DirTypes.LTR // page direction, rtl=right to left ltr= left to right, if you use rtl language set dirType to rtl
117
117
  };
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJDb25maWcuY29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYS1kYXNoYm9hcmQtZnJhbWV3b3JrL3NyYy9ncmlkc3Rlci9saWIvZ3JpZHN0ZXJDb25maWcuY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxRQUFRLEVBQ1IsV0FBVyxFQUVYLFFBQVEsRUFDVCxNQUFNLDRCQUE0QixDQUFDO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFtQjtJQUNuRCxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSw0REFBNEQ7SUFDcEYsS0FBSyxFQUFFLENBQUMsRUFBRSxrQ0FBa0M7SUFDNUMsMkZBQTJGO0lBQzNGLDhGQUE4RjtJQUM5RixxR0FBcUc7SUFDckcscUdBQXFHO0lBQ3JHLHVHQUF1RztJQUN2RyxhQUFhLEVBQUUsR0FBRyxFQUFFLHdDQUF3QztJQUM1RCxjQUFjLEVBQUUsR0FBRyxFQUFFLHlDQUF5QztJQUM5RCx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsdURBQXVEO0lBQ3ZGLHNCQUFzQixFQUFFLEtBQUssRUFBRSxzREFBc0Q7SUFDckYsV0FBVyxFQUFFLEtBQUssRUFBRSxzQ0FBc0M7SUFDMUQsV0FBVyxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsNEZBQTRGO0lBQzNILGdCQUFnQixFQUFFLEdBQUcsRUFBRSxtRkFBbUY7SUFDMUcsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLHVHQUF1RztJQUNwSSxlQUFlLEVBQUUsS0FBSztJQUN0QixpQkFBaUIsRUFBRSxDQUFDO0lBQ3BCLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLE9BQU8sRUFBRSxDQUFDLEVBQUUsd0NBQXdDO0lBQ3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsd0NBQXdDO0lBQ3RELE9BQU8sRUFBRSxDQUFDLEVBQUUs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QXFCLEVBQUUsS0FBSyxFQUFFLCtDQUErQztJQUM3RSw2QkFBNkIsRUFBRSxLQUFLLEVBQUUsb0RBQW9EO0lBQzFGLE9BQU8sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLG1HQUFtRztDQUMxSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcGFjdFR5cGUsXG4gIERpclR5cGVzLFxuICBEaXNwbGF5R3JpZCxcbiAgR3JpZHN0ZXJDb25maWcsXG4gIEdyaWRUeXBlXG59IGZyb20gJy4vZ3JpZHN0ZXJDb25maWcuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IEdyaWRzdGVyQ29uZmlnU2VydmljZTogR3JpZHN0ZXJDb25maWcgPSB7XG4gIGdyaWRUeXBlOiBHcmlkVHlwZS5GaXQsIC8vICdmaXQnIHdpbGwgZml0IHRoZSBpdGVtcyBpbiB0aGUgY29udGFpbmVyIHdpdGhvdXQgc2Nyb2xsO1xuICBzY2FsZTogMSwgLy8gc2NhbGUgcGFyYW0gdG8gem9vbSBpbi96b29tIG91dFxuICAvLyAnc2Nyb2xsVmVydGljYWwnIHdpbGwgZml0IG9uIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIGl0ZW1zIHdpbGwgYmUgdGhlIHNhbWUgYXMgdGhlIHdpZHRoXG4gIC8vICdzY3JvbGxIb3Jpem9udGFsJyB3aWxsIGZpdCBvbiBoZWlnaHQgYW5kIHdpZHRoIG9mIHRoZSBpdGVtcyB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSBoZWlnaHRcbiAgLy8gJ2ZpeGVkJyB3aWxsIHNldCB0aGUgcm93cyBhbmQgY29sdW1ucyBkaW1lbnNpb25zIGJhc2VkIG9uIGZpeGVkQ29sV2lkdGggYW5kIGZpeGVkUm93SGVpZ2h0IG9wdGlvbnNcbiAgLy8gJ3ZlcnRpY2FsRml4ZWQnIHdpbGwgc2V0IHRoZSByb3dzIHRvIGZpeGVkUm93SGVpZ2h0IGFuZCBjb2x1bW5zIHdpZHRoIHdpbGwgZml0IHRoZSBzcGFjZSBhdmFpbGFibGVcbiAgLy8gJ2hvcml6b250YWxGaXhlZCcgd2lsbCBzZXQgdGhlIGNvbHVtbnMgdG8gZml4ZWRDb2xXaWR0aCBhbmQgcm93cyBoZWlnaHQgd2lsbCBmaXQgdGhlIHNwYWNlIGF2YWlsYWJsZVxuICBmaXhlZENvbFdpZHRoOiAyNTAsIC8vIGZpeGVkIGNvbCB3aWR0aCBmb3IgZ3JpZFR5cGU6ICdmaXhlZCdcbiAgZml4ZWRSb3dIZWlnaHQ6IDI1MCwgLy8gZml4ZWQgcm93IGhlaWdodCBmb3IgZ3JpZFR5cGU6ICdmaXhlZCdcbiAga2VlcEZpeGVkSGVpZ2h0SW5Nb2JpbGU6IGZhbHNlLCAvLyBrZWVwIHRoZSBoZWlnaHQgZnJvbSBmaXhlZCBncmlkVHlwZSBpbiBtb2JpbGUgbGF5b3V0XG4gIGtlZXBGaXhlZFdpZHRoSW5Nb2JpbGU6IGZhbHNlLCAvLyBrZWVwIHRoZSB3aWR0aCBmcm9tIGZpeGVkIGdyaWRUeXBlIGluIG1vYmlsZSBsYXlvdXRcbiAgc2V0R3JpZFNpemU6IGZhbHNlLCAvLyBzZXRzIGdyaWQgc2l6ZSBkZXBlbmRpbmcgb24gY29udGVudFxuICBjb21wYWN0VHlwZTogQ29tcGFjdFR5cGUuTm9uZSwgLy8gY29tcGFjdCBpdGVtczogJ25vbmUnIHwgJ2NvbXBhY3RVcCcgfCAnY29tcGFjdExlZnQnIHwgJ2NvbXBhY3RVcCZMZWZ0JyB8ICdjb21wYWN0TGVmdCZVcCdcbiAgbW9iaWxlQnJlYWtwb2ludDogNjQwLCAvLyBpZiB0aGUgc2NyZWVuIGlzIG5vdCB3aWRlciB0aGF0IHRoaXMsIHJlbW92ZSB0aGUgZ3JpZCBsYXlvdXQgYW5kIHN0YWNrIHRoZSBpdGVtc1xuICB1c2VCb2R5Rm9yQnJlYWtwb2ludDogZmFsc2UsIC8vIHdoZXRoZXIgdG8gdXNlIHRoZSBib2R5IHdpZHRoIHRvIGRldGVybWluZSB0aGUgbW9iaWxlIGJyZWFrcG9pbnQuIFVzZXMgdGhlIGVsZW1lbnQgd2lkdGggd2hlbiBmYWxzZS5cbiAgYWxsb3dNdWx0aUxheWVyOiBmYWxzZSxcbiAgZGVmYXVsdExheWVySW5kZXg6IDAsXG4gIG1heExheWVySW5kZXg6IDIsXG4gIGJhc2VMYXllckluZGV4OiAxLFxuICBtaW5Db2xzOiAxLCAvLyBtaW5pbXVtIGFtb3VudCBvZiBjb2x1bW5zIGluIHRoZSBncmlkXG4gIG1heENvbHM6IDEwMCwgLy8gbWF4aW11bSBhbW91bnQgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZFxuICBtaW5Sb3dzOiAxLCAvLyBtaW5pbXVtIGFtb3VudCBvZiByb3dzIGluIHRoZSBncmlkXG4gIG1heFJvd3M6IDEwMCwgLy8gbWF4aW11bSBhbW91bnQgb2Ygcm93cyBpbiB0aGUgZ3JpZFxuICBkZWZhdWx0SXRlbUNvbHM6IDEsIC8vIGRlZmF1bHQgd2lkdGggb2YgYW4gaXRlbSBpbiBjb2x1bW5zXG4gIGRlZmF1bHRJdGVtUm93czogMSwgLy8gZGVmYXVsdCBoZWlnaHQgb2YgYW4gaXRlbSBpbiByb3dzXG4gIG1heEl0ZW1Db2xzOiA1MCwgLy8gbWF4IGl0ZW0gbnVtYmVyIG9mIGNvbHNcbiAgbWF4SXRlbVJvd3M6IDUwLCAvLyBtYXggaXRlbSBudW1iZXIgb2Ygcm93c1xuICBtaW5JdGVtQ29sczogMSwgLy8gbWluIGl0ZW0gbnVtYmVyIG9mIGNvbHVtbnNcbiAgbWluSXRlbVJvd3M6IDEsIC8vIG1pbiBpdGVtIG51bWJlciBvZiByb3dzXG4gIG1pbkl0ZW1BcmVhOiAxLCAvLyBtaW4gaXRlbSBhcmVhOiBjb2xzICogcm93c1xuICBtYXhJdGVtQXJlYTogMjUwMCwgLy8gbWF4IGl0ZW0gYXJlYTogY29scyAqIHJvd3NcbiAgYWRkRW1wdHlSb3dzQ291bnQ6IDAsIC8vIGFkZCBhIG51bWJlciBvZiBleHRyYSBlbXB0eSByb3dzIGF0IHRoZSBlbmRcbiAgcm93SGVpZ2h0UmF0aW86IDEsIC8vIHJvdyBoZWlnaHQgcmF0aW8gZnJvbSBjb2x1bW4gd2lkdGhcbiAgbWFyZ2luOiAxMCwgLy8gbWFyZ2luIGJldHdlZW4gZ3JpZCBpdGVtc1xuICBvdXRlck1hcmdpbjogdHJ1ZSwgLy8gaWYgbWFyZ2lucyB3aWxsIGFwcGx5IHRvIHRoZSBzaWRlcyBvZiB0aGUgY29udGFpbmVyXG4gIG91dGVyTWFyZ2luVG9wOiBudWxsLCAvLyBvdmVycmlkZSBvdXRlciBtYXJnaW4gZm9yIGdyaWRcbiAgb3V0ZXJNYXJnaW5SaWdodDogbnVsbCwgLy8gb3ZlcnJpZGUgb3V0ZXIgbWFyZ2luIGZvciBncmlkXG4gIG91dGVyTWFyZ2luQm90dG9tOiBudWxsLCAvLyBvdmVycmlkZSBvdXRlciBtYXJnaW4gZm9yIGdyaWRcbiAgb3V0ZXJNYXJnaW5MZWZ0OiBudWxsLCAvLyBvdmVycmlkZSBvdXRlciBtYXJnaW4gZm9yIGdyaWRcbiAgdXNlVHJhbnNmb3JtUG9zaXRpb25pbmc6IHRydWUsIC8vIHRvZ2dsZSBiZXR3ZWVuIHRyYW5zZm9ybSBvciB0b3AvbGVmdCBwb3NpdGlvbmluZyBvZiBpdGVtc1xuICBzY3JvbGxTZW5zaXRpdml0eTogMTAsIC8vIG1hcmdpbiBvZiB0aGUgZGFzaGJvYXJkIHdoZXJlIHRvIHN0YXJ0IHNjcm9sbGluZ1xuICBzY3JvbGxTcGVlZDogMjAsIC8vIGhvdyBtdWNoIHRvIHNjcm9sbCBlYWNoIG1vdXNlIG1vdmUgd2hlbiBpbiB0aGUgc2Nyb2xsU2Vuc2l0aXZpdHkgem9uZVxuICBpbml0Q2FsbGJhY2s6IHVuZGVmaW5lZCwgLy8gY2FsbGJhY2sgdG8gY2FsbCBhZnRlciBncmlkIGhhcyBpbml0aWFsaXplZC4gQXJndW1lbnRzOiBncmlkc3RlckNvbXBvbmVudFxuICBkZXN0cm95Q2FsbGJhY2s6IHVuZGVmaW5lZCwgLy8gY2FsbGJhY2sgdG8gY2FsbCBhZnRlciBncmlkIGhhcyBkZXN0cm95ZWQuIEFyZ3VtZW50czogZ3JpZHN0ZXJDb21wb25lbnRcbiAgZ3JpZFNpemVDaGFuZ2VkQ2FsbGJhY2s6IHVuZGVmaW5lZCwgLy8gY2FsbGJhY2sgdG8gY2FsbCBhZnRlciBncmlkIGhhcyBjaGFuZ2VkIHNpemUuIEFyZ3VtZW50czogZ3JpZHN0ZXJDb21wb25lbnRcbiAgaXRlbUNoYW5nZUNhbGxiYWNrOiB1bmRlZmluZWQsIC8vIGNhbGxiYWNrIHRvIGNhbGwgZm9yIGVhY2ggaXRlbSB3aGVuIGlzIGNoYW5nZXMgeCwgeSwgcm93cywgY29scy5cbiAgLy8gQXJndW1lbnRzOiBncmlkc3Rlckl0ZW0sIGdyaWRzdGVySXRlbUNvbXBvbmVudFxuICBpdGVtUmVzaXplQ2FsbGJhY2s6IHVuZGVmaW5lZCwgLy8gY2FsbGJhY2sgdG8gY2FsbCBmb3IgZWFjaCBpdGVtIHdoZW4gd2lkdGgvaGVpZ2h0IGNoYW5nZXMuXG4gIC8vIEFyZ3VtZW50czogZ3JpZHN0ZXJJdGVtLCBncmlkc3Rlckl0ZW1Db21wb25lbnRcbiAgaXRlbUluaXRDYWxsYmFjazogdW5kZWZpbmVkLCAvLyBjYWxsYmFjayB0byBjYWxsIGZvciBlYWNoIGl0ZW0gd2hlbiBpcyBpbml0aWFsaXplZC5cbiAgLy8gQXJndW1lbnRzOiBncmlkc3Rlckl0ZW0sIGdyaWRzdGVySXRlbUNvbXBvbmVudFxuICBpdGVtUmVtb3ZlZENhbGxiYWNrOiB1bmRlZmluZWQsIC8vIGNhbGxiYWNrIHRvIGNhbGwgZm9yIGVhY2ggaXRlbSB3aGVuIGlzIGluaXRpYWxpemVkLlxuICAvLyBBcmd1bWVudHM6IGdyaWRzdGVySXRlbSwgZ3JpZHN0ZXJJdGVtQ29tcG9uZW50XG4gIGl0ZW1WYWxpZGF0ZUNhbGxiYWNrOiB1bmRlZmluZWQsIC8vIGNhbGxiYWNrIHRvIGNhbGwgdG8gdmFsaWRhdGUgaXRlbSBwb3NpdGlvbi9zaXplLiBSZXR1cm4gdHJ1ZSBpZiB2YWxpZC5cbiAgLy8gQXJndW1lbnRzOiBncmlkc3Rlckl0ZW1cbiAgZW5hYmxlRW1wdHlDZWxsQ2xpY2s6IGZhbHNlLCAvLyBlbmFibGUgZW1wdHkgY2VsbCBjbGljayBldmVudHNcbiAgZW5hYmxlRW1wdHlDZWxsQ29udGV4dE1lbnU6IGZhbHNlLCAvLyBlbmFibGUgZW1wdHkgY2VsbCBjb250ZXh0IG1lbnUgKHJpZ2h0IGNsaWNrKSBldmVudHNcbiAgZW5hYmxlRW1wdHlDZWxsRHJvcDogZmFsc2UsIC8vIGVuYWJsZSBlbXB0eSBjZWxsIGRyb3AgZXZlbnRzXG4gIGVuYWJsZUVtcHR5Q2VsbERyYWc6IGZhbHNlLCAvLyBlbmFibGUgZW1wdHkgY2VsbCBkcmFnIGV2ZW50c1xuICBlbmFibGVPY2N1cGllZENlbGxEcm9wOiBmYWxzZSwgLy8gZW5hYmxlIG9jY3VwaWVkIGNlbGwgZHJvcCBldmVudHNcbiAgZW1wdHlDZWxsQ2xpY2tDYWxsYmFjazogdW5kZWZpbmVkLCAvLyBlbXB0eSBjZWxsIGNsaWNrIGNhbGxiYWNrXG4gIGVtcHR5Q2VsbENvbnRleHRNZW51Q2FsbGJhY2s6IHVuZGVmaW5lZCwgLy8gZW1wdHkgY2VsbCBjb250ZXh0IG1lbnUgKHJpZ2h0IGNsaWNrKSBjYWxsYmFja1xuICBlbXB0eUNlbGxEcm9wQ2FsbGJhY2s6IHVuZGVmaW5lZCwgLy8gZW1wdHkgY2VsbCBkcmFnIGRyb3AgY2FsbGJhY2suIEhUTUw1IERyYWcgJiBEcm9wXG4gIGVtcHR5Q2VsbERyYWdDYWxsYmFjazogdW5kZWZpbmVkLCAvLyBlbXB0eSBjZWxsIGRyYWcgYW5kIGNyZWF0ZSBpdGVtIGxpa2UgZXhjZWwgY2VsbCBzZWxlY3Rpb25cbiAgZW1wdHlDZWxsRHJhZ01heENvbHM6IDUwLCAvLyBsaW1pdCBlbXB0eSBjZWxsIGRyYWcgbWF4IGNvbHNcbiAgZW1wdHlDZWxsRHJhZ01heFJvd3M6IDUwLCAvLyBsaW1pdCBlbXB0eSBjZWxsIGRyYWcgbWF4IHJvd3NcbiAgLy8gQXJndW1lbnRzOiBldmVudCwgZ3JpZHN0ZXJJdGVte3gsIHksIHJvd3M6IGRlZmF1bHRJdGVtUm93cywgY29sczogZGVmYXVsdEl0ZW1Db2xzfVxuICBpZ25vcmVNYXJnaW5JblJvdzogZmFsc2UsIC8vIGlnbm9yZSB0aGUgZ2FwIGJldHdlZW4gcm93cyBmb3IgaXRlbXMgd2hpY2ggc3BhbiBtdWx0aXBsZSByb3dzIChzZWUgIzE2MiwgIzIyNClcbiAgZHJhZ2dhYmxlOiB7XG4gICAgZGVsYXlTdGFydDogMCwgLy8gbWlsbGlzZWNvbmRzIHRvIGRlbGF5IHRoZSBzdGFydCBvZiBkcmFnLCB1c2VmdWwgZm9yIHRvdWNoIGludGVyYWN0aW9uXG4gICAgZW5hYmxlZDogZmFsc2UsIC8vIGVuYWJsZS9kaXNhYmxlIGRyYWdnYWJsZSBpdGVtc1xuICAgIGlnbm9yZUNvbnRlbnRDbGFzczogJ2dyaWRzdGVyLWl0ZW0tY29udGVudCcsIC8vIGRlZmF1bHQgY29udGVudCBjbGFzcyB0byBpZ25vcmUgdGhlIGRyYWcgZXZlbnQgZnJvbVxuICAgIGlnbm9yZUNvbnRlbnQ6IGZhbHNlLCAvLyBpZiB0cnVlIGRyYWcgd2lsbCBzdGFydCBvbmx5IGZyb20gZWxlbWVudHMgZnJvbSBgZHJhZ0hhbmRsZUNsYXNzYFxuICAgIGRyYWdIYW5kbGVDbGFzczogJ2RyYWctaGFuZGxlcicsIC8vIGRyYWcgZXZlbnQgb25seSBmcm9tIHRoaXMgY2xhc3MuIElmIGBpZ25vcmVDb250ZW50YCBpcyB0cnVlLlxuICAgIHN0b3A6IHVuZGVmaW5lZCwgLy8gY2FsbGJhY2sgd2hlbiBkcmFnZ2luZyBhbiBpdGVtIHN0b3BzLiAgQWNjZXB0cyBQcm9taXNlIHJldHVybiB0byBjYW5jZWwvYXBwcm92ZSBkcmFnLlxuICAgIHN0YXJ0OiB1bmRlZmluZWQsIC8vIGNhbGxiYWNrIHdoZW4gZHJhZ2dpbmcgYW4gaXRlbSBzdGFydHMuXG4gICAgLy8gQXJndW1lbnRzOiBpdGVtLCBncmlkc3Rlckl0ZW0sIGV2ZW50XG4gICAgZHJvcE92ZXJJdGVtczogZmFsc2UsIC8vIGVuYWJsZSBkcm9wIGl0ZW1zIG9uIHRvcCBvdGhlciBpdGVtXG4gICAgZHJvcE92ZXJJdGVtc0NhbGxiYWNrOiB1bmRlZmluZWQgLy8gY2FsbGJhY2sgb24gZHJvcCBvdmVyIGFub3RoZXIgaXRlbVxuICAgIC8vIEFyZ3VtZW50czogc291cmNlLCB0YXJnZXQsIGdyaWRDb21wb25lbnRcbiAgfSxcbiAgcmVzaXphYmxlOiB7XG4gICAgZGVsYXlTdGFydDogMCwgLy8gbWlsbGlzZWNvbmRzIHRvIGRlbGF5IHRoZSBzdGFydCBvZiByZXNpemUsIHVzZWZ1bCBmb3IgdG91Y2ggaW50ZXJhY3Rpb25cbiAgICBlbmFibGVkOiBmYWxzZSwgLy8gZW5hYmxlL2Rpc2FibGUgcmVzaXphYmxlIGl0ZW1zXG4gICAgaGFuZGxlczoge1xuICAgICAgczogdHJ1ZSxcbiAgICAgIGU6IHRydWUsXG4gICAgICBuOiB0cnVlLFxuICAgICAgdzogdHJ1ZSxcbiAgICAgIHNlOiB0cnVlLFxuICAgICAgbmU6IHRydWUsXG4gICAgICBzdzogdHJ1ZSxcbiAgICAgIG53OiB0cnVlXG4gICAgfSwgLy8gcmVzaXphYmxlIGVkZ2VzIG9mIGFuIGl0ZW1cbiAgICBzdG9wOiB1bmRlZmluZWQsIC8vIGNhbGxiYWNrIHdoZW4gcmVzaXppbmcgYW4gaXRlbSBzdG9wcy4gQWNjZXB0cyBQcm9taXNlIHJldHVybiB0byBjYW5jZWwvYXBwcm92ZSByZXNpemUuXG4gICAgc3RhcnQ6IHVuZGVmaW5lZCAvLyBjYWxsYmFjayB3aGVuIHJlc2l6aW5nIGFuIGl0ZW0gc3RhcnRzLlxuICAgIC8vIEFyZ3VtZW50czogaXRlbSwgZ3JpZHN0ZXJJdGVtLCBldmVudFxuICB9LFxuICBzd2FwOiB0cnVlLCAvLyBhbGxvdyBpdGVtcyB0byBzd2l0Y2ggcG9zaXRpb24gaWYgZHJvcCBvbiB0b3Agb2YgYW5vdGhlclxuICBzd2FwV2hpbGVEcmFnZ2luZzogZmFsc2UsIC8vIGFsbG93IGl0ZW1zIHRvIHN3aXRjaCBwb3NpdGlvbiB3aGlsZSBkcmFnZ2luZ1xuICBwdXNoSXRlbXM6IGZhbHNlLCAvLyBwdXNoIGl0ZW1zIHdoZW4gcmVzaXppbmcgYW5kIGRyYWdnaW5nXG4gIGRpc2FibGVQdXNoT25EcmFnOiBmYWxzZSwgLy8gZGlzYWJsZSBwdXNoIG9uIGRyYWdcbiAgZGlzYWJsZVB1c2hPblJlc2l6ZTogZmFsc2UsIC8vIGRpc2FibGUgcHVzaCBvbiByZXNpemVcbiAgcHVzaERpcmVjdGlvbnM6IHsgbm9ydGg6IHRydWUsIGVhc3Q6IHRydWUsIHNvdXRoOiB0cnVlLCB3ZXN0OiB0cnVlIH0sIC8vIGNvbnRyb2wgdGhlIGRpcmVjdGlvbnMgaXRlbXMgYXJlIHB1c2hlZFxuICBwdXNoUmVzaXplSXRlbXM6IGZhbHNlLCAvLyBvbiByZXNpemUgb2YgaXRlbSB3aWxsIHNocmluayBhZGphY2VudCBpdGVtc1xuICBkaXNwbGF5R3JpZDogRGlzcGxheUdyaWQuT25EcmFnQW5kUmVzaXplLCAvLyBkaXNwbGF5IGJhY2tncm91bmQgZ3JpZCBvZiByb3dzIGFuZCBjb2x1bW5zXG4gIGRpc2FibGVXaW5kb3dSZXNpemU6IGZhbHNlLCAvLyBkaXNhYmxlIHRoZSB3aW5kb3cgb24gcmVzaXplIGxpc3RlbmVyLiBUaGlzIHdpbGwgc3RvcCBncmlkIHRvIHJlY2FsY3VsYXRlIG9uIHdpbmRvdyByZXNpemUuXG4gIGRpc2FibGVXYXJuaW5nczogZmFsc2UsIC8vIGRpc2FibGUgY29uc29sZSBsb2cgd2FybmluZ3MgYWJvdXQgbWlzcGxhY2VtZW50IG9mIGdyaWQgaXRlbXNcbiAgc2Nyb2xsVG9OZXdJdGVtczogZmFsc2UsIC8vIHNjcm9sbCB0byBuZXcgaXRlbXMgcGxhY2VkIGluIGEgc2Nyb2xsYWJsZSB2aWV3XG4gIGRpc2FibGVTY3JvbGxIb3Jpem9udGFsOiBmYWxzZSwgLy8gZGlzYWJsZSBob3Jpem9udGFsIHNjcm9sbGluZ1xuICBkaXNhYmxlU2Nyb2xsVmVydGljYWw6IGZhbHNlLCAvLyBkaXNhYmxlIHZlcnRpY2FsIHNjcm9sbGluZ1xuICBlbmFibGVCb3VuZGFyeUNvbnRyb2w6IGZhbHNlLCAvLyBlbmFibGUgYm91bmRhcnkgY29udHJvbCB3aGlsZSBkcmFnZ2luZyBpdGVtc1xuICBkaXNhYmxlQXV0b1Bvc2l0aW9uT25Db25mbGljdDogZmFsc2UsIC8vIGRpc2FibGUgYXV0by1wb3NpdGlvbiBvZiBpdGVtcyBvbiBjb25mbGljdCBzdGF0ZSxcbiAgZGlyVHlwZTogRGlyVHlwZXMuTFRSIC8vIHBhZ2UgZGlyZWN0aW9uLCBydGw9cmlnaHQgdG8gbGVmdCBsdHI9IGxlZnQgdG8gcmlnaHQsIGlmIHlvdSB1c2UgcnRsIGxhbmd1YWdlIHNldCBkaXJUeXBlIHRvIHJ0bFxufTtcbiJdfQ==
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZHN0ZXJDb25maWcuY29uc3RhbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYS1kYXNoYm9hcmQtZnJhbWV3b3JrL3NyYy9ncmlkc3Rlci9saWIvZ3JpZHN0ZXJDb25maWcuY29uc3RhbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxRQUFRLEVBQ1IsV0FBVyxFQUVYLFFBQVEsRUFDVCxNQUFNLDRCQUE0QixDQUFDO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFtQjtJQUNuRCxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSw0REFBNEQ7SUFDcEYsS0FBSyxFQUFFLENBQUMsRUFBRSxrQ0FBa0M7SUFDNUMsMkZBQTJGO0lBQzNGLDhGQUE4RjtJQUM5RixxR0FBcUc7SUFDckcscUdBQXFHO0lBQ3JHLHVHQUF1RztJQUN2RyxhQUFhLEVBQUUsR0FBRyxFQUFFLHdDQUF3QztJQUM1RCxjQUFjLEVBQUUsR0FBRyxFQUFFLHlDQUF5QztJQUM5RCx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsdURBQXVEO0lBQ3ZGLHNCQUFzQixFQUFFLEtBQUssRUFBRSxzREFBc0Q7SUFDckYsV0FBVyxFQUFFLEtBQUssRUFBRSxzQ0FBc0M7SUFDMUQsV0FBVyxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsNEZBQTRGO0lBQzNILGdCQUFnQixFQUFFLEdBQUcsRUFBRSxtRkFBbUY7SUFDMUcsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLHVHQUF1RztJQUNwSSxlQUFlLEVBQUUsS0FBSztJQUN0QixpQkFBaUIsRUFBRSxDQUFDO0lBQ3BCLGFBQWEsRUFBRSxDQUFDO0lBQ2hCLGNBQWMsRUFBRSxDQUFDO0lBQ2pCLE9BQU8sRUFBRSxDQUFDLEVBQUUsd0NBQXdDO0lBQ3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsd0NBQXdDO0lBQ3RELE9BQU8sRUFBRSxDQUFDLEVBQUUscUNBQXFDO0lBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUscUNBQXFDO0lBQ25ELGVBQWUsRUFBRSxDQUFDLEVBQUUsc0NBQXNDO0lBQzFELGVBQWUsRUFBRSxDQUFDLEVBQUUsb0NBQW9DO0lBQ3hELFdBQVcsRUFBRSxFQUFFLEVBQUUsMEJBQTBCO0lBQzNDLFdBQVcsRUFBRSxFQUFFLEVBQUUsMEJBQTBCO0lBQzNDLFdBQVcsRUFBRSxDQUFDLEVBQUUsNkJBQTZCO0lBQzdDLFdBQVcsRUFBRSxDQUFDLEVBQUUsMEJBQTBCO0lBQzFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsNkJBQTZCO0lBQzdDLFdBQVcsRUFBRSxJQUFJLEVBQUUsNkJBQTZCO0lBQ2hELGlCQUFpQixFQUFFLENBQUMsRUFBRSw4Q0FBOEM7SUFDcEUsY0FBYyxFQUFFLENBQUMsRUFBRSxxQ0FBcUM7SUFDeEQsTUFBTSxFQUFFLEVBQUUsRUFBRSw0QkFBNEI7SUFDeEMsV0FBVyxFQUFFLElBQUksRUFBRSxzREFBc0Q7SUFDekUsY0FBYyxFQUFFLElBQUksRUFBRSxpQ0FBaUM7SUFDdkQsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLGlDQUFpQztJQUN6RCxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsaUNBQWlDO0lBQzFELGVBQWUsRUFBRSxJQUFJLEVBQUUsaUNBQWlDO0lBQ3hELHVCQUF1QixFQUFFLElBQUksRUFBRSw0REFBNEQ7SUFDM0YsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLG1EQUFtRDtJQUMxRSxXQUFXLEVBQUUsRUFBRSxFQUFFLHdFQUF3RTtJQUN6RixZQUFZLEVBQUUsU0FBUyxFQUFFLDRFQUE0RTtJQUNyRyxlQUFlLEVBQUUsU0FBUyxFQUFFLDBFQUEwRTtJQUN0Ryx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsNkVBQTZFO0lBQ2pILGtCQUFrQixFQUFFLFNBQVMsRUFBRSxtRUFBbUU7SUFDbEcsaURBQWlEO0lBQ2pELGtCQUFrQixFQUFFLFNBQVMsRUFBRSw0REFBNEQ7SUFDM0YsaURBQWlEO0lBQ2pELGdCQUFnQixFQUFFLFNBQVMsRUFBRSxzREFBc0Q7SUFDbkYsaURBQWlEO0lBQ2pELG1CQUFtQixFQUFFLFNBQVMsRUFBRSxzREFBc0Q7SUFDdEYsaURBQWlEO0lBQ2pELG9CQUFvQixFQUFFLFNBQVMsRUFBRSx5RUFBeUU7SUFDMUcsMEJBQTBCO0lBQzFCLG9CQUFvQixFQUFFLEtBQUssRUFBRSxpQ0FBaUM7SUFDOUQsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLHNEQUFzRDtJQUN6RixtQkFBbUIsRUFBRSxLQUFLLEVBQUUsZ0NBQWdDO0lBQzVELG1CQUFtQixFQUFFLEtBQUssRUFBRSxnQ0FBZ0M7SUFDNUQsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLG1DQUFtQztJQUNsRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsNEJBQTRCO0lBQy9ELDRCQUE0QixFQUFFLFNBQVMsRUFBRSxpREFBaUQ7SUFDMUYscUJBQXFCLEVBQUUsU0FBUyxFQUFFLG1EQUFtRDtJQUNyRixxQkFBcUIsRUFBRSxTQUFTLEVBQUUsNERBQTREO0lBQzlGLG9CQUFvQixFQUFFLEVBQUUsRUFBRSxpQ0FBaUM7SUFDM0Qsb0JBQW9CLEVBQUUsRUFBRSxFQUFFLGlDQUFpQztJQUMzRCxxRkFBcUY7SUFDckYsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLGtGQUFrRjtJQUM1RyxTQUFTLEVBQUU7UUFDVCxVQUFVLEVBQUUsQ0FBQyxFQUFFLHdFQUF3RTtRQUN2RixPQUFPLEVBQUUsS0FBSyxFQUFFLGlDQUFpQztRQUNqRCxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxzREFBc0Q7UUFDbkcsYUFBYSxFQUFFLEtBQUssRUFBRSxvRUFBb0U7UUFDMUYsZUFBZSxFQUFFLGNBQWMsRUFBRSwrREFBK0Q7UUFDaEcsSUFBSSxFQUFFLFNBQVMsRUFBRSx3RkFBd0Y7UUFDekcsS0FBSyxFQUFFLFNBQVMsRUFBRSx5Q0FBeUM7UUFDM0QsdUNBQXVDO1FBQ3ZDLGFBQWEsRUFBRSxLQUFLLEVBQUUsc0NBQXNDO1FBQzVELHFCQUFxQixFQUFFLFNBQVMsQ0FBQyxxQ0FBcUM7UUFDdEUsMkNBQTJDO0tBQzVDO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsVUFBVSxFQUFFLENBQUMsRUFBRSwwRUFBMEU7UUFDekYsT0FBTyxFQUFFLEtBQUssRUFBRSxpQ0FBaUM7UUFDakQsT0FBTyxFQUFFO1lBQ1AsQ0FBQyxFQUFFLElBQUk7WUFDUCxDQUFDLEVBQUUsSUFBSTtZQUNQLENBQUMsRUFBRSxJQUFJO1lBQ1AsQ0FBQyxFQUFFLElBQUk7WUFDUCxFQUFFLEVBQUUsSUFBSTtZQUNSLEVBQUUsRUFBRSxJQUFJO1lBQ1IsRUFBRSxFQUFFLElBQUk7WUFDUixFQUFFLEVBQUUsSUFBSTtTQUNULEVBQUUsNkJBQTZCO1FBQ2hDLElBQUksRUFBRSxTQUFTLEVBQUUseUZBQXlGO1FBQzFHLEtBQUssRUFBRSxTQUFTLENBQUMseUNBQXlDO1FBQzFELHVDQUF1QztLQUN4QztJQUNELElBQUksRUFBRSxJQUFJLEVBQUUsMkRBQTJEO0lBQ3ZFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxnREFBZ0Q7SUFDMUUsU0FBUyxFQUFFLEtBQUssRUFBRSx3Q0FBd0M7SUFDMUQsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLHVCQUF1QjtJQUNqRCxtQkFBbUIsRUFBRSxLQUFLLEVBQUUseUJBQXlCO0lBQ3JELGNBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSwwQ0FBMEM7SUFDaEgsZUFBZSxFQUFFLEtBQUssRUFBRSwrQ0FBK0M7SUFDdkUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxlQUFlLEVBQUUsOENBQThDO0lBQ3hGLG1CQUFtQixFQUFFLEtBQUssRUFBRSw4RkFBOEY7SUFDMUgsZUFBZSxFQUFFLEtBQUssRUFBRSxnRUFBZ0U7SUFDeEYsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLGtEQUFrRDtJQUMzRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsK0JBQStCO0lBQy9ELHFCQUFxQixFQUFFLEtBQUssRUFBRSw2QkFBNkI7SUFDM0QscUJBQXFCLEVBQUUsS0FBSyxFQUFFLCtDQUErQztJQUM3RSw2QkFBNkIsRUFBRSxLQUFLLEVBQUUsb0RBQW9EO0lBQzFGLE9BQU8sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLG1HQUFtRztDQUMxSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wYWN0VHlwZSxcclxuICBEaXJUeXBlcyxcclxuICBEaXNwbGF5R3JpZCxcclxuICBHcmlkc3RlckNvbmZpZyxcclxuICBHcmlkVHlwZVxyXG59IGZyb20gJy4vZ3JpZHN0ZXJDb25maWcuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjb25zdCBHcmlkc3RlckNvbmZpZ1NlcnZpY2U6IEdyaWRzdGVyQ29uZmlnID0ge1xyXG4gIGdyaWRUeXBlOiBHcmlkVHlwZS5GaXQsIC8vICdmaXQnIHdpbGwgZml0IHRoZSBpdGVtcyBpbiB0aGUgY29udGFpbmVyIHdpdGhvdXQgc2Nyb2xsO1xyXG4gIHNjYWxlOiAxLCAvLyBzY2FsZSBwYXJhbSB0byB6b29tIGluL3pvb20gb3V0XHJcbiAgLy8gJ3Njcm9sbFZlcnRpY2FsJyB3aWxsIGZpdCBvbiB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBpdGVtcyB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSB3aWR0aFxyXG4gIC8vICdzY3JvbGxIb3Jpem9udGFsJyB3aWxsIGZpdCBvbiBoZWlnaHQgYW5kIHdpZHRoIG9mIHRoZSBpdGVtcyB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSBoZWlnaHRcclxuICAvLyAnZml4ZWQnIHdpbGwgc2V0IHRoZSByb3dzIGFuZCBjb2x1bW5zIGRpbWVuc2lvbnMgYmFzZWQgb24gZml4ZWRDb2xXaWR0aCBhbmQgZml4ZWRSb3dIZWlnaHQgb3B0aW9uc1xyXG4gIC8vICd2ZXJ0aWNhbEZpeGVkJyB3aWxsIHNldCB0aGUgcm93cyB0byBmaXhlZFJvd0hlaWdodCBhbmQgY29sdW1ucyB3aWR0aCB3aWxsIGZpdCB0aGUgc3BhY2UgYXZhaWxhYmxlXHJcbiAgLy8gJ2hvcml6b250YWxGaXhlZCcgd2lsbCBzZXQgdGhlIGNvbHVtbnMgdG8gZml4ZWRDb2xXaWR0aCBhbmQgcm93cyBoZWlnaHQgd2lsbCBmaXQgdGhlIHNwYWNlIGF2YWlsYWJsZVxyXG4gIGZpeGVkQ29sV2lkdGg6IDI1MCwgLy8gZml4ZWQgY29sIHdpZHRoIGZvciBncmlkVHlwZTogJ2ZpeGVkJ1xyXG4gIGZpeGVkUm93SGVpZ2h0OiAyNTAsIC8vIGZpeGVkIHJvdyBoZWlnaHQgZm9yIGdyaWRUeXBlOiAnZml4ZWQnXHJcbiAga2VlcEZpeGVkSGVpZ2h0SW5Nb2JpbGU6IGZhbHNlLCAvLyBrZWVwIHRoZSBoZWlnaHQgZnJvbSBmaXhlZCBncmlkVHlwZSBpbiBtb2JpbGUgbGF5b3V0XHJcbiAga2VlcEZpeGVkV2lkdGhJbk1vYmlsZTogZmFsc2UsIC8vIGtlZXAgdGhlIHdpZHRoIGZyb20gZml4ZWQgZ3JpZFR5cGUgaW4gbW9iaWxlIGxheW91dFxyXG4gIHNldEdyaWRTaXplOiBmYWxzZSwgLy8gc2V0cyBncmlkIHNpemUgZGVwZW5kaW5nIG9uIGNvbnRlbnRcclxuICBjb21wYWN0VHlwZTogQ29tcGFjdFR5cGUuTm9uZSwgLy8gY29tcGFjdCBpdGVtczogJ25vbmUnIHwgJ2NvbXBhY3RVcCcgfCAnY29tcGFjdExlZnQnIHwgJ2NvbXBhY3RVcCZMZWZ0JyB8ICdjb21wYWN0TGVmdCZVcCdcclxuICBtb2JpbGVCcmVha3BvaW50OiA2NDAsIC8vIGlmIHRoZSBzY3JlZW4gaXMgbm90IHdpZGVyIHRoYXQgdGhpcywgcmVtb3ZlIHRoZSBncmlkIGxheW91dCBhbmQgc3RhY2sgdGhlIGl0ZW1zXHJcbiAgdXNlQm9keUZvckJyZWFrcG9pbnQ6IGZhbHNlLCAvLyB3aGV0aGVyIHRvIHVzZSB0aGUgYm9keSB3aWR0aCB0byBkZXRlcm1pbmUgdGhlIG1vYmlsZSBicmVha3BvaW50LiBVc2VzIHRoZSBlbGVtZW50IHdpZHRoIHdoZW4gZmFsc2UuXHJcbiAgYWxsb3dNdWx0aUxheWVyOiBmYWxzZSxcclxuICBkZWZhdWx0TGF5ZXJJbmRleDogMCxcclxuICBtYXhMYXllckluZGV4OiAyLFxyXG4gIGJhc2VMYXllckluZGV4OiAxLFxyXG4gIG1pbkNvbHM6IDEsIC8vIG1pbmltdW0gYW1vdW50IG9mIGNvbHVtbnMgaW4gdGhlIGdyaWRcclxuICBtYXhDb2xzOiAxMDAsIC8vIG1heGltdW0gYW1vdW50IG9mIGNvbHVtbnMgaW4gdGhlIGdyaWRcclxuICBtaW5Sb3dzOiAxLCAvLyBtaW5pbXVtIGFtb3VudCBvZiByb3dzIGluIHRoZSBncmlkXHJcbiAgbWF4Um93czogMTAwLCAvLyBtYXhpbXVtIGFtb3VudCBvZiByb3dzIGluIHRoZSBncmlkXHJcbiAgZGVmYXVsdEl0ZW1Db2xzOiAxLCAvLyBkZWZhdWx0IHdpZHRoIG9mIGFuIGl0ZW0gaW4gY29sdW1uc1xyXG4gIGRlZmF1bHRJdGVtUm93czogMSwgLy8gZGVmYXVsdCBoZWlnaHQgb2YgYW4gaXRlbSBpbiByb3dzXHJcbiAgbWF4SXRlbUNvbHM6IDUwLCAvLyBtYXggaXRlbSBudW1iZXIgb2YgY29sc1xyXG4gIG1heEl0ZW1Sb3dzOiA1MCwgLy8gbWF4IGl0ZW0gbnVtYmVyIG9mIHJvd3NcclxuICBtaW5JdGVtQ29sczogMSwgLy8gbWluIGl0ZW0gbnVtYmVyIG9mIGNvbHVtbnNcclxuICBtaW5JdGVtUm93czogMSwgLy8gbWluIGl0ZW0gbnVtYmVyIG9mIHJvd3NcclxuICBtaW5JdGVtQXJlYTogMSwgLy8gbWluIGl0ZW0gYXJlYTogY29scyAqIHJvd3NcclxuICBtYXhJdGVtQXJlYTogMjUwMCwgLy8gbWF4IGl0ZW0gYXJlYTogY29scyAqIHJvd3NcclxuICBhZGRFbXB0eVJvd3NDb3VudDogMCwgLy8gYWRkIGEgbnVtYmVyIG9mIGV4dHJhIGVtcHR5IHJvd3MgYXQgdGhlIGVuZFxyXG4gIHJvd0hlaWdodFJhdGlvOiAxLCAvLyByb3cgaGVpZ2h0IHJhdGlvIGZyb20gY29sdW1uIHdpZHRoXHJcbiAgbWFyZ2luOiAxMCwgLy8gbWFyZ2luIGJldHdlZW4gZ3JpZCBpdGVtc1xyXG4gIG91dGVyTWFyZ2luOiB0cnVlLCAvLyBpZiBtYXJnaW5zIHdpbGwgYXBwbHkgdG8gdGhlIHNpZGVzIG9mIHRoZSBjb250YWluZXJcclxuICBvdXRlck1hcmdpblRvcDogbnVsbCwgLy8gb3ZlcnJpZGUgb3V0ZXIgbWFyZ2luIGZvciBncmlkXHJcbiAgb3V0ZXJNYXJnaW5SaWdodDogbnVsbCwgLy8gb3ZlcnJpZGUgb3V0ZXIgbWFyZ2luIGZvciBncmlkXHJcbiAgb3V0ZXJNYXJnaW5Cb3R0b206IG51bGwsIC8vIG92ZXJyaWRlIG91dGVyIG1hcmdpbiBmb3IgZ3JpZFxyXG4gIG91dGVyTWFyZ2luTGVmdDogbnVsbCwgLy8gb3ZlcnJpZGUgb3V0ZXIgbWFyZ2luIGZvciBncmlkXHJcbiAgdXNlVHJhbnNmb3JtUG9zaXRpb25pbmc6IHRydWUsIC8vIHRvZ2dsZSBiZXR3ZWVuIHRyYW5zZm9ybSBvciB0b3AvbGVmdCBwb3NpdGlvbmluZyBvZiBpdGVtc1xyXG4gIHNjcm9sbFNlbnNpdGl2aXR5OiAxMCwgLy8gbWFyZ2luIG9mIHRoZSBkYXNoYm9hcmQgd2hlcmUgdG8gc3RhcnQgc2Nyb2xsaW5nXHJcbiAgc2Nyb2xsU3BlZWQ6IDIwLCAvLyBob3cgbXVjaCB0byBzY3JvbGwgZWFjaCBtb3VzZSBtb3ZlIHdoZW4gaW4gdGhlIHNjcm9sbFNlbnNpdGl2aXR5IHpvbmVcclxuICBpbml0Q2FsbGJhY2s6IHVuZGVmaW5lZCwgLy8gY2FsbGJhY2sgdG8gY2FsbCBhZnRlciBncmlkIGhhcyBpbml0aWFsaXplZC4gQXJndW1lbnRzOiBncmlkc3RlckNvbXBvbmVudFxyXG4gIGRlc3Ryb3lDYWxsYmFjazogdW5kZWZpbmVkLCAvLyBjYWxsYmFjayB0byBjYWxsIGFmdGVyIGdyaWQgaGFzIGRlc3Ryb3llZC4gQXJndW1lbnRzOiBncmlkc3RlckNvbXBvbmVudFxyXG4gIGdyaWRTaXplQ2hhbmdlZENhbGxiYWNrOiB1bmRlZmluZWQsIC8vIGNhbGxiYWNrIHRvIGNhbGwgYWZ0ZXIgZ3JpZCBoYXMgY2hhbmdlZCBzaXplLiBBcmd1bWVudHM6IGdyaWRzdGVyQ29tcG9uZW50XHJcbiAgaXRlbUNoYW5nZUNhbGxiYWNrOiB1bmRlZmluZWQsIC8vIGNhbGxiYWNrIHRvIGNhbGwgZm9yIGVhY2ggaXRlbSB3aGVuIGlzIGNoYW5nZXMgeCwgeSwgcm93cywgY29scy5cclxuICAvLyBBcmd1bWVudHM6IGdyaWRzdGVySXRlbSwgZ3JpZHN0ZXJJdGVtQ29tcG9uZW50XHJcbiAgaXRlbVJlc2l6ZUNhbGxiYWNrOiB1bmRlZmluZWQsIC8vIGNhbGxiYWNrIHRvIGNhbGwgZm9yIGVhY2ggaXRlbSB3aGVuIHdpZHRoL2hlaWdodCBjaGFuZ2VzLlxyXG4gIC8vIEFyZ3VtZW50czogZ3JpZHN0ZXJJdGVtLCBncmlkc3Rlckl0ZW1Db21wb25lbnRcclxuICBpdGVtSW5pdENhbGxiYWNrOiB1bmRlZmluZWQsIC8vIGNhbGxiYWNrIHRvIGNhbGwgZm9yIGVhY2ggaXRlbSB3aGVuIGlzIGluaXRpYWxpemVkLlxyXG4gIC8vIEFyZ3VtZW50czogZ3JpZHN0ZXJJdGVtLCBncmlkc3Rlckl0ZW1Db21wb25lbnRcclxuICBpdGVtUmVtb3ZlZENhbGxiYWNrOiB1bmRlZmluZWQsIC8vIGNhbGxiYWNrIHRvIGNhbGwgZm9yIGVhY2ggaXRlbSB3aGVuIGlzIGluaXRpYWxpemVkLlxyXG4gIC8vIEFyZ3VtZW50czogZ3JpZHN0ZXJJdGVtLCBncmlkc3Rlckl0ZW1Db21wb25lbnRcclxuICBpdGVtVmFsaWRhdGVDYWxsYmFjazogdW5kZWZpbmVkLCAvLyBjYWxsYmFjayB0byBjYWxsIHRvIHZhbGlkYXRlIGl0ZW0gcG9zaXRpb24vc2l6ZS4gUmV0dXJuIHRydWUgaWYgdmFsaWQuXHJcbiAgLy8gQXJndW1lbnRzOiBncmlkc3Rlckl0ZW1cclxuICBlbmFibGVFbXB0eUNlbGxDbGljazogZmFsc2UsIC8vIGVuYWJsZSBlbXB0eSBjZWxsIGNsaWNrIGV2ZW50c1xyXG4gIGVuYWJsZUVtcHR5Q2VsbENvbnRleHRNZW51OiBmYWxzZSwgLy8gZW5hYmxlIGVtcHR5IGNlbGwgY29udGV4dCBtZW51IChyaWdodCBjbGljaykgZXZlbnRzXHJcbiAgZW5hYmxlRW1wdHlDZWxsRHJvcDogZmFsc2UsIC8vIGVuYWJsZSBlbXB0eSBjZWxsIGRyb3AgZXZlbnRzXHJcbiAgZW5hYmxlRW1wdHlDZWxsRHJhZzogZmFsc2UsIC8vIGVuYWJsZSBlbXB0eSBjZWxsIGRyYWcgZXZlbnRzXHJcbiAgZW5hYmxlT2NjdXBpZWRDZWxsRHJvcDogZmFsc2UsIC8vIGVuYWJsZSBvY2N1cGllZCBjZWxsIGRyb3AgZXZlbnRzXHJcbiAgZW1wdHlDZWxsQ2xpY2tDYWxsYmFjazogdW5kZWZpbmVkLCAvLyBlbXB0eSBjZWxsIGNsaWNrIGNhbGxiYWNrXHJcbiAgZW1wdHlDZWxsQ29udGV4dE1lbnVDYWxsYmFjazogdW5kZWZpbmVkLCAvLyBlbXB0eSBjZWxsIGNvbnRleHQgbWVudSAocmlnaHQgY2xpY2spIGNhbGxiYWNrXHJcbiAgZW1wdHlDZWxsRHJvcENhbGxiYWNrOiB1bmRlZmluZWQsIC8vIGVtcHR5IGNlbGwgZHJhZyBkcm9wIGNhbGxiYWNrLiBIVE1MNSBEcmFnICYgRHJvcFxyXG4gIGVtcHR5Q2VsbERyYWdDYWxsYmFjazogdW5kZWZpbmVkLCAvLyBlbXB0eSBjZWxsIGRyYWcgYW5kIGNyZWF0ZSBpdGVtIGxpa2UgZXhjZWwgY2VsbCBzZWxlY3Rpb25cclxuICBlbXB0eUNlbGxEcmFnTWF4Q29sczogNTAsIC8vIGxpbWl0IGVtcHR5IGNlbGwgZHJhZyBtYXggY29sc1xyXG4gIGVtcHR5Q2VsbERyYWdNYXhSb3dzOiA1MCwgLy8gbGltaXQgZW1wdHkgY2VsbCBkcmFnIG1heCByb3dzXHJcbiAgLy8gQXJndW1lbnRzOiBldmVudCwgZ3JpZHN0ZXJJdGVte3gsIHksIHJvd3M6IGRlZmF1bHRJdGVtUm93cywgY29sczogZGVmYXVsdEl0ZW1Db2xzfVxyXG4gIGlnbm9yZU1hcmdpbkluUm93OiBmYWxzZSwgLy8gaWdub3JlIHRoZSBnYXAgYmV0d2VlbiByb3dzIGZvciBpdGVtcyB3aGljaCBzcGFuIG11bHRpcGxlIHJvd3MgKHNlZSAjMTYyLCAjMjI0KVxyXG4gIGRyYWdnYWJsZToge1xyXG4gICAgZGVsYXlTdGFydDogMCwgLy8gbWlsbGlzZWNvbmRzIHRvIGRlbGF5IHRoZSBzdGFydCBvZiBkcmFnLCB1c2VmdWwgZm9yIHRvdWNoIGludGVyYWN0aW9uXHJcbiAgICBlbmFibGVkOiBmYWxzZSwgLy8gZW5hYmxlL2Rpc2FibGUgZHJhZ2dhYmxlIGl0ZW1zXHJcbiAgICBpZ25vcmVDb250ZW50Q2xhc3M6ICdncmlkc3Rlci1pdGVtLWNvbnRlbnQnLCAvLyBkZWZhdWx0IGNvbnRlbnQgY2xhc3MgdG8gaWdub3JlIHRoZSBkcmFnIGV2ZW50IGZyb21cclxuICAgIGlnbm9yZUNvbnRlbnQ6IGZhbHNlLCAvLyBpZiB0cnVlIGRyYWcgd2lsbCBzdGFydCBvbmx5IGZyb20gZWxlbWVudHMgZnJvbSBgZHJhZ0hhbmRsZUNsYXNzYFxyXG4gICAgZHJhZ0hhbmRsZUNsYXNzOiAnZHJhZy1oYW5kbGVyJywgLy8gZHJhZyBldmVudCBvbmx5IGZyb20gdGhpcyBjbGFzcy4gSWYgYGlnbm9yZUNvbnRlbnRgIGlzIHRydWUuXHJcbiAgICBzdG9wOiB1bmRlZmluZWQsIC8vIGNhbGxiYWNrIHdoZW4gZHJhZ2dpbmcgYW4gaXRlbSBzdG9wcy4gIEFjY2VwdHMgUHJvbWlzZSByZXR1cm4gdG8gY2FuY2VsL2FwcHJvdmUgZHJhZy5cclxuICAgIHN0YXJ0OiB1bmRlZmluZWQsIC8vIGNhbGxiYWNrIHdoZW4gZHJhZ2dpbmcgYW4gaXRlbSBzdGFydHMuXHJcbiAgICAvLyBBcmd1bWVudHM6IGl0ZW0sIGdyaWRzdGVySXRlbSwgZXZlbnRcclxuICAgIGRyb3BPdmVySXRlbXM6IGZhbHNlLCAvLyBlbmFibGUgZHJvcCBpdGVtcyBvbiB0b3Agb3RoZXIgaXRlbVxyXG4gICAgZHJvcE92ZXJJdGVtc0NhbGxiYWNrOiB1bmRlZmluZWQgLy8gY2FsbGJhY2sgb24gZHJvcCBvdmVyIGFub3RoZXIgaXRlbVxyXG4gICAgLy8gQXJndW1lbnRzOiBzb3VyY2UsIHRhcmdldCwgZ3JpZENvbXBvbmVudFxyXG4gIH0sXHJcbiAgcmVzaXphYmxlOiB7XHJcbiAgICBkZWxheVN0YXJ0OiAwLCAvLyBtaWxsaXNlY29uZHMgdG8gZGVsYXkgdGhlIHN0YXJ0IG9mIHJlc2l6ZSwgdXNlZnVsIGZvciB0b3VjaCBpbnRlcmFjdGlvblxyXG4gICAgZW5hYmxlZDogZmFsc2UsIC8vIGVuYWJsZS9kaXNhYmxlIHJlc2l6YWJsZSBpdGVtc1xyXG4gICAgaGFuZGxlczoge1xyXG4gICAgICBzOiB0cnVlLFxyXG4gICAgICBlOiB0cnVlLFxyXG4gICAgICBuOiB0cnVlLFxyXG4gICAgICB3OiB0cnVlLFxyXG4gICAgICBzZTogdHJ1ZSxcclxuICAgICAgbmU6IHRydWUsXHJcbiAgICAgIHN3OiB0cnVlLFxyXG4gICAgICBudzogdHJ1ZVxyXG4gICAgfSwgLy8gcmVzaXphYmxlIGVkZ2VzIG9mIGFuIGl0ZW1cclxuICAgIHN0b3A6IHVuZGVmaW5lZCwgLy8gY2FsbGJhY2sgd2hlbiByZXNpemluZyBhbiBpdGVtIHN0b3BzLiBBY2NlcHRzIFByb21pc2UgcmV0dXJuIHRvIGNhbmNlbC9hcHByb3ZlIHJlc2l6ZS5cclxuICAgIHN0YXJ0OiB1bmRlZmluZWQgLy8gY2FsbGJhY2sgd2hlbiByZXNpemluZyBhbiBpdGVtIHN0YXJ0cy5cclxuICAgIC8vIEFyZ3VtZW50czogaXRlbSwgZ3JpZHN0ZXJJdGVtLCBldmVudFxyXG4gIH0sXHJcbiAgc3dhcDogdHJ1ZSwgLy8gYWxsb3cgaXRlbXMgdG8gc3dpdGNoIHBvc2l0aW9uIGlmIGRyb3Agb24gdG9wIG9mIGFub3RoZXJcclxuICBzd2FwV2hpbGVEcmFnZ2luZzogZmFsc2UsIC8vIGFsbG93IGl0ZW1zIHRvIHN3aXRjaCBwb3NpdGlvbiB3aGlsZSBkcmFnZ2luZ1xyXG4gIHB1c2hJdGVtczogZmFsc2UsIC8vIHB1c2ggaXRlbXMgd2hlbiByZXNpemluZyBhbmQgZHJhZ2dpbmdcclxuICBkaXNhYmxlUHVzaE9uRHJhZzogZmFsc2UsIC8vIGRpc2FibGUgcHVzaCBvbiBkcmFnXHJcbiAgZGlzYWJsZVB1c2hPblJlc2l6ZTogZmFsc2UsIC8vIGRpc2FibGUgcHVzaCBvbiByZXNpemVcclxuICBwdXNoRGlyZWN0aW9uczogeyBub3J0aDogdHJ1ZSwgZWFzdDogdHJ1ZSwgc291dGg6IHRydWUsIHdlc3Q6IHRydWUgfSwgLy8gY29udHJvbCB0aGUgZGlyZWN0aW9ucyBpdGVtcyBhcmUgcHVzaGVkXHJcbiAgcHVzaFJlc2l6ZUl0ZW1zOiBmYWxzZSwgLy8gb24gcmVzaXplIG9mIGl0ZW0gd2lsbCBzaHJpbmsgYWRqYWNlbnQgaXRlbXNcclxuICBkaXNwbGF5R3JpZDogRGlzcGxheUdyaWQuT25EcmFnQW5kUmVzaXplLCAvLyBkaXNwbGF5IGJhY2tncm91bmQgZ3JpZCBvZiByb3dzIGFuZCBjb2x1bW5zXHJcbiAgZGlzYWJsZVdpbmRvd1Jlc2l6ZTogZmFsc2UsIC8vIGRpc2FibGUgdGhlIHdpbmRvdyBvbiByZXNpemUgbGlzdGVuZXIuIFRoaXMgd2lsbCBzdG9wIGdyaWQgdG8gcmVjYWxjdWxhdGUgb24gd2luZG93IHJlc2l6ZS5cclxuICBkaXNhYmxlV2FybmluZ3M6IGZhbHNlLCAvLyBkaXNhYmxlIGNvbnNvbGUgbG9nIHdhcm5pbmdzIGFib3V0IG1pc3BsYWNlbWVudCBvZiBncmlkIGl0ZW1zXHJcbiAgc2Nyb2xsVG9OZXdJdGVtczogZmFsc2UsIC8vIHNjcm9sbCB0byBuZXcgaXRlbXMgcGxhY2VkIGluIGEgc2Nyb2xsYWJsZSB2aWV3XHJcbiAgZGlzYWJsZVNjcm9sbEhvcml6b250YWw6IGZhbHNlLCAvLyBkaXNhYmxlIGhvcml6b250YWwgc2Nyb2xsaW5nXHJcbiAgZGlzYWJsZVNjcm9sbFZlcnRpY2FsOiBmYWxzZSwgLy8gZGlzYWJsZSB2ZXJ0aWNhbCBzY3JvbGxpbmdcclxuICBlbmFibGVCb3VuZGFyeUNvbnRyb2w6IGZhbHNlLCAvLyBlbmFibGUgYm91bmRhcnkgY29udHJvbCB3aGlsZSBkcmFnZ2luZyBpdGVtc1xyXG4gIGRpc2FibGVBdXRvUG9zaXRpb25PbkNvbmZsaWN0OiBmYWxzZSwgLy8gZGlzYWJsZSBhdXRvLXBvc2l0aW9uIG9mIGl0ZW1zIG9uIGNvbmZsaWN0IHN0YXRlLFxyXG4gIGRpclR5cGU6IERpclR5cGVzLkxUUiAvLyBwYWdlIGRpcmVjdGlvbiwgcnRsPXJpZ2h0IHRvIGxlZnQgbHRyPSBsZWZ0IHRvIHJpZ2h0LCBpZiB5b3UgdXNlIHJ0bCBsYW5ndWFnZSBzZXQgZGlyVHlwZSB0byBydGxcclxufTtcclxuIl19