barsa-novin-ray-core 1.0.297 → 1.0.299

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.
@@ -47,6 +47,8 @@ export class FormBaseComponent extends BaseComponent {
47
47
  this.headerRemoveContentPadding$ = this._formPanelService.headerRemoveContentPadding$;
48
48
  this._formPanelService.context$.pipe(takeUntil(this._onDestroy$)).subscribe();
49
49
  this._formPanelService.view$.pipe(takeUntil(this._onDestroy$)).subscribe();
50
+ this.landscape$ = this._portalService.landscape$;
51
+ this.standalone$ = this._portalService.standalone$;
50
52
  }
51
53
  get forceClose$() {
52
54
  return this._formPanelService.forceClose$;
@@ -152,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
152
154
  }], formClose: [{
153
155
  type: Output
154
156
  }] } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9hYnN0cmFjdC1jbGFzc2VzL2Zvcm0tYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUdaLHVCQUF1QixFQUV2QixJQUFJLEVBRUosV0FBVyxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0FBV3ZDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBMENoRCxZQUNjLGtCQUFxQyxFQUNyQyxjQUE2QixFQUM3QixPQUFlLEVBQ2YsR0FBZSxFQUNmLGNBQTZCLEVBQ3JCLGlCQUFtQyxFQUMzQyxlQUErQixFQUMvQixJQUF1QjtRQUVqQyxLQUFLLEVBQUUsQ0FBQztRQVRFLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUNyQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQzNDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQWpEYixPQUFFLEdBQUcsUUFBUSxXQUFX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VjtRQUNELE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDUyxZQUFZO1FBQ2xCLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQTRCLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFDTyxhQUFhO1FBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0csQ0FBQzs7OEdBM0tRLGlCQUFpQjtrR0FBakIsaUJBQWlCLGtNQUhoQixFQUFFOzJGQUdILGlCQUFpQjtrQkFMN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUUsRUFBRTtvQkFDWixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7OzBCQWlEUSxJQUFJO3lHQS9DZSxFQUFFO3NCQUF6QixXQUFXO3VCQUFDLFNBQVM7Z0JBQ2IsT0FBTztzQkFBZixLQUFLO2dCQUtJLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIElucHV0LFxuICAgIENvbXBvbmVudCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgRWxlbWVudFJlZixcbiAgICBTZWxmLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIEhvc3RCaW5kaW5nXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHRha2VVbnRpbCwgbWVyZ2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IGdldERldmljZUlzTW9iaWxlLCBnZXRQYXJlbnRIZWlnaHQsIGdldFVuaXF1ZUlkIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEZvcm1QYW5lbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9mb3JtLXBhbmVsLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFyc2FBcGkgfSBmcm9tICcuL2JhcnNhLWFwaSc7XG5pbXBvcnQgeyBGb3JtU2V0dGluZywgRm9ybVZpZXdTZXR0aW5nLCBJSGVhZGVyTGF5b3V0LCBMYXlvdXRTZXR0aW5nLCBNZXRhb2JqZWN0RGF0YU1vZGVsIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgQnJlYWRjcnVtYlNlcnZpY2UsIFBvcnRhbFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDb250cm9sVWlQaXBlIH0gZnJvbSAnLi4vcGlwZXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYm5yYy1mb3JtLWJhc2UnLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtQmFzZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgaWQgPSBgZm9ybV8ke2dldFVuaXF1ZUlkKDQpfWA7XG4gICAgQElucHV0KCkgY29udGV4dDoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIGNvbmZpZzogYW55O1xuICAgICAgICBTZXR0aW5nOiBGb3JtU2V0dGluZztcbiAgICB9O1xuICAgIEBPdXRwdXQoKSBmb3JtQ2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgbGlzdEZpZWxkVWk6IGFueTtcbiAgICBpc1dpemFyZDogYm9vbGVhbjtcbiAgICBwYXJhbWV0ZXJzOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIGlzTW9iaWxlOiBib29sZWFuO1xuXG4gICAgdG9vbGJhclZpc2libGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGhpZGVDbG9zZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaGlkZVRpdGxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBoaWRlUGluJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICB0aXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICB0b29sYmFySXRlbXMkOiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgICB3b3JrZmxvd0J1dHRvbnMkOiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgICBoZWFkZXJMYXlvdXQkOiBPYnNlcnZhYmxlPElIZWFkZXJMYXlvdXQgfCBudWxsPjtcbiAgICBsYXlvdXQ5NCQ6IE9ic2VydmFibGU8YW55PjtcbiAgICBsYXlvdXQ5NDogYW55O1xuICAgIG1heENvbnRlbnRXaWR0aCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBmb3JtV2lkdGgkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgaGVhZGVyRGVzY3JpcHRpb24kOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgaGVhZGVyUmVtb3ZlQ29udGVudFBhZGRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGhlYWRlclN1YnRpdGxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIGF2YXRhciQ6IE9ic2VydmFibGU8YW55PjtcbiAgICB3b3JrZmxvd1BhbmVsVWkkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgdmlldyQ6IE9ic2VydmFibGU8Rm9ybVZpZXdTZXR0aW5nPjtcbiAgICBtbyQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbCB8IG51bGw+O1xuICAgIGlzU2ltcGxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBmaWVsZERpY3QkOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQ+O1xuICAgIG1hc2skOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGlzU2VhcmNoUGFuZWw6IGJvb2xlYW47XG4gICAgaXNNb2RhbDogYm9vbGVhbjtcbiAgICBpc1N1YkZvcm06IGJvb2xlYW47XG4gICAgbW9kZXJuVGFicyQ6IE9ic2VydmFibGU8TGF5b3V0U2V0dGluZ1tdPjtcbiAgICBpc0Zvcm1SZXBvcnQ6IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIF9zdHlsZTogSFRNTFN0eWxlRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2JyZWFkY3J1bWJTZXJ2aWNlOiBCcmVhZGNydW1iU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICBwcm90ZWN0ZWQgX2VsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX2NvbnRyb2xVaVBpcGU6IENvbnRyb2xVaVBpcGUsXG4gICAgICAgIEBTZWxmKCkgcHJvdGVjdGVkIF9mb3JtUGFuZWxTZXJ2aWNlOiBGb3JtUGFuZWxTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuaXNTZWFyY2hQYW5lbCQuc3Vic2NyaWJlKChpc1NlYXJjaFBhbmVsKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzU2VhcmNoUGFuZWwgPSBpc1NlYXJjaFBhbmVsO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5oaWRlQ2xvc2UkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5oaWRlQ2xvc2UkO1xuICAgICAgICB0aGlzLmhpZGVUaXRsZSQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmhpZGVUaXRsZSQ7XG4gICAgICAgIHRoaXMuaGlkZVBpbiQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmhpZGVQaW4kO1xuICAgICAgICB0aGlzLnRvb2xiYXJWaXNpYmxlJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UudG9vbGJhclZpc2libGUkO1xuICAgICAgICB0aGlzLnRpdGxlJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UudGl0bGUkO1xuICAgICAgICB0aGlzLnRvb2xiYXJJdGVtcyQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLnRvb2xiYXJJdGVtcyQ7XG4gICAgICAgIHRoaXMud29ya2Zsb3dCdXR0b25zJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2Uud29ya2Zsb3dCdXR0b25zJDtcbiAgICAgICAgdGhpcy5oZWFkZXJMYXlvdXQkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5oZWFkZXJMYXlvdXQkO1xuICAgICAgICB0aGlzLmxheW91dDk0JCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UubGF5b3V0JDtcbiAgICAgICAgdGhpcy5tYXhDb250ZW50V2lkdGgkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5tYXhDb250ZW50V2lkdGgkO1xuICAgICAgICB0aGlzLmZvcm1XaWR0aCQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmZvcm1XaWR0aCQ7XG4gICAgICAgIHRoaXMuaGVhZGVyU3VidGl0bGUkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5oZWFkZXJTdWJ0aXRsZSQ7XG4gICAgICAgIHRoaXMuYXZhdGFyJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuYXZhdGFyJDtcbiAgICAgICAgdGhpcy53b3JrZmxvd1BhbmVsVWkkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS53b3JrZmxvd1BhbmVsVWkkO1xuICAgICAgICB0aGlzLnZpZXckID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS52aWV3JDtcbiAgICAgICAgdGhpcy5tbyQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLm1vJDtcbiAgICAgICAgdGhpcy5maWVsZERpY3QkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5maWVsZERpY3QkO1xuICAgICAgICB0aGlzLmlzU2ltcGxlJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuaXNTaW1wbGVGb3JtJDtcbiAgICAgICAgdGhpcy5tYXNrJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UubWFzayQ7XG4gICAgICAgIHRoaXMuaGVhZGVyRGVzY3JpcHRpb24kID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5oZWFkZXJEZXNjcmlwdGlvbiQ7XG4gICAgICAgIHRoaXMuaGVhZGVyUmVtb3ZlQ29udGVudFBhZGRpbmckID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5oZWFkZXJSZW1vdmVDb250ZW50UGFkZGluZyQ7XG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuY29udGV4dCQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLnZpZXckLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgZ2V0IGZvcmNlQ2xvc2UkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5mb3JjZUNsb3NlJDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5fZm9ybVBhbmVsU2VydmljZS5jb250ZXh0ID0gdGhpcy5jb250ZXh0O1xuICAgICAgICB0aGlzLmlzTW9iaWxlID0gZ2V0RGV2aWNlSXNNb2JpbGUoKTtcbiAgICAgICAgdGhpcy5saXN0RmllbGRVaSA9IHRoaXMuY29udGV4dC5fZGljdEZpZWxkVWk7XG5cbiAgICAgICAgdGhpcy5pc01vZGFsID0gdGhpcy5jb250ZXh0LlNldHRpbmc/LklzTW9kYWw7XG4gICAgICAgIHRoaXMuaXNTdWJGb3JtID0gdGhpcy5jb250ZXh0LklzU3ViRm9ybTtcbiAgICAgICAgdGhpcy5pc0Zvcm1SZXBvcnQgPSB0aGlzLmNvbnRleHQuSXNGb3JtUmVwb3J0O1xuICAgICAgICB0aGlzLl9zZXRQYXJhbXRlcnMoKTtcbiAgICAgICAgdGhpcy5fYWRkRHluYW1pY0Zvcm1TdHlsZXModGhpcy5wYXJhbWV0ZXJzPy5Dc3NTdHlsZXMpO1xuICAgICAgICB0aGlzLm1vZGVyblRhYnMkID0gdGhpcy5sYXlvdXQ5NCQucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoYykgPT4gYyksXG4gICAgICAgICAgICBtYXAoKGxheW91dDk0KSA9PiAodGhpcy5sYXlvdXQ5NCA9IGxheW91dDk0KSksXG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgICAgICAgICAgbWVyZ2UodGhpcy5fZm9ybVBhbmVsU2VydmljZS5ncm91cExheW91dCQpLFxuICAgICAgICAgICAgbWFwKChfKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0OTQuaXRlbXNbMF0ueHR5cGUgIT09ICdMeS5MYXlvdXRUYWJQYW5lbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB0YWJzOiBMYXlvdXRTZXR0aW5nW10gPSB0aGlzLmxheW91dDk0Lml0ZW1zWzBdLml0ZW1zO1xuICAgICAgICAgICAgICAgIHJldHVybiB0YWJzLmZpbHRlcigoYykgPT4gYy5WaXNpYmxlICE9PSBmYWxzZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub2J0YWluSGVpZ2h0KCk7XG4gICAgICAgIH0sIDApO1xuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLndpbmRvd1Jlc2l6ZSQuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9idGFpbkhlaWdodCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLl9yZW1vdmVEeW5hbWljRm9ybVN0eWxlcygpO1xuICAgIH1cbiAgICBvbkNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdSZXF1ZXN0Rm9yQ2xvc2UnLCB0aGlzLmNvbnRleHQpO1xuICAgIH1cbiAgICBvblRvb2xiYXJDbGljayhidG4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9ybVBhbmVsU2VydmljZS50b29sYmFyQ2xpY2soYnRuKTtcbiAgICB9XG4gICAgb25Xb3JrZmxvd0Nob2ljZUNsaWNrKHdmQ2hvaWNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2Uud2ZDaG9pY2Uod2ZDaG9pY2UpO1xuICAgIH1cbiAgICBmaWVsZENoYW5nZShmaWVsZE5hbWUsIHZhbHVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpZWxkVWkgPSB0aGlzLmNvbnRleHQuX2xpc3RGaWVsZFVpLmZpbmQoKGMpID0+IGMuU2V0dGluZy5Db250cm9sTmFtZSA9PT0gZmllbGROYW1lKTtcbiAgICAgICAgZmllbGRVaS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICBmaWVsZFVpLmZpcmVFdmVudCgnY2hhbmdlJywgZmllbGRVaSk7XG4gICAgfVxuICAgIHNlYXJjaENsaWNrKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWVsZFVpID0gdGhpcy5jb250ZXh0Ll9saXN0RmllbGRVaS5maW5kKChjKSA9PiBjLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5TZWFyY2hDb21tYW5kSW5mb1VpJyk7XG5cbiAgICAgICAgZmllbGRVaS5maXJlRXZlbnQoQmFyc2FBcGkuVWwuRm9ybVBhbmVsQ3RybHIuRXZlbnRFbnVtLlNlYXJjaENsaWNrLCBmaWVsZFVpKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9hZGREeW5hbWljRm9ybVN0eWxlcyhjc3NTdHlsZXM6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIWNzc1N0eWxlcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNzc1N0eWxlcyA9IGNzc1N0eWxlcy5yZXBsYWNlKC86cm9vdC9naSwgYCMke3RoaXMuaWR9YCk7XG4gICAgICAgIGNvbnN0IGhlYWQgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG4gICAgICAgIGNvbnN0IHN0eWxlOiBhbnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuXG4gICAgICAgIHN0eWxlLnR5cGUgPSAndGV4dC9jc3MnO1xuICAgICAgICBpZiAoc3R5bGUuc3R5bGVTaGVldCkge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyByZXF1aXJlZCBmb3IgSUU4IGFuZCBiZWxvdy5cbiAgICAgICAgICAgIHN0eWxlLnN0eWxlU2hlZXQuY3NzVGV4dCA9IGNzc1N0eWxlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0eWxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzc1N0eWxlcykpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N0eWxlID0gc3R5bGU7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcmVtb3ZlRHluYW1pY0Zvcm1TdHlsZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fc3R5bGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xuICAgICAgICBoZWFkLnJlbW92ZUNoaWxkKHRoaXMuX3N0eWxlKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIG9idGFpbkhlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyZW50SGVpZ2h0ID0gZ2V0UGFyZW50SGVpZ2h0KHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLnNldEZvcm1IZWlnaHQocGFyZW50SGVpZ2h0KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0UGFyYW10ZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcmFtZXRlcnMgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmNvbnRleHQsICdTZXR0aW5nLlZpZXcuQ3VzdG9tVWkuUGFyYW1ldGVycycsIG51bGwpO1xuICAgIH1cbn1cbiJdfQ==
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9hYnN0cmFjdC1jbGFzc2VzL2Zvcm0tYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsS0FBSyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sWUFBWSxFQUdaLHVCQUF1QixFQUV2QixJQUFJLEVBRUosV0FBVyxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0UsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0FBV3ZDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxhQUFhO0lBNENoRCxZQUNjLGtCQUFxQyxFQUNyQyxjQUE2QixFQUM3QixPQUFlLEVBQ2YsR0FBZSxFQUNmLGNBQTZCLEVBQ3JCLGlCQUFtQyxFQUMzQyxlQUErQixFQUMvQixJQUF1QjtRQUVqQyxLQUFLLEVBQUUsQ0FBQztRQVRFLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNmLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUNyQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQzNDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQW5EYixPQUFFLEdBQUcsUUFBUSxXQUFX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QUN6RDtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFDUyx3QkFBd0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZCxPQUFPO1NBQ1Y7UUFDRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ1MsWUFBWTtRQUNsQixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUE0QixDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ08sYUFBYTtRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9HLENBQUM7OzhHQS9LUSxpQkFBaUI7a0dBQWpCLGlCQUFpQixrTUFIaEIsRUFBRTsyRkFHSCxpQkFBaUI7a0JBTDdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEOzswQkFtRFEsSUFBSTt5R0FqRGUsRUFBRTtzQkFBekIsV0FBVzt1QkFBQyxTQUFTO2dCQUNiLE9BQU87c0JBQWYsS0FBSztnQkFLSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJbnB1dCxcbiAgICBDb21wb25lbnQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgU2VsZixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBIb3N0QmluZGluZ1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCB0YWtlVW50aWwsIG1lcmdlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBnZXREZXZpY2VJc01vYmlsZSwgZ2V0UGFyZW50SGVpZ2h0LCBnZXRVbmlxdWVJZCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBGb3JtUGFuZWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZm9ybS1wYW5lbC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhcnNhQXBpIH0gZnJvbSAnLi9iYXJzYS1hcGknO1xuaW1wb3J0IHsgRm9ybVNldHRpbmcsIEZvcm1WaWV3U2V0dGluZywgSUhlYWRlckxheW91dCwgTGF5b3V0U2V0dGluZywgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IEJyZWFkY3J1bWJTZXJ2aWNlLCBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgQ29udHJvbFVpUGlwZSB9IGZyb20gJy4uL3BpcGVzJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JucmMtZm9ybS1iYXNlJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUJhc2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIGlkID0gYGZvcm1fJHtnZXRVbmlxdWVJZCg0KX1gO1xuICAgIEBJbnB1dCgpIGNvbnRleHQ6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICBjb25maWc6IGFueTtcbiAgICAgICAgU2V0dGluZzogRm9ybVNldHRpbmc7XG4gICAgfTtcbiAgICBAT3V0cHV0KCkgZm9ybUNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIGxpc3RGaWVsZFVpOiBhbnk7XG4gICAgaXNXaXphcmQ6IGJvb2xlYW47XG4gICAgcGFyYW1ldGVyczogTWV0YW9iamVjdERhdGFNb2RlbDtcbiAgICBpc01vYmlsZTogYm9vbGVhbjtcblxuICAgIHRvb2xiYXJWaXNpYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBoaWRlQ2xvc2UkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGhpZGVUaXRsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaGlkZVBpbiQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgdGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgdG9vbGJhckl0ZW1zJDogT2JzZXJ2YWJsZTxhbnlbXT47XG4gICAgd29ya2Zsb3dCdXR0b25zJDogT2JzZXJ2YWJsZTxhbnlbXT47XG4gICAgaGVhZGVyTGF5b3V0JDogT2JzZXJ2YWJsZTxJSGVhZGVyTGF5b3V0IHwgbnVsbD47XG4gICAgbGF5b3V0OTQkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgbGF5b3V0OTQ6IGFueTtcbiAgICBtYXhDb250ZW50V2lkdGgkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgZm9ybVdpZHRoJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIGhlYWRlckRlc2NyaXB0aW9uJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIGhlYWRlclJlbW92ZUNvbnRlbnRQYWRkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBoZWFkZXJTdWJ0aXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBhdmF0YXIkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgd29ya2Zsb3dQYW5lbFVpJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHZpZXckOiBPYnNlcnZhYmxlPEZvcm1WaWV3U2V0dGluZz47XG4gICAgbW8kOiBPYnNlcnZhYmxlPE1ldGFvYmplY3REYXRhTW9kZWwgfCBudWxsPjtcbiAgICBpc1NpbXBsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgZmllbGREaWN0JDogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkPjtcbiAgICBtYXNrJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBpc1NlYXJjaFBhbmVsOiBib29sZWFuO1xuICAgIGlzTW9kYWw6IGJvb2xlYW47XG4gICAgaXNTdWJGb3JtOiBib29sZWFuO1xuICAgIG1vZGVyblRhYnMkOiBPYnNlcnZhYmxlPExheW91dFNldHRpbmdbXT47XG4gICAgaXNGb3JtUmVwb3J0OiBib29sZWFuO1xuICAgIGxhbmRzY2FwZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgc3RhbmRhbG9uZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcHJvdGVjdGVkIF9zdHlsZTogSFRNTFN0eWxlRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2JyZWFkY3J1bWJTZXJ2aWNlOiBCcmVhZGNydW1iU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX3JvdXRlcjogUm91dGVyLFxuICAgICAgICBwcm90ZWN0ZWQgX2VsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX2NvbnRyb2xVaVBpcGU6IENvbnRyb2xVaVBpcGUsXG4gICAgICAgIEBTZWxmKCkgcHJvdGVjdGVkIF9mb3JtUGFuZWxTZXJ2aWNlOiBGb3JtUGFuZWxTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJvdGVjdGVkIF9jZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuaXNTZWFyY2hQYW5lbCQuc3Vic2NyaWJlKChpc1NlYXJjaFBhbmVsKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlzU2VhcmNoUGFuZWwgPSBpc1NlYXJjaFBhbmVsO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5oaWRlQ2xvc2UkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5oaWRlQ2xvc2UkO1xuICAgICAgICB0aGlzLmhpZGVUaXRsZSQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmhpZGVUaXRsZSQ7XG4gICAgICAgIHRoaXMuaGlkZVBpbiQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmhpZGVQaW4kO1xuICAgICAgICB0aGlzLnRvb2xiYXJWaXNpYmxlJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UudG9vbGJhclZpc2libGUkO1xuICAgICAgICB0aGlzLnRpdGxlJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UudGl0bGUkO1xuICAgICAgICB0aGlzLnRvb2xiYXJJdGVtcyQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLnRvb2xiYXJJdGVtcyQ7XG4gICAgICAgIHRoaXMud29ya2Zsb3dCdXR0b25zJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2Uud29ya2Zsb3dCdXR0b25zJDtcbiAgICAgICAgdGhpcy5oZWFkZXJMYXlvdXQkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5oZWFkZXJMYXlvdXQkO1xuICAgICAgICB0aGlzLmxheW91dDk0JCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UubGF5b3V0JDtcbiAgICAgICAgdGhpcy5tYXhDb250ZW50V2lkdGgkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5tYXhDb250ZW50V2lkdGgkO1xuICAgICAgICB0aGlzLmZvcm1XaWR0aCQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmZvcm1XaWR0aCQ7XG4gICAgICAgIHRoaXMuaGVhZGVyU3VidGl0bGUkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5oZWFkZXJTdWJ0aXRsZSQ7XG4gICAgICAgIHRoaXMuYXZhdGFyJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuYXZhdGFyJDtcbiAgICAgICAgdGhpcy53b3JrZmxvd1BhbmVsVWkkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS53b3JrZmxvd1BhbmVsVWkkO1xuICAgICAgICB0aGlzLnZpZXckID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS52aWV3JDtcbiAgICAgICAgdGhpcy5tbyQgPSB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLm1vJDtcbiAgICAgICAgdGhpcy5maWVsZERpY3QkID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5maWVsZERpY3QkO1xuICAgICAgICB0aGlzLmlzU2ltcGxlJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuaXNTaW1wbGVGb3JtJDtcbiAgICAgICAgdGhpcy5tYXNrJCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UubWFzayQ7XG4gICAgICAgIHRoaXMuaGVhZGVyRGVzY3JpcHRpb24kID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5oZWFkZXJEZXNjcmlwdGlvbiQ7XG4gICAgICAgIHRoaXMuaGVhZGVyUmVtb3ZlQ29udGVudFBhZGRpbmckID0gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5oZWFkZXJSZW1vdmVDb250ZW50UGFkZGluZyQ7XG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuY29udGV4dCQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLnZpZXckLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5sYW5kc2NhcGUkID0gdGhpcy5fcG9ydGFsU2VydmljZS5sYW5kc2NhcGUkO1xuICAgICAgICB0aGlzLnN0YW5kYWxvbmUkID0gdGhpcy5fcG9ydGFsU2VydmljZS5zdGFuZGFsb25lJDtcbiAgICB9XG4gICAgZ2V0IGZvcmNlQ2xvc2UkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybVBhbmVsU2VydmljZS5mb3JjZUNsb3NlJDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5fZm9ybVBhbmVsU2VydmljZS5jb250ZXh0ID0gdGhpcy5jb250ZXh0O1xuICAgICAgICB0aGlzLmlzTW9iaWxlID0gZ2V0RGV2aWNlSXNNb2JpbGUoKTtcbiAgICAgICAgdGhpcy5saXN0RmllbGRVaSA9IHRoaXMuY29udGV4dC5fZGljdEZpZWxkVWk7XG5cbiAgICAgICAgdGhpcy5pc01vZGFsID0gdGhpcy5jb250ZXh0LlNldHRpbmc/LklzTW9kYWw7XG4gICAgICAgIHRoaXMuaXNTdWJGb3JtID0gdGhpcy5jb250ZXh0LklzU3ViRm9ybTtcbiAgICAgICAgdGhpcy5pc0Zvcm1SZXBvcnQgPSB0aGlzLmNvbnRleHQuSXNGb3JtUmVwb3J0O1xuICAgICAgICB0aGlzLl9zZXRQYXJhbXRlcnMoKTtcbiAgICAgICAgdGhpcy5fYWRkRHluYW1pY0Zvcm1TdHlsZXModGhpcy5wYXJhbWV0ZXJzPy5Dc3NTdHlsZXMpO1xuICAgICAgICB0aGlzLm1vZGVyblRhYnMkID0gdGhpcy5sYXlvdXQ5NCQucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoYykgPT4gYyksXG4gICAgICAgICAgICBtYXAoKGxheW91dDk0KSA9PiAodGhpcy5sYXlvdXQ5NCA9IGxheW91dDk0KSksXG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xuICAgICAgICAgICAgbWVyZ2UodGhpcy5fZm9ybVBhbmVsU2VydmljZS5ncm91cExheW91dCQpLFxuICAgICAgICAgICAgbWFwKChfKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubGF5b3V0OTQuaXRlbXNbMF0ueHR5cGUgIT09ICdMeS5MYXlvdXRUYWJQYW5lbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCB0YWJzOiBMYXlvdXRTZXR0aW5nW10gPSB0aGlzLmxheW91dDk0Lml0ZW1zWzBdLml0ZW1zO1xuICAgICAgICAgICAgICAgIHJldHVybiB0YWJzLmZpbHRlcigoYykgPT4gYy5WaXNpYmxlICE9PSBmYWxzZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub2J0YWluSGVpZ2h0KCk7XG4gICAgICAgIH0sIDApO1xuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLndpbmRvd1Jlc2l6ZSQuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9idGFpbkhlaWdodCgpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLl9yZW1vdmVEeW5hbWljRm9ybVN0eWxlcygpO1xuICAgIH1cbiAgICBvbkNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlyZUV2ZW50KCdSZXF1ZXN0Rm9yQ2xvc2UnLCB0aGlzLmNvbnRleHQpO1xuICAgIH1cbiAgICBvblRvb2xiYXJDbGljayhidG4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9ybVBhbmVsU2VydmljZS50b29sYmFyQ2xpY2soYnRuKTtcbiAgICB9XG4gICAgb25Xb3JrZmxvd0Nob2ljZUNsaWNrKHdmQ2hvaWNlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2Uud2ZDaG9pY2Uod2ZDaG9pY2UpO1xuICAgIH1cbiAgICBmaWVsZENoYW5nZShmaWVsZE5hbWUsIHZhbHVlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZpZWxkVWkgPSB0aGlzLmNvbnRleHQuX2xpc3RGaWVsZFVpLmZpbmQoKGMpID0+IGMuU2V0dGluZy5Db250cm9sTmFtZSA9PT0gZmllbGROYW1lKTtcbiAgICAgICAgZmllbGRVaS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICBmaWVsZFVpLmZpcmVFdmVudCgnY2hhbmdlJywgZmllbGRVaSk7XG4gICAgfVxuICAgIHNlYXJjaENsaWNrKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWVsZFVpID0gdGhpcy5jb250ZXh0Ll9saXN0RmllbGRVaS5maW5kKChjKSA9PiBjLm9yaWdpbmFsWHR5cGUgPT09ICdVaS5TZWFyY2hDb21tYW5kSW5mb1VpJyk7XG5cbiAgICAgICAgZmllbGRVaS5maXJlRXZlbnQoQmFyc2FBcGkuVWwuRm9ybVBhbmVsQ3RybHIuRXZlbnRFbnVtLlNlYXJjaENsaWNrLCBmaWVsZFVpKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9hZGREeW5hbWljRm9ybVN0eWxlcyhjc3NTdHlsZXM6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIWNzc1N0eWxlcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNzc1N0eWxlcyA9IGNzc1N0eWxlcy5yZXBsYWNlKC86cm9vdC9naSwgYCMke3RoaXMuaWR9YCk7XG4gICAgICAgIGNvbnN0IGhlYWQgPSBkb2N1bWVudC5oZWFkIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF07XG4gICAgICAgIGNvbnN0IHN0eWxlOiBhbnkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpO1xuXG4gICAgICAgIGhlYWQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuXG4gICAgICAgIHN0eWxlLnR5cGUgPSAndGV4dC9jc3MnO1xuICAgICAgICBpZiAoc3R5bGUuc3R5bGVTaGVldCkge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyByZXF1aXJlZCBmb3IgSUU4IGFuZCBiZWxvdy5cbiAgICAgICAgICAgIHN0eWxlLnN0eWxlU2hlZXQuY3NzVGV4dCA9IGNzc1N0eWxlcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0eWxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGNzc1N0eWxlcykpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3N0eWxlID0gc3R5bGU7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcmVtb3ZlRHluYW1pY0Zvcm1TdHlsZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fc3R5bGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBoZWFkID0gZG9jdW1lbnQuaGVhZCB8fCBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdO1xuICAgICAgICBoZWFkLnJlbW92ZUNoaWxkKHRoaXMuX3N0eWxlKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIG9idGFpbkhlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGFyZW50SGVpZ2h0ID0gZ2V0UGFyZW50SGVpZ2h0KHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgICB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLnNldEZvcm1IZWlnaHQocGFyZW50SGVpZ2h0KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0UGFyYW10ZXJzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnBhcmFtZXRlcnMgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmNvbnRleHQsICdTZXR0aW5nLlZpZXcuQ3VzdG9tVWkuUGFyYW1ldGVycycsIG51bGwpO1xuICAgIH1cbn1cbiJdfQ==
@@ -16,7 +16,7 @@ export class FormToolbarBaseComponent extends BaseComponent {
16
16
  }
17
17
  }
18
18
  FormToolbarBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FormToolbarBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
19
- FormToolbarBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: FormToolbarBaseComponent, selector: "bnrc-form-toolbar-base", inputs: { buttons: "buttons", visible: "visible", size: "size", device: "device", deviceSize: "deviceSize", rtl: "rtl", portrait: "portrait", standalone: "standalone" }, outputs: { toolClick: "toolClick" }, host: { properties: { "attr.rtl": "this._rtl" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
19
+ FormToolbarBaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: FormToolbarBaseComponent, selector: "bnrc-form-toolbar-base", inputs: { buttons: "buttons", visible: "visible", size: "size", device: "device", deviceSize: "deviceSize", rtl: "rtl", landscape: "landscape", standalone: "standalone" }, outputs: { toolClick: "toolClick" }, host: { properties: { "attr.rtl": "this._rtl" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
20
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: FormToolbarBaseComponent, decorators: [{
21
21
  type: Component,
22
22
  args: [{
@@ -36,7 +36,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
36
36
  type: Input
37
37
  }], rtl: [{
38
38
  type: Input
39
- }], portrait: [{
39
+ }], landscape: [{
40
40
  type: Input
41
41
  }], standalone: [{
42
42
  type: Input
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
46
46
  type: HostBinding,
47
47
  args: ['attr.rtl']
48
48
  }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS10b29sYmFyLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvZm9ybS10b29sYmFyLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQVUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU1qRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsYUFBYTtJQUwzRDs7UUFPYSxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBT2QsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7S0FVakQ7SUFSRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQUc7UUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDOztxSEFsQlEsd0JBQXdCO3lHQUF4Qix3QkFBd0IsdVZBSHZCLEVBQUU7MkZBR0gsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs4QkFFWSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ2tCLElBQUk7c0JBQTVCLFdBQVc7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBIb3N0QmluZGluZywgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdibnJjLWZvcm0tdG9vbGJhci1iYXNlJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVRvb2xiYXJCYXNlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgYnV0dG9uczogYW55W107XG4gICAgQElucHV0KCkgdmlzaWJsZSA9IHRydWU7XG4gICAgQElucHV0KCkgc2l6ZTogYW55O1xuICAgIEBJbnB1dCgpIGRldmljZTogYW55O1xuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IGFueTtcbiAgICBASW5wdXQoKSBydGw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcG9ydHJhaXQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc3RhbmRhbG9uZTogYm9vbGVhbjtcbiAgICBAT3V0cHV0KCkgdG9vbENsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnJ0bCcpIF9ydGw7XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuX3J0bCA9IHRoaXMucnRsO1xuICAgIH1cblxuICAgIG9uVG9vbENsaWNrKGJ0bik6IHZvaWQge1xuICAgICAgICB0aGlzLnRvb2xDbGljay5lbWl0KGJ0bik7XG4gICAgfVxufVxuIl19
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS10b29sYmFyLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvZm9ybS10b29sYmFyLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQVUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU1qRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsYUFBYTtJQUwzRDs7UUFPYSxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBT2QsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7S0FVakQ7SUFSRyxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQUc7UUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDOztxSEFsQlEsd0JBQXdCO3lHQUF4Qix3QkFBd0IseVZBSHZCLEVBQUU7MkZBR0gsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs4QkFFWSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ2tCLElBQUk7c0JBQTVCLFdBQVc7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBIb3N0QmluZGluZywgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS5jb21wb25lbnQnO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdibnJjLWZvcm0tdG9vbGJhci1iYXNlJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVRvb2xiYXJCYXNlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgYnV0dG9uczogYW55W107XG4gICAgQElucHV0KCkgdmlzaWJsZSA9IHRydWU7XG4gICAgQElucHV0KCkgc2l6ZTogYW55O1xuICAgIEBJbnB1dCgpIGRldmljZTogYW55O1xuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IGFueTtcbiAgICBASW5wdXQoKSBydGw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbGFuZHNjYXBlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHN0YW5kYWxvbmU6IGJvb2xlYW47XG4gICAgQE91dHB1dCgpIHRvb2xDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5ydGwnKSBfcnRsO1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLl9ydGwgPSB0aGlzLnJ0bDtcbiAgICB9XG5cbiAgICBvblRvb2xDbGljayhidG4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy50b29sQ2xpY2suZW1pdChidG4pO1xuICAgIH1cbn1cbiJdfQ==
@@ -76,8 +76,14 @@ export class NumberBaseComponent extends FieldBaseComponent {
76
76
  reFormatValue(text, e) {
77
77
  let newVal;
78
78
  if (typeof text === 'number') {
79
+ if (text === this.value) {
80
+ return;
81
+ }
79
82
  text = text.toString();
80
83
  }
84
+ if (typeof text === 'undefined' && typeof this.value === 'undefined') {
85
+ return;
86
+ }
81
87
  if (text) {
82
88
  let indexofDot = text.indexOf('.');
83
89
  const selectionStart = this.inputElement?.selectionStart;
@@ -115,10 +121,12 @@ export class NumberBaseComponent extends FieldBaseComponent {
115
121
  diff = indexOfDotFormated - indexofDot;
116
122
  cursorPosition += diff;
117
123
  }
118
- if (this.inputElement) {
124
+ if (this.inputElement && this.inputElement.value !== formated) {
119
125
  this.inputElement.value = formated;
120
126
  }
121
- e.target.value = formated;
127
+ if (e.target.value !== formated) {
128
+ e.target.value = formated;
129
+ }
122
130
  this._setCursorPosition(cursorPosition);
123
131
  }
124
132
  else {
@@ -130,7 +138,10 @@ export class NumberBaseComponent extends FieldBaseComponent {
130
138
  else if (this.inputElement) {
131
139
  this.inputElement.value = '';
132
140
  }
133
- this.value = newVal;
141
+ if (newVal && +newVal === this.value) {
142
+ return;
143
+ }
144
+ this.value = typeof newVal == 'undefined' ? '' : newVal;
134
145
  this.formmatedValue.emit(this.inputElement?.value);
135
146
  this.valueChange.emit(this.value);
136
147
  }
@@ -145,4 +156,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
145
156
  changeDetection: ChangeDetectionStrategy.OnPush
146
157
  }]
147
158
  }] });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvbnVtYmVyLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBTXZDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFJdkQsSUFBSSxnQkFBZ0I7UUFDaEIsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9ELElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDekIsT0FBTyxDQUFDLENBQUM7U0FDWjtRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztJQUNELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztTQUN0QztRQUNELElBQUksQ0FBQyxPQUFPO1lBQ1IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsS0FBSyxDQUFDO2dCQUN0RixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFD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TUFBTSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUMzQztpQkFBTTtnQkFDSCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7b0JBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztpQkFDcEM7YUFDSjtTQUNKO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUNoQztRQUNELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7O2dIQXpJUSxtQkFBbUI7b0dBQW5CLG1CQUFtQiwrRUFIbEIsRUFBRTsyRkFHSCxtQkFBbUI7a0JBTC9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRmllbGRCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9maWVsZC1iYXNlJztcbmltcG9ydCB7IEJhcnNhQXBpIH0gZnJvbSAnLi9iYXJzYS1hcGknO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdibnJjLW51bWJlci1iYXNlJyxcbiAgICB0ZW1wbGF0ZTogJycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVyQmFzZUNvbXBvbmVudCBleHRlbmRzIEZpZWxkQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBoYXNNYXNrOiBib29sZWFuO1xuICAgIHRpY2tSZWY6IGFueTtcbiAgICBwcm90ZWN0ZWQgaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgICBnZXQgZGVjaW1hbFByZWNpc2lvbigpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBkZWNpbWFsUHJlY2lzaW9uID0gTnVtYmVyKHRoaXMuU2V0dGluZy5EZWNpbWFsUHJlY2lzaW9uKTtcbiAgICAgICAgaWYgKGlzTmFOKGRlY2ltYWxQcmVjaXNpb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVjaW1hbFByZWNpc2lvbjtcbiAgICB9XG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXRlZCA9IHRoaXMuX2dldEZvcm1hdGVkKHRoaXMudmFsdWUpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9IGZvcm1hdGVkO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGFzTWFzayA9XG4gICAgICAgICAgICBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmNvbnRleHQsICdTZXR0aW5nLlNob3dUaG91c2FuZFNlcGVyYXRvcicsIGZhbHNlKSB8fFxuICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnU2V0dGluZy5EZWNpbWFsUHJlY2lzaW9uJywgMCkgPiAwO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jbGVhckludGVydmFsKCk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuICAgIG9uS2V5RG93bihlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGlzQ2hhcmFjdGVyID0gdGhpcy5faXNDaGFyYWN0ZXIoZSk7XG4gICAgICAgIGlmICghaXNDaGFyYWN0ZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc1ZhbGlkID0gbmV3IFJlZ0V4cCgnXlswLTksLl0qJCcpLnRlc3QoZS5jdXJyZW50VGFyZ2V0LnZhbHVlICsgZS5rZXkpO1xuICAgICAgICBpZiAoIWlzVmFsaWQgfHwgZS5rZXkgPT09ICcuJykge1xuICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnLicgJiYgdGhpcy5pbnB1dEVsZW1lbnQgJiYgdGhpcy5kZWNpbWFsUHJlY2lzaW9uID4gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnNvclBvc2l0aW9uID0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUuaW5kZXhPZignLicpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3NldEN1cnNvclBvc2l0aW9uKGN1cnNvclBvc2l0aW9uICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uVmFsdWVDaGFuZ2UoZSk6IHZvaWQge1xuICAgICAgICBjb25zdCB0ZXh0OiBzdHJpbmcgPSBlLmN1cnJlbnRUYXJnZXQ/LnZhbHVlIHx8ICcnO1xuICAgICAgICB0aGlzLnJlRm9ybWF0VmFsdWUodGV4dCwgZSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0VmFsdWUodmFsdWUpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuX3NldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5yZUZvcm1hdFZhbHVlKHRoaXMudmFsdWUsIHsgdGFyZ2V0OiB0aGlzLmlucHV0RWxlbWVudCB9KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9jbGVhckludGVydmFsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50aWNrUmVmKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMudGlja1JlZik7XG4gICAgICAgICAgICB0aGlzLnRpY2tSZWYgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfaXNDaGFyYWN0ZXIoZXZ0KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0eXBlb2YgZXZ0LndoaWNoID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGV2dC53aGljaCA9PT0gJ251bWJlcicgJiYgZXZ0LndoaWNoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuICFldnQuY3RybEtleSAmJiAhZXZ0Lm1ldGFLZXkgJiYgIWV2dC5hbHRLZXkgJiYgZXZ0LndoaWNoICE9PSA4ICYmIGV2dC5rZXkubGVuZ3RoID09PSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2dldEZvcm1hdGVkKHZhbCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9udW1lcmFsUGlwZS50cmFuc2Zvcm0odmFsLCB0aGlzLmRlY2ltYWxQcmVjaXNpb24sIHRoaXMuU2V0dGluZy5TaG93VGhvdXNhbmRTZXBlcmF0b3IpLnRvU3RyaW5nKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0Q3Vyc29yUG9zaXRpb24oY3Vyc29yUG9zaXRpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICBpZiAoY3Vyc29yUG9zaXRpb24gPiB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGggJiYgdGhpcy5kZWNpbWFsUHJlY2lzaW9uKSB7XG4gICAgICAgICAgICAgICAgY3Vyc29yUG9zaXRpb24gPSB0aGlzLmlucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnNldFNlbGVjdGlvblJhbmdlKGN1cnNvclBvc2l0aW9uLCBjdXJzb3JQb3NpdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSByZUZvcm1hdFZhbHVlKHRleHQ6IHN0cmluZyB8IG51bWJlciwgZTogYW55KTogdm9pZCB7XG4gICAgICAgIGxldCBuZXdWYWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHR5cGVvZiB0ZXh0ID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgdGV4dCA9IHRleHQudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0ZXh0KSB7XG4gICAgICAgICAgICBsZXQgaW5kZXhvZkRvdCA9IHRleHQuaW5kZXhPZignLicpO1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSB0aGlzLmlucHV0RWxlbWVudD8uc2VsZWN0aW9uU3RhcnQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGRlY2ltYWxQZXJzaWNpb24gPSB0aGlzLmRlY2ltYWxQcmVjaXNpb247XG4gICAgICAgICAgICBpZiAoZGVjaW1hbFBlcnNpY2lvbikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHQgPSB0ZXh0Lmxlbmd0aCAtIChpbmRleG9mRG90ICsgMSk7XG4gICAgICAgICAgICAgICAgaWYgKHQgPiBkZWNpbWFsUGVyc2ljaW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpZmYgPSB0IC0gZGVjaW1hbFBlcnNpY2lvbjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGlvblN0YXJ0ICYmIHNlbGVjdGlvblN0YXJ0IDwgdGV4dC5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRleHQgPSB0ZXh0LnN1YnN0cmluZygwLCB0ZXh0Lmxlbmd0aCAtIGRpZmYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC5zdWJzdHJpbmcoMCwgc2VsZWN0aW9uU3RhcnQpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LnN1YnN0cmluZyhzZWxlY3Rpb25TdGFydCArIDEsIHNlbGVjdGlvblN0YXJ0ICsgMSArIHRleHQubGVuZ3RoIC0gZGlmZik7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gdGV4dC5zdWJzdHJpbmcoMCwgdGV4dC5sZW5ndGggLSAxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBmb3JtYXRlZDogc3RyaW5nID0gdGhpcy5fZ2V0Rm9ybWF0ZWQodGV4dCkudG9TdHJpbmcoKTtcbiAgICAgICAgICAgIG5ld1ZhbCA9IHRoaXMuX251bWVyYWxQaXBlLmdldFZhbHVlKGZvcm1hdGVkKTtcblxuICAgICAgICAgICAgbGV0IGluZGV4T2ZEb3RGb3JtYXRlZCA9IGZvcm1hdGVkLmluZGV4T2YoJy4nKTtcblxuICAgICAgICAgICAgaWYgKGRlY2ltYWxQZXJzaWNpb24gPT09IDApIHtcbiAgICAgICAgICAgICAgICBpbmRleG9mRG90ID0gdGV4dC5sZW5ndGg7XG4gICAgICAgICAgICAgICAgaW5kZXhPZkRvdEZvcm1hdGVkID0gZm9ybWF0ZWQubGVuZ3RoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaGFzTWFzaykge1xuICAgICAgICAgICAgICAgIGxldCBjdXJzb3JQb3NpdGlvbiA9IHRoaXMuaW5wdXRFbGVtZW50Py5zZWxlY3Rpb25TdGFydDtcbiAgICAgICAgICAgICAgICBsZXQgZGlmZiA9IDA7XG4gICAgICAgICAgICAgICAgaWYgKGluZGV4b2ZEb3QgPCAwICYmIGRlY2ltYWxQZXJzaWNpb24gPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdGVkID0gdGhpcy5fZ2V0Rm9ybWF0ZWQodGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIG5ld1ZhbCA9IHRoaXMuX251bWVyYWxQaXBlLmdldFZhbHVlKGZvcm1hdGVkKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnNvclBvc2l0aW9uICE9IG51bGwgJiYgY3Vyc29yUG9zaXRpb24gPD0gaW5kZXhvZkRvdCkge1xuICAgICAgICAgICAgICAgICAgICBkaWZmID0gaW5kZXhPZkRvdEZvcm1hdGVkIC0gaW5kZXhvZkRvdDtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yUG9zaXRpb24gKz0gZGlmZjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlID0gZm9ybWF0ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGUudGFyZ2V0LnZhbHVlID0gZm9ybWF0ZWQ7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yUG9zaXRpb24oY3Vyc29yUG9zaXRpb24pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgPSBuZXdWYWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWUgPSBuZXdWYWw7XG4gICAgICAgIHRoaXMuZm9ybW1hdGVkVmFsdWUuZW1pdCh0aGlzLmlucHV0RWxlbWVudD8udmFsdWUpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgfVxufVxuIl19
159
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2Fic3RyYWN0LWNsYXNzZXMvbnVtYmVyLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBTXZDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFJdkQsSUFBSSxnQkFBZ0I7UUFDaEIsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQy9ELElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDekIsT0FBTyxDQUFDLENBQUM7U0FDWjtRQUNELE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztJQUNELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztTQUN0QztRQUNELElBQUksQ0FBQyxPQUFPO1lBQ1IsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsS0FBSyxDQUFDO2dCQUN0RixRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFD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a0I7b0JBQzVCLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vZmllbGQtYmFzZSc7XG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4vYmFyc2EtYXBpJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYm5yYy1udW1iZXItYmFzZScsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlckJhc2VDb21wb25lbnQgZXh0ZW5kcyBGaWVsZEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgaGFzTWFzazogYm9vbGVhbjtcbiAgICB0aWNrUmVmOiBhbnk7XG4gICAgcHJvdGVjdGVkIGlucHV0RWxlbWVudDogSFRNTElucHV0RWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgZ2V0IGRlY2ltYWxQcmVjaXNpb24oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgZGVjaW1hbFByZWNpc2lvbiA9IE51bWJlcih0aGlzLlNldHRpbmcuRGVjaW1hbFByZWNpc2lvbik7XG4gICAgICAgIGlmIChpc05hTihkZWNpbWFsUHJlY2lzaW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRlY2ltYWxQcmVjaXNpb247XG4gICAgfVxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgICAgIGlmICh0aGlzLmlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0ZWQgPSB0aGlzLl9nZXRGb3JtYXRlZCh0aGlzLnZhbHVlKS50b1N0cmluZygpO1xuICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgPSBmb3JtYXRlZDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhc01hc2sgPVxuICAgICAgICAgICAgQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5jb250ZXh0LCAnU2V0dGluZy5TaG93VGhvdXNhbmRTZXBlcmF0b3InLCBmYWxzZSkgfHxcbiAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuY29udGV4dCwgJ1NldHRpbmcuRGVjaW1hbFByZWNpc2lvbicsIDApID4gMDtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2xlYXJJbnRlcnZhbCgpO1xuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbiAgICBvbktleURvd24oZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpc0NoYXJhY3RlciA9IHRoaXMuX2lzQ2hhcmFjdGVyKGUpO1xuICAgICAgICBpZiAoIWlzQ2hhcmFjdGVyKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNWYWxpZCA9IG5ldyBSZWdFeHAoJ15bMC05LC5dKiQnKS50ZXN0KGUuY3VycmVudFRhcmdldC52YWx1ZSArIGUua2V5KTtcbiAgICAgICAgaWYgKCFpc1ZhbGlkIHx8IGUua2V5ID09PSAnLicpIHtcbiAgICAgICAgICAgIGlmIChlLmtleSA9PT0gJy4nICYmIHRoaXMuaW5wdXRFbGVtZW50ICYmIHRoaXMuZGVjaW1hbFByZWNpc2lvbiA+IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJzb3JQb3NpdGlvbiA9IHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlLmluZGV4T2YoJy4nKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRDdXJzb3JQb3NpdGlvbihjdXJzb3JQb3NpdGlvbiArIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvblZhbHVlQ2hhbmdlKGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGV4dDogc3RyaW5nID0gZS5jdXJyZW50VGFyZ2V0Py52YWx1ZSB8fCAnJztcbiAgICAgICAgdGhpcy5yZUZvcm1hdFZhbHVlKHRleHQsIGUpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldFZhbHVlKHZhbHVlKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLl9zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIHRoaXMucmVGb3JtYXRWYWx1ZSh0aGlzLnZhbHVlLCB7IHRhcmdldDogdGhpcy5pbnB1dEVsZW1lbnQgfSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfY2xlYXJJbnRlcnZhbCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGlja1JlZikge1xuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpY2tSZWYpO1xuICAgICAgICAgICAgdGhpcy50aWNrUmVmID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2lzQ2hhcmFjdGVyKGV2dCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodHlwZW9mIGV2dC53aGljaCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBldnQud2hpY2ggPT09ICdudW1iZXInICYmIGV2dC53aGljaCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiAhZXZ0LmN0cmxLZXkgJiYgIWV2dC5tZXRhS2V5ICYmICFldnQuYWx0S2V5ICYmIGV2dC53aGljaCAhPT0gOCAmJiBldnQua2V5Lmxlbmd0aCA9PT0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9nZXRGb3JtYXRlZCh2YWwpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbnVtZXJhbFBpcGUudHJhbnNmb3JtKHZhbCwgdGhpcy5kZWNpbWFsUHJlY2lzaW9uLCB0aGlzLlNldHRpbmcuU2hvd1Rob3VzYW5kU2VwZXJhdG9yKS50b1N0cmluZygpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3NldEN1cnNvclBvc2l0aW9uKGN1cnNvclBvc2l0aW9uKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0RWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKGN1cnNvclBvc2l0aW9uID4gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUubGVuZ3RoICYmIHRoaXMuZGVjaW1hbFByZWNpc2lvbikge1xuICAgICAgICAgICAgICAgIGN1cnNvclBvc2l0aW9uID0gdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUubGVuZ3RoO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5zZXRTZWxlY3Rpb25SYW5nZShjdXJzb3JQb3NpdGlvbiwgY3Vyc29yUG9zaXRpb24pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgcmVGb3JtYXRWYWx1ZSh0ZXh0OiBzdHJpbmcgfCBudW1iZXIsIGU6IGFueSk6IHZvaWQge1xuICAgICAgICBsZXQgbmV3VmFsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmICh0eXBlb2YgdGV4dCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIGlmICh0ZXh0ID09PSB0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGV4dCA9IHRleHQudG9TdHJpbmcoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRleHQgPT09ICd1bmRlZmluZWQnICYmIHR5cGVvZiB0aGlzLnZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHQpIHtcbiAgICAgICAgICAgIGxldCBpbmRleG9mRG90ID0gdGV4dC5pbmRleE9mKCcuJyk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb25TdGFydCA9IHRoaXMuaW5wdXRFbGVtZW50Py5zZWxlY3Rpb25TdGFydDtcblxuICAgICAgICAgICAgY29uc3QgZGVjaW1hbFBlcnNpY2lvbiA9IHRoaXMuZGVjaW1hbFByZWNpc2lvbjtcbiAgICAgICAgICAgIGlmIChkZWNpbWFsUGVyc2ljaW9uKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdCA9IHRleHQubGVuZ3RoIC0gKGluZGV4b2ZEb3QgKyAxKTtcbiAgICAgICAgICAgICAgICBpZiAodCA+IGRlY2ltYWxQZXJzaWNpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlmZiA9IHQgLSBkZWNpbWFsUGVyc2ljaW9uO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0aW9uU3RhcnQgJiYgc2VsZWN0aW9uU3RhcnQgPCB0ZXh0Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGV4dCA9IHRleHQuc3Vic3RyaW5nKDAsIHRleHQubGVuZ3RoIC0gZGlmZik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LnN1YnN0cmluZygwLCBzZWxlY3Rpb25TdGFydCkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQuc3Vic3RyaW5nKHNlbGVjdGlvblN0YXJ0ICsgMSwgc2VsZWN0aW9uU3RhcnQgKyAxICsgdGV4dC5sZW5ndGggLSBkaWZmKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cmluZygwLCB0ZXh0Lmxlbmd0aCAtIDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGZvcm1hdGVkOiBzdHJpbmcgPSB0aGlzLl9nZXRGb3JtYXRlZCh0ZXh0KS50b1N0cmluZygpO1xuICAgICAgICAgICAgbmV3VmFsID0gdGhpcy5fbnVtZXJhbFBpcGUuZ2V0VmFsdWUoZm9ybWF0ZWQpO1xuXG4gICAgICAgICAgICBsZXQgaW5kZXhPZkRvdEZvcm1hdGVkID0gZm9ybWF0ZWQuaW5kZXhPZignLicpO1xuXG4gICAgICAgICAgICBpZiAoZGVjaW1hbFBlcnNpY2lvbiA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGluZGV4b2ZEb3QgPSB0ZXh0Lmxlbmd0aDtcbiAgICAgICAgICAgICAgICBpbmRleE9mRG90Rm9ybWF0ZWQgPSBmb3JtYXRlZC5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNNYXNrKSB7XG4gICAgICAgICAgICAgICAgbGV0IGN1cnNvclBvc2l0aW9uID0gdGhpcy5pbnB1dEVsZW1lbnQ/LnNlbGVjdGlvblN0YXJ0O1xuICAgICAgICAgICAgICAgIGxldCBkaWZmID0gMDtcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXhvZkRvdCA8IDAgJiYgZGVjaW1hbFBlcnNpY2lvbiA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0ZWQgPSB0aGlzLl9nZXRGb3JtYXRlZCh0ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgbmV3VmFsID0gdGhpcy5fbnVtZXJhbFBpcGUuZ2V0VmFsdWUoZm9ybWF0ZWQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3Vyc29yUG9zaXRpb24gIT0gbnVsbCAmJiBjdXJzb3JQb3NpdGlvbiA8PSBpbmRleG9mRG90KSB7XG4gICAgICAgICAgICAgICAgICAgIGRpZmYgPSBpbmRleE9mRG90Rm9ybWF0ZWQgLSBpbmRleG9mRG90O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3JQb3NpdGlvbiArPSBkaWZmO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQgJiYgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgIT09IGZvcm1hdGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlID0gZm9ybWF0ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChlLnRhcmdldC52YWx1ZSAhPT0gZm9ybWF0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZS50YXJnZXQudmFsdWUgPSBmb3JtYXRlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0Q3Vyc29yUG9zaXRpb24oY3Vyc29yUG9zaXRpb24pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQudmFsdWUgPSBuZXdWYWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC52YWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGlmIChuZXdWYWwgJiYgK25ld1ZhbCA9PT0gdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWUgPSB0eXBlb2YgbmV3VmFsID09ICd1bmRlZmluZWQnID8gJycgOiBuZXdWYWw7XG4gICAgICAgIHRoaXMuZm9ybW1hdGVkVmFsdWUuZW1pdCh0aGlzLmlucHV0RWxlbWVudD8udmFsdWUpO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgfVxufVxuIl19
@@ -271,21 +271,25 @@ export class BaseViewItemPropsComponent extends BaseViewPropsComponent {
271
271
  const syncWithFormpanelMo = this.mo;
272
272
  const _isChecked = this.mo.$IsChecked;
273
273
  const formPanelCtrlrMo = this.formPanelCtrlr.Mo;
274
- Object.keys(formPanelCtrlrMo.$OriginalValues).forEach((c) => {
275
- syncWithFormpanelMo[c] = formPanelCtrlrMo[c];
276
- if (formPanelCtrlrMo[c + '$Caption']) {
277
- syncWithFormpanelMo[c + '$Caption'] = formPanelCtrlrMo[c + '$Caption'];
278
- }
279
- if (formPanelCtrlrMo[c + '$Icon']) {
280
- syncWithFormpanelMo[c + '$Icon'] = formPanelCtrlrMo[c + '$Icon'];
281
- }
282
- });
274
+ this._updateWithOriginalValues(formPanelCtrlrMo, syncWithFormpanelMo);
283
275
  syncWithFormpanelMo['$OriginalValues'] = formPanelCtrlrMo['$OriginalValues'];
276
+ syncWithFormpanelMo['$FieldDict'] = formPanelCtrlrMo['$FieldDict'];
284
277
  syncWithFormpanelMo['$State'] = formPanelCtrlrMo['$State']; // this add because if we edit unchanged mo it does not reflect to mo of ulv.
285
278
  this.mo = { ...syncWithFormpanelMo };
286
279
  this.mo.$IsChecked = _isChecked;
287
280
  return from(Promise.resolve());
288
281
  }
282
+ _updateWithOriginalValues(source, dest) {
283
+ Object.keys(source.$OriginalValues).forEach((c) => {
284
+ dest[c] = source[c];
285
+ if (source[c + '$Caption']) {
286
+ dest[c + '$Caption'] = source[c + '$Caption'];
287
+ }
288
+ if (source[c + '$Icon']) {
289
+ dest[c + '$Icon'] = source[c + '$Icon'];
290
+ }
291
+ });
292
+ }
289
293
  _raiseFormPanelValueChanged() {
290
294
  this.editFormPanelValueChange.emit(this.mo);
291
295
  }
@@ -435,4 +439,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
435
439
  }], cartableWorkflowData: [{
436
440
  type: Input
437
441
  }] } });
438
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS12aWV3LWl0ZW0tcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2R5bmFtaWMtY29tcG9uZW50L2Jhc2Utdmlldy1pdGVtLXByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULEtBQUssRUFHTCxRQUFRLEVBQ1IsSUFBSSxFQUVKLFFBQVEsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBHLE9BQU8sRUFBc0QsUUFBUSxFQUFhLE1BQU0scUJBQXFCLENBQUM7QUFDOUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQVEzRCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsc0JBQXNCO0lBMERsRSxZQUNjLEdBQWUsRUFDZixhQUEyQixFQUMzQixJQUF1QixFQUN2QixnQkFBbUMsRUFDWCx1QkFBeUMsRUFDN0MsaUJBQW1DLEVBQzNDLGVBQStCO1FBRXJELEtBQUssRUFBRSxDQUFDO1FBUkUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ3ZCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDWCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQWtCO1FBQzdDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDM0Msb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBaEN6RCxhQUFRLEdBQUcs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OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUTs0Q0FoRUosRUFBRTtzQkFBVixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFTyxtQkFBbUI7c0JBQS9CLEtBQUs7Z0JBS08sZ0JBQWdCO3NCQUE1QixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBTU8sb0JBQW9CO3NCQUFoQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBTa2lwU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZyb20sIHRhcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTWV0YW9iamVjdERhdGFNb2RlbCwgUmVwb3J0Vmlld0NvbHVtbiwgRm9ybVNldHRpbmcsIEJhcnNhQXBpLCBDaG9pY2VEZWYgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzJztcbmltcG9ydCB7IFByZXZlbnREZWZhdWxFdmVudCwgY3JlYXRlR3JpZEVkaXRvckZvcm1QYW5lbCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBGb3JtUGFuZWxTZXJ2aWNlLCBVbHZNYWluU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEJhc2VWaWV3UHJvcHNDb21wb25lbnQgfSBmcm9tICcuL2Jhc2Utdmlldy1wcm9wcyc7XG5pbXBvcnQgeyBNb1JlcG9ydFZhbHVlUGlwZSB9IGZyb20gJy4uL3BpcGVzJztcbnR5cGUgUmVhc29uVG9TYXZlID0gJ1RBQicgfCAnQ1RSTCtFTlRFUicgfCAnQ0hFQ0tfQ0hBTkdFRCcgfCAnRVNDJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYm5yYy1iYXNlLXZpZXctaXRlbS1wcm9wcycsXG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50IGV4dGVuZHMgQmFzZVZpZXdQcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBtbzogTWV0YW9iamVjdERhdGFNb2RlbDtcbiAgICBASW5wdXQoKSBtb0RhdGFMaXN0Q291bnQ6IG51bWJlcjtcbiAgICBASW5wdXQoKSBpbmRleDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGxhc3Q6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNDaGVja2VkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzTmV3SW5saW5lTW86IGJvb2xlYW47XG4gICAgQElucHV0KCkgZXh0cmFSZWxhdGlvbjogYW55O1xuICAgIEBJbnB1dCgpIGhpZGVPcGVuSWNvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpbkRpYWxvZzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc011bHRpU2VsZWN0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHJvd0luZGljYXRvcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSByb3dJbmRpY2F0b3JDb2xvcjogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgc2V0IHNlcmlhbGl6ZWRSZWxhdGVkTW8odmFsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2VyaWFsaXplZFJlbGF0ZWRNbyA9IHZhbDtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ2FydGFibGVNbyh2YWwpO1xuICAgICAgICB0aGlzLl9jcmVhdGVDYXJ0YWJsZVBhcmFtcygpO1xuICAgIH1cbiAgICBASW5wdXQoKSBzZXQgY2FydGFibGVUZW1wbGF0ZSh2YWw6IEZvcm1TZXR0aW5nKSB7XG4gICAgICAgIHRoaXMuX2NhcnRhYmxlVGVtcGxhdGUgPSB2YWw7XG4gICAgICAgIHRoaXMuX2NyZWF0ZUNhcnRhYmxlUGFyYW1zKCk7XG4gICAgfVxuICAgIEBJbnB1dCgpIHNldCBjYXJ0YWJsZU1vKHZhbDogTWV0YW9iamVjdERhdGFNb2RlbCkge1xuICAgICAgICB0aGlzLl9jYXJ0YWJsZU1vID0gdmFsO1xuICAgICAgICB0aGlzLl91cGRhdGVDYXJ0YWJsZU1vKHRoaXMuX3NlcmlhbGl6ZWRSZWxhdGVkTW8pO1xuXG4gICAgICAgIHRoaXMuX2NyZWF0ZUNhcnRhYmxlUGFyYW1zKCk7XG4gICAgfVxuICAgIEBJbnB1dCgpIHNldCBjYXJ0YWJsZVdvcmtmbG93RGF0YSh2YWw6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9jYXJ0YWJsZVdvcmtmbG93RGF0YSA9IHZhbDtcbiAgICAgICAgdGhpcy5fY3JlYXRlQ2FydGFibGVQYXJhbXMoKTtcbiAgICB9XG4gICAgaGFzRXJyb3IgPSBmYWxzZTtcbiAgICBfZm9jdXNUb0ZpcnN0RWlkdGFibGVDb2x1bW4gPSBmYWxzZTtcbiAgICBfbGFzdEVkaXRhYmxlQ29sdW1uSW5kZXg6IG51bWJlcjtcbiAgICBpbmxpbmVFZGl0SW5SZXBvcnQgPSB0cnVlO1xuICAgIGxheW91dCQ6IE9ic2VydmFibGU8YW55PjtcbiAgICBmb3JtUGFuZWxDdHJscjogYW55O1xuICAgIHNhdmluZzogYm9vbGVhbjtcbiAgICBzYXZlZDogYm9vbGVhbjtcbiAgICBpblJvdyA9IHRydWU7XG4gICAgaGFzQ2FydGFibGVUZW1wbGF0ZSA9IGZhbHNlO1xuICAgIGNhcnRhYmxlUGFyYW1zOiB7XG4gICAgICAgIGZvcm1TZXR0aW5nOiBGb3JtU2V0dGluZztcbiAgICAgICAgbW9JZDogc3RyaW5nO1xuICAgICAgICB0eXBlRGVmSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgdmlld0lkOiBhbnk7XG4gICAgICAgIGluRGlhbG9nOiBib29sZWFuO1xuICAgIH07XG4gICAgYnJ1bGVBY3Rpb25NZXNzYWdlOiBCcnVsZUFjdGlvbk1lc3NhZ2UgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9zYXZlRWRpdGVkTW8kID0gbmV3IFN1YmplY3Q8UmVhc29uVG9TYXZlPigpO1xuICAgIHByaXZhdGUgX2Zvcm1wYW5lbFZhbHVlQ2hhbmdlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgX2Zvcm1QYW5lbExvYWRlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9jYXJ0YWJsZU1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIHByaXZhdGUgX2NhcnRhYmxlVGVtcGxhdGU6IEZvcm1TZXR0aW5nO1xuICAgIHByaXZhdGUgX2NhcnRhYmxlV29ya2Zsb3dEYXRhOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfc2VyaWFsaXplZFJlbGF0ZWRNbzogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2VsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX2RvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfcmVwb3J0VmFsdWVQaXBlOiBNb1JlcG9ydFZhbHVlUGlwZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHJvdGVjdGVkIF9wYXJlbnRGb3JtUGFuZWxTZXJ2aWNlOiBGb3JtUGFuZWxTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByb3RlY3RlZCBfZm9ybVBhbmVsU2VydmljZTogRm9ybVBhbmVsU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF91bHZNYWluU2VydmljZTogVWx2TWFpblNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5fc2F2ZUVkaXRlZE1vJFxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChyZWFzb246IFJlYXNvblRvU2F2ZSkgPT4gdGhpcy5faW5saW5lRWRpdFNhdmVGb3JtUGFuZWwocmVhc29uKSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB0aHJvd0Vycm9yKCgpID0+IGVycikpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXM6IHsgcmVhc29uOiBSZWFzb25Ub1NhdmU7IHN1Y2NlZWQ6IGJvb2xlYW47IHNhdmVkOiBib29sZWFuIH0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLnNhdmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1wYW5lbFZhbHVlQ2hhbmdlZCQubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyZXMucmVhc29uID09PSAnVEFCJyB8fCByZXMucmVhc29uID09PSAnQ1RSTCtFTlRFUicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3ROZXh0SW5saW5lUmVjb3JkLmVtaXQodGhpcy5tbyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXMucmVhc29uID09PSAnRVNDJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXRGb3JtUGFuZWxDYW5jZWwuZW1pdCh0aGlzLm1vKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fZm9ybXBhbmVsVmFsdWVDaGFuZ2VkJFxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuX3N5bmNNbygpKSxcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMubW8uJElubGluZU1vQ2hhbmdlZCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW8uJElubGluZU1vQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0Rm9ybVBhbmVsVmFsdWVDaGFuZ2UuZW1pdCh0aGlzLm1vKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIGdldCBfaGFzRm9ybVBhbmVsU2VydmljZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UgIT09IG51bGwgJiYgdGhpcy5mb3JtU2V0dGluZztcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICBpZiAodGhpcy5faGFzRm9ybVBhbmVsU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5fZm9ybVBhbmVsU2VydmljZS5jb250ZXh0JC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLnZpZXckLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0JCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UubGF5b3V0JDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCB7IGlzQ2hlY2tlZCwgaW5saW5lRWRpdE1vZGUgfSA9IGNoYW5nZXM7XG4gICAgICAgIGxldCBuZWVkVG9Mb2FkRm9ybSA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5pbmxpbmVFZGl0TW9kZSkge1xuICAgICAgICAgICAgaWYgKGlzQ2hlY2tlZCkge1xuICAgICAgICAgICAgICAgIGlmICghaXNDaGVja2VkLmN1cnJlbnRWYWx1ZSAmJiBpc0NoZWNrZWQucHJldmlvdXNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fbmVlZFRvU2F2ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbmxpbmVFZGl0U2F2ZUZvcm1QYW5lbCgnQ0hFQ0tfQ0hBTkdFRCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0NoZWNrZWQuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIG5lZWRUb0xvYWRGb3JtID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlubGluZUVkaXRNb2RlPy5jdXJyZW50VmFsdWUgJiYgIWlubGluZUVkaXRNb2RlPy5wcmV2aW91c1ZhbHVlICYmIHRoaXMuaXNDaGVja2VkKSB7XG4gICAgICAgICAgICBuZWVkVG9Mb2FkRm9ybSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoIWlubGluZUVkaXRNb2RlPy5jdXJyZW50VmFsdWUgJiYgaW5saW5lRWRpdE1vZGU/LnByZXZpb3VzVmFsdWUgJiYgdGhpcy5pc0NoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NhdmVFZGl0ZWRNbyQubmV4dCgnRVNDJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5lZWRUb0xvYWRGb3JtKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2FkQW5kQ3JlYXRlRm9ybVBhbmVsQ3RybHIoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlcy5tbyAmJiAhY2hhbmdlcy5tby5maXJzdENoYW5nZSAmJiB0aGlzLmlubGluZUVkaXRNb2RlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fZm9ybVBhbmVsTG9hZGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtUGFuZWxDdHJsci5TZXRWYWx1ZShjaGFuZ2VzLm1vLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgKG1vICYmICFtby5maXJzdENoYW5nZSAmJiB0aGlzLl9oYXNGb3JtUGFuZWxTZXJ2aWNlICYmIHRoaXMuaXNDaGVja2VkICYmIHRoaXMuaW5saW5lRWRpdE1vZGUpIHtcbiAgICAgICAgLy8gICAgIC8vdGhpcy5mb3JtUGFuZWxDdHJsci5TZXRWYWx1ZShjaGFuZ2VzLm1vLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIC8vIH1cbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIGlmICh0aGlzLmZvcm1QYW5lbEN0cmxyKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1QYW5lbEN0cmxyLnVuKCdicnVsZVNob3dNZXNzYWdlQWN0aW9uJywgdGhpcy5faGFuZGxlQnJ1bGVTaG93TWVzc2FnZUFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgT25DYXJ0YWJsZUZvcm1DbGljayhlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQ2hlY2tlZCkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUm93Q2hlY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Jvd0NoZWNrKCk7XG4gICAgfVxuXG4gICAgb25Sb3dDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yb3dDbGljay5lbWl0KHsgbW86IHRoaXMubW8sIGluZGV4OiB0aGlzLmluZGV4IH0pO1xuICAgIH1cbiAgICBvbkNvbHVtbkNoYW5nZVRvRWRpdE1vZGUoY29sdW1uRWw6IEhUTUxFbGVtZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZvY3VzYWJsZXMgPSBjb2x1bW5FbC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgYGJ1dHRvbixidXR0b246bm90KFtkaXNhYmxlZF0pLFtocmVmXSxpbnB1dDpub3QoW2Rpc2FibGVkXSksaW5wdXQsXG4gICAgICAgICAgICAgICAgc2VsZWN0LHNlbGVjdDpub3QoW2Rpc2FibGVkXSksdGV4dGFyZWEsdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fbGFzdEVkaXRhYmxlQ29sdW1uSW5kZXggPSBpbmRleDtcbiAgICAgICAgaWYgKCFmb2N1c2FibGVzLmxlbmd0aCB8fCB0aGlzLl9mb2N1c1RvRmlyc3RFaWR0YWJsZUNvbHVtbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZvY3VzVG9GaXJzdEVpZHRhYmxlQ29sdW1uID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgbGFzdEZvY3VzYWJsZSA9IGZvY3VzYWJsZXNbMF07XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgKGxhc3RGb2N1c2FibGUgYXMgSFRNTEVsZW1lbnQpPy5mb2N1cygpO1xuICAgICAgICB9LCAwKTtcbiAgICB9XG4gICAgb25UYWJLZXlEb3duKGUsIGluZGV4KTogdm9pZCB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5fbGFzdEVkaXRhYmxlQ29sdW1uSW5kZXgpIHtcbiAgICAgICAgICAgIFByZXZlbnREZWZhdWxFdmVudChlKTtcbiAgICAgICAgICAgIHRoaXMuX3NhdmVFZGl0ZWRNbyQubmV4dCgnVEFCJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25FZGl0Rm9ybVBhbmVsU2F2ZShlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NhdmVFZGl0ZWRNbyQubmV4dCgnQ1RSTCtFTlRFUicpO1xuICAgIH1cbiAgICBvbkVkaXRGb3JtUGFuZWxDYW5jZWwoZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zYXZlRWRpdGVkTW8kLm5leHQoJ0VTQycpO1xuICAgIH1cbiAgICBvblVsdkNvbW1hbmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudWx2Q29tbWFuZC5lbWl0KHsgbW86IHRoaXMubW8sIGluZGV4OiB0aGlzLmluZGV4IH0pO1xuICAgIH1cbiAgICBvbkFjdGlvbihjb21tYW5kQm9keTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aW9uLmVtaXQoY29tbWFuZEJvZHkpO1xuICAgIH1cbiAgICBvbkV4cGFuZENsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV4cGFuZENsaWNrLmVtaXQodGhpcy5tbyk7XG4gICAgfVxuICAgIG9uRHluYW1pY0NvbXBvbmVudEV2ZW50cyhlOiB7IHRpdGxlOiBzdHJpbmc7IGRhdGE/OiBhbnkgfSk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKGUudGl0bGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3Jvd0NoZWNrJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uUm93Q2hlY2soKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3Jvd0NsaWNrJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uUm93Q2xpY2soKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3VsdkNvbW1hbmQnOlxuICAgICAgICAgICAgICAgIHRoaXMub25VbHZDb21tYW5kKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNhcnRhYmxlRm9ybUNsb3NlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYXJ0YWJsZUZvcm1DbG9zZWQuZW1pdCh7IG1vOiB0aGlzLm1vLCBpbmRleDogdGhpcy5pbmRleCB9KTtcbiAgICB9XG4gICAgX3RyYWNrQnlDb2x1bW4oaW5kZXg6IG51bWJlciwgY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2NvbHVtbi5OYW1lfSR7aW5kZXh9YDtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF91cGRhdGVDYXJ0YWJsZU1vKHNlcmlhbGl6ZU1vOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHNlcmlhbGl6ZU1vICYmIHRoaXMuX2NhcnRhYmxlTW8pIHtcbiAgICAgICAgICAgIHNlcmlhbGl6ZU1vID0gYCR7c2VyaWFsaXplTW99YDtcbiAgICAgICAgICAgIGNvbnN0IG1vID0gQmFyc2FBcGkuRXh0LmRlY29kZShzZXJpYWxpemVNbyk7XG4gICAgICAgICAgICB0aGlzLl9jYXJ0YWJsZU1vID0geyAuLi50aGlzLl9jYXJ0YWJsZU1vLCAuLi5tbyB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfY3JlYXRlQ2FydGFibGVQYXJhbXMoKTogdm9pZCB7XG4gICAgICAgIGxldCBjYXJ0YWJsZVRlbXBsYXRlID0gdGhpcy5fY2FydGFibGVUZW1wbGF0ZTtcbiAgICAgICAgY29uc3QgY2FydGFibGVNbyA9IHRoaXMuX2NhcnRhYmxlTW87XG4gICAgICAgIGNvbnN0IGNhcnRhYmxlV29ya2Zsb3dEYXRhID0gdGhpcy5fY2FydGFibGVXb3JrZmxvd0RhdGE7XG4gICAgICAgIGlmICh0aGlzLmhhc0NhcnRhYmxlVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIC8vIFRPRE8gdXBkYXRlIGNhcnRhYmxlIG1vO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNhcnRhYmxlVGVtcGxhdGUgJiZcbiAgICAgICAgICAgIGNhcnRhYmxlTW8gJiZcbiAgICAgICAgICAgIHR5cGVvZiBjYXJ0YWJsZVdvcmtmbG93RGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgIHRoaXMuX3NlcmlhbGl6ZWRSZWxhdGVkTW9cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjYXJ0YWJsZVRlbXBsYXRlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjYXJ0YWJsZVRlbXBsYXRlKSk7XG4gICAgICAgICAgICBjb25zdCB2aWV3ID0gY2FydGFibGVUZW1wbGF0ZS5WaWV3O1xuICAgICAgICAgICAgY2FydGFibGVUZW1wbGF0ZS5EYXRhID0geyBNbzogeyAuLi5jYXJ0YWJsZU1vIH0gfTtcbiAgICAgICAgICAgIGNhcnRhYmxlVGVtcGxhdGUuV29ya2Zsb3cgPSBjYXJ0YWJsZVdvcmtmbG93RGF0YSA9PT0gJycgPyBudWxsIDogSlNPTi5wYXJzZShjYXJ0YWJsZVdvcmtmbG93RGF0YSk7XG4gICAgICAgICAgICBpZiAoIXZpZXcuRXh0cmFKc29uUHJvcCkge1xuICAgICAgICAgICAgICAgIHZpZXcuRXh0cmFKc29uUHJvcCA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmlldy5FeHRyYUpzb25Qcm9wLklzU2ltcGxlID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5jYXJ0YWJsZVBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICBmb3JtU2V0dGluZzogY2FydGFibGVUZW1wbGF0ZSxcbiAgICAgICAgICAgICAgICBtb0lkOiBjYXJ0YWJsZU1vLklkLFxuICAgICAgICAgICAgICAgIHR5cGVEZWZJZDogY2FydGFibGVNby4kVHlwZURlZklkLFxuICAgICAgICAgICAgICAgIHZpZXdJZDogdmlldy5UeXBlVmlld0lkLFxuICAgICAgICAgICAgICAgIGluRGlhbG9nOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuaGFzQ2FydGFibGVUZW1wbGF0ZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9uZWVkVG9TYXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBpZiAoIXRoaXMuaXNDaGVja2VkKSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gY29uc3QgaXNDaGlsZE5vZGUgPSAodGhpcy5fZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuY29udGFpbnMoZS50YXJnZXQpO1xuICAgICAgICAvLyBpZiAoaXNDaGlsZE5vZGUpIHtcbiAgICAgICAgLy8gICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgLy8gfVxuICAgICAgICBjb25zdCB0ID0gdGhpcy5pbmxpbmVFZGl0TW9kZSAmJiB0aGlzLl9oYXNGb3JtUGFuZWxTZXJ2aWNlO1xuICAgICAgICBpZiAoIXQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1QYW5lbEN0cmxyICYmIHRoaXMuZm9ybVBhbmVsQ3RybHIuSXNNb0NoYW5nZWQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2NoZWNrZm9jdXNPdXRGcm9tUm93KHRhcmdldCk6IHZvaWQge1xuICAgICAgICAvLyBjb25zdCBmb2N1c2FibGU6IE5vZGVMaXN0ID0gdGhpcy5fZm9jdXNhYmxlQ29udHJvbHM7XG4gICAgICAgIC8vIGxldCBmb3VuZEluRm9jdXNhYmxlID0gZmFsc2U7XG4gICAgICAgIC8vIGZvY3VzYWJsZS5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgIC8vICAgICBpZiAoYyA9PT0gdGFyZ2V0KSB7XG4gICAgICAgIC8vICAgICAgICAgZm91bmRJbkZvY3VzYWJsZSA9IHRydWU7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH0pO1xuICAgICAgICAvLyBpZiAoIWZvdW5kSW5Gb2N1c2FibGUpIHtcbiAgICAgICAgLy8gICAgIHRoaXMuX3NhdmVFZGl0ZWRNbyQubmV4dCgnVEFCJyk7XG4gICAgICAgIC8vIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9yb3dDaGVjaygpOiB2b2lkIHtcbiAgICAgICAgLy8gaWYgKHRoaXMuaXNDaGVja2VkKSB7XG4gICAgICAgIC8vICAgICByZXR1cm47XG4gICAgICAgIC8vIH1cbiAgICAgICAgdGhpcy5yb3dDaGVjay5lbWl0KHsgbW86IHRoaXMubW8sIGluZGV4OiB0aGlzLmluZGV4IH0pO1xuICAgICAgICBpZiAodGhpcy5jYXJ0YWJsZVBhcmFtcykge1xuICAgICAgICAgICAgY29uc3QgY2hvaWNlTGlzdDogQ2hvaWNlRGVmW10gPSB0aGlzLmNhcnRhYmxlUGFyYW1zLmZvcm1TZXR0aW5nPy5Xb3JrZmxvdz8uQ2hvaWNlTGlzdDtcbiAgICAgICAgICAgIGlmIChjaG9pY2VMaXN0Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMud29ya2Zsb3dTaGFyZUJ1dHRvbnMuZW1pdCh7IG1vOiB0aGlzLm1vLCBjaG9pY2VMaXN0LCBhZGQ6ICF0aGlzLmlzQ2hlY2tlZCB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBfaGFuZGxlVmFsdWVDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0NoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25Sb3dDaGVjaygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Zvcm1wYW5lbFZhbHVlQ2hhbmdlZCQubmV4dCgpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3N5bmNNbygpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgc3luY1dpdGhGb3JtcGFuZWxNbyA9IHRoaXMubW87XG4gICAgICAgIGNvbnN0IF9pc0NoZWNrZWQgPSB0aGlzLm1vLiRJc0NoZWNrZWQ7XG4gICAgICAgIGNvbnN0IGZvcm1QYW5lbEN0cmxyTW8gPSB0aGlzLmZvcm1QYW5lbEN0cmxyLk1vO1xuICAgICAgICBPYmplY3Qua2V5cyhmb3JtUGFuZWxDdHJsck1vLiRPcmlnaW5hbFZhbHVlcykuZm9yRWFjaCgoYzogYW55KSA9PiB7XG4gICAgICAgICAgICBzeW5jV2l0aEZvcm1wYW5lbE1vW2NdID0gZm9ybVBhbmVsQ3RybHJNb1tjXTtcbiAgICAgICAgICAgIGlmIChmb3JtUGFuZWxDdHJsck1vW2MgKyAnJENhcHRpb24nXSkge1xuICAgICAgICAgICAgICAgIHN5bmNXaXRoRm9ybXBhbmVsTW9bYyArICckQ2FwdGlvbiddID0gZm9ybVBhbmVsQ3RybHJNb1tjICsgJyRDYXB0aW9uJ107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZm9ybVBhbmVsQ3RybHJNb1tjICsgJyRJY29uJ10pIHtcbiAgICAgICAgICAgICAgICBzeW5jV2l0aEZvcm1wYW5lbE1vW2MgKyAnJEljb24nXSA9IGZvcm1QYW5lbEN0cmxyTW9bYyArICckSWNvbiddO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgc3luY1dpdGhGb3JtcGFuZWxNb1snJE9yaWdpbmFsVmFsdWVzJ10gPSBmb3JtUGFuZWxDdHJsck1vWyckT3JpZ2luYWxWYWx1ZXMnXTtcbiAgICAgICAgc3luY1dpdGhGb3JtcGFuZWxNb1snJFN0YXRlJ10gPSBmb3JtUGFuZWxDdHJsck1vWyckU3RhdGUnXTsgLy8gdGhpcyBhZGQgYmVjYXVzZSBpZiB3ZSBlZGl0IHVuY2hhbmdlZCBtbyBpdCBkb2VzIG5vdCByZWZsZWN0IHRvIG1vIG9mIHVsdi5cbiAgICAgICAgdGhpcy5tbyA9IHsgLi4uc3luY1dpdGhGb3JtcGFuZWxNbyB9O1xuICAgICAgICB0aGlzLm1vLiRJc0NoZWNrZWQgPSBfaXNDaGVja2VkO1xuICAgICAgICByZXR1cm4gZnJvbShQcm9taXNlLnJlc29sdmUoKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9yYWlzZUZvcm1QYW5lbFZhbHVlQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lZGl0Rm9ybVBhbmVsVmFsdWVDaGFuZ2UuZW1pdCh0aGlzLm1vKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2hhbmRsZUJydWxlU2hvd01lc3NhZ2VBY3Rpb24oYWN0aW9uOiBCcnVsZUFjdGlvbk1lc3NhZ2UpOiB2b2lkIHtcbiAgICAgICAgYWN0aW9uLk1lc3NhZ2VFeHByZXNzaW9uSHRtbCA9IHRoaXMuX2RvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChhY3Rpb24uTWVzc2FnZUV4cHJlc3Npb24pO1xuICAgICAgICB0aGlzLmJydWxlQWN0aW9uTWVzc2FnZSA9IGFjdGlvbjtcbiAgICAgICAgLy8gaWYgKGFjdGlvbi5NZXNzYWdlVHlwZSA9PT0gQmFyc2FBcGkuQ29tbW9uLkVudW1zLlNob3dNZXNzYWdlUnVsZUFjdGlvbl9UeXBlLkluZm9ybWF0aW9uKSB7XG4gICAgICAgIC8vICAgICBpZiAoYWN0aW9uLkVzY2FwZUNoYXJhY3RlcnMpIFVsLk1zZ0JveC5JbmZvKGFjdGlvbi5NZXNzYWdlRXhwcmVzc2lvbiwgZG9SZXR1cm4pO1xuICAgICAgICAvLyAgICAgZWxzZSBVbC5Nc2dCb3guSW5mb19TaG93SHRtbChhY3Rpb24uTWVzc2FnZUV4cHJlc3Npb24sIGRvUmV0dXJuKTtcbiAgICAgICAgLy8gfSBlbHNlIGlmIChhY3Rpb24uTWVzc2FnZVR5cGUgPT09IEJhcnNhQXBpLkNvbW1vbi5FbnVtcy5TaG93TWVzc2FnZVJ1bGVBY3Rpb25fVHlwZS5FcnJvcikge1xuICAgICAgICAvLyAgICAgdmFyIGRvUmV0dXJuMCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgLy8gICAgICAgICB0aGlzLl9mb3JtUGFuZWwuUmVmb2N1c0N1cnJlbnRGaWVsZCgpO1xuICAgICAgICAvLyAgICAgICAgIGRvUmV0dXJuKG5ldyBDb21tb24uU2lsZW50RXhjZXB0aW9uKCkpO1xuICAgICAgICAvLyAgICAgfTtcbiAgICAgICAgLy8gICAgIGlmIChhY3Rpb24uRXNjYXBlQ2hhcmFjdGVycykgVWwuTXNnQm94LkVycm9yKGFjdGlvbi5NZXNzYWdlRXhwcmVzc2lvbiwgZG9SZXR1cm4wLmJpbmQodGhpcykpO1xuICAgICAgICAvLyAgICAgZWxzZSBVbC5Nc2dCb3guRXJyb3JfU2hvd0h0bWwoYWN0aW9uLk1lc3NhZ2VFeHByZXNzaW9uLCBkb1JldHVybjAuYmluZCh0aGlzKSk7XG4gICAgICAgIC8vIH0gZWxzZSBpZiAoYWN0aW9uLk1lc3NhZ2VUeXBlID09PSBCYXJzYUFwaS5Db21tb24uRW51bXMuU2hvd01lc3NhZ2VSdWxlQWN0aW9uX1R5cGUuT2tDYW5jZWwpIHtcbiAgICAgICAgLy8gICAgIFVsLk1zZ0JveC5Db25maXJtWWVzTm9fU2FmZSh0cnVlLCBhY3Rpb24uTWVzc2FnZUV4cHJlc3Npb24sIEJCQi5TZWxlY3QsIGFjdGlvbi5Fc2NhcGVDaGFyYWN0ZXJzLCBkb1JldHVybik7XG4gICAgICAgIC8vIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9jcmVhdGVGb3JtUGFuZWxDdHJscihtbzogTWV0YW9iamVjdERhdGFNb2RlbCwgdHlwZURlZklkOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybVBhbmVsQ3RybHIpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVBhbmVsQ3RybHIgPSBjcmVhdGVHcmlkRWRpdG9yRm9ybVBhbmVsKFxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybVNldHRpbmcsXG4gICAgICAgICAgICAgICAgeyAuLi5tbyB9LFxuICAgICAgICAgICAgICAgIHR5cGVEZWZJZCxcbiAgICAgICAgICAgICAgICB0aGlzLmV4dHJhUmVsYXRpb24sXG4gICAgICAgICAgICAgICAgdGhpcy5pblJvd1xuICAgICAgICAgICAgICAgIC8vIEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHRoaXMuY29udGV4dC5TZXR0aW5nLCAnRXh0cmEuUmVsYXRpb24nKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcm1QYW5lbEN0cmxyLklubGluZUVkaXRJblJlcG9ydCA9IHRydWU7XG4gICAgICAgIHRoaXMuZm9ybVBhbmVsQ3RybHIub24oe1xuICAgICAgICAgICAgYnJ1bGVTaG93TWVzc2FnZUFjdGlvbjogdGhpcy5faGFuZGxlQnJ1bGVTaG93TWVzc2FnZUFjdGlvbi5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgdmFsdWVDaGFuZ2U6IHRoaXMuX2hhbmRsZVZhbHVlQ2hhbmdlLmJpbmQodGhpcylcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVBhbmVsQ3RybHI7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9sb2FkQW5kQ3JlYXRlRm9ybVBhbmVsQ3RybHIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZvcm1TZXR0aW5nRGF0YSA9IHRoaXMuZm9ybVNldHRpbmcuRGF0YTtcbiAgICAgICAgY29uc3QgZm9ybU1vID0ge1xuICAgICAgICAgICAgLi4udGhpcy5tbyxcbiAgICAgICAgICAgICRGaWVsZERpY3Q6IGZvcm1TZXR0aW5nRGF0YS5Nby4kRmllbGREaWN0LFxuICAgICAgICAgICAgJFR5cGVEZWZJZDogZm9ybVNldHRpbmdEYXRhLk1vLiRUeXBlRGVmSWQsXG4gICAgICAgICAgICAkT3JpZ2luYWxWYWx1ZXM6IHt9XG4gICAgICAgIH07XG4gICAgICAgIGlmICh0aGlzLl9mb3JtUGFuZWxMb2FkZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVBhbmVsQ3RybHIuU2V0VmFsdWUoZm9ybU1vKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NyZWF0ZUZvcm1QYW5lbEN0cmxyKGZvcm1NbywgdGhpcy50eXBlRGVmSWQpO1xuICAgICAgICB0aGlzLl9mb3JtUGFuZWxMb2FkZWQgPSB0cnVlO1xuICAgICAgICBjb25zdCBmb3JtUGFuZWxDdHJsciA9IHRoaXMuZm9ybVBhbmVsQ3RybHI7XG4gICAgICAgIHRoaXMuZm9ybVBhbmVsQ3RybHIuVWx2TW9EYXRhTGlzdENvdW50ID0gdGhpcy5tb0RhdGFMaXN0Q291bnQgLSAxO1xuICAgICAgICBmb3JtUGFuZWxDdHJsci5Mb2FkQW5kQ3JlYXRlKG51bGwsIGZhbHNlLCBmYWxzZSwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3VzdG9tRm9ybVBhbmVsVWkgPSBmb3JtUGFuZWxDdHJsci5BZGFwdGVyLkNvbnRyb2w7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnRNbyA9IHRoaXMuX3BhcmVudEZvcm1QYW5lbFNlcnZpY2UgPyB0aGlzLl9wYXJlbnRGb3JtUGFuZWxTZXJ2aWNlLm1vIDogbnVsbDtcbiAgICAgICAgICAgIGlmICh0aGlzLmV4dHJhUmVsYXRpb24gJiYgcGFyZW50TW8gJiYgdGhpcy5leHRyYVJlbGF0aW9uLlJlbGF0aW9uVHlwZSA9PT0gJ0NvbXBvc2l0aW9uJykge1xuICAgICAgICAgICAgICAgIGZvcm1QYW5lbEN0cmxyLk1vLlNldEZWYWx1ZSh0aGlzLmV4dHJhUmVsYXRpb24uUGFyZW50RmROYW1lLCBwYXJlbnRNbyk7XG4gICAgICAgICAgICAgICAgLy8gbmV3Rm9ybVNldHRpbmdzLkRhdGEuTW9bcmVsYXRpb24uUGFyZW50RmROYW1lXSA9IHBhcmVudE1vLkdldENoYW5nZWRPYmplY3QoKTtcbiAgICAgICAgICAgICAgICAvLyBuZXdGb3JtU2V0dGluZ3MuRGF0YS5Nb1tyZWxhdGlvbi5QYXJlbnRGZE5hbWVdLiRTdGF0ZSA9IHBhcmVudE1vLiRTdGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGN1c3RvbUZvcm1QYW5lbFVpLlJlZnJlc2ggPSAoKSA9PiB7fTtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UuY29udGV4dCA9IGZvcm1QYW5lbEN0cmxyLkFkYXB0ZXIuQ29udHJvbDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcmVzZXRTYXZpbmdTdGF0ZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5icnVsZUFjdGlvbk1lc3NhZ2UgPSBudWxsO1xuICAgICAgICB0aGlzLnNhdmVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9zZXRTYXZpbmdTdGF0ZShlcnIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgdGhpcy5oYXNFcnJvciA9IHRydWU7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYXNFcnJvciA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNhdmVkID0gdHJ1ZTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9pbmxpbmVFZGl0U2F2ZUZvcm1QYW5lbChyZWFzb24pOiBQcm9taXNlPHsgcmVhc29uOiBSZWFzb25Ub1NhdmU7IHN1Y2NlZWQ6IGJvb2xlYW47IHNhdmVkOiBib29sZWFuIH0+IHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8eyByZWFzb246IFJlYXNvblRvU2F2ZTsgc3VjY2VlZDogYm9vbGVhbjsgc2F2ZWQ6IGJvb2xlYW4gfT4oKHJlc29sdmUsIF8pID0+IHtcbiAgICAgICAgICAgIGlmICghdGhpcy5mb3JtUGFuZWxDdHJsci5Jc01vQ2hhbmdlZCgpKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgc3RhdGUgb2YgbW8gaXMgbmV3IG9yIG1vZGlkZmllZCB0aGVuIGl0IG5lZWRzIHRvIHVwZGF0ZVxuICAgICAgICAgICAgICAgIHJlc29sdmUoeyByZWFzb24sIHN1Y2NlZWQ6IHRydWUsIHNhdmVkOiBmYWxzZSB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZvcm1QYW5lbEN0cmxyTW8gPSB0aGlzLmZvcm1QYW5lbEN0cmxyLk1vO1xuICAgICAgICAgICAgZGVsZXRlIGZvcm1QYW5lbEN0cmxyTW8uanNvbjtcbiAgICAgICAgICAgIC8vIHRoaXMuc2F2aW5nID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5tby4kSW5saW5lTW9DaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmVkaXRGb3JtUGFuZWxTYXZlLmVtaXQodGhpcy5tbyk7XG4gICAgICAgICAgICB0aGlzLmJydWxlQWN0aW9uTWVzc2FnZSA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLmZvcm1QYW5lbEN0cmxyLlNhdmUoZmFsc2UsIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLnNhdmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybVBhbmVsQ3RybHIuU2V0SXNDaGFuZ2VkKGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRTYXZpbmdTdGF0ZShlcnIpO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoeyByZWFzb24sIHN1Y2NlZWQ6IHRydWUsIHNhdmVkOiB0cnVlIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbmludGVyZmFjZSBCcnVsZUFjdGlvbk1lc3NhZ2Uge1xuICAgIE1lc3NhZ2VUeXBlOiBudW1iZXI7XG4gICAgRXNjYXBlQ2hhcmFjdGVyczogYm9vbGVhbjtcbiAgICBNZXNzYWdlRXhwcmVzc2lvbjogc3RyaW5nO1xuICAgIE1lc3NhZ2VFeHByZXNzaW9uSHRtbDogU2FmZUh0bWw7XG59XG4iXX0=
442
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS12aWV3LWl0ZW0tcHJvcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL2R5bmFtaWMtY29tcG9uZW50L2Jhc2Utdmlldy1pdGVtLXByb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFFdkIsU0FBUyxFQUVULEtBQUssRUFHTCxRQUFRLEVBQ1IsSUFBSSxFQUVKLFFBQVEsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXBHLE9BQU8sRUFBc0QsUUFBUSxFQUFhLE1BQU0scUJBQXFCLENBQUM7QUFDOUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQVEzRCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsc0JBQXNCO0lBMERsRSxZQUNjLEdBQWUsRUFDZixhQUEyQixFQUMzQixJQUF1QixFQUN2QixnQkFBbUMsRUFDWCx1QkFBeUMsRUFDN0MsaUJBQW1DLEVBQzNDLGVBQStCO1FBRXJELEtBQUssRUFBRSxDQUFDO1FBUkUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQ3ZCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUFDWCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQWtCO1FBQzdDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDM0Msb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBaEN6RCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGdDQUEyQixHQUFHLEtBQUssQ0FBQztRQUVwQyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFLMUIsVUFBSyxHQUFHLElBQUksQ0FBQztRQUNiLHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQVE1Qix1QkFBa0IsR0FBOEIsSUFBSSxDQUFDO1FBQzdDLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQWdCLENBQUM7UUFDN0MsNEJBQXVCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQWdCbEQsSUFBSSxDQUFDLGNBQWM7YUFDZCxZQUFZLEVBQUU7YUFDZCxJQUFJLENBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFDM0IsU0FBUyxDQUFDLENBQUMsTUFBb0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQzFFLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzdDO2FBQ0EsU0FBUyxDQUFDLENBQUMsR0FBK0QsRUFBRSxFQUFFO1lBQzNFLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRTtnQkFDWCxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDNUI7WUFDRCxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssS0FBSyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssWUFBWSxFQUFFO2dCQUNyRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUM3QztpQkFBTSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO2dCQUM3QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUMxQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsSUFBSSxDQUFDLHVCQUF1QjthQUN2QixZQUFZLEVBQUU7YUFDZCxJQUFJLENBQ0QsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFDM0IsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUMvQixHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ0wsSUFBSSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEtBQUssV0FBVyxFQUFFO2dCQUNqRCxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQzthQUNuQztRQUNMLENBQUMsQ0FBQyxDQUNMO2FBQ0EsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQXRGRCxJQUFhLG1CQUFtQixDQUFDLEdBQVc7UUFDeEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEdBQUcsQ0FBQztRQUNoQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUNELElBQWEsZ0JBQWdCLENBQUMsR0FBZ0I7UUFDMUMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztRQUM3QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBYSxVQUFVLENBQUMsR0FBd0I7UUFDNUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRWxELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFhLG9CQUFvQixDQUFDLEdBQVc7UUFDekMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsQ0FBQztRQUNqQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBcUVELElBQVksb0JBQW9CO1FBQzVCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQy9ELENBQUM7SUFFRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUM5RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDM0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDO1NBQ2pEO0lBQ0wsQ0FBQztJQUNELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLE1BQU0sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQzlDLElBQUksY0FBYyxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsSUFBSSxTQUFTLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLElBQUksU0FBUyxDQUFDLGFBQWEsRUFBRTtvQkFDcEQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7d0JBQ3BCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztxQkFDbEQ7aUJBQ0o7cUJBQU0sSUFBSSxTQUFTLENBQUMsWUFBWSxFQUFFO29CQUMvQixjQUFjLEdBQUcsSUFBSSxDQUFDO2lCQUN6QjthQUNKO1NBQ0o7UUFDRCxJQUFJLGNBQWMsRUFBRSxZQUFZLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEYsY0FBYyxHQUFHLElBQUksQ0FBQztTQUN6QjthQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsWUFBWSxJQUFJLGNBQWMsRUFBRSxhQUFhLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN6RixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuQztRQUNELElBQUksY0FBYyxFQUFFO1lBQ2hCLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1NBQ3ZDO1FBQ0QsSUFBSSxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUM5RCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUN6RDtTQUNKO1FBQ0QscUdBQXFHO1FBQ3JHLCtEQUErRDtRQUMvRCxJQUFJO0lBQ1IsQ0FBQztJQUNELFdBQVc7UUFDUCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLHdCQUF3QixFQUFFLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1NBQ3hGO0lBQ0wsQ0FBQztJQUNELG1CQUFtQixDQUFDLENBQUM7UUFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2hCLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDdkI7SUFDTCxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRCx3QkFBd0IsQ0FBQyxRQUFxQixFQUFFLEtBQWE7UUFDekQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUN4QztnSEFDb0csQ0FDdkcsQ0FBQztRQUNGLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLDJCQUEyQixFQUFFO1lBQ3hELE9BQU87U0FDVjtRQUNELElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUM7UUFDeEMsTUFBTSxhQUFhLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWCxhQUE2QixFQUFFLEtBQUssRUFBRSxDQUFDO1FBQzVDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNWLENBQUM7SUFDRCxZQUFZLENBQUMsQ0FBQyxFQUFFLEtBQUs7UUFDakIsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQ3pDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQUNELG1CQUFtQixDQUFDLENBQUM7UUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNELHFCQUFxQixDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELFlBQVk7UUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsUUFBUSxDQUFDLFdBQW1CO1FBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFDRCx3QkFBd0IsQ0FBQyxDQUFnQztRQUNyRCxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDYixLQUFLLFVBQVU7Z0JBQ1gsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNsQixNQUFNO1lBQ1YsS0FBSyxVQUFVO2dCQUNYLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbEIsTUFBTTtZQUNWLEtBQUssWUFBWTtnQkFDYixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3BCLE1BQU07U0FDYjtJQUNMLENBQUM7SUFFRCxvQkFBb0I7UUFDaEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0QsY0FBYyxDQUFDLEtBQWEsRUFBRSxNQUF3QjtRQUNsRCxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBQ1MsaUJBQWlCLENBQUMsV0FBbUI7UUFDM0MsSUFBSSxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNqQyxXQUFXLEdBQUcsR0FBRyxXQUFXLEVBQUUsQ0FBQztZQUMvQixNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7U0FDckQ7SUFDTCxDQUFDO0lBQ1MscUJBQXFCO1FBQzNCLElBQUksZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQzlDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDcEMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUM7UUFDeEQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDMUIsMkJBQTJCO1lBQzNCLE9BQU87U0FDVjtRQUNELElBQ0ksZ0JBQWdCO1lBQ2hCLFVBQVU7WUFDVixPQUFPLG9CQUFvQixLQUFLLFdBQVc7WUFDM0MsSUFBSSxDQUFDLG9CQUFvQixFQUMzQjtZQUNFLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7WUFDaEUsTUFBTSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO1lBQ25DLGdCQUFnQixDQUFDLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsVUFBVSxFQUFFLEVBQUUsQ0FBQztZQUNsRCxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsb0JBQW9CLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNsRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtnQkFDckIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7YUFDM0I7WUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFFbkMsSUFBSSxDQUFDLGNBQWMsR0FBRztnQkFDbEIsV0FBVyxFQUFFLGdCQUFnQjtnQkFDN0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFO2dCQUNuQixTQUFTLEVBQUUsVUFBVSxDQUFDLFVBQVU7Z0JBQ2hDLE1BQU0sRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDdkIsUUFBUSxFQUFFLEtBQUs7YUFDbEIsQ0FBQztZQUNGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFDUyxXQUFXO1FBQ2pCLHlCQUF5QjtRQUN6QixvQkFBb0I7UUFDcEIsSUFBSTtRQUNKLGtGQUFrRjtRQUNsRixxQkFBcUI7UUFDckIsb0JBQW9CO1FBQ3BCLElBQUk7UUFDSixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUMzRCxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ0osT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxPQUFPLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwRSxDQUFDO0lBRVMscUJBQXFCLENBQUMsTUFBTTtRQUNsQyx1REFBdUQ7UUFDdkQsZ0NBQWdDO1FBQ2hDLDZCQUE2QjtRQUM3QiwwQkFBMEI7UUFDMUIsbUNBQW1DO1FBQ25DLFFBQVE7UUFDUixNQUFNO1FBQ04sMkJBQTJCO1FBQzNCLHVDQUF1QztRQUN2QyxJQUFJO0lBQ1IsQ0FBQztJQUNTLFNBQVM7UUFDZix3QkFBd0I7UUFDeEIsY0FBYztRQUNkLElBQUk7UUFDSixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2RCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsTUFBTSxVQUFVLEdBQWdCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUM7WUFDdEYsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFO2dCQUNuQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO2FBQ3JGO1NBQ0o7SUFDTCxDQUFDO0lBRVMsa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNyQjtRQUNELElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBQ1MsT0FBTztRQUNiLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNwQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQztRQUN0QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3RFLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLEdBQUcsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM3RSxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRSxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLDZFQUE2RTtRQUN6SSxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRVMseUJBQXlCLENBQUMsTUFBMkIsRUFBRSxJQUF5QjtRQUN0RixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUNuRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksTUFBTSxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsRUFBRTtnQkFDeEIsSUFBSSxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO2FBQ2pEO1lBQ0QsSUFBSSxNQUFNLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFO2dCQUNyQixJQUFJLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7YUFDM0M7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFUywyQkFBMkI7UUFDakMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVTLDZCQUE2QixDQUFDLE1BQTBCO1FBQzlELE1BQU0sQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BHLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDakMsNkZBQTZGO1FBQzdGLHVGQUF1RjtRQUN2Rix3RUFBd0U7UUFDeEUsOEZBQThGO1FBQzlGLG9DQUFvQztRQUNwQyxpREFBaUQ7UUFDakQsa0RBQWtEO1FBQ2xELFNBQVM7UUFDVCxvR0FBb0c7UUFDcEcscUZBQXFGO1FBQ3JGLGlHQUFpRztRQUNqRyxrSEFBa0g7UUFDbEgsSUFBSTtJQUNSLENBQUM7SUFDUyxxQkFBcUIsQ0FBQyxFQUF1QixFQUFFLFNBQWlCO1FBQ3RFLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcseUJBQXlCLENBQzNDLElBQUksQ0FBQyxXQUFXLEVBQ2hCLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFDVCxTQUFTLEVBQ1QsSUFBSSxDQUFDLGFBQWEsRUFDbEIsSUFBSSxDQUFDLEtBQUs7WUFDViwyRUFBMkU7YUFDOUUsQ0FBQztTQUNMO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDbkIsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLDZCQUE2QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDckUsV0FBVyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2xELENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMvQixDQUFDO0lBRVMsNEJBQTRCO1FBQ2xDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1FBQzlDLE1BQU0sTUFBTSxHQUFHO1lBQ1gsR0FBRyxJQUFJLENBQUMsRUFBRTtZQUNWLFVBQVUsRUFBRSxlQUFlLENBQUMsRUFBRSxDQUFDLFVBQVU7WUFDekMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUMsVUFBVTtZQUN6QyxlQUFlLEVBQUUsRUFBRTtTQUN0QixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckMsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztRQUM3QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUM7UUFDbEUsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7WUFDbEQsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztZQUN6RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN2RixJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksUUFBUSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxLQUFLLGFBQWEsRUFBRTtnQkFDckYsY0FBYyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3ZFLGdGQUFnRjtnQkFDaEYsMkVBQTJFO2FBQzlFO1lBQ0QsaUJBQWlCLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNTLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUNTLGVBQWUsQ0FBQyxHQUFHO1FBQ3pCLElBQUksR0FBRyxFQUFFO1lBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUNTLHdCQUF3QixDQUFDLE1BQU07UUFDckMsNkRBQTZEO1FBQzdELE9BQU8sSUFBSSxPQUFPLENBQTZELENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFGLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUNwQyw2REFBNkQ7Z0JBQzdELE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO2FBQ3BEO1lBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUNoRCxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQztZQUM3QixzQkFBc0I7WUFFdEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7WUFDakMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDcEMsdUJBQXVCO2dCQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDMUIsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3VIQXhiUSwwQkFBMEI7MkdBQTFCLDBCQUEwQixpbEJBSHpCLEVBQUU7MkZBR0gsMEJBQTBCO2tCQUx0QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs7MEJBZ0VRLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUNwQixRQUFROzswQkFBSSxJQUFJOzswQkFDaEIsUUFBUTs0Q0FoRUosRUFBRTtzQkFBVixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFTyxtQkFBbUI7c0JBQS9CLEtBQUs7Z0JBS08sZ0JBQWdCO3NCQUE1QixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBTU8sb0JBQW9CO3NCQUFoQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBTa2lwU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZUh0bWwgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZyb20sIHRhcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTWV0YW9iamVjdERhdGFNb2RlbCwgUmVwb3J0Vmlld0NvbHVtbiwgRm9ybVNldHRpbmcsIEJhcnNhQXBpLCBDaG9pY2VEZWYgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzJztcbmltcG9ydCB7IFByZXZlbnREZWZhdWxFdmVudCwgY3JlYXRlR3JpZEVkaXRvckZvcm1QYW5lbCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBGb3JtUGFuZWxTZXJ2aWNlLCBVbHZNYWluU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IEJhc2VWaWV3UHJvcHNDb21wb25lbnQgfSBmcm9tICcuL2Jhc2Utdmlldy1wcm9wcyc7XG5pbXBvcnQgeyBNb1JlcG9ydFZhbHVlUGlwZSB9IGZyb20gJy4uL3BpcGVzJztcbnR5cGUgUmVhc29uVG9TYXZlID0gJ1RBQicgfCAnQ1RSTCtFTlRFUicgfCAnQ0hFQ0tfQ0hBTkdFRCcgfCAnRVNDJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYm5yYy1iYXNlLXZpZXctaXRlbS1wcm9wcycsXG4gICAgdGVtcGxhdGU6IGBgLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50IGV4dGVuZHMgQmFzZVZpZXdQcm9wc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKSBtbzogTWV0YW9iamVjdERhdGFNb2RlbDtcbiAgICBASW5wdXQoKSBtb0RhdGFMaXN0Q291bnQ6IG51bWJlcjtcbiAgICBASW5wdXQoKSBpbmRleDogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGxhc3Q6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaXNDaGVja2VkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlzTmV3SW5saW5lTW86IGJvb2xlYW47XG4gICAgQElucHV0KCkgZXh0cmFSZWxhdGlvbjogYW55O1xuICAgIEBJbnB1dCgpIGhpZGVPcGVuSWNvbjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpbkRpYWxvZzogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBpc011bHRpU2VsZWN0OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHJvd0luZGljYXRvcjogYm9vbGVhbjtcbiAgICBASW5wdXQoKSByb3dJbmRpY2F0b3JDb2xvcjogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgc2V0IHNlcmlhbGl6ZWRSZWxhdGVkTW8odmFsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2VyaWFsaXplZFJlbGF0ZWRNbyA9IHZhbDtcbiAgICAgICAgdGhpcy5fdXBkYXRlQ2FydGFibGVNbyh2YWwpO1xuICAgICAgICB0aGlzLl9jcmVhdGVDYXJ0YWJsZVBhcmFtcygpO1xuICAgIH1cbiAgICBASW5wdXQoKSBzZXQgY2FydGFibGVUZW1wbGF0ZSh2YWw6IEZvcm1TZXR0aW5nKSB7XG4gICAgICAgIHRoaXMuX2NhcnRhYmxlVGVtcGxhdGUgPSB2YWw7XG4gICAgICAgIHRoaXMuX2NyZWF0ZUNhcnRhYmxlUGFyYW1zKCk7XG4gICAgfVxuICAgIEBJbnB1dCgpIHNldCBjYXJ0YWJsZU1vKHZhbDogTWV0YW9iamVjdERhdGFNb2RlbCkge1xuICAgICAgICB0aGlzLl9jYXJ0YWJsZU1vID0gdmFsO1xuICAgICAgICB0aGlzLl91cGRhdGVDYXJ0YWJsZU1vKHRoaXMuX3NlcmlhbGl6ZWRSZWxhdGVkTW8pO1xuXG4gICAgICAgIHRoaXMuX2NyZWF0ZUNhcnRhYmxlUGFyYW1zKCk7XG4gICAgfVxuICAgIEBJbnB1dCgpIHNldCBjYXJ0YWJsZVdvcmtmbG93RGF0YSh2YWw6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9jYXJ0YWJsZVdvcmtmbG93RGF0YSA9IHZhbDtcbiAgICAgICAgdGhpcy5fY3JlYXRlQ2FydGFibGVQYXJhbXMoKTtcbiAgICB9XG4gICAgaGFzRXJyb3IgPSBmYWxzZTtcbiAgICBfZm9jdXNUb0ZpcnN0RWlkdGFibGVDb2x1bW4gPSBmYWxzZTtcbiAgICBfbGFzdEVkaXRhYmxlQ29sdW1uSW5kZXg6IG51bWJlcjtcbiAgICBpbmxpbmVFZGl0SW5SZXBvcnQgPSB0cnVlO1xuICAgIGxheW91dCQ6IE9ic2VydmFibGU8YW55PjtcbiAgICBmb3JtUGFuZWxDdHJscjogYW55O1xuICAgIHNhdmluZzogYm9vbGVhbjtcbiAgICBzYXZlZDogYm9vbGVhbjtcbiAgICBpblJvdyA9IHRydWU7XG4gICAgaGFzQ2FydGFibGVUZW1wbGF0ZSA9IGZhbHNlO1xuICAgIGNhcnRhYmxlUGFyYW1zOiB7XG4gICAgICAgIGZvcm1TZXR0aW5nOiBGb3JtU2V0dGluZztcbiAgICAgICAgbW9JZDogc3RyaW5nO1xuICAgICAgICB0eXBlRGVmSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgdmlld0lkOiBhbnk7XG4gICAgICAgIGluRGlhbG9nOiBib29sZWFuO1xuICAgIH07XG4gICAgYnJ1bGVBY3Rpb25NZXNzYWdlOiBCcnVsZUFjdGlvbk1lc3NhZ2UgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9zYXZlRWRpdGVkTW8kID0gbmV3IFN1YmplY3Q8UmVhc29uVG9TYXZlPigpO1xuICAgIHByaXZhdGUgX2Zvcm1wYW5lbFZhbHVlQ2hhbmdlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgX2Zvcm1QYW5lbExvYWRlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIF9jYXJ0YWJsZU1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xuICAgIHByaXZhdGUgX2NhcnRhYmxlVGVtcGxhdGU6IEZvcm1TZXR0aW5nO1xuICAgIHByaXZhdGUgX2NhcnRhYmxlV29ya2Zsb3dEYXRhOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfc2VyaWFsaXplZFJlbGF0ZWRNbzogc3RyaW5nO1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2VsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcm90ZWN0ZWQgX2RvbVNhbml0aXplcjogRG9tU2FuaXRpemVyLFxuICAgICAgICBwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByb3RlY3RlZCBfcmVwb3J0VmFsdWVQaXBlOiBNb1JlcG9ydFZhbHVlUGlwZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKCkgcHJvdGVjdGVkIF9wYXJlbnRGb3JtUGFuZWxTZXJ2aWNlOiBGb3JtUGFuZWxTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByb3RlY3RlZCBfZm9ybVBhbmVsU2VydmljZTogRm9ybVBhbmVsU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIF91bHZNYWluU2VydmljZTogVWx2TWFpblNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5fc2F2ZUVkaXRlZE1vJFxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKChyZWFzb246IFJlYXNvblRvU2F2ZSkgPT4gdGhpcy5faW5saW5lRWRpdFNhdmVGb3JtUGFuZWwocmVhc29uKSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB0aHJvd0Vycm9yKCgpID0+IGVycikpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChyZXM6IHsgcmVhc29uOiBSZWFzb25Ub1NhdmU7IHN1Y2NlZWQ6IGJvb2xlYW47IHNhdmVkOiBib29sZWFuIH0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzLnNhdmVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1wYW5lbFZhbHVlQ2hhbmdlZCQubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyZXMucmVhc29uID09PSAnVEFCJyB8fCByZXMucmVhc29uID09PSAnQ1RSTCtFTlRFUicpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3ROZXh0SW5saW5lUmVjb3JkLmVtaXQodGhpcy5tbyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXMucmVhc29uID09PSAnRVNDJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXRGb3JtUGFuZWxDYW5jZWwuZW1pdCh0aGlzLm1vKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fZm9ybXBhbmVsVmFsdWVDaGFuZ2VkJFxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCksXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuX3N5bmNNbygpKSxcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMubW8uJElubGluZU1vQ2hhbmdlZCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW8uJElubGluZU1vQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5lZGl0Rm9ybVBhbmVsVmFsdWVDaGFuZ2UuZW1pdCh0aGlzLm1vKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIGdldCBfaGFzRm9ybVBhbmVsU2VydmljZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UgIT09IG51bGwgJiYgdGhpcy5mb3JtU2V0dGluZztcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgICAgICBpZiAodGhpcy5faGFzRm9ybVBhbmVsU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5fZm9ybVBhbmVsU2VydmljZS5jb250ZXh0JC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLnZpZXckLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIHRoaXMubGF5b3V0JCA9IHRoaXMuX2Zvcm1QYW5lbFNlcnZpY2UubGF5b3V0JDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKGNoYW5nZXMpO1xuICAgICAgICBjb25zdCB7IGlzQ2hlY2tlZCwgaW5saW5lRWRpdE1vZGUgfSA9IGNoYW5nZXM7XG4gICAgICAgIGxldCBuZWVkVG9Mb2FkRm9ybSA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5pbmxpbmVFZGl0TW9kZSkge1xuICAgICAgICAgICAgaWYgKGlzQ2hlY2tlZCkge1xuICAgICAgICAgICAgICAgIGlmICghaXNDaGVja2VkLmN1cnJlbnRWYWx1ZSAmJiBpc0NoZWNrZWQucHJldmlvdXNWYWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5fbmVlZFRvU2F2ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbmxpbmVFZGl0U2F2ZUZvcm1QYW5lbCgnQ0hFQ0tfQ0hBTkdFRCcpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc0NoZWNrZWQuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIG5lZWRUb0xvYWRGb3JtID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlubGluZUVkaXRNb2RlPy5jdXJyZW50VmFsdWUgJiYgIWlubGluZUVkaXRNb2RlPy5wcmV2aW91c1ZhbHVlICYmIHRoaXMuaXNDaGVja2VkKSB7XG4gICAgICAgICAgICBuZWVkVG9Mb2FkRm9ybSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAoIWlubGluZUVkaXRNb2RlPy5jdXJyZW50VmFsdWUgJiYgaW5saW5lRWRpdE1vZGU/LnByZXZpb3VzVmFsdWUgJiYgdGhpcy5pc0NoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMuX3NhdmVFZGl0ZWRNbyQubmV4dCgnRVNDJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG5lZWRUb0xvYWRGb3JtKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2FkQW5kQ3JlYXRlRm9ybVBhbmVsQ3RybHIoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlcy5tbyAmJiAhY2hhbmdlcy5tby5maXJzdENoYW5nZSAmJiB0aGlzLmlubGluZUVkaXRNb2RlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fZm9ybVBhbmVsTG9hZGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtUGFuZWxDdHJsci5TZXRWYWx1ZShjaGFuZ2VzLm1vLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgKG1vICYmICFtby5maXJzdENoYW5nZSAmJiB0aGlzLl9oYXNGb3JtUGFuZWxTZXJ2aWNlICYmIHRoaXMuaXNDaGVja2VkICYmIHRoaXMuaW5saW5lRWRpdE1vZGUpIHtcbiAgICAgICAgLy8gICAgIC8vdGhpcy5mb3JtUGFuZWxDdHJsci5TZXRWYWx1ZShjaGFuZ2VzLm1vLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIC8vIH1cbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgICAgIGlmICh0aGlzLmZvcm1QYW5lbEN0cmxyKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1QYW5lbEN0cmxyLnVuKCdicnVsZVNob3dNZXNzYWdlQWN0aW9uJywgdGhpcy5faGFuZGxlQnJ1bGVTaG93TWVzc2FnZUFjdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgT25DYXJ0YWJsZUZvcm1DbGljayhlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQ2hlY2tlZCkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUm93Q2hlY2soKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Jvd0NoZWNrKCk7XG4gICAgfVxuXG4gICAgb25Sb3dDbGljaygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yb3dDbGljay5lbWl0KHsgbW86IHRoaXMubW8sIGluZGV4OiB0aGlzLmluZGV4IH0pO1xuICAgIH1cbiAgICBvbkNvbHVtbkNoYW5nZVRvRWRpdE1vZGUoY29sdW1uRWw6IEhUTUxFbGVtZW50LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGZvY3VzYWJsZXMgPSBjb2x1bW5FbC5xdWVyeVNlbGVjdG9yQWxsKFxuICAgICAgICAgICAgYGJ1dHRvbixidXR0b246bm90KFtkaXNhYmxlZF0pLFtocmVmXSxpbnB1dDpub3QoW2Rpc2FibGVkXSksaW5wdXQsXG4gICAgICAgICAgICAgICAgc2VsZWN0LHNlbGVjdDpub3QoW2Rpc2FibGVkXSksdGV4dGFyZWEsdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fbGFzdEVkaXRhYmxlQ29sdW1uSW5kZXggPSBpbmRleDtcbiAgICAgICAgaWYgKCFmb2N1c2FibGVzLmxlbmd0aCB8fCB0aGlzLl9mb2N1c1RvRmlyc3RFaWR0YWJsZUNvbHVtbikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2ZvY3VzVG9GaXJzdEVpZHRhYmxlQ29sdW1uID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgbGFzdEZvY3VzYWJsZSA9IGZvY3VzYWJsZXNbMF07XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgKGxhc3RGb2N1c2FibGUgYXMgSFRNTEVsZW1lbnQpPy5mb2N1cygpO1xuICAgICAgICB9LCAwKTtcbiAgICB9XG4gICAgb25UYWJLZXlEb3duKGUsIGluZGV4KTogdm9pZCB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gdGhpcy5fbGFzdEVkaXRhYmxlQ29sdW1uSW5kZXgpIHtcbiAgICAgICAgICAgIFByZXZlbnREZWZhdWxFdmVudChlKTtcbiAgICAgICAgICAgIHRoaXMuX3NhdmVFZGl0ZWRNbyQubmV4dCgnVEFCJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25FZGl0Rm9ybVBhbmVsU2F2ZShlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NhdmVFZGl0ZWRNbyQubmV4dCgnQ1RSTCtFTlRFUicpO1xuICAgIH1cbiAgICBvbkVkaXRGb3JtUGFuZWxDYW5jZWwoZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zYXZlRWRpdGVkTW8kLm5leHQoJ0VTQycpO1xuICAgIH1cbiAgICBvblVsdkNvbW1hbmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudWx2Q29tbWFuZC5lbWl0KHsgbW86IHRoaXMubW8sIGluZGV4OiB0aGlzLmluZGV4IH0pO1xuICAgIH1cbiAgICBvbkFjdGlvbihjb21tYW5kQm9keTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aW9uLmVtaXQoY29tbWFuZEJvZHkpO1xuICAgIH1cbiAgICBvbkV4cGFuZENsaWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV4cGFuZENsaWNrLmVtaXQodGhpcy5tbyk7XG4gICAgfVxuICAgIG9uRHluYW1pY0NvbXBvbmVudEV2ZW50cyhlOiB7IHRpdGxlOiBzdHJpbmc7IGRhdGE/OiBhbnkgfSk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKGUudGl0bGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3Jvd0NoZWNrJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uUm93Q2hlY2soKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3Jvd0NsaWNrJzpcbiAgICAgICAgICAgICAgICB0aGlzLm9uUm93Q2xpY2soKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3VsdkNvbW1hbmQnOlxuICAgICAgICAgICAgICAgIHRoaXMub25VbHZDb21tYW5kKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNhcnRhYmxlRm9ybUNsb3NlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYXJ0YWJsZUZvcm1DbG9zZWQuZW1pdCh7IG1vOiB0aGlzLm1vLCBpbmRleDogdGhpcy5pbmRleCB9KTtcbiAgICB9XG4gICAgX3RyYWNrQnlDb2x1bW4oaW5kZXg6IG51bWJlciwgY29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke2NvbHVtbi5OYW1lfSR7aW5kZXh9YDtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF91cGRhdGVDYXJ0YWJsZU1vKHNlcmlhbGl6ZU1vOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHNlcmlhbGl6ZU1vICYmIHRoaXMuX2NhcnRhYmxlTW8pIHtcbiAgICAgICAgICAgIHNlcmlhbGl6ZU1vID0gYCR7c2VyaWFsaXplTW99YDtcbiAgICAgICAgICAgIGNvbnN0IG1vID0gQmFyc2FBcGkuRXh0LmRlY29kZShzZXJpYWxpemVNbyk7XG4gICAgICAgICAgICB0aGlzLl9jYXJ0YWJsZU1vID0geyAuLi50aGlzLl9jYXJ0YWJsZU1vLCAuLi5tbyB9O1xuICAgICAgICB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfY3JlYXRlQ2FydGFibGVQYXJhbXMoKTogdm9pZCB7XG4gICAgICAgIGxldCBjYXJ0YWJsZVRlbXBsYXRlID0gdGhpcy5fY2FydGFibGVUZW1wbGF0ZTtcbiAgICAgICAgY29uc3QgY2FydGFibGVNbyA9IHRoaXMuX2NhcnRhYmxlTW87XG4gICAgICAgIGNvbnN0IGNhcnRhYmxlV29ya2Zsb3dEYXRhID0gdGhpcy5fY2FydGFibGVXb3JrZmxvd0RhdGE7XG4gICAgICAgIGlmICh0aGlzLmhhc0NhcnRhYmxlVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIC8vIFRPRE8gdXBkYXRlIGNhcnRhYmxlIG1vO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGNhcnRhYmxlVGVtcGxhdGUgJiZcbiAgICAgICAgICAgIGNhcnRhYmxlTW8gJiZcbiAgICAgICAgICAgIHR5cGVvZiBjYXJ0YWJsZVdvcmtmbG93RGF0YSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICAgICAgIHRoaXMuX3NlcmlhbGl6ZWRSZWxhdGVkTW9cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBjYXJ0YWJsZVRlbXBsYXRlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShjYXJ0YWJsZVRlbXBsYXRlKSk7XG4gICAgICAgICAgICBjb25zdCB2aWV3ID0gY2FydGFibGVUZW1wbGF0ZS5WaWV3O1xuICAgICAgICAgICAgY2FydGFibGVUZW1wbGF0ZS5EYXRhID0geyBNbzogeyAuLi5jYXJ0YWJsZU1vIH0gfTtcbiAgICAgICAgICAgIGNhcnRhYmxlVGVtcGxhdGUuV29ya2Zsb3cgPSBjYXJ0YWJsZVdvcmtmbG93RGF0YSA9PT0gJycgPyBudWxsIDogSlNPTi5wYXJzZShjYXJ0YWJsZVdvcmtmbG93RGF0YSk7XG4gICAgICAgICAgICBpZiAoIXZpZXcuRXh0cmFKc29uUHJvcCkge1xuICAgICAgICAgICAgICAgIHZpZXcuRXh0cmFKc29uUHJvcCA9IHt9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmlldy5FeHRyYUpzb25Qcm9wLklzU2ltcGxlID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5jYXJ0YWJsZVBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICBmb3JtU2V0dGluZzogY2FydGFibGVUZW1wbGF0ZSxcbiAgICAgICAgICAgICAgICBtb0lkOiBjYXJ0YWJsZU1vLklkLFxuICAgICAgICAgICAgICAgIHR5cGVEZWZJZDogY2FydGFibGVNby4kVHlwZURlZklkLFxuICAgICAgICAgICAgICAgIHZpZXdJZDogdmlldy5UeXBlVmlld0lkLFxuICAgICAgICAgICAgICAgIGluRGlhbG9nOiBmYWxzZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuaGFzQ2FydGFibGVUZW1wbGF0ZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9uZWVkVG9TYXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBpZiAoIXRoaXMuaXNDaGVja2VkKSB7XG4gICAgICAgIC8vICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIC8vIH1cbiAgICAgICAgLy8gY29uc3QgaXNDaGlsZE5vZGUgPSAodGhpcy5fZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuY29udGFpbnMoZS50YXJnZXQpO1xuICAgICAgICAvLyBpZiAoaXNDaGlsZE5vZGUpIHtcbiAgICAgICAgLy8gICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgLy8gfVxuICAgICAgICBjb25zdCB0ID0gdGhpcy5pbmxpbmVFZGl0TW9kZSAmJiB0aGlzLl9oYXNGb3JtUGFuZWxTZXJ2aWNlO1xuICAgICAgICBpZiAoIXQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1QYW5lbEN0cmxyICYmIHRoaXMuZm9ybVBhbmVsQ3RybHIuSXNNb0NoYW5nZWQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2NoZWNrZm9jdXNPdXRGcm9tUm93KHRhcmdldCk6IHZvaWQge1xuICAgICAgICAvLyBjb25zdCBmb2N1c2FibGU6IE5vZGVMaXN0ID0gdGhpcy5fZm9jdXNhYmxlQ29udHJvbHM7XG4gICAgICAgIC8vIGxldCBmb3VuZEluRm9jdXNhYmxlID0gZmFsc2U7XG4gICAgICAgIC8vIGZvY3VzYWJsZS5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgIC8vICAgICBpZiAoYyA9PT0gdGFyZ2V0KSB7XG4gICAgICAgIC8vICAgICAgICAgZm91bmRJbkZvY3VzYWJsZSA9IHRydWU7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH0pO1xuICAgICAgICAvLyBpZiAoIWZvdW5kSW5Gb2N1c2FibGUpIHtcbiAgICAgICAgLy8gICAgIHRoaXMuX3NhdmVFZGl0ZWRNbyQubmV4dCgnVEFCJyk7XG4gICAgICAgIC8vIH1cbiAgICB9XG4gICAgcHJvdGVjdGVkIF9yb3dDaGVjaygpOiB2b2lkIHtcbiAgICAgICAgLy8gaWYgKHRoaXMuaXNDaGVja2VkKSB7XG4gICAgICAgIC8vICAgICByZXR1cm47XG4gICAgICAgIC8vIH1cbiAgICAgICAgdGhpcy5yb3dDaGVjay5lbWl0KHsgbW86IHRoaXMubW8sIGluZGV4OiB0aGlzLmluZGV4IH0pO1xuICAgICAgICBpZiAodGhpcy5jYXJ0YWJsZVBhcmFtcykge1xuICAgICAgICAgICAgY29uc3QgY2hvaWNlTGlzdDogQ2hvaWNlRGVmW10gPSB0aGlzLmNhcnRhYmxlUGFyYW1zLmZvcm1TZXR0aW5nPy5Xb3JrZmxvdz8uQ2hvaWNlTGlzdDtcbiAgICAgICAgICAgIGlmIChjaG9pY2VMaXN0Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMud29ya2Zsb3dTaGFyZUJ1dHRvbnMuZW1pdCh7IG1vOiB0aGlzLm1vLCBjaG9pY2VMaXN0LCBhZGQ6ICF0aGlzLmlzQ2hlY2tlZCB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBfaGFuZGxlVmFsdWVDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pc0NoZWNrZWQpIHtcbiAgICAgICAgICAgIHRoaXMub25Sb3dDaGVjaygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Zvcm1wYW5lbFZhbHVlQ2hhbmdlZCQubmV4dCgpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3N5bmNNbygpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgc3luY1dpdGhGb3JtcGFuZWxNbyA9IHRoaXMubW87XG4gICAgICAgIGNvbnN0IF9pc0NoZWNrZWQgPSB0aGlzLm1vLiRJc0NoZWNrZWQ7XG4gICAgICAgIGNvbnN0IGZvcm1QYW5lbEN0cmxyTW8gPSB0aGlzLmZvcm1QYW5lbEN0cmxyLk1vO1xuICAgICAgICB0aGlzLl91cGRhdGVXaXRoT3JpZ2luYWxWYWx1ZXMoZm9ybVBhbmVsQ3RybHJNbywgc3luY1dpdGhGb3JtcGFuZWxNbyk7XG4gICAgICAgIHN5bmNXaXRoRm9ybXBhbmVsTW9bJyRPcmlnaW5hbFZhbHVlcyddID0gZm9ybVBhbmVsQ3RybHJNb1snJE9yaWdpbmFsVmFsdWVzJ107XG4gICAgICAgIHN5bmNXaXRoRm9ybXBhbmVsTW9bJyRGaWVsZERpY3QnXSA9IGZvcm1QYW5lbEN0cmxyTW9bJyRGaWVsZERpY3QnXTtcbiAgICAgICAgc3luY1dpdGhGb3JtcGFuZWxNb1snJFN0YXRlJ10gPSBmb3JtUGFuZWxDdHJsck1vWyckU3RhdGUnXTsgLy8gdGhpcyBhZGQgYmVjYXVzZSBpZiB3ZSBlZGl0IHVuY2hhbmdlZCBtbyBpdCBkb2VzIG5vdCByZWZsZWN0IHRvIG1vIG9mIHVsdi5cbiAgICAgICAgdGhpcy5tbyA9IHsgLi4uc3luY1dpdGhGb3JtcGFuZWxNbyB9O1xuICAgICAgICB0aGlzLm1vLiRJc0NoZWNrZWQgPSBfaXNDaGVja2VkO1xuICAgICAgICByZXR1cm4gZnJvbShQcm9taXNlLnJlc29sdmUoKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF91cGRhdGVXaXRoT3JpZ2luYWxWYWx1ZXMoc291cmNlOiBNZXRhb2JqZWN0RGF0YU1vZGVsLCBkZXN0OiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIE9iamVjdC5rZXlzKHNvdXJjZS4kT3JpZ2luYWxWYWx1ZXMpLmZvckVhY2goKGM6IGFueSkgPT4ge1xuICAgICAgICAgICAgZGVzdFtjXSA9IHNvdXJjZVtjXTtcbiAgICAgICAgICAgIGlmIChzb3VyY2VbYyArICckQ2FwdGlvbiddKSB7XG4gICAgICAgICAgICAgICAgZGVzdFtjICsgJyRDYXB0aW9uJ10gPSBzb3VyY2VbYyArICckQ2FwdGlvbiddO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNvdXJjZVtjICsgJyRJY29uJ10pIHtcbiAgICAgICAgICAgICAgICBkZXN0W2MgKyAnJEljb24nXSA9IHNvdXJjZVtjICsgJyRJY29uJ107XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfcmFpc2VGb3JtUGFuZWxWYWx1ZUNoYW5nZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWRpdEZvcm1QYW5lbFZhbHVlQ2hhbmdlLmVtaXQodGhpcy5tbyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9oYW5kbGVCcnVsZVNob3dNZXNzYWdlQWN0aW9uKGFjdGlvbjogQnJ1bGVBY3Rpb25NZXNzYWdlKTogdm9pZCB7XG4gICAgICAgIGFjdGlvbi5NZXNzYWdlRXhwcmVzc2lvbkh0bWwgPSB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoYWN0aW9uLk1lc3NhZ2VFeHByZXNzaW9uKTtcbiAgICAgICAgdGhpcy5icnVsZUFjdGlvbk1lc3NhZ2UgPSBhY3Rpb247XG4gICAgICAgIC8vIGlmIChhY3Rpb24uTWVzc2FnZVR5cGUgPT09IEJhcnNhQXBpLkNvbW1vbi5FbnVtcy5TaG93TWVzc2FnZVJ1bGVBY3Rpb25fVHlwZS5JbmZvcm1hdGlvbikge1xuICAgICAgICAvLyAgICAgaWYgKGFjdGlvbi5Fc2NhcGVDaGFyYWN0ZXJzKSBVbC5Nc2dCb3guSW5mbyhhY3Rpb24uTWVzc2FnZUV4cHJlc3Npb24sIGRvUmV0dXJuKTtcbiAgICAgICAgLy8gICAgIGVsc2UgVWwuTXNnQm94LkluZm9fU2hvd0h0bWwoYWN0aW9uLk1lc3NhZ2VFeHByZXNzaW9uLCBkb1JldHVybik7XG4gICAgICAgIC8vIH0gZWxzZSBpZiAoYWN0aW9uLk1lc3NhZ2VUeXBlID09PSBCYXJzYUFwaS5Db21tb24uRW51bXMuU2hvd01lc3NhZ2VSdWxlQWN0aW9uX1R5cGUuRXJyb3IpIHtcbiAgICAgICAgLy8gICAgIHZhciBkb1JldHVybjAgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIC8vICAgICAgICAgdGhpcy5fZm9ybVBhbmVsLlJlZm9jdXNDdXJyZW50RmllbGQoKTtcbiAgICAgICAgLy8gICAgICAgICBkb1JldHVybihuZXcgQ29tbW9uLlNpbGVudEV4Y2VwdGlvbigpKTtcbiAgICAgICAgLy8gICAgIH07XG4gICAgICAgIC8vICAgICBpZiAoYWN0aW9uLkVzY2FwZUNoYXJhY3RlcnMpIFVsLk1zZ0JveC5FcnJvcihhY3Rpb24uTWVzc2FnZUV4cHJlc3Npb24sIGRvUmV0dXJuMC5iaW5kKHRoaXMpKTtcbiAgICAgICAgLy8gICAgIGVsc2UgVWwuTXNnQm94LkVycm9yX1Nob3dIdG1sKGFjdGlvbi5NZXNzYWdlRXhwcmVzc2lvbiwgZG9SZXR1cm4wLmJpbmQodGhpcykpO1xuICAgICAgICAvLyB9IGVsc2UgaWYgKGFjdGlvbi5NZXNzYWdlVHlwZSA9PT0gQmFyc2FBcGkuQ29tbW9uLkVudW1zLlNob3dNZXNzYWdlUnVsZUFjdGlvbl9UeXBlLk9rQ2FuY2VsKSB7XG4gICAgICAgIC8vICAgICBVbC5Nc2dCb3guQ29uZmlybVllc05vX1NhZmUodHJ1ZSwgYWN0aW9uLk1lc3NhZ2VFeHByZXNzaW9uLCBCQkIuU2VsZWN0LCBhY3Rpb24uRXNjYXBlQ2hhcmFjdGVycywgZG9SZXR1cm4pO1xuICAgICAgICAvLyB9XG4gICAgfVxuICAgIHByb3RlY3RlZCBfY3JlYXRlRm9ybVBhbmVsQ3RybHIobW86IE1ldGFvYmplY3REYXRhTW9kZWwsIHR5cGVEZWZJZDogc3RyaW5nKTogYW55IHtcbiAgICAgICAgaWYgKCF0aGlzLmZvcm1QYW5lbEN0cmxyKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1QYW5lbEN0cmxyID0gY3JlYXRlR3JpZEVkaXRvckZvcm1QYW5lbChcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1TZXR0aW5nLFxuICAgICAgICAgICAgICAgIHsgLi4ubW8gfSxcbiAgICAgICAgICAgICAgICB0eXBlRGVmSWQsXG4gICAgICAgICAgICAgICAgdGhpcy5leHRyYVJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIHRoaXMuaW5Sb3dcbiAgICAgICAgICAgICAgICAvLyBCYXJzYUFwaS5Db21tb24uVXRpbC5UcnlHZXRWYWx1ZSh0aGlzLmNvbnRleHQuU2V0dGluZywgJ0V4dHJhLlJlbGF0aW9uJylcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mb3JtUGFuZWxDdHJsci5JbmxpbmVFZGl0SW5SZXBvcnQgPSB0cnVlO1xuICAgICAgICB0aGlzLmZvcm1QYW5lbEN0cmxyLm9uKHtcbiAgICAgICAgICAgIGJydWxlU2hvd01lc3NhZ2VBY3Rpb246IHRoaXMuX2hhbmRsZUJydWxlU2hvd01lc3NhZ2VBY3Rpb24uYmluZCh0aGlzKSxcbiAgICAgICAgICAgIHZhbHVlQ2hhbmdlOiB0aGlzLl9oYW5kbGVWYWx1ZUNoYW5nZS5iaW5kKHRoaXMpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1QYW5lbEN0cmxyO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfbG9hZEFuZENyZWF0ZUZvcm1QYW5lbEN0cmxyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmb3JtU2V0dGluZ0RhdGEgPSB0aGlzLmZvcm1TZXR0aW5nLkRhdGE7XG4gICAgICAgIGNvbnN0IGZvcm1NbyA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMubW8sXG4gICAgICAgICAgICAkRmllbGREaWN0OiBmb3JtU2V0dGluZ0RhdGEuTW8uJEZpZWxkRGljdCxcbiAgICAgICAgICAgICRUeXBlRGVmSWQ6IGZvcm1TZXR0aW5nRGF0YS5Nby4kVHlwZURlZklkLFxuICAgICAgICAgICAgJE9yaWdpbmFsVmFsdWVzOiB7fVxuICAgICAgICB9O1xuICAgICAgICBpZiAodGhpcy5fZm9ybVBhbmVsTG9hZGVkKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1QYW5lbEN0cmxyLlNldFZhbHVlKGZvcm1Nbyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jcmVhdGVGb3JtUGFuZWxDdHJscihmb3JtTW8sIHRoaXMudHlwZURlZklkKTtcbiAgICAgICAgdGhpcy5fZm9ybVBhbmVsTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZm9ybVBhbmVsQ3RybHIgPSB0aGlzLmZvcm1QYW5lbEN0cmxyO1xuICAgICAgICB0aGlzLmZvcm1QYW5lbEN0cmxyLlVsdk1vRGF0YUxpc3RDb3VudCA9IHRoaXMubW9EYXRhTGlzdENvdW50IC0gMTtcbiAgICAgICAgZm9ybVBhbmVsQ3RybHIuTG9hZEFuZENyZWF0ZShudWxsLCBmYWxzZSwgZmFsc2UsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbUZvcm1QYW5lbFVpID0gZm9ybVBhbmVsQ3RybHIuQWRhcHRlci5Db250cm9sO1xuICAgICAgICAgICAgY29uc3QgcGFyZW50TW8gPSB0aGlzLl9wYXJlbnRGb3JtUGFuZWxTZXJ2aWNlID8gdGhpcy5fcGFyZW50Rm9ybVBhbmVsU2VydmljZS5tbyA6IG51bGw7XG4gICAgICAgICAgICBpZiAodGhpcy5leHRyYVJlbGF0aW9uICYmIHBhcmVudE1vICYmIHRoaXMuZXh0cmFSZWxhdGlvbi5SZWxhdGlvblR5cGUgPT09ICdDb21wb3NpdGlvbicpIHtcbiAgICAgICAgICAgICAgICBmb3JtUGFuZWxDdHJsci5Nby5TZXRGVmFsdWUodGhpcy5leHRyYVJlbGF0aW9uLlBhcmVudEZkTmFtZSwgcGFyZW50TW8pO1xuICAgICAgICAgICAgICAgIC8vIG5ld0Zvcm1TZXR0aW5ncy5EYXRhLk1vW3JlbGF0aW9uLlBhcmVudEZkTmFtZV0gPSBwYXJlbnRNby5HZXRDaGFuZ2VkT2JqZWN0KCk7XG4gICAgICAgICAgICAgICAgLy8gbmV3Rm9ybVNldHRpbmdzLkRhdGEuTW9bcmVsYXRpb24uUGFyZW50RmROYW1lXS4kU3RhdGUgPSBwYXJlbnRNby4kU3RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjdXN0b21Gb3JtUGFuZWxVaS5SZWZyZXNoID0gKCkgPT4ge307XG4gICAgICAgICAgICB0aGlzLl9mb3JtUGFuZWxTZXJ2aWNlLmNvbnRleHQgPSBmb3JtUGFuZWxDdHJsci5BZGFwdGVyLkNvbnRyb2w7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3Jlc2V0U2F2aW5nU3RhdGVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhhc0Vycm9yID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYnJ1bGVBY3Rpb25NZXNzYWdlID0gbnVsbDtcbiAgICAgICAgdGhpcy5zYXZlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfc2V0U2F2aW5nU3RhdGUoZXJyKTogdm9pZCB7XG4gICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgIHRoaXMuaGFzRXJyb3IgPSB0cnVlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaGFzRXJyb3IgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zYXZlZCA9IHRydWU7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfaW5saW5lRWRpdFNhdmVGb3JtUGFuZWwocmVhc29uKTogUHJvbWlzZTx7IHJlYXNvbjogUmVhc29uVG9TYXZlOyBzdWNjZWVkOiBib29sZWFuOyBzYXZlZDogYm9vbGVhbiB9PiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHsgcmVhc29uOiBSZWFzb25Ub1NhdmU7IHN1Y2NlZWQ6IGJvb2xlYW47IHNhdmVkOiBib29sZWFuIH0+KChyZXNvbHZlLCBfKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuZm9ybVBhbmVsQ3RybHIuSXNNb0NoYW5nZWQoKSkge1xuICAgICAgICAgICAgICAgIC8vIGlmIHN0YXRlIG9mIG1vIGlzIG5ldyBvciBtb2RpZGZpZWQgdGhlbiBpdCBuZWVkcyB0byB1cGRhdGVcbiAgICAgICAgICAgICAgICByZXNvbHZlKHsgcmVhc29uLCBzdWNjZWVkOiB0cnVlLCBzYXZlZDogZmFsc2UgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmb3JtUGFuZWxDdHJsck1vID0gdGhpcy5mb3JtUGFuZWxDdHJsci5NbztcbiAgICAgICAgICAgIGRlbGV0ZSBmb3JtUGFuZWxDdHJsck1vLmpzb247XG4gICAgICAgICAgICAvLyB0aGlzLnNhdmluZyA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMubW8uJElubGluZU1vQ2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5lZGl0Rm9ybVBhbmVsU2F2ZS5lbWl0KHRoaXMubW8pO1xuICAgICAgICAgICAgdGhpcy5icnVsZUFjdGlvbk1lc3NhZ2UgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5mb3JtUGFuZWxDdHJsci5TYXZlKGZhbHNlLCAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5zYXZpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1QYW5lbEN0cmxyLlNldElzQ2hhbmdlZChmYWxzZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0U2F2aW5nU3RhdGUoZXJyKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHsgcmVhc29uLCBzdWNjZWVkOiB0cnVlLCBzYXZlZDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5pbnRlcmZhY2UgQnJ1bGVBY3Rpb25NZXNzYWdlIHtcbiAgICBNZXNzYWdlVHlwZTogbnVtYmVyO1xuICAgIEVzY2FwZUNoYXJhY3RlcnM6IGJvb2xlYW47XG4gICAgTWVzc2FnZUV4cHJlc3Npb246IHN0cmluZztcbiAgICBNZXNzYWdlRXhwcmVzc2lvbkh0bWw6IFNhZmVIdG1sO1xufVxuIl19