bbj-screen-widget 2.4.48 → 2.4.50

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.
@@ -198,6 +198,9 @@ let CustomBaiduMapComponent = class CustomBaiduMapComponent {
198
198
  if (this.infoWindowColor) {
199
199
  this.element.style.setProperty('--info-window-color', this.infoWindowColor);
200
200
  }
201
+ if (this.infoWindowBorderColor) {
202
+ this.element.style.setProperty('--info-window-border-color', this.infoWindowBorderColor);
203
+ }
201
204
  this.map.addEventListener('moveend', (event) => {
202
205
  const center = this.map.getCenter();
203
206
  this.dataChange.emit(center);
@@ -470,7 +473,7 @@ CustomBaiduMapComponent.decorators = [
470
473
  { type: Component, args: [{
471
474
  selector: 'sc-custom-baidu-map',
472
475
  template: "<ng-template *ngFor=\"let child of children\" widget-host [widget]=\"child\"></ng-template>\n\n<!-- {{children|json}} -->\n<!-- <div class=\"map-container\" [ngStyle]=\"containerStyle\"> -->\n<div #container class=\"map\"></div>\n<nz-radio-group\n *ngIf=\"showMapTypeRadio\"\n class=\"map-type-radio\"\n [(ngModel)]=\"mapTypeValue\"\n (ngModelChange)=\"mapTypeChange($event)\"\n nzButtonStyle=\"solid\"\n>\n <label *ngFor=\"let item of mapTypeEnum\" nz-radio-button [nzValue]=\"item.value\">{{ item.label }}</label>\n</nz-radio-group>\n<!-- </div> -->\n",
473
- styles: [":host{display:block;height:100%;width:100%;overflow:hidden;transform-origin:0 0;z-index:0;pointer-events:none}:host>*{pointer-events:auto}.map{height:100%;width:100%}:host::ng-deep .BMap_bubble_pop{background-color:var(--info-window-background,#fff)!important}:host::ng-deep .BMap_bubble_content{color:var(--info-window-color,\"#555555\")!important}:host::ng-deep .BMap_pop div{background-color:var(--info-window-background,#fff)!important}:host::ng-deep .BMap_pop>div:nth-child(8){background-color:transparent!important}:host.hideInfoWindowTail::ng-deep .BMap_bubble_pop>img,:host.hideInfoWindowTail::ng-deep .BMap_pop>div:nth-child(8),:host::ng-deep img[src$=\"/image/api/iws3.png\"]{display:none}:host.hideInfoWindowTop::ng-deep .BMap_bubble_pop{transform:translateY(31px)}:host.hideInfoWindowTop::ng-deep .BMap_bubble_pop>img{transform:translateY(-31px)}:host.hideInfoWindowTop::ng-deep .BMap_bubble_top,:host::ng-deep .anchorBL{display:none}.map-type-radio{position:absolute;bottom:20px;right:20px;z-index:10}"]
476
+ styles: [":host{display:block;height:100%;width:100%;overflow:hidden;transform-origin:0 0;z-index:0;pointer-events:none}:host>*{pointer-events:auto}.map{height:100%;width:100%}:host::ng-deep .BMap_bubble_pop{background-color:var(--info-window-background,#fff)!important;border-color:var(--info-window-border-color,#ddd)!important}:host::ng-deep .BMap_bubble_content{color:var(--info-window-color,\"#555555\")!important}:host::ng-deep .BMap_pop div{background-color:var(--info-window-background,#fff)!important}:host::ng-deep .BMap_pop>div:nth-child(8){background-color:transparent!important}:host.hideInfoWindowTail::ng-deep .BMap_bubble_pop>img,:host.hideInfoWindowTail::ng-deep .BMap_pop>div:nth-child(8),:host::ng-deep img[src$=\"/image/api/iws3.png\"]{display:none}:host.hideInfoWindowTop::ng-deep .BMap_bubble_pop{transform:translateY(31px)}:host.hideInfoWindowTop::ng-deep .BMap_bubble_pop>img{transform:translateY(-31px)}:host.hideInfoWindowTop::ng-deep .BMap_bubble_top,:host::ng-deep .anchorBL{display:none}.map-type-radio{position:absolute;bottom:20px;right:20px;z-index:10}"]
474
477
  },] }
475
478
  ];
476
479
  CustomBaiduMapComponent.ctorParameters = () => [
@@ -535,6 +538,13 @@ __decorate([
535
538
  Property('信息窗模板', { ui: { widget: 'textarea' } }),
536
539
  __metadata("design:type", String)
537
540
  ], CustomBaiduMapComponent.prototype, "infoWindowTemplate", void 0);
541
+ __decorate([
542
+ Property('信息窗边框', {
543
+ ui: { widget: 'myColor' },
544
+ example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],
545
+ }),
546
+ __metadata("design:type", String)
547
+ ], CustomBaiduMapComponent.prototype, "infoWindowBorderColor", void 0);
538
548
  __decorate([
539
549
  Property('隐藏尖角'),
540
550
  __metadata("design:type", Boolean)
@@ -662,4 +672,4 @@ CustomBaiduMapComponent = __decorate([
662
672
  WidgetRef])
663
673
  ], CustomBaiduMapComponent);
664
674
  export { CustomBaiduMapComponent };
665
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWJhaWR1LW1hcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY3JlZW4td2lkZ2V0L3NyYy9saWIvY3VzdG9tLWJhaWR1LW1hcC9jdXN0b20tYmFpZHUtbWFwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBRVosV0FBVyxFQUdYLE1BQU0sRUFJTixRQUFRLEVBRVIsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVd6RCxNQUFNLFdBQVcsR0FBRztJQUNsQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUNoQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtJQUM5QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtJQUNuQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtDQUNsQyxDQUFDO0lBcUJXLHVCQUF1QixTQUF2Qix1QkFBdUI7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dUJBQXVCO2dCQUM3QixNQUFNLEVBQUUsRUFBRTtnQkFDVixNQUFNLEVBQUUsSUFBSTtnQkFDWixTQUFTLEVBQUUsSUFBSTthQUNoQjtTQUNGO1FBQ0QsVUFBVSxFQUFFLENBQUMsdUJBQXVCLEVBQUUseUJBQXlCLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixDQUFDO1FBQzFHLFdBQVcsRUFBRSxjQUFjO0tBQ3JCLENBQUM7cUNBZ0xvQixlQUFlO1FBQzFCLFVBQVU7UUFDSixVQUFVO1FBQ2hCLE1BQU07UUFDUSxZQUFZO1FBQzVCLGlCQUFpQjtRQUNWLFNBQVM7R0FyTG5CLHVCQUF1QixDQXVrQm5DO1NBdmtCWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbmplY3QsXHJcbiAgTmdab25lLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2NhbGVTdWJqZWN0LCBUZW1wbGF0ZVV0aWwsIFdpZGdldFJlZiB9IGZyb20gJ2Jiai13aWRnZXQtYmFzZSc7XHJcbmltcG9ydCB7IERhdGEsIERhdGFPdXRwdXQsIFByb3BlcnR5LCBXaWRnZXQsIEV2ZW50IH0gZnJvbSAnYmJqLXdpZGdldC1iYXNlJztcclxuaW1wb3J0IHsgQmFpZHVNYXBTZXJ2aWNlIH0gZnJvbSAnYmJqLXNjcmVlbi13aWRnZXQvY29yZSc7XHJcblxyXG4vLyBkZWNsYXJlIGNvbnN0IEJNYXA7XHJcbmRlY2xhcmUgY29uc3QgQk1hcEdMOiBhbnk7XHJcbi8vIGRlY2xhcmUgY29uc3QgQk1hcEdMTGliO1xyXG4vLyBkZWNsYXJlIGNvbnN0IEJNYXBMaWI7XHJcbi8vIGRlY2xhcmUgY29uc3QgQk1BUF9BTkNIT1JfQk9UVE9NX0xFRlQ6IG51bWJlcjtcclxuZGVjbGFyZSBjb25zdCBCTUFQX0FOQ0hPUl9UT1BfTEVGVDogbnVtYmVyO1xyXG5kZWNsYXJlIGNvbnN0IG1hcHZnbDogYW55O1xyXG5kZWNsYXJlIGNvbnN0IEJNQVBfU0FURUxMSVRFX01BUDogbnVtYmVyO1xyXG5kZWNsYXJlIGNvbnN0IEJNQVBfTk9STUFMX01BUDogbnVtYmVyO1xyXG5jb25zdCBNYXBUeXBlRW51bSA9IFtcclxuICB7IGxhYmVsOiAn5pmu6YCaJywgdmFsdWU6ICdub3JtYWwnIH0sXHJcbiAgeyBsYWJlbDogJ+a3seiJsicsIHZhbHVlOiAnZGFyaycgfSxcclxuICB7IGxhYmVsOiAn5Y2r5pifJywgdmFsdWU6ICdzYXRlbGxpdGUnIH0sXHJcbiAgeyBsYWJlbDogJ+iHquWumuS5iScsIHZhbHVlOiAnY3VzdG9tJyB9LFxyXG5dO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NjLWN1c3RvbS1iYWlkdS1tYXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tYmFpZHUtbWFwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tYmFpZHUtbWFwLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbkBXaWRnZXQoJ+eZvuW6puWcsOWbvicsIHtcclxuICBncm91cDogJ2NvbXBvbmVudCcsXHJcbiAgaW1hZ2U6ICdhc3NldHMvaW1nL3NjcmVlbi9teS1iYWlkdS1tYXAucG5nJyxcclxuICBjaGlsZHJlbjogW1xyXG4gICAge1xyXG4gICAgICB0aXRsZTogJ+agh+iusOWxgicsXHJcbiAgICAgIHR5cGU6ICdzYy1iYWlkdS1tYXJrZXItbGF5ZXInLFxyXG4gICAgICBvcHRpb246IHt9LFxyXG4gICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgIGhpZGVDaGlsZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxuICBjaGlsZFR5cGVzOiBbJ3NjLWJhaWR1LW1hcmtlci1sYXllcicsICdzYy1iYWlkdS1wb2x5bGluZS1sYXllcicsICdzYy13aW5kLWxheWVyJywgJ3NjLXR5cGhvb24tYXJlYS1sYXllciddLFxyXG4gIGRlc2NyaXB0aW9uOiAnaGFzQ2hpbGRJdGVtJyxcclxufSBhcyBhbnkpXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21CYWlkdU1hcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG4gIC8vIEBQcm9wZXJ0eSgn5a2X5L2TJywgeyB1aTogeyB3aWRnZXQ6ICdteUZvbnQnIH0gfSlcclxuICAvLyBmb250OiBhbnkgPSB7XHJcbiAgLy8gICBmYW1pbHk6ICcnLFxyXG4gIC8vICAgY29sb3I6ICcjMDAwMDAwJyxcclxuICAvLyAgIHdlaWdodDogJ25vcm1hbCcsXHJcbiAgLy8gICBzaXplOiAxNixcclxuICAvLyAgIHNwYWNlOiAwLFxyXG4gIC8vICAgbGluZUhlaWdodDogMCxcclxuICAvLyB9O1xyXG4gIEBQcm9wZXJ0eSgn5Zyw5Zu+57G75Z6LJywge1xyXG4gICAgZW51bTogTWFwVHlwZUVudW0sXHJcbiAgfSlcclxuICBtYXBUeXBlID0gJ25vcm1hbCc7XHJcbiAgbWFwVHlwZVZhbHVlOiBzdHJpbmc7XHJcbiAgQFByb3BlcnR5KCfkuIrkvKDmoLflvI8nLCB7IHR5cGU6ICdzdHJpbmcnLCB1aTogeyB3aWRnZXQ6ICdteVVwbG9hZEF1ZGlvJywgdmlzaWJsZUlmOiB7IG1hcFR5cGU6IFsnY3VzdG9tJ10gfSB9IH0pXHJcbiAgdXBsb2FkU3R5bGU6IHN0cmluZztcclxuICBAUHJvcGVydHkoJ+WIh+aNouaMiemSricpXHJcbiAgc2hvd01hcFR5cGVSYWRpbzogYm9vbGVhbjtcclxuICBAUHJvcGVydHkoJ+WFqOaZr+WcsOWbvicsIHsgdHlwZTogJ2Jvb2xlYW4nIH0pXHJcbiAgbWluTWFwU2hvdyA9IGZhbHNlO1xyXG4gIEBQcm9wZXJ0eSgn5pi+56S65L+h5oGvJywge1xyXG4gICAgdWk6IHsgd2lkZ2V0OiAnc2VsZWN0JyB9LFxyXG4gICAgZW51bTogW1xyXG4gICAgICB7IGxhYmVsOiAn54K55Ye7JywgdmFsdWU6ICdjbGljaycgfSxcclxuICAgICAgeyBsYWJlbDogJ+aCrOWBnCcsIHZhbHVlOiAnbW91c2VvdmVyJyB9LFxyXG4gICAgXSxcclxuICB9KVxyXG4gIHNob3dUeXBlID0gJ2NsaWNrJztcclxuICBAUHJvcGVydHkoJ+S/oeaBr+eql+iDjOaZrycsIHsgdWk6IHsgd2lkZ2V0OiAnbXlDb2xvcicgfSB9KVxyXG4gIGluZm9XaW5kb3dCYWNrZ3JvdW5kOiBzdHJpbmc7XHJcbiAgQFByb3BlcnR5KCfkv6Hmga/nqpflrZfkvZMnLCB7IHVpOiB7IHdpZGdldDogJ215Q29sb3InIH0gfSlcclxuICBpbmZvV2luZG93Q29sb3I6IHN0cmluZztcclxuICBAUHJvcGVydHkoJ+S/oeaBr+eql+WuveW6picpXHJcbiAgaW5mb1dpbmRvd1dpZHRoOiBudW1iZXI7XHJcbiAgQFByb3BlcnR5KCfkv6Hmga/nqpfpq5jluqYnKVxyXG4gIGluZm9XaW5kb3dIZWlnaHQ6IG51bWJlcjtcclxuICBAUHJvcGVydHkoJ+S/oeaBr+eql+aooeadvycsIHsgdWk6IHsgd2lkZ2V0OiAndGV4dGFyZWEnIH0gfSlcclxuICBpbmZvV2luZG93VGVtcGxhdGU6IHN0cmluZztcclxuICBAUHJvcGVydHkoJ+makOiXj+WwluinkicpXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oaWRlSW5mb1dpbmRvd1RhaWwnKVxyXG4gIGhpZGVJbmZvV2luZG93VGFpbDogYm9vbGVhbjtcclxuICBAUHJvcGVydHkoJ+makOiXj+WFs+mXreaMiemSricpXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5oaWRlSW5mb1dpbmRvd1RvcCcpXHJcbiAgaGlkZUluZm9XaW5kb3dUb3A6IGJvb2xlYW47XHJcbiAgQFByb3BlcnR5KCflnLDlm77mi5bliqgnLCB7IHR5cGU6ICdib29sZWFuJyB9KVxyXG4gIGRyYWdnaW5nID0gdHJ1ZTtcclxuXHJcbiAgQFByb3BlcnR5KCfpga7nvanpopzoibInLCB7XHJcbiAgICB1aTogeyB3aWRnZXQ6ICdteUNvbG9yJyB9LFxyXG4gICAgZXhhbXBsZTogWycjZmZmZmZmJywgJyNGNUE2MjMnLCAnI0Y4RTcxQycsICcjNTBFM0MyJywgJyMzMjg1RkYnLCAnI0I0NUZGRicsICcjOUI5QjlCJywgbnVsbF0sXHJcbiAgfSlcclxuICBzaGFkZUNvbG9yID0gJyMwMDQzOTUnO1xyXG4gIEBQcm9wZXJ0eSgn6IOM5pmv6aKc6ImyJywge1xyXG4gICAgdWk6IHsgd2lkZ2V0OiAnbXlDb2xvcicgfSxcclxuICAgIGV4YW1wbGU6IFsnI2ZmZmZmZicsICcjRjVBNjIzJywgJyNGOEU3MUMnLCAnIzUwRTNDMicsICcjMzI4NUZGJywgJyNCNDVGRkYnLCAnIzlCOUI5QicsIG51bGxdLFxyXG4gIH0pXHJcbiAgbWFwQmFja0NvbG9yOiBzdHJpbmc7XHJcblxyXG4gIEBQcm9wZXJ0eSgn5aSa6L6557q/6ImyJywge1xyXG4gICAgdWk6IHsgd2lkZ2V0OiAnbXlDb2xvcicgfSxcclxuICAgIGV4YW1wbGU6IFsnI2ZmZmZmZicsICcjRjVBNjIzJywgJyNGOEU3MUMnLCAnIzUwRTNDMicsICcjMzI4NUZGJywgJyNCNDVGRkYnLCAnIzlCOUI5QicsIG51bGxdLFxyXG4gIH0pXHJcbiAgbWFwQ2l0eUNvbG9yID0gJyM0MWI3ZmYnO1xyXG4gIEBQcm9wZXJ0eSgn5Zyw5Zu+57yp5pS+Jywge1xyXG4gICAgdWk6IHsgd2lkZ2V0OiAnbXlSYW5nZScsIG1pbjogMSwgbWF4OiA0MCwgc3RlcDogMSB9LFxyXG4gIH0pXHJcbiAgem9vbSA9IDEyO1xyXG4gIC8vIEBQcm9wZXJ0eSgn5pS+5aSn5q+U5L6LJywgeyB0eXBlOiAnbnVtYmVyJyB9KVxyXG4gIC8vIHNjYWxlID0gMTtcclxuICBAUHJvcGVydHkoJ+mBrue9qemAj+aYjicsIHsgdHlwZTogJ251bWJlcicgfSlcclxuICBmaWxsT3BhY2l0eSA9IDA7XHJcbiAgQFByb3BlcnR5KCflpJrovrnnur/nspcnLCB7IHR5cGU6ICdudW1iZXInIH0pXHJcbiAgc3Ryb2tlc2l6ZSA9IDI7XHJcbiAgQFByb3BlcnR5KCfpu5HlpJzmqKHlvI8nLCB7IHR5cGU6ICdib29sZWFuJywgdWk6IHsgaGlkZGVuOiB0cnVlIH0gfSlcclxuICBuaWdodE1vZGUgPSBmYWxzZTtcclxuICBAUHJvcGVydHkoJzNE6KeG6KeSJylcclxuICBlbmFibGUzRDogYm9vbGVhbjtcclxuICBAUHJvcGVydHkoJ+WumuS9jeaOp+S7ticpXHJcbiAgc2hvd0xvY2F0aW9uQ29udHJvbDogYm9vbGVhbjtcclxuICBAUHJvcGVydHkoJ+WIneWni+inkuW6picsIHsgdHlwZTogJ251bWJlcicsIHVpOiB7IHZpc2libGVJZjogeyBlbmFibGUzRDogW3RydWVdIH0gfSB9KVxyXG4gIHRpbHQgPSA3MztcclxuICAvLyBAUHJvcGVydHkoJ+S4reW/g+e7j+W6picsIHtcclxuICAvLyAgIHVpOiB7d2lkZ2V0OiAnbXlSYW5nZScsIG1pbjogLTE4MCwgbWF4OiAxODAsIHN0ZXA6IDF9LFxyXG4gIC8vIH0pXHJcbiAgY2VudGVyTG5nID0gMTIwLjc7XHJcbiAgLy8gQFByb3BlcnR5KCfkuK3lv4PnuqzluqYnLCB7XHJcbiAgLy8gICB1aToge3dpZGdldDogJ215UmFuZ2UnLCBtaW46IC05MCwgbWF4OiA5MCwgc3RlcDogMX0sXHJcbiAgLy8gfSlcclxuICBjZW50ZXJMYXQgPSAyODtcclxuICBAUHJvcGVydHkoJ+aYvuekuuecgeW4gicsIHtcclxuICAgIHVpOiB7XHJcbiAgICAgIHdpZGdldDogJ215VXJsU2VsZWN0JyxcclxuICAgICAgYWxsb3dDbGVhcjogdHJ1ZSxcclxuICAgICAgdXJsOiAnL2Fzc2V0cy9tYXBMaXN0SXRlbS5qc29uJyxcclxuICAgIH0sXHJcbiAgfSlcclxuICBjaXR5TmFtZSA9IG51bGw7XHJcbiAgcG9pbnQ6IGFueTtcclxuXHJcbiAgLy8gX2RhdGEgPSBbXHJcbiAgLy8gICB7XHJcbiAgLy8gICAgIG9wdGlvbnM6IHtcclxuICAvLyAgICAgICBpY29uOiB7XHJcbiAgLy8gICAgICAgICBpbWFnZVVybDogJ2Fzc2V0cy9pbWcvc2NyZWVuL251bWJlci1mbG9wLnBuZycsXHJcbiAgLy8gICAgICAgICBzaXplOiB7XHJcbiAgLy8gICAgICAgICAgIGhlaWdodDogMjYwLFxyXG4gIC8vICAgICAgICAgICB3aWR0aDogMjUwXHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgfVxyXG4gIC8vICAgICB9LFxyXG4gIC8vICAgICBwb2ludDoge1xyXG4gIC8vICAgICAgIGxuZzogMTIwLjcsICAgLy8g57uP5bqmXHJcbiAgLy8gICAgICAgbGF0OiAyOCwgICAgLy8g57qs5bqmXHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0sXHJcbiAgLy8gXTtcclxuICAvLyDmloflrZfmoIfms6hcclxuXHJcbiAgcHVibGljIHRleHQ6IHN0cmluZztcclxuICAvLyBfY2hpbGRyZW4gPSBbXTtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgbWFwOiBhbnk7XHJcbiAgZWRpdDogYm9vbGVhbjtcclxuICAvLyBtYXJrZXJUaWVyQ2xpY2s6IGFueTtcclxuICAvLyBwaW5neWFuZyA9ICcnO1xyXG4gIC8vIHJ1aWFuID0gJyc7XHJcbiAgQERhdGEoe1xyXG4gICAgcHJvcGVydGllczoge1xyXG4gICAgICBsbmc6IHsgdHlwZTogJ251bWJlcicsIHRpdGxlOiAn57uP5bqmJyB9LFxyXG4gICAgICBsYXQ6IHsgdHlwZTogJ251bWJlcicsIHRpdGxlOiAn57qs5bqmJyB9LFxyXG4gICAgfSxcclxuICB9KVxyXG4gIF9kYXRhOiBhbnlbXSA9IFt7IGxuZzogMTIwLjcsIGxhdDogMjggfV07XHJcbiAgQERhdGFPdXRwdXQoWydsbmcnLCAnbGF0J10pXHJcbiAgQEV2ZW50KCfkuK3lv4PngrnmlLnlj5gnLCB7XHJcbiAgICBwYXJhbXM6IHsgcHJvcGVydGllczogeyBsbmc6IHsgdGl0bGU6ICfnu4/luqYnLCB0eXBlOiAnbnVtYmVyJyB9LCBsYXQ6IHsgdGl0bGU6ICfnuqzluqYnLCB0eXBlOiAnbnVtYmVyJyB9IH0gfSxcclxuICB9KVxyXG4gIGRhdGFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQERhdGFPdXRwdXQoJ+e8qeaUvuetiee6pycpXHJcbiAgQEV2ZW50KCfnvKnmlL4nLCB7XHJcbiAgICBwYXJhbXM6ICfnvKnmlL7nrYnnuqcnLFxyXG4gIH0pXHJcbiAgem9vbUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBFdmVudCgn5Zyw5Zu+54K55Ye7Jywge1xyXG4gICAgcGFyYW1zOiB7IHByb3BlcnRpZXM6IHsgbG5nOiB7IHRpdGxlOiAn57uP5bqmJywgdHlwZTogJ251bWJlcicgfSwgbGF0OiB7IHRpdGxlOiAn57qs5bqmJywgdHlwZTogJ251bWJlcicgfSB9IH0sXHJcbiAgfSlcclxuICBtYXBDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIGNvbnRhaW5lcjogRWxlbWVudFJlZjtcclxuICBjaGlsZHJlbjogYW55W107XHJcbiAgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGRlc3Ryb3llZDogYm9vbGVhbjtcclxuICAvLyBjb250YWluZXJTdHlsZTogYW55ID0ge307XHJcbiAgLy8gdW5sb2FkZWRDaGlsZHJlbiA9IHt9O1xyXG4gIG92ZXJsYXlzTWFwID0ge307XHJcblxyXG4gIC8vIEBIb3N0QmluZGluZygnY2xhc3MuaGlkZUluZm9XaW5kb3dUYWlsJylcclxuICAvLyBoaWRlSW5mb1dpbmRvd1RhaWw6IGJvb2xlYW47XHJcblxyXG4gIHByaXZhdGUgaW5pdGVkOiAobWFwOiBhbnkpID0+IHZvaWQ7XHJcbiAgaW5pdCQgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgdGhpcy5pbml0ZWQgPSByZXNvbHZlO1xyXG4gIH0pO1xyXG4gIHZpZXc6IGFueTtcclxuICBwaWNrZXJFdmVudDogYW55O1xyXG4gIHBpY2tlckl0ZW06IGFueTtcclxuICBwaWNrZXJUaW1lb3V0OiBhbnk7XHJcbiAgbWFwVHlwZUVudW0gPSBNYXBUeXBlRW51bS5zbGljZSgwLCAzKTtcclxuICBkYXJrU3R5bGU6IGFueTtcclxuICBmaXJzdE9wZW46IGJvb2xlYW47XHJcbiAgZmlyc3RPcGVuUHJvbWlzZTogUHJvbWlzZTx2b2lkPjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYmFpZHVNYXBTZXJ2aWNlOiBCYWlkdU1hcFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICBwcml2YXRlIHpvbmU6IE5nWm9uZSxcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgc2NhbGUkOiBTY2FsZVN1YmplY3QsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgd2lkZ2V0UmVmOiBXaWRnZXRSZWYsXHJcbiAgKSB7fVxyXG5cclxuICBnZXQgZWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XHJcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBhZGRMYXllcihsYXllcjogYW55KSB7XHJcbiAgICBpZiAodGhpcy52aWV3KSB7XHJcbiAgICAgIHRoaXMudmlldy5hZGRMYXllcihsYXllcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW1vdmVMYXllcihsYXllcjogYW55KSB7XHJcbiAgICBpZiAodGhpcy52aWV3KSB7XHJcbiAgICAgIHRoaXMudmlldy5yZW1vdmVMYXllcihsYXllcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlcy5fZGF0YSAmJiB0aGlzLl9kYXRhWzBdKSB7XHJcbiAgICAgIHRoaXMuY2VudGVyTG5nID0gK3RoaXMuX2RhdGFbMF0ubG5nO1xyXG4gICAgICB0aGlzLmNlbnRlckxhdCA9ICt0aGlzLl9kYXRhWzBdLmxhdDtcclxuICAgICAgdGhpcy5zZXRDZW50ZXIodGhpcy5jZW50ZXJMbmcsIHRoaXMuY2VudGVyTGF0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuc2NhbGUkKSB7XHJcbiAgICAgIC8vIOi/meaYr+S4uuS6huino+WGs+WcsOWbvue8qeaUvuS4reW/g+S4jeWcqOm8oOagh+aJgOWcqOS9jee9rueahOmXrumimFxyXG4gICAgICB0aGlzLnNjYWxlJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChzY2FsZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgeDogc3gsIHk6IHN5LCBzY2FsZUNvbnRlbnQgfSA9IHNjYWxlIGFzIGFueTtcclxuICAgICAgICBjb25zdCBzdHlsZSA9IHRoaXMuZWxlbWVudC5zdHlsZTtcclxuICAgICAgICBpZiAoc2NhbGVDb250ZW50ID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgdGhpcy56b25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5lbGVtZW50LnBhcmVudE5vZGUgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgICAgICAgICBjb25zdCBtYXRjaCA9IC90cmFuc2xhdGVcXCgoWy1cXGQuXSspcHgsIChbLVxcZC5dKylweFxcKS8uZXhlYyhwYXJlbnQuc3R5bGUudHJhbnNmb3JtKTtcclxuICAgICAgICAgICAgICBpZiAobWF0Y2gpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldFggPSBwYXJzZUZsb2F0KG1hdGNoWzFdKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldFkgPSBwYXJzZUZsb2F0KG1hdGNoWzJdKTtcclxuICAgICAgICAgICAgICAgIHN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoJHstb2Zmc2V0WH1weCwkey1vZmZzZXRZfXB4KWA7XHJcbiAgICAgICAgICAgICAgICBzdHlsZS5oZWlnaHQgPSBwYXJlbnQuY2xpZW50SGVpZ2h0ICsgb2Zmc2V0WSArICdweCc7XHJcbiAgICAgICAgICAgICAgICBzdHlsZS53aWR0aCA9IHBhcmVudC5jbGllbnRXaWR0aCArIG9mZnNldFggKyAncHgnO1xyXG4gICAgICAgICAgICAgICAgc3R5bGUucGFkZGluZyA9IGAke29mZnNldFl9cHggMCAwICR7b2Zmc2V0WH1weGA7XHJcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmNvbnRhaW5lclN0eWxlID0ge1xyXG4gICAgICAgICAgICAgICAgLy8gICB0cmFuc2Zvcm1PcmlnaW46IGAwIDBgLFxyXG4gICAgICAgICAgICAgICAgLy8gICB0cmFuc2Zvcm06IGB0cmFuc2xhdGUoJHstb2Zmc2V0WH1weCwkey1vZmZzZXRZfXB4KWAsXHJcbiAgICAgICAgICAgICAgICAvLyAgIGhlaWdodDogcGFyZW50LmNsaWVudEhlaWdodCArIG9mZnNldFkgKyAncHgnLFxyXG4gICAgICAgICAgICAgICAgLy8gICB3aWR0aDogcGFyZW50LmNsaWVudFdpZHRoICsgb2Zmc2V0WCArICdweCcsXHJcbiAgICAgICAgICAgICAgICAvLyAgIHBhZGRpbmc6IGAke29mZnNldFl9cHggMCAwICR7b2Zmc2V0WH1weGAsXHJcbiAgICAgICAgICAgICAgICAvLyB9O1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCB7IHBvc2l0aW9uLCBzaXplIH0gPSB0aGlzLndpZGdldFJlZi53aWRnZXQgYXMgYW55O1xyXG4gICAgICAgICAgY29uc3QgeyB4LCB5IH0gPSBwb3NpdGlvbjtcclxuICAgICAgICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gc2l6ZTtcclxuICAgICAgICAgIHN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoJHsteH1weCwkey15fXB4KSBzY2FsZSgkezEgLyBzeH0sJHsxIC8gc3l9KWA7XHJcbiAgICAgICAgICBzdHlsZS5oZWlnaHQgPSAoeSArIGhlaWdodCkgKiBzeSArICdweCc7XHJcbiAgICAgICAgICBzdHlsZS53aWR0aCA9ICh4ICsgd2lkdGgpICogc3ggKyAncHgnO1xyXG4gICAgICAgICAgc3R5bGUucGFkZGluZyA9IGAke3kgKiBzeX1weCAwIDAgJHt4ICogc3h9cHhgO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLmluaXRNYXAoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIGluaXRNYXAoKSB7XHJcbiAgICBhd2FpdCB0aGlzLmJhaWR1TWFwU2VydmljZS5sb2FkTWFwR0woKTtcclxuICAgIGF3YWl0IHRoaXMuYmFpZHVNYXBTZXJ2aWNlLmxvYWRNYXBWR0woKTtcclxuICAgIHRoaXMubWFwVHlwZVZhbHVlID0gdGhpcy5tYXBUeXBlO1xyXG4gICAgLy8g5YW85a656ICB55qE6YWN572uXHJcbiAgICBpZiAodGhpcy5tYXBUeXBlID09IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMudXBsb2FkU3R5bGUpIHtcclxuICAgICAgICB0aGlzLm1hcFR5cGVWYWx1ZSA9ICdjdXN0b20nO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMubmlnaHRNb2RlKSB7XHJcbiAgICAgICAgdGhpcy5tYXBUeXBlVmFsdWUgPSAnZGFyayc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghdGhpcy5kZXN0cm95ZWQpIHtcclxuICAgICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcclxuICAgICAgICB0aGlzLm1hcCA9IG5ldyBCTWFwR0wuTWFwKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIHsgcmVzdHJpY3RDZW50ZXI6IGZhbHNlIH0pO1xyXG4gICAgICAgIHRoaXMubWFwLmNlbnRlckFuZFpvb20obmV3IEJNYXBHTC5Qb2ludCh0aGlzLmNlbnRlckxuZywgdGhpcy5jZW50ZXJMYXQpLCB0aGlzLnpvb20pOyAvLyDorr7nva7kuK3lv4PngrnlkoznvKnmlL7nuqfliKtcclxuICAgICAgICB0aGlzLm1hcC5lbmFibGVTY3JvbGxXaGVlbFpvb20oKTsgLy8g5ZCv55So5rua6L2u6L+b6KGM57yp5pS+5Yqf6IO9XHJcbiAgICAgICAgLy8gdmFyIGRpc3QgPSBuZXcgQk1hcEdMLkRpc3RyaWN0TGF5ZXIoe1xyXG4gICAgICAgIC8vICAgbmFtZTogJyjmuKnlt57luIIpJyxcclxuICAgICAgICAvLyAgIGtpbmQ6IDEsXHJcbiAgICAgICAgLy8gICAgZmlsbENvbG9yOiAnI2ZmZicsXHJcbiAgICAgICAgLy8gICBmaWxsT3BhY2l0eTogMC4xLFxyXG4gICAgICAgIC8vICAgc3Ryb2tlQ29sb3I6ICcjZGFlYWZhJyxcclxuICAgICAgICAvLyAgIHZpZXdwb3J0OiB0cnVlLFxyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgICAgIC8vIHRoaXMubWFwLmFkZERpc3RyaWN0TGF5ZXIoZGlzdCk7XHJcbiAgICAgICAgdGhpcy5tYXBUeXBlQ2hhbmdlKHRoaXMubWFwVHlwZVZhbHVlKTtcclxuICAgICAgICBpZiAodGhpcy5lZGl0IHx8IHRoaXMuZHJhZ2dpbmcgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICB0aGlzLm1hcC5kaXNhYmxlRHJhZ2dpbmcoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlM0QpIHtcclxuICAgICAgICAgIHRoaXMubWFwLnNldFRpbHQodGhpcy50aWx0ID09IG51bGwgPyA3MyA6IHRoaXMudGlsdCwgeyBub0FuaW1hdGlvbjogdHJ1ZSB9KTtcclxuICAgICAgICAgIHRoaXMubWFwLnNldERpc3BsYXlPcHRpb25zKHsgc2t5Q29sb3JzOiBbJ3JnYmEoMCwgMCwgMCwgMCknXSB9KTsgLy8g6ZqQ6JeP5aSp56m6XHJcbiAgICAgICAgICAvLyBjb25zdCBuYXZpM0RDdHJsID0gbmV3IEJNYXBHTC5OYXZpZ2F0aW9uQ29udHJvbDNEKCk7IC8vIOa3u+WKoDNE5o6n5Lu2XHJcbiAgICAgICAgICAvLyB0aGlzLm1hcC5hZGRDb250cm9sKG5hdmkzREN0cmwpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLm1hcC5kaXNhYmxlVGlsdCgpO1xyXG4gICAgICAgICAgdGhpcy5tYXAuZGlzYWJsZVJvdGF0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5zaG93TG9jYXRpb25Db250cm9sKSB7XHJcbiAgICAgICAgICBjb25zdCBvcHRpb25zID0ge1xyXG4gICAgICAgICAgICAvLyDmjqfku7bnmoTlgZzpnaDkvY3nva7vvIjlj6/pgInvvIzpu5jorqTlt6bkuIrop5LvvIlcclxuICAgICAgICAgICAgYW5jaG9yOiBCTUFQX0FOQ0hPUl9UT1BfTEVGVCxcclxuICAgICAgICAgICAgLy8g5o6n5Lu25Z+65LqO5YGc6Z2g5L2N572u55qE5YGP56e76YeP77yI5Y+v6YCJ77yJXHJcbiAgICAgICAgICAgIG9mZnNldDogbmV3IEJNYXBHTC5TaXplKDIwLCAyMCksXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgbGV0IGxvY2F0aW9uQ29udHJvbCA9IG5ldyBCTWFwR0wuTG9jYXRpb25Db250cm9sKG9wdGlvbnMpO1xyXG4gICAgICAgICAgLy8g5bCG5o6n5Lu25re75Yqg5Yiw5Zyw5Zu+5LiKXHJcbiAgICAgICAgICB0aGlzLm1hcC5hZGRDb250cm9sKGxvY2F0aW9uQ29udHJvbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLm1pbk1hcFNob3cpIHtcclxuICAgICAgICAgIGNvbnN0IHN0Q3RybCA9IG5ldyBCTWFwR0wuUGFub3JhbWFDb250cm9sKCk7XHJcbiAgICAgICAgICBzdEN0cmwuc2V0T2Zmc2V0KG5ldyBCTWFwR0wuU2l6ZSgyMCwgMjApKTtcclxuICAgICAgICAgIHRoaXMubWFwLmFkZENvbnRyb2woc3RDdHJsKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuaW5mb1dpbmRvd0JhY2tncm91bmQpIHtcclxuICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLS1pbmZvLXdpbmRvdy1iYWNrZ3JvdW5kJywgdGhpcy5pbmZvV2luZG93QmFja2dyb3VuZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmluZm9XaW5kb3dDb2xvcikge1xyXG4gICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8td2luZG93LWNvbG9yJywgdGhpcy5pbmZvV2luZG93Q29sb3IpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLm1hcC5hZGRFdmVudExpc3RlbmVyKCdtb3ZlZW5kJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjZW50ZXIgPSB0aGlzLm1hcC5nZXRDZW50ZXIoKTtcclxuICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZS5lbWl0KGNlbnRlcik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5tYXAuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZXZlbnQpID0+IHtcclxuICAgICAgICAgIHRoaXMubWFwQ2xpY2suZW1pdChldmVudC5wb2ludGVyKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLm1hcC5hZGRFdmVudExpc3RlbmVyKCd6b29tZW5kJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnpvb21DaGFuZ2UuZW1pdCh0aGlzLm1hcC5nZXRab29tKCkpO1xyXG4gICAgICAgICAgdGhpcy5kYXRhQ2hhbmdlLmVtaXQodGhpcy5tYXAuZ2V0Q2VudGVyKCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudmlldyA9IG5ldyBtYXB2Z2wuVmlldyh7XHJcbiAgICAgICAgICBtYXA6IHRoaXMubWFwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMubWFwTG9hZGVkKHRoaXMubWFwKTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuaW5pdGVkKHRoaXMubWFwKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENlbnRlcihsbmc6IG51bWJlciwgbGF0OiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLm1hcCAmJiBsbmcgJiYgbGF0KSB7XHJcbiAgICAgIGNvbnN0IGNlbnRlciA9IHRoaXMubWFwLmdldENlbnRlcigpO1xyXG4gICAgICBpZiAoY2VudGVyLmxuZyAhPSBsbmcgfHwgY2VudGVyLmxhdCAhPSBsYXQpIHtcclxuICAgICAgICB0aGlzLnNldENlbnRlckFuZFpvb20obG5nLCBsYXQsIHRoaXMubWFwLmdldFpvb20oKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldENlbnRlckFuZFpvb20obG5nOiBudW1iZXIsIGxhdDogbnVtYmVyLCB6b29tOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGNlbnRlciA9IHRoaXMubWFwLmdldENlbnRlcigpO1xyXG4gICAgY29uc3QgY3VycmVudFpvb20gPSB0aGlzLm1hcC5nZXRab29tKCk7XHJcbiAgICAvLyDor6/lt67ojIPlm7TlhoXkuI3np7vliqgs6Ziy5q2i6IOM5pmv5oqW5YqoXHJcbiAgICBpZiAoem9vbSAhPSBjdXJyZW50Wm9vbSB8fCBNYXRoLmFicyhsbmcgLSBjZW50ZXIubG5nKSA+IDFlLTEzIHx8IE1hdGguYWJzKGxhdCAtIGNlbnRlci5sYXQpID4gMWUtNykge1xyXG4gICAgICBjb25zdCBwb2ludCA9IG5ldyBCTWFwR0wuUG9pbnQobG5nLCBsYXQpO1xyXG4gICAgICB0aGlzLm1hcC5jZW50ZXJBbmRab29tKHBvaW50LCB6b29tLCB7IHRpbHQ6IHRoaXMubWFwLmdldFRpbHQoKSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagueaNrue7j+e6rOW6puiMg+WbtOiuvue9ruS4reW/g+WSjOe8qeaUvuetiee6p1xyXG4gICAqIEBwYXJhbSBtaW5MbmdcclxuICAgKiBAcGFyYW0gbWF4TG5nXHJcbiAgICogQHBhcmFtIG1pbkxhdFxyXG4gICAqIEBwYXJhbSBtYXhMYXRcclxuICAgKi9cclxuICBzZXRSZWN0Q2VudGVyQW5kWm9vbShtaW5Mbmc6IG51bWJlciwgbWF4TG5nOiBudW1iZXIsIG1pbkxhdDogbnVtYmVyLCBtYXhMYXQ6IG51bWJlcikge1xyXG4gICAgdGhpcy5zZXRDZW50ZXJBbmRab29tKChtYXhMbmcgKyBtaW5MbmcpIC8gMiwgKG1heExhdCArIG1pbkxhdCkgLyAyLCB0aGlzLmdldFpvb20obWF4TG5nLCBtaW5MbmcsIG1heExhdCwgbWluTGF0KSk7XHJcbiAgfVxyXG5cclxuICBnZXRab29tKG1heExuZzogbnVtYmVyLCBtaW5Mbmc6IG51bWJlciwgbWF4TGF0OiBudW1iZXIsIG1pbkxhdDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCB6b29tcyA9IFtcclxuICAgICAgNTAsIDEwMCwgMjAwLCA1MDAsIDEwMDAsIDIwMDAsIDUwMDAsIDEwMDAwLCAyMDAwMCwgMjUwMDAsIDUwMDAwLCAxMDAwMDAsIDIwMDAwMCwgNTAwMDAwLCAxMDAwMDAwLCAyMDAwMDAwLFxyXG4gICAgXTsgLy/nuqfliKsxOOWIsDPjgIJcclxuICAgIGNvbnN0IHBvaW50QSA9IG5ldyBCTWFwR0wuUG9pbnQobWF4TG5nLCBtYXhMYXQpOyAvLyDliJvlu7rngrnlnZDmoIdBXHJcbiAgICBjb25zdCBwb2ludEIgPSBuZXcgQk1hcEdMLlBvaW50KG1pbkxuZywgbWluTGF0KTsgLy8g5Yib5bu654K55Z2Q5qCHQlxyXG4gICAgY29uc3QgZGlzdGFuY2UgPSArdGhpcy5tYXAuZ2V0RGlzdGFuY2UocG9pbnRBLCBwb2ludEIpLnRvRml4ZWQoMSk7IC8v6I635Y+W5Lik54K56Led56a7LOS/neeVmeWwj+aVsOeCueWQjuS4pOS9jVxyXG4gICAgY29uc3QgaSA9IHpvb21zLmZpbmRJbmRleCgoem9vbSkgPT4gem9vbSAtIGRpc3RhbmNlID4gMCk7XHJcbiAgICBpZiAoaSA9PT0gLTEpIHtcclxuICAgICAgcmV0dXJuIDU7XHJcbiAgICB9XHJcbiAgICAvL+S5i+aJgOS7peS8muWkmjPvvIzmmK/lm6DkuLrlnLDlm77ojIPlm7TluLjluLjmmK/mr5TkvovlsLrot53nprvnmoQxMOWAjeS7peS4iuOAguaJgOS7pee6p+WIq+S8muWinuWKoDPjgIJcclxuICAgIHJldHVybiAxOCAtIGkgKyAzO1xyXG4gIH1cclxuXHJcbiAgb3BlbkluZm9XaW5kb3coZGF0YTogYW55LCBsbmc6IG51bWJlciwgbGF0OiBudW1iZXIpIHtcclxuICAgIGlmIChkYXRhLmluZm9ybWF0aW9uIHx8IHRoaXMuaW5mb1dpbmRvd1RlbXBsYXRlKSB7XHJcbiAgICAgIGNvbnN0IHBvaW50ID0gbmV3IEJNYXBHTC5Qb2ludCgrbG5nLCArbGF0KTtcclxuICAgICAgLy8gbGV0IG9mZnNldFkgPSAtMjU7XHJcbiAgICAgIC8vIGlmICh0aGlzLmhpZGVJbmZvV2luZG93VGFpbCkge1xyXG4gICAgICAvLyAgIG9mZnNldFkgPSAwO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIGxldCBpbmZvcm1hdGlvbiA9IGRhdGEuaW5mb3JtYXRpb247XHJcbiAgICAgIGlmICh0aGlzLmluZm9XaW5kb3dUZW1wbGF0ZSkge1xyXG4gICAgICAgIGluZm9ybWF0aW9uID0gVGVtcGxhdGVVdGlsLnBhcnNlKHRoaXMuaW5mb1dpbmRvd1RlbXBsYXRlLCBkYXRhKTtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBvcHRpb25zID0ge1xyXG4gICAgICAgIG9mZnNldDogbmV3IEJNYXBHTC5TaXplKDAsIDApLFxyXG4gICAgICAgIHdpZHRoOiB0aGlzLmluZm9XaW5kb3dXaWR0aCB8fCAwLFxyXG4gICAgICAgIGhlaWdodDogdGhpcy5pbmZvV2luZG93SGVpZ2h0IHx8IDAsXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IGluZm9XaW5kb3cgPSBuZXcgQk1hcEdMLkluZm9XaW5kb3coaW5mb3JtYXRpb24sIG9wdGlvbnMpO1xyXG4gICAgICAvLyDnrKzkuIDmrKHmiZPlvIDkv6Hmga/nqpflj6PlkI7lnKjnn63ml7bpl7TlhbPpl63miJbph43mlrDmiZPlvIDkvJrlr7zoh7RjbGlja+S6i+S7tuWkseaViO+8jOS4tOaXtuino+WGs+aWueahiOaYr+esrOS4gOasoeaJk+W8gOWQjjAuNeenkuWGheS4jeWFs+mXrVxyXG4gICAgICBpZiAoIXRoaXMuZmlyc3RPcGVuKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZmlyc3RPcGVuUHJvbWlzZSkge1xyXG4gICAgICAgICAgdGhpcy5maXJzdE9wZW5Qcm9taXNlLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1hcC5vcGVuSW5mb1dpbmRvdyhpbmZvV2luZG93LCBwb2ludCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5maXJzdE9wZW5Qcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5maXJzdE9wZW4gPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlyc3RPcGVuUHJvbWlzZSA9IG51bGw7XHJcbiAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLm1hcC5vcGVuSW5mb1dpbmRvdyhpbmZvV2luZG93LCBwb2ludCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHJhd0Nsb3NlID0gaW5mb1dpbmRvdy5jbG9zZTtcclxuICAgICAgICBpbmZvV2luZG93LmNsb3NlID0gKCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuZmlyc3RPcGVuUHJvbWlzZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZpcnN0T3BlblByb21pc2UudGhlbigoKSA9PiByYXdDbG9zZS5jYWxsKGluZm9XaW5kb3cpKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJhd0Nsb3NlLmNhbGwoaW5mb1dpbmRvdyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm1hcC5vcGVuSW5mb1dpbmRvdyhpbmZvV2luZG93LCBwb2ludCk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGluZm9XaW5kb3c7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDYW52YXNPdmVybGF5KGNoaWxkOiBhbnkpIHtcclxuICAgIGxldCBjYW52YXNPdmVybGF5O1xyXG4gICAgaWYgKHRoaXMuZW5hYmxlM0QpIHtcclxuICAgICAgY29uc3QgaXRlbSA9IGNoaWxkLml0ZW07XHJcbiAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgdmFyIHBTdGFydCA9IG5ldyBCTWFwR0wuUG9pbnQoaXRlbS5zdGFydC5sbmcsIGl0ZW0uc3RhcnQubGF0KTtcclxuICAgICAgICB2YXIgcEVuZCA9IG5ldyBCTWFwR0wuUG9pbnQoaXRlbS5lbmQubG5nLCBpdGVtLmVuZC5sYXQpO1xyXG4gICAgICAgIHZhciBib3VuZHMgPSBuZXcgQk1hcEdMLkJvdW5kcyhuZXcgQk1hcEdMLlBvaW50KHBTdGFydC5sbmcsIHBFbmQubGF0KSwgbmV3IEJNYXBHTC5Qb2ludChwRW5kLmxuZywgcFN0YXJ0LmxhdCkpO1xyXG4gICAgICAgIGNhbnZhc092ZXJsYXkgPSBuZXcgQk1hcEdMLkdyb3VuZE92ZXJsYXkoYm91bmRzLCB7XHJcbiAgICAgICAgICB0eXBlOiAnY2FudmFzJyxcclxuICAgICAgICAgIHVybDogaXRlbS5jYW52YXMsXHJcbiAgICAgICAgICBvcGFjaXR5OiAxLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBwb2ludFRvUGl4ZWwgPSAoZGF0YSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHBvaW50ID0gbmV3IEJNYXBHTC5Qb2ludChkYXRhLmxuZywgZGF0YS5sYXQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1hcC5wb2ludFRvUGl4ZWwocG9pbnQpO1xyXG4gICAgICB9O1xyXG4gICAgICBjYW52YXNPdmVybGF5ID0gbmV3IEJNYXBHTC5DYW52YXNMYXllcih7XHJcbiAgICAgICAgcGFuZU5hbWU6ICdtYXJrZXJTaGFkb3cnLFxyXG4gICAgICAgIHVwZGF0ZTogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgdmFyIGN0eCA9IHRoaXMuY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcbiAgICAgICAgICBpZiAoIWN0eCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjdHguY2xlYXJSZWN0KDAsIDAsIGN0eC5jYW52YXMud2lkdGgsIGN0eC5jYW52YXMuaGVpZ2h0KTtcclxuICAgICAgICAgIGNoaWxkLnVwZGF0ZShjdHgsIHBvaW50VG9QaXhlbCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2FudmFzT3ZlcmxheTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLmRlc3Ryb3llZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy52aWV3KSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgdGhpcy52aWV3LmRlc3Ryb3koKTtcclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1hcCkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMubWFwLmRlc3Ryb3koKTtcclxuICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFzeW5jIG1hcExvYWRlZChtYXA6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuY2l0eU5hbWUpIHtcclxuICAgICAgaWYgKHRoaXMuY2l0eU5hbWUgPT09ICfmuKnlt54nKSB7XHJcbiAgICAgICAgdGhpcy5jaXR5TmFtZSA9ICd3ZW56aG91JztcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBqc29uOiBhbnkgPSBhd2FpdCB0aGlzLmh0dHAuZ2V0KCdhc3NldHMvZWNoYXJ0cy9tYXAvanNvbi8nICsgdGhpcy5jaXR5TmFtZSArICcuanNvbicpLnRvUHJvbWlzZSgpO1xyXG4gICAgICBjb25zdCBwb2x5Z29uRGF0YSA9IFtdO1xyXG4gICAgICBsZXQgZW5jb2RlU2NhbGUgPSBqc29uLlVURjhTY2FsZSB8fCAxMDI0O1xyXG4gICAgICBqc29uLmZlYXR1cmVzLmZvckVhY2goKHsgZ2VvbWV0cnkgfSkgPT4ge1xyXG4gICAgICAgIGdlb21ldHJ5LmNvb3JkaW5hdGVzID0gKGdlb21ldHJ5LmNvb3JkaW5hdGVzIGFzIGFueVtdKS5mb3JFYWNoKChjb29yZGluYXRlLCBpKSA9PiB7XHJcbiAgICAgICAgICBpZiAoZ2VvbWV0cnkudHlwZSA9PT0gJ011bHRpUG9seWdvbicpIHtcclxuICAgICAgICAgICAgY29uc3QgY29vcmRpbmF0ZXMgPSAoY29vcmRpbmF0ZSBhcyBhbnlbXSkubWFwKChwb2ludHMsIGopID0+IHtcclxuICAgICAgICAgICAgICBpZiAoanNvbi5VVEY4RW5jb2RpbmcpIHtcclxuICAgICAgICAgICAgICAgIHBvaW50cyA9IHRoaXMuZGVjb2RlUG9seWdvbihwb2ludHMsIGdlb21ldHJ5LmVuY29kZU9mZnNldHNbaV1bal0sIGVuY29kZVNjYWxlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHBvaW50cztcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHBvbHlnb25EYXRhLnB1c2goY29vcmRpbmF0ZXMpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKGpzb24uVVRGOEVuY29kaW5nKSB7XHJcbiAgICAgICAgICAgICAgY29vcmRpbmF0ZSA9IHRoaXMuZGVjb2RlUG9seWdvbihjb29yZGluYXRlLCBnZW9tZXRyeS5lbmNvZGVPZmZzZXRzW2ldLCBlbmNvZGVTY2FsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcG9seWdvbkRhdGEucHVzaChbY29vcmRpbmF0ZV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgICAgY29uc3QgZGF0YSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBnZW9tZXRyeToge1xyXG4gICAgICAgICAgICB0eXBlOiAnTXVsdGlQb2x5Z29uJyxcclxuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHBvbHlnb25EYXRhLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICBdO1xyXG4gICAgICB2YXIgbGF5ZXIgPSBuZXcgbWFwdmdsLlBvbHlnb25MYXllcih7XHJcbiAgICAgICAgbGluZUNvbG9yOiB0aGlzLm1hcENpdHlDb2xvcixcclxuICAgICAgICBsaW5lV2lkdGg6IHRoaXMuc3Ryb2tlc2l6ZSB8fCAyLFxyXG4gICAgICAgIGZpbGxDb2xvcjogdGhpcy5zaGFkZUNvbG9yLFxyXG4gICAgICAgIGRhdGEsXHJcbiAgICAgICAgcmVuZGVyT3JkZXI6IC0yLFxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy52aWV3LmFkZExheWVyKGxheWVyKTtcclxuICAgICAgaWYgKHRoaXMubWFwQmFja0NvbG9yICYmICF0aGlzLm1hcEJhY2tDb2xvci5tYXRjaCgvcmdiYVxcKFxcZCssXFxkKyxcXGQrLDBcXCkvKSkge1xyXG4gICAgICAgIHZhciBtYXNrTGF5ZXIgPSBuZXcgbWFwdmdsLk1hc2tMYXllcih7XHJcbiAgICAgICAgICBjb2xvcjogdGhpcy5tYXBCYWNrQ29sb3IsXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgcmVuZGVyT3JkZXI6IC0zLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMudmlldy5hZGRMYXllcihtYXNrTGF5ZXIpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkZWNvZGVQb2x5Z29uKGNvb3JkaW5hdGU6IHN0cmluZywgZW5jb2RlT2Zmc2V0czogbnVtYmVyW10sIGVuY29kZVNjYWxlOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xyXG4gICAgbGV0IHByZXZYID0gZW5jb2RlT2Zmc2V0c1swXTtcclxuICAgIGxldCBwcmV2WSA9IGVuY29kZU9mZnNldHNbMV07XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb29yZGluYXRlLmxlbmd0aDsgaSArPSAyKSB7XHJcbiAgICAgIHZhciB4ID0gY29vcmRpbmF0ZS5jaGFyQ29kZUF0KGkpIC0gNjQ7XHJcbiAgICAgIHZhciB5ID0gY29vcmRpbmF0ZS5jaGFyQ29kZUF0KGkgKyAxKSAtIDY0O1xyXG4gICAgICAvLyBaaWdaYWcgZGVjb2RpbmdcclxuICAgICAgeCA9ICh4ID4+IDEpIF4gLSh4ICYgMSk7XHJcbiAgICAgIHkgPSAoeSA+PiAxKSBeIC0oeSAmIDEpO1xyXG4gICAgICAvLyBEZWx0YSBkZW9jZGluZ1xyXG4gICAgICB4ICs9IHByZXZYO1xyXG4gICAgICB5ICs9IHByZXZZO1xyXG5cclxuICAgICAgcHJldlggPSB4O1xyXG4gICAgICBwcmV2WSA9IHk7XHJcbiAgICAgIC8vIERlcXVhbnRpemVcclxuICAgICAgcmVzdWx0LnB1c2goW3ggLyBlbmNvZGVTY2FsZSwgeSAvIGVuY29kZVNjYWxlXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIGFzeW5jIG1hcFR5cGVDaGFuZ2UobWFwVHlwZTogc3RyaW5nKSB7XHJcbiAgICBzd2l0Y2ggKG1hcFR5cGUpIHtcclxuICAgICAgY2FzZSAnZGFyayc6XHJcbiAgICAgICAgaWYgKCF0aGlzLmRhcmtTdHlsZSkge1xyXG4gICAgICAgICAgdGhpcy5kYXJrU3R5bGUgPSBhd2FpdCB0aGlzLmh0dHAuZ2V0KCdhc3NldHMvZWNoYXJ0cy9tYXAvanNvbi9jdXN0b21fbWFwLmpzb24nKS50b1Byb21pc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tYXAuc2V0TWFwVHlwZShCTUFQX05PUk1BTF9NQVApO1xyXG4gICAgICAgIHRoaXMubWFwLnNldE1hcFN0eWxlVjIoeyBzdHlsZUpzb246IHRoaXMuZGFya1N0eWxlIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdzYXRlbGxpdGUnOlxyXG4gICAgICAgIHRoaXMubWFwLnNldE1hcFR5cGUoQk1BUF9TQVRFTExJVEVfTUFQKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY3VzdG9tJzpcclxuICAgICAgICBpZiAodGhpcy51cGxvYWRTdHlsZSkge1xyXG4gICAgICAgICAgY29uc3Qgc3R5bGVKc29uID0gYXdhaXQgdGhpcy5odHRwLmdldCh0aGlzLnVwbG9hZFN0eWxlKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgIHRoaXMubWFwLnNldE1hcFR5cGUoQk1BUF9OT1JNQUxfTUFQKTtcclxuICAgICAgICAgIHRoaXMubWFwLnNldE1hcFN0eWxlVjIoeyBzdHlsZUpzb24gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMubWFwLnNldE1hcFR5cGUoQk1BUF9OT1JNQUxfTUFQKTtcclxuICAgICAgICB0aGlzLm1hcC5zZXRNYXBTdHlsZVYyKHsgc3R5bGVKc29uOiBudWxsIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
675
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWJhaWR1LW1hcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY3JlZW4td2lkZ2V0L3NyYy9saWIvY3VzdG9tLWJhaWR1LW1hcC9jdXN0b20tYmFpZHUtbWFwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBRVosV0FBVyxFQUdYLE1BQU0sRUFJTixRQUFRLEVBRVIsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQVd6RCxNQUFNLFdBQVcsR0FBRztJQUNsQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUNoQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtJQUM5QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtJQUNuQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtDQUNsQyxDQUFDO0lBcUJXLHVCQUF1QixTQUF2Qix1QkFBdUI7SUFtTGxDLFlBQ1UsZUFBZ0MsRUFDaEMsSUFBZ0IsRUFDaEIsVUFBc0IsRUFDdEIsSUFBWSxFQUNBLE1BQW9CLEVBQ2hDLEVBQXFCLEVBQ3JCLFNBQW9CO1FBTnBCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNBLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDaEMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQXpMOUIsZ0RBQWdEO1FBQ2hELGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixjQUFjO1FBQ2QsY0FBYztRQUNkLG1CQUFtQjtRQUNuQixLQUFLO1FBSUwsWUFBTyxHQUFHLFFBQVEsQ0FBQztRQU9uQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBUW5CLGFBQVEsR0FBRyxPQUFPLENBQUM7UUF1Qm5CLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFNaEIsZUFBVSxHQUFHLFNBQVMsQ0FBQztRQVd2QixpQkFBWSxHQUFHLFNBQVMsQ0FBQztRQUl6QixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1Ysd0NBQXdDO1FBQ3hDLGFBQWE7UUFFYixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUVoQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBRWYsY0FBUyxHQUFHLEtBQUssQ0FBQztRQU1sQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1Ysc0JBQXNCO1FBQ3RCLDJEQUEyRDtRQUMzRCxLQUFLO1FBQ0wsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixzQkFBc0I7UUFDdEIseURBQXlEO1FBQ3pELEtBQUs7UUFDTCxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBUWYsYUFBUSxHQUFHLElBQUksQ0FBQztRQTJCaEIsd0JBQXdCO1FBQ3hCLGlCQUFpQjtRQUNqQixjQUFjO1FBT2QsVUFBSyxHQUFVLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBS3pDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBTXJDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBSXJDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBS25DLGFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRXpCLDRCQUE0QjtRQUM1Qix5QkFBeUI7UUFDekIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFNakIsVUFBSyxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFLSCxnQkFBVyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBWW5DLENBQUM7SUFFSixJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVTtRQUNqQixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQztJQUVLLFFBQVE7O1lBQ1osSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNmLDBCQUEwQjtnQkFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUM3RCxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFHLEtBQVksQ0FBQztvQkFDcEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0JBQ2pDLElBQUksWUFBWSxLQUFLLEtBQUssRUFBRTt3QkFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7NEJBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBeUIsQ0FBQzs0QkFDdEQsSUFBSSxNQUFNLEVBQUU7Z0NBQ1YsTUFBTSxLQUFLLEdBQUcsdUNBQXVDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7Z0NBQ25GLElBQUksS0FBSyxFQUFFO29DQUNULE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQ0FDckMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29DQUNyQyxLQUFLLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssQ0FBQztvQ0FDM0QsS0FBSyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxHQUFHLE9BQU8sR0FBRyxJQUFJLENBQUM7b0NBQ3BELEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFdBQVcsR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFDO29DQUNsRCxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsT0FBTyxVQUFVLE9BQU8sSUFBSSxDQUFDO29DQUNoRCwwQkFBMEI7b0NBQzFCLDRCQUE0QjtvQ0FDNUIseURBQXlEO29DQUN6RCxrREFBa0Q7b0NBQ2xELGdEQUFnRDtvQ0FDaEQsOENBQThDO29DQUM5QyxLQUFLO2lDQUNOOzZCQUNGOzRCQUVELDBCQUEwQjt3QkFDNUIsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7eUJBQU07d0JBQ0wsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQWEsQ0FBQzt3QkFDeEQsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUM7d0JBQzFCLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDO3dCQUMvQixLQUFLLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUM7d0JBQzFFLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQzt3QkFDeEMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO3dCQUN0QyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUM7cUJBQy9DO29CQUVELDBCQUEwQjtnQkFDNUIsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUNELE1BQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLENBQUM7S0FBQTtJQUVLLE9BQU87O1lBQ1gsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDakMsU0FBUztZQUNULElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUU7Z0JBQ3hCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUM7aUJBQzlCO3FCQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUM7aUJBQzVCO2FBQ0Y7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7b0JBQy9CLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7b0JBQ25GLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhO29CQUNsRyxJQUFJLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxhQUFhO29CQUMvQyx3Q0FBd0M7b0JBQ3hDLG1CQUFtQjtvQkFDbkIsYUFBYTtvQkFDYix3QkFBd0I7b0JBQ3hCLHNCQUFzQjtvQkFDdEIsNEJBQTRCO29CQUM1QixvQkFBb0I7b0JBQ3BCLE1BQU07b0JBQ04sbUNBQW1DO29CQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztvQkFDdEMsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFO3dCQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO3FCQUM1QjtvQkFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7d0JBQ2pCLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFDNUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTzt3QkFDeEUsaUVBQWlFO3dCQUNqRSxtQ0FBbUM7cUJBQ3BDO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7d0JBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7cUJBQzFCO29CQUNELElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO3dCQUM1QixNQUFNLE9BQU8sR0FBRzs0QkFDZCxvQkFBb0I7NEJBQ3BCLE1BQU0sRUFBRSxvQkFBb0I7NEJBQzVCLG1CQUFtQjs0QkFDbkIsTUFBTSxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO3lCQUNoQyxDQUFDO3dCQUNGLElBQUksZUFBZSxHQUFHLElBQUksTUFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDMUQsWUFBWTt3QkFDWixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztxQkFDdEM7b0JBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO3dCQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQzt3QkFDNUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO3FCQUM3QjtvQkFDRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTt3QkFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO3FCQUN2RjtvQkFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7d0JBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7cUJBQzdFO29CQUNELElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFO3dCQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsNEJBQTRCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7cUJBQzFGO29CQUNELElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQzdDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7d0JBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMvQixDQUFDLENBQUMsQ0FBQztvQkFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO3dCQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ3BDLENBQUMsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQzdDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQzt3QkFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO29CQUM3QyxDQUFDLENBQUMsQ0FBQztvQkFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQzt3QkFDMUIsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO3FCQUNkLENBQUMsQ0FBQztvQkFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkI7UUFDSCxDQUFDO0tBQUE7SUFFRCxTQUFTLENBQUMsR0FBVyxFQUFFLEdBQVc7UUFDaEMsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUU7WUFDMUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFO2dCQUMxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7YUFDckQ7U0FDRjtJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsR0FBVyxFQUFFLElBQVk7UUFDckQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZDLGtCQUFrQjtRQUNsQixJQUFJLElBQUksSUFBSSxXQUFXLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxFQUFFO1lBQ2xHLE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNuRTtJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxvQkFBb0IsQ0FBQyxNQUFjLEVBQUUsTUFBYyxFQUFFLE1BQWMsRUFBRSxNQUFjO1FBQ2pGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBRUQsT0FBTyxDQUFDLE1BQWMsRUFBRSxNQUFjLEVBQUUsTUFBYyxFQUFFLE1BQWM7UUFDcEUsTUFBTSxLQUFLLEdBQUc7WUFDWixFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPO1NBQzFHLENBQUMsQ0FBQyxTQUFTO1FBQ1osTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDMUQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCO1FBQ3BGLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDWixPQUFPLENBQUMsQ0FBQztTQUNWO1FBQ0Qsd0NBQXdDO1FBQ3hDLE9BQU8sRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFTLEVBQUUsR0FBVyxFQUFFLEdBQVc7UUFDaEQsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMvQyxNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUMzQyxxQkFBcUI7WUFDckIsaUNBQWlDO1lBQ2pDLGlCQUFpQjtZQUNqQixJQUFJO1lBQ0osSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNuQyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDM0IsV0FBVyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ2pFO1lBQ0QsTUFBTSxPQUFPLEdBQUc7Z0JBQ2QsTUFBTSxFQUFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDO2dCQUNoQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUM7YUFDbkMsQ0FBQztZQUNGLE1BQU0sVUFBVSxHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDL0QsMERBQTBEO1lBQzFELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNuQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtvQkFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7d0JBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDN0MsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7d0JBQ3BELFVBQVUsQ0FBQyxHQUFHLEVBQUU7NEJBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7NEJBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7NEJBQzdCLE9BQU8sRUFBRSxDQUFDO3dCQUNaLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDVixDQUFDLENBQUMsQ0FBQztvQkFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7aUJBQzVDO2dCQUNELE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7Z0JBQ2xDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFO29CQUN0QixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTt3QkFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7cUJBQzdEO3lCQUFNO3dCQUNMLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7cUJBQzNCO2dCQUNILENBQUMsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUM1QztZQUNELE9BQU8sVUFBVSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVU7UUFDekIsSUFBSSxhQUFhLENBQUM7UUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDeEIsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsSUFBSSxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlELElBQUksSUFBSSxHQUFHLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN4RCxJQUFJLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUMvRyxhQUFhLEdBQUcsSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRTtvQkFDL0MsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNoQixPQUFPLEVBQUUsQ0FBQztpQkFDWCxDQUFDLENBQUM7YUFDSjtTQUNGO2FBQU07WUFDTCxNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25ELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEMsQ0FBQyxDQUFDO1lBQ0YsYUFBYSxHQUFHLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQztnQkFDckMsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLE1BQU0sRUFBRTtvQkFDTixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdkMsSUFBSSxDQUFDLEdBQUcsRUFBRTt3QkFDUixPQUFPO3FCQUNSO29CQUNELEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN6RCxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDbEMsQ0FBQzthQUNGLENBQUMsQ0FBQztTQUNKO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSTtnQkFDRixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3JCO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsQjtTQUNGO1FBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSTtnQkFDRixJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3BCO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNsQjtTQUNGO0lBQ0gsQ0FBQztJQUVLLFNBQVMsQ0FBQyxHQUFROztZQUN0QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7b0JBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsU0FBUyxDQUFDO2lCQUMzQjtnQkFDRCxNQUFNLElBQUksR0FBUSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3hHLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO29CQUNyQyxRQUFRLENBQUMsV0FBVyxHQUFJLFFBQVEsQ0FBQyxXQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDL0UsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLGNBQWMsRUFBRTs0QkFDcEMsTUFBTSxXQUFXLEdBQUksVUFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0NBQzFELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtvQ0FDckIsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7aUNBQ2hGO2dDQUNELE9BQU8sTUFBTSxDQUFDOzRCQUNoQixDQUFDLENBQUMsQ0FBQzs0QkFDSCxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO3lCQUMvQjs2QkFBTTs0QkFDTCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0NBQ3JCLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDOzZCQUNyRjs0QkFDRCxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzt5QkFDaEM7b0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLEdBQUc7b0JBQ1g7d0JBQ0UsUUFBUSxFQUFFOzRCQUNSLElBQUksRUFBRSxjQUFjOzRCQUNwQixXQUFXLEVBQUUsV0FBVzt5QkFDekI7cUJBQ0Y7aUJBQ0YsQ0FBQztnQkFDRixJQUFJLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxZQUFZLENBQUM7b0JBQ2xDLFNBQVMsRUFBRSxJQUFJLENBQUMsWUFBWTtvQkFDNUIsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQztvQkFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVO29CQUMxQixJQUFJO29CQUNKLFdBQVcsRUFBRSxDQUFDLENBQUM7aUJBQ2hCLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsRUFBRTtvQkFDMUUsSUFBSSxTQUFTLEdBQUcsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDO3dCQUNuQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVk7d0JBQ3hCLElBQUk7d0JBQ0osV0FBVyxFQUFFLENBQUMsQ0FBQztxQkFDaEIsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUMvQjthQUNGO1FBQ0gsQ0FBQztLQUFBO0lBRUQsYUFBYSxDQUFDLFVBQWtCLEVBQUUsYUFBdUIsRUFBRSxXQUFtQjtRQUM1RSxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxLQUFLLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksS0FBSyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUU3QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMxQyxrQkFBa0I7WUFDbEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDeEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDeEIsaUJBQWlCO1lBQ2pCLENBQUMsSUFBSSxLQUFLLENBQUM7WUFDWCxDQUFDLElBQUksS0FBSyxDQUFDO1lBRVgsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNWLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDVixhQUFhO1lBQ2IsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxXQUFXLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDakQ7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUssYUFBYSxDQUFDLE9BQWU7O1lBQ2pDLFFBQVEsT0FBTyxFQUFFO2dCQUNmLEtBQUssTUFBTTtvQkFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTt3QkFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLHlDQUF5QyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7cUJBQzdGO29CQUNELElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUNyQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztvQkFDdEQsTUFBTTtnQkFDUixLQUFLLFdBQVc7b0JBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztvQkFDeEMsTUFBTTtnQkFDUixLQUFLLFFBQVE7b0JBQ1gsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO3dCQUNwQixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQzt3QkFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7d0JBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztxQkFDdkM7b0JBQ0QsTUFBTTtnQkFDUjtvQkFDRSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUMvQztRQUNILENBQUM7S0FBQTtDQUNGLENBQUE7O1lBbm1CQSxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsMmpCQUFnRDs7YUFFakQ7OztZQXJCUSxlQUFlO1lBdkJmLFVBQVU7WUFLakIsVUFBVTtZQU1WLE1BQU07WUFVQyxZQUFZLHVCQStOaEIsUUFBUTtZQWpQWCxpQkFBaUI7WUFrQmtCLFNBQVM7OztpQ0FvRjNDLFdBQVcsU0FBQywwQkFBMEI7Z0NBR3RDLFdBQVcsU0FBQyx5QkFBeUI7d0JBMkdyQyxTQUFTLFNBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7QUE5SXhDO0lBSEMsUUFBUSxDQUFDLE1BQU0sRUFBRTtRQUNoQixJQUFJLEVBQUUsV0FBVztLQUNsQixDQUFDOzt3REFDaUI7QUFHbkI7SUFEQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDOzs0REFDdEY7QUFFcEI7SUFEQyxRQUFRLENBQUMsTUFBTSxDQUFDOztpRUFDUztBQUUxQjtJQURDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7OzJEQUNuQjtBQVFuQjtJQVBDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7UUFDaEIsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRTtRQUN4QixJQUFJLEVBQUU7WUFDSixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtZQUMvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtTQUNwQztLQUNGLENBQUM7O3lEQUNpQjtBQUVuQjtJQURDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQzs7cUVBQ3BCO0FBRTdCO0lBREMsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDOztnRUFDekI7QUFFeEI7SUFEQyxRQUFRLENBQUMsT0FBTyxDQUFDOztnRUFDTTtBQUV4QjtJQURDLFFBQVEsQ0FBQyxPQUFPLENBQUM7O2lFQUNPO0FBRXpCO0lBREMsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDOzttRUFDdkI7QUFLM0I7SUFKQyxRQUFRLENBQUMsT0FBTyxFQUFFO1FBQ2pCLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUU7UUFDekIsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQztLQUM3RixDQUFDOztzRUFDNEI7QUFHOUI7SUFGQyxRQUFRLENBQUMsTUFBTSxDQUFDOzttRUFFVztBQUc1QjtJQUZDLFFBQVEsQ0FBQyxRQUFRLENBQUM7O2tFQUVRO0FBRTNCO0lBREMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQzs7eURBQ3RCO0FBTWhCO0lBSkMsUUFBUSxDQUFDLE1BQU0sRUFBRTtRQUNoQixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO1FBQ3pCLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUM7S0FDN0YsQ0FBQzs7MkRBQ3FCO0FBS3ZCO0lBSkMsUUFBUSxDQUFDLE1BQU0sRUFBRTtRQUNoQixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO1FBQ3pCLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUM7S0FDN0YsQ0FBQzs7NkRBQ21CO0FBTXJCO0lBSkMsUUFBUSxDQUFDLE1BQU0sRUFBRTtRQUNoQixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFO1FBQ3pCLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUM7S0FDN0YsQ0FBQzs7NkRBQ3VCO0FBSXpCO0lBSEMsUUFBUSxDQUFDLE1BQU0sRUFBRTtRQUNoQixFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFO0tBQ3BELENBQUM7O3FEQUNRO0FBSVY7SUFEQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDOzs0REFDckI7QUFFaEI7SUFEQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDOzsyREFDdEI7QUFFZjtJQURDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDOzswREFDMUM7QUFFbEI7SUFEQyxRQUFRLENBQUMsTUFBTSxDQUFDOzt5REFDQztBQUVsQjtJQURDLFFBQVEsQ0FBQyxNQUFNLENBQUM7O29FQUNZO0FBRTdCO0lBREMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7O3FEQUNwRTtBQWdCVjtJQVBDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7UUFDaEIsRUFBRSxFQUFFO1lBQ0YsTUFBTSxFQUFFLGFBQWE7WUFDckIsVUFBVSxFQUFFLElBQUk7WUFDaEIsR0FBRyxFQUFFLDBCQUEwQjtTQUNoQztLQUNGLENBQUM7O3lEQUNjO0FBb0NoQjtJQU5DLElBQUksQ0FBQztRQUNKLFVBQVUsRUFBRTtZQUNWLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUNwQyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7U0FDckM7S0FDRixDQUFDOztzREFDdUM7QUFLekM7SUFKQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUIsS0FBSyxDQUFDLE9BQU8sRUFBRTtRQUNkLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7S0FDdkcsQ0FBQzs7MkRBQ21DO0FBTXJDO0lBSkMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUNsQixLQUFLLENBQUMsSUFBSSxFQUFFO1FBQ1gsTUFBTSxFQUFFLE1BQU07S0FDZixDQUFDOzsyREFDbUM7QUFJckM7SUFIQyxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ2IsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTtLQUN2RyxDQUFDOzt5REFDaUM7QUF6SnhCLHVCQUF1QjtJQWZuQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2QsS0FBSyxFQUFFLFdBQVc7UUFDbEIsS0FBSyxFQUFFLG9DQUFvQztRQUMzQyxRQUFRLEVBQUU7WUFDUjtnQkFDRSxLQUFLLEVBQUUsS0FBSztnQkFDWixJQUFJLEVBQUUsdUJBQXVCO2dCQUM3QixNQUFNLEVBQUUsRUFBRTtnQkFDVixNQUFNLEVBQUUsSUFBSTtnQkFDWixTQUFTLEVBQUUsSUFBSTthQUNoQjtTQUNGO1FBQ0QsVUFBVSxFQUFFLENBQUMsdUJBQXVCLEVBQUUseUJBQXlCLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixDQUFDO1FBQzFHLFdBQVcsRUFBRSxjQUFjO0tBQ3JCLENBQUM7cUNBcUxvQixlQUFlO1FBQzFCLFVBQVU7UUFDSixVQUFVO1FBQ2hCLE1BQU07UUFDUSxZQUFZO1FBQzVCLGlCQUFpQjtRQUNWLFNBQVM7R0ExTG5CLHVCQUF1QixDQStrQm5DO1NBL2tCWSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbmplY3QsXHJcbiAgTmdab25lLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU2NhbGVTdWJqZWN0LCBUZW1wbGF0ZVV0aWwsIFdpZGdldFJlZiB9IGZyb20gJ2Jiai13aWRnZXQtYmFzZSc7XHJcbmltcG9ydCB7IERhdGEsIERhdGFPdXRwdXQsIFByb3BlcnR5LCBXaWRnZXQsIEV2ZW50IH0gZnJvbSAnYmJqLXdpZGdldC1iYXNlJztcclxuaW1wb3J0IHsgQmFpZHVNYXBTZXJ2aWNlIH0gZnJvbSAnYmJqLXNjcmVlbi13aWRnZXQvY29yZSc7XHJcblxyXG4vLyBkZWNsYXJlIGNvbnN0IEJNYXA7XHJcbmRlY2xhcmUgY29uc3QgQk1hcEdMOiBhbnk7XHJcbi8vIGRlY2xhcmUgY29uc3QgQk1hcEdMTGliO1xyXG4vLyBkZWNsYXJlIGNvbnN0IEJNYXBMaWI7XHJcbi8vIGRlY2xhcmUgY29uc3QgQk1BUF9BTkNIT1JfQk9UVE9NX0xFRlQ6IG51bWJlcjtcclxuZGVjbGFyZSBjb25zdCBCTUFQX0FOQ0hPUl9UT1BfTEVGVDogbnVtYmVyO1xyXG5kZWNsYXJlIGNvbnN0IG1hcHZnbDogYW55O1xyXG5kZWNsYXJlIGNvbnN0IEJNQVBfU0FURUxMSVRFX01BUDogbnVtYmVyO1xyXG5kZWNsYXJlIGNvbnN0IEJNQVBfTk9STUFMX01BUDogbnVtYmVyO1xyXG5jb25zdCBNYXBUeXBlRW51bSA9IFtcclxuICB7IGxhYmVsOiAn5pmu6YCaJywgdmFsdWU6ICdub3JtYWwnIH0sXHJcbiAgeyBsYWJlbDogJ+a3seiJsicsIHZhbHVlOiAnZGFyaycgfSxcclxuICB7IGxhYmVsOiAn5Y2r5pifJywgdmFsdWU6ICdzYXRlbGxpdGUnIH0sXHJcbiAgeyBsYWJlbDogJ+iHquWumuS5iScsIHZhbHVlOiAnY3VzdG9tJyB9LFxyXG5dO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NjLWN1c3RvbS1iYWlkdS1tYXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tYmFpZHUtbWFwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tYmFpZHUtbWFwLmNvbXBvbmVudC5sZXNzJ10sXHJcbn0pXHJcbkBXaWRnZXQoJ+eZvuW6puWcsOWbvicsIHtcclxuICBncm91cDogJ2NvbXBvbmVudCcsXHJcbiAgaW1hZ2U6ICdhc3NldHMvaW1nL3NjcmVlbi9teS1iYWlkdS1tYXAucG5nJyxcclxuICBjaGlsZHJlbjogW1xyXG4gICAge1xyXG4gICAgICB0aXRsZTogJ+agh+iusOWxgicsXHJcbiAgICAgIHR5cGU6ICdzYy1iYWlkdS1tYXJrZXItbGF5ZXInLFxyXG4gICAgICBvcHRpb246IHt9LFxyXG4gICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgIGhpZGVDaGlsZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxuICBjaGlsZFR5cGVzOiBbJ3NjLWJhaWR1LW1hcmtlci1sYXllcicsICdzYy1iYWlkdS1wb2x5bGluZS1sYXllcicsICdzYy13aW5kLWxheWVyJywgJ3NjLXR5cGhvb24tYXJlYS1sYXllciddLFxyXG4gIGRlc2NyaXB0aW9uOiAnaGFzQ2hpbGRJdGVtJyxcclxufSBhcyBhbnkpXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21CYWlkdU1hcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG4gIC8vIEBQcm9wZXJ0eSgn5a2X5L2TJywgeyB1aTogeyB3aWRnZXQ6ICdteUZvbnQnIH0gfSlcclxuICAvLyBmb250OiBhbnkgPSB7XHJcbiAgLy8gICBmYW1pbHk6ICcnLFxyXG4gIC8vICAgY29sb3I6ICcjMDAwMDAwJyxcclxuICAvLyAgIHdlaWdodDogJ25vcm1hbCcsXHJcbiAgLy8gICBzaXplOiAxNixcclxuICAvLyAgIHNwYWNlOiAwLFxyXG4gIC8vICAgbGluZUhlaWdodDogMCxcclxuICAvLyB9O1xyXG4gIEBQcm9wZXJ0eSgn5Zyw5Zu+57G75Z6LJywge1xyXG4gICAgZW51bTogTWFwVHlwZUVudW0sXHJcbiAgfSlcclxuICBtYXBUeXBlID0gJ25vcm1hbCc7XHJcbiAgbWFwVHlwZVZhbHVlOiBzdHJpbmc7XHJcbiAgQFByb3BlcnR5KCfkuIrkvKDmoLflvI8nLCB7IHR5cGU6ICdzdHJpbmcnLCB1aTogeyB3aWRnZXQ6ICdteVVwbG9hZEF1ZGlvJywgdmlzaWJsZUlmOiB7IG1hcFR5cGU6IFsnY3VzdG9tJ10gfSB9IH0pXHJcbiAgdXBsb2FkU3R5bGU6IHN0cmluZztcclxuICBAUHJvcGVydHkoJ+WIh+aNouaMiemSricpXHJcbiAgc2hvd01hcFR5cGVSYWRpbzogYm9vbGVhbjtcclxuICBAUHJvcGVydHkoJ+WFqOaZr+WcsOWbvicsIHsgdHlwZTogJ2Jvb2xlYW4nIH0pXHJcbiAgbWluTWFwU2hvdyA9IGZhbHNlO1xyXG4gIEBQcm9wZXJ0eSgn5pi+56S65L+h5oGvJywge1xyXG4gICAgdWk6IHsgd2lkZ2V0OiAnc2VsZWN0JyB9LFxyXG4gICAgZW51bTogW1xyXG4gICAgICB7IGxhYmVsOiAn54K55Ye7JywgdmFsdWU6ICdjbGljaycgfSxcclxuICAgICAgeyBsYWJlbDogJ+aCrOWBnCcsIHZhbHVlOiAnbW91c2VvdmVyJyB9LFxyXG4gICAgXSxcclxuICB9KVxyXG4gIHNob3dUeXBlID0gJ2NsaWNrJztcclxuICBAUHJvcGVydHkoJ+S/oeaBr+eql+iDjOaZrycsIHsgdWk6IHsgd2lkZ2V0OiAnbXlDb2xvcicgfSB9KVxyXG4gIGluZm9XaW5kb3dCYWNrZ3JvdW5kOiBzdHJpbmc7XHJcbiAgQFByb3BlcnR5KCfkv6Hmga/nqpflrZfkvZMnLCB7IHVpOiB7IHdpZGdldDogJ215Q29sb3InIH0gfSlcclxuICBpbmZvV2luZG93Q29sb3I6IHN0cmluZztcclxuICBAUHJvcGVydHkoJ+S/oeaBr+eql+WuveW6picpXHJcbiAgaW5mb1dpbmRvd1dpZHRoOiBudW1iZXI7XHJcbiAgQFByb3BlcnR5KCfkv6Hmga/nqpfpq5jluqYnKVxyXG4gIGluZm9XaW5kb3dIZWlnaHQ6IG51bWJlcjtcclxuICBAUHJvcGVydHkoJ+S/oeaBr+eql+aooeadvycsIHsgdWk6IHsgd2lkZ2V0OiAndGV4dGFyZWEnIH0gfSlcclxuICBpbmZvV2luZG93VGVtcGxhdGU6IHN0cmluZztcclxuICBAUHJvcGVydHkoJ+S/oeaBr+eql+i+ueahhicsIHtcclxuICAgIHVpOiB7IHdpZGdldDogJ215Q29sb3InIH0sXHJcbiAgICBleGFtcGxlOiBbJyNmZmZmZmYnLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCBudWxsXSxcclxuICB9KVxyXG4gIGluZm9XaW5kb3dCb3JkZXJDb2xvcjogc3RyaW5nO1xyXG4gIEBQcm9wZXJ0eSgn6ZqQ6JeP5bCW6KeSJylcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhpZGVJbmZvV2luZG93VGFpbCcpXHJcbiAgaGlkZUluZm9XaW5kb3dUYWlsOiBib29sZWFuO1xyXG4gIEBQcm9wZXJ0eSgn6ZqQ6JeP5YWz6Zet5oyJ6ZKuJylcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhpZGVJbmZvV2luZG93VG9wJylcclxuICBoaWRlSW5mb1dpbmRvd1RvcDogYm9vbGVhbjtcclxuICBAUHJvcGVydHkoJ+WcsOWbvuaLluWKqCcsIHsgdHlwZTogJ2Jvb2xlYW4nIH0pXHJcbiAgZHJhZ2dpbmcgPSB0cnVlO1xyXG5cclxuICBAUHJvcGVydHkoJ+mBrue9qeminOiJsicsIHtcclxuICAgIHVpOiB7IHdpZGdldDogJ215Q29sb3InIH0sXHJcbiAgICBleGFtcGxlOiBbJyNmZmZmZmYnLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCBudWxsXSxcclxuICB9KVxyXG4gIHNoYWRlQ29sb3IgPSAnIzAwNDM5NSc7XHJcbiAgQFByb3BlcnR5KCfog4zmma/popzoibInLCB7XHJcbiAgICB1aTogeyB3aWRnZXQ6ICdteUNvbG9yJyB9LFxyXG4gICAgZXhhbXBsZTogWycjZmZmZmZmJywgJyNGNUE2MjMnLCAnI0Y4RTcxQycsICcjNTBFM0MyJywgJyMzMjg1RkYnLCAnI0I0NUZGRicsICcjOUI5QjlCJywgbnVsbF0sXHJcbiAgfSlcclxuICBtYXBCYWNrQ29sb3I6IHN0cmluZztcclxuXHJcbiAgQFByb3BlcnR5KCflpJrovrnnur/oibInLCB7XHJcbiAgICB1aTogeyB3aWRnZXQ6ICdteUNvbG9yJyB9LFxyXG4gICAgZXhhbXBsZTogWycjZmZmZmZmJywgJyNGNUE2MjMnLCAnI0Y4RTcxQycsICcjNTBFM0MyJywgJyMzMjg1RkYnLCAnI0I0NUZGRicsICcjOUI5QjlCJywgbnVsbF0sXHJcbiAgfSlcclxuICBtYXBDaXR5Q29sb3IgPSAnIzQxYjdmZic7XHJcbiAgQFByb3BlcnR5KCflnLDlm77nvKnmlL4nLCB7XHJcbiAgICB1aTogeyB3aWRnZXQ6ICdteVJhbmdlJywgbWluOiAxLCBtYXg6IDQwLCBzdGVwOiAxIH0sXHJcbiAgfSlcclxuICB6b29tID0gMTI7XHJcbiAgLy8gQFByb3BlcnR5KCfmlL7lpKfmr5TkvosnLCB7IHR5cGU6ICdudW1iZXInIH0pXHJcbiAgLy8gc2NhbGUgPSAxO1xyXG4gIEBQcm9wZXJ0eSgn6YGu572p6YCP5piOJywgeyB0eXBlOiAnbnVtYmVyJyB9KVxyXG4gIGZpbGxPcGFjaXR5ID0gMDtcclxuICBAUHJvcGVydHkoJ+Wkmui+uee6v+eylycsIHsgdHlwZTogJ251bWJlcicgfSlcclxuICBzdHJva2VzaXplID0gMjtcclxuICBAUHJvcGVydHkoJ+m7keWknOaooeW8jycsIHsgdHlwZTogJ2Jvb2xlYW4nLCB1aTogeyBoaWRkZW46IHRydWUgfSB9KVxyXG4gIG5pZ2h0TW9kZSA9IGZhbHNlO1xyXG4gIEBQcm9wZXJ0eSgnM0Top4bop5InKVxyXG4gIGVuYWJsZTNEOiBib29sZWFuO1xyXG4gIEBQcm9wZXJ0eSgn5a6a5L2N5o6n5Lu2JylcclxuICBzaG93TG9jYXRpb25Db250cm9sOiBib29sZWFuO1xyXG4gIEBQcm9wZXJ0eSgn5Yid5aeL6KeS5bqmJywgeyB0eXBlOiAnbnVtYmVyJywgdWk6IHsgdmlzaWJsZUlmOiB7IGVuYWJsZTNEOiBbdHJ1ZV0gfSB9IH0pXHJcbiAgdGlsdCA9IDczO1xyXG4gIC8vIEBQcm9wZXJ0eSgn5Lit5b+D57uP5bqmJywge1xyXG4gIC8vICAgdWk6IHt3aWRnZXQ6ICdteVJhbmdlJywgbWluOiAtMTgwLCBtYXg6IDE4MCwgc3RlcDogMX0sXHJcbiAgLy8gfSlcclxuICBjZW50ZXJMbmcgPSAxMjAuNztcclxuICAvLyBAUHJvcGVydHkoJ+S4reW/g+e6rOW6picsIHtcclxuICAvLyAgIHVpOiB7d2lkZ2V0OiAnbXlSYW5nZScsIG1pbjogLTkwLCBtYXg6IDkwLCBzdGVwOiAxfSxcclxuICAvLyB9KVxyXG4gIGNlbnRlckxhdCA9IDI4O1xyXG4gIEBQcm9wZXJ0eSgn5pi+56S655yB5biCJywge1xyXG4gICAgdWk6IHtcclxuICAgICAgd2lkZ2V0OiAnbXlVcmxTZWxlY3QnLFxyXG4gICAgICBhbGxvd0NsZWFyOiB0cnVlLFxyXG4gICAgICB1cmw6ICcvYXNzZXRzL21hcExpc3RJdGVtLmpzb24nLFxyXG4gICAgfSxcclxuICB9KVxyXG4gIGNpdHlOYW1lID0gbnVsbDtcclxuICBwb2ludDogYW55O1xyXG5cclxuICAvLyBfZGF0YSA9IFtcclxuICAvLyAgIHtcclxuICAvLyAgICAgb3B0aW9uczoge1xyXG4gIC8vICAgICAgIGljb246IHtcclxuICAvLyAgICAgICAgIGltYWdlVXJsOiAnYXNzZXRzL2ltZy9zY3JlZW4vbnVtYmVyLWZsb3AucG5nJyxcclxuICAvLyAgICAgICAgIHNpemU6IHtcclxuICAvLyAgICAgICAgICAgaGVpZ2h0OiAyNjAsXHJcbiAgLy8gICAgICAgICAgIHdpZHRoOiAyNTBcclxuICAvLyAgICAgICAgIH1cclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0sXHJcbiAgLy8gICAgIHBvaW50OiB7XHJcbiAgLy8gICAgICAgbG5nOiAxMjAuNywgICAvLyDnu4/luqZcclxuICAvLyAgICAgICBsYXQ6IDI4LCAgICAvLyDnuqzluqZcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSxcclxuICAvLyBdO1xyXG4gIC8vIOaWh+Wtl+agh+azqFxyXG5cclxuICBwdWJsaWMgdGV4dDogc3RyaW5nO1xyXG4gIC8vIF9jaGlsZHJlbiA9IFtdO1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBtYXA6IGFueTtcclxuICBlZGl0OiBib29sZWFuO1xyXG4gIC8vIG1hcmtlclRpZXJDbGljazogYW55O1xyXG4gIC8vIHBpbmd5YW5nID0gJyc7XHJcbiAgLy8gcnVpYW4gPSAnJztcclxuICBARGF0YSh7XHJcbiAgICBwcm9wZXJ0aWVzOiB7XHJcbiAgICAgIGxuZzogeyB0eXBlOiAnbnVtYmVyJywgdGl0bGU6ICfnu4/luqYnIH0sXHJcbiAgICAgIGxhdDogeyB0eXBlOiAnbnVtYmVyJywgdGl0bGU6ICfnuqzluqYnIH0sXHJcbiAgICB9LFxyXG4gIH0pXHJcbiAgX2RhdGE6IGFueVtdID0gW3sgbG5nOiAxMjAuNywgbGF0OiAyOCB9XTtcclxuICBARGF0YU91dHB1dChbJ2xuZycsICdsYXQnXSlcclxuICBARXZlbnQoJ+S4reW/g+eCueaUueWPmCcsIHtcclxuICAgIHBhcmFtczogeyBwcm9wZXJ0aWVzOiB7IGxuZzogeyB0aXRsZTogJ+e7j+W6picsIHR5cGU6ICdudW1iZXInIH0sIGxhdDogeyB0aXRsZTogJ+e6rOW6picsIHR5cGU6ICdudW1iZXInIH0gfSB9LFxyXG4gIH0pXHJcbiAgZGF0YUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBARGF0YU91dHB1dCgn57yp5pS+562J57qnJylcclxuICBARXZlbnQoJ+e8qeaUvicsIHtcclxuICAgIHBhcmFtczogJ+e8qeaUvuetiee6pycsXHJcbiAgfSlcclxuICB6b29tQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQEV2ZW50KCflnLDlm77ngrnlh7snLCB7XHJcbiAgICBwYXJhbXM6IHsgcHJvcGVydGllczogeyBsbmc6IHsgdGl0bGU6ICfnu4/luqYnLCB0eXBlOiAnbnVtYmVyJyB9LCBsYXQ6IHsgdGl0bGU6ICfnuqzluqYnLCB0eXBlOiAnbnVtYmVyJyB9IH0gfSxcclxuICB9KVxyXG4gIG1hcENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgY29udGFpbmVyOiBFbGVtZW50UmVmO1xyXG4gIGNoaWxkcmVuOiBhbnlbXTtcclxuICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZGVzdHJveWVkOiBib29sZWFuO1xyXG4gIC8vIGNvbnRhaW5lclN0eWxlOiBhbnkgPSB7fTtcclxuICAvLyB1bmxvYWRlZENoaWxkcmVuID0ge307XHJcbiAgb3ZlcmxheXNNYXAgPSB7fTtcclxuXHJcbiAgLy8gQEhvc3RCaW5kaW5nKCdjbGFzcy5oaWRlSW5mb1dpbmRvd1RhaWwnKVxyXG4gIC8vIGhpZGVJbmZvV2luZG93VGFpbDogYm9vbGVhbjtcclxuXHJcbiAgcHJpdmF0ZSBpbml0ZWQ6IChtYXA6IGFueSkgPT4gdm9pZDtcclxuICBpbml0JCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XHJcbiAgICB0aGlzLmluaXRlZCA9IHJlc29sdmU7XHJcbiAgfSk7XHJcbiAgdmlldzogYW55O1xyXG4gIHBpY2tlckV2ZW50OiBhbnk7XHJcbiAgcGlja2VySXRlbTogYW55O1xyXG4gIHBpY2tlclRpbWVvdXQ6IGFueTtcclxuICBtYXBUeXBlRW51bSA9IE1hcFR5cGVFbnVtLnNsaWNlKDAsIDMpO1xyXG4gIGRhcmtTdHlsZTogYW55O1xyXG4gIGZpcnN0T3BlbjogYm9vbGVhbjtcclxuICBmaXJzdE9wZW5Qcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBiYWlkdU1hcFNlcnZpY2U6IEJhaWR1TWFwU2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgem9uZTogTmdab25lLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBzY2FsZSQ6IFNjYWxlU3ViamVjdCxcclxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSB3aWRnZXRSZWY6IFdpZGdldFJlZixcclxuICApIHt9XHJcblxyXG4gIGdldCBlbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcclxuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIGFkZExheWVyKGxheWVyOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnZpZXcpIHtcclxuICAgICAgdGhpcy52aWV3LmFkZExheWVyKGxheWVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZUxheWVyKGxheWVyOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLnZpZXcpIHtcclxuICAgICAgdGhpcy52aWV3LnJlbW92ZUxheWVyKGxheWVyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLl9kYXRhICYmIHRoaXMuX2RhdGFbMF0pIHtcclxuICAgICAgdGhpcy5jZW50ZXJMbmcgPSArdGhpcy5fZGF0YVswXS5sbmc7XHJcbiAgICAgIHRoaXMuY2VudGVyTGF0ID0gK3RoaXMuX2RhdGFbMF0ubGF0O1xyXG4gICAgICB0aGlzLnNldENlbnRlcih0aGlzLmNlbnRlckxuZywgdGhpcy5jZW50ZXJMYXQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zY2FsZSQpIHtcclxuICAgICAgLy8g6L+Z5piv5Li65LqG6Kej5Yaz5Zyw5Zu+57yp5pS+5Lit5b+D5LiN5Zyo6byg5qCH5omA5Zyo5L2N572u55qE6Zeu6aKYXHJcbiAgICAgIHRoaXMuc2NhbGUkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHNjYWxlKSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyB4OiBzeCwgeTogc3ksIHNjYWxlQ29udGVudCB9ID0gc2NhbGUgYXMgYW55O1xyXG4gICAgICAgIGNvbnN0IHN0eWxlID0gdGhpcy5lbGVtZW50LnN0eWxlO1xyXG4gICAgICAgIGlmIChzY2FsZUNvbnRlbnQgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICB0aGlzLnpvbmUub25TdGFibGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmVsZW1lbnQucGFyZW50Tm9kZSBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgICAgICAgaWYgKHBhcmVudCkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG1hdGNoID0gL3RyYW5zbGF0ZVxcKChbLVxcZC5dKylweCwgKFstXFxkLl0rKXB4XFwpLy5leGVjKHBhcmVudC5zdHlsZS50cmFuc2Zvcm0pO1xyXG4gICAgICAgICAgICAgIGlmIChtYXRjaCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IHBhcnNlRmxvYXQobWF0Y2hbMV0pO1xyXG4gICAgICAgICAgICAgICAgY29uc3Qgb2Zmc2V0WSA9IHBhcnNlRmxvYXQobWF0Y2hbMl0pO1xyXG4gICAgICAgICAgICAgICAgc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgkey1vZmZzZXRYfXB4LCR7LW9mZnNldFl9cHgpYDtcclxuICAgICAgICAgICAgICAgIHN0eWxlLmhlaWdodCA9IHBhcmVudC5jbGllbnRIZWlnaHQgKyBvZmZzZXRZICsgJ3B4JztcclxuICAgICAgICAgICAgICAgIHN0eWxlLndpZHRoID0gcGFyZW50LmNsaWVudFdpZHRoICsgb2Zmc2V0WCArICdweCc7XHJcbiAgICAgICAgICAgICAgICBzdHlsZS5wYWRkaW5nID0gYCR7b2Zmc2V0WX1weCAwIDAgJHtvZmZzZXRYfXB4YDtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuY29udGFpbmVyU3R5bGUgPSB7XHJcbiAgICAgICAgICAgICAgICAvLyAgIHRyYW5zZm9ybU9yaWdpbjogYDAgMGAsXHJcbiAgICAgICAgICAgICAgICAvLyAgIHRyYW5zZm9ybTogYHRyYW5zbGF0ZSgkey1vZmZzZXRYfXB4LCR7LW9mZnNldFl9cHgpYCxcclxuICAgICAgICAgICAgICAgIC8vICAgaGVpZ2h0OiBwYXJlbnQuY2xpZW50SGVpZ2h0ICsgb2Zmc2V0WSArICdweCcsXHJcbiAgICAgICAgICAgICAgICAvLyAgIHdpZHRoOiBwYXJlbnQuY2xpZW50V2lkdGggKyBvZmZzZXRYICsgJ3B4JyxcclxuICAgICAgICAgICAgICAgIC8vICAgcGFkZGluZzogYCR7b2Zmc2V0WX1weCAwIDAgJHtvZmZzZXRYfXB4YCxcclxuICAgICAgICAgICAgICAgIC8vIH07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHsgcG9zaXRpb24sIHNpemUgfSA9IHRoaXMud2lkZ2V0UmVmLndpZGdldCBhcyBhbnk7XHJcbiAgICAgICAgICBjb25zdCB7IHgsIHkgfSA9IHBvc2l0aW9uO1xyXG4gICAgICAgICAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBzaXplO1xyXG4gICAgICAgICAgc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgkey14fXB4LCR7LXl9cHgpIHNjYWxlKCR7MSAvIHN4fSwkezEgLyBzeX0pYDtcclxuICAgICAgICAgIHN0eWxlLmhlaWdodCA9ICh5ICsgaGVpZ2h0KSAqIHN5ICsgJ3B4JztcclxuICAgICAgICAgIHN0eWxlLndpZHRoID0gKHggKyB3aWR0aCkgKiBzeCArICdweCc7XHJcbiAgICAgICAgICBzdHlsZS5wYWRkaW5nID0gYCR7eSAqIHN5fXB4IDAgMCAke3ggKiBzeH1weGA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGF3YWl0IHRoaXMuaW5pdE1hcCgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgaW5pdE1hcCgpIHtcclxuICAgIGF3YWl0IHRoaXMuYmFpZHVNYXBTZXJ2aWNlLmxvYWRNYXBHTCgpO1xyXG4gICAgYXdhaXQgdGhpcy5iYWlkdU1hcFNlcnZpY2UubG9hZE1hcFZHTCgpO1xyXG4gICAgdGhpcy5tYXBUeXBlVmFsdWUgPSB0aGlzLm1hcFR5cGU7XHJcbiAgICAvLyDlhbzlrrnogIHnmoTphY3nva5cclxuICAgIGlmICh0aGlzLm1hcFR5cGUgPT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy51cGxvYWRTdHlsZSkge1xyXG4gICAgICAgIHRoaXMubWFwVHlwZVZhbHVlID0gJ2N1c3RvbSc7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5uaWdodE1vZGUpIHtcclxuICAgICAgICB0aGlzLm1hcFR5cGVWYWx1ZSA9ICdkYXJrJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmRlc3Ryb3llZCkge1xyXG4gICAgICB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubWFwID0gbmV3IEJNYXBHTC5NYXAodGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudCwgeyByZXN0cmljdENlbnRlcjogZmFsc2UgfSk7XHJcbiAgICAgICAgdGhpcy5tYXAuY2VudGVyQW5kWm9vbShuZXcgQk1hcEdMLlBvaW50KHRoaXMuY2VudGVyTG5nLCB0aGlzLmNlbnRlckxhdCksIHRoaXMuem9vbSk7IC8vIOiuvue9ruS4reW/g+eCueWSjOe8qeaUvue6p+WIq1xyXG4gICAgICAgIHRoaXMubWFwLmVuYWJsZVNjcm9sbFdoZWVsWm9vbSgpOyAvLyDlkK/nlKjmu5rova7ov5vooYznvKnmlL7lip/og71cclxuICAgICAgICAvLyB2YXIgZGlzdCA9IG5ldyBCTWFwR0wuRGlzdHJpY3RMYXllcih7XHJcbiAgICAgICAgLy8gICBuYW1lOiAnKOa4qeW3nuW4giknLFxyXG4gICAgICAgIC8vICAga2luZDogMSxcclxuICAgICAgICAvLyAgICBmaWxsQ29sb3I6ICcjZmZmJyxcclxuICAgICAgICAvLyAgIGZpbGxPcGFjaXR5OiAwLjEsXHJcbiAgICAgICAgLy8gICBzdHJva2VDb2xvcjogJyNkYWVhZmEnLFxyXG4gICAgICAgIC8vICAgdmlld3BvcnQ6IHRydWUsXHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICAgICAgLy8gdGhpcy5tYXAuYWRkRGlzdHJpY3RMYXllcihkaXN0KTtcclxuICAgICAgICB0aGlzLm1hcFR5cGVDaGFuZ2UodGhpcy5tYXBUeXBlVmFsdWUpO1xyXG4gICAgICAgIGlmICh0aGlzLmVkaXQgfHwgdGhpcy5kcmFnZ2luZyA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgIHRoaXMubWFwLmRpc2FibGVEcmFnZ2luZygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5lbmFibGUzRCkge1xyXG4gICAgICAgICAgdGhpcy5tYXAuc2V0VGlsdCh0aGlzLnRpbHQgPT0gbnVsbCA/IDczIDogdGhpcy50aWx0LCB7IG5vQW5pbWF0aW9uOiB0cnVlIH0pO1xyXG4gICAgICAgICAgdGhpcy5tYXAuc2V0RGlzcGxheU9wdGlvbnMoeyBza3lDb2xvcnM6IFsncmdiYSgwLCAwLCAwLCAwKSddIH0pOyAvLyDpmpDol4/lpKnnqbpcclxuICAgICAgICAgIC8vIGNvbnN0IG5hdmkzREN0cmwgPSBuZXcgQk1hcEdMLk5hdmlnYXRpb25Db250cm9sM0QoKTsgLy8g5re75YqgM0Tmjqfku7ZcclxuICAgICAgICAgIC8vIHRoaXMubWFwLmFkZENvbnRyb2wobmF2aTNEQ3RybCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubWFwLmRpc2FibGVUaWx0KCk7XHJcbiAgICAgICAgICB0aGlzLm1hcC5kaXNhYmxlUm90YXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnNob3dMb2NhdGlvbkNvbnRyb2wpIHtcclxuICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIC8vIOaOp+S7tueahOWBnOmdoOS9jee9ru+8iOWPr+mAie+8jOm7mOiupOW3puS4iuinku+8iVxyXG4gICAgICAgICAgICBhbmNob3I6IEJNQVBfQU5DSE9SX1RPUF9MRUZULFxyXG4gICAgICAgICAgICAvLyDmjqfku7bln7rkuo7lgZzpnaDkvY3nva7nmoTlgY/np7vph4/vvIjlj6/pgInvvIlcclxuICAgICAgICAgICAgb2Zmc2V0OiBuZXcgQk1hcEdMLlNpemUoMjAsIDIwKSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBsZXQgbG9jYXRpb25Db250cm9sID0gbmV3IEJNYXBHTC5Mb2NhdGlvbkNvbnRyb2wob3B0aW9ucyk7XHJcbiAgICAgICAgICAvLyDlsIbmjqfku7bmt7vliqDliLDlnLDlm77kuIpcclxuICAgICAgICAgIHRoaXMubWFwLmFkZENvbnRyb2wobG9jYXRpb25Db250cm9sKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubWluTWFwU2hvdykge1xyXG4gICAgICAgICAgY29uc3Qgc3RDdHJsID0gbmV3IEJNYXBHTC5QYW5vcmFtYUNvbnRyb2woKTtcclxuICAgICAgICAgIHN0Q3RybC5zZXRPZmZzZXQobmV3IEJNYXBHTC5TaXplKDIwLCAyMCkpO1xyXG4gICAgICAgICAgdGhpcy5tYXAuYWRkQ29udHJvbChzdEN0cmwpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5pbmZvV2luZG93QmFja2dyb3VuZCkge1xyXG4gICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8td2luZG93LWJhY2tncm91bmQnLCB0aGlzLmluZm9XaW5kb3dCYWNrZ3JvdW5kKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuaW5mb1dpbmRvd0NvbG9yKSB7XHJcbiAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy0taW5mby13aW5kb3ctY29sb3InLCB0aGlzLmluZm9XaW5kb3dDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmluZm9XaW5kb3dCb3JkZXJDb2xvcikge1xyXG4gICAgICAgICAgdGhpcy5lbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWluZm8td2luZG93LWJvcmRlci1jb2xvcicsIHRoaXMuaW5mb1dpbmRvd0JvcmRlckNvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tYXAuYWRkRXZlbnRMaXN0ZW5lcignbW92ZWVuZCcsIChldmVudCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY2VudGVyID0gdGhpcy5tYXAuZ2V0Q2VudGVyKCk7XHJcbiAgICAgICAgICB0aGlzLmRhdGFDaGFuZ2UuZW1pdChjZW50ZXIpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMubWFwLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1hcENsaWNrLmVtaXQoZXZlbnQucG9pbnRlcik7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5tYXAuYWRkRXZlbnRMaXN0ZW5lcignem9vbWVuZCcsIChldmVudCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy56b29tQ2hhbmdlLmVtaXQodGhpcy5tYXAuZ2V0Wm9vbSgpKTtcclxuICAgICAgICAgIHRoaXMuZGF0YUNoYW5nZS5lbWl0KHRoaXMubWFwLmdldENlbnRlcigpKTtcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnZpZXcgPSBuZXcgbWFwdmdsLlZpZXcoe1xyXG4gICAgICAgICAgbWFwOiB0aGlzLm1hcCxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLm1hcExvYWRlZCh0aGlzLm1hcCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLmluaXRlZCh0aGlzLm1hcCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDZW50ZXIobG5nOiBudW1iZXIsIGxhdDogbnVtYmVyKSB7XHJcbiAgICBpZiAodGhpcy5tYXAgJiYgbG5nICYmIGxhdCkge1xyXG4gICAgICBjb25zdCBjZW50ZXIgPSB0aGlzLm1hcC5nZXRDZW50ZXIoKTtcclxuICAgICAgaWYgKGNlbnRlci5sbmcgIT0gbG5nIHx8IGNlbnRlci5sYXQgIT0gbGF0KSB7XHJcbiAgICAgICAgdGhpcy5zZXRDZW50ZXJBbmRab29tKGxuZywgbGF0LCB0aGlzLm1hcC5nZXRab29tKCkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDZW50ZXJBbmRab29tKGxuZzogbnVtYmVyLCBsYXQ6IG51bWJlciwgem9vbTogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBjZW50ZXIgPSB0aGlzLm1hcC5nZXRDZW50ZXIoKTtcclxuICAgIGNvbnN0IGN1cnJlbnRab29tID0gdGhpcy5tYXAuZ2V0Wm9vbSgpO1xyXG4gICAgLy8g6K+v5beu6IyD5Zu05YaF5LiN56e75YqoLOmYsuatouiDjOaZr+aKluWKqFxyXG4gICAgaWYgKHpvb20gIT0gY3VycmVudFpvb20gfHwgTWF0aC5hYnMobG5nIC0gY2VudGVyLmxuZykgPiAxZS0xMyB8fCBNYXRoLmFicyhsYXQgLSBjZW50ZXIubGF0KSA+IDFlLTcpIHtcclxuICAgICAgY29uc3QgcG9pbnQgPSBuZXcgQk1hcEdMLlBvaW50KGxuZywgbGF0KTtcclxuICAgICAgdGhpcy5tYXAuY2VudGVyQW5kWm9vbShwb2ludCwgem9vbSwgeyB0aWx0OiB0aGlzLm1hcC5nZXRUaWx0KCkgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmoLnmja7nu4/nuqzluqbojIPlm7Torr7nva7kuK3lv4PlkoznvKnmlL7nrYnnuqdcclxuICAgKiBAcGFyYW0gbWluTG5nXHJcbiAgICogQHBhcmFtIG1heExuZ1xyXG4gICAqIEBwYXJhbSBtaW5MYXRcclxuICAgKiBAcGFyYW0gbWF4TGF0XHJcbiAgICovXHJcbiAgc2V0UmVjdENlbnRlckFuZFpvb20obWluTG5nOiBudW1iZXIsIG1heExuZzogbnVtYmVyLCBtaW5MYXQ6IG51bWJlciwgbWF4TGF0OiBudW1iZXIpIHtcclxuICAgIHRoaXMuc2V0Q2VudGVyQW5kWm9vbSgobWF4TG5nICsgbWluTG5nKSAvIDIsIChtYXhMYXQgKyBtaW5MYXQpIC8gMiwgdGhpcy5nZXRab29tKG1heExuZywgbWluTG5nLCBtYXhMYXQsIG1pbkxhdCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Wm9vbShtYXhMbmc6IG51bWJlciwgbWluTG5nOiBudW1iZXIsIG1heExhdDogbnVtYmVyLCBtaW5MYXQ6IG51bWJlcikge1xyXG4gICAgY29uc3Qgem9vbXMgPSBbXHJcbiAgICAgIDUwLCAxMDAsIDIwMCwgNTAwLCAxMDAwLCAyMDAwLCA1MDAwLCAxMDAwMCwgMjAwMDAsIDI1MDAwLCA1MDAwMCwgMTAwMDAwLCAyMDAwMDAsIDUwMDAwMCwgMTAwMDAwMCwgMjAwMDAwMCxcclxuICAgIF07IC8v57qn5YirMTjliLAz44CCXHJcbiAgICBjb25zdCBwb2ludEEgPSBuZXcgQk1hcEdMLlBvaW50KG1heExuZywgbWF4TGF0KTsgLy8g5Yib5bu654K55Z2Q5qCHQVxyXG4gICAgY29uc3QgcG9pbnRCID0gbmV3IEJNYXBHTC5Qb2ludChtaW5MbmcsIG1pbkxhdCk7IC8vIOWIm+W7uueCueWdkOagh0JcclxuICAgIGNvbnN0IGRpc3RhbmNlID0gK3RoaXMubWFwLmdldERpc3RhbmNlKHBvaW50QSwgcG9pbnRCKS50b0ZpeGVkKDEpOyAvL+iOt+WPluS4pOeCuei3neemuyzkv53nlZnlsI/mlbDngrnlkI7kuKTkvY1cclxuICAgIGNvbnN0IGkgPSB6b29tcy5maW5kSW5kZXgoKHpvb20pID0+IHpvb20gLSBkaXN0YW5jZSA+IDApO1xyXG4gICAgaWYgKGkgPT09IC0xKSB7XHJcbiAgICAgIHJldHVybiA1O1xyXG4gICAgfVxyXG4gICAgLy/kuYvmiYDku6XkvJrlpJoz77yM5piv5Zug5Li65Zyw5Zu+6IyD5Zu05bi45bi45piv5q+U5L6L5bC66Led56a755qEMTDlgI3ku6XkuIrjgILmiYDku6XnuqfliKvkvJrlop7liqAz44CCXHJcbiAgICByZXR1cm4gMTggLSBpICsgMztcclxuICB9XHJcblxyXG4gIG9wZW5JbmZvV2luZG93KGRhdGE6IGFueSwgbG5nOiBudW1iZXIsIGxhdDogbnVtYmVyKSB7XHJcbiAgICBpZiAoZGF0YS5pbmZvcm1hdGlvbiB8fCB0aGlzLmluZm9XaW5kb3dUZW1wbGF0ZSkge1xyXG4gICAgICBjb25zdCBwb2ludCA9IG5ldyBCTWFwR0wuUG9pbnQoK2xuZywgK2xhdCk7XHJcbiAgICAgIC8vIGxldCBvZmZzZXRZID0gLTI1O1xyXG4gICAgICAvLyBpZiAodGhpcy5oaWRlSW5mb1dpbmRvd1RhaWwpIHtcclxuICAgICAgLy8gICBvZmZzZXRZID0gMDtcclxuICAgICAgLy8gfVxyXG4gICAgICBsZXQgaW5mb3JtYXRpb24gPSBkYXRhLmluZm9ybWF0aW9uO1xyXG4gICAgICBpZiAodGhpcy5pbmZvV2luZG93VGVtcGxhdGUpIHtcclxuICAgICAgICBpbmZvcm1hdGlvbiA9IFRlbXBsYXRlVXRpbC5wYXJzZSh0aGlzLmluZm9XaW5kb3dUZW1wbGF0ZSwgZGF0YSk7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgICBvZmZzZXQ6IG5ldyBCTWFwR0wuU2l6ZSgwLCAwKSxcclxuICAgICAgICB3aWR0aDogdGhpcy5pbmZvV2luZG93V2lkdGggfHwgMCxcclxuICAgICAgICBoZWlnaHQ6IHRoaXMuaW5mb1dpbmRvd0hlaWdodCB8fCAwLFxyXG4gICAgICB9O1xyXG4gICAgICBjb25zdCBpbmZvV2luZG93ID0gbmV3IEJNYXBHTC5JbmZvV2luZG93KGluZm9ybWF0aW9uLCBvcHRpb25zKTtcclxuICAgICAgLy8g56ys5LiA5qyh5omT5byA5L+h5oGv56qX5Y+j5ZCO5Zyo55+t5pe26Ze05YWz6Zet5oiW6YeN5paw5omT5byA5Lya5a+86Ie0Y2xpY2vkuovku7blpLHmlYjvvIzkuLTml7bop6PlhrPmlrnmoYjmmK/nrKzkuIDmrKHmiZPlvIDlkI4wLjXnp5LlhoXkuI3lhbPpl61cclxuICAgICAgaWYgKCF0aGlzLmZpcnN0T3Blbikge1xyXG4gICAgICAgIGlmICh0aGlzLmZpcnN0T3BlblByb21pc2UpIHtcclxuICAgICAgICAgIHRoaXMuZmlyc3RPcGVuUHJvbWlzZS50aGVuKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tYXAub3BlbkluZm9XaW5kb3coaW5mb1dpbmRvdywgcG9pbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZmlyc3RPcGVuUHJvbWlzZSA9IG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuZmlyc3RPcGVuID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLmZpcnN0T3BlblByb21pc2UgPSBudWxsO1xyXG4gICAgICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICAgICAgfSwgNTAwKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5tYXAub3BlbkluZm9XaW5kb3coaW5mb1dpbmRvdywgcG9pbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCByYXdDbG9zZSA9IGluZm9XaW5kb3cuY2xvc2U7XHJcbiAgICAgICAgaW5mb1dpbmRvdy5jbG9zZSA9ICgpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLmZpcnN0T3BlblByb21pc2UpIHtcclxuICAgICAgICAgICAgdGhpcy5maXJzdE9wZW5Qcm9taXNlLnRoZW4oKCkgPT4gcmF3Q2xvc2UuY2FsbChpbmZvV2luZG93KSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByYXdDbG9zZS5jYWxsKGluZm9XaW5kb3cpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tYXAub3BlbkluZm9XaW5kb3coaW5mb1dpbmRvdywgcG9pbnQpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBpbmZvV2luZG93O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2FudmFzT3ZlcmxheShjaGlsZDogYW55KSB7XHJcbiAgICBsZXQgY2FudmFzT3ZlcmxheTtcclxuICAgIGlmICh0aGlzLmVuYWJsZTNEKSB7XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSBjaGlsZC5pdGVtO1xyXG4gICAgICBpZiAoaXRlbSkge1xyXG4gICAgICAgIHZhciBwU3RhcnQgPSBuZXcgQk1hcEdMLlBvaW50KGl0ZW0uc3RhcnQubG5nLCBpdGVtLnN0YXJ0LmxhdCk7XHJcbiAgICAgICAgdmFyIHBFbmQgPSBuZXcgQk1hcEdMLlBvaW50KGl0ZW0uZW5kLmxuZywgaXRlbS5lbmQubGF0KTtcclxuICAgICAgICB2YXIgYm91bmRzID0gbmV3IEJNYXBHTC5Cb3VuZHMobmV3IEJNYXBHTC5Qb2ludChwU3RhcnQubG5nLCBwRW5kLmxhdCksIG5ldyBCTWFwR0wuUG9pbnQocEVuZC5sbmcsIHBTdGFydC5sYXQpKTtcclxuICAgICAgICBjYW52YXNPdmVybGF5ID0gbmV3IEJNYXBHTC5Hcm91bmRPdmVybGF5KGJvdW5kcywge1xyXG4gICAgICAgICAgdHlwZTogJ2NhbnZhcycsXHJcbiAgICAgICAgICB1cmw6IGl0ZW0uY2FudmFzLFxyXG4gICAgICAgICAgb3BhY2l0eTogMSxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgcG9pbnRUb1BpeGVsID0gKGRhdGEpID0+IHtcclxuICAgICAgICBjb25zdCBwb2ludCA9IG5ldyBCTWFwR0wuUG9pbnQoZGF0YS5sbmcsIGRhdGEubGF0KTtcclxuICAgICAgICByZXR1cm4gdGhpcy5tYXAucG9pbnRUb1BpeGVsKHBvaW50KTtcclxuICAgICAgfTtcclxuICAgICAgY2FudmFzT3ZlcmxheSA9IG5ldyBCTWFwR0wuQ2FudmFzTGF5ZXIoe1xyXG4gICAgICAgIHBhbmVOYW1lOiAnbWFya2VyU2hhZG93JyxcclxuICAgICAgICB1cGRhdGU6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgIHZhciBjdHggPSB0aGlzLmNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xyXG4gICAgICAgICAgaWYgKCFjdHgpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY3R4LmNsZWFyUmVjdCgwLCAwLCBjdHguY2FudmFzLndpZHRoLCBjdHguY2FudmFzLmhlaWdodCk7XHJcbiAgICAgICAgICBjaGlsZC51cGRhdGUoY3R4LCBwb2ludFRvUGl4ZWwpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNhbnZhc092ZXJsYXk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMudmlldykge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMudmlldy5kZXN0cm95KCk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tYXApIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICB0aGlzLm1hcC5kZXN0cm95KCk7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBtYXBMb2FkZWQobWFwOiBhbnkpIHtcclxuICAgIGlmICh0aGlzLmNpdHlOYW1lKSB7XHJcbiAgICAgIGlmICh0aGlzLmNpdHlOYW1lID09PSAn5rip5beeJykge1xyXG4gICAgICAgIHRoaXMuY2l0eU5hbWUgPSAnd2VuemhvdSc7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QganNvbjogYW55ID0gYXdhaXQgdGhpcy5odHRwLmdldCgnYXNzZXRzL2VjaGFydHMvbWFwL2pzb24vJyArIHRoaXMuY2l0eU5hbWUgKyAnLmpzb24nKS50b1Byb21pc2UoKTtcclxuICAgICAgY29uc3QgcG9seWdvbkRhdGEgPSBbXTtcclxuICAgICAgbGV0IGVuY29kZVNjYWxlID0ganNvbi5VVEY4U2NhbGUgfHwgMTAyNDtcclxuICAgICAganNvbi5mZWF0dXJlcy5mb3JFYWNoKCh7IGdlb21ldHJ5IH0pID0+IHtcclxuICAgICAgICBnZW9tZXRyeS5jb29yZGluYXRlcyA9IChnZW9tZXRyeS5jb29yZGluYXRlcyBhcyBhbnlbXSkuZm9yRWFjaCgoY29vcmRpbmF0ZSwgaSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGdlb21ldHJ5LnR5cGUgPT09ICdNdWx0aVBvbHlnb24nKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvb3JkaW5hdGVzID0gKGNvb3JkaW5hdGUgYXMgYW55W10pLm1hcCgocG9pbnRzLCBqKSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKGpzb24uVVRGOEVuY29kaW5nKSB7XHJcbiAgICAgICAgICAgICAgICBwb2ludHMgPSB0aGlzLmRlY29kZVBvbHlnb24ocG9pbnRzLCBnZW9tZXRyeS5lbmNvZGVPZmZzZXRzW2ldW2pdLCBlbmNvZGVTY2FsZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHJldHVybiBwb2ludHM7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBwb2x5Z29uRGF0YS5wdXNoKGNvb3JkaW5hdGVzKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmIChqc29uLlVURjhFbmNvZGluZykge1xyXG4gICAgICAgICAgICAgIGNvb3JkaW5hdGUgPSB0aGlzLmRlY29kZVBvbHlnb24oY29vcmRpbmF0ZSwgZ2VvbWV0cnkuZW5jb2RlT2Zmc2V0c1tpXSwgZW5jb2RlU2NhbGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHBvbHlnb25EYXRhLnB1c2goW2Nvb3JkaW5hdGVdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgICAgIGNvbnN0IGRhdGEgPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZ2VvbWV0cnk6IHtcclxuICAgICAgICAgICAgdHlwZTogJ011bHRpUG9seWdvbicsXHJcbiAgICAgICAgICAgIGNvb3JkaW5hdGVzOiBwb2x5Z29uRGF0YSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXTtcclxuICAgICAgdmFyIGxheWVyID0gbmV3IG1hcHZnbC5Qb2x5Z29uTGF5ZXIoe1xyXG4gICAgICAgIGxpbmVDb2xvcjogdGhpcy5tYXBDaXR5Q29sb3IsXHJcbiAgICAgICAgbGluZVdpZHRoOiB0aGlzLnN0cm9rZXNpemUgfHwgMixcclxuICAgICAgICBmaWxsQ29sb3I6IHRoaXMuc2hhZGVDb2xvcixcclxuICAgICAgICBkYXRhLFxyXG4gICAgICAgIHJlbmRlck9yZGVyOiAtMixcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudmlldy5hZGRMYXllcihsYXllcik7XHJcbiAgICAgIGlmICh0aGlzLm1hcEJhY2tDb2xvciAmJiAhdGhpcy5tYXBCYWNrQ29sb3IubWF0Y2goL3JnYmFcXChcXGQrLFxcZCssXFxkKywwXFwpLykpIHtcclxuICAgICAgICB2YXIgbWFza0xheWVyID0gbmV3IG1hcHZnbC5NYXNrTGF5ZXIoe1xyXG4gICAgICAgICAgY29sb3I6IHRoaXMubWFwQmFja0NvbG9yLFxyXG4gICAgICAgICAgZGF0YSxcclxuICAgICAgICAgIHJlbmRlck9yZGVyOiAtMyxcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnZpZXcuYWRkTGF5ZXIobWFza0xheWVyKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGVjb2RlUG9seWdvbihjb29yZGluYXRlOiBzdHJpbmcsIGVuY29kZU9mZnNldHM6IG51bWJlcltdLCBlbmNvZGVTY2FsZTogbnVtYmVyKSB7XHJcbiAgICBjb25zdCByZXN1bHQgPSBbXTtcclxuICAgIGxldCBwcmV2WCA9IGVuY29kZU9mZnNldHNbMF07XHJcbiAgICBsZXQgcHJldlkgPSBlbmNvZGVPZmZzZXRzWzFdO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29vcmRpbmF0ZS5sZW5ndGg7IGkgKz0gMikge1xyXG4gICAgICB2YXIgeCA9IGNvb3JkaW5hdGUuY2hhckNvZGVBdChpKSAtIDY0O1xyXG4gICAgICB2YXIgeSA9IGNvb3JkaW5hdGUuY2hhckNvZGVBdChpICsgMSkgLSA2NDtcclxuICAgICAgLy8gWmlnWmFnIGRlY29kaW5nXHJcbiAgICAgIHggPSAoeCA+PiAxKSBeIC0oeCAmIDEpO1xyXG4gICAgICB5ID0gKHkgPj4gMSkgXiAtKHkgJiAxKTtcclxuICAgICAgLy8gRGVsdGEgZGVvY2RpbmdcclxuICAgICAgeCArPSBwcmV2WDtcclxuICAgICAgeSArPSBwcmV2WTtcclxuXHJcbiAgICAgIHByZXZYID0geDtcclxuICAgICAgcHJldlkgPSB5O1xyXG4gICAgICAvLyBEZXF1YW50aXplXHJcbiAgICAgIHJlc3VsdC5wdXNoKFt4IC8gZW5jb2RlU2NhbGUsIHkgLyBlbmNvZGVTY2FsZV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBhc3luYyBtYXBUeXBlQ2hhbmdlKG1hcFR5cGU6IHN0cmluZykge1xyXG4gICAgc3dpdGNoIChtYXBUeXBlKSB7XHJcbiAgICAgIGNhc2UgJ2RhcmsnOlxyXG4gICAgICAgIGlmICghdGhpcy5kYXJrU3R5bGUpIHtcclxuICAgICAgICAgIHRoaXMuZGFya1N0eWxlID0gYXdhaXQgdGhpcy5odHRwLmdldCgnYXNzZXRzL2VjaGFydHMvbWFwL2pzb24vY3VzdG9tX21hcC5qc29uJykudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubWFwLnNldE1hcFR5cGUoQk1BUF9OT1JNQUxfTUFQKTtcclxuICAgICAgICB0aGlzLm1hcC5zZXRNYXBTdHlsZVYyKHsgc3R5bGVKc29uOiB0aGlzLmRhcmtTdHlsZSB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnc2F0ZWxsaXRlJzpcclxuICAgICAgICB0aGlzLm1hcC5zZXRNYXBUeXBlKEJNQVBfU0FURUxMSVRFX01BUCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2N1c3RvbSc6XHJcbiAgICAgICAgaWYgKHRoaXMudXBsb2FkU3R5bGUpIHtcclxuICAgICAgICAgIGNvbnN0IHN0eWxlSnNvbiA9IGF3YWl0IHRoaXMuaHR0cC5nZXQodGhpcy51cGxvYWRTdHlsZSkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICB0aGlzLm1hcC5zZXRNYXBUeXBlKEJNQVBfTk9STUFMX01BUCk7XHJcbiAgICAgICAgICB0aGlzLm1hcC5zZXRNYXBTdHlsZVYyKHsgc3R5bGVKc29uIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLm1hcC5zZXRNYXBUeXBlKEJNQVBfTk9STUFMX01BUCk7XHJcbiAgICAgICAgdGhpcy5tYXAuc2V0TWFwU3R5bGVWMih7IHN0eWxlSnNvbjogbnVsbCB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -1,6 +1,6 @@
1
- import { __decorate, __metadata } from "tslib";
1
+ import { __decorate, __metadata, __param } from "tslib";
2
2
  import { Component, EventEmitter } from '@angular/core';
3
- import { Property, Widget, DataOutput, Data, Event, DataInput } from 'bbj-widget-base';
3
+ import { Property, Widget, DataOutput, Data, Event, DataInput, Method, Param } from 'bbj-widget-base';
4
4
  const ɵ0 = {
5
5
  selectColor: '#F5A623',
6
6
  borderColor: '#F5A623',
@@ -142,6 +142,10 @@ let SelectComponent = class SelectComponent {
142
142
  this.optionChange.emit(selectedOption);
143
143
  }
144
144
  }
145
+ select(value) {
146
+ this.selectedValue = value;
147
+ this.selectChange(value);
148
+ }
145
149
  };
146
150
  SelectComponent.decorators = [
147
151
  { type: Component, args: [{
@@ -330,6 +334,13 @@ __decorate([
330
334
  DataOutput('原始数据'),
331
335
  __metadata("design:type", Object)
332
336
  ], SelectComponent.prototype, "optionChange", void 0);
337
+ __decorate([
338
+ Method('选中'),
339
+ __param(0, Param('值')),
340
+ __metadata("design:type", Function),
341
+ __metadata("design:paramtypes", [Object]),
342
+ __metadata("design:returntype", void 0)
343
+ ], SelectComponent.prototype, "select", null);
333
344
  SelectComponent = __decorate([
334
345
  Widget('下拉框', {
335
346
  group: 'component',
@@ -340,4 +351,4 @@ SelectComponent = __decorate([
340
351
  ], SelectComponent);
341
352
  export { SelectComponent };
342
353
  export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4 };
343
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjcmVlbi13aWRnZXQvc3JjL2xpYi9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxZQUFZLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO1dBc0J2RTtJQUNKLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFVBQVUsRUFBRSxzQkFBc0I7SUFDbEMsVUFBVSxFQUFFLHNCQUFzQjtJQUNsQyxtQkFBbUIsRUFBRSxTQUFTO0NBQy9CLE9BSUs7SUFDSixXQUFXLEVBQUUsU0FBUztJQUN0QixXQUFXLEVBQUUsU0FBUztJQUN0QixVQUFVLEVBQUUsc0JBQXNCO0lBQ2xDLFVBQVUsRUFBRSxzQkFBc0I7SUFDbEMsbUJBQW1CLEVBQUUsU0FBUztDQUMvQixPQUlLO0lBQ0osV0FBVyxFQUFFLFNBQVM7SUFDdEIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsVUFBVSxFQUFFLHNCQUFzQjtJQUNsQyxVQUFVLEVBQUUsc0JBQXNCO0lBQ2xDLG1CQUFtQixFQUFFLFNBQVM7Q0FDL0IsT0FJSztJQUNKLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFVBQVUsRUFBRSxzQkFBc0I7SUFDbEMsVUFBVSxFQUFFLHNCQUFzQjtJQUNsQyxtQkFBbUIsRUFBRSxTQUFTO0NBQy9CLE9BMEdtQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUM7SUF4SnJELGVBQWUsU0FBZixlQUFlO0lBdUwxQjtRQWxJQSxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBU2IsUUFBRyxHQUFHLENBQUMsQ0FBQztRQWNSLGdCQUFXLEdBQUcsU0FBUyxDQUFDO1FBRXhCLGdDQUFnQztRQU9oQyw0QkFBdUIsR0FBRyxTQUFTLENBQUM7UUFPcEMsd0JBQW1CLEdBQUcsa0JBQWtCLENBQUM7UUFPekMscUJBQWdCLEdBQUcsa0JBQWtCLENBQUM7UUFPdEMsK0JBQTBCLEdBQUcsU0FBUyxDQUFDO1FBR3ZDLFNBQUksR0FBUTtZQUNWLE1BQU0sRUFBRSxFQUFFO1lBQ1YsTUFBTSxFQUFFLFFBQVE7WUFDaEIsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsQ0FBQztZQUNSLFVBQVUsRUFBRSxFQUFFO1NBQ2YsQ0FBQztRQVNGLFVBQUssR0FBRyxNQUFNLENBQUM7UUFNZixrQkFBYSxHQUFHLElBQUksQ0FBQztRQVFyQixlQUFVLEdBQUcsTUFBTSxDQUFDO1FBT3BCLHdCQUFtQixHQUFHLE1BQU0sQ0FBQztRQVM3QixpQkFBWSxHQUFHLE9BQU8sQ0FBQztRQUV2QixjQUFTLEdBQUcsR0FBRyxDQUFDO1FBSWhCLFNBQUksR0FBRyxTQUFTLENBQUM7UUFTakIsWUFBTyxHQUFRO1lBQ2IsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7WUFDbEMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7U0FDbkMsQ0FBQztRQU9GLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV0QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFeEIsQ0FBQztJQUVoQixRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLGVBQWUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUNoQyxNQUFNLEVBQUUsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXO1lBQ3ZDLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJO1lBQy9CLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDNUIsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUN0QixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQzVCLGFBQWEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJO1lBQ3JDLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJO1NBQ3hDLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDdEUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ2xHLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDbkIsZUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQ2hDLE1BQU0sRUFBRSxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQjtZQUMvQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSTtZQUMvQixVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQzVCLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDdEIsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUM1QixhQUFhLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSTtZQUNyQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSTtZQUN2QyxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJO1NBQ2pDLENBQUM7UUFDRixtRkFBbUY7UUFDbkYsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUM3QiwyQkFBMkIsRUFDM0IsSUFBSSxDQUFDLHVCQUF1QixJQUFJLHdCQUF3QixDQUN6RCxDQUFDO1FBQ0YsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxNQUFNLENBQUMsQ0FBQztRQUM3RixRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixJQUFJLHVCQUF1QixDQUFDLENBQUM7UUFDeEcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLDhCQUE4QixFQUFFLElBQUksQ0FBQywwQkFBMEIsSUFBSSxNQUFNLENBQUMsQ0FBQztJQUM3RyxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO2dCQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDOUIsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUU7d0JBQzFELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztxQkFDckU7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7b0JBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2lCQUN2QzthQUNGO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO2dCQUN0QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNqRCxJQUFJLElBQUksRUFBRTtvQkFDUixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7b0JBQzFELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2lCQUN2QzthQUNGO1NBQ0Y7UUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUU7WUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ2hDLDJCQUEyQjtTQUM1QjtJQUNILENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0Qyw2Q0FBNkM7UUFDN0Msd0NBQXdDO0lBQzFDLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBd0I7UUFDbkMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLEtBQUs7WUFDTCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssUUFBUSxFQUFFO2dCQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQzthQUMxRDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUM5QjtZQUNELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3JGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3hDO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7Q0FDRixDQUFBOztZQTNSQSxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLDYxQkFBc0M7O2FBRXZDOzs7QUF5REM7SUFsREMsUUFBUSxDQUFDLE9BQU8sRUFBRTtRQUNqQixFQUFFLEVBQUU7WUFDRixNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLFNBQVMsRUFBRSxFQUFFO1lBQ2IsV0FBVyxFQUFFLEVBQUU7WUFDZixLQUFLLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQztZQUNuRCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsVUFBVSxFQUFFLCtCQUErQjtvQkFDM0MsSUFBSSxJQU1IO2lCQUNGO2dCQUNEO29CQUNFLFVBQVUsRUFBRSwrQkFBK0I7b0JBQzNDLElBQUksSUFNSDtpQkFDRjtnQkFDRDtvQkFDRSxVQUFVLEVBQUUsK0JBQStCO29CQUMzQyxJQUFJLElBTUg7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsVUFBVSxFQUFFLCtCQUErQjtvQkFDM0MsSUFBSSxJQU1IO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGLENBQUM7O2dEQUNXO0FBRWI7SUFEQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDOzs2Q0FDeEI7QUFTYjtJQVJDLFFBQVEsQ0FBQyxFQUFFLEVBQUU7UUFDWixFQUFFLEVBQUU7WUFDRixNQUFNLEVBQUUsZUFBZTtZQUN2QixLQUFLLEVBQUUsTUFBTTtZQUNiLFNBQVMsRUFBRSxDQUFDO1lBQ1osV0FBVyxFQUFFLEVBQUU7U0FDaEI7S0FDRixDQUFDOzs0Q0FDTTtBQU9SO0lBTkMsUUFBUSxDQUFDLElBQUksRUFBRTtRQUNkLEVBQUUsRUFBRTtZQUNGLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUM7U0FDN0Y7S0FDRixDQUFDOzttREFDaUI7QUFPbkI7SUFOQyxRQUFRLENBQUMsSUFBSSxFQUFFO1FBQ2QsRUFBRSxFQUFFO1lBQ0YsTUFBTSxFQUFFLFNBQVM7WUFDakIsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQztTQUM3RjtLQUNGLENBQUM7O29EQUNzQjtBQVN4QjtJQU5DLFFBQVEsQ0FBQyxNQUFNLEVBQUU7UUFDaEIsRUFBRSxFQUFFO1lBQ0YsTUFBTSxFQUFFLFNBQVM7WUFDakIsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQztTQUM3RjtLQUNGLENBQUM7O2dFQUNrQztBQU9wQztJQU5DLFFBQVEsQ0FBQyxRQUFRLEVBQUU7UUFDbEIsRUFBRSxFQUFFO1lBQ0YsTUFBTSxFQUFFLFNBQVM7WUFDakIsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQztTQUM3RjtLQUNGLENBQUM7OzREQUN1QztBQU96QztJQU5DLFFBQVEsQ0FBQyxXQUFXLEVBQUU7UUFDckIsRUFBRSxFQUFFO1lBQ0YsTUFBTSxFQUFFLFNBQVM7WUFDakIsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQztTQUM3RjtLQUNGLENBQUM7O3lEQUNvQztBQU90QztJQU5DLFFBQVEsQ0FBQyxXQUFXLEVBQUU7UUFDckIsRUFBRSxFQUFFO1lBQ0YsTUFBTSxFQUFFLFNBQVM7WUFDakIsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQztTQUM3RjtLQUNGLENBQUM7O21FQUNxQztBQUd2QztJQURDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQzs7NkNBTzNDO0FBU0Y7SUFQQyxRQUFRLENBQUMsTUFBTSxFQUFFO1FBQ2hCLElBQUksRUFBRTtZQUNKLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO1lBQy9CLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1lBQ2hDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1NBQ2pDO0tBQ0YsQ0FBQzs7OENBQ2E7QUFFZjtJQURDLFFBQVEsQ0FBQyxJQUFJLENBQUM7O21EQUNLO0FBRXBCO0lBREMsUUFBUSxDQUFDLE1BQU0sQ0FBQzs7a0RBQ0U7QUFFbkI7SUFEQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDOztzREFDaEI7QUFRckI7SUFOQyxRQUFRLENBQUMsTUFBTSxFQUFFO1FBQ2hCLEVBQUUsRUFBRTtZQUNGLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUM7U0FDN0Y7S0FDRixDQUFDOzttREFDa0I7QUFPcEI7SUFOQyxRQUFRLENBQUMsTUFBTSxFQUFFO1FBQ2hCLEVBQUUsRUFBRTtZQUNGLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUM7U0FDN0Y7S0FDRixDQUFDOzs0REFDMkI7QUFTN0I7SUFQQyxRQUFRLENBQUMsTUFBTSxFQUFFO1FBQ2hCLElBQUksRUFBRTtZQUNKLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1lBQy9CLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO1NBQ2xDO1FBQ0QsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsRUFBRSxHQUFHLElBQXNCLEVBQUUsRUFBRTtLQUNuRSxDQUFDOztxREFDcUI7QUFFdkI7SUFEQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7O2tEQUN0RDtBQWFoQjtJQVBDLElBQUksQ0FBQztRQUNKLFVBQVUsRUFBRTtZQUNWLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUN0QyxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDckMsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO1NBQzVDO0tBQ0YsQ0FBQzs7Z0RBSUE7QUFHRjtJQURDLFNBQVMsQ0FBQyxLQUFLLENBQUM7OzhDQUNOO0FBSVg7SUFGQyxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ2YsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQzs7b0RBQ1E7QUFFdEM7SUFEQyxVQUFVLENBQUMsTUFBTSxDQUFDOztxREFDb0I7QUFyTDVCLGVBQWU7SUFMM0IsTUFBTSxDQUFDLEtBQUssRUFBRTtRQUNiLEtBQUssRUFBRSxXQUFXO1FBQ2xCLEtBQUssRUFBRSw4QkFBOEI7UUFDckMsSUFBSSxFQUFFLFlBQVk7S0FDbkIsQ0FBQzs7R0FDVyxlQUFlLENBaVIzQjtTQWpSWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eSwgV2lkZ2V0LCBEYXRhT3V0cHV0LCBEYXRhLCBFdmVudCwgRGF0YUlucHV0IH0gZnJvbSAnYmJqLXdpZGdldC1iYXNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2Mtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQubGVzcyddLFxufSlcbkBXaWRnZXQoJ+S4i+aLieahhicsIHtcbiAgZ3JvdXA6ICdjb21wb25lbnQnLFxuICBpbWFnZTogJ2Fzc2V0cy9pbWcvc2NyZWVuL3NlbGVjdC5wbmcnLFxuICBpY29uOiAnaWNvbm1va3VhaScsXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQFByb3BlcnR5KCfkuIvmi4nmoYbmoLflvI8nLCB7XG4gICAgdWk6IHtcbiAgICAgIHdpZGdldDogJ215SW1hZ2VFeGFtcGxlJyxcbiAgICAgIHNwYW5MYWJlbDogMjQsXG4gICAgICBzcGFuQ29udHJvbDogMjQsXG4gICAgICByZXNldDogWydiYWNrZ3JvdW5kJywgJ2JvcmRlckNvbG9yJywgJ3NlbGVjdENvbG9yJ10sXG4gICAgICBleGFtcGxlOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnYXNzZXRzL2ltZy9zY3JlZW4vc2VsZWN0MS5wbmcnLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHNlbGVjdENvbG9yOiAnI0Y1QTYyMycsXG4gICAgICAgICAgICBib3JkZXJDb2xvcjogJyNGNUE2MjMnLFxuICAgICAgICAgICAgYmFja2dyb3VuZDogJ3JnYmEoMjQ1LDE2NiwzNSwwLjIpJyxcbiAgICAgICAgICAgIGRyb3Bkb3duQmc6ICdyZ2JhKDI0NSwxNjYsMzUsMC4yKScsXG4gICAgICAgICAgICBkcm9wZG93bkJvcmRlckNvbG9yOiAnI0Y1QTYyMycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICdhc3NldHMvaW1nL3NjcmVlbi9zZWxlY3QyLnBuZycsXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgc2VsZWN0Q29sb3I6ICcjNTBFM0MyJyxcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnIzUwRTNDMicsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAncmdiYSg4MCwyMjcsMTk0LDAuMiknLFxuICAgICAgICAgICAgZHJvcGRvd25CZzogJ3JnYmEoODAsMjI3LDE5NCwwLjIpJyxcbiAgICAgICAgICAgIGRyb3Bkb3duQm9yZGVyQ29sb3I6ICcjNTBFM0MyJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJ2Fzc2V0cy9pbWcvc2NyZWVuL3NlbGVjdDMucG5nJyxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBzZWxlY3RDb2xvcjogJyM5MDEzZmUnLFxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjOTAxM2ZlJyxcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICdyZ2JhKDE0NCwxOSwyNTQsMC4yKScsXG4gICAgICAgICAgICBkcm9wZG93bkJnOiAncmdiYSgxNDQsMTksMjU0LDAuMiknLFxuICAgICAgICAgICAgZHJvcGRvd25Cb3JkZXJDb2xvcjogJyM5MDEzZmUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnYXNzZXRzL2ltZy9zY3JlZW4vc2VsZWN0NC5wbmcnLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHNlbGVjdENvbG9yOiAnIzMyODVmZicsXG4gICAgICAgICAgICBib3JkZXJDb2xvcjogJyMzMjg1ZmYnLFxuICAgICAgICAgICAgYmFja2dyb3VuZDogJ3JnYmEoNTAsMTMzLDI1NSwwLjIpJyxcbiAgICAgICAgICAgIGRyb3Bkb3duQmc6ICdyZ2JhKDUwLDEzMywyNTUsMC4yKScsXG4gICAgICAgICAgICBkcm9wZG93bkJvcmRlckNvbG9yOiAnIzMyODVmZicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSlcbiAgZXhhbXBsZTogYW55O1xuICBAUHJvcGVydHkoJ+aPkOekuueUqOivrScsIHsgdHlwZTogJ3N0cmluZycgfSlcbiAgaGludCA9ICfor7fpgInmi6knO1xuICBAUHJvcGVydHkoJycsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDaGVja051bWJlcicsXG4gICAgICB0aXRsZTogJ+WkmumAieS4quaVsCcsXG4gICAgICBzcGFuTGFiZWw6IDAsXG4gICAgICBzcGFuQ29udHJvbDogMjQsXG4gICAgfSxcbiAgfSlcbiAgbnVtID0gMTtcbiAgQFByb3BlcnR5KCfloavlhYUnLCB7XG4gICAgdWk6IHtcbiAgICAgIHdpZGdldDogJ215Q29sb3InLFxuICAgICAgZXhhbXBsZTogWycjRDAwMjFCJywgJyNGNUE2MjMnLCAnI0Y4RTcxQycsICcjNTBFM0MyJywgJyMzMjg1RkYnLCAnI0I0NUZGRicsICcjOUI5QjlCJywgbnVsbF0sXG4gICAgfSxcbiAgfSlcbiAgYmFja2dyb3VuZDogc3RyaW5nO1xuICBAUHJvcGVydHkoJ+i+ueahhicsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNmZmZmZmYnLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCBudWxsXSxcbiAgICB9LFxuICB9KVxuICBib3JkZXJDb2xvciA9ICcjZDlkOWQ5JztcblxuICAvLyDpgJrov4flhajlsYDlj5jph4/mnaXmjqfliLbpopzoibLlj5jljJYg5b2T5aSa5Liq5pe25Lya5LqS55u45pu/5o2iIOenu+mZpOatpOWKn+iDvVxuICBAUHJvcGVydHkoJ+mAieS4reminOiJsicsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNmZmZmZmYnLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCBudWxsXSxcbiAgICB9LFxuICB9KVxuICBkcm9wZG93bkJhY2tncm91bmRDb2xvciA9ICcjRTZGN0ZGJztcbiAgQFByb3BlcnR5KCfpgInkuK3lrZfkvZPpopzoibInLCB7XG4gICAgdWk6IHtcbiAgICAgIHdpZGdldDogJ215Q29sb3InLFxuICAgICAgZXhhbXBsZTogWycjZmZmZmZmJywgJyNGNUE2MjMnLCAnI0Y4RTcxQycsICcjNTBFM0MyJywgJyMzMjg1RkYnLCAnI0I0NUZGRicsICcjOUI5QjlCJywgbnVsbF0sXG4gICAgfSxcbiAgfSlcbiAgc2VsZWN0RHJvcERvd25Db2xvciA9ICdyZ2JhKDAsMCwwLDAuODUpJztcbiAgQFByb3BlcnR5KCdob3ZlcuWtl+S9k+minOiJsicsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNmZmZmZmYnLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCBudWxsXSxcbiAgICB9LFxuICB9KVxuICBzZWxlY3RIb3ZlckNvbG9yID0gJ3JnYmEoMCwwLDAsMC44NSknO1xuICBAUHJvcGVydHkoJ2hvdmVy6IOM5pmv6aKc6ImyJywge1xuICAgIHVpOiB7XG4gICAgICB3aWRnZXQ6ICdteUNvbG9yJyxcbiAgICAgIGV4YW1wbGU6IFsnI2ZmZmZmZicsICcjRjVBNjIzJywgJyNGOEU3MUMnLCAnIzUwRTNDMicsICcjMzI4NUZGJywgJyNCNDVGRkYnLCAnIzlCOUI5QicsIG51bGxdLFxuICAgIH0sXG4gIH0pXG4gIHNlbGVjdEhvdmVyQmFja2dyb3VuZENvbG9yID0gJyNmNWY1ZjUnO1xuXG4gIEBQcm9wZXJ0eSgn5a2X5L2TJywgeyB1aTogeyB3aWRnZXQ6ICdteUZvbnQnIH0gfSlcbiAgZm9udDogYW55ID0ge1xuICAgIGZhbWlseTogJycsXG4gICAgd2VpZ2h0OiAnbm9ybWFsJyxcbiAgICBzaXplOiAxMixcbiAgICBzcGFjZTogMCxcbiAgICBsaW5lSGVpZ2h0OiAzMCxcbiAgfTtcblxuICBAUHJvcGVydHkoJ+Wvuem9kOaWueW8jycsIHtcbiAgICBlbnVtOiBbXG4gICAgICB7IGxhYmVsOiAn5bem5a+56b2QJywgdmFsdWU6ICdsZWZ0JyB9LFxuICAgICAgeyBsYWJlbDogJ+WxheS4rScsIHZhbHVlOiAnY2VudGVyJyB9LFxuICAgICAgeyBsYWJlbDogJ+WPs+Wvuem9kCcsIHZhbHVlOiAncmlnaHQnIH0sXG4gICAgXSxcbiAgfSlcbiAgYWxpZ24gPSAnbGVmdCc7XG4gIEBQcm9wZXJ0eSgn5pCc57SiJylcbiAgc2hvd1NlYXJjaDogYm9vbGVhbjtcbiAgQFByb3BlcnR5KCfmuIXnqbrmjInpkq4nKVxuICBzaG93Q2xlYW46IGJvb2xlYW47XG4gIEBQcm9wZXJ0eSgn5LiL5ouJ5a695bqmJywgeyB0eXBlOiAnbnVtYmVyJyB9KVxuICBkcm9wZG93bldpZHRoID0gbnVsbDtcblxuICBAUHJvcGVydHkoJ+S4i+aLieWhq+WFhScsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNEMDAyMUInLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCBudWxsXSxcbiAgICB9LFxuICB9KVxuICBkcm9wZG93bkJnID0gJyNmZmYnO1xuICBAUHJvcGVydHkoJ+S4i+aLiei+ueahhicsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNmZmZmZmYnLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCBudWxsXSxcbiAgICB9LFxuICB9KVxuICBkcm9wZG93bkJvcmRlckNvbG9yID0gJyNmZmYnO1xuXG4gIEBQcm9wZXJ0eSgn6L6T5Ye65qC85byPJywge1xuICAgIGVudW06IFtcbiAgICAgIHsgbGFiZWw6ICfmlbDnu4QnLCB2YWx1ZTogJ2FycmF5JyB9LFxuICAgICAgeyBsYWJlbDogJ+Wtl+espuS4sicsIHZhbHVlOiAnc3RyaW5nJyB9LFxuICAgIF0sXG4gICAgdWk6IHsgd2lkZ2V0OiAnc2VsZWN0JywgdmlzaWJsZUlmOiB7IG51bTogKHZhbHVlKSA9PiB2YWx1ZSA+IDEgfSB9LFxuICB9KVxuICBvdXRwdXRGb3JtYXQgPSAnYXJyYXknO1xuICBAUHJvcGVydHkoJ+WIhumalOWtl+espicsIHsgdWk6IHsgdmlzaWJsZUlmOiB7IG91dHB1dEZvcm1hdDogWydzdHJpbmcnXSB9IH0gfSlcbiAgc2VwYXJhdG9yID0gJywnO1xuICBzZWxlY3RlZFZhbHVlOiBhbnk7XG4gIG5nU3R5bGU6IGFueTtcbiAgZHJvcGRvd25TdHlsZTogYW55O1xuICBtb2RlID0gJ2RlZmF1bHQnO1xuXG4gIEBEYXRhKHtcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBsYWJlbDogeyB0aXRsZTogJ+agh+etvicsIHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICB2YWx1ZTogeyB0aXRsZTogJ+WAvCcsIHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICBjaGVja2VkOiB7IHRpdGxlOiAn5piv5ZCm6YCJ5LitJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gICAgfSxcbiAgfSlcbiAgb3B0aW9uczogYW55ID0gW1xuICAgIHsgbGFiZWw6ICfpgInpobkxJywgdmFsdWU6ICdvcHRpb24xJyB9LFxuICAgIHsgbGFiZWw6ICfpgInpobkyJywgdmFsdWU6ICdvcHRpb24yJyB9LFxuICBdO1xuXG4gIEBEYXRhSW5wdXQoJ+mAieS4reWAvCcpXG4gIHZhbHVlOiBhbnk7XG5cbiAgQERhdGFPdXRwdXQoJ+WAvCcpXG4gIEBFdmVudCgn5YC85pS55Y+YJywgeyBwYXJhbXM6ICflgLwnIH0pXG4gIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBEYXRhT3V0cHV0KCfljp/lp4vmlbDmja4nKVxuICBvcHRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5uZ1N0eWxlID0ge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLmJhY2tncm91bmQsXG4gICAgICBib3JkZXI6ICcxcHggc29saWQgJyArIHRoaXMuYm9yZGVyQ29sb3IsXG4gICAgICBmb250U2l6ZTogdGhpcy5mb250LnNpemUgKyAncHgnLFxuICAgICAgZm9udEZhbWlseTogdGhpcy5mb250LmZhbWlseSxcbiAgICAgIGNvbG9yOiB0aGlzLmZvbnQuY29sb3IsXG4gICAgICBmb250V2VpZ2h0OiB0aGlzLmZvbnQud2VpZ2h0LFxuICAgICAgbGV0dGVyU3BhY2luZzogdGhpcy5mb250LnNwYWNlICsgJ3B4JyxcbiAgICAgIGxpbmVIZWlnaHQ6IHRoaXMuZm9udC5saW5lSGVpZ2h0ICsgJ3B4JyxcbiAgICB9O1xuICAgIHRoaXMuZHJvcGRvd25CZyA9IHRoaXMuZHJvcGRvd25CZyA/IHRoaXMuZHJvcGRvd25CZyA6IHRoaXMuYmFja2dyb3VuZDtcbiAgICB0aGlzLmRyb3Bkb3duQm9yZGVyQ29sb3IgPSB0aGlzLmRyb3Bkb3duQm9yZGVyQ29sb3IgPyB0aGlzLmRyb3Bkb3duQm9yZGVyQ29sb3IgOiB0aGlzLmJvcmRlckNvbG9yO1xuICAgIHRoaXMuZHJvcGRvd25TdHlsZSA9IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5kcm9wZG93bkJnLFxuICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkICcgKyB0aGlzLmRyb3Bkb3duQm9yZGVyQ29sb3IsXG4gICAgICBmb250U2l6ZTogdGhpcy5mb250LnNpemUgKyAncHgnLFxuICAgICAgZm9udEZhbWlseTogdGhpcy5mb250LmZhbWlseSxcbiAgICAgIGNvbG9yOiB0aGlzLmZvbnQuY29sb3IsXG4gICAgICBmb250V2VpZ2h0OiB0aGlzLmZvbnQud2VpZ2h0LFxuICAgICAgbGV0dGVyU3BhY2luZzogdGhpcy5mb250LnNwYWNlICsgJ3B4JyxcbiAgICAgIGxpbmVIZWlnaHQ6IHRoaXMuZm9udC5saW5lSGVpZ2h0ICsgJ3B4JyxcbiAgICAgIHdpZHRoOiB0aGlzLmRyb3Bkb3duV2lkdGggKyAncHgnLFxuICAgIH07XG4gICAgLy8gIHRoaXMuZHJvcGRvd25TdHlsZS53aWR0aCA9IHRoaXMuZHJvcGRvd25XaWR0aCA/IHRoaXMuZHJvcGRvd25XaWR0aCArICdweCcgOiAnJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgJy0tZHJvcGRvd25CYWNrZ3JvdW5kQ29sb3InLFxuICAgICAgdGhpcy5kcm9wZG93bkJhY2tncm91bmRDb2xvciB8fCAnIHJnYmEoMjU1LDI1NSwyNTUsMC4yKScsXG4gICAgKTtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLXNlbGVjdERyb3BEb3duQ29sb3InLCB0aGlzLnNlbGVjdERyb3BEb3duQ29sb3IgfHwgJyMzMzMnKTtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLXNlbGVjdEhvdmVyQ29sb3InLCB0aGlzLnNlbGVjdEhvdmVyQ29sb3IgfHwgJ3JnYmEoMjU1LDI1NSwyNTUsMC41KScpO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2VsZWN0SG92ZXJCYWNrZ3JvdW5kQ29sb3InLCB0aGlzLnNlbGVjdEhvdmVyQmFja2dyb3VuZENvbG9yIHx8ICcjMzMzJyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMub3B0aW9ucykge1xuICAgICAgaWYgKHRoaXMubnVtICYmIHRoaXMubnVtID4gMSkge1xuICAgICAgICB0aGlzLm1vZGUgPSAnbXVsdGlwbGUnO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBbXTtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChvcHRpb24uY2hlY2tlZCAmJiB0aGlzLnNlbGVjdGVkVmFsdWUubGVuZ3RoIDwgdGhpcy5udW0pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZS5wdXNoKG9wdGlvbi52YWx1ZSA/IG9wdGlvbi52YWx1ZSA6IG9wdGlvbi5sYWJlbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RDaGFuZ2UodGhpcy5zZWxlY3RlZFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5tb2RlID0gJ2RlZmF1bHQnO1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5vcHRpb25zLmZpbmQoKHMpID0+IHMuY2hlY2tlZCk7XG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gaXRlbS52YWx1ZSA/IGl0ZW0udmFsdWUgOiBpdGVtLmxhYmVsO1xuICAgICAgICAgIHRoaXMuc2VsZWN0Q2hhbmdlKHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXMudmFsdWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RBbGxEYXRhKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IFtdO1xuICAgIHRoaXMub3B0aW9ucy5mb3JFYWNoKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUucHVzaChkYXRhLnZhbHVlKTtcbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdENoYW5nZSh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuICAgIC8vIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuICAgIC8vIHRoaXMub3B0aW9uQ2hhbmdlLmVtaXQodGhpcy5vcHRpb25zKTtcbiAgfVxuXG4gIHNlbGVjdENoYW5nZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIC8vIOWkmumAiVxuICAgICAgaWYgKHRoaXMub3V0cHV0Rm9ybWF0ID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUuam9pbih0aGlzLnNlcGFyYXRvciB8fCAnLCcpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4gdmFsdWUuaW5jbHVkZXMob3B0aW9uLnZhbHVlKSk7XG4gICAgICB0aGlzLm9wdGlvbkNoYW5nZS5lbWl0KHNlbGVjdGVkT3B0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5vcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBldmVudCk7XG4gICAgICB0aGlzLm9wdGlvbkNoYW5nZS5lbWl0KHNlbGVjdGVkT3B0aW9uKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
354
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NjcmVlbi13aWRnZXQvc3JjL2xpYi9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxZQUFZLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7V0FzQnRGO0lBQ0osV0FBVyxFQUFFLFNBQVM7SUFDdEIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsVUFBVSxFQUFFLHNCQUFzQjtJQUNsQyxVQUFVLEVBQUUsc0JBQXNCO0lBQ2xDLG1CQUFtQixFQUFFLFNBQVM7Q0FDL0IsT0FJSztJQUNKLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFdBQVcsRUFBRSxTQUFTO0lBQ3RCLFVBQVUsRUFBRSxzQkFBc0I7SUFDbEMsVUFBVSxFQUFFLHNCQUFzQjtJQUNsQyxtQkFBbUIsRUFBRSxTQUFTO0NBQy9CLE9BSUs7SUFDSixXQUFXLEVBQUUsU0FBUztJQUN0QixXQUFXLEVBQUUsU0FBUztJQUN0QixVQUFVLEVBQUUsc0JBQXNCO0lBQ2xDLFVBQVUsRUFBRSxzQkFBc0I7SUFDbEMsbUJBQW1CLEVBQUUsU0FBUztDQUMvQixPQUlLO0lBQ0osV0FBVyxFQUFFLFNBQVM7SUFDdEIsV0FBVyxFQUFFLFNBQVM7SUFDdEIsVUFBVSxFQUFFLHNCQUFzQjtJQUNsQyxVQUFVLEVBQUUsc0JBQXNCO0lBQ2xDLG1CQUFtQixFQUFFLFNBQVM7Q0FDL0IsT0EwR21DLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQztJQXhKckQsZUFBZSxTQUFmLGVBQWU7SUF1TDFCO1FBbElB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QUFFO0tBQ25FLENBQUM7O3FEQUNxQjtBQUV2QjtJQURDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQzs7a0RBQ3REO0FBYWhCO0lBUEMsSUFBSSxDQUFDO1FBQ0osVUFBVSxFQUFFO1lBQ1YsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ3RDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNyQyxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7U0FDNUM7S0FDRixDQUFDOztnREFJQTtBQUdGO0lBREMsU0FBUyxDQUFDLEtBQUssQ0FBQzs7OENBQ047QUFJWDtJQUZDLFVBQVUsQ0FBQyxHQUFHLENBQUM7SUFDZixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDOztvREFDUTtBQUV0QztJQURDLFVBQVUsQ0FBQyxNQUFNLENBQUM7O3FEQUNvQjtBQThGdkM7SUFEQyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ0wsV0FBQSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7Ozs7NkNBR2pCO0FBdFJVLGVBQWU7SUFMM0IsTUFBTSxDQUFDLEtBQUssRUFBRTtRQUNiLEtBQUssRUFBRSxXQUFXO1FBQ2xCLEtBQUssRUFBRSw4QkFBOEI7UUFDckMsSUFBSSxFQUFFLFlBQVk7S0FDbkIsQ0FBQzs7R0FDVyxlQUFlLENBdVIzQjtTQXZSWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQcm9wZXJ0eSwgV2lkZ2V0LCBEYXRhT3V0cHV0LCBEYXRhLCBFdmVudCwgRGF0YUlucHV0LCBNZXRob2QsIFBhcmFtIH0gZnJvbSAnYmJqLXdpZGdldC1iYXNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2Mtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQubGVzcyddLFxufSlcbkBXaWRnZXQoJ+S4i+aLieahhicsIHtcbiAgZ3JvdXA6ICdjb21wb25lbnQnLFxuICBpbWFnZTogJ2Fzc2V0cy9pbWcvc2NyZWVuL3NlbGVjdC5wbmcnLFxuICBpY29uOiAnaWNvbm1va3VhaScsXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQFByb3BlcnR5KCfkuIvmi4nmoYbmoLflvI8nLCB7XG4gICAgdWk6IHtcbiAgICAgIHdpZGdldDogJ215SW1hZ2VFeGFtcGxlJyxcbiAgICAgIHNwYW5MYWJlbDogMjQsXG4gICAgICBzcGFuQ29udHJvbDogMjQsXG4gICAgICByZXNldDogWydiYWNrZ3JvdW5kJywgJ2JvcmRlckNvbG9yJywgJ3NlbGVjdENvbG9yJ10sXG4gICAgICBleGFtcGxlOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnYXNzZXRzL2ltZy9zY3JlZW4vc2VsZWN0MS5wbmcnLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHNlbGVjdENvbG9yOiAnI0Y1QTYyMycsXG4gICAgICAgICAgICBib3JkZXJDb2xvcjogJyNGNUE2MjMnLFxuICAgICAgICAgICAgYmFja2dyb3VuZDogJ3JnYmEoMjQ1LDE2NiwzNSwwLjIpJyxcbiAgICAgICAgICAgIGRyb3Bkb3duQmc6ICdyZ2JhKDI0NSwxNjYsMzUsMC4yKScsXG4gICAgICAgICAgICBkcm9wZG93bkJvcmRlckNvbG9yOiAnI0Y1QTYyMycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICdhc3NldHMvaW1nL3NjcmVlbi9zZWxlY3QyLnBuZycsXG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgc2VsZWN0Q29sb3I6ICcjNTBFM0MyJyxcbiAgICAgICAgICAgIGJvcmRlckNvbG9yOiAnIzUwRTNDMicsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAncmdiYSg4MCwyMjcsMTk0LDAuMiknLFxuICAgICAgICAgICAgZHJvcGRvd25CZzogJ3JnYmEoODAsMjI3LDE5NCwwLjIpJyxcbiAgICAgICAgICAgIGRyb3Bkb3duQm9yZGVyQ29sb3I6ICcjNTBFM0MyJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJ2Fzc2V0cy9pbWcvc2NyZWVuL3NlbGVjdDMucG5nJyxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBzZWxlY3RDb2xvcjogJyM5MDEzZmUnLFxuICAgICAgICAgICAgYm9yZGVyQ29sb3I6ICcjOTAxM2ZlJyxcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICdyZ2JhKDE0NCwxOSwyNTQsMC4yKScsXG4gICAgICAgICAgICBkcm9wZG93bkJnOiAncmdiYSgxNDQsMTksMjU0LDAuMiknLFxuICAgICAgICAgICAgZHJvcGRvd25Cb3JkZXJDb2xvcjogJyM5MDEzZmUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnYXNzZXRzL2ltZy9zY3JlZW4vc2VsZWN0NC5wbmcnLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHNlbGVjdENvbG9yOiAnIzMyODVmZicsXG4gICAgICAgICAgICBib3JkZXJDb2xvcjogJyMzMjg1ZmYnLFxuICAgICAgICAgICAgYmFja2dyb3VuZDogJ3JnYmEoNTAsMTMzLDI1NSwwLjIpJyxcbiAgICAgICAgICAgIGRyb3Bkb3duQmc6ICdyZ2JhKDUwLDEzMywyNTUsMC4yKScsXG4gICAgICAgICAgICBkcm9wZG93bkJvcmRlckNvbG9yOiAnIzMyODVmZicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgfSlcbiAgZXhhbXBsZTogYW55O1xuICBAUHJvcGVydHkoJ+aPkOekuueUqOivrScsIHsgdHlwZTogJ3N0cmluZycgfSlcbiAgaGludCA9ICfor7fpgInmi6knO1xuICBAUHJvcGVydHkoJycsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDaGVja051bWJlcicsXG4gICAgICB0aXRsZTogJ+WkmumAieS4quaVsCcsXG4gICAgICBzcGFuTGFiZWw6IDAsXG4gICAgICBzcGFuQ29udHJvbDogMjQsXG4gICAgfSxcbiAgfSlcbiAgbnVtID0gMTtcbiAgQFByb3BlcnR5KCfloavlhYUnLCB7XG4gICAgdWk6IHtcbiAgICAgIHdpZGdldDogJ215Q29sb3InLFxuICAgICAgZXhhbXBsZTogWycjRDAwMjFCJywgJyNGNUE2MjMnLCAnI0Y4RTcxQycsICcjNTBFM0MyJywgJyMzMjg1RkYnLCAnI0I0NUZGRicsICcjOUI5QjlCJywgbnVsbF0sXG4gICAgfSxcbiAgfSlcbiAgYmFja2dyb3VuZDogc3RyaW5nO1xuICBAUHJvcGVydHkoJ+i+ueahhicsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNmZmZmZmYnLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCBudWxsXSxcbiAgICB9LFxuICB9KVxuICBib3JkZXJDb2xvciA9ICcjZDlkOWQ5JztcblxuICAvLyDpgJrov4flhajlsYDlj5jph4/mnaXmjqfliLbpopzoibLlj5jljJYg5b2T5aSa5Liq5pe25Lya5LqS55u45pu/5o2iIOenu+mZpOatpOWKn+iDvVxuICBAUHJvcGVydHkoJ+mAieS4reminOiJsicsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNmZmZmZmYnLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCBudWxsXSxcbiAgICB9LFxuICB9KVxuICBkcm9wZG93bkJhY2tncm91bmRDb2xvciA9ICcjRTZGN0ZGJztcbiAgQFByb3BlcnR5KCfpgInkuK3lrZfkvZPpopzoibInLCB7XG4gICAgdWk6IHtcbiAgICAgIHdpZGdldDogJ215Q29sb3InLFxuICAgICAgZXhhbXBsZTogWycjZmZmZmZmJywgJyNGNUE2MjMnLCAnI0Y4RTcxQycsICcjNTBFM0MyJywgJyMzMjg1RkYnLCAnI0I0NUZGRicsICcjOUI5QjlCJywgbnVsbF0sXG4gICAgfSxcbiAgfSlcbiAgc2VsZWN0RHJvcERvd25Db2xvciA9ICdyZ2JhKDAsMCwwLDAuODUpJztcbiAgQFByb3BlcnR5KCdob3ZlcuWtl+S9k+minOiJsicsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNmZmZmZmYnLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCBudWxsXSxcbiAgICB9LFxuICB9KVxuICBzZWxlY3RIb3ZlckNvbG9yID0gJ3JnYmEoMCwwLDAsMC44NSknO1xuICBAUHJvcGVydHkoJ2hvdmVy6IOM5pmv6aKc6ImyJywge1xuICAgIHVpOiB7XG4gICAgICB3aWRnZXQ6ICdteUNvbG9yJyxcbiAgICAgIGV4YW1wbGU6IFsnI2ZmZmZmZicsICcjRjVBNjIzJywgJyNGOEU3MUMnLCAnIzUwRTNDMicsICcjMzI4NUZGJywgJyNCNDVGRkYnLCAnIzlCOUI5QicsIG51bGxdLFxuICAgIH0sXG4gIH0pXG4gIHNlbGVjdEhvdmVyQmFja2dyb3VuZENvbG9yID0gJyNmNWY1ZjUnO1xuXG4gIEBQcm9wZXJ0eSgn5a2X5L2TJywgeyB1aTogeyB3aWRnZXQ6ICdteUZvbnQnIH0gfSlcbiAgZm9udDogYW55ID0ge1xuICAgIGZhbWlseTogJycsXG4gICAgd2VpZ2h0OiAnbm9ybWFsJyxcbiAgICBzaXplOiAxMixcbiAgICBzcGFjZTogMCxcbiAgICBsaW5lSGVpZ2h0OiAzMCxcbiAgfTtcblxuICBAUHJvcGVydHkoJ+Wvuem9kOaWueW8jycsIHtcbiAgICBlbnVtOiBbXG4gICAgICB7IGxhYmVsOiAn5bem5a+56b2QJywgdmFsdWU6ICdsZWZ0JyB9LFxuICAgICAgeyBsYWJlbDogJ+WxheS4rScsIHZhbHVlOiAnY2VudGVyJyB9LFxuICAgICAgeyBsYWJlbDogJ+WPs+Wvuem9kCcsIHZhbHVlOiAncmlnaHQnIH0sXG4gICAgXSxcbiAgfSlcbiAgYWxpZ24gPSAnbGVmdCc7XG4gIEBQcm9wZXJ0eSgn5pCc57SiJylcbiAgc2hvd1NlYXJjaDogYm9vbGVhbjtcbiAgQFByb3BlcnR5KCfmuIXnqbrmjInpkq4nKVxuICBzaG93Q2xlYW46IGJvb2xlYW47XG4gIEBQcm9wZXJ0eSgn5LiL5ouJ5a695bqmJywgeyB0eXBlOiAnbnVtYmVyJyB9KVxuICBkcm9wZG93bldpZHRoID0gbnVsbDtcblxuICBAUHJvcGVydHkoJ+S4i+aLieWhq+WFhScsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNEMDAyMUInLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCBudWxsXSxcbiAgICB9LFxuICB9KVxuICBkcm9wZG93bkJnID0gJyNmZmYnO1xuICBAUHJvcGVydHkoJ+S4i+aLiei+ueahhicsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNmZmZmZmYnLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCBudWxsXSxcbiAgICB9LFxuICB9KVxuICBkcm9wZG93bkJvcmRlckNvbG9yID0gJyNmZmYnO1xuXG4gIEBQcm9wZXJ0eSgn6L6T5Ye65qC85byPJywge1xuICAgIGVudW06IFtcbiAgICAgIHsgbGFiZWw6ICfmlbDnu4QnLCB2YWx1ZTogJ2FycmF5JyB9LFxuICAgICAgeyBsYWJlbDogJ+Wtl+espuS4sicsIHZhbHVlOiAnc3RyaW5nJyB9LFxuICAgIF0sXG4gICAgdWk6IHsgd2lkZ2V0OiAnc2VsZWN0JywgdmlzaWJsZUlmOiB7IG51bTogKHZhbHVlKSA9PiB2YWx1ZSA+IDEgfSB9LFxuICB9KVxuICBvdXRwdXRGb3JtYXQgPSAnYXJyYXknO1xuICBAUHJvcGVydHkoJ+WIhumalOWtl+espicsIHsgdWk6IHsgdmlzaWJsZUlmOiB7IG91dHB1dEZvcm1hdDogWydzdHJpbmcnXSB9IH0gfSlcbiAgc2VwYXJhdG9yID0gJywnO1xuICBzZWxlY3RlZFZhbHVlOiBhbnk7XG4gIG5nU3R5bGU6IGFueTtcbiAgZHJvcGRvd25TdHlsZTogYW55O1xuICBtb2RlID0gJ2RlZmF1bHQnO1xuXG4gIEBEYXRhKHtcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBsYWJlbDogeyB0aXRsZTogJ+agh+etvicsIHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICB2YWx1ZTogeyB0aXRsZTogJ+WAvCcsIHR5cGU6ICdzdHJpbmcnIH0sXG4gICAgICBjaGVja2VkOiB7IHRpdGxlOiAn5piv5ZCm6YCJ5LitJywgdHlwZTogJ2Jvb2xlYW4nIH0sXG4gICAgfSxcbiAgfSlcbiAgb3B0aW9uczogYW55ID0gW1xuICAgIHsgbGFiZWw6ICfpgInpobkxJywgdmFsdWU6ICdvcHRpb24xJyB9LFxuICAgIHsgbGFiZWw6ICfpgInpobkyJywgdmFsdWU6ICdvcHRpb24yJyB9LFxuICBdO1xuXG4gIEBEYXRhSW5wdXQoJ+mAieS4reWAvCcpXG4gIHZhbHVlOiBhbnk7XG5cbiAgQERhdGFPdXRwdXQoJ+WAvCcpXG4gIEBFdmVudCgn5YC85pS55Y+YJywgeyBwYXJhbXM6ICflgLwnIH0pXG4gIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBEYXRhT3V0cHV0KCfljp/lp4vmlbDmja4nKVxuICBvcHRpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5uZ1N0eWxlID0ge1xuICAgICAgYmFja2dyb3VuZENvbG9yOiB0aGlzLmJhY2tncm91bmQsXG4gICAgICBib3JkZXI6ICcxcHggc29saWQgJyArIHRoaXMuYm9yZGVyQ29sb3IsXG4gICAgICBmb250U2l6ZTogdGhpcy5mb250LnNpemUgKyAncHgnLFxuICAgICAgZm9udEZhbWlseTogdGhpcy5mb250LmZhbWlseSxcbiAgICAgIGNvbG9yOiB0aGlzLmZvbnQuY29sb3IsXG4gICAgICBmb250V2VpZ2h0OiB0aGlzLmZvbnQud2VpZ2h0LFxuICAgICAgbGV0dGVyU3BhY2luZzogdGhpcy5mb250LnNwYWNlICsgJ3B4JyxcbiAgICAgIGxpbmVIZWlnaHQ6IHRoaXMuZm9udC5saW5lSGVpZ2h0ICsgJ3B4JyxcbiAgICB9O1xuICAgIHRoaXMuZHJvcGRvd25CZyA9IHRoaXMuZHJvcGRvd25CZyA/IHRoaXMuZHJvcGRvd25CZyA6IHRoaXMuYmFja2dyb3VuZDtcbiAgICB0aGlzLmRyb3Bkb3duQm9yZGVyQ29sb3IgPSB0aGlzLmRyb3Bkb3duQm9yZGVyQ29sb3IgPyB0aGlzLmRyb3Bkb3duQm9yZGVyQ29sb3IgOiB0aGlzLmJvcmRlckNvbG9yO1xuICAgIHRoaXMuZHJvcGRvd25TdHlsZSA9IHtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy5kcm9wZG93bkJnLFxuICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkICcgKyB0aGlzLmRyb3Bkb3duQm9yZGVyQ29sb3IsXG4gICAgICBmb250U2l6ZTogdGhpcy5mb250LnNpemUgKyAncHgnLFxuICAgICAgZm9udEZhbWlseTogdGhpcy5mb250LmZhbWlseSxcbiAgICAgIGNvbG9yOiB0aGlzLmZvbnQuY29sb3IsXG4gICAgICBmb250V2VpZ2h0OiB0aGlzLmZvbnQud2VpZ2h0LFxuICAgICAgbGV0dGVyU3BhY2luZzogdGhpcy5mb250LnNwYWNlICsgJ3B4JyxcbiAgICAgIGxpbmVIZWlnaHQ6IHRoaXMuZm9udC5saW5lSGVpZ2h0ICsgJ3B4JyxcbiAgICAgIHdpZHRoOiB0aGlzLmRyb3Bkb3duV2lkdGggKyAncHgnLFxuICAgIH07XG4gICAgLy8gIHRoaXMuZHJvcGRvd25TdHlsZS53aWR0aCA9IHRoaXMuZHJvcGRvd25XaWR0aCA/IHRoaXMuZHJvcGRvd25XaWR0aCArICdweCcgOiAnJztcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KFxuICAgICAgJy0tZHJvcGRvd25CYWNrZ3JvdW5kQ29sb3InLFxuICAgICAgdGhpcy5kcm9wZG93bkJhY2tncm91bmRDb2xvciB8fCAnIHJnYmEoMjU1LDI1NSwyNTUsMC4yKScsXG4gICAgKTtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLXNlbGVjdERyb3BEb3duQ29sb3InLCB0aGlzLnNlbGVjdERyb3BEb3duQ29sb3IgfHwgJyMzMzMnKTtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLnNldFByb3BlcnR5KCctLXNlbGVjdEhvdmVyQ29sb3InLCB0aGlzLnNlbGVjdEhvdmVyQ29sb3IgfHwgJ3JnYmEoMjU1LDI1NSwyNTUsMC41KScpO1xuICAgIGRvY3VtZW50LmJvZHkuc3R5bGUuc2V0UHJvcGVydHkoJy0tc2VsZWN0SG92ZXJCYWNrZ3JvdW5kQ29sb3InLCB0aGlzLnNlbGVjdEhvdmVyQmFja2dyb3VuZENvbG9yIHx8ICcjMzMzJyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMub3B0aW9ucykge1xuICAgICAgaWYgKHRoaXMubnVtICYmIHRoaXMubnVtID4gMSkge1xuICAgICAgICB0aGlzLm1vZGUgPSAnbXVsdGlwbGUnO1xuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBbXTtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4ge1xuICAgICAgICAgIGlmIChvcHRpb24uY2hlY2tlZCAmJiB0aGlzLnNlbGVjdGVkVmFsdWUubGVuZ3RoIDwgdGhpcy5udW0pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZS5wdXNoKG9wdGlvbi52YWx1ZSA/IG9wdGlvbi52YWx1ZSA6IG9wdGlvbi5sYWJlbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RDaGFuZ2UodGhpcy5zZWxlY3RlZFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5tb2RlID0gJ2RlZmF1bHQnO1xuICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5vcHRpb25zLmZpbmQoKHMpID0+IHMuY2hlY2tlZCk7XG4gICAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gaXRlbS52YWx1ZSA/IGl0ZW0udmFsdWUgOiBpdGVtLmxhYmVsO1xuICAgICAgICAgIHRoaXMuc2VsZWN0Q2hhbmdlKHRoaXMuc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXMudmFsdWUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RBbGxEYXRhKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IFtdO1xuICAgIHRoaXMub3B0aW9ucy5mb3JFYWNoKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUucHVzaChkYXRhLnZhbHVlKTtcbiAgICB9KTtcbiAgICB0aGlzLnNlbGVjdENoYW5nZSh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuICAgIC8vIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkVmFsdWUpO1xuICAgIC8vIHRoaXMub3B0aW9uQ2hhbmdlLmVtaXQodGhpcy5vcHRpb25zKTtcbiAgfVxuXG4gIHNlbGVjdENoYW5nZSh2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgIC8vIOWkmumAiVxuICAgICAgaWYgKHRoaXMub3V0cHV0Rm9ybWF0ID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUuam9pbih0aGlzLnNlcGFyYXRvciB8fCAnLCcpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICB9XG4gICAgICBjb25zdCBzZWxlY3RlZE9wdGlvbiA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKG9wdGlvbikgPT4gdmFsdWUuaW5jbHVkZXMob3B0aW9uLnZhbHVlKSk7XG4gICAgICB0aGlzLm9wdGlvbkNoYW5nZS5lbWl0KHNlbGVjdGVkT3B0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5vcHRpb25zLmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBldmVudCk7XG4gICAgICB0aGlzLm9wdGlvbkNoYW5nZS5lbWl0KHNlbGVjdGVkT3B0aW9uKTtcbiAgICB9XG4gIH1cblxuICBATWV0aG9kKCfpgInkuK0nKVxuICBzZWxlY3QoQFBhcmFtKCflgLwnKSB2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5zZWxlY3RDaGFuZ2UodmFsdWUpO1xuICB9XG59XG4iXX0=
@@ -5,8 +5,8 @@ import { HttpClient, HttpClientJsonpModule } from '@angular/common/http';
5
5
  import { LazyService as LazyService$1, ArrayService, isNum } from '@delon/util';
6
6
  import { LazyService } from '@delon/util/other';
7
7
  import { CommonModule, formatDate } from '@angular/common';
8
- import { __decorate, __metadata, __awaiter, __param } from 'tslib';
9
- import { WidgetRef, Property, Data, Widget, WidgetBaseModule, WidgetService, Drill, DataOutput, GlobalVarService, DataInput, Event, DataSchema, Method, Param, EventParam, TemplateUtil, ScaleSubject } from 'bbj-widget-base';
8
+ import { __decorate, __metadata, __param, __awaiter } from 'tslib';
9
+ import { WidgetRef, Property, Data, Widget, WidgetBaseModule, WidgetService, Drill, DataOutput, GlobalVarService, DataInput, Event, Method, Param, DataSchema, EventParam, TemplateUtil, ScaleSubject } from 'bbj-widget-base';
10
10
  import { NgxEchartsModule, NgxEchartsDirective } from 'ngx-echarts';
11
11
  import { NzIconModule, NzIconService } from 'ng-zorro-antd/icon';
12
12
  import { FormsModule } from '@angular/forms';
@@ -1747,6 +1747,10 @@ let SelectComponent = class SelectComponent {
1747
1747
  this.optionChange.emit(selectedOption);
1748
1748
  }
1749
1749
  }
1750
+ select(value) {
1751
+ this.selectedValue = value;
1752
+ this.selectChange(value);
1753
+ }
1750
1754
  };
1751
1755
  SelectComponent.decorators = [
1752
1756
  { type: Component, args: [{
@@ -1935,6 +1939,13 @@ __decorate([
1935
1939
  DataOutput('原始数据'),
1936
1940
  __metadata("design:type", Object)
1937
1941
  ], SelectComponent.prototype, "optionChange", void 0);
1942
+ __decorate([
1943
+ Method('选中'),
1944
+ __param(0, Param('值')),
1945
+ __metadata("design:type", Function),
1946
+ __metadata("design:paramtypes", [Object]),
1947
+ __metadata("design:returntype", void 0)
1948
+ ], SelectComponent.prototype, "select", null);
1938
1949
  SelectComponent = __decorate([
1939
1950
  Widget('下拉框', {
1940
1951
  group: 'component',
@@ -13203,6 +13214,9 @@ let CustomBaiduMapComponent = class CustomBaiduMapComponent {
13203
13214
  if (this.infoWindowColor) {
13204
13215
  this.element.style.setProperty('--info-window-color', this.infoWindowColor);
13205
13216
  }
13217
+ if (this.infoWindowBorderColor) {
13218
+ this.element.style.setProperty('--info-window-border-color', this.infoWindowBorderColor);
13219
+ }
13206
13220
  this.map.addEventListener('moveend', (event) => {
13207
13221
  const center = this.map.getCenter();
13208
13222
  this.dataChange.emit(center);
@@ -13475,7 +13489,7 @@ CustomBaiduMapComponent.decorators = [
13475
13489
  { type: Component, args: [{
13476
13490
  selector: 'sc-custom-baidu-map',
13477
13491
  template: "<ng-template *ngFor=\"let child of children\" widget-host [widget]=\"child\"></ng-template>\n\n<!-- {{children|json}} -->\n<!-- <div class=\"map-container\" [ngStyle]=\"containerStyle\"> -->\n<div #container class=\"map\"></div>\n<nz-radio-group\n *ngIf=\"showMapTypeRadio\"\n class=\"map-type-radio\"\n [(ngModel)]=\"mapTypeValue\"\n (ngModelChange)=\"mapTypeChange($event)\"\n nzButtonStyle=\"solid\"\n>\n <label *ngFor=\"let item of mapTypeEnum\" nz-radio-button [nzValue]=\"item.value\">{{ item.label }}</label>\n</nz-radio-group>\n<!-- </div> -->\n",
13478
- styles: [":host{display:block;height:100%;width:100%;overflow:hidden;transform-origin:0 0;z-index:0;pointer-events:none}:host>*{pointer-events:auto}.map{height:100%;width:100%}:host::ng-deep .BMap_bubble_pop{background-color:var(--info-window-background,#fff)!important}:host::ng-deep .BMap_bubble_content{color:var(--info-window-color,\"#555555\")!important}:host::ng-deep .BMap_pop div{background-color:var(--info-window-background,#fff)!important}:host::ng-deep .BMap_pop>div:nth-child(8){background-color:transparent!important}:host.hideInfoWindowTail::ng-deep .BMap_bubble_pop>img,:host.hideInfoWindowTail::ng-deep .BMap_pop>div:nth-child(8),:host::ng-deep img[src$=\"/image/api/iws3.png\"]{display:none}:host.hideInfoWindowTop::ng-deep .BMap_bubble_pop{transform:translateY(31px)}:host.hideInfoWindowTop::ng-deep .BMap_bubble_pop>img{transform:translateY(-31px)}:host.hideInfoWindowTop::ng-deep .BMap_bubble_top,:host::ng-deep .anchorBL{display:none}.map-type-radio{position:absolute;bottom:20px;right:20px;z-index:10}"]
13492
+ styles: [":host{display:block;height:100%;width:100%;overflow:hidden;transform-origin:0 0;z-index:0;pointer-events:none}:host>*{pointer-events:auto}.map{height:100%;width:100%}:host::ng-deep .BMap_bubble_pop{background-color:var(--info-window-background,#fff)!important;border-color:var(--info-window-border-color,#ddd)!important}:host::ng-deep .BMap_bubble_content{color:var(--info-window-color,\"#555555\")!important}:host::ng-deep .BMap_pop div{background-color:var(--info-window-background,#fff)!important}:host::ng-deep .BMap_pop>div:nth-child(8){background-color:transparent!important}:host.hideInfoWindowTail::ng-deep .BMap_bubble_pop>img,:host.hideInfoWindowTail::ng-deep .BMap_pop>div:nth-child(8),:host::ng-deep img[src$=\"/image/api/iws3.png\"]{display:none}:host.hideInfoWindowTop::ng-deep .BMap_bubble_pop{transform:translateY(31px)}:host.hideInfoWindowTop::ng-deep .BMap_bubble_pop>img{transform:translateY(-31px)}:host.hideInfoWindowTop::ng-deep .BMap_bubble_top,:host::ng-deep .anchorBL{display:none}.map-type-radio{position:absolute;bottom:20px;right:20px;z-index:10}"]
13479
13493
  },] }
13480
13494
  ];
13481
13495
  CustomBaiduMapComponent.ctorParameters = () => [
@@ -13540,6 +13554,13 @@ __decorate([
13540
13554
  Property('信息窗模板', { ui: { widget: 'textarea' } }),
13541
13555
  __metadata("design:type", String)
13542
13556
  ], CustomBaiduMapComponent.prototype, "infoWindowTemplate", void 0);
13557
+ __decorate([
13558
+ Property('信息窗边框', {
13559
+ ui: { widget: 'myColor' },
13560
+ example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],
13561
+ }),
13562
+ __metadata("design:type", String)
13563
+ ], CustomBaiduMapComponent.prototype, "infoWindowBorderColor", void 0);
13543
13564
  __decorate([
13544
13565
  Property('隐藏尖角'),
13545
13566
  __metadata("design:type", Boolean)