ng-tailwind 4.5.56 → 4.5.58

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.
@@ -114,10 +114,7 @@ export class NgtDateComponent extends NgtBaseNgModel {
114
114
  }
115
115
  }
116
116
  ngOnDestroy() {
117
- const flatpickrElement = document.getElementsByClassName('flatpickr-calendar');
118
- if (flatpickrElement?.length) {
119
- flatpickrElement[flatpickrElement.length - 1].remove();
120
- }
117
+ this.ng2FlatpickrComponent.flatpickr['calendarContainer']?.remove();
121
118
  this.destroySubscriptions();
122
119
  }
123
120
  clearInput(clearInstance = false) {
@@ -435,4 +432,4 @@ export var NgtDateMode;
435
432
  NgtDateMode["SINGLE"] = "SINGLE";
436
433
  NgtDateMode["RANGE"] = "RANGE";
437
434
  })(NgtDateMode || (NgtDateMode = {}));
438
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRhdGUvbmd0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRhdGUvbmd0LWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxJQUFJLEVBRUosS0FBSyxFQUdMLFFBQVEsRUFDUixJQUFJLEVBRUosUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUk1QixPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRS9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0YsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7Ozs7Ozs7Ozs7QUFpQjVGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxjQUFjO0lBK0NoRCxZQUVXLGFBQStCLEVBRTlCLFFBQWtCLEVBR2xCLHNCQUE4QyxFQUc5QyxPQUF5QixF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QkFBekIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFHVSxVQUFVO3NCQUF6QixLQUFLOztBQThYVixNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3JCLGtDQUFpQixDQUFBO0lBQ2pCLDBCQUFTLENBQUE7QUFDYixDQUFDLEVBSFcsYUFBYSxLQUFiLGFBQWEsUUFHeEI7QUFFRCxNQUFNLENBQU4sSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ25CLGdDQUFpQixDQUFBO0lBQ2pCLDhCQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUhXLFdBQVcsS0FBWCxXQUFXLFFBR3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdCxcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGYsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBTa2lwU2VsZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZW5nbGlzaCB9IGZyb20gJ2ZsYXRwaWNrci9kaXN0L2wxMG4vZGVmYXVsdC5qcyc7XG5pbXBvcnQgeyBQb3J0dWd1ZXNlIH0gZnJvbSAnZmxhdHBpY2tyL2Rpc3QvbDEwbi9wdC5qcyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBGbGF0cGlja3JPcHRpb25zLCBOZzJGbGF0cGlja3JDb21wb25lbnQgfSBmcm9tICduZzItZmxhdHBpY2tyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBOZ3RCYXNlTmdNb2RlbCwgTmd0TWFrZVByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vYmFzZS9uZ3QtYmFzZS1uZy1tb2RlbCc7XG5pbXBvcnQgeyBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgZ2V0RW51bUZyb21TdHJpbmcgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2VudW0vZW51bSc7XG5pbXBvcnQgeyBhcHBseUlucHV0TWFzaywgSW5wdXRNYXNrRW51bSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvaW5wdXQtbWFzay9pbnB1dC1tYXNrLmhlbHBlcic7XG5pbXBvcnQgeyB1dWlkIH0gZnJvbSAnLi4vLi4vaGVscGVycy91dWlkJztcbmltcG9ydCB7IE5ndFN0eWxpemFibGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmd0LXN0eWxpemFibGUvbmd0LXN0eWxpemFibGUuc2VydmljZSc7XG5pbXBvcnQgeyBOZ3RGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vbmd0LWZvcm0vbmd0LWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IE5ndFNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi9uZ3Qtc2VjdGlvbi9uZ3Qtc2VjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd0TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9uZ3QtbW9kYWwvbmd0LW1vZGFsLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0LWRhdGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3QtZGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbmd0LWRhdGUuY29tcG9uZW50LmNzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE5ndE1ha2VQcm92aWRlcihOZ3REYXRlQ29tcG9uZW50KSxcbiAgICBdLFxuICAgIHZpZXdQcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogTmdGb3JtIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5ndERhdGVDb21wb25lbnQgZXh0ZW5kcyBOZ3RCYXNlTmdNb2RlbCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBAVmlld0NoaWxkKFwibmcyRmxhdHBpY2tyQ29tcG9uZW50XCIsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBuZzJGbGF0cGlja3JDb21wb25lbnQ6IE5nMkZsYXRwaWNrckNvbXBvbmVudDtcblxuICAgIC8vIFZpc3VhbFxuICAgIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nID0gXCJcIjtcbiAgICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI6IHN0cmluZyA9IFwiZGQvbW0veXl5eVwiO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwVGl0bGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscFRleHQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscFRleHRDb2xvcjogc3RyaW5nID0gJ3RleHQtZ3JlZW4tNTAwJztcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hpbmluZyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRlRm9ybWF0OiBzdHJpbmcgPSAnZC9tL1kgSDppJztcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0ZUZvcm1hdE5nTW9kZWwgPSAnWVlZWS1NTS1ERCBISDptbTowMCc7XG4gICAgQElucHV0KCkgcHVibGljIHNob3dDYWxlbmRhckljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgaGVscGVyUmV2ZXJzZVlQb3NpdGlvbjogYm9vbGVhbjtcblxuICAgIC8vIEJlaGF2aW9yXG4gICAgQElucHV0KCkgcHVibGljIG5hbWU6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgaXNEaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc1JlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIG1vZGU6IE5ndERhdGVNb2RlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyB0aW1lXzI0aHI6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBlbmFibGVUaW1lOiBib29sZWFuID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgbm9DYWxlbmRhcjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtaW51dGVJbmNyZW1lbnQ6IG51bWJlciA9IDE7XG4gICAgQElucHV0KCkgcHVibGljIGFsbG93SW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgbG9jYWxlOiBOZ3REYXRlTG9jYWxlID0gTmd0RGF0ZUxvY2FsZS5CUkFaSUw7XG4gICAgQElucHV0KCkgcHVibGljIGFsbG93Q2xlYXI6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtaW5EYXRlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIG1heERhdGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgZGVmYXVsdERhdGU6IHN0cmluZztcblxuICAgIC8vIFZhbGlkYXRpb25cbiAgICBASW5wdXQoKSBwdWJsaWMgaXNSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHVibGljIG5ndFN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZTtcbiAgICBwdWJsaWMgZGF0ZUNvbmZpZzogRmxhdHBpY2tyT3B0aW9ucztcbiAgICBwdWJsaWMgbmF0aXZlVmFsdWU6IGFueTtcbiAgICBwdWJsaWMgY29tcG9uZW50UmVhZHkgPSBmYWxzZTtcbiAgICBwdWJsaWMgbmF0aXZlTmFtZSA9IHV1aWQoKTtcbiAgICBwdWJsaWMgaW5wdXRQcm9wZXJ0aWVzOiB7XG4gICAgICAgIGh0bWxUeXBlPzogc3RyaW5nO1xuICAgICAgICBsZW5ndGg/OiBudW1iZXI7XG4gICAgfSA9IHt9O1xuXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XG4gICAgcHJpdmF0ZSBsYXN0SW5wdXRlZERhdGVTdHJpbmc6IHN0cmluZztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEhvc3QoKVxuICAgICAgICBwdWJsaWMgZm9ybUNvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcblxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcblxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpXG4gICAgICAgIHByaXZhdGUgbmd0U3R5bGl6YWJsZURpcmVjdGl2ZTogTmd0U3R5bGl6YWJsZURpcmVjdGl2ZSxcblxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKVxuICAgICAgICBwcml2YXRlIG5ndEZvcm06IE5ndEZvcm1Db21wb25lbnQsXG5cbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKClcbiAgICAgICAgcHJpdmF0ZSBuZ3RTZWN0aW9uOiBOZ3RTZWN0aW9uQ29tcG9uZW50LFxuXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpXG4gICAgICAgIHByaXZhdGUgbmd0TW9kYWw6IE5ndE1vZGFsQ29tcG9uZW50XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmd0Rm9ybSkge1xuICAgICAgICAgICAgdGhpcy5zaGluaW5nID0gdGhpcy5uZ3RGb3JtLmlzU2hpbmluZygpO1xuXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLm5ndEZvcm0ub25TaGluaW5nQ2hhbmdlLnN1YnNjcmliZSgoc2hpbmluZzogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNoaW5pbmcgPSBzaGluaW5nO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubmd0U3R5bGl6YWJsZURpcmVjdGl2ZSkge1xuICAgICAgICAgICAgdGhpcy5uZ3RTdHlsZSA9IHRoaXMubmd0U3R5bGl6YWJsZURpcmVjdGl2ZS5nZXROZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5uZ3RTdHlsZSA9IG5ldyBOZ3RTdHlsaXphYmxlU2VydmljZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uZ3RTdHlsZS5sb2FkKHRoaXMuaW5qZWN0b3IsICdOZ3REYXRlJywge1xuICAgICAgICAgICAgaDogJ2gtMTInLFxuICAgICAgICAgICAgdGV4dDogJ3RleHQtc20nLFxuICAgICAgICAgICAgZm9udENhc2U6ICcnLFxuICAgICAgICAgICAgY29sb3I6IHtcbiAgICAgICAgICAgICAgICB0ZXh0OiAndGV4dC1ncmF5LTgwMCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaXNSZXF1aXJlZCkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGF0aW9ucygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMubW9kZSkge1xuICAgICAgICAgICAgdGhpcy5tb2RlID0gZ2V0RW51bUZyb21TdHJpbmcoY2hhbmdlcy5tb2RlLmN1cnJlbnRWYWx1ZSwgTmd0RGF0ZU1vZGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMubG9jYWxlKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsZSA9IGdldEVudW1Gcm9tU3RyaW5nKGNoYW5nZXMubG9jYWxlLmN1cnJlbnRWYWx1ZSwgTmd0RGF0ZUxvY2FsZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZGF0ZUNvbmZpZyA9IHtcbiAgICAgICAgICAgIGRhdGVGb3JtYXQ6IHRoaXMuZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgIG1vZGU6IHRoaXMuZ2V0RGF0ZU1vZGUoKSxcbiAgICAgICAgICAgIG1pbnV0ZUluY3JlbWVudDogdGhpcy5taW51dGVJbmNyZW1lbnQsXG4gICAgICAgICAgICBtaW5EYXRlOiB0aGlzLm1pbkRhdGUsXG4gICAgICAgICAgICBtYXhEYXRlOiB0aGlzLm1heERhdGUsXG4gICAgICAgICAgICB0aW1lXzI0aHI6IHRoaXMudGltZV8yNGhyLFxuICAgICAgICAgICAgZW5hYmxlVGltZTogdGhpcy5lbmFibGVUaW1lLFxuICAgICAgICAgICAgbm9DYWxlbmRhcjogdGhpcy5ub0NhbGVuZGFyLFxuICAgICAgICAgICAgYWxsb3dJbnB1dDogdGhpcy5hbGxvd0lucHV0ICYmICF0aGlzLmVuYWJsZVRpbWUsXG4gICAgICAgICAgICBsb2NhbGU6IHRoaXMuZ2V0TG9jYWxlKCksXG4gICAgICAgICAgICBvbkNoYW5nZTogKHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHIsIGluc3RhbmNlKSA9PiB0aGlzLm9uTmF0aXZlQ2hhbmdlKHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHIsIGluc3RhbmNlLCB0cnVlKSxcbiAgICAgICAgICAgIG9uQ2xvc2U6IChzZWxlY3RlZERhdGVzLCBkYXRlU3RyLCBpbnN0YW5jZSkgPT4gdGhpcy5vbk5hdGl2ZUNoYW5nZShzZWxlY3RlZERhdGVzLCBkYXRlU3RyLCBpbnN0YW5jZSwgZmFsc2UpLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICghdGhpcy5mb3JtQ29udGFpbmVyKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiVGhlIGVsZW1lbnQgbXVzdCBiZSBpbnNpZGUgYSA8Zm9ybSAjZm9ybT0nbmdGb3JtJz4gdGFnIVwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5uYW1lKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiVGhlIGVsZW1lbnQgbXVzdCBjb250YWluIGEgbmFtZSBhdHRyaWJ1dGUhXCIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRSZWFkeSA9IHRydWU7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdENvbXBvbmVudCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgY29uc3QgZmxhdHBpY2tyRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2ZsYXRwaWNrci1jYWxlbmRhcicpO1xuXG4gICAgICAgIGlmIChmbGF0cGlja3JFbGVtZW50Py5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZsYXRwaWNrckVsZW1lbnRbZmxhdHBpY2tyRWxlbWVudC5sZW5ndGggLSAxXS5yZW1vdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGVzdHJveVN1YnNjcmlwdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJJbnB1dChjbGVhckluc3RhbmNlID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gJyc7XG5cbiAgICAgICAgaWYgKHRoaXMubmcyRmxhdHBpY2tyQ29tcG9uZW50ICYmIGNsZWFySW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMubmcyRmxhdHBpY2tyQ29tcG9uZW50LnNldERhdGVGcm9tSW5wdXQoJycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNoYW5nZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlYWR5KSB7XG4gICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VFdmVudC5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZSB8fCAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgIU9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhcklucHV0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT0gdGhpcy5uYXRpdmVWYWx1ZSkge1xuICAgICAgICAgICAgbGV0IGZpcnN0VmFsdWUgPSBtb21lbnQodmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAoKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmIE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGgpIHx8ICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICYmIHZhbHVlLmxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICBmaXJzdFZhbHVlID0gbW9tZW50KHZhbHVlWzBdKTtcblxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMikge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdFZhbHVlID0gZmlyc3RWYWx1ZTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgc2Vjb25kVmFsdWUgPSBtb21lbnQodmFsdWVbMV0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdFZhbHVlLmlzVmFsaWQoKSAmJiBzZWNvbmRWYWx1ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoPGFueT50aGlzLm5nMkZsYXRwaWNrckNvbXBvbmVudC5mbGF0cGlja3IpLnNldERhdGUoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0VmFsdWUuZm9ybWF0KHRoaXMuZ2V0TW9tZW50RGF0ZUZvcm1hdCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRWYWx1ZS5mb3JtYXQodGhpcy5nZXRNb21lbnREYXRlRm9ybWF0KCkpXG4gICAgICAgICAgICAgICAgICAgICAgICBdLCB0cnVlLCB0aGlzLmRhdGVGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZmlyc3RWYWx1ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKDxhbnk+dGhpcy5uZzJGbGF0cGlja3JDb21wb25lbnQuZmxhdHBpY2tyKS5zZXREYXRlKGZpcnN0VmFsdWUuZm9ybWF0KHRoaXMuZ2V0TW9tZW50RGF0ZUZvcm1hdCgpKSwgdHJ1ZSwgdGhpcy5kYXRlRm9ybWF0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5uZzJGbGF0cGlja3JDb21wb25lbnQuc2V0RGF0ZUZyb21JbnB1dCgnJyk7XG4gICAgICAgICAgICB0aGlzLmNsZWFySW5wdXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbk5hdGl2ZUNoYW5nZSh2YWx1ZTogYW55LCBkYXRlU3RyOiBzdHJpbmcsIGluc3RhbmNlOiBhbnksIHRyaWdnZXJDbG9zZTogYm9vbGVhbikge1xuICAgICAgICBpZiAoZGF0ZVN0ciAmJiB0aGlzLmFsbG93SW5wdXQgJiYgIXRoaXMuZW5hYmxlVGltZSAmJiBkYXRlU3RyICE9IHRoaXMubGFzdElucHV0ZWREYXRlU3RyaW5nKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RJbnB1dGVkRGF0ZVN0cmluZyA9IGRhdGVTdHI7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNoYW5nZSh0aGlzLmNvbnZlcnREYXRlVG9BbWVyaWNhbkZvcm1hdChkYXRlU3RyKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZhbHVlIHx8ICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCAmJiAhT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIGlmICh0cmlnZ2VyQ2xvc2UpIHtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZS5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhcklucHV0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlID09IE5ndERhdGVNb2RlLlJBTkdFKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gW107XG5cbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudCA9IG1vbWVudChlbGVtZW50KTtcblxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUucHVzaChlbGVtZW50LmZvcm1hdCh0aGlzLmRhdGVGb3JtYXROZ01vZGVsKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWVbMF0pIHtcbiAgICAgICAgICAgIHZhbHVlID0gbW9tZW50KHZhbHVlWzBdKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB2YWx1ZS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0TmdNb2RlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy52YWx1ZSAhPSB0aGlzLm5hdGl2ZVZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5uYXRpdmVWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXROYXRpdmVWYWx1ZSgpIHtcbiAgICAgICAgbGV0IG5hdGl2ZVZhbHVlOiBhbnkgPSB0aGlzLm5hdGl2ZVZhbHVlO1xuXG4gICAgICAgIGlmIChuYXRpdmVWYWx1ZSAmJiBuYXRpdmVWYWx1ZS5mb3JtYXQpIHtcbiAgICAgICAgICAgIG5hdGl2ZVZhbHVlID0gbmF0aXZlVmFsdWUuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdE5nTW9kZWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5hdGl2ZVZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JtYXR0ZWROYXRpdmVWYWx1ZSgpIHtcbiAgICAgICAgbGV0IG5hdGl2ZVZhbHVlOiBhbnkgPSB0aGlzLm5hdGl2ZVZhbHVlO1xuXG4gICAgICAgIGlmIChuYXRpdmVWYWx1ZSAmJiBBcnJheS5pc0FycmF5KG5hdGl2ZVZhbHVlKSkge1xuICAgICAgICAgICAgbGV0IGZvcm1hdHRlZE5hdGl2ZVZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAgICAgICAgICAgbmF0aXZlVmFsdWUuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgICAgICBlbGVtZW50ID0gbW9tZW50KGVsZW1lbnQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZm9ybWF0ICYmICF0aGlzLmVuYWJsZVRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkTmF0aXZlVmFsdWUgKz0gZWxlbWVudC5mb3JtYXQoJ0REL01NL1lZWVknKSArICcgJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZm9ybWF0ICYmIHRoaXMuZW5hYmxlVGltZSkge1xuICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWROYXRpdmVWYWx1ZSArPSBlbGVtZW50LmZvcm1hdCgnREQvTU0vWVlZWSBISDptbTowMCcpICsgJyAnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0dGVkTmF0aXZlVmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRlRm9ybWF0ID09ICdIOmknKSB7XG4gICAgICAgICAgICByZXR1cm4gbmF0aXZlVmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAobmF0aXZlVmFsdWUpIHtcbiAgICAgICAgICAgIG5hdGl2ZVZhbHVlID0gbW9tZW50KG5hdGl2ZVZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKG5hdGl2ZVZhbHVlLmZvcm1hdCAmJiAhdGhpcy5lbmFibGVUaW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5hdGl2ZVZhbHVlLmZvcm1hdCgnREQvTU0vWVlZWScpICsgJyAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChuYXRpdmVWYWx1ZS5mb3JtYXQgJiYgdGhpcy5lbmFibGVUaW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5hdGl2ZVZhbHVlLmZvcm1hdCgnREQvTU0vWVlZWSBISDptbTowMCcpICsgJyAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0Vycm9ycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUNvbnRyb2w/LmVycm9ycyAmJiAodGhpcy5mb3JtQ29udHJvbD8uZGlydHkgfHwgKHRoaXMuZm9ybUNvbnRhaW5lciAmJiB0aGlzLmZvcm1Db250YWluZXJbJ3N1Ym1pdHRlZCddKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Rpc2FibGVkIHx8IHRoaXMuaXNEaXNhYmxlZEJ5UGFyZW50KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0Q29tcG9uZW50KCkge1xuICAgICAgICBpZiAodGhpcy5mb3JtQ29udGFpbmVyICYmIHRoaXMuZm9ybUNvbnRhaW5lci5jb250cm9sICYmICh0aGlzLmZvcm1Db250cm9sID0gdGhpcy5mb3JtQ29udGFpbmVyLmNvbnRyb2wuZ2V0KHRoaXMubmFtZSkpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZWZhdWx0RGF0ZSAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBtb21lbnQodGhpcy5kZWZhdWx0RGF0ZSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdE5nTW9kZWwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb25zKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmFsbG93SW5wdXQgJiYgIXRoaXMuZW5hYmxlVGltZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBEYXRlSW5wdXRNYXNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRGF0ZUlucHV0TWFzaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubG9jYWxlID09IE5ndERhdGVMb2NhbGUuQlJBWklMKSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwbHlJbnB1dE1hc2sodGhpcy5uZzJGbGF0cGlja3JDb21wb25lbnQuZmxhdHBpY2tyWydpbnB1dCddLCBJbnB1dE1hc2tFbnVtLkRBVEUsIHsgbWFzazogJzk5Lzk5Lzk5OTknIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubG9jYWxlID09IE5ndERhdGVMb2NhbGUuVVMpIHtcbiAgICAgICAgICAgIHJldHVybiBhcHBseUlucHV0TWFzayh0aGlzLm5nMkZsYXRwaWNrckNvbXBvbmVudC5mbGF0cGlja3JbJ2lucHV0J10sIElucHV0TWFza0VudW0uREFURSwgeyBtYXNrOiAnOTk5OS05OS05OScgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbGlkYXRpb25zKCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBzeW5jVmFsaWRhdG9ycyA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLmlzUmVxdWlyZWQpIHtcbiAgICAgICAgICAgIHN5bmNWYWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhzeW5jVmFsaWRhdG9ycyk7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZSA9PSBOZ3REYXRlTG9jYWxlLlVTXG4gICAgICAgICAgICA/IGVuZ2xpc2hcbiAgICAgICAgICAgIDogUG9ydHVndWVzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGVNb2RlKCkge1xuICAgICAgICBpZiAodGhpcy5tb2RlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlID09IE5ndERhdGVNb2RlLlJBTkdFKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdyYW5nZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJ3NpbmdsZSc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNb21lbnREYXRlRm9ybWF0KCkge1xuICAgICAgICBsZXQgZGF0ZUZvcm1hdCA9ICcnO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kYXRlRm9ybWF0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF0ZUZvcm1hdC5jaGFyQXQoaSkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnREQnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnTU0nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnTU1NJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnWSc6XG4gICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQgKz0gJ1lZWVknO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICcvJzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnLyc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJy0nOlxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICctJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnOic6XG4gICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQgKz0gJzonO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdIJzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnSEgnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdpJzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnbW0nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnc3MnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRlRm9ybWF0LmNoYXJBdChpKSAhPSAnLicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQgKz0gdGhpcy5kYXRlRm9ybWF0LmNoYXJBdChpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGVGb3JtYXQgPyBkYXRlRm9ybWF0IDogJ0REL01NL1lZWVkgSEg6bW06MDAnO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydERhdGVUb0FtZXJpY2FuRm9ybWF0KGRhdGVUaW1lU3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5sb2NhbGUgPT0gTmd0RGF0ZUxvY2FsZS5VUykge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGVUaW1lU3RyaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3BsaXR0ZWREYXRlOiBBcnJheTxzdHJpbmc+ID0gZGF0ZVRpbWVTdHJpbmcuc3BsaXQoJy8nKTtcblxuICAgICAgICByZXR1cm4gYCR7c3BsaXR0ZWREYXRlWzJdfS0ke3NwbGl0dGVkRGF0ZVsxXX0tJHtzcGxpdHRlZERhdGVbMF19YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRGlzYWJsZWRCeVBhcmVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmd0Rm9ybT8uaXNEaXNhYmxlZFxuICAgICAgICAgICAgfHwgdGhpcy5uZ3RTZWN0aW9uPy5pc0Rpc2FibGVkXG4gICAgICAgICAgICB8fCB0aGlzLm5ndE1vZGFsPy5pc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveVN1YnNjcmlwdGlvbnMoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gTmd0RGF0ZUxvY2FsZSB7XG4gICAgQlJBWklMID0gJ0JSQVpJTCcsXG4gICAgVVMgPSAnVVMnXG59XG5cbmV4cG9ydCBlbnVtIE5ndERhdGVNb2RlIHtcbiAgICBTSU5HTEUgPSAnU0lOR0xFJyxcbiAgICBSQU5HRSA9ICdSQU5HRSdcbn1cbiIsIjxsYWJlbCBjbGFzcz1cInt7IHNoaW5pbmcgPyAnJyA6ICdibG9jaycgfX0gbWItMiB7e25ndFN0eWxlLmNvbXBpbGUoWyd0ZXh0JywgJ2ZvbnRDYXNlJ10pfX0gZmxleFwiICpuZ0lmPVwibGFiZWxcIlxuICAgIFtoaWRkZW5dPSdzaGluaW5nJz5cbiAgICB7eyBsYWJlbCB9fTpcblxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNTAwIGZvbnQtYm9sZCB0ZXh0LW1kIG1sLTFcIiAqbmdJZj1cImlzUmVxdWlyZWRcIj4qPC9zcGFuPlxuXG4gICAgPG5ndC1oZWxwZXIgKm5nSWY9XCJoZWxwVGV4dFwiIFtoZWxwVGl0bGVdPVwiaGVscFRpdGxlXCIgW2ljb25Db2xvcl09XCJoZWxwVGV4dENvbG9yXCJcbiAgICAgICAgW2hlbHBlclJldmVyc2VZUG9zaXRpb25dPVwiaGVscGVyUmV2ZXJzZVlQb3NpdGlvblwiIGNsYXNzPVwibWwtMVwiPlxuICAgICAgICB7eyBoZWxwVGV4dCB9fVxuICAgIDwvbmd0LWhlbHBlcj5cbjwvbGFiZWw+XG5cbjxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiIFtoaWRkZW5dPSdzaGluaW5nIHx8IGRpc2FibGVkKCkgfHwgaXNSZWFkb25seSc+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm92ZXJmbG93LWhpZGRlbiB7eyBuZ3RTdHlsZS5jb21waWxlKFsnaCcsICdjb2xvci50ZXh0J10pIH19IHt7IGhhc0Vycm9ycygpID8gJ2JvcmRlci1lcnJvcicgOiAnYm9yZGVyLW5vcm1hbCcgfX1cIj5cbiAgICAgICAgPG5nMi1mbGF0cGlja3IgY2xhc3M9XCJibG9jayBoLWZ1bGxcIiBbY29uZmlnXT0nZGF0ZUNvbmZpZycgZGlzYWJsZWQ9J3RydWUnIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIlxuICAgICAgICAgICAgI25nMkZsYXRwaWNrckNvbXBvbmVudD5cbiAgICAgICAgPC9uZzItZmxhdHBpY2tyPlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJhbGxvd0NsZWFyICYmIHZhbHVlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBoLWZ1bGwgYWJzb2x1dGUgaXRlbXMtY2VudGVyIHJpZ2h0LTAgdG9wLTAgdy1hdXRvIGN1cnNvci1wb2ludGVyIHt7c2hvd0NhbGVuZGFySWNvbiA/ICdtci02JyA6ICdtci0yJ319XCJcbiAgICAgICAgICAgIChjbGljayk9J2NsZWFySW5wdXQodHJ1ZSknPlxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudCB0ZXh0LXJlZC00MDBcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkuMSAxNy4ybC01LjMtNS4zIDUuMy01LjMtMS44LTEuOC01LjMgNS40LTUuMy01LjMtMS44IDEuNyA1LjMgNS4zLTUuMyA1LjNMNi43IDE5bDUuMy01LjMgNS4zIDUuMyAxLjgtMS44elwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cInNob3dDYWxlbmRhckljb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGgtZnVsbCBhYnNvbHV0ZSBpdGVtcy1jZW50ZXIgcmlnaHQtMCB0b3AtMCB3LWF1dG8gY3Vyc29yLXBvaW50ZXIgbXItMlwiPlxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudCB0ZXh0LWxnXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICBkPVwiTTE5LDRIMTdWM2ExLDEsMCwwLDAtMiwwVjRIOVYzQTEsMSwwLDAsMCw3LDNWNEg1QTMsMywwLDAsMCwyLDdWMTlhMywzLDAsMCwwLDMsM0gxOWEzLDMsMCwwLDAsMy0zVjdBMywzLDAsMCwwLDE5LDRabTEsMTVhMSwxLDAsMCwxLTEsMUg1YTEsMSwwLDAsMS0xLTFWMTJIMjBabTAtOUg0VjdBMSwxLDAsMCwxLDUsNkg3VjdBMSwxLDAsMCwwLDksN1Y2aDZWN2ExLDEsMCwwLDAsMiwwVjZoMmExLDEsMCwwLDEsMSwxWlwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj0nc2hpbmluZyc+XG4gICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgPG5ndC1zaGluaW5nIGNsYXNzPVwiaC0xMCB3LWZ1bGxcIj48L25ndC1zaGluaW5nPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9J2Rpc2FibGVkKCkgfHwgaXNSZWFkb25seSc+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInt7ZGlzYWJsZWQoKSA/ICdkaXNhYmxlZERpdicgOiAnJ319IHt7bmd0U3R5bGUuY29tcGlsZShbJ2gnXSl9fSB3LWZ1bGwgcHgtNCByb3VuZGVkIGFwcGVhcmFuY2Utbm9uZSBmbGV4IGl0ZW1zLWNlbnRlciBib3JkZXIgYm9yZGVyLWdyYXktNDAwXCI+XG4gICAgICAgIHt7IGdldEZvcm1hdHRlZE5hdGl2ZVZhbHVlKCkgfX1cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48aW5wdXQgKm5nSWY9J2NvbXBvbmVudFJlYWR5JyB0eXBlPVwiaGlkZGVuXCIgW25nTW9kZWxdPVwidmFsdWVcIiBbbmFtZV09XCJuYW1lXCIgW3ZhbHVlXT1cInZhbHVlXCI+XG5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjxuZ3QtdmFsaWRhdGlvbiBbY29udHJvbF09XCJmb3JtQ29udHJvbFwiIFtjb250YWluZXJdPVwiZm9ybUNvbnRhaW5lclwiPjwvbmd0LXZhbGlkYXRpb24+XG4iXX0=
435
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LWRhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRhdGUvbmd0LWRhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LWRhdGUvbmd0LWRhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxJQUFJLEVBRUosS0FBSyxFQUdMLFFBQVEsRUFDUixJQUFJLEVBRUosUUFBUSxFQUNSLFNBQVMsRUFDVCxpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUk1QixPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRS9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0YsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDOzs7Ozs7Ozs7Ozs7QUFpQjVGLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxjQUFjO0lBK0NoRCxZQUVXLGFBQStCLEVBRTlCLFFBQWtCLEVBR2xCLHNCQUE4QyxFQUc5QyxPQUF5QixFQUd6QixVQUErQixFQUcvQixRQUEyQjtRQUVuQyxLQUFLLEVBQUUsQ0FBQztRQWhCRCxrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFFOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUdsQiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBRzlDLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBR3pCLGVBQVUsR0FBVixVQUFVLENBQXFCO1FBRy9CLGFBQVEsR0FBUixRQUFRLENBQW1CO1FBNUR2QyxTQUFTO1FBQ08sVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUNuQixnQkFBVyxHQUFXLFlBQVksQ0FBQztRQUduQyxrQkFBYSxHQUFXLGdCQUFnQixDQUFDO1FBQ3pDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsZUFBVSxHQUFXLFdBQVcsQ0FBQztRQUNqQyxzQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQztRQUMxQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFLbEMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixlQUFVLEdBQVksS0FBSyxDQUFDO1FBRTVCLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIsZUFBVSxHQUFZLElBQUksQ0FBQztRQUMzQixlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBQzVCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsV0FBTSxHQUFrQixhQUFhLENBQUMsTUFBTSxDQUFDO1FBQzdDLGVBQVUsR0FBWSxJQUFJLENBQUM7UUFLM0MsYUFBYTtRQUNHLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFLckMsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsZUFBVSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ3BCLG9CQUFlLEdBR2xCLEVBQUUsQ0FBQztRQUVDLGtCQUFhLEdBQXdCLEVBQUUsQ0FBQztRQXVCNUMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRXhDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFnQixFQUFFLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUNMLENBQUM7U0FDTDtRQUVELElBQUksSUFBSSxDQUFDLHNCQUFzQixFQUFFO1lBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLENBQUM7U0FDekU7YUFBTTtZQUNILElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1NBQzlDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUU7WUFDekMsQ0FBQyxFQUFFLE1BQU07WUFDVCxJQUFJLEVBQUUsU0FBUztZQUNmLFFBQVEsRUFBRSxFQUFFO1lBQ1osS0FBSyxFQUFFO2dCQUNILElBQUksRUFBRSxlQUFlO2FBQ3hCO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjtRQUNyQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDNUI7UUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQ3pFO1FBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7U0FDL0U7SUFDTCxDQUFDO0lBRU0sUUFBUTtRQUNYLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDZCxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDeEIsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ3JDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUMvQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN4QixRQUFRLEVBQUUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUM7WUFDM0csT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDO1NBQzlHLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNyQixPQUFPLENBQUMsS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7U0FDNUU7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNaLE9BQU8sQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztTQUMvRDthQUFNO1lBQ0gsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztnQkFDM0IsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDWixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsbUJBQW1CLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUVwRSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sVUFBVSxDQUFDLGFBQWEsR0FBRyxLQUFLO1FBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBRXRCLElBQUksSUFBSSxDQUFDLHFCQUFxQixJQUFJLGFBQWEsRUFBRTtZQUM3QyxJQUFJLENBQUMscUJBQXFCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbkQ7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQVU7UUFDcEIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVDO1FBRUQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssWUFBWSxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25FLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQzVCO1FBRUQsSUFBSSxLQUFLLElBQUksS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEMsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRS9CLElBQUksQ0FBQyxLQUFLLFlBQVksTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLFlBQVksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDcEcsVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFOUIsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtvQkFDbkIsVUFBVSxHQUFHLFVBQVUsQ0FBQztvQkFFeEIsSUFBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUVuQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUU7d0JBQy9DLE9BQWEsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVUsQ0FBQyxPQUFPLENBQUM7NEJBQ3ZELFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7NEJBQzdDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7eUJBQ2pELEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztxQkFDN0I7aUJBQ0o7YUFDSjtZQUVELElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUN0QixPQUFhLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3BJO1lBRUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNyQjtJQUNMLENBQUM7SUFFTSxjQUFjLENBQUMsS0FBVSxFQUFFLE9BQWUsRUFBRSxRQUFhLEVBQUUsWUFBcUI7UUFDbkYsSUFBSSxPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUN6RixJQUFJLENBQUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDO1lBRXJDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNqRTtRQUVELElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLFlBQVksTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuRSxJQUFJLFlBQVksRUFBRTtnQkFDZCxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDcEI7WUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUM1QjtRQUVELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBRXRCLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3BCLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBRTFCLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRTtvQkFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO2lCQUNqRTtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNqQixLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpCLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQzNEO1NBQ0o7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRU0sY0FBYztRQUNqQixJQUFJLFdBQVcsR0FBUSxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRXhDLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUU7WUFDbkMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7U0FDNUQ7UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRU0sdUJBQXVCO1FBQzFCLElBQUksV0FBVyxHQUFRLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFeEMsSUFBSSxXQUFXLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMzQyxJQUFJLG9CQUFvQixHQUFXLEVBQUUsQ0FBQztZQUV0QyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUMxQixPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUUxQixJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO29CQUNwQyxvQkFBb0IsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLEdBQUcsQ0FBQztpQkFDOUQ7cUJBQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7b0JBQzFDLG9CQUFvQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsR0FBRyxHQUFHLENBQUM7aUJBQ3ZFO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLG9CQUFvQixDQUFDO1NBQy9CO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLEtBQUssRUFBRTtZQUNqQyxPQUFPLFdBQVcsQ0FBQztTQUN0QjthQUFNLElBQUksV0FBVyxFQUFFO1lBQ3BCLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFbEMsSUFBSSxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDeEMsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLEdBQUcsQ0FBQzthQUNqRDtpQkFBTSxJQUFJLFdBQVcsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDOUMsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsR0FBRyxDQUFDO2FBQzFEO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVNLFNBQVM7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVILENBQUM7SUFFTSxRQUFRO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFFTyxhQUFhO1FBQ2pCLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ3BILElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7YUFDeEU7WUFFRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUV6QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNsQztpQkFBTTtnQkFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDO2FBQ3JDO1lBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7YUFDN0I7U0FDSjtJQUNMLENBQUM7SUFFTyxrQkFBa0I7UUFDdEIsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDckMsT0FBTyxjQUFjLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7U0FDcEg7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksYUFBYSxDQUFDLEVBQUUsRUFBRTtZQUNqQyxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztTQUNwSDtJQUNMLENBQUM7SUFFTyxpQkFBaUI7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsT0FBTztTQUNWO1FBRUQsSUFBSSxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXhCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM1QztRQUVELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMvQyxJQUFJLENBQUMsV0FBVyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sU0FBUztRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxhQUFhLENBQUMsRUFBRTtZQUNsQyxDQUFDLENBQUMsT0FBTztZQUNULENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDckIsQ0FBQztJQUVPLFdBQVc7UUFDZixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRTtnQkFDaEMsT0FBTyxPQUFPLENBQUM7YUFDbEI7U0FDSjtRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFTyxtQkFBbUI7UUFDdkIsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXBCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3QyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUMvQixLQUFLLEdBQUc7b0JBQ0osVUFBVSxJQUFJLElBQUksQ0FBQztvQkFDbkIsTUFBTTtnQkFDVixLQUFLLEdBQUc7b0JBQ0osVUFBVSxJQUFJLElBQUksQ0FBQztvQkFDbkIsTUFBTTtnQkFDVixLQUFLLEdBQUc7b0JBQ0osVUFBVSxJQUFJLEtBQUssQ0FBQztvQkFDcEIsTUFBTTtnQkFDVixLQUFLLEdBQUc7b0JBQ0osVUFBVSxJQUFJLE1BQU0sQ0FBQztvQkFDckIsTUFBTTtnQkFDVixLQUFLLEdBQUc7b0JBQ0osVUFBVSxJQUFJLEdBQUcsQ0FBQztvQkFDbEIsTUFBTTtnQkFDVixLQUFLLEdBQUc7b0JBQ0osVUFBVSxJQUFJLEdBQUcsQ0FBQztvQkFDbEIsTUFBTTtnQkFDVixLQUFLLEdBQUc7b0JBQ0osVUFBVSxJQUFJLEdBQUcsQ0FBQztvQkFDbEIsTUFBTTtnQkFDVixLQUFLLEdBQUc7b0JBQ0osVUFBVSxJQUFJLElBQUksQ0FBQztvQkFDbkIsTUFBTTtnQkFDVixLQUFLLEdBQUc7b0JBQ0osVUFBVSxJQUFJLElBQUksQ0FBQztvQkFDbkIsTUFBTTtnQkFDVixLQUFLLEdBQUc7b0JBQ0osVUFBVSxJQUFJLElBQUksQ0FBQztvQkFDbkIsTUFBTTtnQkFDVjtvQkFDSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRTt3QkFDbEMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUMzQzthQUNSO1NBQ0o7UUFFRCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQztJQUMzRCxDQUFDO0lBRU8sMkJBQTJCLENBQUMsY0FBc0I7UUFDdEQsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLGFBQWEsQ0FBQyxFQUFFLEVBQUU7WUFDakMsT0FBTyxjQUFjLENBQUM7U0FDekI7UUFFRCxNQUFNLFlBQVksR0FBa0IsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU5RCxPQUFPLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBRU8sa0JBQWtCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVO2VBQ3hCLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVTtlQUMzQixJQUFJLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQztJQUNyQyxDQUFDO0lBRU8sb0JBQW9CO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7NkdBdlpRLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLDJyQkFQZDtRQUNQLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztLQUNwQyxvTkN0Q0wsd21GQXVEQSxza2REaEJtQjtRQUNYLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7S0FDckQ7MkZBRVEsZ0JBQWdCO2tCQVo1QixTQUFTOytCQUNJLFVBQVUsaUJBR0wsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDUCxlQUFlLGtCQUFrQjtxQkFDcEMsaUJBQ2M7d0JBQ1gsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtxQkFDckQ7OzBCQWtESSxRQUFROzswQkFBSSxJQUFJOzswQkFLaEIsSUFBSTs7MEJBQUksUUFBUTs7MEJBR2hCLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUdwQixRQUFROzswQkFBSSxRQUFROzswQkFHcEIsUUFBUTs7MEJBQUksUUFBUTs0Q0E3RG9DLHFCQUFxQjtzQkFBakYsU0FBUzt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBR3BDLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsaUJBQWlCO3NCQUFoQyxLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxzQkFBc0I7c0JBQXJDLEtBQUs7Z0JBR1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUdVLFVBQVU7c0JBQXpCLEtBQUs7O0FBMFhWLE1BQU0sQ0FBTixJQUFZLGFBR1g7QUFIRCxXQUFZLGFBQWE7SUFDckIsa0NBQWlCLENBQUE7SUFDakIsMEJBQVMsQ0FBQTtBQUNiLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QjtBQUVELE1BQU0sQ0FBTixJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDbkIsZ0NBQWlCLENBQUE7SUFDakIsOEJBQWUsQ0FBQTtBQUNuQixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBIb3N0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOZ0Zvcm0sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBlbmdsaXNoIH0gZnJvbSAnZmxhdHBpY2tyL2Rpc3QvbDEwbi9kZWZhdWx0LmpzJztcbmltcG9ydCB7IFBvcnR1Z3Vlc2UgfSBmcm9tICdmbGF0cGlja3IvZGlzdC9sMTBuL3B0LmpzJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEZsYXRwaWNrck9wdGlvbnMsIE5nMkZsYXRwaWNrckNvbXBvbmVudCB9IGZyb20gJ25nMi1mbGF0cGlja3InO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5ndEJhc2VOZ01vZGVsLCBOZ3RNYWtlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9iYXNlL25ndC1iYXNlLW5nLW1vZGVsJztcbmltcG9ydCB7IE5ndFN0eWxpemFibGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL25ndC1zdHlsaXphYmxlL25ndC1zdHlsaXphYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBnZXRFbnVtRnJvbVN0cmluZyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZW51bS9lbnVtJztcbmltcG9ydCB7IGFwcGx5SW5wdXRNYXNrLCBJbnB1dE1hc2tFbnVtIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pbnB1dC1tYXNrL2lucHV0LW1hc2suaGVscGVyJztcbmltcG9ydCB7IHV1aWQgfSBmcm9tICcuLi8uLi9oZWxwZXJzL3V1aWQnO1xuaW1wb3J0IHsgTmd0U3R5bGl6YWJsZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5ndEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9uZ3QtZm9ybS9uZ3QtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd0U2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL25ndC1zZWN0aW9uL25ndC1zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3RNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL25ndC1tb2RhbC9uZ3QtbW9kYWwuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3QtZGF0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ndC1kYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uZ3QtZGF0ZS5jb21wb25lbnQuY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmd0TWFrZVByb3ZpZGVyKE5ndERhdGVDb21wb25lbnQpLFxuICAgIF0sXG4gICAgdmlld1Byb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IENvbnRyb2xDb250YWluZXIsIHVzZUV4aXN0aW5nOiBOZ0Zvcm0gfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmd0RGF0ZUNvbXBvbmVudCBleHRlbmRzIE5ndEJhc2VOZ01vZGVsIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoXCJuZzJGbGF0cGlja3JDb21wb25lbnRcIiwgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIG5nMkZsYXRwaWNrckNvbXBvbmVudDogTmcyRmxhdHBpY2tyQ29tcG9uZW50O1xuXG4gICAgLy8gVmlzdWFsXG4gICAgQElucHV0KCkgcHVibGljIGxhYmVsOiBzdHJpbmcgPSBcIlwiO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gXCJkZC9tbS95eXl5XCI7XG4gICAgQElucHV0KCkgcHVibGljIGhlbHBUaXRsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwVGV4dDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwVGV4dENvbG9yOiBzdHJpbmcgPSAndGV4dC1ncmVlbi01MDAnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaGluaW5nID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGRhdGVGb3JtYXQ6IHN0cmluZyA9ICdkL20vWSBIOmknO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkYXRlRm9ybWF0TmdNb2RlbCA9ICdZWVlZLU1NLUREIEhIOm1tOjAwJztcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hvd0NhbGVuZGFySWNvbjogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBoZWxwZXJSZXZlcnNlWVBvc2l0aW9uOiBib29sZWFuO1xuXG4gICAgLy8gQmVoYXZpb3JcbiAgICBASW5wdXQoKSBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIGlzUmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgbW9kZTogTmd0RGF0ZU1vZGU7XG4gICAgQElucHV0KCkgcHVibGljIHRpbWVfMjRocjogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgcHVibGljIGVuYWJsZVRpbWU6IGJvb2xlYW4gPSB0cnVlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBub0NhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgcHVibGljIG1pbnV0ZUluY3JlbWVudDogbnVtYmVyID0gMTtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWxsb3dJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBsb2NhbGU6IE5ndERhdGVMb2NhbGUgPSBOZ3REYXRlTG9jYWxlLkJSQVpJTDtcbiAgICBASW5wdXQoKSBwdWJsaWMgYWxsb3dDbGVhcjogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KCkgcHVibGljIG1pbkRhdGU6IHN0cmluZztcbiAgICBASW5wdXQoKSBwdWJsaWMgbWF4RGF0ZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBkZWZhdWx0RGF0ZTogc3RyaW5nO1xuXG4gICAgLy8gVmFsaWRhdGlvblxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc1JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgbmd0U3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlO1xuICAgIHB1YmxpYyBkYXRlQ29uZmlnOiBGbGF0cGlja3JPcHRpb25zO1xuICAgIHB1YmxpYyBuYXRpdmVWYWx1ZTogYW55O1xuICAgIHB1YmxpYyBjb21wb25lbnRSZWFkeSA9IGZhbHNlO1xuICAgIHB1YmxpYyBuYXRpdmVOYW1lID0gdXVpZCgpO1xuICAgIHB1YmxpYyBpbnB1dFByb3BlcnRpZXM6IHtcbiAgICAgICAgaHRtbFR5cGU/OiBzdHJpbmc7XG4gICAgICAgIGxlbmd0aD86IG51bWJlcjtcbiAgICB9ID0ge307XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcbiAgICBwcml2YXRlIGxhc3RJbnB1dGVkRGF0ZVN0cmluZzogc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASG9zdCgpXG4gICAgICAgIHB1YmxpYyBmb3JtQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuXG4gICAgICAgIEBTZWxmKCkgQE9wdGlvbmFsKClcbiAgICAgICAgcHJpdmF0ZSBuZ3RTdHlsaXphYmxlRGlyZWN0aXZlOiBOZ3RTdHlsaXphYmxlRGlyZWN0aXZlLFxuXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpXG4gICAgICAgIHByaXZhdGUgbmd0Rm9ybTogTmd0Rm9ybUNvbXBvbmVudCxcblxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKVxuICAgICAgICBwcml2YXRlIG5ndFNlY3Rpb246IE5ndFNlY3Rpb25Db21wb25lbnQsXG5cbiAgICAgICAgQE9wdGlvbmFsKCkgQFNraXBTZWxmKClcbiAgICAgICAgcHJpdmF0ZSBuZ3RNb2RhbDogTmd0TW9kYWxDb21wb25lbnRcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICBpZiAodGhpcy5uZ3RGb3JtKSB7XG4gICAgICAgICAgICB0aGlzLnNoaW5pbmcgPSB0aGlzLm5ndEZvcm0uaXNTaGluaW5nKCk7XG5cbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgIHRoaXMubmd0Rm9ybS5vblNoaW5pbmdDaGFuZ2Uuc3Vic2NyaWJlKChzaGluaW5nOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hpbmluZyA9IHNoaW5pbmc7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5uZ3RTdHlsaXphYmxlRGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gdGhpcy5uZ3RTdHlsaXphYmxlRGlyZWN0aXZlLmdldE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm5ndFN0eWxlID0gbmV3IE5ndFN0eWxpemFibGVTZXJ2aWNlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm5ndFN0eWxlLmxvYWQodGhpcy5pbmplY3RvciwgJ05ndERhdGUnLCB7XG4gICAgICAgICAgICBoOiAnaC0xMicsXG4gICAgICAgICAgICB0ZXh0OiAndGV4dC1zbScsXG4gICAgICAgICAgICBmb250Q2FzZTogJycsXG4gICAgICAgICAgICBjb2xvcjoge1xuICAgICAgICAgICAgICAgIHRleHQ6ICd0ZXh0LWdyYXktODAwJ1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBpZiAoY2hhbmdlcy5pc1JlcXVpcmVkKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb25zKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcy5tb2RlKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGUgPSBnZXRFbnVtRnJvbVN0cmluZyhjaGFuZ2VzLm1vZGUuY3VycmVudFZhbHVlLCBOZ3REYXRlTW9kZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcy5sb2NhbGUpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxlID0gZ2V0RW51bUZyb21TdHJpbmcoY2hhbmdlcy5sb2NhbGUuY3VycmVudFZhbHVlLCBOZ3REYXRlTG9jYWxlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5kYXRlQ29uZmlnID0ge1xuICAgICAgICAgICAgZGF0ZUZvcm1hdDogdGhpcy5kYXRlRm9ybWF0LFxuICAgICAgICAgICAgbW9kZTogdGhpcy5nZXREYXRlTW9kZSgpLFxuICAgICAgICAgICAgbWludXRlSW5jcmVtZW50OiB0aGlzLm1pbnV0ZUluY3JlbWVudCxcbiAgICAgICAgICAgIG1pbkRhdGU6IHRoaXMubWluRGF0ZSxcbiAgICAgICAgICAgIG1heERhdGU6IHRoaXMubWF4RGF0ZSxcbiAgICAgICAgICAgIHRpbWVfMjRocjogdGhpcy50aW1lXzI0aHIsXG4gICAgICAgICAgICBlbmFibGVUaW1lOiB0aGlzLmVuYWJsZVRpbWUsXG4gICAgICAgICAgICBub0NhbGVuZGFyOiB0aGlzLm5vQ2FsZW5kYXIsXG4gICAgICAgICAgICBhbGxvd0lucHV0OiB0aGlzLmFsbG93SW5wdXQgJiYgIXRoaXMuZW5hYmxlVGltZSxcbiAgICAgICAgICAgIGxvY2FsZTogdGhpcy5nZXRMb2NhbGUoKSxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAoc2VsZWN0ZWREYXRlcywgZGF0ZVN0ciwgaW5zdGFuY2UpID0+IHRoaXMub25OYXRpdmVDaGFuZ2Uoc2VsZWN0ZWREYXRlcywgZGF0ZVN0ciwgaW5zdGFuY2UsIHRydWUpLFxuICAgICAgICAgICAgb25DbG9zZTogKHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHIsIGluc3RhbmNlKSA9PiB0aGlzLm9uTmF0aXZlQ2hhbmdlKHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHIsIGluc3RhbmNlLCBmYWxzZSksXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKCF0aGlzLmZvcm1Db250YWluZXIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJUaGUgZWxlbWVudCBtdXN0IGJlIGluc2lkZSBhIDxmb3JtICNmb3JtPSduZ0Zvcm0nPiB0YWchXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLm5hbWUpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJUaGUgZWxlbWVudCBtdXN0IGNvbnRhaW4gYSBuYW1lIGF0dHJpYnV0ZSFcIik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlYWR5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0Q29tcG9uZW50KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LCA1MDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLm5nMkZsYXRwaWNrckNvbXBvbmVudC5mbGF0cGlja3JbJ2NhbGVuZGFyQ29udGFpbmVyJ10/LnJlbW92ZSgpO1xuXG4gICAgICAgIHRoaXMuZGVzdHJveVN1YnNjcmlwdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xlYXJJbnB1dChjbGVhckluc3RhbmNlID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gJyc7XG5cbiAgICAgICAgaWYgKHRoaXMubmcyRmxhdHBpY2tyQ29tcG9uZW50ICYmIGNsZWFySW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMubmcyRmxhdHBpY2tyQ29tcG9uZW50LnNldERhdGVGcm9tSW5wdXQoJycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNoYW5nZSh2YWx1ZTogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmNvbXBvbmVudFJlYWR5KSB7XG4gICAgICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VFdmVudC5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF2YWx1ZSB8fCAodmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgIU9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhcklucHV0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT0gdGhpcy5uYXRpdmVWYWx1ZSkge1xuICAgICAgICAgICAgbGV0IGZpcnN0VmFsdWUgPSBtb21lbnQodmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAoKHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmIE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGgpIHx8ICh2YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICYmIHZhbHVlLmxlbmd0aCkpIHtcbiAgICAgICAgICAgICAgICBmaXJzdFZhbHVlID0gbW9tZW50KHZhbHVlWzBdKTtcblxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5sZW5ndGggPT0gMikge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdFZhbHVlID0gZmlyc3RWYWx1ZTtcblxuICAgICAgICAgICAgICAgICAgICBsZXQgc2Vjb25kVmFsdWUgPSBtb21lbnQodmFsdWVbMV0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdFZhbHVlLmlzVmFsaWQoKSAmJiBzZWNvbmRWYWx1ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoPGFueT50aGlzLm5nMkZsYXRwaWNrckNvbXBvbmVudC5mbGF0cGlja3IpLnNldERhdGUoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0VmFsdWUuZm9ybWF0KHRoaXMuZ2V0TW9tZW50RGF0ZUZvcm1hdCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRWYWx1ZS5mb3JtYXQodGhpcy5nZXRNb21lbnREYXRlRm9ybWF0KCkpXG4gICAgICAgICAgICAgICAgICAgICAgICBdLCB0cnVlLCB0aGlzLmRhdGVGb3JtYXQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZmlyc3RWYWx1ZS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKDxhbnk+dGhpcy5uZzJGbGF0cGlja3JDb21wb25lbnQuZmxhdHBpY2tyKS5zZXREYXRlKGZpcnN0VmFsdWUuZm9ybWF0KHRoaXMuZ2V0TW9tZW50RGF0ZUZvcm1hdCgpKSwgdHJ1ZSwgdGhpcy5kYXRlRm9ybWF0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5uZzJGbGF0cGlja3JDb21wb25lbnQuc2V0RGF0ZUZyb21JbnB1dCgnJyk7XG4gICAgICAgICAgICB0aGlzLmNsZWFySW5wdXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbk5hdGl2ZUNoYW5nZSh2YWx1ZTogYW55LCBkYXRlU3RyOiBzdHJpbmcsIGluc3RhbmNlOiBhbnksIHRyaWdnZXJDbG9zZTogYm9vbGVhbikge1xuICAgICAgICBpZiAoZGF0ZVN0ciAmJiB0aGlzLmFsbG93SW5wdXQgJiYgIXRoaXMuZW5hYmxlVGltZSAmJiBkYXRlU3RyICE9IHRoaXMubGFzdElucHV0ZWREYXRlU3RyaW5nKSB7XG4gICAgICAgICAgICB0aGlzLmxhc3RJbnB1dGVkRGF0ZVN0cmluZyA9IGRhdGVTdHI7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNoYW5nZSh0aGlzLmNvbnZlcnREYXRlVG9BbWVyaWNhbkZvcm1hdChkYXRlU3RyKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXZhbHVlIHx8ICh2YWx1ZSBpbnN0YW5jZW9mIE9iamVjdCAmJiAhT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIGlmICh0cmlnZ2VyQ2xvc2UpIHtcbiAgICAgICAgICAgICAgICBpbnN0YW5jZS5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jbGVhcklucHV0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5tb2RlID09IE5ndERhdGVNb2RlLlJBTkdFKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZVZhbHVlID0gW107XG5cbiAgICAgICAgICAgIHZhbHVlLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudCA9IG1vbWVudChlbGVtZW50KTtcblxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUucHVzaChlbGVtZW50LmZvcm1hdCh0aGlzLmRhdGVGb3JtYXROZ01vZGVsKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodmFsdWVbMF0pIHtcbiAgICAgICAgICAgIHZhbHVlID0gbW9tZW50KHZhbHVlWzBdKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMubmF0aXZlVmFsdWUgPSB2YWx1ZS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0TmdNb2RlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy52YWx1ZSAhPSB0aGlzLm5hdGl2ZVZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5uYXRpdmVWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXROYXRpdmVWYWx1ZSgpIHtcbiAgICAgICAgbGV0IG5hdGl2ZVZhbHVlOiBhbnkgPSB0aGlzLm5hdGl2ZVZhbHVlO1xuXG4gICAgICAgIGlmIChuYXRpdmVWYWx1ZSAmJiBuYXRpdmVWYWx1ZS5mb3JtYXQpIHtcbiAgICAgICAgICAgIG5hdGl2ZVZhbHVlID0gbmF0aXZlVmFsdWUuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdE5nTW9kZWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5hdGl2ZVZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JtYXR0ZWROYXRpdmVWYWx1ZSgpIHtcbiAgICAgICAgbGV0IG5hdGl2ZVZhbHVlOiBhbnkgPSB0aGlzLm5hdGl2ZVZhbHVlO1xuXG4gICAgICAgIGlmIChuYXRpdmVWYWx1ZSAmJiBBcnJheS5pc0FycmF5KG5hdGl2ZVZhbHVlKSkge1xuICAgICAgICAgICAgbGV0IGZvcm1hdHRlZE5hdGl2ZVZhbHVlOiBzdHJpbmcgPSAnJztcblxuICAgICAgICAgICAgbmF0aXZlVmFsdWUuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgICAgICBlbGVtZW50ID0gbW9tZW50KGVsZW1lbnQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQuZm9ybWF0ICYmICF0aGlzLmVuYWJsZVRpbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkTmF0aXZlVmFsdWUgKz0gZWxlbWVudC5mb3JtYXQoJ0REL01NL1lZWVknKSArICcgJztcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQuZm9ybWF0ICYmIHRoaXMuZW5hYmxlVGltZSkge1xuICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWROYXRpdmVWYWx1ZSArPSBlbGVtZW50LmZvcm1hdCgnREQvTU0vWVlZWSBISDptbTowMCcpICsgJyAnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0dGVkTmF0aXZlVmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kYXRlRm9ybWF0ID09ICdIOmknKSB7XG4gICAgICAgICAgICByZXR1cm4gbmF0aXZlVmFsdWU7XG4gICAgICAgIH0gZWxzZSBpZiAobmF0aXZlVmFsdWUpIHtcbiAgICAgICAgICAgIG5hdGl2ZVZhbHVlID0gbW9tZW50KG5hdGl2ZVZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKG5hdGl2ZVZhbHVlLmZvcm1hdCAmJiAhdGhpcy5lbmFibGVUaW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5hdGl2ZVZhbHVlLmZvcm1hdCgnREQvTU0vWVlZWScpICsgJyAnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChuYXRpdmVWYWx1ZS5mb3JtYXQgJiYgdGhpcy5lbmFibGVUaW1lKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5hdGl2ZVZhbHVlLmZvcm1hdCgnREQvTU0vWVlZWSBISDptbTowMCcpICsgJyAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGhhc0Vycm9ycygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybUNvbnRyb2w/LmVycm9ycyAmJiAodGhpcy5mb3JtQ29udHJvbD8uZGlydHkgfHwgKHRoaXMuZm9ybUNvbnRhaW5lciAmJiB0aGlzLmZvcm1Db250YWluZXJbJ3N1Ym1pdHRlZCddKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0Rpc2FibGVkIHx8IHRoaXMuaXNEaXNhYmxlZEJ5UGFyZW50KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0Q29tcG9uZW50KCkge1xuICAgICAgICBpZiAodGhpcy5mb3JtQ29udGFpbmVyICYmIHRoaXMuZm9ybUNvbnRhaW5lci5jb250cm9sICYmICh0aGlzLmZvcm1Db250cm9sID0gdGhpcy5mb3JtQ29udGFpbmVyLmNvbnRyb2wuZ2V0KHRoaXMubmFtZSkpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZWZhdWx0RGF0ZSAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBtb21lbnQodGhpcy5kZWZhdWx0RGF0ZSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdE5nTW9kZWwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkYXRpb25zKCk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmFsbG93SW5wdXQgJiYgIXRoaXMuZW5hYmxlVGltZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0dXBEYXRlSW5wdXRNYXNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRGF0ZUlucHV0TWFzaygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubG9jYWxlID09IE5ndERhdGVMb2NhbGUuQlJBWklMKSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwbHlJbnB1dE1hc2sodGhpcy5uZzJGbGF0cGlja3JDb21wb25lbnQuZmxhdHBpY2tyWydpbnB1dCddLCBJbnB1dE1hc2tFbnVtLkRBVEUsIHsgbWFzazogJzk5Lzk5Lzk5OTknIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubG9jYWxlID09IE5ndERhdGVMb2NhbGUuVVMpIHtcbiAgICAgICAgICAgIHJldHVybiBhcHBseUlucHV0TWFzayh0aGlzLm5nMkZsYXRwaWNrckNvbXBvbmVudC5mbGF0cGlja3JbJ2lucHV0J10sIElucHV0TWFza0VudW0uREFURSwgeyBtYXNrOiAnOTk5OS05OS05OScgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbGlkYXRpb25zKCkge1xuICAgICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBzeW5jVmFsaWRhdG9ycyA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLmlzUmVxdWlyZWQpIHtcbiAgICAgICAgICAgIHN5bmNWYWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsaWRhdG9ycyhzeW5jVmFsaWRhdG9ycyk7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRMb2NhbGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZSA9PSBOZ3REYXRlTG9jYWxlLlVTXG4gICAgICAgICAgICA/IGVuZ2xpc2hcbiAgICAgICAgICAgIDogUG9ydHVndWVzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERhdGVNb2RlKCkge1xuICAgICAgICBpZiAodGhpcy5tb2RlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlID09IE5ndERhdGVNb2RlLlJBTkdFKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdyYW5nZSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJ3NpbmdsZSc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNb21lbnREYXRlRm9ybWF0KCkge1xuICAgICAgICBsZXQgZGF0ZUZvcm1hdCA9ICcnO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kYXRlRm9ybWF0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBzd2l0Y2ggKHRoaXMuZGF0ZUZvcm1hdC5jaGFyQXQoaSkpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdkJzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnREQnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdtJzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnTU0nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdNJzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnTU1NJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnWSc6XG4gICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQgKz0gJ1lZWVknO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICcvJzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnLyc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgJy0nOlxuICAgICAgICAgICAgICAgICAgICBkYXRlRm9ybWF0ICs9ICctJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnOic6XG4gICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQgKz0gJzonO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdIJzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnSEgnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdpJzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnbW0nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdCArPSAnc3MnO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5kYXRlRm9ybWF0LmNoYXJBdChpKSAhPSAnLicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQgKz0gdGhpcy5kYXRlRm9ybWF0LmNoYXJBdChpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGVGb3JtYXQgPyBkYXRlRm9ybWF0IDogJ0REL01NL1lZWVkgSEg6bW06MDAnO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydERhdGVUb0FtZXJpY2FuRm9ybWF0KGRhdGVUaW1lU3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5sb2NhbGUgPT0gTmd0RGF0ZUxvY2FsZS5VUykge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGVUaW1lU3RyaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3BsaXR0ZWREYXRlOiBBcnJheTxzdHJpbmc+ID0gZGF0ZVRpbWVTdHJpbmcuc3BsaXQoJy8nKTtcblxuICAgICAgICByZXR1cm4gYCR7c3BsaXR0ZWREYXRlWzJdfS0ke3NwbGl0dGVkRGF0ZVsxXX0tJHtzcGxpdHRlZERhdGVbMF19YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRGlzYWJsZWRCeVBhcmVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmd0Rm9ybT8uaXNEaXNhYmxlZFxuICAgICAgICAgICAgfHwgdGhpcy5uZ3RTZWN0aW9uPy5pc0Rpc2FibGVkXG4gICAgICAgICAgICB8fCB0aGlzLm5ndE1vZGFsPy5pc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveVN1YnNjcmlwdGlvbnMoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gTmd0RGF0ZUxvY2FsZSB7XG4gICAgQlJBWklMID0gJ0JSQVpJTCcsXG4gICAgVVMgPSAnVVMnXG59XG5cbmV4cG9ydCBlbnVtIE5ndERhdGVNb2RlIHtcbiAgICBTSU5HTEUgPSAnU0lOR0xFJyxcbiAgICBSQU5HRSA9ICdSQU5HRSdcbn1cbiIsIjxsYWJlbCBjbGFzcz1cInt7IHNoaW5pbmcgPyAnJyA6ICdibG9jaycgfX0gbWItMiB7e25ndFN0eWxlLmNvbXBpbGUoWyd0ZXh0JywgJ2ZvbnRDYXNlJ10pfX0gZmxleFwiICpuZ0lmPVwibGFiZWxcIlxuICAgIFtoaWRkZW5dPSdzaGluaW5nJz5cbiAgICB7eyBsYWJlbCB9fTpcblxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC1yZWQtNTAwIGZvbnQtYm9sZCB0ZXh0LW1kIG1sLTFcIiAqbmdJZj1cImlzUmVxdWlyZWRcIj4qPC9zcGFuPlxuXG4gICAgPG5ndC1oZWxwZXIgKm5nSWY9XCJoZWxwVGV4dFwiIFtoZWxwVGl0bGVdPVwiaGVscFRpdGxlXCIgW2ljb25Db2xvcl09XCJoZWxwVGV4dENvbG9yXCJcbiAgICAgICAgW2hlbHBlclJldmVyc2VZUG9zaXRpb25dPVwiaGVscGVyUmV2ZXJzZVlQb3NpdGlvblwiIGNsYXNzPVwibWwtMVwiPlxuICAgICAgICB7eyBoZWxwVGV4dCB9fVxuICAgIDwvbmd0LWhlbHBlcj5cbjwvbGFiZWw+XG5cbjxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiIFtoaWRkZW5dPSdzaGluaW5nIHx8IGRpc2FibGVkKCkgfHwgaXNSZWFkb25seSc+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cIm92ZXJmbG93LWhpZGRlbiB7eyBuZ3RTdHlsZS5jb21waWxlKFsnaCcsICdjb2xvci50ZXh0J10pIH19IHt7IGhhc0Vycm9ycygpID8gJ2JvcmRlci1lcnJvcicgOiAnYm9yZGVyLW5vcm1hbCcgfX1cIj5cbiAgICAgICAgPG5nMi1mbGF0cGlja3IgY2xhc3M9XCJibG9jayBoLWZ1bGxcIiBbY29uZmlnXT0nZGF0ZUNvbmZpZycgZGlzYWJsZWQ9J3RydWUnIHBsYWNlaG9sZGVyPVwie3sgcGxhY2Vob2xkZXIgfX1cIlxuICAgICAgICAgICAgI25nMkZsYXRwaWNrckNvbXBvbmVudD5cbiAgICAgICAgPC9uZzItZmxhdHBpY2tyPlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJhbGxvd0NsZWFyICYmIHZhbHVlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBoLWZ1bGwgYWJzb2x1dGUgaXRlbXMtY2VudGVyIHJpZ2h0LTAgdG9wLTAgdy1hdXRvIGN1cnNvci1wb2ludGVyIHt7c2hvd0NhbGVuZGFySWNvbiA/ICdtci02JyA6ICdtci0yJ319XCJcbiAgICAgICAgICAgIChjbGljayk9J2NsZWFySW5wdXQodHJ1ZSknPlxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudCB0ZXh0LXJlZC00MDBcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNMTkuMSAxNy4ybC01LjMtNS4zIDUuMy01LjMtMS44LTEuOC01LjMgNS40LTUuMy01LjMtMS44IDEuNyA1LjMgNS4zLTUuMyA1LjNMNi43IDE5bDUuMy01LjMgNS4zIDUuMyAxLjgtMS44elwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cInNob3dDYWxlbmRhckljb25cIlxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGgtZnVsbCBhYnNvbHV0ZSBpdGVtcy1jZW50ZXIgcmlnaHQtMCB0b3AtMCB3LWF1dG8gY3Vyc29yLXBvaW50ZXIgbXItMlwiPlxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImZpbGwtY3VycmVudCB0ZXh0LWxnXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICBkPVwiTTE5LDRIMTdWM2ExLDEsMCwwLDAtMiwwVjRIOVYzQTEsMSwwLDAsMCw3LDNWNEg1QTMsMywwLDAsMCwyLDdWMTlhMywzLDAsMCwwLDMsM0gxOWEzLDMsMCwwLDAsMy0zVjdBMywzLDAsMCwwLDE5LDRabTEsMTVhMSwxLDAsMCwxLTEsMUg1YTEsMSwwLDAsMS0xLTFWMTJIMjBabTAtOUg0VjdBMSwxLDAsMCwxLDUsNkg3VjdBMSwxLDAsMCwwLDksN1Y2aDZWN2ExLDEsMCwwLDAsMiwwVjZoMmExLDEsMCwwLDEsMSwxWlwiIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj0nc2hpbmluZyc+XG4gICAgPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICAgICAgPG5ndC1zaGluaW5nIGNsYXNzPVwiaC0xMCB3LWZ1bGxcIj48L25ndC1zaGluaW5nPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9J2Rpc2FibGVkKCkgfHwgaXNSZWFkb25seSc+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cInt7ZGlzYWJsZWQoKSA/ICdkaXNhYmxlZERpdicgOiAnJ319IHt7bmd0U3R5bGUuY29tcGlsZShbJ2gnXSl9fSB3LWZ1bGwgcHgtNCByb3VuZGVkIGFwcGVhcmFuY2Utbm9uZSBmbGV4IGl0ZW1zLWNlbnRlciBib3JkZXIgYm9yZGVyLWdyYXktNDAwXCI+XG4gICAgICAgIHt7IGdldEZvcm1hdHRlZE5hdGl2ZVZhbHVlKCkgfX1cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48aW5wdXQgKm5nSWY9J2NvbXBvbmVudFJlYWR5JyB0eXBlPVwiaGlkZGVuXCIgW25nTW9kZWxdPVwidmFsdWVcIiBbbmFtZV09XCJuYW1lXCIgW3ZhbHVlXT1cInZhbHVlXCI+XG5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjxuZ3QtdmFsaWRhdGlvbiBbY29udHJvbF09XCJmb3JtQ29udHJvbFwiIFtjb250YWluZXJdPVwiZm9ybUNvbnRhaW5lclwiPjwvbmd0LXZhbGlkYXRpb24+XG4iXX0=
@@ -25,9 +25,6 @@ export class NgtSliderComponent extends NgtBaseNgModel {
25
25
  }
26
26
  }
27
27
  ngAfterViewInit() {
28
- setTimeout(() => {
29
- this.display.nativeElement.innerHTML = this.value;
30
- }, 500);
31
28
  this.renderer.listen(this.element.nativeElement, 'change', () => {
32
29
  this.onNativeChange(this.element.nativeElement.value);
33
30
  });
@@ -49,7 +46,7 @@ export class NgtSliderComponent extends NgtBaseNgModel {
49
46
  NgtSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtSliderComponent, deps: [{ token: i1.ControlContainer, host: true, optional: true }, { token: i0.Renderer2 }, { token: i2.NgtFormComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
50
47
  NgtSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtSliderComponent, selector: "ngt-slider", inputs: { label: "label", shining: "shining", isDisabled: "isDisabled", showPercentageSymbol: "showPercentageSymbol", name: "name", min: "min", max: "max", step: "step", color: "color" }, providers: [
51
48
  NgtMakeProvider(NgtSliderComponent),
52
- ], viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }, { propertyName: "display", first: true, predicate: ["display"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col\">\n <span *ngIf='label && !shining' class=\"text-sm mb-2\">{{ label }}:</span>\n\n <div class=\"{{ shining ? 'hidden' : 'flex' }} items-center\">\n <input class=\"block w-full cursor-pointer overflow-hidden appearance-none bg-gray-400 {{color}}\"\n [class.cursor-not-allowed]=\"isDisabled\" type=\"range\" [name]='name' ([ngModel])='value'\n oninput=\"display.innerHTML=value\" onchange=\"display.innerHTML=value\" [min]='min' [max]='max' [step]='step'\n [disabled]=\"isDisabled\" #element>\n\n <span id='display' class=\"text-xs ml-2 font-semibold\" #display></span>\n <span *ngIf=\"showPercentageSymbol\" class=\"text-xs font-semibold\">%</span>\n </div>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-full h-6\"></ngt-shining>\n </div>\n</ng-container>", styles: ["@media screen and (-webkit-min-device-pixel-ratio: 0){input[type=range]::-webkit-slider-thumb{width:15px;-webkit-appearance:none;appearance:none;height:15px;cursor:pointer;background:#FFF;border-radius:50%}.primary::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #4299e1}.success::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #6c9f23}.warning::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #ffb822}.danger::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #f56565}}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }], viewProviders: [
49
+ ], viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }, { propertyName: "display", first: true, predicate: ["display"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col\">\n <span *ngIf='label && !shining' class=\"text-sm mb-2\">{{ label }}:</span>\n\n <div class=\"{{ shining ? 'hidden' : 'flex' }} items-center\">\n <input class=\"block w-full cursor-pointer overflow-hidden appearance-none bg-gray-400 {{color}}\"\n [class.cursor-not-allowed]=\"isDisabled\" type=\"range\" [name]='name' ([ngModel])='value' [min]='min'\n [max]='max' [step]='step' [disabled]=\"isDisabled\" #element>\n\n <span id='display' class=\"text-xs ml-2 font-semibold\" #display>{{ value }}</span>\n <span *ngIf=\"showPercentageSymbol\" class=\"text-xs font-semibold\">%</span>\n </div>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-full h-6\"></ngt-shining>\n </div>\n</ng-container>", styles: ["@media screen and (-webkit-min-device-pixel-ratio: 0){input[type=range]::-webkit-slider-thumb{width:15px;-webkit-appearance:none;appearance:none;height:15px;cursor:pointer;background:#FFF;border-radius:50%}.primary::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #4299e1}.success::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #6c9f23}.warning::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #ffb822}.danger::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #f56565}}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }], viewProviders: [
53
50
  { provide: ControlContainer, useExisting: NgForm }
54
51
  ] });
55
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtSliderComponent, decorators: [{
@@ -58,7 +55,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
58
55
  NgtMakeProvider(NgtSliderComponent),
59
56
  ], viewProviders: [
60
57
  { provide: ControlContainer, useExisting: NgForm }
61
- ], template: "<div class=\"flex flex-col\">\n <span *ngIf='label && !shining' class=\"text-sm mb-2\">{{ label }}:</span>\n\n <div class=\"{{ shining ? 'hidden' : 'flex' }} items-center\">\n <input class=\"block w-full cursor-pointer overflow-hidden appearance-none bg-gray-400 {{color}}\"\n [class.cursor-not-allowed]=\"isDisabled\" type=\"range\" [name]='name' ([ngModel])='value'\n oninput=\"display.innerHTML=value\" onchange=\"display.innerHTML=value\" [min]='min' [max]='max' [step]='step'\n [disabled]=\"isDisabled\" #element>\n\n <span id='display' class=\"text-xs ml-2 font-semibold\" #display></span>\n <span *ngIf=\"showPercentageSymbol\" class=\"text-xs font-semibold\">%</span>\n </div>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-full h-6\"></ngt-shining>\n </div>\n</ng-container>", styles: ["@media screen and (-webkit-min-device-pixel-ratio: 0){input[type=range]::-webkit-slider-thumb{width:15px;-webkit-appearance:none;appearance:none;height:15px;cursor:pointer;background:#FFF;border-radius:50%}.primary::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #4299e1}.success::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #6c9f23}.warning::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #ffb822}.danger::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #f56565}}\n"] }]
58
+ ], template: "<div class=\"flex flex-col\">\n <span *ngIf='label && !shining' class=\"text-sm mb-2\">{{ label }}:</span>\n\n <div class=\"{{ shining ? 'hidden' : 'flex' }} items-center\">\n <input class=\"block w-full cursor-pointer overflow-hidden appearance-none bg-gray-400 {{color}}\"\n [class.cursor-not-allowed]=\"isDisabled\" type=\"range\" [name]='name' ([ngModel])='value' [min]='min'\n [max]='max' [step]='step' [disabled]=\"isDisabled\" #element>\n\n <span id='display' class=\"text-xs ml-2 font-semibold\" #display>{{ value }}</span>\n <span *ngIf=\"showPercentageSymbol\" class=\"text-xs font-semibold\">%</span>\n </div>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-full h-6\"></ngt-shining>\n </div>\n</ng-container>", styles: ["@media screen and (-webkit-min-device-pixel-ratio: 0){input[type=range]::-webkit-slider-thumb{width:15px;-webkit-appearance:none;appearance:none;height:15px;cursor:pointer;background:#FFF;border-radius:50%}.primary::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #4299e1}.success::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #6c9f23}.warning::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #ffb822}.danger::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #f56565}}\n"] }]
62
59
  }], ctorParameters: function () { return [{ type: i1.ControlContainer, decorators: [{
63
60
  type: Optional
64
61
  }, {
@@ -100,4 +97,4 @@ export var NgtSliderColorSchemeEnum;
100
97
  NgtSliderColorSchemeEnum["DANGER"] = "danger";
101
98
  })(NgtSliderColorSchemeEnum || (NgtSliderColorSchemeEnum = {}));
102
99
  ;
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXNsaWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3Qtc2xpZGVyL25ndC1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXNsaWRlci9uZ3Qtc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsSUFBSSxFQUNKLEtBQUssRUFFTCxRQUFRLEVBRVIsUUFBUSxFQUNSLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7O0FBYy9FLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxjQUFjO0lBZ0JsRCxZQUVXLGFBQStCLEVBQzlCLFFBQW1CLEVBRW5CLGdCQUFrQztRQUUxQyxLQUFLLEVBQUUsQ0FBQztRQUxELGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRW5CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFaOUIsUUFBRyxHQUFXLEdBQUcsQ0FBQztRQUNsQixRQUFHLEdBQVcsS0FBSyxDQUFDO1FBQ3BCLFNBQUksR0FBVyxHQUFHLENBQUM7UUFDbkIsVUFBSyxHQUE2Qix3QkFBd0IsQ0FBQyxPQUFPLENBQUM7UUFFM0Usa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBVzVDLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRWpELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNuQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtnQkFDakUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQ0wsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVNLGVBQWU7UUFDbEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RELENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVSLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDNUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSxXQUFXO1FBQ2QsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDN0MsQ0FBQztJQUVNLGNBQWMsQ0FBQyxLQUFjO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDOzsrR0E3RFEsa0JBQWtCO21HQUFsQixrQkFBa0IsaU9BUGhCO1FBQ1AsZUFBZSxDQUFDLGtCQUFrQixDQUFDO0tBQ3RDLHNRQ3hCTCx3NEJBa0JlLHV0QkRPSTtRQUNYLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUU7S0FDckQ7MkZBRVEsa0JBQWtCO2tCQVg5QixTQUFTOytCQUNJLFlBQVksYUFHWDt3QkFDUCxlQUFlLG9CQUFvQjtxQkFDdEMsaUJBQ2M7d0JBQ1gsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtxQkFDckQ7OzBCQW1CSSxRQUFROzswQkFBSSxJQUFJOzswQkFHaEIsUUFBUTs7MEJBQUksUUFBUTs0Q0FuQnNCLE9BQU87c0JBQXJELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDUyxPQUFPO3NCQUFyRCxTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRXRCLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLG9CQUFvQjtzQkFBbkMsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLEdBQUc7c0JBQWxCLEtBQUs7Z0JBQ1UsR0FBRztzQkFBbEIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7O0FBb0RWLE1BQU0sQ0FBTixJQUFZLHdCQUtYO0FBTEQsV0FBWSx3QkFBd0I7SUFDaEMsK0NBQW1CLENBQUE7SUFDbkIsK0NBQW1CLENBQUE7SUFDbkIsK0NBQW1CLENBQUE7SUFDbkIsNkNBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUxXLHdCQUF3QixLQUF4Qix3QkFBd0IsUUFLbkM7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3QsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9wdGlvbmFsLFxuICAgIFJlbmRlcmVyMixcbiAgICBTa2lwU2VsZixcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5ndEJhc2VOZ01vZGVsLCBOZ3RNYWtlUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9iYXNlL25ndC1iYXNlLW5nLW1vZGVsJztcbmltcG9ydCB7IE5ndEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9uZ3QtZm9ybS9uZ3QtZm9ybS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndC1zbGlkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZ3Qtc2xpZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uZ3Qtc2xpZGVyLmNvbXBvbmVudC5jc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgTmd0TWFrZVByb3ZpZGVyKE5ndFNsaWRlckNvbXBvbmVudCksXG4gICAgXSxcbiAgICB2aWV3UHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybSB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3RTbGlkZXJDb21wb25lbnQgZXh0ZW5kcyBOZ3RCYXNlTmdNb2RlbCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgnZWxlbWVudCcsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2Rpc3BsYXknLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgZGlzcGxheTogRWxlbWVudFJlZjtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaGluaW5nOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0Rpc2FibGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzaG93UGVyY2VudGFnZVN5bWJvbDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtaW46IHN0cmluZyA9ICcwJztcbiAgICBASW5wdXQoKSBwdWJsaWMgbWF4OiBzdHJpbmcgPSAnMTAwJztcbiAgICBASW5wdXQoKSBwdWJsaWMgc3RlcDogc3RyaW5nID0gJzEnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBjb2xvcjogTmd0U2xpZGVyQ29sb3JTY2hlbWVFbnVtID0gTmd0U2xpZGVyQ29sb3JTY2hlbWVFbnVtLlBSSU1BUlk7XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEhvc3QoKVxuICAgICAgICBwdWJsaWMgZm9ybUNvbnRhaW5lcjogQ29udHJvbENvbnRhaW5lcixcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKVxuICAgICAgICBwcml2YXRlIG5ndEZvcm1Db21wb25lbnQ6IE5ndEZvcm1Db21wb25lbnQsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgaWYgKHRoaXMubmd0Rm9ybUNvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy5zaGluaW5nID0gdGhpcy5uZ3RGb3JtQ29tcG9uZW50LmlzU2hpbmluZygpO1xuXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICB0aGlzLm5ndEZvcm1Db21wb25lbnQub25TaGluaW5nQ2hhbmdlLnN1YnNjcmliZSgoc2hpbmluZzogYm9vbGVhbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNoaW5pbmcgPSBzaGluaW5nO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXkubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnZhbHVlO1xuICAgICAgICB9LCA1MDApO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnY2hhbmdlJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vbk5hdGl2ZUNoYW5nZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95U3Vic2NyaXB0aW9ucygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjaGFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25OYXRpdmVDaGFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveVN1YnNjcmlwdGlvbnMoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gTmd0U2xpZGVyQ29sb3JTY2hlbWVFbnVtIHtcbiAgICBQUklNQVJZID0gJ3ByaW1hcnknLFxuICAgIFNVQ0NFU1MgPSAnc3VjY2VzcycsXG4gICAgV0FSTklORyA9ICd3YXJuaW5nJyxcbiAgICBEQU5HRVIgPSAnZGFuZ2VyJ1xufTtcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgPHNwYW4gKm5nSWY9J2xhYmVsICYmICFzaGluaW5nJyBjbGFzcz1cInRleHQtc20gbWItMlwiPnt7IGxhYmVsIH19Ojwvc3Bhbj5cblxuICAgIDxkaXYgY2xhc3M9XCJ7eyBzaGluaW5nID8gJ2hpZGRlbicgOiAnZmxleCcgfX0gaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImJsb2NrIHctZnVsbCBjdXJzb3ItcG9pbnRlciBvdmVyZmxvdy1oaWRkZW4gYXBwZWFyYW5jZS1ub25lIGJnLWdyYXktNDAwIHt7Y29sb3J9fVwiXG4gICAgICAgICAgICBbY2xhc3MuY3Vyc29yLW5vdC1hbGxvd2VkXT1cImlzRGlzYWJsZWRcIiB0eXBlPVwicmFuZ2VcIiBbbmFtZV09J25hbWUnIChbbmdNb2RlbF0pPSd2YWx1ZSdcbiAgICAgICAgICAgIG9uaW5wdXQ9XCJkaXNwbGF5LmlubmVySFRNTD12YWx1ZVwiIG9uY2hhbmdlPVwiZGlzcGxheS5pbm5lckhUTUw9dmFsdWVcIiBbbWluXT0nbWluJyBbbWF4XT0nbWF4JyBbc3RlcF09J3N0ZXAnXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiICNlbGVtZW50PlxuXG4gICAgICAgIDxzcGFuIGlkPSdkaXNwbGF5JyBjbGFzcz1cInRleHQteHMgbWwtMiBmb250LXNlbWlib2xkXCIgI2Rpc3BsYXk+PC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dQZXJjZW50YWdlU3ltYm9sXCIgY2xhc3M9XCJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGRcIj4lPC9zcGFuPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9J3NoaW5pbmcnPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgICAgIDxuZ3Qtc2hpbmluZyBjbGFzcz1cInctZnVsbCBoLTZcIj48L25ndC1zaGluaW5nPlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+Il19
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXNsaWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy10YWlsd2luZC9zcmMvY29tcG9uZW50cy9uZ3Qtc2xpZGVyL25ndC1zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctdGFpbHdpbmQvc3JjL2NvbXBvbmVudHMvbmd0LXNsaWRlci9uZ3Qtc2xpZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBRVQsSUFBSSxFQUNKLEtBQUssRUFFTCxRQUFRLEVBRVIsUUFBUSxFQUNSLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7O0FBYy9FLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxjQUFjO0lBZ0JsRCxZQUVXLGFBQStCLEVBQzlCLFFBQW1CLEVBRW5CLGdCQUFrQztRQUUxQyxLQUFLLEVBQUUsQ0FBQztRQUxELGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRW5CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFaOUIsUUFBRyxHQUFXLEdBQUcsQ0FBQztRQUNsQixRQUFHLEdBQVcsS0FBSyxDQUFDO1FBQ3BCLFNBQUksR0FBVyxHQUFHLENBQUM7UUFDbkIsVUFBSyxHQUE2Qix3QkFBd0IsQ0FBQyxPQUFPLENBQUM7UUFFM0Usa0JBQWEsR0FBd0IsRUFBRSxDQUFDO1FBVzVDLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRWpELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNuQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQWdCLEVBQUUsRUFBRTtnQkFDakUsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQ0wsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtZQUM1RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQWM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUM3QyxDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQWM7UUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7OytHQXpEUSxrQkFBa0I7bUdBQWxCLGtCQUFrQixpT0FQaEI7UUFDUCxlQUFlLENBQUMsa0JBQWtCLENBQUM7S0FDdEMsc1FDeEJMLDZ6QkFpQmUsdXRCRFFJO1FBQ1gsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRTtLQUNyRDsyRkFFUSxrQkFBa0I7a0JBWDlCLFNBQVM7K0JBQ0ksWUFBWSxhQUdYO3dCQUNQLGVBQWUsb0JBQW9CO3FCQUN0QyxpQkFDYzt3QkFDWCxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFO3FCQUNyRDs7MEJBbUJJLFFBQVE7OzBCQUFJLElBQUk7OzBCQUdoQixRQUFROzswQkFBSSxRQUFROzRDQW5Cc0IsT0FBTztzQkFBckQsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNTLE9BQU87c0JBQXJELFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFdEIsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1Usb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsR0FBRztzQkFBbEIsS0FBSztnQkFDVSxHQUFHO3NCQUFsQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSzs7QUFnRFYsTUFBTSxDQUFOLElBQVksd0JBS1g7QUFMRCxXQUFZLHdCQUF3QjtJQUNoQywrQ0FBbUIsQ0FBQTtJQUNuQiwrQ0FBbUIsQ0FBQTtJQUNuQiwrQ0FBbUIsQ0FBQTtJQUNuQiw2Q0FBaUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQUtuQztBQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgUmVuZGVyZXIyLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sQ29udGFpbmVyLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTmd0QmFzZU5nTW9kZWwsIE5ndE1ha2VQcm92aWRlciB9IGZyb20gJy4uLy4uL2Jhc2Uvbmd0LWJhc2UtbmctbW9kZWwnO1xuaW1wb3J0IHsgTmd0Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL25ndC1mb3JtL25ndC1mb3JtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0LXNsaWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ndC1zbGlkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL25ndC1zbGlkZXIuY29tcG9uZW50LmNzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBOZ3RNYWtlUHJvdmlkZXIoTmd0U2xpZGVyQ29tcG9uZW50KSxcbiAgICBdLFxuICAgIHZpZXdQcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogTmdGb3JtIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5ndFNsaWRlckNvbXBvbmVudCBleHRlbmRzIE5ndEJhc2VOZ01vZGVsIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBAVmlld0NoaWxkKCdlbGVtZW50JywgeyBzdGF0aWM6IHRydWUgfSkgcHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnZGlzcGxheScsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBkaXNwbGF5OiBFbGVtZW50UmVmO1xuXG4gICAgQElucHV0KCkgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIHNoaW5pbmc6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIHNob3dQZXJjZW50YWdlU3ltYm9sOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHVibGljIG1pbjogc3RyaW5nID0gJzAnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBtYXg6IHN0cmluZyA9ICcxMDAnO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBzdGVwOiBzdHJpbmcgPSAnMSc7XG4gICAgQElucHV0KCkgcHVibGljIGNvbG9yOiBOZ3RTbGlkZXJDb2xvclNjaGVtZUVudW0gPSBOZ3RTbGlkZXJDb2xvclNjaGVtZUVudW0uUFJJTUFSWTtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASG9zdCgpXG4gICAgICAgIHB1YmxpYyBmb3JtQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpXG4gICAgICAgIHByaXZhdGUgbmd0Rm9ybUNvbXBvbmVudDogTmd0Rm9ybUNvbXBvbmVudCxcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICBpZiAodGhpcy5uZ3RGb3JtQ29tcG9uZW50KSB7XG4gICAgICAgICAgICB0aGlzLnNoaW5pbmcgPSB0aGlzLm5ndEZvcm1Db21wb25lbnQuaXNTaGluaW5nKCk7XG5cbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgIHRoaXMubmd0Rm9ybUNvbXBvbmVudC5vblNoaW5pbmdDaGFuZ2Uuc3Vic2NyaWJlKChzaGluaW5nOiBib29sZWFuKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hpbmluZyA9IHNoaW5pbmc7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2NoYW5nZScsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25OYXRpdmVDaGFuZ2UodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveVN1YnNjcmlwdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIG9uTmF0aXZlQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRlc3Ryb3lTdWJzY3JpcHRpb25zKCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICB9XG59XG5cbmV4cG9ydCBlbnVtIE5ndFNsaWRlckNvbG9yU2NoZW1lRW51bSB7XG4gICAgUFJJTUFSWSA9ICdwcmltYXJ5JyxcbiAgICBTVUNDRVNTID0gJ3N1Y2Nlc3MnLFxuICAgIFdBUk5JTkcgPSAnd2FybmluZycsXG4gICAgREFOR0VSID0gJ2Rhbmdlcidcbn07XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgIDxzcGFuICpuZ0lmPSdsYWJlbCAmJiAhc2hpbmluZycgY2xhc3M9XCJ0ZXh0LXNtIG1iLTJcIj57eyBsYWJlbCB9fTo8L3NwYW4+XG5cbiAgICA8ZGl2IGNsYXNzPVwie3sgc2hpbmluZyA/ICdoaWRkZW4nIDogJ2ZsZXgnIH19IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8aW5wdXQgY2xhc3M9XCJibG9jayB3LWZ1bGwgY3Vyc29yLXBvaW50ZXIgb3ZlcmZsb3ctaGlkZGVuIGFwcGVhcmFuY2Utbm9uZSBiZy1ncmF5LTQwMCB7e2NvbG9yfX1cIlxuICAgICAgICAgICAgW2NsYXNzLmN1cnNvci1ub3QtYWxsb3dlZF09XCJpc0Rpc2FibGVkXCIgdHlwZT1cInJhbmdlXCIgW25hbWVdPSduYW1lJyAoW25nTW9kZWxdKT0ndmFsdWUnIFttaW5dPSdtaW4nXG4gICAgICAgICAgICBbbWF4XT0nbWF4JyBbc3RlcF09J3N0ZXAnIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCIgI2VsZW1lbnQ+XG5cbiAgICAgICAgPHNwYW4gaWQ9J2Rpc3BsYXknIGNsYXNzPVwidGV4dC14cyBtbC0yIGZvbnQtc2VtaWJvbGRcIiAjZGlzcGxheT57eyB2YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJzaG93UGVyY2VudGFnZVN5bWJvbFwiIGNsYXNzPVwidGV4dC14cyBmb250LXNlbWlib2xkXCI+JTwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyICpuZ0lmPSdzaGluaW5nJz5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgICAgICA8bmd0LXNoaW5pbmcgY2xhc3M9XCJ3LWZ1bGwgaC02XCI+PC9uZ3Qtc2hpbmluZz5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPiJdfQ==
@@ -5331,9 +5331,6 @@ class NgtSliderComponent extends NgtBaseNgModel {
5331
5331
  }
5332
5332
  }
5333
5333
  ngAfterViewInit() {
5334
- setTimeout(() => {
5335
- this.display.nativeElement.innerHTML = this.value;
5336
- }, 500);
5337
5334
  this.renderer.listen(this.element.nativeElement, 'change', () => {
5338
5335
  this.onNativeChange(this.element.nativeElement.value);
5339
5336
  });
@@ -5355,7 +5352,7 @@ class NgtSliderComponent extends NgtBaseNgModel {
5355
5352
  NgtSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtSliderComponent, deps: [{ token: i2$1.ControlContainer, host: true, optional: true }, { token: i0.Renderer2 }, { token: NgtFormComponent, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component });
5356
5353
  NgtSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.8", type: NgtSliderComponent, selector: "ngt-slider", inputs: { label: "label", shining: "shining", isDisabled: "isDisabled", showPercentageSymbol: "showPercentageSymbol", name: "name", min: "min", max: "max", step: "step", color: "color" }, providers: [
5357
5354
  NgtMakeProvider(NgtSliderComponent),
5358
- ], viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }, { propertyName: "display", first: true, predicate: ["display"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col\">\n <span *ngIf='label && !shining' class=\"text-sm mb-2\">{{ label }}:</span>\n\n <div class=\"{{ shining ? 'hidden' : 'flex' }} items-center\">\n <input class=\"block w-full cursor-pointer overflow-hidden appearance-none bg-gray-400 {{color}}\"\n [class.cursor-not-allowed]=\"isDisabled\" type=\"range\" [name]='name' ([ngModel])='value'\n oninput=\"display.innerHTML=value\" onchange=\"display.innerHTML=value\" [min]='min' [max]='max' [step]='step'\n [disabled]=\"isDisabled\" #element>\n\n <span id='display' class=\"text-xs ml-2 font-semibold\" #display></span>\n <span *ngIf=\"showPercentageSymbol\" class=\"text-xs font-semibold\">%</span>\n </div>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-full h-6\"></ngt-shining>\n </div>\n</ng-container>", styles: ["@media screen and (-webkit-min-device-pixel-ratio: 0){input[type=range]::-webkit-slider-thumb{width:15px;-webkit-appearance:none;appearance:none;height:15px;cursor:pointer;background:#FFF;border-radius:50%}.primary::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #4299e1}.success::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #6c9f23}.warning::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #ffb822}.danger::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #f56565}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }], viewProviders: [
5355
+ ], viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true, static: true }, { propertyName: "display", first: true, predicate: ["display"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"flex flex-col\">\n <span *ngIf='label && !shining' class=\"text-sm mb-2\">{{ label }}:</span>\n\n <div class=\"{{ shining ? 'hidden' : 'flex' }} items-center\">\n <input class=\"block w-full cursor-pointer overflow-hidden appearance-none bg-gray-400 {{color}}\"\n [class.cursor-not-allowed]=\"isDisabled\" type=\"range\" [name]='name' ([ngModel])='value' [min]='min'\n [max]='max' [step]='step' [disabled]=\"isDisabled\" #element>\n\n <span id='display' class=\"text-xs ml-2 font-semibold\" #display>{{ value }}</span>\n <span *ngIf=\"showPercentageSymbol\" class=\"text-xs font-semibold\">%</span>\n </div>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-full h-6\"></ngt-shining>\n </div>\n</ng-container>", styles: ["@media screen and (-webkit-min-device-pixel-ratio: 0){input[type=range]::-webkit-slider-thumb{width:15px;-webkit-appearance:none;appearance:none;height:15px;cursor:pointer;background:#FFF;border-radius:50%}.primary::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #4299e1}.success::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #6c9f23}.warning::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #ffb822}.danger::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #f56565}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: NgtShiningComponent, selector: "ngt-shining", inputs: ["shiningWidth"] }], viewProviders: [
5359
5356
  { provide: ControlContainer, useExisting: NgForm }
5360
5357
  ] });
5361
5358
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImport: i0, type: NgtSliderComponent, decorators: [{
@@ -5364,7 +5361,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.8", ngImpor
5364
5361
  NgtMakeProvider(NgtSliderComponent),
5365
5362
  ], viewProviders: [
5366
5363
  { provide: ControlContainer, useExisting: NgForm }
5367
- ], template: "<div class=\"flex flex-col\">\n <span *ngIf='label && !shining' class=\"text-sm mb-2\">{{ label }}:</span>\n\n <div class=\"{{ shining ? 'hidden' : 'flex' }} items-center\">\n <input class=\"block w-full cursor-pointer overflow-hidden appearance-none bg-gray-400 {{color}}\"\n [class.cursor-not-allowed]=\"isDisabled\" type=\"range\" [name]='name' ([ngModel])='value'\n oninput=\"display.innerHTML=value\" onchange=\"display.innerHTML=value\" [min]='min' [max]='max' [step]='step'\n [disabled]=\"isDisabled\" #element>\n\n <span id='display' class=\"text-xs ml-2 font-semibold\" #display></span>\n <span *ngIf=\"showPercentageSymbol\" class=\"text-xs font-semibold\">%</span>\n </div>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-full h-6\"></ngt-shining>\n </div>\n</ng-container>", styles: ["@media screen and (-webkit-min-device-pixel-ratio: 0){input[type=range]::-webkit-slider-thumb{width:15px;-webkit-appearance:none;appearance:none;height:15px;cursor:pointer;background:#FFF;border-radius:50%}.primary::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #4299e1}.success::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #6c9f23}.warning::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #ffb822}.danger::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #f56565}}\n"] }]
5364
+ ], template: "<div class=\"flex flex-col\">\n <span *ngIf='label && !shining' class=\"text-sm mb-2\">{{ label }}:</span>\n\n <div class=\"{{ shining ? 'hidden' : 'flex' }} items-center\">\n <input class=\"block w-full cursor-pointer overflow-hidden appearance-none bg-gray-400 {{color}}\"\n [class.cursor-not-allowed]=\"isDisabled\" type=\"range\" [name]='name' ([ngModel])='value' [min]='min'\n [max]='max' [step]='step' [disabled]=\"isDisabled\" #element>\n\n <span id='display' class=\"text-xs ml-2 font-semibold\" #display>{{ value }}</span>\n <span *ngIf=\"showPercentageSymbol\" class=\"text-xs font-semibold\">%</span>\n </div>\n</div>\n\n<ng-container *ngIf='shining'>\n <div class=\"flex\">\n <ngt-shining class=\"w-full h-6\"></ngt-shining>\n </div>\n</ng-container>", styles: ["@media screen and (-webkit-min-device-pixel-ratio: 0){input[type=range]::-webkit-slider-thumb{width:15px;-webkit-appearance:none;appearance:none;height:15px;cursor:pointer;background:#FFF;border-radius:50%}.primary::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #4299e1}.success::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #6c9f23}.warning::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #ffb822}.danger::-webkit-slider-thumb{box-shadow:-405px 0 0 400px #f56565}}\n"] }]
5368
5365
  }], ctorParameters: function () {
5369
5366
  return [{ type: i2$1.ControlContainer, decorators: [{
5370
5367
  type: Optional
@@ -5951,10 +5948,8 @@ class NgtDateComponent extends NgtBaseNgModel {
5951
5948
  }
5952
5949
  }
5953
5950
  ngOnDestroy() {
5954
- const flatpickrElement = document.getElementsByClassName('flatpickr-calendar');
5955
- if (flatpickrElement === null || flatpickrElement === void 0 ? void 0 : flatpickrElement.length) {
5956
- flatpickrElement[flatpickrElement.length - 1].remove();
5957
- }
5951
+ var _a;
5952
+ (_a = this.ng2FlatpickrComponent.flatpickr['calendarContainer']) === null || _a === void 0 ? void 0 : _a.remove();
5958
5953
  this.destroySubscriptions();
5959
5954
  }
5960
5955
  clearInput(clearInstance = false) {