myrta-ui 1.1.33 → 1.1.34

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.
@@ -122,8 +122,11 @@ export class FormulaEditorComponent {
122
122
  }
123
123
  onKeyup(event) {
124
124
  event.preventDefault();
125
- this.inputElement.nativeElement.blur();
125
+ const { value, visibleValue } = this._transformValue(this._modifiedValue(this._inputValue), true);
126
+ this.updateValue(value);
127
+ this.updateVisibleValue(visibleValue);
126
128
  this.isFocused = false;
129
+ this.inputElement.nativeElement.blur();
127
130
  this._detector.detectChanges();
128
131
  }
129
132
  insertTag(whiteListItem) {
@@ -262,7 +265,8 @@ export class FormulaEditorComponent {
262
265
  }
263
266
  clickOut(event) {
264
267
  if (!this.eRef.nativeElement.contains(event.target) && this.isFocused) {
265
- const { visibleValue } = this._transformValue(this._modifiedValue(this._inputValue), true);
268
+ const { value, visibleValue } = this._transformValue(this._modifiedValue(this._inputValue), true);
269
+ this.updateValue(value);
266
270
  this.updateVisibleValue(visibleValue);
267
271
  this.isFocused = false;
268
272
  this._detector.detectChanges();
@@ -324,4 +328,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
324
328
  type: HostListener,
325
329
  args: ['document:click', ['$event']]
326
330
  }] } });
327
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQWMsWUFBWSxFQUNuQyxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQ3ZDLE1BQU0sRUFBRSxTQUFTLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4SCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFekQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUNwQixNQUFNLCtCQUErQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxzQkFBc0IsRUFBMkIsTUFBTSxrQ0FBa0MsQ0FBQzs7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Q0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7NEJBQ3JELEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUM7MERBMEVvQyxRQUFROzBCQUEzQyxNQUFNOzJCQUFDLFFBQVE7cUdBbkNGLE1BQU07c0JBQXJCLEtBQUs7Z0JBRVUsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUdVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUdGLEtBQUs7c0JBRFIsS0FBSztnQkFlcUMsWUFBWTtzQkFBdEQsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUV4QixPQUFPO3NCQUF2QixNQUFNO2dCQUNVLE9BQU87c0JBQXZCLE1BQU07Z0JBQ1UsV0FBVztzQkFBM0IsTUFBTTtnQkEyUFAsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LFxyXG4gIE91dHB1dCwgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VzRW51bSwgRXJyb3JUeXBlRW51bSB9IGZyb20gJy4vZW51bXMvZXJyb3ItbWVzc2FnZXMuZW51bSc7XHJcbmltcG9ydCB7IGNyZWF0ZUJyYWNrZXQsIGNyZWF0ZU51bWJlciwgY3JlYXRlT3BlcmF0b3IsIGNyZWF0ZVRhZywgY3JlYXRlVGFnT3V0c2lkZSB9IGZyb20gJy4vaGVscGVycy9jcmVhdGUtdGFncy5oZWxwZXInO1xyXG5pbXBvcnQgeyBpc0FuIH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9pcy1udW1iZXIuaGVscGVyJztcclxuaW1wb3J0IHsgV2hpdGVMaXN0SXRlbU1vZGVsLCBDaGVja0Vycm9yUmVzdWx0TW9kZWwgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7XHJcbiAgY2hlY2tCcmFja2V0RXJyb3JzLFxyXG4gIGNoZWNrRGl2aWRlckVycm9ycyxcclxuICBjaGVja0ludGVycHJldGF0aW9uRXJyb3JzLFxyXG4gIGNoZWNrU2VxdWVuY2VFcnJvcnNcclxufSBmcm9tICcuL2hlbHBlcnMvY2hlY2stZXJyb3JzLmhlbHBlcic7XHJcbmltcG9ydCB7IEZvcm11bGFFZGl0b3JWYWx1ZVR5cGVzLCBGb3JtdWxhRWRpdG9yVmFsdWVXaXRoSWQgfSBmcm9tICcuL21vZGVscyc7XHJcbmltcG9ydCB7IEZvcm11bGFFZGl0b3JTaXplc0VudW0sIEZvcm11bGFFZGl0b3JTaXplc1R5cGVzIH0gZnJvbSAnLi9lbnVtcy9mb3JtdWxhLWVkaXRvci1zaXplLmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtZm9ybXVsYS1lZGl0b3InLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtdWxhLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvcm11bGFFZGl0b3JDb21wb25lbnQpLFxyXG4gICAgbXVsdGk6IHRydWVcclxuICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybXVsYUVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBwcml2YXRlIF9yYW5nZTogYW55O1xyXG4gIHByaXZhdGUgX3NlbGVjdGlvbjogU2VsZWN0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBfY3Vyc29yUG9zaXRpb246IHtcclxuICAgIHN0YXJ0Q29udGFpbmVyOiBOb2RlIHwgbnVsbCxcclxuICAgIGVuZENvbnRhaW5lcjogTm9kZSB8IG51bGwsXHJcbiAgICBzdGFydE9mZnNldDogbnVtYmVyLFxyXG4gICAgZW5kT2Zmc2V0OiBudW1iZXJcclxuICB9ID0ge1xyXG4gICAgc3RhcnRDb250YWluZXI6IG51bGwsXHJcbiAgICBlbmRDb250YWluZXI6IG51bGwsXHJcbiAgICBzdGFydE9mZnNldDogMCxcclxuICAgIGVuZE9mZnNldDogMFxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgc2VhcmNoVGV4dDogc3RyaW5nID0gJyc7XHJcblxyXG4gIHByaXZhdGUgX29wZXJhdG9yTGlzdDogc3RyaW5nW10gPSBbJysnLCAnLScsICcqJywgJy8nXTtcclxuICBwcml2YXRlIF9icmFja2V0TGlzdDogc3RyaW5nW10gPSBbJygnLCAnKSddO1xyXG4gIHByaXZhdGUgX2l0ZW1MaXN0OiBXaGl0ZUxpc3RJdGVtTW9kZWxbXSA9IFtdO1xyXG4gIHByaXZhdGUgX21vZGlmaWVkSXRlbUxpc3Q6IHsgaXRlbXM6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9LCByZWdFeHA6IFJlZ0V4cCB9ID0ge1xyXG4gICAgaXRlbXM6IHt9LFxyXG4gICAgcmVnRXhwOiBuZXcgUmVnRXhwKCcnKSxcclxuICB9O1xyXG5cclxuICBwdWJsaWMgdmFsdWUgPSAnJztcclxuICBwdWJsaWMgdmlzaWJsZVZhbHVlID0gJyc7XHJcblxyXG4gIHB1YmxpYyBpc0ZvY3VzZWQgPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIGVycm9yTW9kZWw6IENoZWNrRXJyb3JSZXN1bHRNb2RlbCA9IHtcclxuICAgIGlzRXJyb3I6IGZhbHNlLFxyXG4gICAgZXJyb3JUeXBlOiBFcnJvclR5cGVFbnVtLkRlZmF1bHRcclxuICB9O1xyXG5cclxuICAvLyBTQVZFIFNUQVRFXHJcbiAgcHVibGljIHV1aWQ6IHN0cmluZyA9IHV1aWR2NCgpO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZHM6IEZpZWxkW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUNsYXNzZXMgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgc2l6ZTogRm9ybXVsYUVkaXRvclNpemVzVHlwZXMgPSAnbGFyZ2UnO1xyXG5cclxuICAvLyBWQUxJREFURVxyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGludmFsaWRNZXNzYWdlOiBzdHJpbmcgfCBzdHJpbmdbXSA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGVja0ludmFsaWQ6IHRydWUgfCBmYWxzZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNldCBpdGVtcyhpdGVtczogV2hpdGVMaXN0SXRlbU1vZGVsW10pIHtcclxuICAgIGNvbnN0IGl0ZW1zTWFwID0gT2JqZWN0LmZyb21FbnRyaWVzKGl0ZW1zLm1hcChvYmogPT4gW29iai5sYWJlbCwgb2JqLnN5c05hbWVdKSk7XHJcblxyXG4gICAgdGhpcy5faXRlbUxpc3QgPSBpdGVtcztcclxuICAgIHRoaXMuX21vZGlmaWVkSXRlbUxpc3QuaXRlbXMgPSBpdGVtc01hcDtcclxuICAgIHRoaXMuX21vZGlmaWVkSXRlbUxpc3QucmVnRXhwID0gbmV3IFJlZ0V4cChpdGVtcy5tYXAocyA9PiBzLmxhYmVsKS5qb2luKCd8JyksICdnJyk7XHJcblxyXG4gICAgY29uc3Qge3Zpc2libGVWYWx1ZX0gPSB0aGlzLl90cmFuc2Zvcm1WYWx1ZSh0aGlzLl9tb2RpZmllZFZhbHVlKHRoaXMuX2lucHV0VmFsdWUpLCB0cnVlKTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVWYWx1ZSh2aXNpYmxlVmFsdWUpO1xyXG5cclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcsIHtzdGF0aWM6IHRydWV9KSBpbnB1dEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxGb3JtdWxhRWRpdG9yVmFsdWVUeXBlcz4gPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm11bGFFZGl0b3JWYWx1ZVR5cGVzPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgYmx1cnJlZDogRXZlbnRFbWl0dGVyPEZvcm11bGFFZGl0b3JWYWx1ZVdpdGhJZD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm11bGFFZGl0b3JWYWx1ZVdpdGhJZD4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Rm9ybXVsYUVkaXRvclZhbHVlV2l0aElkPiA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9ybXVsYUVkaXRvclZhbHVlV2l0aElkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxyXG4gICAgcHJpdmF0ZSBfZGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBlUmVmOiBFbGVtZW50UmVmXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldEVycm9yTWVzc2FnZSgpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkTWVzc2FnZSB8fCBFcnJvck1lc3NhZ2VzRW51bVt0aGlzLmVycm9yTW9kZWwuZXJyb3JUeXBlXTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZmlsdGVyZWRMaXN0KCk6IFdoaXRlTGlzdEl0ZW1Nb2RlbFtdIHtcclxuICAgIHJldHVybiB0aGlzLl9pdGVtTGlzdC5maWx0ZXIoaXRlbSA9PiBpdGVtLmxhYmVsLmluY2x1ZGVzKHRoaXMuc2VhcmNoVGV4dCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRJbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZXJyb3JNb2RlbC5pc0Vycm9yIHx8IHRoaXMuaW52YWxpZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcmVhZG9ubHlDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucmVhZG9ubHkgPyAnbXJ4LWlucHV0X19yZWFkb25seScgOiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2hlY2tWYWxpZENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrSW52YWxpZCA9PT0gZmFsc2UgPyAnbXJ4LWlucHV0LWNoZWNrZWQtc3VjY2VzcycgOiB0aGlzLmNoZWNrSW52YWxpZCA9PT0gdHJ1ZSA/ICdtcngtaW5wdXQtY2hlY2tlZC1lcnJvcicgOiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke0Zvcm11bGFFZGl0b3JTaXplc0VudW1bdGhpcy5zaXplXX0gJHt0aGlzLmN1c3RvbUNsYXNzZXN9ICR7dGhpcy5yZWFkb25seUNsYXNzfSAke3RoaXMuY2hlY2tWYWxpZENsYXNzZXN9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0SWNvbkNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5zaXplICE9PSAnbGFyZ2UnID8gJ2ljb24tZm9udC0xNicgOiAnaWNvbi1mb250LTI0J31gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjYW5DbGVhbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMudmlzaWJsZVZhbHVlLnRyaW0oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IF9pbnB1dFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudCB8fCAnJztcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUob3V0c2lkZVZhbHVlOiBGb3JtdWxhRWRpdG9yVmFsdWVUeXBlcyk6IHZvaWQge1xyXG4gICAgaWYgKG91dHNpZGVWYWx1ZSAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlID09PSAnJykge1xyXG4gICAgICBjb25zdCB7dmlzaWJsZVZhbHVlfSA9IHRoaXMuX3RyYW5zZm9ybVZhbHVlKHRoaXMuX21vZGlmaWVkVmFsdWUob3V0c2lkZVZhbHVlKSk7XHJcblxyXG4gICAgICB0aGlzLnZhbHVlID0gb3V0c2lkZVZhbHVlO1xyXG4gICAgICB0aGlzLnZpc2libGVWYWx1ZSA9IHZpc2libGVWYWx1ZTtcclxuXHJcbiAgICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCB7dmFsdWUsIHNlYXJjaFRleHR9ID0gdGhpcy5fdHJhbnNmb3JtVmFsdWUodGhpcy5fbW9kaWZpZWRWYWx1ZSh0aGlzLl9pbnB1dFZhbHVlKSwgZmFsc2UpO1xyXG5cclxuICAgIC8vIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xyXG5cclxuICAgIHRoaXMuc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQ7XHJcblxyXG4gICAgdGhpcy5fc3RvcmVDdXJzb3JQb3NpdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgb25Gb2N1cyhldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcclxuICAgIHRoaXMuX2RldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhcigpIHtcclxuICAgIHRoaXMudXBkYXRlVmFsdWUoJycpO1xyXG4gICAgdGhpcy51cGRhdGVWaXNpYmxlVmFsdWUoJycpO1xyXG4gIH1cclxuXHJcbiAgb25CbHVyKGV2ZW50OiBFdmVudCkge1xyXG4gICAgdGhpcy5fc3RvcmVDdXJzb3JQb3NpdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgb25LZXl1cChldmVudDogYW55KSB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGluc2VydFRhZyh3aGl0ZUxpc3RJdGVtOiBXaGl0ZUxpc3RJdGVtTW9kZWwpIHtcclxuICAgIHRoaXMuX3Jlc3RvcmVDdXJzb3JQb3NpdGlvbih0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMuX2luc2VydFBvc2l0aW9uVGV4dChgeyR7d2hpdGVMaXN0SXRlbS5zeXNOYW1lfX1gKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3Qge3ZhbHVlLCB2aXNpYmxlVmFsdWV9ID0gdGhpcy5fdHJhbnNmb3JtVmFsdWUodGhpcy5fbW9kaWZpZWRWYWx1ZSh0aGlzLl9pbnB1dFZhbHVlKSwgZmFsc2UpO1xyXG5cclxuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgIHRoaXMudXBkYXRlVmlzaWJsZVZhbHVlKHZpc2libGVWYWx1ZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9wbGFjZUNhcmV0QXRFbmQoKTtcclxuXHJcbiAgICB0aGlzLnNlYXJjaFRleHQgPSAnJztcclxuICB9XHJcblxyXG4gIHVwZGF0ZVZpc2libGVWYWx1ZShpbnNpZGVWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnZpc2libGVWYWx1ZSA9IGluc2lkZVZhbHVlO1xyXG5cclxuICAgIHRoaXMuX3N0b3JlQ3Vyc29yUG9zaXRpb24oKTtcclxuXHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVWYWx1ZShpbnNpZGVWYWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gaW5zaWRlVmFsdWU7XHJcbiAgICB0aGlzLmNoYW5nZWQuZW1pdChpbnNpZGVWYWx1ZSk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoe3ZhbHVlOiBpbnNpZGVWYWx1ZSwgaWQ6IHRoaXMudXVpZH0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZShpbnNpZGVWYWx1ZSk7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbW9kaWZpZWRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB2YWx1ZS5yZXBsYWNlKHRoaXMuX21vZGlmaWVkSXRlbUxpc3QucmVnRXhwLCBtYXRjaCA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9tb2RpZmllZEl0ZW1MaXN0Lml0ZW1zW21hdGNoXSA/IGB7JHt0aGlzLl9tb2RpZmllZEl0ZW1MaXN0Lml0ZW1zW21hdGNoXX19YCA6ICcnO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90cmFuc2Zvcm1WYWx1ZShjb250ZW50OiBzdHJpbmcsIGFuYWxpc2U6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgY29uc3QgdmFsdWVBcnJheSA9IGNvbnRlbnQuc3BsaXQoL1tcXHNcXHUwMEEwXSsvKS5maWx0ZXIoQm9vbGVhbik7XHJcblxyXG4gICAgY29uc3QgdmlzaWJsZVZhbHVlQXJyYXk6IHN0cmluZ1tdID0gW107XHJcbiAgICBjb25zdCBvcmlnaW5hbFZhbHVlQXJyYXk6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgbGV0IGlzSW50ZXJwcmV0YXRpb25FcnJvciA9IGZhbHNlO1xyXG5cclxuICAgIGxldCBzZWFyY2hUZXh0ID0gJyc7XHJcblxyXG4gICAgdmFsdWVBcnJheS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNsZWFyZWRJdGVtID0gaXRlbS50cmltKCk7XHJcbiAgICAgIGNvbnN0IGZpbmRJdGVtID0gdGhpcy5faXRlbUxpc3QuZmluZCh2ID0+IGNsZWFyZWRJdGVtLmluY2x1ZGVzKHYuc3lzTmFtZSkpO1xyXG5cclxuICAgICAgaWYgKGZpbmRJdGVtKSB7XHJcbiAgICAgICAgdmlzaWJsZVZhbHVlQXJyYXkucHVzaChjcmVhdGVUYWcoZmluZEl0ZW0ubGFiZWwpKTtcclxuICAgICAgICBvcmlnaW5hbFZhbHVlQXJyYXkucHVzaChjcmVhdGVUYWdPdXRzaWRlKGZpbmRJdGVtLnN5c05hbWUpKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLl9icmFja2V0TGlzdC5maW5kKHYgPT4gdiA9PT0gY2xlYXJlZEl0ZW0pKSB7XHJcbiAgICAgICAgdmlzaWJsZVZhbHVlQXJyYXkucHVzaChjcmVhdGVCcmFja2V0KGNsZWFyZWRJdGVtKSk7XHJcbiAgICAgICAgb3JpZ2luYWxWYWx1ZUFycmF5LnB1c2goY2xlYXJlZEl0ZW0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX29wZXJhdG9yTGlzdC5maW5kKHYgPT4gdiA9PT0gY2xlYXJlZEl0ZW0pKSB7XHJcbiAgICAgICAgdmlzaWJsZVZhbHVlQXJyYXkucHVzaChjcmVhdGVPcGVyYXRvcihjbGVhcmVkSXRlbSkpO1xyXG4gICAgICAgIG9yaWdpbmFsVmFsdWVBcnJheS5wdXNoKGNsZWFyZWRJdGVtKTtcclxuICAgICAgfSBlbHNlIGlmIChpc0FuKGNsZWFyZWRJdGVtKSkge1xyXG4gICAgICAgIHZpc2libGVWYWx1ZUFycmF5LnB1c2goY3JlYXRlTnVtYmVyKGNsZWFyZWRJdGVtKSk7XHJcbiAgICAgICAgb3JpZ2luYWxWYWx1ZUFycmF5LnB1c2goY2xlYXJlZEl0ZW0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHZpc2libGVWYWx1ZUFycmF5LnB1c2goY2xlYXJlZEl0ZW0pO1xyXG4gICAgICAgIG9yaWdpbmFsVmFsdWVBcnJheS5wdXNoKGNsZWFyZWRJdGVtKTtcclxuICAgICAgICBzZWFyY2hUZXh0ID0gY2xlYXJlZEl0ZW07XHJcblxyXG4gICAgICAgIGlzSW50ZXJwcmV0YXRpb25FcnJvciA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChhbmFsaXNlKSB7XHJcbiAgICAgIHRoaXMuX2NoZWNrRXJyb3JzKG9yaWdpbmFsVmFsdWVBcnJheSwgaXNJbnRlcnByZXRhdGlvbkVycm9yKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB2YWx1ZTogb3JpZ2luYWxWYWx1ZUFycmF5LmpvaW4oJyAnKSxcclxuICAgICAgdmlzaWJsZVZhbHVlOiB2aXNpYmxlVmFsdWVBcnJheS5qb2luKCcgJyksXHJcbiAgICAgIHNlYXJjaFRleHQ6IHNlYXJjaFRleHRcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jaGVja0Vycm9ycyh2YWx1ZUFycmF5OiBzdHJpbmdbXSwgaXNJbnRlcnByZXRhdGlvbkVycm9yOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9kaXNhYmxlRXJyb3IoKTtcclxuXHJcbiAgICB0aGlzLl90b2dnbGVFcnJvcihjaGVja0JyYWNrZXRFcnJvcnModmFsdWVBcnJheSkpO1xyXG4gICAgdGhpcy5fdG9nZ2xlRXJyb3IoY2hlY2tEaXZpZGVyRXJyb3JzKHZhbHVlQXJyYXksIHRoaXMuX2l0ZW1MaXN0KSk7XHJcbiAgICB0aGlzLl90b2dnbGVFcnJvcihjaGVja1NlcXVlbmNlRXJyb3JzKHZhbHVlQXJyYXksIHRoaXMuX29wZXJhdG9yTGlzdCwgdGhpcy5fYnJhY2tldExpc3QpKTtcclxuICAgIHRoaXMuX3RvZ2dsZUVycm9yKGNoZWNrSW50ZXJwcmV0YXRpb25FcnJvcnMoaXNJbnRlcnByZXRhdGlvbkVycm9yKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF90b2dnbGVFcnJvcihlcnJvck1vZGVsOiBDaGVja0Vycm9yUmVzdWx0TW9kZWwpIHtcclxuICAgIGlmICghdGhpcy5lcnJvck1vZGVsLmlzRXJyb3IpIHtcclxuICAgICAgdGhpcy5lcnJvck1vZGVsID0gZXJyb3JNb2RlbDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kaXNhYmxlRXJyb3IoKSB7XHJcbiAgICB0aGlzLmVycm9yTW9kZWwgPSB7XHJcbiAgICAgIGlzRXJyb3I6IGZhbHNlLFxyXG4gICAgICBlcnJvclR5cGU6IEVycm9yVHlwZUVudW0uRGVmYXVsdFxyXG4gICAgfTtcclxuICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luc2VydFBvc2l0aW9uVGV4dChjb250ZW50OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IG5vZGUgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb250ZW50KTtcclxuXHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAodGhpcy5fcmFuZ2UpIHtcclxuICAgICAgICB0aGlzLl9yYW5nZS5kZWxldGVDb250ZW50cygpO1xyXG4gICAgICAgIHRoaXMuX3JhbmdlLmluc2VydE5vZGUobm9kZSk7XHJcbiAgICAgICAgdGhpcy5fcmFuZ2UgPSB0aGlzLl9yYW5nZS5jbG9uZVJhbmdlKCk7XHJcbiAgICAgICAgdGhpcy5fcmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKG5vZGUpO1xyXG4gICAgICAgIHRoaXMuX3JhbmdlLmNvbGxhcHNlKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZSkge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc3RvcmVDdXJzb3JQb3NpdGlvbigpIHtcclxuICAgIHRoaXMuX3NlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcclxuXHJcbiAgICBpZiAodGhpcy5fc2VsZWN0aW9uICYmIHRoaXMuX3NlbGVjdGlvbi5yYW5nZUNvdW50ID4gMCkge1xyXG4gICAgICB0aGlzLl9yYW5nZSA9IHRoaXMuX3NlbGVjdGlvbi5nZXRSYW5nZUF0KDApO1xyXG5cclxuICAgICAgdGhpcy5fY3Vyc29yUG9zaXRpb24uc3RhcnRDb250YWluZXIgPSB0aGlzLl9yYW5nZS5zdGFydENvbnRhaW5lcjtcclxuICAgICAgdGhpcy5fY3Vyc29yUG9zaXRpb24uZW5kQ29udGFpbmVyID0gdGhpcy5fcmFuZ2UuZW5kQ29udGFpbmVyO1xyXG4gICAgICB0aGlzLl9jdXJzb3JQb3NpdGlvbi5zdGFydE9mZnNldCA9IHRoaXMuX3JhbmdlLnN0YXJ0T2Zmc2V0O1xyXG4gICAgICB0aGlzLl9jdXJzb3JQb3NpdGlvbi5lbmRPZmZzZXQgPSB0aGlzLl9yYW5nZS5lbmRPZmZzZXQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZXN0b3JlQ3Vyc29yUG9zaXRpb24oZWxlbWVudDogSFRNTElucHV0RWxlbWVudCkge1xyXG4gICAgdGhpcy5fcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLl9jdXJzb3JQb3NpdGlvbi5zdGFydENvbnRhaW5lciAmJiB0aGlzLl9jdXJzb3JQb3NpdGlvbi5lbmRDb250YWluZXIpIHtcclxuICAgICAgdGhpcy5fcmFuZ2Uuc2V0U3RhcnQodGhpcy5fY3Vyc29yUG9zaXRpb24uc3RhcnRDb250YWluZXIsIHRoaXMuX2N1cnNvclBvc2l0aW9uLnN0YXJ0T2Zmc2V0KTtcclxuICAgICAgdGhpcy5fcmFuZ2Uuc2V0RW5kKHRoaXMuX2N1cnNvclBvc2l0aW9uLmVuZENvbnRhaW5lciwgdGhpcy5fY3Vyc29yUG9zaXRpb24uZW5kT2Zmc2V0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3BsYWNlQ2FyZXRBdEVuZCgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9yYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IGRvY3VtZW50LmdldFNlbGVjdGlvbigpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbikge1xyXG4gICAgICAgIHRoaXMuX3JhbmdlLnNlbGVjdE5vZGVDb250ZW50cyh0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICB0aGlzLl9yYW5nZS5jb2xsYXBzZShmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uLnJlbW92ZUFsbFJhbmdlcygpO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbi5hZGRSYW5nZSh0aGlzLl9yYW5nZSk7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICBjbGlja091dChldmVudDogRXZlbnQpIHtcclxuICAgIGlmICghdGhpcy5lUmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSAmJiB0aGlzLmlzRm9jdXNlZCkge1xyXG4gICAgICBjb25zdCB7dmlzaWJsZVZhbHVlfSA9IHRoaXMuX3RyYW5zZm9ybVZhbHVlKHRoaXMuX21vZGlmaWVkVmFsdWUodGhpcy5faW5wdXRWYWx1ZSksIHRydWUpO1xyXG5cclxuICAgICAgdGhpcy51cGRhdGVWaXNpYmxlVmFsdWUodmlzaWJsZVZhbHVlKTtcclxuXHJcbiAgICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4ge30pOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHtcclxuICB9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge1xyXG4gIH07XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwibXJ4LWZvcm11bGEtZWRpdG9yXCJcclxuICBbY2xhc3MubXJ4LWlucHV0LWVycm9yXT1cImdldEludmFsaWRcIlxyXG4gIFtjbGFzcy4tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtjbGFzcy4tcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gIFtjbGFzc109XCJnZXRDbGFzc2VzXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX3dyYXBwZXJcIj5cclxuICAgIDxkaXZcclxuICAgICAgW2lubmVySFRNTF09XCJ2aXNpYmxlVmFsdWUudHJpbSgpIHwgc2FmZVwiXHJcbiAgICAgICNpbnB1dEVsZW1lbnRcclxuICAgICAgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX2JveFwiXHJcbiAgICAgIGNvbnRlbnRlZGl0YWJsZT1cInRydWVcIlxyXG4gICAgICBbYXR0ci5kYXRhLXBoXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uS2V5dXAoJGV2ZW50KVwiXHJcbiAgICAgIChrZXlkb3duLnRhYik9XCJvbktleXVwKCRldmVudClcIlxyXG4gICAgPjwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX2NsZWFyXCIgKm5nSWY9XCJjYW5DbGVhblwiIChjbGljayk9XCJvbkNsZWFyKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pY29uIGljb24tY2xvc2VcIiBbY2xhc3NdPVwiZ2V0SWNvbkNsYXNzXCI+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LWZvcm11bGEtZWRpdG9yX19wb3B1cFwiICpuZ0lmPVwiaXNGb2N1c2VkXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlcnJvck1vZGVsLmlzRXJyb3IgJiYgaXNGb2N1c2VkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1mb3JtdWxhLWVkaXRvcl9fcG9wdXAtLWVycm9yXCI+XHJcbiAgICAgICAgICB7eyBnZXRFcnJvck1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXJlZExpc3QubGVuZ3RoOyBlbHNlIGVtcHR5TGlzdFwiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwibXJ4LWZvcm11bGEtZWRpdG9yX19wb3B1cC0tcm93XCJcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkTGlzdFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiaW5zZXJ0VGFnKGl0ZW0pOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlMaXN0PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX3BvcHVwLS1yb3dcIj5cclxuICAgICAgICAgINCd0LXRgiDRgNC10LfRg9C70YzRgtCw0YLQvtCyXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgICA8bXJ4LWVycm9yLW1lc3NhZ2VcclxuICAgICAgKm5nSWY9XCJnZXRJbnZhbGlkICYmIGdldEVycm9yTWVzc2FnZSAmJiAhaXNGb2N1c2VkXCJcclxuICAgICAgW2ludmFsaWRNZXNzYWdlXT1cImdldEVycm9yTWVzc2FnZVwiXHJcbiAgICA+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuXHJcbiAgICA8bXJ4LXNhdmUtc3RhdGUgW2lkXT1cInV1aWRcIiBbZmllbGRzXT1cImZpZWxkc1wiPjwvbXJ4LXNhdmUtc3RhdGU+XHJcbjwvZGl2PlxyXG4iXX0=
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybXVsYS1lZGl0b3IvZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQWMsWUFBWSxFQUNuQyxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQ3ZDLE1BQU0sRUFBRSxTQUFTLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4SCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFekQsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixrQkFBa0IsRUFDbEIseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUNwQixNQUFNLCtCQUErQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxzQkFBc0IsRUFBMkIsTUFBTSxrQ0FBa0MsQ0FBQzs7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QUFzQixxYkFOdEIsQ0FBQztZQUNWLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztZQUNyRCxLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUMsc0pDaENKLHk3REF1REE7MkZEckJhLHNCQUFzQjtrQkFYbEMsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDOzRCQUNWLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDOzRCQUNyRCxLQUFLLEVBQUUsSUFBSTt5QkFDWixDQUFDOzBEQTBFb0MsUUFBUTswQkFBM0MsTUFBTTsyQkFBQyxRQUFRO3FHQW5DRixNQUFNO3NCQUFyQixLQUFLO2dCQUVVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFHVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFHRixLQUFLO3NCQURSLEtBQUs7Z0JBZXFDLFlBQVk7c0JBQXRELFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFFeEIsT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxPQUFPO3NCQUF2QixNQUFNO2dCQUNVLFdBQVc7c0JBQTNCLE1BQU07Z0JBa1FQLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCxcclxuICBPdXRwdXQsIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgRXJyb3JNZXNzYWdlc0VudW0sIEVycm9yVHlwZUVudW0gfSBmcm9tICcuL2VudW1zL2Vycm9yLW1lc3NhZ2VzLmVudW0nO1xyXG5pbXBvcnQgeyBjcmVhdGVCcmFja2V0LCBjcmVhdGVOdW1iZXIsIGNyZWF0ZU9wZXJhdG9yLCBjcmVhdGVUYWcsIGNyZWF0ZVRhZ091dHNpZGUgfSBmcm9tICcuL2hlbHBlcnMvY3JlYXRlLXRhZ3MuaGVscGVyJztcclxuaW1wb3J0IHsgaXNBbiB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvaXMtbnVtYmVyLmhlbHBlcic7XHJcbmltcG9ydCB7IFdoaXRlTGlzdEl0ZW1Nb2RlbCwgQ2hlY2tFcnJvclJlc3VsdE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQge1xyXG4gIGNoZWNrQnJhY2tldEVycm9ycyxcclxuICBjaGVja0RpdmlkZXJFcnJvcnMsXHJcbiAgY2hlY2tJbnRlcnByZXRhdGlvbkVycm9ycyxcclxuICBjaGVja1NlcXVlbmNlRXJyb3JzXHJcbn0gZnJvbSAnLi9oZWxwZXJzL2NoZWNrLWVycm9ycy5oZWxwZXInO1xyXG5pbXBvcnQgeyBGb3JtdWxhRWRpdG9yVmFsdWVUeXBlcywgRm9ybXVsYUVkaXRvclZhbHVlV2l0aElkIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBGb3JtdWxhRWRpdG9yU2l6ZXNFbnVtLCBGb3JtdWxhRWRpdG9yU2l6ZXNUeXBlcyB9IGZyb20gJy4vZW51bXMvZm9ybXVsYS1lZGl0b3Itc2l6ZS5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LWZvcm11bGEtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybXVsYS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm11bGEtZWRpdG9yLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbe1xyXG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb3JtdWxhRWRpdG9yQ29tcG9uZW50KSxcclxuICAgIG11bHRpOiB0cnVlXHJcbiAgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm11bGFFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcHJpdmF0ZSBfcmFuZ2U6IGFueTtcclxuICBwcml2YXRlIF9zZWxlY3Rpb246IFNlbGVjdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgX2N1cnNvclBvc2l0aW9uOiB7XHJcbiAgICBzdGFydENvbnRhaW5lcjogTm9kZSB8IG51bGwsXHJcbiAgICBlbmRDb250YWluZXI6IE5vZGUgfCBudWxsLFxyXG4gICAgc3RhcnRPZmZzZXQ6IG51bWJlcixcclxuICAgIGVuZE9mZnNldDogbnVtYmVyXHJcbiAgfSA9IHtcclxuICAgIHN0YXJ0Q29udGFpbmVyOiBudWxsLFxyXG4gICAgZW5kQ29udGFpbmVyOiBudWxsLFxyXG4gICAgc3RhcnRPZmZzZXQ6IDAsXHJcbiAgICBlbmRPZmZzZXQ6IDBcclxuICB9O1xyXG5cclxuICBwcml2YXRlIHNlYXJjaFRleHQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwcml2YXRlIF9vcGVyYXRvckxpc3Q6IHN0cmluZ1tdID0gWycrJywgJy0nLCAnKicsICcvJ107XHJcbiAgcHJpdmF0ZSBfYnJhY2tldExpc3Q6IHN0cmluZ1tdID0gWycoJywgJyknXTtcclxuICBwcml2YXRlIF9pdGVtTGlzdDogV2hpdGVMaXN0SXRlbU1vZGVsW10gPSBbXTtcclxuICBwcml2YXRlIF9tb2RpZmllZEl0ZW1MaXN0OiB7IGl0ZW1zOiB7IFtwOiBzdHJpbmddOiBzdHJpbmcgfSwgcmVnRXhwOiBSZWdFeHAgfSA9IHtcclxuICAgIGl0ZW1zOiB7fSxcclxuICAgIHJlZ0V4cDogbmV3IFJlZ0V4cCgnJyksXHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHZhbHVlID0gJyc7XHJcbiAgcHVibGljIHZpc2libGVWYWx1ZSA9ICcnO1xyXG5cclxuICBwdWJsaWMgaXNGb2N1c2VkID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBlcnJvck1vZGVsOiBDaGVja0Vycm9yUmVzdWx0TW9kZWwgPSB7XHJcbiAgICBpc0Vycm9yOiBmYWxzZSxcclxuICAgIGVycm9yVHlwZTogRXJyb3JUeXBlRW51bS5EZWZhdWx0XHJcbiAgfTtcclxuXHJcbiAgLy8gU0FWRSBTVEFURVxyXG4gIHB1YmxpYyB1dWlkOiBzdHJpbmcgPSB1dWlkdjQoKTtcclxuICBASW5wdXQoKSBwdWJsaWMgZmllbGRzOiBGaWVsZFtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlciA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21DbGFzc2VzID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIHNpemU6IEZvcm11bGFFZGl0b3JTaXplc1R5cGVzID0gJ2xhcmdlJztcclxuXHJcbiAgLy8gVkFMSURBVEVcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tJbnZhbGlkOiB0cnVlIHwgZmFsc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgaXRlbXMoaXRlbXM6IFdoaXRlTGlzdEl0ZW1Nb2RlbFtdKSB7XHJcbiAgICBjb25zdCBpdGVtc01hcCA9IE9iamVjdC5mcm9tRW50cmllcyhpdGVtcy5tYXAob2JqID0+IFtvYmoubGFiZWwsIG9iai5zeXNOYW1lXSkpO1xyXG5cclxuICAgIHRoaXMuX2l0ZW1MaXN0ID0gaXRlbXM7XHJcbiAgICB0aGlzLl9tb2RpZmllZEl0ZW1MaXN0Lml0ZW1zID0gaXRlbXNNYXA7XHJcbiAgICB0aGlzLl9tb2RpZmllZEl0ZW1MaXN0LnJlZ0V4cCA9IG5ldyBSZWdFeHAoaXRlbXMubWFwKHMgPT4gcy5sYWJlbCkuam9pbignfCcpLCAnZycpO1xyXG5cclxuICAgIGNvbnN0IHt2aXNpYmxlVmFsdWV9ID0gdGhpcy5fdHJhbnNmb3JtVmFsdWUodGhpcy5fbW9kaWZpZWRWYWx1ZSh0aGlzLl9pbnB1dFZhbHVlKSwgdHJ1ZSk7XHJcblxyXG4gICAgdGhpcy51cGRhdGVWaXNpYmxlVmFsdWUodmlzaWJsZVZhbHVlKTtcclxuXHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnLCB7c3RhdGljOiB0cnVlfSkgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Rm9ybXVsYUVkaXRvclZhbHVlVHlwZXM+ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtdWxhRWRpdG9yVmFsdWVUeXBlcz4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIGJsdXJyZWQ6IEV2ZW50RW1pdHRlcjxGb3JtdWxhRWRpdG9yVmFsdWVXaXRoSWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtdWxhRWRpdG9yVmFsdWVXaXRoSWQ+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPEZvcm11bGFFZGl0b3JWYWx1ZVdpdGhJZD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZvcm11bGFFZGl0b3JWYWx1ZVdpdGhJZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICAgIHByaXZhdGUgX2RldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgZVJlZjogRWxlbWVudFJlZlxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRFcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZE1lc3NhZ2UgfHwgRXJyb3JNZXNzYWdlc0VudW1bdGhpcy5lcnJvck1vZGVsLmVycm9yVHlwZV07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZpbHRlcmVkTGlzdCgpOiBXaGl0ZUxpc3RJdGVtTW9kZWxbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXRlbUxpc3QuZmlsdGVyKGl0ZW0gPT4gaXRlbS5sYWJlbC5pbmNsdWRlcyh0aGlzLnNlYXJjaFRleHQpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0SW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmVycm9yTW9kZWwuaXNFcnJvciB8fCB0aGlzLmludmFsaWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlYWRvbmx5Q2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnJlYWRvbmx5ID8gJ21yeC1pbnB1dF9fcmVhZG9ubHknIDogJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNoZWNrVmFsaWRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja0ludmFsaWQgPT09IGZhbHNlID8gJ21yeC1pbnB1dC1jaGVja2VkLXN1Y2Nlc3MnIDogdGhpcy5jaGVja0ludmFsaWQgPT09IHRydWUgPyAnbXJ4LWlucHV0LWNoZWNrZWQtZXJyb3InIDogJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHtGb3JtdWxhRWRpdG9yU2l6ZXNFbnVtW3RoaXMuc2l6ZV19ICR7dGhpcy5jdXN0b21DbGFzc2VzfSAke3RoaXMucmVhZG9ubHlDbGFzc30gJHt0aGlzLmNoZWNrVmFsaWRDbGFzc2VzfWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldEljb25DbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuc2l6ZSAhPT0gJ2xhcmdlJyA/ICdpY29uLWZvbnQtMTYnIDogJ2ljb24tZm9udC0yNCd9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2FuQ2xlYW4oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLnZpc2libGVWYWx1ZS50cmltKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBfaW5wdXRWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQgfHwgJyc7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKG91dHNpZGVWYWx1ZTogRm9ybXVsYUVkaXRvclZhbHVlVHlwZXMpOiB2b2lkIHtcclxuICAgIGlmIChvdXRzaWRlVmFsdWUgIT09IG51bGwgJiYgdGhpcy52YWx1ZSA9PT0gJycpIHtcclxuICAgICAgY29uc3Qge3Zpc2libGVWYWx1ZX0gPSB0aGlzLl90cmFuc2Zvcm1WYWx1ZSh0aGlzLl9tb2RpZmllZFZhbHVlKG91dHNpZGVWYWx1ZSkpO1xyXG5cclxuICAgICAgdGhpcy52YWx1ZSA9IG91dHNpZGVWYWx1ZTtcclxuICAgICAgdGhpcy52aXNpYmxlVmFsdWUgPSB2aXNpYmxlVmFsdWU7XHJcblxyXG4gICAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xyXG4gICAgY29uc3Qge3ZhbHVlLCBzZWFyY2hUZXh0fSA9IHRoaXMuX3RyYW5zZm9ybVZhbHVlKHRoaXMuX21vZGlmaWVkVmFsdWUodGhpcy5faW5wdXRWYWx1ZSksIGZhbHNlKTtcclxuXHJcbiAgICAvLyB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICB0aGlzLnNlYXJjaFRleHQgPSBzZWFyY2hUZXh0O1xyXG5cclxuICAgIHRoaXMuX3N0b3JlQ3Vyc29yUG9zaXRpb24oKTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XHJcbiAgICB0aGlzLl9kZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIG9uQ2xlYXIoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCcnKTtcclxuICAgIHRoaXMudXBkYXRlVmlzaWJsZVZhbHVlKCcnKTtcclxuICB9XHJcblxyXG4gIG9uQmx1cihldmVudDogRXZlbnQpIHtcclxuICAgIHRoaXMuX3N0b3JlQ3Vyc29yUG9zaXRpb24oKTtcclxuICB9XHJcblxyXG4gIG9uS2V5dXAoZXZlbnQ6IGFueSkge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICBjb25zdCB7dmFsdWUsIHZpc2libGVWYWx1ZX0gPSB0aGlzLl90cmFuc2Zvcm1WYWx1ZSh0aGlzLl9tb2RpZmllZFZhbHVlKHRoaXMuX2lucHV0VmFsdWUpLCB0cnVlKTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcclxuICAgIHRoaXMudXBkYXRlVmlzaWJsZVZhbHVlKHZpc2libGVWYWx1ZSk7XHJcblxyXG4gICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcclxuXHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBpbnNlcnRUYWcod2hpdGVMaXN0SXRlbTogV2hpdGVMaXN0SXRlbU1vZGVsKSB7XHJcbiAgICB0aGlzLl9yZXN0b3JlQ3Vyc29yUG9zaXRpb24odGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICB0aGlzLl9pbnNlcnRQb3NpdGlvblRleHQoYHske3doaXRlTGlzdEl0ZW0uc3lzTmFtZX19YCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IHt2YWx1ZSwgdmlzaWJsZVZhbHVlfSA9IHRoaXMuX3RyYW5zZm9ybVZhbHVlKHRoaXMuX21vZGlmaWVkVmFsdWUodGhpcy5faW5wdXRWYWx1ZSksIGZhbHNlKTtcclxuXHJcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xyXG4gICAgICB0aGlzLnVwZGF0ZVZpc2libGVWYWx1ZSh2aXNpYmxlVmFsdWUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fcGxhY2VDYXJldEF0RW5kKCk7XHJcblxyXG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gJyc7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVWaXNpYmxlVmFsdWUoaW5zaWRlVmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy52aXNpYmxlVmFsdWUgPSBpbnNpZGVWYWx1ZTtcclxuXHJcbiAgICB0aGlzLl9zdG9yZUN1cnNvclBvc2l0aW9uKCk7XHJcblxyXG4gICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVmFsdWUoaW5zaWRlVmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy52YWx1ZSA9IGluc2lkZVZhbHVlO1xyXG4gICAgdGhpcy5jaGFuZ2VkLmVtaXQoaW5zaWRlVmFsdWUpO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHt2YWx1ZTogaW5zaWRlVmFsdWUsIGlkOiB0aGlzLnV1aWR9KTtcclxuICAgIHRoaXMub25DaGFuZ2UoaW5zaWRlVmFsdWUpO1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX21vZGlmaWVkVmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSh0aGlzLl9tb2RpZmllZEl0ZW1MaXN0LnJlZ0V4cCwgbWF0Y2ggPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5fbW9kaWZpZWRJdGVtTGlzdC5pdGVtc1ttYXRjaF0gPyBgeyR7dGhpcy5fbW9kaWZpZWRJdGVtTGlzdC5pdGVtc1ttYXRjaF19fWAgOiAnJztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdHJhbnNmb3JtVmFsdWUoY29udGVudDogc3RyaW5nLCBhbmFsaXNlOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IHZhbHVlQXJyYXkgPSBjb250ZW50LnNwbGl0KC9bXFxzXFx1MDBBMF0rLykuZmlsdGVyKEJvb2xlYW4pO1xyXG5cclxuICAgIGNvbnN0IHZpc2libGVWYWx1ZUFycmF5OiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgY29uc3Qgb3JpZ2luYWxWYWx1ZUFycmF5OiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIGxldCBpc0ludGVycHJldGF0aW9uRXJyb3IgPSBmYWxzZTtcclxuXHJcbiAgICBsZXQgc2VhcmNoVGV4dCA9ICcnO1xyXG5cclxuICAgIHZhbHVlQXJyYXkuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBjb25zdCBjbGVhcmVkSXRlbSA9IGl0ZW0udHJpbSgpO1xyXG4gICAgICBjb25zdCBmaW5kSXRlbSA9IHRoaXMuX2l0ZW1MaXN0LmZpbmQodiA9PiBjbGVhcmVkSXRlbS5pbmNsdWRlcyh2LnN5c05hbWUpKTtcclxuXHJcbiAgICAgIGlmIChmaW5kSXRlbSkge1xyXG4gICAgICAgIHZpc2libGVWYWx1ZUFycmF5LnB1c2goY3JlYXRlVGFnKGZpbmRJdGVtLmxhYmVsKSk7XHJcbiAgICAgICAgb3JpZ2luYWxWYWx1ZUFycmF5LnB1c2goY3JlYXRlVGFnT3V0c2lkZShmaW5kSXRlbS5zeXNOYW1lKSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fYnJhY2tldExpc3QuZmluZCh2ID0+IHYgPT09IGNsZWFyZWRJdGVtKSkge1xyXG4gICAgICAgIHZpc2libGVWYWx1ZUFycmF5LnB1c2goY3JlYXRlQnJhY2tldChjbGVhcmVkSXRlbSkpO1xyXG4gICAgICAgIG9yaWdpbmFsVmFsdWVBcnJheS5wdXNoKGNsZWFyZWRJdGVtKTtcclxuICAgICAgfSBlbHNlIGlmICh0aGlzLl9vcGVyYXRvckxpc3QuZmluZCh2ID0+IHYgPT09IGNsZWFyZWRJdGVtKSkge1xyXG4gICAgICAgIHZpc2libGVWYWx1ZUFycmF5LnB1c2goY3JlYXRlT3BlcmF0b3IoY2xlYXJlZEl0ZW0pKTtcclxuICAgICAgICBvcmlnaW5hbFZhbHVlQXJyYXkucHVzaChjbGVhcmVkSXRlbSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoaXNBbihjbGVhcmVkSXRlbSkpIHtcclxuICAgICAgICB2aXNpYmxlVmFsdWVBcnJheS5wdXNoKGNyZWF0ZU51bWJlcihjbGVhcmVkSXRlbSkpO1xyXG4gICAgICAgIG9yaWdpbmFsVmFsdWVBcnJheS5wdXNoKGNsZWFyZWRJdGVtKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB2aXNpYmxlVmFsdWVBcnJheS5wdXNoKGNsZWFyZWRJdGVtKTtcclxuICAgICAgICBvcmlnaW5hbFZhbHVlQXJyYXkucHVzaChjbGVhcmVkSXRlbSk7XHJcbiAgICAgICAgc2VhcmNoVGV4dCA9IGNsZWFyZWRJdGVtO1xyXG5cclxuICAgICAgICBpc0ludGVycHJldGF0aW9uRXJyb3IgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoYW5hbGlzZSkge1xyXG4gICAgICB0aGlzLl9jaGVja0Vycm9ycyhvcmlnaW5hbFZhbHVlQXJyYXksIGlzSW50ZXJwcmV0YXRpb25FcnJvcik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgdmFsdWU6IG9yaWdpbmFsVmFsdWVBcnJheS5qb2luKCcgJyksXHJcbiAgICAgIHZpc2libGVWYWx1ZTogdmlzaWJsZVZhbHVlQXJyYXkuam9pbignICcpLFxyXG4gICAgICBzZWFyY2hUZXh0OiBzZWFyY2hUZXh0XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hlY2tFcnJvcnModmFsdWVBcnJheTogc3RyaW5nW10sIGlzSW50ZXJwcmV0YXRpb25FcnJvcjogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fZGlzYWJsZUVycm9yKCk7XHJcblxyXG4gICAgdGhpcy5fdG9nZ2xlRXJyb3IoY2hlY2tCcmFja2V0RXJyb3JzKHZhbHVlQXJyYXkpKTtcclxuICAgIHRoaXMuX3RvZ2dsZUVycm9yKGNoZWNrRGl2aWRlckVycm9ycyh2YWx1ZUFycmF5LCB0aGlzLl9pdGVtTGlzdCkpO1xyXG4gICAgdGhpcy5fdG9nZ2xlRXJyb3IoY2hlY2tTZXF1ZW5jZUVycm9ycyh2YWx1ZUFycmF5LCB0aGlzLl9vcGVyYXRvckxpc3QsIHRoaXMuX2JyYWNrZXRMaXN0KSk7XHJcbiAgICB0aGlzLl90b2dnbGVFcnJvcihjaGVja0ludGVycHJldGF0aW9uRXJyb3JzKGlzSW50ZXJwcmV0YXRpb25FcnJvcikpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfdG9nZ2xlRXJyb3IoZXJyb3JNb2RlbDogQ2hlY2tFcnJvclJlc3VsdE1vZGVsKSB7XHJcbiAgICBpZiAoIXRoaXMuZXJyb3JNb2RlbC5pc0Vycm9yKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JNb2RlbCA9IGVycm9yTW9kZWw7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGlzYWJsZUVycm9yKCkge1xyXG4gICAgdGhpcy5lcnJvck1vZGVsID0ge1xyXG4gICAgICBpc0Vycm9yOiBmYWxzZSxcclxuICAgICAgZXJyb3JUeXBlOiBFcnJvclR5cGVFbnVtLkRlZmF1bHRcclxuICAgIH07XHJcbiAgICB0aGlzLl9kZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbnNlcnRQb3NpdGlvblRleHQoY29udGVudDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBub2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoY29udGVudCk7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgaWYgKHRoaXMuX3JhbmdlKSB7XHJcbiAgICAgICAgdGhpcy5fcmFuZ2UuZGVsZXRlQ29udGVudHMoKTtcclxuICAgICAgICB0aGlzLl9yYW5nZS5pbnNlcnROb2RlKG5vZGUpO1xyXG4gICAgICAgIHRoaXMuX3JhbmdlID0gdGhpcy5fcmFuZ2UuY2xvbmVSYW5nZSgpO1xyXG4gICAgICAgIHRoaXMuX3JhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhub2RlKTtcclxuICAgICAgICB0aGlzLl9yYW5nZS5jb2xsYXBzZShmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3N0b3JlQ3Vyc29yUG9zaXRpb24oKSB7XHJcbiAgICB0aGlzLl9zZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuX3NlbGVjdGlvbiAmJiB0aGlzLl9zZWxlY3Rpb24ucmFuZ2VDb3VudCA+IDApIHtcclxuICAgICAgdGhpcy5fcmFuZ2UgPSB0aGlzLl9zZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKTtcclxuXHJcbiAgICAgIHRoaXMuX2N1cnNvclBvc2l0aW9uLnN0YXJ0Q29udGFpbmVyID0gdGhpcy5fcmFuZ2Uuc3RhcnRDb250YWluZXI7XHJcbiAgICAgIHRoaXMuX2N1cnNvclBvc2l0aW9uLmVuZENvbnRhaW5lciA9IHRoaXMuX3JhbmdlLmVuZENvbnRhaW5lcjtcclxuICAgICAgdGhpcy5fY3Vyc29yUG9zaXRpb24uc3RhcnRPZmZzZXQgPSB0aGlzLl9yYW5nZS5zdGFydE9mZnNldDtcclxuICAgICAgdGhpcy5fY3Vyc29yUG9zaXRpb24uZW5kT2Zmc2V0ID0gdGhpcy5fcmFuZ2UuZW5kT2Zmc2V0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5fZGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVzdG9yZUN1cnNvclBvc2l0aW9uKGVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQpIHtcclxuICAgIHRoaXMuX3JhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcclxuXHJcbiAgICBpZiAodGhpcy5fY3Vyc29yUG9zaXRpb24uc3RhcnRDb250YWluZXIgJiYgdGhpcy5fY3Vyc29yUG9zaXRpb24uZW5kQ29udGFpbmVyKSB7XHJcbiAgICAgIHRoaXMuX3JhbmdlLnNldFN0YXJ0KHRoaXMuX2N1cnNvclBvc2l0aW9uLnN0YXJ0Q29udGFpbmVyLCB0aGlzLl9jdXJzb3JQb3NpdGlvbi5zdGFydE9mZnNldCk7XHJcbiAgICAgIHRoaXMuX3JhbmdlLnNldEVuZCh0aGlzLl9jdXJzb3JQb3NpdGlvbi5lbmRDb250YWluZXIsIHRoaXMuX2N1cnNvclBvc2l0aW9uLmVuZE9mZnNldCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wbGFjZUNhcmV0QXRFbmQoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5fcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xyXG4gICAgICB0aGlzLl9zZWxlY3Rpb24gPSBkb2N1bWVudC5nZXRTZWxlY3Rpb24oKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLl9zZWxlY3Rpb24pIHtcclxuICAgICAgICB0aGlzLl9yYW5nZS5zZWxlY3ROb2RlQ29udGVudHModGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgdGhpcy5fcmFuZ2UuY29sbGFwc2UoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcclxuICAgICAgICB0aGlzLl9zZWxlY3Rpb24uYWRkUmFuZ2UodGhpcy5fcmFuZ2UpO1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgY2xpY2tPdXQoZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAoIXRoaXMuZVJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgJiYgdGhpcy5pc0ZvY3VzZWQpIHtcclxuICAgICAgY29uc3Qge3ZhbHVlLCB2aXNpYmxlVmFsdWV9ID0gdGhpcy5fdHJhbnNmb3JtVmFsdWUodGhpcy5fbW9kaWZpZWRWYWx1ZSh0aGlzLl9pbnB1dFZhbHVlKSwgdHJ1ZSk7XHJcblxyXG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKTtcclxuICAgICAgdGhpcy51cGRhdGVWaXNpYmxlVmFsdWUodmlzaWJsZVZhbHVlKTtcclxuXHJcbiAgICAgIHRoaXMuaXNGb2N1c2VkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuX2RldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4ge30pOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHtcclxuICB9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge1xyXG4gIH07XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwibXJ4LWZvcm11bGEtZWRpdG9yXCJcclxuICBbY2xhc3MubXJ4LWlucHV0LWVycm9yXT1cImdldEludmFsaWRcIlxyXG4gIFtjbGFzcy4tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtjbGFzcy4tcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gIFtjbGFzc109XCJnZXRDbGFzc2VzXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX3dyYXBwZXJcIj5cclxuICAgIDxkaXZcclxuICAgICAgW2lubmVySFRNTF09XCJ2aXNpYmxlVmFsdWUudHJpbSgpIHwgc2FmZVwiXHJcbiAgICAgICNpbnB1dEVsZW1lbnRcclxuICAgICAgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX2JveFwiXHJcbiAgICAgIGNvbnRlbnRlZGl0YWJsZT1cInRydWVcIlxyXG4gICAgICBbYXR0ci5kYXRhLXBoXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uS2V5dXAoJGV2ZW50KVwiXHJcbiAgICAgIChrZXlkb3duLnRhYik9XCJvbktleXVwKCRldmVudClcIlxyXG4gICAgPjwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX2NsZWFyXCIgKm5nSWY9XCJjYW5DbGVhblwiIChjbGljayk9XCJvbkNsZWFyKClcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pY29uIGljb24tY2xvc2VcIiBbY2xhc3NdPVwiZ2V0SWNvbkNsYXNzXCI+PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LWZvcm11bGEtZWRpdG9yX19wb3B1cFwiICpuZ0lmPVwiaXNGb2N1c2VkXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlcnJvck1vZGVsLmlzRXJyb3IgJiYgaXNGb2N1c2VkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1mb3JtdWxhLWVkaXRvcl9fcG9wdXAtLWVycm9yXCI+XHJcbiAgICAgICAgICB7eyBnZXRFcnJvck1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWx0ZXJlZExpc3QubGVuZ3RoOyBlbHNlIGVtcHR5TGlzdFwiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwibXJ4LWZvcm11bGEtZWRpdG9yX19wb3B1cC0tcm93XCJcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkTGlzdFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiaW5zZXJ0VGFnKGl0ZW0pOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlMaXN0PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtcngtZm9ybXVsYS1lZGl0b3JfX3BvcHVwLS1yb3dcIj5cclxuICAgICAgICAgINCd0LXRgiDRgNC10LfRg9C70YzRgtCw0YLQvtCyXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgICA8bXJ4LWVycm9yLW1lc3NhZ2VcclxuICAgICAgKm5nSWY9XCJnZXRJbnZhbGlkICYmIGdldEVycm9yTWVzc2FnZSAmJiAhaXNGb2N1c2VkXCJcclxuICAgICAgW2ludmFsaWRNZXNzYWdlXT1cImdldEVycm9yTWVzc2FnZVwiXHJcbiAgICA+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuXHJcbiAgICA8bXJ4LXNhdmUtc3RhdGUgW2lkXT1cInV1aWRcIiBbZmllbGRzXT1cImZpZWxkc1wiPjwvbXJ4LXNhdmUtc3RhdGU+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -17491,8 +17491,11 @@ class FormulaEditorComponent {
17491
17491
  }
17492
17492
  onKeyup(event) {
17493
17493
  event.preventDefault();
17494
- this.inputElement.nativeElement.blur();
17494
+ const { value, visibleValue } = this._transformValue(this._modifiedValue(this._inputValue), true);
17495
+ this.updateValue(value);
17496
+ this.updateVisibleValue(visibleValue);
17495
17497
  this.isFocused = false;
17498
+ this.inputElement.nativeElement.blur();
17496
17499
  this._detector.detectChanges();
17497
17500
  }
17498
17501
  insertTag(whiteListItem) {
@@ -17631,7 +17634,8 @@ class FormulaEditorComponent {
17631
17634
  }
17632
17635
  clickOut(event) {
17633
17636
  if (!this.eRef.nativeElement.contains(event.target) && this.isFocused) {
17634
- const { visibleValue } = this._transformValue(this._modifiedValue(this._inputValue), true);
17637
+ const { value, visibleValue } = this._transformValue(this._modifiedValue(this._inputValue), true);
17638
+ this.updateValue(value);
17635
17639
  this.updateVisibleValue(visibleValue);
17636
17640
  this.isFocused = false;
17637
17641
  this._detector.detectChanges();