myrta-ui 17.1.31 → 17.1.33

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.
@@ -300,23 +300,33 @@ export class InputDateTimeComponent {
300
300
  }
301
301
  }
302
302
  checkingInvalid(value, maxDate, minDate) {
303
+ let validMaxDate = '';
304
+ let validMinDate = '';
305
+ if (this.timepicker) {
306
+ validMaxDate = this.maxDate;
307
+ validMinDate = this.minDate;
308
+ }
309
+ else {
310
+ validMaxDate = dayjs(this.maxDate).hour(23).minute(59 + 1).second(59).millisecond(0).toISOString();
311
+ validMinDate = dayjs(this.minDate).hour(0).minute(0 - 1).second(0).millisecond(0).toISOString();
312
+ }
303
313
  if (this.disableValidate) {
304
314
  this.invalidMessageOff();
305
315
  return true;
306
316
  }
307
- if (maxDate && (dayjs(value).diff(dayjs(maxDate)) === 0) && !this.disableIncludes) {
317
+ if (validMaxDate && (dayjs(value).diff(dayjs(validMaxDate)) === 0) && !this.disableIncludes) {
308
318
  this.invalidMessageOn('Дата и время окончания не может быть равна дате и времени начала');
309
319
  return false;
310
320
  }
311
- else if (maxDate && (dayjs(value).diff(dayjs(maxDate)) > 0)) {
321
+ else if (validMaxDate && (dayjs(value).diff(dayjs(validMaxDate)) > 0)) {
312
322
  this.invalidMessageOn('Дата окончания не может быть раньше даты начала');
313
323
  return false;
314
324
  }
315
- else if (minDate && (dayjs(value).diff(dayjs(minDate)) === 0) && !this.disableIncludes) {
325
+ else if (validMinDate && (dayjs(value).diff(dayjs(validMinDate)) === 0) && !this.disableIncludes) {
316
326
  this.invalidMessageOn('Дата и время окончания не может быть равна дате и времени начала');
317
327
  return false;
318
328
  }
319
- else if (minDate && dayjs(value).diff(dayjs(minDate)) < 0) {
329
+ else if (validMinDate && dayjs(value).diff(dayjs(validMinDate)) < 0) {
320
330
  this.invalidMessageOn('Дата окончания не может быть раньше даты начала');
321
331
  return false;
322
332
  }
@@ -457,4 +467,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
457
467
  }], blurred: [{
458
468
  type: Output
459
469
  }] } });
460
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LWRhdGUtdGltZS9pbnB1dC1kYXRlLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtZGF0ZS10aW1lL2lucHV0LWRhdGUtdGltZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ1UsdUJBQXVCLEVBQ3RDLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLGFBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQWEsa0JBQWtCLEVBQXVCLE1BQU0sd0JBQXdCLENBQUM7QUFDNUYsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7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c0JBQTVCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFFVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBRVUsU0FBUztzQkFBeEIsS0FBSztnQkFFVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFFa0IsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUNFLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFFTCxPQUFPO3NCQUF2QixNQUFNO2dCQUNVLFdBQVc7c0JBQTNCLE1BQU07Z0JBQ1UsT0FBTztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCBBaXJEYXRlcGlja2VyIGZyb20gJ2Fpci1kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgRXh0cmFUaW1lLCBJbnB1dERhdGVTaXplc0VudW0sIElucHV0RGF0ZVNpemVzVHlwZXMgfSBmcm9tICcuL2lucHV0LWRhdGUtdGltZS5lbnVtJztcclxuaW1wb3J0IHsgRGF0ZU1vZGVsLCBUaW1lTW9kZWwsIHZhbGlkYXRlRGF0ZU1vZGVsLCB2YWxpZGF0ZVRpbWVNb2RlbCB9IGZyb20gJy4vaGVscGVycy92YWxpZGF0ZS12YWx1ZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBkYXRlTW9kZWxDb25zdGFudCwgdGltZU1vZGVsQ29uc3RhbnQgfSBmcm9tICcuL2NvbnN0YW50cy92YWx1ZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBkYXRlTW9kZWxWYWx1ZVBhcnNlLCB0aW1lTW9kZWxWYWx1ZVBhcnNlIH0gZnJvbSAnLi9oZWxwZXJzL3ZhbHVlLXBhcnNlcic7XHJcbmltcG9ydCB7IG1hcmtQb3NpdGlvbiB9IGZyb20gJy4vaGVscGVycy9jdXJzb3ItcG9zaXRpb24nO1xyXG5pbXBvcnQgeyBjbGVhbkRhdGUgfSBmcm9tICcuL2hlbHBlcnMvY2xlYW4tZGF0ZSc7XHJcbmltcG9ydCB7IGZvcm1hdHRpbmdUb01vc2Nvd1RpbWV6b25lIH0gZnJvbSAnLi9oZWxwZXJzL2Zvcm1hdHRpbmctbW9zY293LXRpbWV6b25lJztcclxuaW1wb3J0IHsgVGltZXpvbmVUeXBlIH0gZnJvbSAnLi9lbnVtL3RpbWV6b25lJztcclxuaW1wb3J0IHsgZm9ybWF0dGluZ0Zyb21Nb2RlbHMgfSBmcm9tICcuL2hlbHBlcnMvZm9ybWF0dGluZy1mcm9tLW1vZGVscyc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBjcmVhdGVQb3BwZXIgfSBmcm9tICdAcG9wcGVyanMvY29yZSc7XHJcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBJbnB1dERhdGVUaW1lVmFsdWVUeXBlcywgSW5wdXREYXRlVGltZVZhbHVlV2l0aElkIH0gZnJvbSAnLi9tb2RlbHMvaW5wdXQtZGF0ZS10aW1lLm1vZGVsJztcclxuXHJcbmltcG9ydCB0aW1lem9uZSBmcm9tICdkYXlqcy9wbHVnaW4vdGltZXpvbmUnO1xyXG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMnO1xyXG5cclxuZGF5anMuZXh0ZW5kKHV0YylcclxuZGF5anMuZXh0ZW5kKHRpbWV6b25lKVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtaW5wdXQtZGF0ZS10aW1lJyxcclxuICB0ZW1wbGF0ZVVybDogJ2lucHV0LWRhdGUtdGltZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2lucHV0LWRhdGUtdGltZS5jb21wb25lbnRzLmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXREYXRlVGltZUNvbXBvbmVudCksIG11bHRpOiB0cnVlfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RGF0ZVRpbWVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICBwdWJsaWMgZHQ6IGFueTtcclxuICBwdWJsaWMgdmFsdWU6IGFueSA9ICcnO1xyXG4gIHB1YmxpYyBkYXRlTW9kZWw6IERhdGVNb2RlbCA9IGRhdGVNb2RlbENvbnN0YW50O1xyXG4gIHB1YmxpYyB0aW1lTW9kZWw6IFRpbWVNb2RlbCA9IHRpbWVNb2RlbENvbnN0YW50O1xyXG5cclxuICBwdWJsaWMgaW5uZXJJbnZhbGlkID0gZmFsc2U7XHJcbiAgcHVibGljIGlubmVySW52YWxpZE1lc3NhZ2UgPSAnJztcclxuXHJcbiAgLy8gU0FWRSBTVEFURVxyXG4gIHB1YmxpYyB1dWlkOiBzdHJpbmcgPSB1dWlkdjQoKTtcclxuICBASW5wdXQoKSBwdWJsaWMgZmllbGRzOiBGaWVsZFtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzaXplOiBJbnB1dERhdGVTaXplc1R5cGVzID0gJ2xhcmdlJztcclxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tQ2xhc3NlcyA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRlTGFiZWwgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgdGltZUxhYmVsID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGRhdGVQbGFjZWhvbGRlciA9ICfQtNC0LtC80Lwu0LPQs9Cz0LMnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0aW1lUGxhY2Vob2xkZXIgPSAnMDA6MDAnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0aW1lcGlja2VyID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHJhbmdlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIG1pbkRhdGUgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgbWF4RGF0ZSA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0aW1lem9uZTogVGltZXpvbmVUeXBlID0gJ2RlZmF1bHQnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbmxpbmUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgaXNNYW51YWxJbnB1dCA9IHRydWU7XHJcbiAgQElucHV0KCkgcHVibGljIGFkZE1pblRpbWUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgYWRkTWF4VGltZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRNaW5UaW1lT2JqITogRXh0cmFUaW1lO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRNYXhUaW1lT2JqITogRXh0cmFUaW1lO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZVZhbGlkYXRlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVJbmNsdWRlcyA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgY29udGFpbmVyID0gJ2Rpdi5wYWdlLXdyYXBwZXInO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tJbnZhbGlkOiB0cnVlIHwgZmFsc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZGF0ZUlucHV0JykgZGF0ZUlucHV0ITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCd0aW1lSW5wdXQnKSB0aW1lSW5wdXQhOiBFbGVtZW50UmVmO1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJbnB1dERhdGVUaW1lVmFsdWVUeXBlcz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPElucHV0RGF0ZVRpbWVWYWx1ZVdpdGhJZD4gPSBuZXcgRXZlbnRFbWl0dGVyPElucHV0RGF0ZVRpbWVWYWx1ZVdpdGhJZD4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIGJsdXJyZWQ6IEV2ZW50RW1pdHRlcjxJbnB1dERhdGVUaW1lVmFsdWVXaXRoSWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJbnB1dERhdGVUaW1lVmFsdWVXaXRoSWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgX2dldE1heERhdGVGcm9tVGltZXpvbmUoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5tYXhEYXRlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1heERhdGVcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy50aW1lem9uZSAhPT0gJ2RlZmF1bHQnKSB7XHJcbiAgICAgIGNvbnN0IHV0Y1RpbWUgPSBkYXlqcy51dGModGhpcy5tYXhEYXRlKTtcclxuICAgICAgY29uc3QgbG9jYWxPZmZzZXRNaW51dGVzID0gZGF5anMoKS51dGNPZmZzZXQoKTtcclxuICAgICAgY29uc3QgbW9zY293T2Zmc2V0TWludXRlcyA9IGRheWpzKCkudHoodGhpcy50aW1lem9uZSkudXRjT2Zmc2V0KCk7XHJcbiAgICAgIGNvbnN0IG9mZnNldERpZmZlcmVuY2VNaW51dGVzID0gbG9jYWxPZmZzZXRNaW51dGVzIC0gbW9zY293T2Zmc2V0TWludXRlcztcclxuICAgICAgY29uc3QgY29ycmVjdGVkVGltZSA9IHV0Y1RpbWUuc3VidHJhY3Qob2Zmc2V0RGlmZmVyZW5jZU1pbnV0ZXMsICdtaW51dGUnKTtcclxuXHJcbiAgICAgIHJldHVybiBjb3JyZWN0ZWRUaW1lLnRvSVNPU3RyaW5nKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYXhEYXRlXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBfZ2V0TWluRGF0ZUZyb21UaW1lem9uZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLm1pbkRhdGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubWluRGF0ZVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnRpbWV6b25lICE9PSAnZGVmYXVsdCcpIHtcclxuICAgICAgY29uc3QgdXRjVGltZSA9IGRheWpzLnV0Yyh0aGlzLm1pbkRhdGUpO1xyXG4gICAgICBjb25zdCBsb2NhbE9mZnNldE1pbnV0ZXMgPSBkYXlqcygpLnV0Y09mZnNldCgpO1xyXG4gICAgICBjb25zdCBtb3Njb3dPZmZzZXRNaW51dGVzID0gZGF5anMoKS50eih0aGlzLnRpbWV6b25lKS51dGNPZmZzZXQoKTtcclxuICAgICAgY29uc3Qgb2Zmc2V0RGlmZmVyZW5jZU1pbnV0ZXMgPSBsb2NhbE9mZnNldE1pbnV0ZXMgLSBtb3Njb3dPZmZzZXRNaW51dGVzO1xyXG4gICAgICBjb25zdCBjb3JyZWN0ZWRUaW1lID0gdXRjVGltZS5zdWJ0cmFjdChvZmZzZXREaWZmZXJlbmNlTWludXRlcywgJ21pbnV0ZScpO1xyXG5cclxuICAgICAgcmV0dXJuIGNvcnJlY3RlZFRpbWUudG9JU09TdHJpbmcoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1pbkRhdGVcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZHQgPSBuZXcgQWlyRGF0ZXBpY2tlcih0aGlzLmRhdGVJbnB1dC5uYXRpdmVFbGVtZW50LCB7XHJcbiAgICAgIGNvbnRhaW5lcjogdGhpcy5jb250YWluZXIsXHJcbiAgICAgIGxvY2FsZToge1xyXG4gICAgICAgIGRhdGVGb3JtYXQ6ICdkZC5NTS55eXl5JyxcclxuICAgICAgICB0aW1lRm9ybWF0OiAnSEg6bW0nLFxyXG4gICAgICB9LFxyXG4gICAgICBhdXRvQ2xvc2U6IHRydWUsXHJcbiAgICAgIHJhbmdlOiB0aGlzLnJhbmdlLFxyXG4gICAgICBtdWx0aXBsZURhdGVzU2VwYXJhdG9yOiAnIC0gJyxcclxuICAgICAgdGltZXBpY2tlcjogdGhpcy50aW1lcGlja2VyLFxyXG4gICAgICBtaW5EYXRlOiB0aGlzLl9nZXRNaW5EYXRlRnJvbVRpbWV6b25lLFxyXG4gICAgICBtYXhEYXRlOiB0aGlzLl9nZXRNYXhEYXRlRnJvbVRpbWV6b25lLFxyXG4gICAgICBpbmxpbmU6IHRoaXMuaW5saW5lLFxyXG4gICAgICBwb3NpdGlvbih7JGRhdGVwaWNrZXIsICR0YXJnZXQsICRwb2ludGVyLCBkb25lfSkge1xyXG4gICAgICAgIGxldCBwb3BwZXIgPSBjcmVhdGVQb3BwZXIoJHRhcmdldCwgJGRhdGVwaWNrZXIsIHtcclxuICAgICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbS1zdGFydCcsXHJcbiAgICAgICAgICBtb2RpZmllcnM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIG5hbWU6ICdmbGlwJyxcclxuICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB7XHJcbiAgICAgICAgICAgICAgICAgIHRvcDogNjRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBuYW1lOiAnb2Zmc2V0JyxcclxuICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IFswLCAxMF1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBuYW1lOiAnYXJyb3cnLFxyXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICRwb2ludGVyXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBjb21wbGV0ZUhpZGUoKSB7XHJcbiAgICAgICAgICBwb3BwZXIuZGVzdHJveSgpO1xyXG4gICAgICAgICAgZG9uZSgpO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH0sXHJcbiAgICAgIG9uU2VsZWN0OiAoe2RhdGUsIGZvcm1hdHRlZERhdGUsIGRhdGVwaWNrZXJ9KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmIHR5cGVvZiBmb3JtYXR0ZWREYXRlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgdGhpcy5kYXRlTW9kZWwgPSB2YWxpZGF0ZURhdGVNb2RlbChmb3JtYXR0ZWREYXRlKTtcclxuICAgICAgICAgIHRoaXMudGltZU1vZGVsID0gdmFsaWRhdGVUaW1lTW9kZWwoZm9ybWF0dGVkRGF0ZSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5fY2hlY2tFeHRyYVRpbWUoKTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5pc1ZhbGlkTW9kZWxzKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWVNb2RlbCh0aGlzLmRhdGVNb2RlbCwgdGhpcy50aW1lTW9kZWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGZvcm1hdHRlZERhdGUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlc0FycmF5KGRhdGUgYXMgRGF0ZVtdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmR0KSB7XHJcbiAgICAgIGlmIChjaGFuZ2VzWydtYXhEYXRlJ10pIHtcclxuICAgICAgICB0aGlzLmR0LnVwZGF0ZSh7bWF4RGF0ZTogdGhpcy5tYXhEYXRlfSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZSAmJiB0aGlzLmR0LnNlbGVjdERhdGUoZGF5anModGhpcy52YWx1ZSkudG9EYXRlKCksIHt1cGRhdGVUaW1lOiB0aGlzLnRpbWVwaWNrZXIsIHNpbGVudDogdHJ1ZX0pO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZVZhbGlkYXRlKSB7XHJcbiAgICAgICAgICBjb25zdCBpbnZhbGlkID0gdGhpcy5pbm5lckludmFsaWQ7XHJcbiAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gdGhpcy5jaGVja2luZ0ludmFsaWQodGhpcy52YWx1ZSwgdGhpcy5tYXhEYXRlLCB0aGlzLm1pbkRhdGUpO1xyXG5cclxuICAgICAgICAgIGlmIChpbnZhbGlkICYmIGlzVmFsaWQpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZU1vZGVsKHRoaXMuZGF0ZU1vZGVsLCB0aGlzLnRpbWVNb2RlbCk7XHJcbiAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNoYW5nZXNbJ21pbkRhdGUnXSkge1xyXG4gICAgICAgIHRoaXMuZHQudXBkYXRlKHttaW5EYXRlOiB0aGlzLm1pbkRhdGV9KTtcclxuICAgICAgICB0aGlzLnZhbHVlICYmIHRoaXMuZHQuc2VsZWN0RGF0ZShkYXlqcyh0aGlzLnZhbHVlKS50b0RhdGUoKSwge3VwZGF0ZVRpbWU6IHRoaXMudGltZXBpY2tlciwgc2lsZW50OiB0cnVlfSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlVmFsaWRhdGUpIHtcclxuICAgICAgICAgIGNvbnN0IGludmFsaWQgPSB0aGlzLmlubmVySW52YWxpZDtcclxuICAgICAgICAgIGNvbnN0IGlzVmFsaWQgPSB0aGlzLmNoZWNraW5nSW52YWxpZCh0aGlzLnZhbHVlLCB0aGlzLm1heERhdGUsIHRoaXMubWluRGF0ZSk7XHJcblxyXG4gICAgICAgICAgaWYgKGludmFsaWQgJiYgaXNWYWxpZCkge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlTW9kZWwodGhpcy5kYXRlTW9kZWwsIHRoaXMudGltZU1vZGVsKTtcclxuICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldERhdGVWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuZGF0ZU1vZGVsLnZpZXd9JHt0aGlzLnRpbWVNb2RlbC52aWV3ID8gJyAnICsgdGhpcy50aW1lTW9kZWwudmlldyA6ICcnfWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHtJbnB1dERhdGVTaXplc0VudW1bdGhpcy5zaXplXX0gJHt0aGlzLmN1c3RvbUNsYXNzZXN9ICR7dGhpcy5jaGVja1ZhbGlkQ2xhc3Nlc31gO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgaXNWYWxpZE1vZGVscygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5kYXRlTW9kZWwuaW52YWxpZCAmJiAodGhpcy50aW1lcGlja2VyID8gIXRoaXMudGltZU1vZGVsLmludmFsaWQgOiB0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNWaWV3Q2xlYW5JY29uKCkge1xyXG4gICAgcmV0dXJuICEhdGhpcy5kYXRlSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNoZWNrVmFsaWRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMucmVxdWlyZWQpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tJbnZhbGlkID09PSBmYWxzZSA/ICdtcngtaW5wdXQtY2hlY2tlZC1zdWNjZXNzJyA6IHRoaXMuY2hlY2tJbnZhbGlkID09PSB0cnVlID8gJ21yeC1pbnB1dC1jaGVja2VkLWVycm9yJyA6ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hlY2tFeHRyYVRpbWUoKSB7XHJcbiAgICBpZiAodGhpcy5hZGRNYXhUaW1lICYmICF0aGlzLnRpbWVwaWNrZXIpIHtcclxuICAgICAgdGhpcy50aW1lTW9kZWwuaG91ciA9ICcyMyc7XHJcbiAgICAgIHRoaXMudGltZU1vZGVsLm1pbnV0ZSA9ICc1OSc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5hZGRNaW5UaW1lICYmICF0aGlzLnRpbWVwaWNrZXIpIHtcclxuICAgICAgdGhpcy50aW1lTW9kZWwuaG91ciA9ICcwMCc7XHJcbiAgICAgIHRoaXMudGltZU1vZGVsLm1pbnV0ZSA9ICcwMCc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5hZGRNYXhUaW1lT2JqICYmICF0aGlzLnRpbWVwaWNrZXIpIHtcclxuICAgICAgdGhpcy50aW1lTW9kZWwuaG91ciA9IHRoaXMuYWRkTWF4VGltZU9iai5ob3VyO1xyXG4gICAgICB0aGlzLnRpbWVNb2RlbC5taW51dGUgPSB0aGlzLmFkZE1heFRpbWVPYmoubWludXRlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYWRkTWluVGltZU9iaiAmJiAhdGhpcy50aW1lcGlja2VyKSB7XHJcbiAgICAgIHRoaXMudGltZU1vZGVsLmhvdXIgPSB0aGlzLmFkZE1pblRpbWVPYmouaG91cjtcclxuICAgICAgdGhpcy50aW1lTW9kZWwubWludXRlID0gdGhpcy5hZGRNaW5UaW1lT2JqLm1pbnV0ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGlja1RvSWNvbkNhbGVuZGFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRlSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsaWNrVG9JY29uQ2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmR0LnNldFZpZXdEYXRlKG5ldyBEYXRlKCkpO1xyXG4gICAgdGhpcy5kdCAmJiB0aGlzLmR0LmNsZWFyKCk7XHJcbiAgICB0aGlzLmRhdGVNb2RlbCA9IGRhdGVNb2RlbENvbnN0YW50O1xyXG4gICAgdGhpcy50aW1lTW9kZWwgPSB0aW1lTW9kZWxDb25zdGFudDtcclxuXHJcbiAgICBpZiAoIXRoaXMucmFuZ2UpIHtcclxuICAgICAgdGhpcy51cGRhdGVWYWx1ZSgnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbm5lckludmFsaWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaW5uZXJJbnZhbGlkTWVzc2FnZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZU1vZGVsKGRhdGVNb2RlbDogRGF0ZU1vZGVsLCB0aW1lTW9kZWw6IFRpbWVNb2RlbCwgYm9sOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIGlmIChkYXRlTW9kZWwudmlldyA9PT0gJycpIHtcclxuICAgICAgdGhpcy5jbGlja1RvSWNvbkNsZWFyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBkYXRlID0gZm9ybWF0dGluZ0Zyb21Nb2RlbHMoZGF0ZU1vZGVsLCB0aW1lTW9kZWwsIHRoaXMudGltZXBpY2tlciB8fCB0aGlzLmFkZE1heFRpbWUgfHwgdGhpcy5hZGRNaW5UaW1lKTtcclxuXHJcbiAgICAgIGNvbnN0IGZvcm1hdHRpbmdEYXRlID0gZm9ybWF0dGluZ1RvTW9zY293VGltZXpvbmUoZGF0ZS50b0lTT1N0cmluZygpLCB0aGlzLnRpbWV6b25lKTtcclxuXHJcbiAgICAgIGNvbnN0IGlzVmFsaWQgPSB0aGlzLmNoZWNraW5nSW52YWxpZChmb3JtYXR0aW5nRGF0ZSwgdGhpcy5tYXhEYXRlLCB0aGlzLm1pbkRhdGUpO1xyXG5cclxuICAgICAgaWYgKGRhdGUuaXNWYWxpZCgpICYmIGlzVmFsaWQpIHtcclxuICAgICAgICB0aGlzLmR0LnNlbGVjdERhdGUoZm9ybWF0dGluZ0Zyb21Nb2RlbHMoZGF0ZU1vZGVsLCB0aW1lTW9kZWwsIHRoaXMudGltZXBpY2tlcikudG9JU09TdHJpbmcoKSwge1xyXG4gICAgICAgICAgdXBkYXRlVGltZTogdGhpcy50aW1lcGlja2VyLFxyXG4gICAgICAgICAgc2lsZW50OiB0cnVlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5kdC5zZXRWaWV3RGF0ZShmb3JtYXR0aW5nRnJvbU1vZGVscyhkYXRlTW9kZWwsIHRpbWVNb2RlbCwgdGhpcy50aW1lcGlja2VyKS50b0lTT1N0cmluZygpKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGZvcm1hdHRpbmdEYXRlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZXNBcnJheSA9ICh2YWx1ZXM6IGFueVtdKSA9PiB7XHJcbiAgICBjb25zdCBkYXRlcyA9IHZhbHVlcy5tYXAoZGF0ZSA9PiB7XHJcbiAgICAgIHJldHVybiBmb3JtYXR0aW5nVG9Nb3Njb3dUaW1lem9uZShkYXRlLnRvSVNPU3RyaW5nKCksIHRoaXMudGltZXpvbmUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy51cGRhdGVWYWx1ZShkYXRlcyk7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBkYXRlRm9ybWF0dGluZ091dHB1dCh2YWx1ZTogRGF0ZSk6IHN0cmluZyB7XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcmV0dXJuIGRheWpzKHZhbHVlKS50b0lTT1N0cmluZygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbnZhbGlkTWVzc2FnZU9uKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5pbm5lckludmFsaWQgPSB0cnVlO1xyXG4gICAgdGhpcy5pbm5lckludmFsaWRNZXNzYWdlID0gbWVzc2FnZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW52YWxpZE1lc3NhZ2VPZmYoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlubmVySW52YWxpZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbm5lckludmFsaWRNZXNzYWdlID0gJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlRGF0ZVZhbHVlKGRhdGVJbnB1dDogSFRNTElucHV0RWxlbWVudCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSBkYXRlSW5wdXQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICB0aGlzLmRhdGVNb2RlbCA9IHZhbGlkYXRlRGF0ZU1vZGVsKGRhdGVJbnB1dC52YWx1ZSk7XHJcbiAgICB0aGlzLnRpbWVNb2RlbCA9IHZhbGlkYXRlVGltZU1vZGVsKGRhdGVJbnB1dC52YWx1ZSk7XHJcblxyXG4gICAgZGF0ZUlucHV0LnZhbHVlID0gdGhpcy5nZXREYXRlVmFsdWU7XHJcbiAgICBkYXRlSW5wdXQuc2VsZWN0aW9uU3RhcnQgPSBzZWxlY3Rpb25TdGFydDtcclxuICAgIGRhdGVJbnB1dC5zZWxlY3Rpb25FbmQgPSBkYXRlSW5wdXQuc2VsZWN0aW9uU3RhcnQ7XHJcblxyXG4gICAgdGhpcy5fY2hlY2tFeHRyYVRpbWUoKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1ZhbGlkTW9kZWxzIHx8IHRoaXMuZGF0ZU1vZGVsLnZpZXcgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVNb2RlbCh0aGlzLmRhdGVNb2RlbCwgdGhpcy50aW1lTW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsaWNrVG9JbnB1dChpbnB1dDogSFRNTElucHV0RWxlbWVudCk6IHZvaWQge1xyXG4gICAgaWYgKGlucHV0LnNlbGVjdGlvblN0YXJ0ID09PSBpbnB1dC5zZWxlY3Rpb25FbmQgJiYgKGlucHV0LnNlbGVjdGlvblN0YXJ0ICYmIGlucHV0LnNlbGVjdGlvblN0YXJ0ID4gMCkpIHtcclxuICAgICAgY29uc3Qge3N0YXJ0LCBlbmR9ID0gbWFya1Bvc2l0aW9uKGlucHV0LnNlbGVjdGlvblN0YXJ0LCBpbnB1dC5zZWxlY3Rpb25FbmQpO1xyXG4gICAgICBpbnB1dC5zZWxlY3Rpb25TdGFydCA9IHN0YXJ0O1xyXG4gICAgICBpbnB1dC5zZWxlY3Rpb25FbmQgPSBlbmQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNraW5nSW52YWxpZCh2YWx1ZTogc3RyaW5nLCBtYXhEYXRlOiBzdHJpbmcsIG1pbkRhdGU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZVZhbGlkYXRlKSB7XHJcbiAgICAgIHRoaXMuaW52YWxpZE1lc3NhZ2VPZmYoKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG1heERhdGUgJiYgKGRheWpzKHZhbHVlKS5kaWZmKGRheWpzKG1heERhdGUpKSA9PT0gMCkgJiYgIXRoaXMuZGlzYWJsZUluY2x1ZGVzKSB7XHJcbiAgICAgIHRoaXMuaW52YWxpZE1lc3NhZ2VPbign0JTQsNGC0LAg0Lgg0LLRgNC10LzRjyDQvtC60L7QvdGH0LDQvdC40Y8g0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINGA0LDQstC90LAg0LTQsNGC0LUg0Lgg0LLRgNC10LzQtdC90Lgg0L3QsNGH0LDQu9CwJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAobWF4RGF0ZSAmJiAoZGF5anModmFsdWUpLmRpZmYoZGF5anMobWF4RGF0ZSkpID4gMCkpIHtcclxuICAgICAgdGhpcy5pbnZhbGlkTWVzc2FnZU9uKCfQlNCw0YLQsCDQvtC60L7QvdGH0LDQvdC40Y8g0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINGA0LDQvdGM0YjQtSDQtNCw0YLRiyDQvdCw0YfQsNC70LAnKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmIChtaW5EYXRlICYmIChkYXlqcyh2YWx1ZSkuZGlmZihkYXlqcyhtaW5EYXRlKSkgPT09IDApICYmICF0aGlzLmRpc2FibGVJbmNsdWRlcykge1xyXG4gICAgICB0aGlzLmludmFsaWRNZXNzYWdlT24oJ9CU0LDRgtCwINC4INCy0YDQtdC80Y8g0L7QutC+0L3Rh9Cw0L3QuNGPINC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCDRgNCw0LLQvdCwINC00LDRgtC1INC4INCy0YDQtdC80LXQvdC4INC90LDRh9Cw0LvQsCcpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKG1pbkRhdGUgJiYgZGF5anModmFsdWUpLmRpZmYoZGF5anMobWluRGF0ZSkpIDwgMCkge1xyXG4gICAgICB0aGlzLmludmFsaWRNZXNzYWdlT24oJ9CU0LDRgtCwINC+0LrQvtC90YfQsNC90LjRjyDQvdC1INC80L7QttC10YIg0LHRi9GC0Ywg0YDQsNC90YzRiNC1INC00LDRgtGLINC90LDRh9Cw0LvQsCcpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmludmFsaWRNZXNzYWdlT2ZmKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHdyaXRlVmFsdWUob3V0c2lkZVZhbHVlOiBJbnB1dERhdGVUaW1lVmFsdWVUeXBlcykge1xyXG4gICAgaWYgKG91dHNpZGVWYWx1ZSkge1xyXG4gICAgICBpZiAodHlwZW9mIG91dHNpZGVWYWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gY2xlYW5EYXRlKG91dHNpZGVWYWx1ZSk7XHJcbiAgICAgICAgdGhpcy5kYXRlTW9kZWwgPSBkYXRlTW9kZWxWYWx1ZVBhcnNlKG91dHNpZGVWYWx1ZSwgdGhpcy50aW1lem9uZSk7XHJcbiAgICAgICAgdGhpcy50aW1lTW9kZWwgPSB0aW1lTW9kZWxWYWx1ZVBhcnNlKG91dHNpZGVWYWx1ZSwgdGhpcy50aW1lem9uZSk7XHJcblxyXG4gICAgICAgIHRoaXMuY2hlY2tpbmdJbnZhbGlkKG91dHNpZGVWYWx1ZSwgdGhpcy5tYXhEYXRlLCB0aGlzLm1pbkRhdGUpO1xyXG5cclxuICAgICAgICB0aGlzLmR0LnNlbGVjdERhdGUoZm9ybWF0dGluZ0Zyb21Nb2RlbHModGhpcy5kYXRlTW9kZWwsIHRoaXMudGltZU1vZGVsLCB0aGlzLnRpbWVwaWNrZXIpLnRvSVNPU3RyaW5nKCksIHtcclxuICAgICAgICAgIHVwZGF0ZVRpbWU6IHRoaXMudGltZXBpY2tlcixcclxuICAgICAgICAgIHNpbGVudDogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZHQuc2V0Vmlld0RhdGUoZm9ybWF0dGluZ0Zyb21Nb2RlbHModGhpcy5kYXRlTW9kZWwsIHRoaXMudGltZU1vZGVsLCB0aGlzLnRpbWVwaWNrZXIpLnRvSVNPU3RyaW5nKCkpO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvdXRzaWRlVmFsdWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IG91dHNpZGVWYWx1ZS5tYXAoZGF0ZSA9PiBjbGVhbkRhdGUoZGF0ZSkpO1xyXG5cclxuICAgICAgICB0aGlzLmR0LnNlbGVjdERhdGUodGhpcy52YWx1ZSwge1xyXG4gICAgICAgICAgdXBkYXRlVGltZTogdGhpcy50aW1lcGlja2VyLFxyXG4gICAgICAgICAgc2lsZW50OiB0cnVlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmR0KSB7XHJcbiAgICAgICAgdGhpcy5kdC5jbGVhcih7c2lsZW50OiB0cnVlfSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9ICcnO1xyXG4gICAgICAgIHRoaXMuZGF0ZU1vZGVsID0gZGF0ZU1vZGVsQ29uc3RhbnQ7XHJcbiAgICAgICAgdGhpcy50aW1lTW9kZWwgPSB0aW1lTW9kZWxDb25zdGFudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgfTtcclxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHt9KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlVmFsdWUoaW5zaWRlVmFsdWU6IElucHV0RGF0ZVRpbWVWYWx1ZVR5cGVzKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gaW5zaWRlVmFsdWU7XHJcbiAgICB0aGlzLmNoYW5nZWQuZW1pdChpbnNpZGVWYWx1ZSk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoe3ZhbHVlOiBpbnNpZGVWYWx1ZSwgaWQ6IHRoaXMudXVpZH0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZShpbnNpZGVWYWx1ZSk7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQmx1cihldmVudDogRXZlbnQpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmJsdXJyZWQuZW1pdCh7dmFsdWU6IHRoaXMudmFsdWUsIGlkOiB0aGlzLnV1aWR9KTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cIm1yeC1pbnB1dC1kYXRlXCJcclxuICAgIFtjbGFzcy5tcngtaW5wdXQtZXJyb3JdPVwiaW52YWxpZCB8fCBpbm5lckludmFsaWRcIlxyXG4gICAgW2NsYXNzLm1yeC1pbnB1dC1yZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICA8bXJ4LWxhYmVsICpuZ0lmPVwidGltZUxhYmVsIHx8IGRhdGVMYWJlbFwiPnt7IGRhdGVMYWJlbCB9fTwvbXJ4LWxhYmVsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1kYXRlX193cmFwcGVyXCI+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgI2RhdGVJbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgYXV0b2NvbXBsZXRlPVwibm9wZVwiXHJcbiAgICAgICAgICBjbGFzcz1cIm1yeC1pbnB1dC1kYXRlX19pbnB1dCBtcngtaW5wdXQtZGF0ZV9fZGF0ZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGF0ZVBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgIFtuZ01vZGVsXT1cImdldERhdGVWYWx1ZVwiXHJcbiAgICAgICAgICBbbWFza109XCInMDAuMDAuMDAwMCAwMDptMCdcIlxyXG4gICAgICAgICAgW2xlYWRaZXJvRGF0ZVRpbWVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbdmFsaWRhdGlvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgW3JlYWRPbmx5XT1cIiFpc01hbnVhbElucHV0XCJcclxuICAgICAgICAgIChpbnB1dCk9XCJ1cGRhdGVEYXRlVmFsdWUoZGF0ZUlucHV0KVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2xpY2tUb0lucHV0KGRhdGVJbnB1dClcIlxyXG4gICAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cIiFkaXNhYmxlZFwiIGNsYXNzPVwibXJ4LWlucHV0LWRhdGVfX2ljb25zXCI+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jbG9zZVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc1ZpZXdDbGVhbkljb25cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja1RvSWNvbkNsZWFyKClcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5pY29uLWZvbnQtMTZdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmljb24tZm9udC0yNF09XCJzaXplID09PSAnbWVkaXVtJyB8fCBzaXplID09PSAnbGFyZ2UnXCJcclxuICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvbiBpY29uLWNhbGVuZGFyXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrVG9JY29uQ2FsZW5kYXIoKVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5pY29uLWZvbnQtMTZdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXHJcbiAgICAgICAgICAgIFtjbGFzcy5pY29uLWZvbnQtMjRdPVwic2l6ZSA9PT0gJ21lZGl1bScgfHwgc2l6ZSA9PT0gJ2xhcmdlJ1wiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgICA8bXJ4LWVycm9yLW1lc3NhZ2VcclxuICAgICAgICAqbmdJZj1cImludmFsaWQ7IGVsc2UgaW5uZXJJbnZhbGlkVGVtcGxhdGVcIlxyXG4gICAgICAgIFtpbnZhbGlkTWVzc2FnZV09XCJpbnZhbGlkTWVzc2FnZVwiXHJcbiAgICA+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNpbm5lckludmFsaWRUZW1wbGF0ZT5cclxuICAgIDxtcngtZXJyb3ItbWVzc2FnZVxyXG4gICAgICAgICpuZ0lmPVwiaW5uZXJJbnZhbGlkXCJcclxuICAgICAgICBbaW52YWxpZE1lc3NhZ2VdPVwiaW5uZXJJbnZhbGlkTWVzc2FnZVwiXHJcbiAgICA+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bXJ4LXNhdmUtc3RhdGUgW2lkXT1cInV1aWRcIiBbZmllbGRzXT1cImZpZWxkc1wiPjwvbXJ4LXNhdmUtc3RhdGU+XHJcbjwvZGl2PlxyXG5cclxuXHJcblxyXG4iXX0=
470
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LWRhdGUtdGltZS9pbnB1dC1kYXRlLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtZGF0ZS10aW1lL2lucHV0LWRhdGUtdGltZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ1UsdUJBQXVCLEVBQ3RDLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLGFBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQWEsa0JBQWtCLEVBQXVCLE1BQU0sd0JBQXdCLENBQUM7QUFDNUYsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7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QTNCLE1BQU07Z0JBQ1UsT0FBTztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCBBaXJEYXRlcGlja2VyIGZyb20gJ2Fpci1kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgRXh0cmFUaW1lLCBJbnB1dERhdGVTaXplc0VudW0sIElucHV0RGF0ZVNpemVzVHlwZXMgfSBmcm9tICcuL2lucHV0LWRhdGUtdGltZS5lbnVtJztcclxuaW1wb3J0IHsgRGF0ZU1vZGVsLCBUaW1lTW9kZWwsIHZhbGlkYXRlRGF0ZU1vZGVsLCB2YWxpZGF0ZVRpbWVNb2RlbCB9IGZyb20gJy4vaGVscGVycy92YWxpZGF0ZS12YWx1ZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBkYXRlTW9kZWxDb25zdGFudCwgdGltZU1vZGVsQ29uc3RhbnQgfSBmcm9tICcuL2NvbnN0YW50cy92YWx1ZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBkYXRlTW9kZWxWYWx1ZVBhcnNlLCB0aW1lTW9kZWxWYWx1ZVBhcnNlIH0gZnJvbSAnLi9oZWxwZXJzL3ZhbHVlLXBhcnNlcic7XHJcbmltcG9ydCB7IG1hcmtQb3NpdGlvbiB9IGZyb20gJy4vaGVscGVycy9jdXJzb3ItcG9zaXRpb24nO1xyXG5pbXBvcnQgeyBjbGVhbkRhdGUgfSBmcm9tICcuL2hlbHBlcnMvY2xlYW4tZGF0ZSc7XHJcbmltcG9ydCB7IGZvcm1hdHRpbmdUb01vc2Nvd1RpbWV6b25lIH0gZnJvbSAnLi9oZWxwZXJzL2Zvcm1hdHRpbmctbW9zY293LXRpbWV6b25lJztcclxuaW1wb3J0IHsgVGltZXpvbmVUeXBlIH0gZnJvbSAnLi9lbnVtL3RpbWV6b25lJztcclxuaW1wb3J0IHsgZm9ybWF0dGluZ0Zyb21Nb2RlbHMgfSBmcm9tICcuL2hlbHBlcnMvZm9ybWF0dGluZy1mcm9tLW1vZGVscyc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBjcmVhdGVQb3BwZXIgfSBmcm9tICdAcG9wcGVyanMvY29yZSc7XHJcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBJbnB1dERhdGVUaW1lVmFsdWVUeXBlcywgSW5wdXREYXRlVGltZVZhbHVlV2l0aElkIH0gZnJvbSAnLi9tb2RlbHMvaW5wdXQtZGF0ZS10aW1lLm1vZGVsJztcclxuXHJcbmltcG9ydCB0aW1lem9uZSBmcm9tICdkYXlqcy9wbHVnaW4vdGltZXpvbmUnO1xyXG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMnO1xyXG5cclxuZGF5anMuZXh0ZW5kKHV0YylcclxuZGF5anMuZXh0ZW5kKHRpbWV6b25lKVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtaW5wdXQtZGF0ZS10aW1lJyxcclxuICB0ZW1wbGF0ZVVybDogJ2lucHV0LWRhdGUtdGltZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2lucHV0LWRhdGUtdGltZS5jb21wb25lbnRzLmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXREYXRlVGltZUNvbXBvbmVudCksIG11bHRpOiB0cnVlfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RGF0ZVRpbWVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICBwdWJsaWMgZHQ6IGFueTtcclxuICBwdWJsaWMgdmFsdWU6IGFueSA9ICcnO1xyXG4gIHB1YmxpYyBkYXRlTW9kZWw6IERhdGVNb2RlbCA9IGRhdGVNb2RlbENvbnN0YW50O1xyXG4gIHB1YmxpYyB0aW1lTW9kZWw6IFRpbWVNb2RlbCA9IHRpbWVNb2RlbENvbnN0YW50O1xyXG5cclxuICBwdWJsaWMgaW5uZXJJbnZhbGlkID0gZmFsc2U7XHJcbiAgcHVibGljIGlubmVySW52YWxpZE1lc3NhZ2UgPSAnJztcclxuXHJcbiAgLy8gU0FWRSBTVEFURVxyXG4gIHB1YmxpYyB1dWlkOiBzdHJpbmcgPSB1dWlkdjQoKTtcclxuICBASW5wdXQoKSBwdWJsaWMgZmllbGRzOiBGaWVsZFtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzaXplOiBJbnB1dERhdGVTaXplc1R5cGVzID0gJ2xhcmdlJztcclxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tQ2xhc3NlcyA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRlTGFiZWwgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgdGltZUxhYmVsID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGRhdGVQbGFjZWhvbGRlciA9ICfQtNC0LtC80Lwu0LPQs9Cz0LMnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0aW1lUGxhY2Vob2xkZXIgPSAnMDA6MDAnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0aW1lcGlja2VyID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHJhbmdlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIG1pbkRhdGUgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgbWF4RGF0ZSA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0aW1lem9uZTogVGltZXpvbmVUeXBlID0gJ2RlZmF1bHQnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbmxpbmUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgaXNNYW51YWxJbnB1dCA9IHRydWU7XHJcbiAgQElucHV0KCkgcHVibGljIGFkZE1pblRpbWUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgYWRkTWF4VGltZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRNaW5UaW1lT2JqITogRXh0cmFUaW1lO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRNYXhUaW1lT2JqITogRXh0cmFUaW1lO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZVZhbGlkYXRlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVJbmNsdWRlcyA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgY29udGFpbmVyID0gJ2Rpdi5wYWdlLXdyYXBwZXInO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tJbnZhbGlkOiB0cnVlIHwgZmFsc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZGF0ZUlucHV0JykgZGF0ZUlucHV0ITogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCd0aW1lSW5wdXQnKSB0aW1lSW5wdXQhOiBFbGVtZW50UmVmO1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJbnB1dERhdGVUaW1lVmFsdWVUeXBlcz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPElucHV0RGF0ZVRpbWVWYWx1ZVdpdGhJZD4gPSBuZXcgRXZlbnRFbWl0dGVyPElucHV0RGF0ZVRpbWVWYWx1ZVdpdGhJZD4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIGJsdXJyZWQ6IEV2ZW50RW1pdHRlcjxJbnB1dERhdGVUaW1lVmFsdWVXaXRoSWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJbnB1dERhdGVUaW1lVmFsdWVXaXRoSWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgX2dldE1heERhdGVGcm9tVGltZXpvbmUoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5tYXhEYXRlKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1heERhdGVcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy50aW1lem9uZSAhPT0gJ2RlZmF1bHQnKSB7XHJcbiAgICAgIGNvbnN0IHV0Y1RpbWUgPSBkYXlqcy51dGModGhpcy5tYXhEYXRlKTtcclxuICAgICAgY29uc3QgbG9jYWxPZmZzZXRNaW51dGVzID0gZGF5anMoKS51dGNPZmZzZXQoKTtcclxuICAgICAgY29uc3QgbW9zY293T2Zmc2V0TWludXRlcyA9IGRheWpzKCkudHoodGhpcy50aW1lem9uZSkudXRjT2Zmc2V0KCk7XHJcbiAgICAgIGNvbnN0IG9mZnNldERpZmZlcmVuY2VNaW51dGVzID0gbG9jYWxPZmZzZXRNaW51dGVzIC0gbW9zY293T2Zmc2V0TWludXRlcztcclxuICAgICAgY29uc3QgY29ycmVjdGVkVGltZSA9IHV0Y1RpbWUuc3VidHJhY3Qob2Zmc2V0RGlmZmVyZW5jZU1pbnV0ZXMsICdtaW51dGUnKTtcclxuXHJcbiAgICAgIHJldHVybiBjb3JyZWN0ZWRUaW1lLnRvSVNPU3RyaW5nKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5tYXhEYXRlXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBfZ2V0TWluRGF0ZUZyb21UaW1lem9uZSgpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLm1pbkRhdGUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubWluRGF0ZVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnRpbWV6b25lICE9PSAnZGVmYXVsdCcpIHtcclxuICAgICAgY29uc3QgdXRjVGltZSA9IGRheWpzLnV0Yyh0aGlzLm1pbkRhdGUpO1xyXG4gICAgICBjb25zdCBsb2NhbE9mZnNldE1pbnV0ZXMgPSBkYXlqcygpLnV0Y09mZnNldCgpO1xyXG4gICAgICBjb25zdCBtb3Njb3dPZmZzZXRNaW51dGVzID0gZGF5anMoKS50eih0aGlzLnRpbWV6b25lKS51dGNPZmZzZXQoKTtcclxuICAgICAgY29uc3Qgb2Zmc2V0RGlmZmVyZW5jZU1pbnV0ZXMgPSBsb2NhbE9mZnNldE1pbnV0ZXMgLSBtb3Njb3dPZmZzZXRNaW51dGVzO1xyXG4gICAgICBjb25zdCBjb3JyZWN0ZWRUaW1lID0gdXRjVGltZS5zdWJ0cmFjdChvZmZzZXREaWZmZXJlbmNlTWludXRlcywgJ21pbnV0ZScpO1xyXG5cclxuICAgICAgcmV0dXJuIGNvcnJlY3RlZFRpbWUudG9JU09TdHJpbmcoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1pbkRhdGVcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZHQgPSBuZXcgQWlyRGF0ZXBpY2tlcih0aGlzLmRhdGVJbnB1dC5uYXRpdmVFbGVtZW50LCB7XHJcbiAgICAgIGNvbnRhaW5lcjogdGhpcy5jb250YWluZXIsXHJcbiAgICAgIGxvY2FsZToge1xyXG4gICAgICAgIGRhdGVGb3JtYXQ6ICdkZC5NTS55eXl5JyxcclxuICAgICAgICB0aW1lRm9ybWF0OiAnSEg6bW0nLFxyXG4gICAgICB9LFxyXG4gICAgICBhdXRvQ2xvc2U6IHRydWUsXHJcbiAgICAgIHJhbmdlOiB0aGlzLnJhbmdlLFxyXG4gICAgICBtdWx0aXBsZURhdGVzU2VwYXJhdG9yOiAnIC0gJyxcclxuICAgICAgdGltZXBpY2tlcjogdGhpcy50aW1lcGlja2VyLFxyXG4gICAgICBtaW5EYXRlOiB0aGlzLl9nZXRNaW5EYXRlRnJvbVRpbWV6b25lLFxyXG4gICAgICBtYXhEYXRlOiB0aGlzLl9nZXRNYXhEYXRlRnJvbVRpbWV6b25lLFxyXG4gICAgICBpbmxpbmU6IHRoaXMuaW5saW5lLFxyXG4gICAgICBwb3NpdGlvbih7JGRhdGVwaWNrZXIsICR0YXJnZXQsICRwb2ludGVyLCBkb25lfSkge1xyXG4gICAgICAgIGxldCBwb3BwZXIgPSBjcmVhdGVQb3BwZXIoJHRhcmdldCwgJGRhdGVwaWNrZXIsIHtcclxuICAgICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbS1zdGFydCcsXHJcbiAgICAgICAgICBtb2RpZmllcnM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIG5hbWU6ICdmbGlwJyxcclxuICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB7XHJcbiAgICAgICAgICAgICAgICAgIHRvcDogNjRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBuYW1lOiAnb2Zmc2V0JyxcclxuICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IFswLCAxMF1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBuYW1lOiAnYXJyb3cnLFxyXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICRwb2ludGVyXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBjb21wbGV0ZUhpZGUoKSB7XHJcbiAgICAgICAgICBwb3BwZXIuZGVzdHJveSgpO1xyXG4gICAgICAgICAgZG9uZSgpO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH0sXHJcbiAgICAgIG9uU2VsZWN0OiAoe2RhdGUsIGZvcm1hdHRlZERhdGUsIGRhdGVwaWNrZXJ9KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmIHR5cGVvZiBmb3JtYXR0ZWREYXRlID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgICAgdGhpcy5kYXRlTW9kZWwgPSB2YWxpZGF0ZURhdGVNb2RlbChmb3JtYXR0ZWREYXRlKTtcclxuICAgICAgICAgIHRoaXMudGltZU1vZGVsID0gdmFsaWRhdGVUaW1lTW9kZWwoZm9ybWF0dGVkRGF0ZSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5fY2hlY2tFeHRyYVRpbWUoKTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5pc1ZhbGlkTW9kZWxzKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWVNb2RlbCh0aGlzLmRhdGVNb2RlbCwgdGhpcy50aW1lTW9kZWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGZvcm1hdHRlZERhdGUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlc0FycmF5KGRhdGUgYXMgRGF0ZVtdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmR0KSB7XHJcbiAgICAgIGlmIChjaGFuZ2VzWydtYXhEYXRlJ10pIHtcclxuICAgICAgICB0aGlzLmR0LnVwZGF0ZSh7bWF4RGF0ZTogdGhpcy5tYXhEYXRlfSk7XHJcblxyXG4gICAgICAgIHRoaXMudmFsdWUgJiYgdGhpcy5kdC5zZWxlY3REYXRlKGRheWpzKHRoaXMudmFsdWUpLnRvRGF0ZSgpLCB7dXBkYXRlVGltZTogdGhpcy50aW1lcGlja2VyLCBzaWxlbnQ6IHRydWV9KTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVWYWxpZGF0ZSkge1xyXG4gICAgICAgICAgY29uc3QgaW52YWxpZCA9IHRoaXMuaW5uZXJJbnZhbGlkO1xyXG4gICAgICAgICAgY29uc3QgaXNWYWxpZCA9IHRoaXMuY2hlY2tpbmdJbnZhbGlkKHRoaXMudmFsdWUsIHRoaXMubWF4RGF0ZSwgdGhpcy5taW5EYXRlKTtcclxuXHJcbiAgICAgICAgICBpZiAoaW52YWxpZCAmJiBpc1ZhbGlkKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWVNb2RlbCh0aGlzLmRhdGVNb2RlbCwgdGhpcy50aW1lTW9kZWwpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjaGFuZ2VzWydtaW5EYXRlJ10pIHtcclxuICAgICAgICB0aGlzLmR0LnVwZGF0ZSh7bWluRGF0ZTogdGhpcy5taW5EYXRlfSk7XHJcblxyXG4gICAgICAgIHRoaXMudmFsdWUgJiYgdGhpcy5kdC5zZWxlY3REYXRlKGRheWpzKHRoaXMudmFsdWUpLnRvRGF0ZSgpLCB7dXBkYXRlVGltZTogdGhpcy50aW1lcGlja2VyLCBzaWxlbnQ6IHRydWV9KTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVWYWxpZGF0ZSkge1xyXG4gICAgICAgICAgY29uc3QgaW52YWxpZCA9IHRoaXMuaW5uZXJJbnZhbGlkO1xyXG4gICAgICAgICAgY29uc3QgaXNWYWxpZCA9IHRoaXMuY2hlY2tpbmdJbnZhbGlkKHRoaXMudmFsdWUsIHRoaXMubWF4RGF0ZSwgdGhpcy5taW5EYXRlKTtcclxuXHJcbiAgICAgICAgICBpZiAoaW52YWxpZCAmJiBpc1ZhbGlkKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWVNb2RlbCh0aGlzLmRhdGVNb2RlbCwgdGhpcy50aW1lTW9kZWwpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0RGF0ZVZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5kYXRlTW9kZWwudmlld30ke3RoaXMudGltZU1vZGVsLnZpZXcgPyAnICcgKyB0aGlzLnRpbWVNb2RlbC52aWV3IDogJyd9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke0lucHV0RGF0ZVNpemVzRW51bVt0aGlzLnNpemVdfSAke3RoaXMuY3VzdG9tQ2xhc3Nlc30gJHt0aGlzLmNoZWNrVmFsaWRDbGFzc2VzfWA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBpc1ZhbGlkTW9kZWxzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLmRhdGVNb2RlbC5pbnZhbGlkICYmICh0aGlzLnRpbWVwaWNrZXIgPyAhdGhpcy50aW1lTW9kZWwuaW52YWxpZCA6IHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc1ZpZXdDbGVhbkljb24oKSB7XHJcbiAgICByZXR1cm4gISF0aGlzLmRhdGVJbnB1dD8ubmF0aXZlRWxlbWVudC52YWx1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2hlY2tWYWxpZENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5yZXF1aXJlZCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5jaGVja0ludmFsaWQgPT09IGZhbHNlID8gJ21yeC1pbnB1dC1jaGVja2VkLXN1Y2Nlc3MnIDogdGhpcy5jaGVja0ludmFsaWQgPT09IHRydWUgPyAnbXJ4LWlucHV0LWNoZWNrZWQtZXJyb3InIDogJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jaGVja0V4dHJhVGltZSgpIHtcclxuICAgIGlmICh0aGlzLmFkZE1heFRpbWUgJiYgIXRoaXMudGltZXBpY2tlcikge1xyXG4gICAgICB0aGlzLnRpbWVNb2RlbC5ob3VyID0gJzIzJztcclxuICAgICAgdGhpcy50aW1lTW9kZWwubWludXRlID0gJzU5JztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmFkZE1pblRpbWUgJiYgIXRoaXMudGltZXBpY2tlcikge1xyXG4gICAgICB0aGlzLnRpbWVNb2RlbC5ob3VyID0gJzAwJztcclxuICAgICAgdGhpcy50aW1lTW9kZWwubWludXRlID0gJzAwJztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmFkZE1heFRpbWVPYmogJiYgIXRoaXMudGltZXBpY2tlcikge1xyXG4gICAgICB0aGlzLnRpbWVNb2RlbC5ob3VyID0gdGhpcy5hZGRNYXhUaW1lT2JqLmhvdXI7XHJcbiAgICAgIHRoaXMudGltZU1vZGVsLm1pbnV0ZSA9IHRoaXMuYWRkTWF4VGltZU9iai5taW51dGU7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5hZGRNaW5UaW1lT2JqICYmICF0aGlzLnRpbWVwaWNrZXIpIHtcclxuICAgICAgdGhpcy50aW1lTW9kZWwuaG91ciA9IHRoaXMuYWRkTWluVGltZU9iai5ob3VyO1xyXG4gICAgICB0aGlzLnRpbWVNb2RlbC5taW51dGUgPSB0aGlzLmFkZE1pblRpbWVPYmoubWludXRlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsaWNrVG9JY29uQ2FsZW5kYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGVJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xpY2tUb0ljb25DbGVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZHQuc2V0Vmlld0RhdGUobmV3IERhdGUoKSk7XHJcbiAgICB0aGlzLmR0ICYmIHRoaXMuZHQuY2xlYXIoKTtcclxuICAgIHRoaXMuZGF0ZU1vZGVsID0gZGF0ZU1vZGVsQ29uc3RhbnQ7XHJcbiAgICB0aGlzLnRpbWVNb2RlbCA9IHRpbWVNb2RlbENvbnN0YW50O1xyXG5cclxuICAgIGlmICghdGhpcy5yYW5nZSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKCcnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlubmVySW52YWxpZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbm5lckludmFsaWRNZXNzYWdlID0gJyc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVZhbHVlTW9kZWwoZGF0ZU1vZGVsOiBEYXRlTW9kZWwsIHRpbWVNb2RlbDogVGltZU1vZGVsLCBib2w6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgaWYgKGRhdGVNb2RlbC52aWV3ID09PSAnJykge1xyXG4gICAgICB0aGlzLmNsaWNrVG9JY29uQ2xlYXIoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBmb3JtYXR0aW5nRnJvbU1vZGVscyhkYXRlTW9kZWwsIHRpbWVNb2RlbCwgdGhpcy50aW1lcGlja2VyIHx8IHRoaXMuYWRkTWF4VGltZSB8fCB0aGlzLmFkZE1pblRpbWUpO1xyXG5cclxuICAgICAgY29uc3QgZm9ybWF0dGluZ0RhdGUgPSBmb3JtYXR0aW5nVG9Nb3Njb3dUaW1lem9uZShkYXRlLnRvSVNPU3RyaW5nKCksIHRoaXMudGltZXpvbmUpO1xyXG5cclxuICAgICAgY29uc3QgaXNWYWxpZCA9IHRoaXMuY2hlY2tpbmdJbnZhbGlkKGZvcm1hdHRpbmdEYXRlLCB0aGlzLm1heERhdGUsIHRoaXMubWluRGF0ZSk7XHJcblxyXG4gICAgICBpZiAoZGF0ZS5pc1ZhbGlkKCkgJiYgaXNWYWxpZCkge1xyXG4gICAgICAgIHRoaXMuZHQuc2VsZWN0RGF0ZShmb3JtYXR0aW5nRnJvbU1vZGVscyhkYXRlTW9kZWwsIHRpbWVNb2RlbCwgdGhpcy50aW1lcGlja2VyKS50b0lTT1N0cmluZygpLCB7XHJcbiAgICAgICAgICB1cGRhdGVUaW1lOiB0aGlzLnRpbWVwaWNrZXIsXHJcbiAgICAgICAgICBzaWxlbnQ6IHRydWVcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmR0LnNldFZpZXdEYXRlKGZvcm1hdHRpbmdGcm9tTW9kZWxzKGRhdGVNb2RlbCwgdGltZU1vZGVsLCB0aGlzLnRpbWVwaWNrZXIpLnRvSVNPU3RyaW5nKCkpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoZm9ybWF0dGluZ0RhdGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZVZhbHVlc0FycmF5ID0gKHZhbHVlczogYW55W10pID0+IHtcclxuICAgIGNvbnN0IGRhdGVzID0gdmFsdWVzLm1hcChkYXRlID0+IHtcclxuICAgICAgcmV0dXJuIGZvcm1hdHRpbmdUb01vc2Nvd1RpbWV6b25lKGRhdGUudG9JU09TdHJpbmcoKSwgdGhpcy50aW1lem9uZSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKGRhdGVzKTtcclxuICB9O1xyXG5cclxuICBwcml2YXRlIGRhdGVGb3JtYXR0aW5nT3V0cHV0KHZhbHVlOiBEYXRlKTogc3RyaW5nIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICByZXR1cm4gZGF5anModmFsdWUpLnRvSVNPU3RyaW5nKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGludmFsaWRNZXNzYWdlT24obWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmlubmVySW52YWxpZCA9IHRydWU7XHJcbiAgICB0aGlzLmlubmVySW52YWxpZE1lc3NhZ2UgPSBtZXNzYWdlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbnZhbGlkTWVzc2FnZU9mZigpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5uZXJJbnZhbGlkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlubmVySW52YWxpZE1lc3NhZ2UgPSAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVEYXRlVmFsdWUoZGF0ZUlucHV0OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBzZWxlY3Rpb25TdGFydCA9IGRhdGVJbnB1dC5zZWxlY3Rpb25TdGFydDtcclxuICAgIHRoaXMuZGF0ZU1vZGVsID0gdmFsaWRhdGVEYXRlTW9kZWwoZGF0ZUlucHV0LnZhbHVlKTtcclxuICAgIHRoaXMudGltZU1vZGVsID0gdmFsaWRhdGVUaW1lTW9kZWwoZGF0ZUlucHV0LnZhbHVlKTtcclxuXHJcbiAgICBkYXRlSW5wdXQudmFsdWUgPSB0aGlzLmdldERhdGVWYWx1ZTtcclxuICAgIGRhdGVJbnB1dC5zZWxlY3Rpb25TdGFydCA9IHNlbGVjdGlvblN0YXJ0O1xyXG4gICAgZGF0ZUlucHV0LnNlbGVjdGlvbkVuZCA9IGRhdGVJbnB1dC5zZWxlY3Rpb25TdGFydDtcclxuXHJcbiAgICB0aGlzLl9jaGVja0V4dHJhVGltZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLmlzVmFsaWRNb2RlbHMgfHwgdGhpcy5kYXRlTW9kZWwudmlldyA9PT0gJycpIHtcclxuICAgICAgdGhpcy51cGRhdGVWYWx1ZU1vZGVsKHRoaXMuZGF0ZU1vZGVsLCB0aGlzLnRpbWVNb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xpY2tUb0lucHV0KGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XHJcbiAgICBpZiAoaW5wdXQuc2VsZWN0aW9uU3RhcnQgPT09IGlucHV0LnNlbGVjdGlvbkVuZCAmJiAoaW5wdXQuc2VsZWN0aW9uU3RhcnQgJiYgaW5wdXQuc2VsZWN0aW9uU3RhcnQgPiAwKSkge1xyXG4gICAgICBjb25zdCB7c3RhcnQsIGVuZH0gPSBtYXJrUG9zaXRpb24oaW5wdXQuc2VsZWN0aW9uU3RhcnQsIGlucHV0LnNlbGVjdGlvbkVuZCk7XHJcbiAgICAgIGlucHV0LnNlbGVjdGlvblN0YXJ0ID0gc3RhcnQ7XHJcbiAgICAgIGlucHV0LnNlbGVjdGlvbkVuZCA9IGVuZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tpbmdJbnZhbGlkKHZhbHVlOiBzdHJpbmcsIG1heERhdGU6IHN0cmluZywgbWluRGF0ZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgdmFsaWRNYXhEYXRlID0gJydcclxuICAgIGxldCB2YWxpZE1pbkRhdGUgPSAnJ1xyXG5cclxuICAgIGlmICh0aGlzLnRpbWVwaWNrZXIpIHtcclxuICAgICAgdmFsaWRNYXhEYXRlID0gdGhpcy5tYXhEYXRlXHJcbiAgICAgIHZhbGlkTWluRGF0ZSA9IHRoaXMubWluRGF0ZVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdmFsaWRNYXhEYXRlID0gZGF5anModGhpcy5tYXhEYXRlKS5ob3VyKDIzKS5taW51dGUoNTkgKyAxKS5zZWNvbmQoNTkpLm1pbGxpc2Vjb25kKDApLnRvSVNPU3RyaW5nKClcclxuICAgICAgdmFsaWRNaW5EYXRlID0gZGF5anModGhpcy5taW5EYXRlKS5ob3VyKDApLm1pbnV0ZSgwIC0gMSkuc2Vjb25kKDApLm1pbGxpc2Vjb25kKDApLnRvSVNPU3RyaW5nKClcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kaXNhYmxlVmFsaWRhdGUpIHtcclxuICAgICAgdGhpcy5pbnZhbGlkTWVzc2FnZU9mZigpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodmFsaWRNYXhEYXRlICYmIChkYXlqcyh2YWx1ZSkuZGlmZihkYXlqcyh2YWxpZE1heERhdGUpKSA9PT0gMCkgJiYgIXRoaXMuZGlzYWJsZUluY2x1ZGVzKSB7XHJcbiAgICAgIHRoaXMuaW52YWxpZE1lc3NhZ2VPbign0JTQsNGC0LAg0Lgg0LLRgNC10LzRjyDQvtC60L7QvdGH0LDQvdC40Y8g0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINGA0LDQstC90LAg0LTQsNGC0LUg0Lgg0LLRgNC10LzQtdC90Lgg0L3QsNGH0LDQu9CwJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAodmFsaWRNYXhEYXRlICYmIChkYXlqcyh2YWx1ZSkuZGlmZihkYXlqcyh2YWxpZE1heERhdGUpKSA+IDApKSB7XHJcbiAgICAgIHRoaXMuaW52YWxpZE1lc3NhZ2VPbign0JTQsNGC0LAg0L7QutC+0L3Rh9Cw0L3QuNGPINC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCDRgNCw0L3RjNGI0LUg0LTQsNGC0Ysg0L3QsNGH0LDQu9CwJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAodmFsaWRNaW5EYXRlICYmIChkYXlqcyh2YWx1ZSkuZGlmZihkYXlqcyh2YWxpZE1pbkRhdGUpKSA9PT0gMCkgJiYgIXRoaXMuZGlzYWJsZUluY2x1ZGVzKSB7XHJcbiAgICAgIHRoaXMuaW52YWxpZE1lc3NhZ2VPbign0JTQsNGC0LAg0Lgg0LLRgNC10LzRjyDQvtC60L7QvdGH0LDQvdC40Y8g0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINGA0LDQstC90LAg0LTQsNGC0LUg0Lgg0LLRgNC10LzQtdC90Lgg0L3QsNGH0LDQu9CwJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAodmFsaWRNaW5EYXRlICYmIGRheWpzKHZhbHVlKS5kaWZmKGRheWpzKHZhbGlkTWluRGF0ZSkpIDwgMCkge1xyXG4gICAgICB0aGlzLmludmFsaWRNZXNzYWdlT24oJ9CU0LDRgtCwINC+0LrQvtC90YfQsNC90LjRjyDQvdC1INC80L7QttC10YIg0LHRi9GC0Ywg0YDQsNC90YzRiNC1INC00LDRgtGLINC90LDRh9Cw0LvQsCcpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmludmFsaWRNZXNzYWdlT2ZmKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHdyaXRlVmFsdWUob3V0c2lkZVZhbHVlOiBJbnB1dERhdGVUaW1lVmFsdWVUeXBlcykge1xyXG4gICAgaWYgKG91dHNpZGVWYWx1ZSkge1xyXG4gICAgICBpZiAodHlwZW9mIG91dHNpZGVWYWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gY2xlYW5EYXRlKG91dHNpZGVWYWx1ZSk7XHJcbiAgICAgICAgdGhpcy5kYXRlTW9kZWwgPSBkYXRlTW9kZWxWYWx1ZVBhcnNlKG91dHNpZGVWYWx1ZSwgdGhpcy50aW1lem9uZSk7XHJcbiAgICAgICAgdGhpcy50aW1lTW9kZWwgPSB0aW1lTW9kZWxWYWx1ZVBhcnNlKG91dHNpZGVWYWx1ZSwgdGhpcy50aW1lem9uZSk7XHJcblxyXG4gICAgICAgIHRoaXMuY2hlY2tpbmdJbnZhbGlkKG91dHNpZGVWYWx1ZSwgdGhpcy5tYXhEYXRlLCB0aGlzLm1pbkRhdGUpO1xyXG5cclxuICAgICAgICB0aGlzLmR0LnNlbGVjdERhdGUoZm9ybWF0dGluZ0Zyb21Nb2RlbHModGhpcy5kYXRlTW9kZWwsIHRoaXMudGltZU1vZGVsLCB0aGlzLnRpbWVwaWNrZXIpLnRvSVNPU3RyaW5nKCksIHtcclxuICAgICAgICAgIHVwZGF0ZVRpbWU6IHRoaXMudGltZXBpY2tlcixcclxuICAgICAgICAgIHNpbGVudDogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZHQuc2V0Vmlld0RhdGUoZm9ybWF0dGluZ0Zyb21Nb2RlbHModGhpcy5kYXRlTW9kZWwsIHRoaXMudGltZU1vZGVsLCB0aGlzLnRpbWVwaWNrZXIpLnRvSVNPU3RyaW5nKCkpO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvdXRzaWRlVmFsdWUgPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IG91dHNpZGVWYWx1ZS5tYXAoZGF0ZSA9PiBjbGVhbkRhdGUoZGF0ZSkpO1xyXG5cclxuICAgICAgICB0aGlzLmR0LnNlbGVjdERhdGUodGhpcy52YWx1ZSwge1xyXG4gICAgICAgICAgdXBkYXRlVGltZTogdGhpcy50aW1lcGlja2VyLFxyXG4gICAgICAgICAgc2lsZW50OiB0cnVlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLmR0KSB7XHJcbiAgICAgICAgdGhpcy5kdC5jbGVhcih7c2lsZW50OiB0cnVlfSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9ICcnO1xyXG4gICAgICAgIHRoaXMuZGF0ZU1vZGVsID0gZGF0ZU1vZGVsQ29uc3RhbnQ7XHJcbiAgICAgICAgdGhpcy50aW1lTW9kZWwgPSB0aW1lTW9kZWxDb25zdGFudDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgfTtcclxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHt9KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlVmFsdWUoaW5zaWRlVmFsdWU6IElucHV0RGF0ZVRpbWVWYWx1ZVR5cGVzKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gaW5zaWRlVmFsdWU7XHJcbiAgICB0aGlzLmNoYW5nZWQuZW1pdChpbnNpZGVWYWx1ZSk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoe3ZhbHVlOiBpbnNpZGVWYWx1ZSwgaWQ6IHRoaXMudXVpZH0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZShpbnNpZGVWYWx1ZSk7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQmx1cihldmVudDogRXZlbnQpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmJsdXJyZWQuZW1pdCh7dmFsdWU6IHRoaXMudmFsdWUsIGlkOiB0aGlzLnV1aWR9KTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cIm1yeC1pbnB1dC1kYXRlXCJcclxuICAgIFtjbGFzcy5tcngtaW5wdXQtZXJyb3JdPVwiaW52YWxpZCB8fCBpbm5lckludmFsaWRcIlxyXG4gICAgW2NsYXNzLm1yeC1pbnB1dC1yZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICA8bXJ4LWxhYmVsICpuZ0lmPVwidGltZUxhYmVsIHx8IGRhdGVMYWJlbFwiPnt7IGRhdGVMYWJlbCB9fTwvbXJ4LWxhYmVsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1kYXRlX193cmFwcGVyXCI+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgI2RhdGVJbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgYXV0b2NvbXBsZXRlPVwibm9wZVwiXHJcbiAgICAgICAgICBjbGFzcz1cIm1yeC1pbnB1dC1kYXRlX19pbnB1dCBtcngtaW5wdXQtZGF0ZV9fZGF0ZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGF0ZVBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgIFtuZ01vZGVsXT1cImdldERhdGVWYWx1ZVwiXHJcbiAgICAgICAgICBbbWFza109XCInMDAuMDAuMDAwMCAwMDptMCdcIlxyXG4gICAgICAgICAgW2xlYWRaZXJvRGF0ZVRpbWVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICBbdmFsaWRhdGlvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgW3JlYWRPbmx5XT1cIiFpc01hbnVhbElucHV0XCJcclxuICAgICAgICAgIChpbnB1dCk9XCJ1cGRhdGVEYXRlVmFsdWUoZGF0ZUlucHV0KVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2xpY2tUb0lucHV0KGRhdGVJbnB1dClcIlxyXG4gICAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cIiFkaXNhYmxlZFwiIGNsYXNzPVwibXJ4LWlucHV0LWRhdGVfX2ljb25zXCI+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jbG9zZVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc1ZpZXdDbGVhbkljb25cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja1RvSWNvbkNsZWFyKClcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5pY29uLWZvbnQtMTZdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmljb24tZm9udC0yNF09XCJzaXplID09PSAnbWVkaXVtJyB8fCBzaXplID09PSAnbGFyZ2UnXCJcclxuICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvbiBpY29uLWNhbGVuZGFyXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrVG9JY29uQ2FsZW5kYXIoKVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5pY29uLWZvbnQtMTZdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXHJcbiAgICAgICAgICAgIFtjbGFzcy5pY29uLWZvbnQtMjRdPVwic2l6ZSA9PT0gJ21lZGl1bScgfHwgc2l6ZSA9PT0gJ2xhcmdlJ1wiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgICA8bXJ4LWVycm9yLW1lc3NhZ2VcclxuICAgICAgICAqbmdJZj1cImludmFsaWQ7IGVsc2UgaW5uZXJJbnZhbGlkVGVtcGxhdGVcIlxyXG4gICAgICAgIFtpbnZhbGlkTWVzc2FnZV09XCJpbnZhbGlkTWVzc2FnZVwiXHJcbiAgICA+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNpbm5lckludmFsaWRUZW1wbGF0ZT5cclxuICAgIDxtcngtZXJyb3ItbWVzc2FnZVxyXG4gICAgICAgICpuZ0lmPVwiaW5uZXJJbnZhbGlkXCJcclxuICAgICAgICBbaW52YWxpZE1lc3NhZ2VdPVwiaW5uZXJJbnZhbGlkTWVzc2FnZVwiXHJcbiAgICA+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bXJ4LXNhdmUtc3RhdGUgW2lkXT1cInV1aWRcIiBbZmllbGRzXT1cImZpZWxkc1wiPjwvbXJ4LXNhdmUtc3RhdGU+XHJcbjwvZGl2PlxyXG5cclxuXHJcblxyXG4iXX0=
@@ -9976,23 +9976,33 @@ class InputDateTimeComponent {
9976
9976
  }
9977
9977
  }
9978
9978
  checkingInvalid(value, maxDate, minDate) {
9979
+ let validMaxDate = '';
9980
+ let validMinDate = '';
9981
+ if (this.timepicker) {
9982
+ validMaxDate = this.maxDate;
9983
+ validMinDate = this.minDate;
9984
+ }
9985
+ else {
9986
+ validMaxDate = dayjs(this.maxDate).hour(23).minute(59 + 1).second(59).millisecond(0).toISOString();
9987
+ validMinDate = dayjs(this.minDate).hour(0).minute(0 - 1).second(0).millisecond(0).toISOString();
9988
+ }
9979
9989
  if (this.disableValidate) {
9980
9990
  this.invalidMessageOff();
9981
9991
  return true;
9982
9992
  }
9983
- if (maxDate && (dayjs(value).diff(dayjs(maxDate)) === 0) && !this.disableIncludes) {
9993
+ if (validMaxDate && (dayjs(value).diff(dayjs(validMaxDate)) === 0) && !this.disableIncludes) {
9984
9994
  this.invalidMessageOn('Дата и время окончания не может быть равна дате и времени начала');
9985
9995
  return false;
9986
9996
  }
9987
- else if (maxDate && (dayjs(value).diff(dayjs(maxDate)) > 0)) {
9997
+ else if (validMaxDate && (dayjs(value).diff(dayjs(validMaxDate)) > 0)) {
9988
9998
  this.invalidMessageOn('Дата окончания не может быть раньше даты начала');
9989
9999
  return false;
9990
10000
  }
9991
- else if (minDate && (dayjs(value).diff(dayjs(minDate)) === 0) && !this.disableIncludes) {
10001
+ else if (validMinDate && (dayjs(value).diff(dayjs(validMinDate)) === 0) && !this.disableIncludes) {
9992
10002
  this.invalidMessageOn('Дата и время окончания не может быть равна дате и времени начала');
9993
10003
  return false;
9994
10004
  }
9995
- else if (minDate && dayjs(value).diff(dayjs(minDate)) < 0) {
10005
+ else if (validMinDate && dayjs(value).diff(dayjs(validMinDate)) < 0) {
9996
10006
  this.invalidMessageOn('Дата окончания не может быть раньше даты начала');
9997
10007
  return false;
9998
10008
  }