@ng-nest/ui 18.0.18 → 18.0.19

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.
@@ -162,7 +162,6 @@ export class XSliderSelectComponent extends XSliderSelectProperty {
162
162
  this.onChange(this.value());
163
163
  }
164
164
  getOffset(val) {
165
- console.log(val, this.min(), this.max());
166
165
  return Math.abs(Math.round(((val + (this.reverse() ? -this.min() : this.min())) * 100) / (this.max() - this.min())));
167
166
  }
168
167
  setLeft() {
@@ -365,4 +364,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
365
364
  type: HostBinding,
366
365
  args: ['class.x-slider-select-vertical']
367
366
  }] } });
368
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9zbGlkZXItc2VsZWN0L3NsaWRlci1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvc2xpZGVyLXNlbGVjdC9zbGlkZXItc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFHVixXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDekcsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFtQixTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9B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cElBZ0hBLHVpT0QvRUksT0FBTyxvRkFDUCxPQUFPLDBFQUNQLFdBQVcsOEJBQ1gsbUJBQW1CLDhCQUNuQixjQUFjLGlmQUNkLGlCQUFpQixtRUFFakIsZ0JBQWdCOzsyRkFRUCxzQkFBc0I7a0JBbkJsQyxTQUFTOytCQUNFLEdBQUcsbUJBQW1CLEVBQUUsY0FDdEIsSUFBSSxXQUNQO3dCQUNQLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZ0JBQWdCO3FCQUNqQixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsY0FBYyx3QkFBd0IsQ0FBQzs4QkFRQSxXQUFXO3NCQUE3RCxXQUFXO3VCQUFDLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFhUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQG5nLW5lc3QvdWkvdG9vbHRpcCc7XHJcbmltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIE9uRGVzdHJveSxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIGluamVjdCxcclxuICBzaWduYWwsXHJcbiAgdmlld0NoaWxkLFxyXG4gIHZpZXdDaGlsZHJlbixcclxuICBjb21wdXRlZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYU2xpZGVyU2VsZWN0UHJvcGVydHksIFhTbGlkZXJTZWxlY3RQcmVmaXgsIFhTbGlkZXJTZWxlY3RNYXJrIH0gZnJvbSAnLi9zbGlkZXItc2VsZWN0LnByb3BlcnR5JztcclxuaW1wb3J0IHsgWElzRW1wdHksIFhJc1VuZGVmaW5lZCwgWFJlc2l6ZSwgWFJlc2l6ZU9ic2VydmVyLCBYSXNOdW1iZXIsIFhJc0FycmF5LCBYSXNOdWxsIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuaW1wb3J0IHsgTmdDbGFzcywgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBYRHJhZ0RpcmVjdGl2ZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2RyYWcnO1xyXG5pbXBvcnQgeyBYT3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnQG5nLW5lc3QvdWkvb3V0bGV0JztcclxuaW1wb3J0IHR5cGUgeyBDZGtEcmFnTW92ZSwgQ2RrRHJhZ1N0YXJ0LCBDZGtEcmFnRW5kIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WFNsaWRlclNlbGVjdFByZWZpeH1gLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIE5nU3R5bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBEcmFnRHJvcE1vZHVsZSxcclxuICAgIFhUb29sdGlwRGlyZWN0aXZlLFxyXG4gICAgWERyYWdEaXJlY3RpdmUsXHJcbiAgICBYT3V0bGV0RGlyZWN0aXZlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2xpZGVyLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2xpZGVyLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWFNsaWRlclNlbGVjdENvbXBvbmVudCldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYU2xpZGVyU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgWFNsaWRlclNlbGVjdFByb3BlcnR5IGltcGxlbWVudHMgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBzbGlkZXJTZWxlY3QgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdzbGlkZXJTZWxlY3QnKTtcclxuICBkcmFnU3RhcnRSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdkcmFnU3RhcnRSZWYnKTtcclxuICBkcmFnRW5kUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignZHJhZ0VuZFJlZicpO1xyXG4gIHJhaWxSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdyYWlsUmVmJyk7XHJcbiAgcHJvY2Vzc1JlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ3Byb2Nlc3NSZWYnKTtcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLngtc2xpZGVyLXNlbGVjdC12ZXJ0aWNhbCcpIGdldCBnZXRWZXJ0aWNhbCgpIHtcclxuICAgIHJldHVybiB0aGlzLnZlcnRpY2FsKCk7XHJcbiAgfVxyXG4gIHRvb2x0aXBzID0gdmlld0NoaWxkcmVuKFhUb29sdGlwRGlyZWN0aXZlKTtcclxuICB0b29sdGlwU3RhcnQgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBpZiAodGhpcy50b29sdGlwcygpLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcHMoKSFbMF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9KTtcclxuICB0b29sdGlwRW5kID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgaWYgKHRoaXMudG9vbHRpcHMoKS5sZW5ndGggPiAxKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRvb2x0aXBzKCkhWzFdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfSk7XHJcblxyXG4gIG92ZXJyaWRlIHZhbHVlID0gc2lnbmFsPG51bWJlciB8IG51bWJlcltdPigwKTtcclxuICBzdGFydGluZyA9IHNpZ25hbChmYWxzZSk7XHJcblxyXG4gIHN0YXJ0T2Zmc2V0ID0gc2lnbmFsKDApO1xyXG4gIHN0YXJ0VmlzaWJsZSA9IHNpZ25hbChmYWxzZSk7XHJcbiAgc3RhcnRNYW51YWwgPSBzaWduYWwoZmFsc2UpO1xyXG4gIHN0YXJ0ID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xyXG4gIHN0YXJ0RGlzcGxheVZhbHVlID0gc2lnbmFsKCcwJyk7XHJcbiAgc2hvd1N0YXJ0VG9vbHRpcCA9IHNpZ25hbCh0cnVlKTtcclxuXHJcbiAgZW5kT2Zmc2V0ID0gc2lnbmFsKDApO1xyXG4gIGVuZFZpc2libGUgPSBzaWduYWwoZmFsc2UpO1xyXG4gIGVuZE1hbnVhbCA9IHNpZ25hbChmYWxzZSk7XHJcbiAgZW5kID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xyXG4gIGVuZERpc3BsYXlWYWx1ZSA9IHNpZ25hbCgnMCcpO1xyXG4gIHNob3dFbmRUb29sdGlwID0gc2lnbmFsKHRydWUpO1xyXG5cclxuICBtYXJrTGlzdCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGlmICghdGhpcy5tYXJrcygpKSByZXR1cm4gW107XHJcbiAgICBjb25zdCBtYXJrczogWFNsaWRlclNlbGVjdE1hcmtbXSA9IFtdO1xyXG4gICAgZm9yIChsZXQgbWFyayBvZiB0aGlzLm1hcmtzKCkpIHtcclxuICAgICAgY29uc3QgbWs6IFhTbGlkZXJTZWxlY3RNYXJrID0ge1xyXG4gICAgICAgIHZhbHVlOiBtYXJrLnZhbHVlLFxyXG4gICAgICAgIGxhYmVsOiBtYXJrLmxhYmVsLFxyXG4gICAgICAgIHN0eWxlOiB7IC4uLm1hcmsuc3R5bGUgfVxyXG4gICAgICB9O1xyXG4gICAgICBtay5vZmZzZXQgPSB0aGlzLmdldE9mZnNldChtYXJrLnZhbHVlKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLnJldmVyc2UoKSkge1xyXG4gICAgICAgIGlmICh0aGlzLnZlcnRpY2FsKCkpIHtcclxuICAgICAgICAgIG1rLnN0eWxlIVsndG9wJ10gPSBgJHttay5vZmZzZXR9JWA7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG1rLnN0eWxlIVsncmlnaHQnXSA9IGAke21rLm9mZnNldH0lYDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMudmVydGljYWwoKSkge1xyXG4gICAgICAgICAgbWsuc3R5bGUhWydib3R0b20nXSA9IGAke21rLm9mZnNldH0lYDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbWsuc3R5bGUhWydsZWZ0J10gPSBgJHttay5vZmZzZXR9JWA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIG1hcmtzLnB1c2gobWspO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1hcmtzO1xyXG4gIH0pO1xyXG5cclxuICBwcml2YXRlIHVuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlciE6IFhSZXNpemVPYnNlcnZlcjtcclxuICBpc051bWJlciA9IGNvbXB1dGVkKCgpID0+IFhJc051bWJlcih0aGlzLnZhbHVlKCkpICYmICFYSXNBcnJheSh0aGlzLnZhbHVlKCkpKTtcclxuICBpc0FycmF5ID0gY29tcHV0ZWQoKCkgPT4gWElzQXJyYXkodGhpcy52YWx1ZSgpKSk7XHJcblxyXG4gIGNsYXNzTWFwID0gY29tcHV0ZWQoKCkgPT4gKHtcclxuICAgIFtgeC1qdXN0aWZ5LSR7dGhpcy5qdXN0aWZ5KCl9YF06ICEhdGhpcy5qdXN0aWZ5KCksXHJcbiAgICBbYHgtYWxpZ24tJHt0aGlzLmFsaWduKCl9YF06ICEhdGhpcy5hbGlnbigpLFxyXG4gICAgW2B4LWRpcmVjdGlvbi0ke3RoaXMuZGlyZWN0aW9uKCl9YF06ICEhdGhpcy5kaXJlY3Rpb24oKVxyXG4gIH0pKTtcclxuICBsYWJlbE1hcFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+ICh7XHJcbiAgICBbYHgtdGV4dC1hbGlnbi0ke3RoaXMubGFiZWxBbGlnbigpfWBdOiAhIXRoaXMubGFiZWxBbGlnbigpXHJcbiAgfSkpO1xyXG5cclxuICBwcmVjaXNpb25TaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBwcmVjaXNpb24gPSB0aGlzLnByZWNpc2lvbigpO1xyXG4gICAgaWYgKFhJc1VuZGVmaW5lZChwcmVjaXNpb24pIHx8ICFYSXNFbXB0eSh0aGlzLnN0ZXAoKSkpIHtcclxuICAgICAgbGV0IHN0ZXBTdHIgPSBTdHJpbmcodGhpcy5zdGVwKCkpO1xyXG4gICAgICBsZXQgaW5kZXhwb2ludCA9IHN0ZXBTdHIuaW5kZXhPZignLicpO1xyXG4gICAgICBpZiAoaW5kZXhwb2ludCA9PT0gLTEpIHtcclxuICAgICAgICByZXR1cm4gMDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gc3RlcFN0ci5sZW5ndGggLSAoaW5kZXhwb2ludCArIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcHJlY2lzaW9uO1xyXG4gIH0pO1xyXG5cclxuICBvdmVycmlkZSByZXF1aXJlZElzRW1wdHkgPSBjb21wdXRlZChcclxuICAgICgpID0+IHRoaXMudmFsaWRhdG9yQ29tcHV0ZWQoKSAmJiB0aGlzLnJlcXVpcmVkQ29tcHV0ZWQoKSAmJiAoWElzRW1wdHkodGhpcy52YWx1ZSgpKSB8fCB0aGlzLnZhbHVlKCkgPT09IDApXHJcbiAgKTtcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgbnVtYmVyW10pIHtcclxuICAgIGlmICh0aGlzLnN0YXJ0aW5nKCkpIHJldHVybjtcclxuICAgIGlmIChYSXNOdWxsKHZhbHVlKSB8fCBYSXNVbmRlZmluZWQodmFsdWUpKSB7XHJcbiAgICAgIGlmICh0aGlzLnJhbmdlKCkpIHtcclxuICAgICAgICB2YWx1ZSA9IFt0aGlzLm1pbigpLCB0aGlzLm1pbigpXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB2YWx1ZSA9IHRoaXMubWluKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMudmFsdWUuc2V0KHZhbHVlKTtcclxuICAgIHRoaXMuc2V0TGVmdCgpO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5VmFsdWUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuICBvdmVycmlkZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIFhSZXNpemUodGhpcy5zbGlkZXJTZWxlY3QoKS5uYXRpdmVFbGVtZW50KVxyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMzApLCB0YWtlVW50aWwodGhpcy51blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgdGhpcy5zZXRMZWZ0KCk7XHJcbiAgICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMudW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMudW5TdWJqZWN0LmNvbXBsZXRlKCk7XHJcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2UoKSB7XHJcbiAgICBjb25zdCBnZXRWYWwgPSAob2Zmc2V0OiBudW1iZXIpID0+IHtcclxuICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoXHJcbiAgICAgICAgTnVtYmVyKCgodGhpcy5tYXgoKSAtIHRoaXMubWluKCkpICogb2Zmc2V0KSAvIDEwMCArIHRoaXMubWluKCkpLnRvRml4ZWQodGhpcy5wcmVjaXNpb25TaWduYWwoKSlcclxuICAgICAgKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBzdGFydFZhbCA9IGdldFZhbCh0aGlzLnN0YXJ0T2Zmc2V0KCkpO1xyXG4gICAgaWYgKHRoaXMuaXNOdW1iZXIoKSkge1xyXG4gICAgICB0aGlzLnZhbHVlLnNldChzdGFydFZhbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBlbmRWYWwgPSBnZXRWYWwodGhpcy5lbmRPZmZzZXQoKSk7XHJcbiAgICAgIGlmIChlbmRWYWwgPCBzdGFydFZhbCkge1xyXG4gICAgICAgIHRoaXMudmFsdWUuc2V0KFtlbmRWYWwsIHN0YXJ0VmFsXSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZS5zZXQoW3N0YXJ0VmFsLCBlbmRWYWxdKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKCk7XHJcbiAgICBpZiAodGhpcy5vbkNoYW5nZSkgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T2Zmc2V0KHZhbDogbnVtYmVyKSB7XHJcbiAgICBjb25zb2xlLmxvZyh2YWwsIHRoaXMubWluKCksIHRoaXMubWF4KCkpO1xyXG4gICAgcmV0dXJuIE1hdGguYWJzKFxyXG4gICAgICBNYXRoLnJvdW5kKCgodmFsICsgKHRoaXMucmV2ZXJzZSgpID8gLXRoaXMubWluKCkgOiB0aGlzLm1pbigpKSkgKiAxMDApIC8gKHRoaXMubWF4KCkgLSB0aGlzLm1pbigpKSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzZXRMZWZ0KCkge1xyXG4gICAgbGV0IHN0YXJ0VmFsID0gMCxcclxuICAgICAgZW5kVmFsID0gMDtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZSgpO1xyXG4gICAgaWYgKHRoaXMuaXNOdW1iZXIoKSkge1xyXG4gICAgICBzdGFydFZhbCA9IHZhbHVlIGFzIG51bWJlcjtcclxuICAgIH0gZWxzZSBpZiAoWElzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDEpIHtcclxuICAgICAgc3RhcnRWYWwgPSB2YWx1ZVswXTtcclxuICAgICAgZW5kVmFsID0gdmFsdWVbMV07XHJcbiAgICAgIHRoaXMuZW5kT2Zmc2V0LnNldCh0aGlzLmdldE9mZnNldChlbmRWYWwpKTtcclxuICAgICAgdGhpcy5lbmQuc2V0KHRoaXMuZW5kT2Zmc2V0KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc3RhcnRPZmZzZXQuc2V0KHRoaXMuZ2V0T2Zmc2V0KHN0YXJ0VmFsKSk7XHJcbiAgICB0aGlzLnN0YXJ0LnNldCh0aGlzLnN0YXJ0T2Zmc2V0KCkpO1xyXG5cclxuICAgIHRoaXMuc2V0RHJhZygpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzcGxheVZhbHVlKCkge1xyXG4gICAgY29uc3QgZGlzcGxheVZhbCA9ICh2YWw6IG51bWJlcikgPT4ge1xyXG4gICAgICByZXR1cm4gTnVtYmVyKHZhbCkudG9GaXhlZCh0aGlzLnByZWNpc2lvblNpZ25hbCgpKTtcclxuICAgIH07XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUoKTtcclxuICAgIGlmICh0aGlzLmlzTnVtYmVyKCkpIHtcclxuICAgICAgdGhpcy5zdGFydERpc3BsYXlWYWx1ZS5zZXQoZGlzcGxheVZhbCh2YWx1ZSBhcyBudW1iZXIpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChYSXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMSkge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXJ0T2Zmc2V0KCkgPiB0aGlzLmVuZE9mZnNldCgpKSB7XHJcbiAgICAgICAgICB0aGlzLnN0YXJ0RGlzcGxheVZhbHVlLnNldChkaXNwbGF5VmFsKHZhbHVlWzFdKSk7XHJcbiAgICAgICAgICB0aGlzLmVuZERpc3BsYXlWYWx1ZS5zZXQoZGlzcGxheVZhbCh2YWx1ZVswXSkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnN0YXJ0RGlzcGxheVZhbHVlLnNldChkaXNwbGF5VmFsKHZhbHVlWzBdKSk7XHJcbiAgICAgICAgICB0aGlzLmVuZERpc3BsYXlWYWx1ZS5zZXQoZGlzcGxheVZhbCh2YWx1ZVsxXSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhcnRlZChkcmFnOiBDZGtEcmFnU3RhcnQsIHR5cGU6ICdzdGFydCcgfCAnZW5kJyB8ICdib3RoJyA9ICdzdGFydCcpIHtcclxuICAgIHRoaXMuc3RhcnRpbmcuc2V0KHRydWUpO1xyXG4gICAgaWYgKFsnc3RhcnQnLCAnYm90aCddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgIGNvbnN0IHN0YXJ0ID0gdGhpcy5zdGFydE9mZnNldCgpO1xyXG4gICAgICB0aGlzLnN0YXJ0LnNldChzdGFydCk7XHJcbiAgICAgIGlmICh0aGlzLnNob3dTdGFydFRvb2x0aXAoKSkge1xyXG4gICAgICAgIHRoaXMuc3RhcnRNYW51YWwuc2V0KHRydWUpO1xyXG4gICAgICAgIHRoaXMuc3RhcnRWaXNpYmxlLnNldCh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKFsnZW5kJywgJ2JvdGgnXS5pbmNsdWRlcyh0eXBlKSkge1xyXG4gICAgICBjb25zdCBlbmQgPSB0aGlzLmVuZE9mZnNldCgpO1xyXG4gICAgICB0aGlzLmVuZC5zZXQoZW5kKTtcclxuICAgICAgaWYgKHRoaXMuc2hvd0VuZFRvb2x0aXAoKSkge1xyXG4gICAgICAgIHRoaXMuZW5kTWFudWFsLnNldCh0cnVlKTtcclxuICAgICAgICB0aGlzLmVuZFZpc2libGUuc2V0KHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1Db250cm9sVmFsaWRhdG9yKCk7XHJcbiAgICB0aGlzLmRyYWdTdGFydEVtaXQuZW1pdChkcmFnKTtcclxuICB9XHJcblxyXG4gIG1vdmVkKGRyYWc6IENka0RyYWdNb3ZlLCB0eXBlOiAnc3RhcnQnIHwgJ2VuZCcgfCAnYm90aCcgPSAnc3RhcnQnKSB7XHJcbiAgICBsZXQgdHJhbnNmb3JtID0gZHJhZy5zb3VyY2UuZ2V0RnJlZURyYWdQb3NpdGlvbigpO1xyXG4gICAgdGhpcy5zZXREcmFnKHRoaXMudmVydGljYWwoKSA/IHRyYW5zZm9ybS55IDogdHJhbnNmb3JtLngsIHR5cGUpO1xyXG4gICAgZHJhZy5zb3VyY2UucmVzZXQoKTtcclxuICAgIGlmIChbJ3N0YXJ0JywgJ2JvdGgnXS5pbmNsdWRlcyh0eXBlKSAmJiB0aGlzLnNob3dTdGFydFRvb2x0aXAoKSkge1xyXG4gICAgICB0aGlzLnRvb2x0aXBTdGFydCgpPy51cGRhdGVQb3J0YWwoKTtcclxuICAgIH1cclxuICAgIGlmIChbJ2VuZCcsICdib3RoJ10uaW5jbHVkZXModHlwZSkgJiYgdGhpcy5zaG93RW5kVG9vbHRpcCgpKSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcEVuZCgpPy51cGRhdGVQb3J0YWwoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2hhbmdlKCk7XHJcbiAgICB0aGlzLmRyYWdNb3ZlRW1pdC5lbWl0KGRyYWcpO1xyXG4gIH1cclxuXHJcbiAgZW5kZWQoZHJhZzogQ2RrRHJhZ0VuZCwgdHlwZTogJ3N0YXJ0JyB8ICdlbmQnIHwgJ2JvdGgnID0gJ3N0YXJ0Jykge1xyXG4gICAgaWYgKFsnc3RhcnQnLCAnYm90aCddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgIGlmICh0aGlzLnNob3dTdGFydFRvb2x0aXAoKSkge1xyXG4gICAgICAgIHRoaXMuc3RhcnRNYW51YWwuc2V0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLnN0YXJ0VmlzaWJsZS5zZXQoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoWydlbmQnLCAnYm90aCddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgIGlmICh0aGlzLnNob3dFbmRUb29sdGlwKCkpIHtcclxuICAgICAgICB0aGlzLmVuZE1hbnVhbC5zZXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuZW5kVmlzaWJsZS5zZXQoZmFsc2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0YXJ0aW5nLnNldChmYWxzZSk7XHJcbiAgICB0aGlzLmRyYWdFbmRFbWl0LmVtaXQoZHJhZyk7XHJcbiAgfVxyXG5cclxuICBzZXREcmFnKGRpc3RhbmNlOiBudW1iZXIgPSAwLCB0eXBlOiAnc3RhcnQnIHwgJ2VuZCcgfCAnYm90aCcgPSAnYm90aCcpIHtcclxuICAgIGlmICh0eXBlb2YgdGhpcy5yYWlsUmVmKCkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QgIT09ICdmdW5jdGlvbicpIHJldHVybjtcclxuICAgIGxldCByYWlsQm94ID0gdGhpcy5yYWlsUmVmKCkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGxldCByYWlsQm94TGVuZ3RoID0gdGhpcy52ZXJ0aWNhbCgpID8gcmFpbEJveC5oZWlnaHQgOiByYWlsQm94LndpZHRoO1xyXG4gICAgbGV0IHN0ZXBMZW5ndGggPSByYWlsQm94TGVuZ3RoIC8gKCh0aGlzLm1heCgpIC0gdGhpcy5taW4oKSkgLyB0aGlzLnN0ZXAoKSk7XHJcbiAgICBsZXQgb2Zmc2V0ID0gTWF0aC5hYnMoZGlzdGFuY2UgJSBzdGVwTGVuZ3RoKTtcclxuICAgIGxldCBkaXMgPVxyXG4gICAgICBvZmZzZXQgPCBzdGVwTGVuZ3RoIC8gMlxyXG4gICAgICAgID8gZGlzdGFuY2UgPiAwXHJcbiAgICAgICAgICA/IGRpc3RhbmNlIC0gb2Zmc2V0XHJcbiAgICAgICAgICA6IGRpc3RhbmNlICsgb2Zmc2V0XHJcbiAgICAgICAgOiBkaXN0YW5jZSA+IDBcclxuICAgICAgICAgID8gZGlzdGFuY2UgKyBzdGVwTGVuZ3RoIC0gb2Zmc2V0XHJcbiAgICAgICAgICA6IGRpc3RhbmNlIC0gc3RlcExlbmd0aCArIG9mZnNldDtcclxuXHJcbiAgICBjb25zdCBzZXRPZmZzZXQgPSAoZDogbnVtYmVyKSA9PiB7XHJcbiAgICAgIGxldCB4MSA9IChkIC8gMTAwKSAqIHJhaWxCb3hMZW5ndGg7XHJcbiAgICAgIGlmICh0aGlzLnZlcnRpY2FsKCkpIHtcclxuICAgICAgICB4MSArPSB0aGlzLnJldmVyc2UoKSA/IGRpcyA6IC1kaXM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgeDEgKz0gdGhpcy5yZXZlcnNlKCkgPyAtZGlzIDogZGlzO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBNYXRoLnJvdW5kKCh4MSAvIHJhaWxCb3hMZW5ndGgpICogMTAwKTtcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHR5cGUgPT09ICdib3RoJykge1xyXG4gICAgICB0aGlzLnN0YXJ0T2Zmc2V0LnNldChzZXRPZmZzZXQodGhpcy5zdGFydCgpISkpO1xyXG4gICAgICB0aGlzLmVuZE9mZnNldC5zZXQoc2V0T2Zmc2V0KHRoaXMuZW5kKCkhKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdGFydCcpIHtcclxuICAgICAgdGhpcy5zdGFydE9mZnNldC5zZXQoc2V0T2Zmc2V0KHRoaXMuc3RhcnQoKSEpKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2VuZCcpIHtcclxuICAgICAgdGhpcy5lbmRPZmZzZXQuc2V0KHNldE9mZnNldCh0aGlzLmVuZCgpISkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0RHJhZ1N0eWxlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0RHJhZ1N0eWxlcygpIHtcclxuICAgIGlmICh0aGlzLnZlcnRpY2FsKCkpIHtcclxuICAgICAgaWYgKHRoaXMuaXNBcnJheSgpKSB7XHJcbiAgICAgICAgY29uc3Qgd2QgPSBNYXRoLmFicyh0aGlzLmVuZE9mZnNldCgpIC0gdGhpcy5zdGFydE9mZnNldCgpKTtcclxuICAgICAgICBjb25zdCBsdCA9IHRoaXMuZW5kT2Zmc2V0KCkgPiB0aGlzLnN0YXJ0T2Zmc2V0KCkgPyB0aGlzLnN0YXJ0T2Zmc2V0KCkgOiB0aGlzLmVuZE9mZnNldCgpO1xyXG4gICAgICAgIGlmICh0aGlzLnJldmVyc2UoKSkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRyYWdTdGFydFJlZigpLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCBgJHt0aGlzLnN0YXJ0T2Zmc2V0KCl9JWApO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRyYWdFbmRSZWYoKS5uYXRpdmVFbGVtZW50LCAndG9wJywgYCR7dGhpcy5lbmRPZmZzZXQoKX0lYCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJvY2Vzc1JlZigpLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCBgJHtsdH0lYCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnU3RhcnRSZWYoKS5uYXRpdmVFbGVtZW50LCAnYm90dG9tJywgYCR7dGhpcy5zdGFydE9mZnNldCgpfSVgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnRW5kUmVmKCkubmF0aXZlRWxlbWVudCwgJ2JvdHRvbScsIGAke3RoaXMuZW5kT2Zmc2V0KCl9JWApO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByb2Nlc3NSZWYoKS5uYXRpdmVFbGVtZW50LCAnYm90dG9tJywgYCR7bHR9JWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJvY2Vzc1JlZigpLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHt3ZH0lYCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRoaXMucmV2ZXJzZSgpKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuZHJhZ1N0YXJ0UmVmKCkubmF0aXZlRWxlbWVudCwgJ2JvdHRvbScpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRyYWdTdGFydFJlZigpLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCBgJHt0aGlzLnN0YXJ0T2Zmc2V0KCl9JWApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuZHJhZ1N0YXJ0UmVmKCkubmF0aXZlRWxlbWVudCwgJ3RvcCcpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRyYWdTdGFydFJlZigpLm5hdGl2ZUVsZW1lbnQsICdib3R0b20nLCBgJHt0aGlzLnN0YXJ0T2Zmc2V0KCl9JWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJvY2Vzc1JlZigpLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCBgJHt0aGlzLnN0YXJ0T2Zmc2V0KCl9JWApO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5pc0FycmF5KCkpIHtcclxuICAgICAgICBjb25zdCB3ZCA9IE1hdGguYWJzKHRoaXMuZW5kT2Zmc2V0KCkgLSB0aGlzLnN0YXJ0T2Zmc2V0KCkpO1xyXG4gICAgICAgIGNvbnN0IGx0ID0gdGhpcy5lbmRPZmZzZXQoKSA+IHRoaXMuc3RhcnRPZmZzZXQoKSA/IHRoaXMuc3RhcnRPZmZzZXQoKSA6IHRoaXMuZW5kT2Zmc2V0KCk7XHJcbiAgICAgICAgaWYgKHRoaXMucmV2ZXJzZSgpKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ1N0YXJ0UmVmKCkubmF0aXZlRWxlbWVudCwgJ3JpZ2h0JywgYCR7dGhpcy5zdGFydE9mZnNldCgpfSVgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnRW5kUmVmKCkubmF0aXZlRWxlbWVudCwgJ3JpZ2h0JywgYCR7dGhpcy5lbmRPZmZzZXQoKX0lYCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJvY2Vzc1JlZigpLm5hdGl2ZUVsZW1lbnQsICdyaWdodCcsIGAke2x0fSVgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRyYWdTdGFydFJlZigpLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7dGhpcy5zdGFydE9mZnNldCgpfSVgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnRW5kUmVmKCkubmF0aXZlRWxlbWVudCwgJ2xlZnQnLCBgJHt0aGlzLmVuZE9mZnNldCgpfSVgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcm9jZXNzUmVmKCkubmF0aXZlRWxlbWVudCwgJ2xlZnQnLCBgJHtsdH0lYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcm9jZXNzUmVmKCkubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7d2R9JWApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLnJldmVyc2UoKSkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmRyYWdTdGFydFJlZigpLm5hdGl2ZUVsZW1lbnQsICdsZWZ0Jyk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ1N0YXJ0UmVmKCkubmF0aXZlRWxlbWVudCwgJ3JpZ2h0JywgYCR7dGhpcy5zdGFydE9mZnNldCgpfSVgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmRyYWdTdGFydFJlZigpLm5hdGl2ZUVsZW1lbnQsICdyaWdodCcpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRyYWdTdGFydFJlZigpLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7dGhpcy5zdGFydE9mZnNldCgpfSVgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByb2Nlc3NSZWYoKS5uYXRpdmVFbGVtZW50LCAnd2lkdGgnLCBgJHt0aGlzLnN0YXJ0T2Zmc2V0KCl9JWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAjc2xpZGVyU2VsZWN0XHJcbiAgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3RcIlxyXG4gIFtjbGFzcy54LWZsZXhdPVwianVzdGlmeSgpIHx8IGFsaWduKCkgfHwgZGlyZWN0aW9uKClcIlxyXG4gIFtjbGFzcy54LWRpc2FibGVkXT1cImRpc2FibGVkQ29tcHV0ZWQoKVwiXHJcbiAgW2NsYXNzLngtcmVxdWlyZWRdPVwicmVxdWlyZWRJc0VtcHR5KClcIlxyXG4gIFtjbGFzcy54LWludmFsaWRdPVwiaW52YWxpZCgpXCJcclxuICBbY2xhc3MueC1zbGlkZXItc2VsZWN0LXJldmVyc2VdPVwicmV2ZXJzZSgpXCJcclxuICBbY2xhc3MueC1zbGlkZXItc2VsZWN0LXJhbmdlXT1cInJhbmdlKClcIlxyXG4gIFtuZ0NsYXNzXT1cImNsYXNzTWFwKClcIlxyXG4+XHJcbiAgQGlmIChsYWJlbCgpKSB7XHJcbiAgICA8bGFiZWxcclxuICAgICAgW2NsYXNzLngtc2xpZGVyLXNlbGVjdC1sYWJlbC1yZXF1aXJlZF09XCJyZXF1aXJlZENvbXB1dGVkKClcIlxyXG4gICAgICBbc3R5bGUud2lkdGhdPVwibGFiZWxXaWR0aCgpXCJcclxuICAgICAgW25nQ2xhc3NdPVwibGFiZWxNYXBTaWduYWwoKVwiXHJcbiAgICAgID57eyBsYWJlbCgpIH19PC9sYWJlbFxyXG4gICAgPlxyXG4gIH1cclxuICA8ZGl2IGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LWlubmVyXCIgI2lubmVyUmVmPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC1yYWlsXCIgI3JhaWxSZWY+XHJcbiAgICAgIDxkaXY+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtZHJhZ3NcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC10cmFja1wiICN0cmFja1JlZj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAjcHJvY2Vzc1JlZlxyXG4gICAgICAgICAgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtcHJvY2Vzc1wiXHJcbiAgICAgICAgICBjZGtEcmFnXHJcbiAgICAgICAgICBbY2RrRHJhZ0xvY2tBeGlzXT1cInZlcnRpY2FsKCkgPyAneScgOiAneCdcIlxyXG4gICAgICAgICAgW2Nka0RyYWdEaXNhYmxlZF09XCJkaXNhYmxlZENvbXB1dGVkKCkgfHwgIXJhbmdlKClcIlxyXG4gICAgICAgICAgW2Nka0RyYWdCb3VuZGFyeV09XCJ0cmFja1JlZlwiXHJcbiAgICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwic3RhcnRlZCgkZXZlbnQsICdib3RoJylcIlxyXG4gICAgICAgICAgKGNka0RyYWdFbmRlZCk9XCJlbmRlZCgkZXZlbnQsICdib3RoJylcIlxyXG4gICAgICAgICAgKGNka0RyYWdNb3ZlZCk9XCJtb3ZlZCgkZXZlbnQsICdib3RoJylcIlxyXG4gICAgICAgID48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtbWFya3NcIj5cclxuICAgICAgICBAZm9yIChtYXJrIG9mIG1hcmtMaXN0KCk7IHRyYWNrIG1hcmsubGFiZWwpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtbWFya1wiIFtuZ1N0eWxlXT1cIm1hcmsuc3R5bGVcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtbWFyay1sYWJlbFwiPnt7IG1hcmsubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgI2RyYWdTdGFydFJlZlxyXG4gICAgICAgIGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LWRyYWdcIlxyXG4gICAgICAgIGNka0RyYWdcclxuICAgICAgICBbY2RrRHJhZ0xvY2tBeGlzXT1cInZlcnRpY2FsKCkgPyAneScgOiAneCdcIlxyXG4gICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiZGlzYWJsZWRDb21wdXRlZCgpXCJcclxuICAgICAgICBbY2RrRHJhZ0JvdW5kYXJ5XT1cImlubmVyUmVmXCJcclxuICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwic3RhcnRlZCgkZXZlbnQsICdzdGFydCcpXCJcclxuICAgICAgICAoY2RrRHJhZ0VuZGVkKT1cImVuZGVkKCRldmVudCwgJ3N0YXJ0JylcIlxyXG4gICAgICAgIChjZGtEcmFnTW92ZWQpPVwibW92ZWQoJGV2ZW50LCAnc3RhcnQnKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAjdG9vbHRpcFN0YXJ0XHJcbiAgICAgICAgICB4LXRvb2x0aXBcclxuICAgICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC1idXR0b25cIlxyXG4gICAgICAgICAgW2NsYXNzLngtc2xpZGVyLXNlbGVjdC1idXR0b24tYWN0aXZlZF09XCJzdGFydFZpc2libGUoKVwiXHJcbiAgICAgICAgICBbY2xhc3MueC1zbGlkZXItc2VsZWN0LWN1c3RvbS1idXR0b25dPVwiY3VzdG9tQnV0dG9uKClcIlxyXG4gICAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc2hvd1Rvb2x0aXAoKVwiXHJcbiAgICAgICAgICBbY29udGVudF09XCJ0b29sdGlwU3RhcnRUcGxcIlxyXG4gICAgICAgICAgWyh2aXNpYmxlKV09XCJzdGFydFZpc2libGVcIlxyXG4gICAgICAgICAgW21hbnVhbF09XCJzdGFydE1hbnVhbCgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiY3VzdG9tQnV0dG9uKClcIj57eyBjdXN0b21CdXR0b24oKSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdG9vbHRpcFN0YXJ0VHBsPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cInRvb2x0aXBDdXN0b20oKTsgY29udGV4dDogeyAkdmFsdWU6IHN0YXJ0RGlzcGxheVZhbHVlKCkgfVwiPnt7XHJcbiAgICAgICAgICAgIHN0YXJ0RGlzcGxheVZhbHVlKClcclxuICAgICAgICAgIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBbaGlkZGVuXT1cIiFyYW5nZSgpXCJcclxuICAgICAgICAjZHJhZ0VuZFJlZlxyXG4gICAgICAgIGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LWRyYWdcIlxyXG4gICAgICAgIGNka0RyYWdcclxuICAgICAgICBbY2RrRHJhZ0xvY2tBeGlzXT1cInZlcnRpY2FsKCkgPyAneScgOiAneCdcIlxyXG4gICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiZGlzYWJsZWRDb21wdXRlZCgpXCJcclxuICAgICAgICBbY2RrRHJhZ0JvdW5kYXJ5XT1cImlubmVyUmVmXCJcclxuICAgICAgICAoY2RrRHJhZ1N0YXJ0ZWQpPVwic3RhcnRlZCgkZXZlbnQsICdlbmQnKVwiXHJcbiAgICAgICAgKGNka0RyYWdFbmRlZCk9XCJlbmRlZCgkZXZlbnQsICdlbmQnKVwiXHJcbiAgICAgICAgKGNka0RyYWdNb3ZlZCk9XCJtb3ZlZCgkZXZlbnQsICdlbmQnKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAjdG9vbHRpcEVuZFxyXG4gICAgICAgICAgeC10b29sdGlwXHJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtYnV0dG9uXCJcclxuICAgICAgICAgIFtjbGFzcy54LXNsaWRlci1zZWxlY3QtYnV0dG9uLWFjdGl2ZWRdPVwiZW5kVmlzaWJsZSgpXCJcclxuICAgICAgICAgIFtjbGFzcy54LXNsaWRlci1zZWxlY3QtY3VzdG9tLWJ1dHRvbl09XCJjdXN0b21CdXR0b24oKVwiXHJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJ0b3BcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIiFzaG93VG9vbHRpcCgpXCJcclxuICAgICAgICAgIFtjb250ZW50XT1cInRvb2x0aXBFbmRUcGxcIlxyXG4gICAgICAgICAgWyh2aXNpYmxlKV09XCJlbmRWaXNpYmxlXCJcclxuICAgICAgICAgIFttYW51YWxdPVwiZW5kTWFudWFsKClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJjdXN0b21CdXR0b24oKVwiPnt7IGN1c3RvbUJ1dHRvbigpIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICN0b29sdGlwRW5kVHBsPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cInRvb2x0aXBDdXN0b20oKTsgY29udGV4dDogeyAkdmFsdWU6IGVuZERpc3BsYXlWYWx1ZSgpIH1cIj57e1xyXG4gICAgICAgICAgICBlbmREaXNwbGF5VmFsdWUoKVxyXG4gICAgICAgICAgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
367
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9zbGlkZXItc2VsZWN0L3NsaWRlci1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvc2xpZGVyLXNlbGVjdC9zbGlkZXItc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFHVixXQUFXLEVBQ1gsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsbUJBQW1CLEVBQXFCLE1BQU0sMEJBQTBCLENBQUM7QUFDekcsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFtQixTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9B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Z0I7OzJGQVFQLHNCQUFzQjtrQkFuQmxDLFNBQVM7K0JBQ0UsR0FBRyxtQkFBbUIsRUFBRSxjQUN0QixJQUFJLFdBQ1A7d0JBQ1AsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxnQkFBZ0I7cUJBQ2pCLGlCQUdjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLHdCQUF3QixDQUFDOzhCQVFBLFdBQVc7c0JBQTdELFdBQVc7dUJBQUMsZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICdAbmctbmVzdC91aS90b29sdGlwJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgT25EZXN0cm95LFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgaW5qZWN0LFxyXG4gIHNpZ25hbCxcclxuICB2aWV3Q2hpbGQsXHJcbiAgdmlld0NoaWxkcmVuLFxyXG4gIGNvbXB1dGVkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhTbGlkZXJTZWxlY3RQcm9wZXJ0eSwgWFNsaWRlclNlbGVjdFByZWZpeCwgWFNsaWRlclNlbGVjdE1hcmsgfSBmcm9tICcuL3NsaWRlci1zZWxlY3QucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNFbXB0eSwgWElzVW5kZWZpbmVkLCBYUmVzaXplLCBYUmVzaXplT2JzZXJ2ZXIsIFhJc051bWJlciwgWElzQXJyYXksIFhJc051bGwgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgRHJhZ0Ryb3BNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5pbXBvcnQgeyBOZ0NsYXNzLCBOZ1N0eWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFhEcmFnRGlyZWN0aXZlIH0gZnJvbSAnQG5nLW5lc3QvdWkvZHJhZyc7XHJcbmltcG9ydCB7IFhPdXRsZXREaXJlY3RpdmUgfSBmcm9tICdAbmctbmVzdC91aS9vdXRsZXQnO1xyXG5pbXBvcnQgdHlwZSB7IENka0RyYWdNb3ZlLCBDZGtEcmFnU3RhcnQsIENka0RyYWdFbmQgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYU2xpZGVyU2VsZWN0UHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBOZ0NsYXNzLFxyXG4gICAgTmdTdHlsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIERyYWdEcm9wTW9kdWxlLFxyXG4gICAgWFRvb2x0aXBEaXJlY3RpdmUsXHJcbiAgICBYRHJhZ0RpcmVjdGl2ZSxcclxuICAgIFhPdXRsZXREaXJlY3RpdmVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zbGlkZXItc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zbGlkZXItc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtYVmFsdWVBY2Nlc3NvcihYU2xpZGVyU2VsZWN0Q29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhTbGlkZXJTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBYU2xpZGVyU2VsZWN0UHJvcGVydHkgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIHNsaWRlclNlbGVjdCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ3NsaWRlclNlbGVjdCcpO1xyXG4gIGRyYWdTdGFydFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ2RyYWdTdGFydFJlZicpO1xyXG4gIGRyYWdFbmRSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdkcmFnRW5kUmVmJyk7XHJcbiAgcmFpbFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ3JhaWxSZWYnKTtcclxuICBwcm9jZXNzUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PigncHJvY2Vzc1JlZicpO1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MueC1zbGlkZXItc2VsZWN0LXZlcnRpY2FsJykgZ2V0IGdldFZlcnRpY2FsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudmVydGljYWwoKTtcclxuICB9XHJcbiAgdG9vbHRpcHMgPSB2aWV3Q2hpbGRyZW4oWFRvb2x0aXBEaXJlY3RpdmUpO1xyXG4gIHRvb2x0aXBTdGFydCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGlmICh0aGlzLnRvb2x0aXBzKCkubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy50b29sdGlwcygpIVswXTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH0pO1xyXG4gIHRvb2x0aXBFbmQgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBpZiAodGhpcy50b29sdGlwcygpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcHMoKSFbMV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9KTtcclxuXHJcbiAgb3ZlcnJpZGUgdmFsdWUgPSBzaWduYWw8bnVtYmVyIHwgbnVtYmVyW10+KDApO1xyXG4gIHN0YXJ0aW5nID0gc2lnbmFsKGZhbHNlKTtcclxuXHJcbiAgc3RhcnRPZmZzZXQgPSBzaWduYWwoMCk7XHJcbiAgc3RhcnRWaXNpYmxlID0gc2lnbmFsKGZhbHNlKTtcclxuICBzdGFydE1hbnVhbCA9IHNpZ25hbChmYWxzZSk7XHJcbiAgc3RhcnQgPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XHJcbiAgc3RhcnREaXNwbGF5VmFsdWUgPSBzaWduYWwoJzAnKTtcclxuICBzaG93U3RhcnRUb29sdGlwID0gc2lnbmFsKHRydWUpO1xyXG5cclxuICBlbmRPZmZzZXQgPSBzaWduYWwoMCk7XHJcbiAgZW5kVmlzaWJsZSA9IHNpZ25hbChmYWxzZSk7XHJcbiAgZW5kTWFudWFsID0gc2lnbmFsKGZhbHNlKTtcclxuICBlbmQgPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XHJcbiAgZW5kRGlzcGxheVZhbHVlID0gc2lnbmFsKCcwJyk7XHJcbiAgc2hvd0VuZFRvb2x0aXAgPSBzaWduYWwodHJ1ZSk7XHJcblxyXG4gIG1hcmtMaXN0ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgaWYgKCF0aGlzLm1hcmtzKCkpIHJldHVybiBbXTtcclxuICAgIGNvbnN0IG1hcmtzOiBYU2xpZGVyU2VsZWN0TWFya1tdID0gW107XHJcbiAgICBmb3IgKGxldCBtYXJrIG9mIHRoaXMubWFya3MoKSkge1xyXG4gICAgICBjb25zdCBtazogWFNsaWRlclNlbGVjdE1hcmsgPSB7XHJcbiAgICAgICAgdmFsdWU6IG1hcmsudmFsdWUsXHJcbiAgICAgICAgbGFiZWw6IG1hcmsubGFiZWwsXHJcbiAgICAgICAgc3R5bGU6IHsgLi4ubWFyay5zdHlsZSB9XHJcbiAgICAgIH07XHJcbiAgICAgIG1rLm9mZnNldCA9IHRoaXMuZ2V0T2Zmc2V0KG1hcmsudmFsdWUpO1xyXG5cclxuICAgICAgaWYgKHRoaXMucmV2ZXJzZSgpKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudmVydGljYWwoKSkge1xyXG4gICAgICAgICAgbWsuc3R5bGUhWyd0b3AnXSA9IGAke21rLm9mZnNldH0lYDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbWsuc3R5bGUhWydyaWdodCddID0gYCR7bWsub2Zmc2V0fSVgO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy52ZXJ0aWNhbCgpKSB7XHJcbiAgICAgICAgICBtay5zdHlsZSFbJ2JvdHRvbSddID0gYCR7bWsub2Zmc2V0fSVgO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBtay5zdHlsZSFbJ2xlZnQnXSA9IGAke21rLm9mZnNldH0lYDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgbWFya3MucHVzaChtayk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbWFya3M7XHJcbiAgfSk7XHJcblxyXG4gIHByaXZhdGUgdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyITogWFJlc2l6ZU9ic2VydmVyO1xyXG4gIGlzTnVtYmVyID0gY29tcHV0ZWQoKCkgPT4gWElzTnVtYmVyKHRoaXMudmFsdWUoKSkgJiYgIVhJc0FycmF5KHRoaXMudmFsdWUoKSkpO1xyXG4gIGlzQXJyYXkgPSBjb21wdXRlZCgoKSA9PiBYSXNBcnJheSh0aGlzLnZhbHVlKCkpKTtcclxuXHJcbiAgY2xhc3NNYXAgPSBjb21wdXRlZCgoKSA9PiAoe1xyXG4gICAgW2B4LWp1c3RpZnktJHt0aGlzLmp1c3RpZnkoKX1gXTogISF0aGlzLmp1c3RpZnkoKSxcclxuICAgIFtgeC1hbGlnbi0ke3RoaXMuYWxpZ24oKX1gXTogISF0aGlzLmFsaWduKCksXHJcbiAgICBbYHgtZGlyZWN0aW9uLSR7dGhpcy5kaXJlY3Rpb24oKX1gXTogISF0aGlzLmRpcmVjdGlvbigpXHJcbiAgfSkpO1xyXG4gIGxhYmVsTWFwU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gKHtcclxuICAgIFtgeC10ZXh0LWFsaWduLSR7dGhpcy5sYWJlbEFsaWduKCl9YF06ICEhdGhpcy5sYWJlbEFsaWduKClcclxuICB9KSk7XHJcblxyXG4gIHByZWNpc2lvblNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGNvbnN0IHByZWNpc2lvbiA9IHRoaXMucHJlY2lzaW9uKCk7XHJcbiAgICBpZiAoWElzVW5kZWZpbmVkKHByZWNpc2lvbikgfHwgIVhJc0VtcHR5KHRoaXMuc3RlcCgpKSkge1xyXG4gICAgICBsZXQgc3RlcFN0ciA9IFN0cmluZyh0aGlzLnN0ZXAoKSk7XHJcbiAgICAgIGxldCBpbmRleHBvaW50ID0gc3RlcFN0ci5pbmRleE9mKCcuJyk7XHJcbiAgICAgIGlmIChpbmRleHBvaW50ID09PSAtMSkge1xyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBzdGVwU3RyLmxlbmd0aCAtIChpbmRleHBvaW50ICsgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBwcmVjaXNpb247XHJcbiAgfSk7XHJcblxyXG4gIG92ZXJyaWRlIHJlcXVpcmVkSXNFbXB0eSA9IGNvbXB1dGVkKFxyXG4gICAgKCkgPT4gdGhpcy52YWxpZGF0b3JDb21wdXRlZCgpICYmIHRoaXMucmVxdWlyZWRDb21wdXRlZCgpICYmIChYSXNFbXB0eSh0aGlzLnZhbHVlKCkpIHx8IHRoaXMudmFsdWUoKSA9PT0gMClcclxuICApO1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIgfCBudW1iZXJbXSkge1xyXG4gICAgaWYgKHRoaXMuc3RhcnRpbmcoKSkgcmV0dXJuO1xyXG4gICAgaWYgKFhJc051bGwodmFsdWUpIHx8IFhJc1VuZGVmaW5lZCh2YWx1ZSkpIHtcclxuICAgICAgaWYgKHRoaXMucmFuZ2UoKSkge1xyXG4gICAgICAgIHZhbHVlID0gW3RoaXMubWluKCksIHRoaXMubWluKCldO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHZhbHVlID0gdGhpcy5taW4oKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy52YWx1ZS5zZXQodmFsdWUpO1xyXG4gICAgdGhpcy5zZXRMZWZ0KCk7XHJcbiAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xyXG4gIG92ZXJyaWRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgWFJlc2l6ZSh0aGlzLnNsaWRlclNlbGVjdCgpLm5hdGl2ZUVsZW1lbnQpXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgzMCksIHRha2VVbnRpbCh0aGlzLnVuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0geC5yZXNpemVPYnNlcnZlcjtcclxuICAgICAgICB0aGlzLnNldExlZnQoKTtcclxuICAgICAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy51blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy51blN1YmplY3QuY29tcGxldGUoKTtcclxuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZSgpIHtcclxuICAgIGNvbnN0IGdldFZhbCA9IChvZmZzZXQ6IG51bWJlcikgPT4ge1xyXG4gICAgICByZXR1cm4gcGFyc2VGbG9hdChcclxuICAgICAgICBOdW1iZXIoKCh0aGlzLm1heCgpIC0gdGhpcy5taW4oKSkgKiBvZmZzZXQpIC8gMTAwICsgdGhpcy5taW4oKSkudG9GaXhlZCh0aGlzLnByZWNpc2lvblNpZ25hbCgpKVxyXG4gICAgICApO1xyXG4gICAgfTtcclxuICAgIGNvbnN0IHN0YXJ0VmFsID0gZ2V0VmFsKHRoaXMuc3RhcnRPZmZzZXQoKSk7XHJcbiAgICBpZiAodGhpcy5pc051bWJlcigpKSB7XHJcbiAgICAgIHRoaXMudmFsdWUuc2V0KHN0YXJ0VmFsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGVuZFZhbCA9IGdldFZhbCh0aGlzLmVuZE9mZnNldCgpKTtcclxuICAgICAgaWYgKGVuZFZhbCA8IHN0YXJ0VmFsKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZS5zZXQoW2VuZFZhbCwgc3RhcnRWYWxdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnZhbHVlLnNldChbc3RhcnRWYWwsIGVuZFZhbF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZXREaXNwbGF5VmFsdWUoKTtcclxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUoKSk7XHJcbiAgfVxyXG5cclxuICBnZXRPZmZzZXQodmFsOiBudW1iZXIpIHtcclxuICAgIHJldHVybiBNYXRoLmFicyhcclxuICAgICAgTWF0aC5yb3VuZCgoKHZhbCArICh0aGlzLnJldmVyc2UoKSA/IC10aGlzLm1pbigpIDogdGhpcy5taW4oKSkpICogMTAwKSAvICh0aGlzLm1heCgpIC0gdGhpcy5taW4oKSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2V0TGVmdCgpIHtcclxuICAgIGxldCBzdGFydFZhbCA9IDAsXHJcbiAgICAgIGVuZFZhbCA9IDA7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudmFsdWUoKTtcclxuICAgIGlmICh0aGlzLmlzTnVtYmVyKCkpIHtcclxuICAgICAgc3RhcnRWYWwgPSB2YWx1ZSBhcyBudW1iZXI7XHJcbiAgICB9IGVsc2UgaWYgKFhJc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAxKSB7XHJcbiAgICAgIHN0YXJ0VmFsID0gdmFsdWVbMF07XHJcbiAgICAgIGVuZFZhbCA9IHZhbHVlWzFdO1xyXG4gICAgICB0aGlzLmVuZE9mZnNldC5zZXQodGhpcy5nZXRPZmZzZXQoZW5kVmFsKSk7XHJcbiAgICAgIHRoaXMuZW5kLnNldCh0aGlzLmVuZE9mZnNldCgpKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnN0YXJ0T2Zmc2V0LnNldCh0aGlzLmdldE9mZnNldChzdGFydFZhbCkpO1xyXG4gICAgdGhpcy5zdGFydC5zZXQodGhpcy5zdGFydE9mZnNldCgpKTtcclxuXHJcbiAgICB0aGlzLnNldERyYWcoKTtcclxuICB9XHJcblxyXG4gIHNldERpc3BsYXlWYWx1ZSgpIHtcclxuICAgIGNvbnN0IGRpc3BsYXlWYWwgPSAodmFsOiBudW1iZXIpID0+IHtcclxuICAgICAgcmV0dXJuIE51bWJlcih2YWwpLnRvRml4ZWQodGhpcy5wcmVjaXNpb25TaWduYWwoKSk7XHJcbiAgICB9O1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlKCk7XHJcbiAgICBpZiAodGhpcy5pc051bWJlcigpKSB7XHJcbiAgICAgIHRoaXMuc3RhcnREaXNwbGF5VmFsdWUuc2V0KGRpc3BsYXlWYWwodmFsdWUgYXMgbnVtYmVyKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoWElzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICBpZiAodGhpcy5zdGFydE9mZnNldCgpID4gdGhpcy5lbmRPZmZzZXQoKSkge1xyXG4gICAgICAgICAgdGhpcy5zdGFydERpc3BsYXlWYWx1ZS5zZXQoZGlzcGxheVZhbCh2YWx1ZVsxXSkpO1xyXG4gICAgICAgICAgdGhpcy5lbmREaXNwbGF5VmFsdWUuc2V0KGRpc3BsYXlWYWwodmFsdWVbMF0pKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5zdGFydERpc3BsYXlWYWx1ZS5zZXQoZGlzcGxheVZhbCh2YWx1ZVswXSkpO1xyXG4gICAgICAgICAgdGhpcy5lbmREaXNwbGF5VmFsdWUuc2V0KGRpc3BsYXlWYWwodmFsdWVbMV0pKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXJ0ZWQoZHJhZzogQ2RrRHJhZ1N0YXJ0LCB0eXBlOiAnc3RhcnQnIHwgJ2VuZCcgfCAnYm90aCcgPSAnc3RhcnQnKSB7XHJcbiAgICB0aGlzLnN0YXJ0aW5nLnNldCh0cnVlKTtcclxuICAgIGlmIChbJ3N0YXJ0JywgJ2JvdGgnXS5pbmNsdWRlcyh0eXBlKSkge1xyXG4gICAgICBjb25zdCBzdGFydCA9IHRoaXMuc3RhcnRPZmZzZXQoKTtcclxuICAgICAgdGhpcy5zdGFydC5zZXQoc3RhcnQpO1xyXG4gICAgICBpZiAodGhpcy5zaG93U3RhcnRUb29sdGlwKCkpIHtcclxuICAgICAgICB0aGlzLnN0YXJ0TWFudWFsLnNldCh0cnVlKTtcclxuICAgICAgICB0aGlzLnN0YXJ0VmlzaWJsZS5zZXQodHJ1ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChbJ2VuZCcsICdib3RoJ10uaW5jbHVkZXModHlwZSkpIHtcclxuICAgICAgY29uc3QgZW5kID0gdGhpcy5lbmRPZmZzZXQoKTtcclxuICAgICAgdGhpcy5lbmQuc2V0KGVuZCk7XHJcbiAgICAgIGlmICh0aGlzLnNob3dFbmRUb29sdGlwKCkpIHtcclxuICAgICAgICB0aGlzLmVuZE1hbnVhbC5zZXQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5lbmRWaXNpYmxlLnNldCh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbGlkYXRvcigpO1xyXG4gICAgdGhpcy5kcmFnU3RhcnRFbWl0LmVtaXQoZHJhZyk7XHJcbiAgfVxyXG5cclxuICBtb3ZlZChkcmFnOiBDZGtEcmFnTW92ZSwgdHlwZTogJ3N0YXJ0JyB8ICdlbmQnIHwgJ2JvdGgnID0gJ3N0YXJ0Jykge1xyXG4gICAgbGV0IHRyYW5zZm9ybSA9IGRyYWcuc291cmNlLmdldEZyZWVEcmFnUG9zaXRpb24oKTtcclxuICAgIHRoaXMuc2V0RHJhZyh0aGlzLnZlcnRpY2FsKCkgPyB0cmFuc2Zvcm0ueSA6IHRyYW5zZm9ybS54LCB0eXBlKTtcclxuICAgIGRyYWcuc291cmNlLnJlc2V0KCk7XHJcbiAgICBpZiAoWydzdGFydCcsICdib3RoJ10uaW5jbHVkZXModHlwZSkgJiYgdGhpcy5zaG93U3RhcnRUb29sdGlwKCkpIHtcclxuICAgICAgdGhpcy50b29sdGlwU3RhcnQoKT8udXBkYXRlUG9ydGFsKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoWydlbmQnLCAnYm90aCddLmluY2x1ZGVzKHR5cGUpICYmIHRoaXMuc2hvd0VuZFRvb2x0aXAoKSkge1xyXG4gICAgICB0aGlzLnRvb2x0aXBFbmQoKT8udXBkYXRlUG9ydGFsKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoYW5nZSgpO1xyXG4gICAgdGhpcy5kcmFnTW92ZUVtaXQuZW1pdChkcmFnKTtcclxuICB9XHJcblxyXG4gIGVuZGVkKGRyYWc6IENka0RyYWdFbmQsIHR5cGU6ICdzdGFydCcgfCAnZW5kJyB8ICdib3RoJyA9ICdzdGFydCcpIHtcclxuICAgIGlmIChbJ3N0YXJ0JywgJ2JvdGgnXS5pbmNsdWRlcyh0eXBlKSkge1xyXG4gICAgICBpZiAodGhpcy5zaG93U3RhcnRUb29sdGlwKCkpIHtcclxuICAgICAgICB0aGlzLnN0YXJ0TWFudWFsLnNldChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5zdGFydFZpc2libGUuc2V0KGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKFsnZW5kJywgJ2JvdGgnXS5pbmNsdWRlcyh0eXBlKSkge1xyXG4gICAgICBpZiAodGhpcy5zaG93RW5kVG9vbHRpcCgpKSB7XHJcbiAgICAgICAgdGhpcy5lbmRNYW51YWwuc2V0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLmVuZFZpc2libGUuc2V0KGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zdGFydGluZy5zZXQoZmFsc2UpO1xyXG4gICAgdGhpcy5kcmFnRW5kRW1pdC5lbWl0KGRyYWcpO1xyXG4gIH1cclxuXHJcbiAgc2V0RHJhZyhkaXN0YW5jZTogbnVtYmVyID0gMCwgdHlwZTogJ3N0YXJ0JyB8ICdlbmQnIHwgJ2JvdGgnID0gJ2JvdGgnKSB7XHJcbiAgICBpZiAodHlwZW9mIHRoaXMucmFpbFJlZigpLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0ICE9PSAnZnVuY3Rpb24nKSByZXR1cm47XHJcbiAgICBsZXQgcmFpbEJveCA9IHRoaXMucmFpbFJlZigpLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBsZXQgcmFpbEJveExlbmd0aCA9IHRoaXMudmVydGljYWwoKSA/IHJhaWxCb3guaGVpZ2h0IDogcmFpbEJveC53aWR0aDtcclxuICAgIGxldCBzdGVwTGVuZ3RoID0gcmFpbEJveExlbmd0aCAvICgodGhpcy5tYXgoKSAtIHRoaXMubWluKCkpIC8gdGhpcy5zdGVwKCkpO1xyXG4gICAgbGV0IG9mZnNldCA9IE1hdGguYWJzKGRpc3RhbmNlICUgc3RlcExlbmd0aCk7XHJcbiAgICBsZXQgZGlzID1cclxuICAgICAgb2Zmc2V0IDwgc3RlcExlbmd0aCAvIDJcclxuICAgICAgICA/IGRpc3RhbmNlID4gMFxyXG4gICAgICAgICAgPyBkaXN0YW5jZSAtIG9mZnNldFxyXG4gICAgICAgICAgOiBkaXN0YW5jZSArIG9mZnNldFxyXG4gICAgICAgIDogZGlzdGFuY2UgPiAwXHJcbiAgICAgICAgICA/IGRpc3RhbmNlICsgc3RlcExlbmd0aCAtIG9mZnNldFxyXG4gICAgICAgICAgOiBkaXN0YW5jZSAtIHN0ZXBMZW5ndGggKyBvZmZzZXQ7XHJcblxyXG4gICAgY29uc3Qgc2V0T2Zmc2V0ID0gKGQ6IG51bWJlcikgPT4ge1xyXG4gICAgICBsZXQgeDEgPSAoZCAvIDEwMCkgKiByYWlsQm94TGVuZ3RoO1xyXG4gICAgICBpZiAodGhpcy52ZXJ0aWNhbCgpKSB7XHJcbiAgICAgICAgeDEgKz0gdGhpcy5yZXZlcnNlKCkgPyBkaXMgOiAtZGlzO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHgxICs9IHRoaXMucmV2ZXJzZSgpID8gLWRpcyA6IGRpcztcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gTWF0aC5yb3VuZCgoeDEgLyByYWlsQm94TGVuZ3RoKSAqIDEwMCk7XHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0eXBlID09PSAnYm90aCcpIHtcclxuICAgICAgdGhpcy5zdGFydE9mZnNldC5zZXQoc2V0T2Zmc2V0KHRoaXMuc3RhcnQoKSEpKTtcclxuICAgICAgdGhpcy5lbmRPZmZzZXQuc2V0KHNldE9mZnNldCh0aGlzLmVuZCgpISkpO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnc3RhcnQnKSB7XHJcbiAgICAgIHRoaXMuc3RhcnRPZmZzZXQuc2V0KHNldE9mZnNldCh0aGlzLnN0YXJ0KCkhKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdlbmQnKSB7XHJcbiAgICAgIHRoaXMuZW5kT2Zmc2V0LnNldChzZXRPZmZzZXQodGhpcy5lbmQoKSEpKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldERyYWdTdHlsZXMoKTtcclxuICB9XHJcblxyXG4gIHNldERyYWdTdHlsZXMoKSB7XHJcbiAgICBpZiAodGhpcy52ZXJ0aWNhbCgpKSB7XHJcbiAgICAgIGlmICh0aGlzLmlzQXJyYXkoKSkge1xyXG4gICAgICAgIGNvbnN0IHdkID0gTWF0aC5hYnModGhpcy5lbmRPZmZzZXQoKSAtIHRoaXMuc3RhcnRPZmZzZXQoKSk7XHJcbiAgICAgICAgY29uc3QgbHQgPSB0aGlzLmVuZE9mZnNldCgpID4gdGhpcy5zdGFydE9mZnNldCgpID8gdGhpcy5zdGFydE9mZnNldCgpIDogdGhpcy5lbmRPZmZzZXQoKTtcclxuICAgICAgICBpZiAodGhpcy5yZXZlcnNlKCkpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnU3RhcnRSZWYoKS5uYXRpdmVFbGVtZW50LCAndG9wJywgYCR7dGhpcy5zdGFydE9mZnNldCgpfSVgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnRW5kUmVmKCkubmF0aXZlRWxlbWVudCwgJ3RvcCcsIGAke3RoaXMuZW5kT2Zmc2V0KCl9JWApO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByb2Nlc3NSZWYoKS5uYXRpdmVFbGVtZW50LCAndG9wJywgYCR7bHR9JWApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ1N0YXJ0UmVmKCkubmF0aXZlRWxlbWVudCwgJ2JvdHRvbScsIGAke3RoaXMuc3RhcnRPZmZzZXQoKX0lYCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ0VuZFJlZigpLm5hdGl2ZUVsZW1lbnQsICdib3R0b20nLCBgJHt0aGlzLmVuZE9mZnNldCgpfSVgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcm9jZXNzUmVmKCkubmF0aXZlRWxlbWVudCwgJ2JvdHRvbScsIGAke2x0fSVgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByb2Nlc3NSZWYoKS5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7d2R9JWApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLnJldmVyc2UoKSkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmRyYWdTdGFydFJlZigpLm5hdGl2ZUVsZW1lbnQsICdib3R0b20nKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnU3RhcnRSZWYoKS5uYXRpdmVFbGVtZW50LCAndG9wJywgYCR7dGhpcy5zdGFydE9mZnNldCgpfSVgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmRyYWdTdGFydFJlZigpLm5hdGl2ZUVsZW1lbnQsICd0b3AnKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnU3RhcnRSZWYoKS5uYXRpdmVFbGVtZW50LCAnYm90dG9tJywgYCR7dGhpcy5zdGFydE9mZnNldCgpfSVgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByb2Nlc3NSZWYoKS5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgYCR7dGhpcy5zdGFydE9mZnNldCgpfSVgKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMuaXNBcnJheSgpKSB7XHJcbiAgICAgICAgY29uc3Qgd2QgPSBNYXRoLmFicyh0aGlzLmVuZE9mZnNldCgpIC0gdGhpcy5zdGFydE9mZnNldCgpKTtcclxuICAgICAgICBjb25zdCBsdCA9IHRoaXMuZW5kT2Zmc2V0KCkgPiB0aGlzLnN0YXJ0T2Zmc2V0KCkgPyB0aGlzLnN0YXJ0T2Zmc2V0KCkgOiB0aGlzLmVuZE9mZnNldCgpO1xyXG4gICAgICAgIGlmICh0aGlzLnJldmVyc2UoKSkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRyYWdTdGFydFJlZigpLm5hdGl2ZUVsZW1lbnQsICdyaWdodCcsIGAke3RoaXMuc3RhcnRPZmZzZXQoKX0lYCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ0VuZFJlZigpLm5hdGl2ZUVsZW1lbnQsICdyaWdodCcsIGAke3RoaXMuZW5kT2Zmc2V0KCl9JWApO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnByb2Nlc3NSZWYoKS5uYXRpdmVFbGVtZW50LCAncmlnaHQnLCBgJHtsdH0lYCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnU3RhcnRSZWYoKS5uYXRpdmVFbGVtZW50LCAnbGVmdCcsIGAke3RoaXMuc3RhcnRPZmZzZXQoKX0lYCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZHJhZ0VuZFJlZigpLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7dGhpcy5lbmRPZmZzZXQoKX0lYCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJvY2Vzc1JlZigpLm5hdGl2ZUVsZW1lbnQsICdsZWZ0JywgYCR7bHR9JWApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucHJvY2Vzc1JlZigpLm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGAke3dkfSVgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5yZXZlcnNlKCkpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5kcmFnU3RhcnRSZWYoKS5uYXRpdmVFbGVtZW50LCAnbGVmdCcpO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRyYWdTdGFydFJlZigpLm5hdGl2ZUVsZW1lbnQsICdyaWdodCcsIGAke3RoaXMuc3RhcnRPZmZzZXQoKX0lYCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5kcmFnU3RhcnRSZWYoKS5uYXRpdmVFbGVtZW50LCAncmlnaHQnKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5kcmFnU3RhcnRSZWYoKS5uYXRpdmVFbGVtZW50LCAnbGVmdCcsIGAke3RoaXMuc3RhcnRPZmZzZXQoKX0lYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5wcm9jZXNzUmVmKCkubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYCR7dGhpcy5zdGFydE9mZnNldCgpfSVgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI3NsaWRlclNlbGVjdFxyXG4gIGNsYXNzPVwieC1zbGlkZXItc2VsZWN0XCJcclxuICBbY2xhc3MueC1mbGV4XT1cImp1c3RpZnkoKSB8fCBhbGlnbigpIHx8IGRpcmVjdGlvbigpXCJcclxuICBbY2xhc3MueC1kaXNhYmxlZF09XCJkaXNhYmxlZENvbXB1dGVkKClcIlxyXG4gIFtjbGFzcy54LXJlcXVpcmVkXT1cInJlcXVpcmVkSXNFbXB0eSgpXCJcclxuICBbY2xhc3MueC1pbnZhbGlkXT1cImludmFsaWQoKVwiXHJcbiAgW2NsYXNzLngtc2xpZGVyLXNlbGVjdC1yZXZlcnNlXT1cInJldmVyc2UoKVwiXHJcbiAgW2NsYXNzLngtc2xpZGVyLXNlbGVjdC1yYW5nZV09XCJyYW5nZSgpXCJcclxuICBbbmdDbGFzc109XCJjbGFzc01hcCgpXCJcclxuPlxyXG4gIEBpZiAobGFiZWwoKSkge1xyXG4gICAgPGxhYmVsXHJcbiAgICAgIFtjbGFzcy54LXNsaWRlci1zZWxlY3QtbGFiZWwtcmVxdWlyZWRdPVwicmVxdWlyZWRDb21wdXRlZCgpXCJcclxuICAgICAgW3N0eWxlLndpZHRoXT1cImxhYmVsV2lkdGgoKVwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImxhYmVsTWFwU2lnbmFsKClcIlxyXG4gICAgICA+e3sgbGFiZWwoKSB9fTwvbGFiZWxcclxuICAgID5cclxuICB9XHJcbiAgPGRpdiBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC1pbm5lclwiICNpbm5lclJlZj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtcmFpbFwiICNyYWlsUmVmPlxyXG4gICAgICA8ZGl2PjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LWRyYWdzXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtdHJhY2tcIiAjdHJhY2tSZWY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgI3Byb2Nlc3NSZWZcclxuICAgICAgICAgIGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LXByb2Nlc3NcIlxyXG4gICAgICAgICAgY2RrRHJhZ1xyXG4gICAgICAgICAgW2Nka0RyYWdMb2NrQXhpc109XCJ2ZXJ0aWNhbCgpID8gJ3knIDogJ3gnXCJcclxuICAgICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiZGlzYWJsZWRDb21wdXRlZCgpIHx8ICFyYW5nZSgpXCJcclxuICAgICAgICAgIFtjZGtEcmFnQm91bmRhcnldPVwidHJhY2tSZWZcIlxyXG4gICAgICAgICAgKGNka0RyYWdTdGFydGVkKT1cInN0YXJ0ZWQoJGV2ZW50LCAnYm90aCcpXCJcclxuICAgICAgICAgIChjZGtEcmFnRW5kZWQpPVwiZW5kZWQoJGV2ZW50LCAnYm90aCcpXCJcclxuICAgICAgICAgIChjZGtEcmFnTW92ZWQpPVwibW92ZWQoJGV2ZW50LCAnYm90aCcpXCJcclxuICAgICAgICA+PC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LW1hcmtzXCI+XHJcbiAgICAgICAgQGZvciAobWFyayBvZiBtYXJrTGlzdCgpOyB0cmFjayBtYXJrLmxhYmVsKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LW1hcmtcIiBbbmdTdHlsZV09XCJtYXJrLnN0eWxlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LW1hcmstbGFiZWxcIj57eyBtYXJrLmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICNkcmFnU3RhcnRSZWZcclxuICAgICAgICBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC1kcmFnXCJcclxuICAgICAgICBjZGtEcmFnXHJcbiAgICAgICAgW2Nka0RyYWdMb2NrQXhpc109XCJ2ZXJ0aWNhbCgpID8gJ3knIDogJ3gnXCJcclxuICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cImRpc2FibGVkQ29tcHV0ZWQoKVwiXHJcbiAgICAgICAgW2Nka0RyYWdCb3VuZGFyeV09XCJpbm5lclJlZlwiXHJcbiAgICAgICAgKGNka0RyYWdTdGFydGVkKT1cInN0YXJ0ZWQoJGV2ZW50LCAnc3RhcnQnKVwiXHJcbiAgICAgICAgKGNka0RyYWdFbmRlZCk9XCJlbmRlZCgkZXZlbnQsICdzdGFydCcpXCJcclxuICAgICAgICAoY2RrRHJhZ01vdmVkKT1cIm1vdmVkKCRldmVudCwgJ3N0YXJ0JylcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgI3Rvb2x0aXBTdGFydFxyXG4gICAgICAgICAgeC10b29sdGlwXHJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgY2xhc3M9XCJ4LXNsaWRlci1zZWxlY3QtYnV0dG9uXCJcclxuICAgICAgICAgIFtjbGFzcy54LXNsaWRlci1zZWxlY3QtYnV0dG9uLWFjdGl2ZWRdPVwic3RhcnRWaXNpYmxlKClcIlxyXG4gICAgICAgICAgW2NsYXNzLngtc2xpZGVyLXNlbGVjdC1jdXN0b20tYnV0dG9uXT1cImN1c3RvbUJ1dHRvbigpXCJcclxuICAgICAgICAgIHBsYWNlbWVudD1cInRvcFwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNob3dUb29sdGlwKClcIlxyXG4gICAgICAgICAgW2NvbnRlbnRdPVwidG9vbHRpcFN0YXJ0VHBsXCJcclxuICAgICAgICAgIFsodmlzaWJsZSldPVwic3RhcnRWaXNpYmxlXCJcclxuICAgICAgICAgIFttYW51YWxdPVwic3RhcnRNYW51YWwoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImN1c3RvbUJ1dHRvbigpXCI+e3sgY3VzdG9tQnV0dG9uKCkgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI3Rvb2x0aXBTdGFydFRwbD5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJ0b29sdGlwQ3VzdG9tKCk7IGNvbnRleHQ6IHsgJHZhbHVlOiBzdGFydERpc3BsYXlWYWx1ZSgpIH1cIj57e1xyXG4gICAgICAgICAgICBzdGFydERpc3BsYXlWYWx1ZSgpXHJcbiAgICAgICAgICB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgW2hpZGRlbl09XCIhcmFuZ2UoKVwiXHJcbiAgICAgICAgI2RyYWdFbmRSZWZcclxuICAgICAgICBjbGFzcz1cIngtc2xpZGVyLXNlbGVjdC1kcmFnXCJcclxuICAgICAgICBjZGtEcmFnXHJcbiAgICAgICAgW2Nka0RyYWdMb2NrQXhpc109XCJ2ZXJ0aWNhbCgpID8gJ3knIDogJ3gnXCJcclxuICAgICAgICBbY2RrRHJhZ0Rpc2FibGVkXT1cImRpc2FibGVkQ29tcHV0ZWQoKVwiXHJcbiAgICAgICAgW2Nka0RyYWdCb3VuZGFyeV09XCJpbm5lclJlZlwiXHJcbiAgICAgICAgKGNka0RyYWdTdGFydGVkKT1cInN0YXJ0ZWQoJGV2ZW50LCAnZW5kJylcIlxyXG4gICAgICAgIChjZGtEcmFnRW5kZWQpPVwiZW5kZWQoJGV2ZW50LCAnZW5kJylcIlxyXG4gICAgICAgIChjZGtEcmFnTW92ZWQpPVwibW92ZWQoJGV2ZW50LCAnZW5kJylcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgI3Rvb2x0aXBFbmRcclxuICAgICAgICAgIHgtdG9vbHRpcFxyXG4gICAgICAgICAgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICAgIGNsYXNzPVwieC1zbGlkZXItc2VsZWN0LWJ1dHRvblwiXHJcbiAgICAgICAgICBbY2xhc3MueC1zbGlkZXItc2VsZWN0LWJ1dHRvbi1hY3RpdmVkXT1cImVuZFZpc2libGUoKVwiXHJcbiAgICAgICAgICBbY2xhc3MueC1zbGlkZXItc2VsZWN0LWN1c3RvbS1idXR0b25dPVwiY3VzdG9tQnV0dG9uKClcIlxyXG4gICAgICAgICAgcGxhY2VtZW50PVwidG9wXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCIhc2hvd1Rvb2x0aXAoKVwiXHJcbiAgICAgICAgICBbY29udGVudF09XCJ0b29sdGlwRW5kVHBsXCJcclxuICAgICAgICAgIFsodmlzaWJsZSldPVwiZW5kVmlzaWJsZVwiXHJcbiAgICAgICAgICBbbWFudWFsXT1cImVuZE1hbnVhbCgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiY3VzdG9tQnV0dG9uKClcIj57eyBjdXN0b21CdXR0b24oKSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdG9vbHRpcEVuZFRwbD5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJ0b29sdGlwQ3VzdG9tKCk7IGNvbnRleHQ6IHsgJHZhbHVlOiBlbmREaXNwbGF5VmFsdWUoKSB9XCI+e3tcclxuICAgICAgICAgICAgZW5kRGlzcGxheVZhbHVlKClcclxuICAgICAgICAgIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -202,6 +202,7 @@ class XColorPickerPortalComponent {
202
202
  this.animating.emit(true);
203
203
  }
204
204
  ngOnInit() {
205
+ this.colorConvert();
205
206
  this.destroyRef.onDestroy(() => {
206
207
  this.destroy.set(true);
207
208
  this.unSubject.next();
@@ -218,7 +219,7 @@ class XColorPickerPortalComponent {
218
219
  ngOnChanges(simples) {
219
220
  const { value } = simples;
220
221
  if (XIsChange(value))
221
- this.colorConvert();
222
+ !this.drag() && this.colorConvert();
222
223
  }
223
224
  setPanelValue() {
224
225
  this.setTransform();