@acorex/components 3.0.48 → 3.0.53

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.
Files changed (33) hide show
  1. package/acorex-components.metadata.json +1 -1
  2. package/bundles/acorex-components.umd.js +26 -12
  3. package/bundles/acorex-components.umd.js.map +1 -1
  4. package/bundles/acorex-components.umd.min.js +1 -1
  5. package/bundles/acorex-components.umd.min.js.map +1 -1
  6. package/esm2015/lib/base/element.class.js +9 -1
  7. package/esm2015/lib/calendar/calendar-box/calendar-box.component.js +3 -3
  8. package/esm2015/lib/date-picker/date-picker.component.js +3 -2
  9. package/esm2015/lib/dropdown/dropdown.component.js +3 -2
  10. package/esm2015/lib/menu/menu2.component.js +1 -1
  11. package/esm2015/lib/number-box/number-box.component.js +2 -2
  12. package/esm2015/lib/password-box/password-box.component.js +2 -2
  13. package/esm2015/lib/query-builder/query-builder-rule.component.js +5 -1
  14. package/esm2015/lib/query-builder/query-builder.service.js +4 -4
  15. package/esm2015/lib/textarea/textarea.component.js +2 -2
  16. package/esm2015/lib/textbox/textbox.component.js +2 -2
  17. package/esm5/lib/base/element.class.js +9 -1
  18. package/esm5/lib/calendar/calendar-box/calendar-box.component.js +3 -3
  19. package/esm5/lib/date-picker/date-picker.component.js +3 -2
  20. package/esm5/lib/dropdown/dropdown.component.js +3 -2
  21. package/esm5/lib/menu/menu2.component.js +1 -1
  22. package/esm5/lib/number-box/number-box.component.js +2 -2
  23. package/esm5/lib/password-box/password-box.component.js +2 -2
  24. package/esm5/lib/query-builder/query-builder-rule.component.js +5 -1
  25. package/esm5/lib/query-builder/query-builder.service.js +4 -4
  26. package/esm5/lib/textarea/textarea.component.js +2 -2
  27. package/esm5/lib/textbox/textbox.component.js +2 -2
  28. package/fesm2015/acorex-components.js +26 -12
  29. package/fesm2015/acorex-components.js.map +1 -1
  30. package/fesm5/acorex-components.js +26 -12
  31. package/fesm5/acorex-components.js.map +1 -1
  32. package/lib/base/element.class.d.ts +2 -0
  33. package/package.json +1 -1
@@ -233,6 +233,14 @@ __decorate([
233
233
  Input(),
234
234
  __metadata("design:type", String)
235
235
  ], AXBaseTextComponent.prototype, "placeholder", void 0);
236
+ __decorate([
237
+ Input(),
238
+ __metadata("design:type", String)
239
+ ], AXBaseTextComponent.prototype, "autocomplete", void 0);
240
+ __decorate([
241
+ Input(),
242
+ __metadata("design:type", String)
243
+ ], AXBaseTextComponent.prototype, "name", void 0);
236
244
  __decorate([
237
245
  Output(),
238
246
  __metadata("design:type", EventEmitter)
@@ -317,4 +325,4 @@ __decorate([
317
325
  Input(),
318
326
  __metadata("design:type", Boolean)
319
327
  ], AXBaseDropdownComponent.prototype, "showDropDownButton", void 0);
320
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9iYXNlL2VsZW1lbnQuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBcUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUF5QixZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBd0IsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJcEUsTUFBTSxPQUFnQixlQUFlO0lBR25DO1FBREEsUUFBRyxHQUFXLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUVsQyxDQUFDO0NBQ0Y7QUFKVTtJQUFSLEtBQUssRUFBRTs7aURBQWtCO0FBTzVCLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxZQUFpQjtDQUU1RDtBQTJCRCxNQUFNLE9BQWdCLHNCQUF1QixTQUFRLGVBQWU7SUFBcEU7O1FBRVUsaUJBQVksR0FBVyxPQUFPLENBQUM7UUFNdkMsYUFBUSxHQUFXLENBQUMsQ0FBQztJQThFdkIsQ0FBQztJQTVFVyxjQUFjLENBQ3RCLFVBQXNCLEVBQ3RCLFVBQWtCLEVBQ2xCLFVBQXdCO1FBRXhCLElBQUksQ0FBQyxlQUFlLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQztRQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FB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QUFFOzs7Z0RBR1A7QUE0REgsTUFBTSxPQUFnQixxQkFBc0IsU0FBUSxlQUFlO0lBQW5FOztRQU1FLFVBQUssR0FBMEMsSUFBSSxZQUFZLEVBQTJCLENBQUM7UUFNM0YsYUFBUSxHQUFXLENBQUMsQ0FBQztJQUV2QixDQUFDO0NBQUE7QUFYQztJQURDLEtBQUssRUFBRTs7dURBQ1U7QUFHbEI7SUFEQyxNQUFNLEVBQUU7OEJBQ0YsWUFBWTtvREFBd0U7QUFHM0Y7SUFEQyxLQUFLLEVBQUU7O21EQUNZO0FBR3BCO0lBREMsS0FBSyxFQUFFOzt1REFDYTtBQUl2QixNQUFNLE9BQWdCLHVCQUF3QixTQUFRLGVBQWU7SUFBckU7O1FBU0UsY0FBUyxHQUFZLElBQUksQ0FBQztRQUcxQixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBR3JCLHVCQUFrQixHQUFZLElBQUksQ0FBQztJQUlyQyxDQUFDO0NBQUE7QUFoQkM7SUFEQyxLQUFLLEVBQUU7O3lEQUNVO0FBR2xCO0lBREMsS0FBSyxFQUFFOztxREFDWTtBQUdwQjtJQURDLEtBQUssRUFBRTs7MERBQ2tCO0FBRzFCO0lBREMsS0FBSyxFQUFFOzt5REFDYTtBQUdyQjtJQURDLEtBQUssRUFBRTs7bUVBQzJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3RvclJlZiwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBDb250ZW50Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhWYWxpZGF0aW9uQ29tcG9uZW50LCBBWFZhbGlkYXRpb24gfSBmcm9tICcuLi92YWxpZGF0aW9uL3ZhbGlkYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi5jbGFzcyc7XHJcbmltcG9ydCB7IEFYSHRtbFV0aWwgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBBWEV2ZW50LCBBWEh0bWxFdmVudCwgQVhWYWx1ZUV2ZW50IH0gZnJvbSAnLi9ldmVudHMuY2xhc3MnO1xyXG5cclxuZXhwb3J0IHR5cGUgQVhFbGVtZW50U2l6ZSA9ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYQmFzZUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgY3NzQ2xhc3M6IHN0cmluZztcclxuICB1aWQ6IHN0cmluZyA9IEFYSHRtbFV0aWwuZ2V0VUlEKCk7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFYQmFzZUlucHV0Q2hhbmdlRXZlbnQgZXh0ZW5kcyBBWFZhbHVlRXZlbnQ8YW55PiB7XHJcbiAgaXNVc2VyQ2hhbmdlPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWEJhc2VTaXphYmxlQ29tcG9uZW50IHtcclxuICBzaXplOiBBWEVsZW1lbnRTaXplO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYQmFzZUludGVyYWN0aXZlQ29tcG9uZW50IHtcclxuICBkaXNhYmxlZDogYm9vbGVhbjtcclxuICB0YWJJbmRleDogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYQmFzZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlSW50ZXJhY3RpdmVDb21wb25lbnQge1xyXG4gIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gIGZvY3VzKCk6IHZvaWQ7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYQmFzZVZhbHVlQ29tcG9uZW50PFQ+IGV4dGVuZHMgQVhCYXNlSW5wdXRDb21wb25lbnQge1xyXG4gIG9uVmFsdWVDaGFuZ2VkPzogRXZlbnRFbWl0dGVyPEFYVmFsdWVFdmVudDxUPj47XHJcbiAgdmFsdWVDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8VD47XHJcbiAgdmFsdWU6IFQ7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhCYXNlQ2xpY2thYmxlQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlSW50ZXJhY3RpdmVDb21wb25lbnQge1xyXG4gIGNsaWNrOiBFdmVudEVtaXR0ZXI8QVhIdG1sRXZlbnQ8TW91c2VFdmVudD4+O1xyXG59XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCBleHRlbmRzIEFYQmFzZUNvbXBvbmVudCB7XHJcblxyXG4gIHByaXZhdGUgX192YWx1ZUZpZWxkOiBzdHJpbmcgPSAndmFsdWUnO1xyXG4gIHByaXZhdGUgX19uYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcclxuICBwcml2YXRlIF9fdmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uO1xyXG5cclxuXHJcbiAgQElucHV0KClcclxuICB0YWJJbmRleDogbnVtYmVyID0gMDtcclxuXHJcbiAgcHJvdGVjdGVkIGluaXRWYWxpZGF0aW9uKFxyXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHZhbHVlRmllbGQ6IHN0cmluZyxcclxuICAgIHZhbGlkYXRpb246IEFYVmFsaWRhdGlvblxyXG4gICkge1xyXG4gICAgdGhpcy5fX25hdGl2ZUVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB0aGlzLl9fdmFsdWVGaWVsZCA9IHZhbHVlRmllbGQ7XHJcbiAgICB0aGlzLl9fdmFsaWRhdGlvbiA9IHZhbGlkYXRpb247XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXNbdGhpcy5fX3ZhbHVlRmllbGRdXHJcbiAgICBpZiAoKCFBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZSkgfHwgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDApKVxyXG4gICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgdmFsaWRhdGlvbigpIHtcclxuICAgIHJldHVybiB0aGlzLl9fdmFsaWRhdGlvbjtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKCk6IFByb21pc2U8QVhWYWxpZGF0aW9uUnVsZVJlc3VsdD4ge1xyXG4gICAgaWYgKHRoaXMuX192YWxpZGF0aW9uICE9PSB1bmRlZmluZWQgJiYgKHRoaXMuX192YWxpZGF0aW9uLnJ1bGVzIHx8IFtdKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX192YWxpZGF0aW9uLnZhbGlkYXRlKHRoaXNbdGhpcy5fX3ZhbHVlRmllbGRdKTtcclxuICAgICAgcmVzdWx0LnRoZW4oYyA9PiB7XHJcbiAgICAgICAgaWYgKGMucmVzdWx0KSB7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyVmFsaWRhdGlvblN0eWxlKHRoaXMuX19uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmFwcGx5VmFsaWRhdGlvblN0eWxlKHRoaXMuX19uYXRpdmVFbGVtZW50LCBjKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyByZXN1bHQ6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHJvdGVjdGVkIGNsZWFyVmFsaWRhdGlvblN0eWxlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjbGVhcjogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICBpZiAodGhpcy5fX3ZhbGlkYXRpb24gIT09IHVuZGVmaW5lZCAmJiAodGhpcy5fX3ZhbGlkYXRpb24ucnVsZXMgfHwgW10pLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgZm9ybUdyb3VwID0gZWxlbWVudC5jbG9zZXN0KCcuZm9ybS1ncm91cCcpO1xyXG4gICAgICBjb25zdCBmb3JtSXRlbSA9IGZvcm1Hcm91cD8ucXVlcnlTZWxlY3RvcignLmZvcm0taXRlbScpIHx8IGVsZW1lbnQuY2xvc2VzdCgnLmZvcm0taXRlbScpIHx8IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZvcm0taXRlbScpOztcclxuICAgICAgY29uc3QgbGFiZWwgPSBmb3JtR3JvdXA/LnF1ZXJ5U2VsZWN0b3IoJy5mb3JtLWdyb3VwLWxhYmVsJyk7XHJcbiAgICAgIGNvbnN0IHBhcmVudCA9IGZvcm1JdGVtPy5wYXJlbnRFbGVtZW50IHx8IGVsZW1lbnQucGFyZW50RWxlbWVudDtcclxuXHJcbiAgICAgIGZvcm1JdGVtPy5jbGFzc0xpc3QucmVtb3ZlKCdzdWNjZXNzLXN0YXRlJyk7XHJcbiAgICAgIGZvcm1JdGVtPy5jbGFzc0xpc3QucmVtb3ZlKCdlcnJvci1zdGF0ZScpO1xyXG4gICAgICAvL2Zvcm1JdGVtPy5jbGFzc0xpc3QucmVtb3ZlKCdyZXF1aXJlZC1zdGF0ZScpO1xyXG4gICAgICBpZiAoIWNsZWFyKSB7XHJcbiAgICAgICAgZm9ybUl0ZW0/LmNsYXNzTGlzdC5hZGQoJ3N1Y2Nlc3Mtc3RhdGUnKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBsYWJlbD8uY2xhc3NMaXN0LnJlbW92ZSgnZXJyb3ItdGV4dCcpO1xyXG4gICAgICBpZiAocGFyZW50LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4uZXJyb3ItdGV4dCcpKSB7XHJcbiAgICAgICAgcGFyZW50LnJlbW92ZUNoaWxkKHBhcmVudC5xdWVyeVNlbGVjdG9yKCdzcGFuLmVycm9yLXRleHQnKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhcHBseVZhbGlkYXRpb25TdHlsZShlbGVtZW50OiBIVE1MRWxlbWVudCwgdjogQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX192YWxpZGF0aW9uICE9PSB1bmRlZmluZWQgJiYgKHRoaXMuX192YWxpZGF0aW9uLnJ1bGVzIHx8IFtdKS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGZvcm1Hcm91cCA9IGVsZW1lbnQuY2xvc2VzdCgnLmZvcm0tZ3JvdXAnKTtcclxuICAgICAgY29uc3QgZm9ybUl0ZW0gPSBmb3JtR3JvdXA/LnF1ZXJ5U2VsZWN0b3IoJy5mb3JtLWl0ZW0nKSB8fCBlbGVtZW50LmNsb3Nlc3QoJy5mb3JtLWl0ZW0nKSB8fCBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mb3JtLWl0ZW0nKTtcclxuICAgICAgY29uc3QgbGFiZWwgPSBmb3JtR3JvdXA/LnF1ZXJ5U2VsZWN0b3IoJy5mb3JtLWdyb3VwLWxhYmVsJyk7XHJcbiAgICAgIGNvbnN0IHBhcmVudCA9IGZvcm1JdGVtPy5wYXJlbnRFbGVtZW50IHx8IGVsZW1lbnQucGFyZW50RWxlbWVudDtcclxuICAgICAgZm9ybUl0ZW0/LmNsYXNzTGlzdC5hZGQoJ2Vycm9yLXN0YXRlJyk7XHJcbiAgICAgIGZvcm1JdGVtPy5jbGFzc0xpc3QucmVtb3ZlKCdzdWNjZXNzLXN0YXRlJyk7XHJcbiAgICAgIGlmIChwYXJlbnQucXVlcnlTZWxlY3Rvcignc3Bhbi5lcnJvci10ZXh0JykpIHtcclxuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQocGFyZW50LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4uZXJyb3ItdGV4dCcpKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5fX3ZhbGlkYXRpb24uc2hvd01lc3NhZ2UpIHtcclxuICAgICAgICBjb25zdCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xyXG4gICAgICAgIHNwYW4uaW5uZXJUZXh0ID0gdi5tZXNzYWdlO1xyXG4gICAgICAgIHNwYW4uY2xhc3NMaXN0LmFkZCgnYXgnLCAnZXJyb3ItdGV4dCcpO1xyXG4gICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChzcGFuKTtcclxuICAgICAgfVxyXG4gICAgICAvLyBsYWJlbD8uY2xhc3NMaXN0LmFkZCgnZXJyb3ItdGV4dCcpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFYQmFzZVRleHRDb21wb25lbnQgZXh0ZW5kcyBBWFZhbGlkYXRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCwgQVhCYXNlVmFsdWVDb21wb25lbnQ8c3RyaW5nPiB7XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGlmICh0aGlzLmlucHV0KSB7XHJcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5vbmtleXVwID0gKGUpID0+IHtcclxuICAgICAgICB0aGlzLnVzZXJDaGFuZ2UgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSAoZS50YXJnZXQgYXMgYW55KS52YWx1ZTtcclxuICAgICAgICB0aGlzLm9ua2V5LmVtaXQoZSk7XHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5vbmtleWRvd24gPSAoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlckNoYW5nZSA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMudmFsdWUgPSAoZS50YXJnZXQgYXMgYW55KS52YWx1ZTtcclxuICAgICAgICB0aGlzLm9ua2V5LmVtaXQoZSk7XHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5vbmtleXByZXNzID0gKGUpID0+IHtcclxuICAgICAgICB0aGlzLnVzZXJDaGFuZ2UgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLnZhbHVlID0gKGUudGFyZ2V0IGFzIGFueSkudmFsdWU7XHJcbiAgICAgICAgdGhpcy5vbmtleS5lbWl0KGUpO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdFZhbGlkYXRpb24odGhpcy5yZWYsICd2YWx1ZScsIHRoaXMudmFsaWRhdGlvbik7XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KClcclxuICB0YWJJbmRleDogbnVtYmVyID0gMDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIEBDb250ZW50Q2hpbGQoJ2lucHV0JywgeyBzdGF0aWM6IHRydWUgfSlcclxuICBpbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgQENvbnRlbnRDaGlsZChBWFZhbGlkYXRpb24sIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgcHJpdmF0ZSBfY29udGVudFZhbGlkYXRpb246IEFYVmFsaWRhdGlvbjtcclxuXHJcbiAgcHJpdmF0ZSBfdmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgdmFsaWRhdGlvbigpOiBBWFZhbGlkYXRpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRpb24gPyB0aGlzLl92YWxpZGF0aW9uIDogdGhpcy5fY29udGVudFZhbGlkYXRpb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0IHZhbGlkYXRpb24odjogQVhWYWxpZGF0aW9uKSB7XHJcbiAgICB0aGlzLl92YWxpZGF0aW9uID0gdjtcclxuICAgIHRoaXMuaW5pdFZhbGlkYXRpb24odGhpcy5yZWYsICd2YWx1ZScsIHYpO1xyXG4gIH1cclxuXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRleHRBbGlnbjogJ3JpZ2h0JyB8ICdsZWZ0JyB8IG51bGwgPSBudWxsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNpemU6ICd4cycgfCAnc20nIHwgJ21kJyB8ICdsZycgfCAneGwnID0gJ21kJztcclxuXHJcbiAgQElucHV0KClcclxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG5cclxuICB1c2VyQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcm90ZWN0ZWQgcmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9ua2V5OiBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvbkJsdXI6IEV2ZW50RW1pdHRlcjxBWEh0bWxFdmVudDxFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEh0bWxFdmVudDxFdmVudD4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvbkZvY3VzOiBFdmVudEVtaXR0ZXI8QVhIdG1sRXZlbnQ8RXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhIdG1sRXZlbnQ8RXZlbnQ+PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25WYWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWEJhc2VJbnB1dENoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhCYXNlSW5wdXRDaGFuZ2VFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIGljb246IHN0cmluZyA9ICcnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGFsbG93Q2xlYXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICB9XHJcbiAgcHVibGljIHNldCB2YWx1ZSh2OiBzdHJpbmcpIHtcclxuICAgIGlmICh2ICE9PSB0aGlzLl92YWx1ZSkge1xyXG4gICAgICBjb25zdCBvbGQgPSB0aGlzLl92YWx1ZTtcclxuICAgICAgdGhpcy5fdmFsdWUgPSB2O1xyXG5cclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHYpO1xyXG4gICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQoe1xyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICB2YWx1ZTogdixcclxuICAgICAgICBvbGRWYWx1ZTogb2xkLFxyXG4gICAgICAgIGlzVXNlckNoYW5nZTogdGhpcy51c2VyQ2hhbmdlXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnVzZXJDaGFuZ2UgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jbGVhclZhbGlkYXRpb25TdHlsZSh0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQsIHYgPyBmYWxzZSA6IHRydWUpO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmb2N1cygpIHtcclxuICAgIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoKSB7XHJcbiAgICB0aGlzLnVzZXJDaGFuZ2UgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gbnVsbDtcclxuICB9XHJcblxyXG4gIGlzRm9jdXNlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBzZXRUZXh0QWxpZ24oKSB7XHJcbiAgICBpZiAodGhpcy50ZXh0QWxpZ24gPT09ICdsZWZ0Jykge1xyXG4gICAgICByZXR1cm4gJ3RleHQtbGVmdCc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy50ZXh0QWxpZ24gPT09ICdyaWdodCcpIHtcclxuICAgICAgcmV0dXJuICd0ZXh0LXJpZ2h0JztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUlucHV0Qmx1cihlOiBFdmVudCkge1xyXG4gICAgdGhpcy5vbkJsdXIuZW1pdCh7XHJcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgIGh0bWxFdmVudDogZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVJbnB1dEZvY3VzKGU6IEV2ZW50KSB7XHJcbiAgICB0aGlzLm9uRm9jdXMuZW1pdCh7XHJcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgIGh0bWxFdmVudDogZVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhCYXNlQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQVhCYXNlQ2xpY2thYmxlQ29tcG9uZW50LCBBWEJhc2VTaXphYmxlQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KClcclxuICBkaXNhYmxlZDogYm9vbGVhbjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgY2xpY2s6IEV2ZW50RW1pdHRlcjxBWEh0bWxFdmVudDxNb3VzZUV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYSHRtbEV2ZW50PE1vdXNlRXZlbnQ+PigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNpemU6IEFYRWxlbWVudFNpemU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGFiSW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG59XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhCYXNlRHJvcGRvd25Db21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBWEJhc2VJbnRlcmFjdGl2ZUNvbXBvbmVudCwgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBmaXRQYXJlbnQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRhYkluZGV4OiBudW1iZXIgPSAwO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dEcm9wRG93bkJ1dHRvbjogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGFic3RyYWN0IGNsb3NlKCk7XHJcbiAgYWJzdHJhY3Qgb3BlbigpO1xyXG59XHJcbiJdfQ==
328
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9iYXNlL2VsZW1lbnQuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBcUIsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUF5QixZQUFZLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUV6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBd0IsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJcEUsTUFBTSxPQUFnQixlQUFlO0lBR25DO1FBREEsUUFBRyxHQUFXLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUVsQyxDQUFDO0NBQ0Y7QUFKVTtJQUFSLEtBQUssRUFBRTs7aURBQWtCO0FBTzVCLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxZQUFpQjtDQUU1RDtBQTJCRCxNQUFNLE9BQWdCLHNCQUF1QixTQUFRLGVBQWU7SUFBcEU7O1FBRVUsaUJBQVksR0FBVyxPQUFPLENBQUM7UUFNdkMsYUFBUSxHQUFXLENBQUMsQ0FBQztJQThFdkIsQ0FBQztJQTVFVyxjQUFjLENBQ3RCLFVBQXNCLEVBQ3RCLFVBQWtCLEVBQ2xCLFVBQXdCO1FBRXhCLElBQUksQ0FBQyxlQUFlLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQztRQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBQ3JDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2hGLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDakYsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ25FLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFO29CQUNaLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7aUJBQ2pEO3FCQUNJO29CQUNILElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUNwRDtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxNQUFNLENBQUM7U0FDZjthQUNJO1lBQ0gsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDO0lBR1Msb0JBQW9CLENBQUMsT0FBb0IsRUFBRSxRQUFpQixLQUFLOztRQUN6RSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqRixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pELE1BQU0sUUFBUSxHQUFHLE9BQUEsU0FBUywwQ0FBRSxhQUFhLENBQUMsWUFBWSxNQUFLLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUFBLENBQUM7WUFDakksTUFBTSxLQUFLLFNBQUcsU0FBUywwQ0FBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUM1RCxNQUFNLE1BQU0sR0FBRyxPQUFBLFFBQVEsMENBQUUsYUFBYSxLQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUM7WUFFaEUsTUFBQSxRQUFRLDBDQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFO1lBQzVDLE1BQUEsUUFBUSwwQ0FBRSxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRTtZQUMxQywrQ0FBK0M7WUFDL0MsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDVixNQUFBLFFBQVEsMENBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUU7YUFDMUM7WUFDRCx5Q0FBeUM7WUFDekMsSUFBSSxNQUFNLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7Z0JBQzNDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7YUFDN0Q7U0FDRjtJQUNILENBQUM7SUFFUyxvQkFBb0IsQ0FBQyxPQUFvQixFQUFFLENBQXlCOztRQUM1RSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqRixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pELE1BQU0sUUFBUSxHQUFHLE9BQUEsU0FBUywwQ0FBRSxhQUFhLENBQUMsWUFBWSxNQUFLLE9BQU8sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNoSSxNQUFNLEtBQUssU0FBRyxTQUFTLDBDQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzVELE1BQU0sTUFBTSxHQUFHLE9BQUEsUUFBUSwwQ0FBRSxhQUFhLEtBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUNoRSxNQUFBLFFBQVEsMENBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUU7WUFDdkMsTUFBQSxRQUFRLDBDQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFO1lBQzVDLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO2dCQUMzQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO2FBQzdEO1lBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRTtnQkFDakMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBQ3ZDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUI7WUFDRCxzQ0FBc0M7U0FDdkM7SUFDSCxDQUFDO0NBQ0Y7QUE5RUM7SUFEQyxLQUFLLEVBQUU7O3dEQUNhO0FBbUZ2QixNQUFNLE9BQWdCLG1CQUFvQixTQUFRLHNCQUFzQjtJQTZFdEUsWUFBc0IsR0FBc0IsRUFBWSxHQUFlO1FBQ3JFLEtBQUssRUFBRSxDQUFDO1FBRFksUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFBWSxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBOUN2RSxhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBdUJyQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsY0FBUyxHQUE0QixJQUFJLENBQUM7UUFHMUMsU0FBSSxHQUFxQyxJQUFJLENBQUM7UUFZOUMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQU9yQixVQUFLLEdBQWdDLElBQUksWUFBWSxFQUFpQixDQUFDO1FBR3ZFLFdBQU0sR0FBcUMsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFHbEYsWUFBTyxHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUduRixtQkFBYyxHQUF5QyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUd6RyxnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBSXpELFNBQUksR0FBVyxFQUFFLENBQUM7UUFHbEIsZUFBVSxHQUFZLEtBQUssQ0FBQztJQXRCNUIsQ0FBQztJQTdFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsS0FBSyxHQUFJLENBQUMsQ0FBQyxNQUFjLENBQUMsS0FBSyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQixDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBRXZCLElBQUksQ0FBQyxLQUFLLEdBQUksQ0FBQyxDQUFDLE1BQWMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLENBQUMsQ0FBQztZQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUMxQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztnQkFFdkIsSUFBSSxDQUFDLEtBQUssR0FBSSxDQUFDLENBQUMsTUFBYyxDQUFDLEtBQUssQ0FBQztnQkFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsQ0FBQyxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBR0Qsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFnQkQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ3ZFLENBQUM7SUFFRCxJQUFXLFVBQVUsQ0FBQyxDQUFlO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQXVERCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQVcsS0FBSyxDQUFDLENBQVM7UUFDeEIsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBRWhCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUN2QixTQUFTLEVBQUUsSUFBSTtnQkFDZixLQUFLLEVBQUUsQ0FBQztnQkFDUixRQUFRLEVBQUUsR0FBRztnQkFDYixZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVU7YUFDOUIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzFCO0lBQ0gsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBRXZCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDeEMsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxLQUFLLFFBQVEsQ0FBQyxhQUFhLENBQUM7SUFDN0QsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxFQUFFO1lBQzdCLE9BQU8sV0FBVyxDQUFDO1NBQ3BCO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE9BQU8sRUFBRTtZQUM5QixPQUFPLFlBQVksQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsQ0FBUTtRQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNmLFNBQVMsRUFBRSxJQUFJO1lBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTtZQUNuQyxTQUFTLEVBQUUsQ0FBQztTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxDQUFRO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ2hCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsV0FBVyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYTtZQUNuQyxTQUFTLEVBQUUsQ0FBQztTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXRJQztJQURDLEtBQUssRUFBRTs7cURBQ2E7QUFJckI7SUFGQyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3BDLFlBQVksQ0FBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7OEJBQ2pDLFVBQVU7a0RBQW1CO0FBR3BDO0lBREMsWUFBWSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQzs4QkFDakIsWUFBWTsrREFBQztBQUt6QztJQURDLEtBQUssRUFBRTs4QkFLaUIsWUFBWTtxQ0FBWixZQUFZO3FEQUZwQztBQVNEO0lBREMsS0FBSyxFQUFFOztxREFDa0I7QUFHMUI7SUFEQyxLQUFLLEVBQUU7O3FEQUNrQjtBQUcxQjtJQURDLEtBQUssRUFBRTs7c0RBQ2tDO0FBRzFDO0lBREMsS0FBSyxFQUFFOztpREFDc0M7QUFHOUM7SUFEQyxLQUFLLEVBQUU7O3dEQUNZO0FBSXBCO0lBREMsS0FBSyxFQUFFOzt5REFDbUI7QUFHM0I7SUFEQyxLQUFLLEVBQUU7O2lEQUNLO0FBU2I7SUFEQyxNQUFNLEVBQUU7OEJBQ0ssWUFBWTtrREFBb0Q7QUFHOUU7SUFEQyxNQUFNLEVBQUU7OEJBQ00sWUFBWTttREFBOEQ7QUFHekY7SUFEQyxNQUFNLEVBQUU7OEJBQ08sWUFBWTtvREFBOEQ7QUFHMUY7SUFEQyxNQUFNLEVBQUU7OEJBQ2MsWUFBWTsyREFBc0U7QUFHekc7SUFEQyxNQUFNLEVBQUU7OEJBQ0ksWUFBWTt3REFBZ0M7QUFJekQ7SUFEQyxLQUFLLEVBQUU7O2lEQUNVO0FBR2xCO0lBREMsS0FBSyxFQUFFOzt1REFDb0I7QUFJNUI7SUFEQyxLQUFLLEVBQUU7OztnREFHUDtBQTRESCxNQUFNLE9BQWdCLHFCQUFzQixTQUFRLGVBQWU7SUFBbkU7O1FBTUUsVUFBSyxHQUEwQyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQU0zRixhQUFRLEdBQVcsQ0FBQyxDQUFDO0lBRXZCLENBQUM7Q0FBQTtBQVhDO0lBREMsS0FBSyxFQUFFOzt1REFDVTtBQUdsQjtJQURDLE1BQU0sRUFBRTs4QkFDRixZQUFZO29EQUF3RTtBQUczRjtJQURDLEtBQUssRUFBRTs7bURBQ1k7QUFHcEI7SUFEQyxLQUFLLEVBQUU7O3VEQUNhO0FBSXZCLE1BQU0sT0FBZ0IsdUJBQXdCLFNBQVEsZUFBZTtJQUFyRTs7UUFTRSxjQUFTLEdBQVksSUFBSSxDQUFDO1FBRzFCLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFHckIsdUJBQWtCLEdBQVksSUFBSSxDQUFDO0lBSXJDLENBQUM7Q0FBQTtBQWhCQztJQURDLEtBQUssRUFBRTs7eURBQ1U7QUFHbEI7SUFEQyxLQUFLLEVBQUU7O3FEQUNZO0FBR3BCO0lBREMsS0FBSyxFQUFFOzswREFDa0I7QUFHMUI7SUFEQyxLQUFLLEVBQUU7O3lEQUNhO0FBR3JCO0lBREMsS0FBSyxFQUFFOzttRUFDMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Db21wb25lbnQsIEFYVmFsaWRhdGlvbiB9IGZyb20gJy4uL3ZhbGlkYXRpb24vdmFsaWRhdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IH0gZnJvbSAnLi4vdmFsaWRhdGlvbi92YWxpZGF0aW9uLmNsYXNzJztcclxuaW1wb3J0IHsgQVhIdG1sVXRpbCB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcbmltcG9ydCB7IEFYRXZlbnQsIEFYSHRtbEV2ZW50LCBBWFZhbHVlRXZlbnQgfSBmcm9tICcuL2V2ZW50cy5jbGFzcyc7XHJcblxyXG5leHBvcnQgdHlwZSBBWEVsZW1lbnRTaXplID0gJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhCYXNlQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjc3NDbGFzczogc3RyaW5nO1xyXG4gIHVpZDogc3RyaW5nID0gQVhIdG1sVXRpbC5nZXRVSUQoKTtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQVhCYXNlSW5wdXRDaGFuZ2VFdmVudCBleHRlbmRzIEFYVmFsdWVFdmVudDxhbnk+IHtcclxuICBpc1VzZXJDaGFuZ2U/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYQmFzZVNpemFibGVDb21wb25lbnQge1xyXG4gIHNpemU6IEFYRWxlbWVudFNpemU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhCYXNlSW50ZXJhY3RpdmVDb21wb25lbnQge1xyXG4gIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIHRhYkluZGV4OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhCYXNlSW5wdXRDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VJbnRlcmFjdGl2ZUNvbXBvbmVudCB7XHJcbiAgcmVhZG9ubHk6IGJvb2xlYW47XHJcbiAgZm9jdXMoKTogdm9pZDtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVhCYXNlVmFsdWVDb21wb25lbnQ8VD4gZXh0ZW5kcyBBWEJhc2VJbnB1dENvbXBvbmVudCB7XHJcbiAgb25WYWx1ZUNoYW5nZWQ/OiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PFQ+PjtcclxuICB2YWx1ZUNoYW5nZT86IEV2ZW50RW1pdHRlcjxUPjtcclxuICB2YWx1ZTogVDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWEJhc2VDbGlja2FibGVDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VJbnRlcmFjdGl2ZUNvbXBvbmVudCB7XHJcbiAgY2xpY2s6IEV2ZW50RW1pdHRlcjxBWEh0bWxFdmVudDxNb3VzZUV2ZW50Pj47XHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWFZhbGlkYXRhYmxlQ29tcG9uZW50IGV4dGVuZHMgQVhCYXNlQ29tcG9uZW50IHtcclxuXHJcbiAgcHJpdmF0ZSBfX3ZhbHVlRmllbGQ6IHN0cmluZyA9ICd2YWx1ZSc7XHJcbiAgcHJpdmF0ZSBfX25hdGl2ZUVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG4gIHByaXZhdGUgX192YWxpZGF0aW9uOiBBWFZhbGlkYXRpb247XHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIHRhYkluZGV4OiBudW1iZXIgPSAwO1xyXG5cclxuICBwcm90ZWN0ZWQgaW5pdFZhbGlkYXRpb24oXHJcbiAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgdmFsdWVGaWVsZDogc3RyaW5nLFxyXG4gICAgdmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uXHJcbiAgKSB7XHJcbiAgICB0aGlzLl9fbmF0aXZlRWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICAgIHRoaXMuX192YWx1ZUZpZWxkID0gdmFsdWVGaWVsZDtcclxuICAgIHRoaXMuX192YWxpZGF0aW9uID0gdmFsaWRhdGlvbjtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpc1t0aGlzLl9fdmFsdWVGaWVsZF1cclxuICAgIGlmICgoIUFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlKSB8fCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCkpXHJcbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICB9XHJcblxyXG4gIGdldCB2YWxpZGF0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX192YWxpZGF0aW9uO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGUoKTogUHJvbWlzZTxBWFZhbGlkYXRpb25SdWxlUmVzdWx0PiB7XHJcbiAgICBpZiAodGhpcy5fX3ZhbGlkYXRpb24gIT09IHVuZGVmaW5lZCAmJiAodGhpcy5fX3ZhbGlkYXRpb24ucnVsZXMgfHwgW10pLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fX3ZhbGlkYXRpb24udmFsaWRhdGUodGhpc1t0aGlzLl9fdmFsdWVGaWVsZF0pO1xyXG4gICAgICByZXN1bHQudGhlbihjID0+IHtcclxuICAgICAgICBpZiAoYy5yZXN1bHQpIHtcclxuICAgICAgICAgIHRoaXMuY2xlYXJWYWxpZGF0aW9uU3R5bGUodGhpcy5fX25hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuYXBwbHlWYWxpZGF0aW9uU3R5bGUodGhpcy5fX25hdGl2ZUVsZW1lbnQsIGMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7IHJlc3VsdDogdHJ1ZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwcm90ZWN0ZWQgY2xlYXJWYWxpZGF0aW9uU3R5bGUoZWxlbWVudDogSFRNTEVsZW1lbnQsIGNsZWFyOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIGlmICh0aGlzLl9fdmFsaWRhdGlvbiAhPT0gdW5kZWZpbmVkICYmICh0aGlzLl9fdmFsaWRhdGlvbi5ydWxlcyB8fCBbXSkubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBmb3JtR3JvdXAgPSBlbGVtZW50LmNsb3Nlc3QoJy5mb3JtLWdyb3VwJyk7XHJcbiAgICAgIGNvbnN0IGZvcm1JdGVtID0gZm9ybUdyb3VwPy5xdWVyeVNlbGVjdG9yKCcuZm9ybS1pdGVtJykgfHwgZWxlbWVudC5jbG9zZXN0KCcuZm9ybS1pdGVtJykgfHwgZWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZm9ybS1pdGVtJyk7O1xyXG4gICAgICBjb25zdCBsYWJlbCA9IGZvcm1Hcm91cD8ucXVlcnlTZWxlY3RvcignLmZvcm0tZ3JvdXAtbGFiZWwnKTtcclxuICAgICAgY29uc3QgcGFyZW50ID0gZm9ybUl0ZW0/LnBhcmVudEVsZW1lbnQgfHwgZWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG5cclxuICAgICAgZm9ybUl0ZW0/LmNsYXNzTGlzdC5yZW1vdmUoJ3N1Y2Nlc3Mtc3RhdGUnKTtcclxuICAgICAgZm9ybUl0ZW0/LmNsYXNzTGlzdC5yZW1vdmUoJ2Vycm9yLXN0YXRlJyk7XHJcbiAgICAgIC8vZm9ybUl0ZW0/LmNsYXNzTGlzdC5yZW1vdmUoJ3JlcXVpcmVkLXN0YXRlJyk7XHJcbiAgICAgIGlmICghY2xlYXIpIHtcclxuICAgICAgICBmb3JtSXRlbT8uY2xhc3NMaXN0LmFkZCgnc3VjY2Vzcy1zdGF0ZScpO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGxhYmVsPy5jbGFzc0xpc3QucmVtb3ZlKCdlcnJvci10ZXh0Jyk7XHJcbiAgICAgIGlmIChwYXJlbnQucXVlcnlTZWxlY3Rvcignc3Bhbi5lcnJvci10ZXh0JykpIHtcclxuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQocGFyZW50LnF1ZXJ5U2VsZWN0b3IoJ3NwYW4uZXJyb3ItdGV4dCcpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFwcGx5VmFsaWRhdGlvblN0eWxlKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCB2OiBBWFZhbGlkYXRpb25SdWxlUmVzdWx0KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fX3ZhbGlkYXRpb24gIT09IHVuZGVmaW5lZCAmJiAodGhpcy5fX3ZhbGlkYXRpb24ucnVsZXMgfHwgW10pLmxlbmd0aCA+IDApIHtcclxuICAgICAgY29uc3QgZm9ybUdyb3VwID0gZWxlbWVudC5jbG9zZXN0KCcuZm9ybS1ncm91cCcpO1xyXG4gICAgICBjb25zdCBmb3JtSXRlbSA9IGZvcm1Hcm91cD8ucXVlcnlTZWxlY3RvcignLmZvcm0taXRlbScpIHx8IGVsZW1lbnQuY2xvc2VzdCgnLmZvcm0taXRlbScpIHx8IGVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZvcm0taXRlbScpO1xyXG4gICAgICBjb25zdCBsYWJlbCA9IGZvcm1Hcm91cD8ucXVlcnlTZWxlY3RvcignLmZvcm0tZ3JvdXAtbGFiZWwnKTtcclxuICAgICAgY29uc3QgcGFyZW50ID0gZm9ybUl0ZW0/LnBhcmVudEVsZW1lbnQgfHwgZWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG4gICAgICBmb3JtSXRlbT8uY2xhc3NMaXN0LmFkZCgnZXJyb3Itc3RhdGUnKTtcclxuICAgICAgZm9ybUl0ZW0/LmNsYXNzTGlzdC5yZW1vdmUoJ3N1Y2Nlc3Mtc3RhdGUnKTtcclxuICAgICAgaWYgKHBhcmVudC5xdWVyeVNlbGVjdG9yKCdzcGFuLmVycm9yLXRleHQnKSkge1xyXG4gICAgICAgIHBhcmVudC5yZW1vdmVDaGlsZChwYXJlbnQucXVlcnlTZWxlY3Rvcignc3Bhbi5lcnJvci10ZXh0JykpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLl9fdmFsaWRhdGlvbi5zaG93TWVzc2FnZSkge1xyXG4gICAgICAgIGNvbnN0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XHJcbiAgICAgICAgc3Bhbi5pbm5lclRleHQgPSB2Lm1lc3NhZ2U7XHJcbiAgICAgICAgc3Bhbi5jbGFzc0xpc3QuYWRkKCdheCcsICdlcnJvci10ZXh0Jyk7XHJcbiAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKHNwYW4pO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIGxhYmVsPy5jbGFzc0xpc3QuYWRkKCdlcnJvci10ZXh0Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQVhCYXNlVGV4dENvbXBvbmVudCBleHRlbmRzIEFYVmFsaWRhdGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBWEJhc2VTaXphYmxlQ29tcG9uZW50LCBBWEJhc2VWYWx1ZUNvbXBvbmVudDxzdHJpbmc+IHtcclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuaW5wdXQpIHtcclxuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50Lm9ua2V5dXAgPSAoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlckNoYW5nZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IChlLnRhcmdldCBhcyBhbnkpLnZhbHVlO1xyXG4gICAgICAgIHRoaXMub25rZXkuZW1pdChlKTtcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50Lm9ua2V5ZG93biA9IChlKSA9PiB7XHJcbiAgICAgICAgdGhpcy51c2VyQ2hhbmdlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IChlLnRhcmdldCBhcyBhbnkpLnZhbHVlO1xyXG4gICAgICAgIHRoaXMub25rZXkuZW1pdChlKTtcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50Lm9ua2V5cHJlc3MgPSAoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMudXNlckNoYW5nZSA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMudmFsdWUgPSAoZS50YXJnZXQgYXMgYW55KS52YWx1ZTtcclxuICAgICAgICB0aGlzLm9ua2V5LmVtaXQoZSk7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbml0VmFsaWRhdGlvbih0aGlzLnJlZiwgJ3ZhbHVlJywgdGhpcy52YWxpZGF0aW9uKTtcclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIHRhYkluZGV4OiBudW1iZXIgPSAwO1xyXG5cclxuICBAVmlld0NoaWxkKCdpbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgQENvbnRlbnRDaGlsZCgnaW5wdXQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG4gIGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xyXG5cclxuICBAQ29udGVudENoaWxkKEFYVmFsaWRhdGlvbiwgeyBzdGF0aWM6IHRydWUgfSlcclxuICBwcml2YXRlIF9jb250ZW50VmFsaWRhdGlvbjogQVhWYWxpZGF0aW9uO1xyXG5cclxuICBwcml2YXRlIF92YWxpZGF0aW9uOiBBWFZhbGlkYXRpb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCB2YWxpZGF0aW9uKCk6IEFYVmFsaWRhdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsaWRhdGlvbiA/IHRoaXMuX3ZhbGlkYXRpb24gOiB0aGlzLl9jb250ZW50VmFsaWRhdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXQgdmFsaWRhdGlvbih2OiBBWFZhbGlkYXRpb24pIHtcclxuICAgIHRoaXMuX3ZhbGlkYXRpb24gPSB2O1xyXG4gICAgdGhpcy5pbml0VmFsaWRhdGlvbih0aGlzLnJlZiwgJ3ZhbHVlJywgdik7XHJcbiAgfVxyXG5cclxuXHJcbiAgQElucHV0KClcclxuICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGV4dEFsaWduOiAncmlnaHQnIHwgJ2xlZnQnIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2l6ZTogJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgPSAnbWQnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIGF1dG9jb21wbGV0ZTogXCJvblwiIHwgXCJvZmZcIjtcclxuXHJcbiAgQElucHV0KClcclxuICBuYW1lOiBzdHJpbmc7XHJcblxyXG4gIHVzZXJDaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByb3RlY3RlZCByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25rZXk6IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uQmx1cjogRXZlbnRFbWl0dGVyPEFYSHRtbEV2ZW50PEV2ZW50Pj4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYSHRtbEV2ZW50PEV2ZW50Pj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxBWEh0bWxFdmVudDxFdmVudD4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEh0bWxFdmVudDxFdmVudD4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYQmFzZUlucHV0Q2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEJhc2VJbnB1dENoYW5nZUV2ZW50PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaWNvbjogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgYWxsb3dDbGVhcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF92YWx1ZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHZhbHVlKHY6IHN0cmluZykge1xyXG4gICAgaWYgKHYgIT09IHRoaXMuX3ZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IG9sZCA9IHRoaXMuX3ZhbHVlO1xyXG4gICAgICB0aGlzLl92YWx1ZSA9IHY7XHJcblxyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodik7XHJcbiAgICAgIHRoaXMub25WYWx1ZUNoYW5nZWQuZW1pdCh7XHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIHZhbHVlOiB2LFxyXG4gICAgICAgIG9sZFZhbHVlOiBvbGQsXHJcbiAgICAgICAgaXNVc2VyQ2hhbmdlOiB0aGlzLnVzZXJDaGFuZ2VcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMudXNlckNoYW5nZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNsZWFyVmFsaWRhdGlvblN0eWxlKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCwgdiA/IGZhbHNlIDogdHJ1ZSk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvY3VzKCkge1xyXG4gICAgdGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBjbGVhcigpIHtcclxuICAgIHRoaXMudXNlckNoYW5nZSA9IHRydWU7XHJcblxyXG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgaXNGb2N1c2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIHNldFRleHRBbGlnbigpIHtcclxuICAgIGlmICh0aGlzLnRleHRBbGlnbiA9PT0gJ2xlZnQnKSB7XHJcbiAgICAgIHJldHVybiAndGV4dC1sZWZ0JztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRleHRBbGlnbiA9PT0gJ3JpZ2h0Jykge1xyXG4gICAgICByZXR1cm4gJ3RleHQtcmlnaHQnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlSW5wdXRCbHVyKGU6IEV2ZW50KSB7XHJcbiAgICB0aGlzLm9uQmx1ci5lbWl0KHtcclxuICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgaHRtbEV2ZW50OiBlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUlucHV0Rm9jdXMoZTogRXZlbnQpIHtcclxuICAgIHRoaXMub25Gb2N1cy5lbWl0KHtcclxuICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgaHRtbEV2ZW50OiBlXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWEJhc2VCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBWEJhc2VDbGlja2FibGVDb21wb25lbnQsIEFYQmFzZVNpemFibGVDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGRpc2FibGVkOiBib29sZWFuO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBjbGljazogRXZlbnRFbWl0dGVyPEFYSHRtbEV2ZW50PE1vdXNlRXZlbnQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhIdG1sRXZlbnQ8TW91c2VFdmVudD4+KCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZTtcclxuXHJcbiAgQElucHV0KClcclxuICB0YWJJbmRleDogbnVtYmVyID0gMDtcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWEJhc2VEcm9wZG93bkNvbXBvbmVudCBleHRlbmRzIEFYQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFYQmFzZUludGVyYWN0aXZlQ29tcG9uZW50LCBBWEJhc2VTaXphYmxlQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KClcclxuICBkaXNhYmxlZDogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBzaXplOiBBWEVsZW1lbnRTaXplO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGZpdFBhcmVudDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdGFiSW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd0Ryb3BEb3duQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgYWJzdHJhY3QgY2xvc2UoKTtcclxuICBhYnN0cmFjdCBvcGVuKCk7XHJcbn1cclxuIl19
@@ -109,8 +109,8 @@ let AXCalendarBoxComponent = class AXCalendarBoxComponent {
109
109
  }
110
110
  }
111
111
  getTitle(date) {
112
- if (this.dayStyle.find((c) => c.date == date.toISOString().split('T')[0])) {
113
- return this.dayStyle.find((c) => c.date == date.toISOString().split('T')[0]).text;
112
+ if (this.dayStyle.find((c) => c.date.split('T')[0] == date.toISOString().split('T')[0])) {
113
+ return this.dayStyle.find((c) => c.date.split('T')[0] == date.toISOString().split('T')[0]).text;
114
114
  }
115
115
  else {
116
116
  return '';
@@ -441,4 +441,4 @@ AXCalendarBoxComponent = __decorate([
441
441
  __metadata("design:paramtypes", [ChangeDetectorRef, ElementRef])
442
442
  ], AXCalendarBoxComponent);
443
443
  export { AXCalendarBoxComponent };
444
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9jYWxlbmRhci9jYWxlbmRhci1ib3gvY2FsZW5kYXItYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEosT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQWtCLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd6RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBeUJ4QyxJQUFhLHNCQUFzQixHQUFuQyxNQUFhLHNCQUFzQjtJQWtJakMsWUFBb0IsR0FBc0IsRUFBVSxHQUFlO1FBQS9DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQWpJbkUsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUVoQixNQUFDLEdBQUc7WUFDVixNQUFNLEVBQUU7Z0JBQ04sTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsSUFBSSxJQUFJO2dCQUN0RCxHQUFHLEVBQUUsS0FBSztnQkFDVixNQUFNLEVBQUUsQ0FBQzthQUNWO1lBQ0QsU0FBUyxFQUFFO2dCQUNULE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLElBQUksSUFBSTtnQkFDekQsR0FBRyxFQUFFLEtBQUs7Z0JBQ1YsTUFBTSxFQUFFLENBQUM7YUFDVjtTQUNGLENBQUM7UUFLRixTQUFJLEdBQWtCLElBQUksQ0FBQztRQWtCM0Isc0JBQWlCLEdBQVksSUFBSSxDQUFDO1FBR2xDLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFPUCxvQkFB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TyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQzVCO2lCQUFNO2dCQUNMLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVM7cUJBQzFCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO3FCQUNkLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxHQUFHLEVBQUUsQ0FBQztxQkFDdkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ3BCO1lBQ0QsS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQztRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELEVBQUU7UUFDRixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksT0FBTyxJQUFJLENBQUMsVUFBVSxLQUFLLFVBQVUsRUFBRTtZQUM1RCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsRTtRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxFQUFFO1lBQzVELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xFO1FBRUQsRUFBRTtRQUNGLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxV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QUFHLEtBQUssQ0FBQztRQUNkLElBQUksQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN6QixDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDM0c7WUFDRCxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUN6QixDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzFHO1lBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3hCLENBQUM7b0JBQ0MsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNyRyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJ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QU07S0FDaEQsQ0FBQztxQ0FtSXlCLGlCQUFpQixFQUFlLFVBQVU7R0FsSXhELHNCQUFzQixDQXNhbEM7U0F0YVksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgVmlld0VuY2Fwc3VsYXRpb24sIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhEYXRlVGltZSwgQVhEYXRlVGltZVJhbmdlLCBBWENhbGVuZGFyVHlwZSwgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuaW1wb3J0IHsgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCwgQVhFbGVtZW50U2l6ZSB9IGZyb20gJy4uLy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XHJcbmltcG9ydCB7IEFYVmFsdWVFdmVudCB9IGZyb20gJy4uLy4uL2Jhc2UvZXZlbnRzLmNsYXNzJztcclxuaW1wb3J0IHsgQVhDb25maWcgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5cclxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhclZpZXdUeXBlID0gJ3llYXInIHwgJ21vbnRoJyB8ICdkYXknO1xyXG5cclxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhckhvbGlkYXlzID0gQVhDYWxlbmRhckhvbGlkYXlbXTtcclxuZXhwb3J0IHR5cGUgQVhDYWxlbmRhckhvbGlkYXlzRnVuYyA9IChzdGFydDogRGF0ZSwgZW5kOiBEYXRlLCB0eXBlOiBBWENhbGVuZGFyVHlwZSkgPT4gQVhDYWxlbmRhckhvbGlkYXlbXTtcclxuZXhwb3J0IGludGVyZmFjZSBBWENhbGVuZGFySG9saWRheSB7XHJcbiAgZGF0ZTogRGF0ZTtcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBBWENhbGVuZGFyV2Vla2VuZHMgPSBBWENhbGVuZGFyV2Vla2VuZFtdO1xyXG5leHBvcnQgdHlwZSBBWENhbGVuZGFyV2Vla2VuZHNGdW5jID0gKHN0YXJ0OiBEYXRlLCBlbmQ6IERhdGUsIHR5cGU6IEFYQ2FsZW5kYXJUeXBlKSA9PiBBWENhbGVuZGFyV2Vla2VuZFtdO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWENhbGVuZGFyV2Vla2VuZCB7XHJcbiAgaW5kZXhEYXk6IG51bWJlcjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdheC1jYWxlbmRhci1ib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci1ib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYQ2FsZW5kYXJCb3hDb21wb25lbnQgaW1wbGVtZW50cyBBWEJhc2VTaXphYmxlQ29tcG9uZW50IHtcclxuICB3ZWVrZGF5czogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBkID0ge1xyXG4gICAgamFsYWxpOiB7XHJcbiAgICAgIGxvY2FsZTogQVhDb25maWcuZ2V0KCdkYXRlVGltZS5qYWxhbGkubG9jYWxlJykgfHwgJ2ZhJyxcclxuICAgICAgZGlyOiAncnRsJyxcclxuICAgICAgbnVtYmVyOiAxXHJcbiAgICB9LFxyXG4gICAgZ3JlZ29yaWFuOiB7XHJcbiAgICAgIGxvY2FsZTogQVhDb25maWcuZ2V0KCdkYXRlVGltZS5ncmVnb3JpYW4ubG9jYWxlJykgfHwgJ2VuJyxcclxuICAgICAgZGlyOiAnbHRyJyxcclxuICAgICAgbnVtYmVyOiAwXHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgbnVtUm90YXRlOiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9ICdtZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdHlwZTogQVhDYWxlbmRhclR5cGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbG9jYWxlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGlyOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbWluOiBEYXRlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1heDogRGF0ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBzZWxlY3RhYmxlSG9saWRheTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGF5U3R5bGUgPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBnZXRIb2xpZGF5OiBBWENhbGVuZGFySG9saWRheXMgfCBBWENhbGVuZGFySG9saWRheXNGdW5jO1xyXG5cclxuICBwcml2YXRlIGdldFdlZWtlbmQ6IEFYQ2FsZW5kYXJXZWVrZW5kcyB8IEFYQ2FsZW5kYXJXZWVrZW5kc0Z1bmM7XHJcblxyXG4gIEBJbnB1dCgnc2hvd1RvZGF5QnV0dG9uJylcclxuICBwdWJsaWMgc2hvd1RvZGF5QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIG1hdHJpeDogYW55W10gPSBbXTtcclxuICByb3RhdGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfdmlldzogQVhDYWxlbmRhclZpZXdUeXBlID0gJ2RheSc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IHZpZXcoKTogQVhDYWxlbmRhclZpZXdUeXBlIHtcclxuICAgIHJldHVybiB0aGlzLl92aWV3O1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHZpZXcodjogQVhDYWxlbmRhclZpZXdUeXBlKSB7XHJcbiAgICB0aGlzLl92aWV3ID0gdjtcclxuICAgIHRoaXMubmF2aWdhdGUoMCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kZXB0aDogQVhDYWxlbmRhclZpZXdUeXBlID0gJ2RheSc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCBkZXB0aCgpOiBBWENhbGVuZGFyVmlld1R5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RlcHRoO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGRlcHRoKHY6IEFYQ2FsZW5kYXJWaWV3VHlwZSkge1xyXG4gICAgdGhpcy5fZGVwdGggPSB2O1xyXG4gICAgdGhpcy52aWV3ID0gdjtcclxuICB9XHJcblxyXG4gIHZpZXdSYW5nZTogQVhEYXRlVGltZVJhbmdlO1xyXG4gIHByaXZhdGUgaG9saWRheXM6IEFYQ2FsZW5kYXJIb2xpZGF5W10gPSBbXTtcclxuICBwcml2YXRlIHdlZWtlbmRzOiBBWENhbGVuZGFyV2Vla2VuZFtdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uVmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PERhdGU+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PERhdGU+PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PERhdGU+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhWYWx1ZUV2ZW50PERhdGU+PigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG5cclxuICBwcml2YXRlIF92YWx1ZTogQVhEYXRlVGltZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU/LmRhdGU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgdmFsdWUodjogRGF0ZSkge1xyXG4gICAgbGV0IHZ2OiBBWERhdGVUaW1lO1xyXG4gICAgaWYgKHYpIHtcclxuICAgICAgdnYgPSBBWERhdGVUaW1lLmNvbnZlcnQodik7XHJcbiAgICB9XHJcbiAgICBsZXQgdW5WYWxpZERhdGUgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLm1heCB8fCB0aGlzLm1pbikge1xyXG4gICAgICB1blZhbGlkRGF0ZSA9IHRoaXMuaXNJbk1Jbk1heFJhbmdlKHZ2KTtcclxuICAgIH1cclxuICAgIGlmICghdW5WYWxpZERhdGUpIHtcclxuICAgICAgaWYgKHZ2ICYmICF2di5lcXVhbCh0aGlzLl92YWx1ZSkpIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZ2O1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlLnR5cGUgPSB0aGlzLnR5cGU7XHJcbiAgICAgICAgdGhpcy5zZXRGb2N1cyh0aGlzLl92YWx1ZS5jbG9uZSgpKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodnYuZGF0ZSk7XHJcbiAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlZC5lbWl0KHtcclxuICAgICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICAgIHZhbHVlOiB0aGlzLl92YWx1ZT8uZGF0ZSxcclxuICAgICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHYgPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuZm9jdXNlZFZhbHVlID0gdGhpcy50b2RheTtcclxuICAgICAgICB0aGlzLnZpZXdSYW5nZSA9IHRoaXMudG9kYXkubW9udGgucmFuZ2U7XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZSgwKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLm9uQ2xpY2suZW1pdCh7XHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIHZhbHVlOiB0aGlzLl92YWx1ZT8uZGF0ZSxcclxuICAgICAgICBodG1sRWxlbWVudDogdGhpcy5yZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvY3VzZWRWYWx1ZTogQVhEYXRlVGltZTtcclxuICBnZXQgdG9kYXkoKTogQVhEYXRlVGltZSB7XHJcbiAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUoKSwgdGhpcy50eXBlKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYpIHtcclxuICAgIC8vIHNldCBkZWZhdWx0c1xyXG4gICAgdGhpcy5nZXRIb2xpZGF5ID0gQVhDb25maWcuZ2V0KCdkYXRlVGltZS5ob2xpZGF5cycpO1xyXG4gICAgdGhpcy5nZXRXZWVrZW5kID0gQVhDb25maWcuZ2V0KCdkYXRlVGltZS53ZWVrZW5kcycpO1xyXG4gIH1cclxuICBmaW5kRGF5KGRhdGU6IEFYRGF0ZVRpbWUpIHtcclxuXHJcbiAgICBpZiAodGhpcy5kYXlTdHlsZS5maW5kKChjKSA9PiBjLmRhdGUuc3BsaXQoJ1QnKVswXSA9PSBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXSkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFN0eWxlKGRhdGU6IEFYRGF0ZVRpbWUpIHtcclxuICAgIGlmICh0aGlzLmRheVN0eWxlLmZpbmQoKGMpID0+IGMuZGF0ZS5zcGxpdCgnVCcpWzBdID09IGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXlTdHlsZS5maW5kKChjKSA9PiBjLmRhdGUuc3BsaXQoJ1QnKVswXSA9PSBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXSkuc3R5bGU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUaXRsZShkYXRlOiBBWERhdGVUaW1lKSB7XHJcbiAgICBpZiAodGhpcy5kYXlTdHlsZS5maW5kKChjKSA9PiBjLmRhdGUgPT0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF0pKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRheVN0eWxlLmZpbmQoKGMpID0+IGMuZGF0ZSA9PSBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXSkudGV4dDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5mb2N1c2VkVmFsdWUgPSBuZXcgQVhEYXRlVGltZShuZXcgRGF0ZSgpLCB0aGlzLnR5cGUpO1xyXG4gICAgLy9cclxuICAgIHRoaXMuaW5pdExheW91dCgpO1xyXG4gICAgLy9cclxuICAgIHRoaXMudmlld1JhbmdlID0gdGhpcy50b2RheS5tb250aC5yYW5nZTtcclxuICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2V0Rm9jdXMobmV3IEFYRGF0ZVRpbWUodGhpcy52YWx1ZSwgdGhpcy50eXBlKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldEZvY3VzKHRoaXMudG9kYXkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudmlldyA9ICdkYXknO1xyXG4gIH1cclxuXHJcbiAgZ2V0Vmlld0NvbXBhaXJlKHZpZXc6IEFYQ2FsZW5kYXJWaWV3VHlwZSkge1xyXG4gICAgc3dpdGNoICh2aWV3KSB7XHJcbiAgICAgIGNhc2UgJ2RheSc6XHJcbiAgICAgICAgcmV0dXJuICdZTUQnO1xyXG4gICAgICBjYXNlICdtb250aCc6XHJcbiAgICAgICAgcmV0dXJuICdZTSc7XHJcbiAgICAgIGNhc2UgJ3llYXInOlxyXG4gICAgICAgIHJldHVybiAnWSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm5hdmlnYXRlKDApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0TGF5b3V0KCkge1xyXG4gICAgaWYgKCF0aGlzLnR5cGUpIHtcclxuICAgICAgdGhpcy50eXBlID0gQVhDb25maWcuZ2V0KCdkYXRlVGltZS50eXBlJykgfHwgJ2dyZWdvcmlhbic7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMubG9jYWxlKSB7XHJcbiAgICAgIHRoaXMubG9jYWxlID0gdGhpcy5kW3RoaXMudHlwZV0/LmxvY2FsZSB8fCB0aGlzLmxvY2FsZTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5kaXIpIHtcclxuICAgICAgdGhpcy5kaXIgPSB0aGlzLmRbdGhpcy50eXBlXT8uZGlyIHx8ICdsdHInO1xyXG4gICAgfVxyXG4gICAgdGhpcy5udW1Sb3RhdGUgPSB0aGlzLmRbdGhpcy50eXBlXT8ubnVtYmVyIHx8IDA7XHJcbiAgICBjb25zdCBwYXRoID0gJ2RhdGVUaW1lLndlZWtkYXlzU2hvcnQnO1xyXG4gICAgdGhpcy53ZWVrZGF5cyA9IFtcclxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS5zdW5gLCB0aGlzLmxvY2FsZSksXHJcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0ubW9uYCwgdGhpcy5sb2NhbGUpLFxyXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LnR1ZWAsIHRoaXMubG9jYWxlKSxcclxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS53ZWRgLCB0aGlzLmxvY2FsZSksXHJcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0udGh1YCwgdGhpcy5sb2NhbGUpLFxyXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LmZyaWAsIHRoaXMubG9jYWxlKSxcclxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS5zYXRgLCB0aGlzLmxvY2FsZSlcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBnZXRUb2RheU5hbWUoKSB7XHJcbiAgICByZXR1cm4gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUudG9kYXknLCB0aGlzLmxvY2FsZSk7XHJcbiAgfVxyXG5cclxuICBwcmV2KCkge1xyXG4gICAgdGhpcy5uYXZpZ2F0ZSgtMSk7XHJcbiAgfVxyXG5cclxuICBuZXh0KCkge1xyXG4gICAgdGhpcy5uYXZpZ2F0ZSgxKTtcclxuICB9XHJcblxyXG4gIHJvdGF0ZShhcnJheSwgbikge1xyXG4gICAgY29uc3QgbGVuID0gYXJyYXkubGVuZ3RoO1xyXG4gICAgcmV0dXJuICEobiAlIGxlbikgPyBhcnJheSA6IG4gPiAwID8gYXJyYXkubWFwKChlLCBpLCBhKSA9PiBhWyhpICsgbikgJSBsZW5dKSA6IGFycmF5Lm1hcCgoZSwgaSwgYSkgPT4gYVsobGVuIC0gKChsZW4gLSBpIC0gbikgJSBsZW4pKSAlIGxlbl0pO1xyXG4gIH1cclxuXHJcbiAgbmF2aWdhdGUodmFsdWU6IG51bWJlciB8IEFYRGF0ZVRpbWUpIHtcclxuICAgIGxldCBzdGFydDogQVhEYXRlVGltZTtcclxuICAgIGxldCBlbmQ6IEFYRGF0ZVRpbWU7XHJcbiAgICBpZiAodGhpcy52aWV3ID09PSAnZGF5Jykge1xyXG4gICAgICBsZXQgZmQ6IEFYRGF0ZVRpbWU7XHJcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFYRGF0ZVRpbWUpIHtcclxuICAgICAgICBmZCA9IHZhbHVlLnN0YXJ0T2YoJ21vbnRoJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZmQgPSB0aGlzLnZpZXdSYW5nZS5zdGFydFRpbWUuYWRkKCdkYXknLCAxNSkuYWRkKCdtb250aCcsIHZhbHVlKS5zdGFydE9mKCdtb250aCcpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdGFydCA9IGZkLmZpcnN0RGF5T2ZXZWVrO1xyXG4gICAgICBlbmQgPSBmZC5lbmRPZignbW9udGgnKS5lbmREYXlPZldlZWs7XHJcblxyXG4gICAgICBzdGFydCA9IHN0YXJ0LmFkZCgnZGF5JywgLXRoaXMubnVtUm90YXRlKTtcclxuICAgICAgZW5kID0gZW5kLmFkZCgnZGF5JywgNykuYWRkKCdkYXknLCAtdGhpcy5udW1Sb3RhdGUpO1xyXG5cclxuICAgICAgLy8gVE9ETzogYXBwbHkgc3RhcnQgb2Ygd2Vla1xyXG4gICAgICBpZiAoIXRoaXMucm90YXRlZCAmJiB0aGlzLndlZWtkYXlzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBpZiAodGhpcy50eXBlID09PSAnamFsYWxpJykge1xyXG4gICAgICAgICAgdGhpcy53ZWVrZGF5cyA9IHRoaXMucm90YXRlKHRoaXMud2Vla2RheXMsIC10aGlzLm51bVJvdGF0ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMud2Vla2RheXMgPSB0aGlzLnJvdGF0ZSh0aGlzLndlZWtkYXlzLCB0aGlzLm51bVJvdGF0ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJvdGF0ZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ21vbnRoJykge1xyXG4gICAgICBsZXQgZmQ6IEFYRGF0ZVRpbWU7XHJcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEFYRGF0ZVRpbWUpIHtcclxuICAgICAgICBmZCA9IHZhbHVlLnN0YXJ0T2YoJ3llYXInKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmZCA9IHRoaXMudmlld1JhbmdlLnN0YXJ0VGltZS5hZGQoJ2RheScsIDE1KS5hZGQoJ3llYXInLCB2YWx1ZSkuc3RhcnRPZigneWVhcicpO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXJ0ID0gZmQ7XHJcbiAgICAgIGVuZCA9IGZkLmVuZE9mKCd5ZWFyJyk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ3llYXInKSB7XHJcbiAgICAgIGxldCBmZDogQVhEYXRlVGltZTtcclxuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQVhEYXRlVGltZSkge1xyXG4gICAgICAgIGZkID0gdmFsdWUuc3RhcnRPZigneWVhcicpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZkID0gdGhpcy52aWV3UmFuZ2Uuc3RhcnRUaW1lXHJcbiAgICAgICAgICAuYWRkKCdkYXknLCAxNSlcclxuICAgICAgICAgIC5hZGQoJ3llYXInLCB2YWx1ZSAqIDEwKVxyXG4gICAgICAgICAgLnN0YXJ0T2YoJ3llYXInKTtcclxuICAgICAgfVxyXG4gICAgICBzdGFydCA9IGZkLmFkZCgneWVhcicsIC00KTtcclxuICAgICAgZW5kID0gc3RhcnQuYWRkKCd5ZWFyJywgOCkuZW5kT2YoJ3llYXInKTtcclxuICAgIH1cclxuICAgIHRoaXMudmlld1JhbmdlID0gbmV3IEFYRGF0ZVRpbWVSYW5nZShzdGFydCwgZW5kKTtcclxuICAgIC8vXHJcbiAgICBpZiAodGhpcy5nZXRIb2xpZGF5ICYmIHR5cGVvZiB0aGlzLmdldEhvbGlkYXkgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgdGhpcy5ob2xpZGF5cyA9IHRoaXMuZ2V0SG9saWRheShzdGFydC5kYXRlLCBlbmQuZGF0ZSwgdGhpcy50eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5nZXRXZWVrZW5kICYmIHR5cGVvZiB0aGlzLmdldFdlZWtlbmQgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgdGhpcy53ZWVrZW5kcyA9IHRoaXMuZ2V0V2Vla2VuZChzdGFydC5kYXRlLCBlbmQuZGF0ZSwgdGhpcy50eXBlKTtcclxuICAgIH1cclxuXHJcbiAgICAvL1xyXG4gICAgaWYgKHRoaXMudmlldyA9PT0gJ2RheScpIHtcclxuICAgICAgdGhpcy5tYXRyaXggPSB0aGlzLm1hdHJpeGlmeSh0aGlzLmFwcGx5U3R5bGUodGhpcy52aWV3UmFuZ2UuZW51bXVyYXRlKCdkYXknLCB0aGlzLnR5cGUpKSwgNyk7XHJcbiAgICAgIGlmICh0aGlzLm1hdHJpeC5sZW5ndGggPiAwICYmIHRoaXMubWF0cml4WzBdLmZpbmQoKGMpID0+IGMubmV4dE1vbnRoID09PSBmYWxzZSkgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMubWF0cml4LnNwbGljZSgwLCAxKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5tYXRyaXhbdGhpcy5tYXRyaXgubGVuZ3RoIC0gMV0uZmluZCgoYykgPT4gYy5uZXh0TW9udGggPT09IGZhbHNlKSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5tYXRyaXguc3BsaWNlKHRoaXMubWF0cml4Lmxlbmd0aCAtIDEsIDEpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ21vbnRoJykge1xyXG4gICAgICB0aGlzLm1hdHJpeCA9IHRoaXMubWF0cml4aWZ5KHRoaXMuYXBwbHlTdHlsZSh0aGlzLnZpZXdSYW5nZS5lbnVtdXJhdGUoJ21vbnRoJywgdGhpcy50eXBlKSksIDMpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnZpZXcgPT09ICd5ZWFyJykge1xyXG4gICAgICB0aGlzLm1hdHJpeCA9IHRoaXMubWF0cml4aWZ5KHRoaXMuYXBwbHlTdHlsZSh0aGlzLnZpZXdSYW5nZS5lbnVtdXJhdGUoJ3llYXInLCB0aGlzLnR5cGUpKSwgMyk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFwcGx5U3R5bGUoZGF0ZXM6IEFYRGF0ZVRpbWVbXSk6IGFueVtdIHtcclxuICAgIGNvbnN0IGl0ZW1zOiBhbnlbXSA9IFtdO1xyXG4gICAgZGF0ZXMuZm9yRWFjaCgoZCwgaSwgaikgPT4ge1xyXG4gICAgICBjb25zdCBpdGVtOiBhbnkgPSB7fTtcclxuICAgICAgaXRlbS5kYXRlID0gZDtcclxuXHJcbiAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBkLmNvbXBhaXJlTmV3KG5ldyBBWERhdGVUaW1lKHRoaXMudmFsdWUsIHRoaXMudHlwZSksIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksIHRoaXMudHlwZSkgPT09IDA7XHJcbiAgICAgIGl0ZW0uZm9jdXNlZCA9IGQuY29tcGFpcmVOZXcodGhpcy5mb2N1c2VkVmFsdWUsIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksIHRoaXMudHlwZSkgPT09IDA7XHJcbiAgICAgIGl0ZW0udG9kYXkgPSB0aGlzLnRvZGF5ICYmIGQuY29tcGFpcmVOZXcodGhpcy50b2RheSwgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSwgdGhpcy50eXBlKSA9PT0gMDtcclxuICAgICAgaWYgKHRoaXMudmlldyA9PT0gJ2RheScpIHtcclxuICAgICAgICAvLyAgaXRlbS5uZXh0TW9udGggPSBkLmNvbXBhaXJlTmV3KHRoaXMudmlld1JhbmdlLnN0YXJ0VGltZS5hZGQoJ2RheScsIDEwKSwgJ1lNJykgIT09IDA7XHJcbiAgICAgICAgaXRlbS5uZXh0TW9udGggPSBkLmNvbXBhaXJlTmV3KHRoaXMudmlld1JhbmdlLnN0YXJ0VGltZS5hZGQoJ2RheScsIDEwKSwgJ1lNJywgdGhpcy50eXBlKSAhPT0gMDtcclxuXHJcbiAgICAgICAgaXRlbS51bnNlbGVjdCA9IHRoaXMuaXNJbk1Jbk1heFJhbmdlKGQpO1xyXG4gICAgICAgIHRoaXMuaG9saWRheXMuZm9yRWFjaCgoaCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgY29tcCA9IGQuY29tcGFpcmVOZXcobmV3IEFYRGF0ZVRpbWUoaC5kYXRlLCB0aGlzLnR5cGUpLCAnWU1EJywgdGhpcy50eXBlKTtcclxuICAgICAgICAgIGlmIChjb21wID09PSAwKSB7XHJcbiAgICAgICAgICAgIGl0ZW0uaG9saWRheSA9IHRydWU7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGFibGVIb2xpZGF5ID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgIGl0ZW0udW5zZWxlY3QgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGluZGV4RGF5ID0gaSAtIE1hdGguZmxvb3IoaSAvIDcpICogNztcclxuICAgICAgICB0aGlzLndlZWtlbmRzLmZvckVhY2goKGNjKSA9PiB7XHJcbiAgICAgICAgICBpZiAoTnVtYmVyKGNjKSA9PT0gaW5kZXhEYXkpIHtcclxuICAgICAgICAgICAgaXRlbS5ob2xpZGF5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0YWJsZUhvbGlkYXkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgaXRlbS51bnNlbGVjdCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gaXRlbXM7XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VWaWV3KCkge1xyXG4gICAgaWYgKHRoaXMudmlldyA9PT0gJ2RheScpIHtcclxuICAgICAgdGhpcy52aWV3ID0gJ21vbnRoJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy52aWV3ID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMudmlldyA9ICd5ZWFyJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hdHJpeGlmeShhcnI6IGFueVtdLCBjb2xzKSB7XHJcbiAgICBjb25zdCByb3dzID0gTWF0aC5jZWlsKGFyci5sZW5ndGggLyBjb2xzKTtcclxuICAgIGNvbnN0IG1hdHJpeCA9IFtdO1xyXG4gICAgaWYgKHJvd3MgKiBjb2xzID09PSBhcnIubGVuZ3RoKSB7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSArPSBjb2xzKSB7XHJcbiAgICAgICAgbWF0cml4LnB1c2goYXJyLnNsaWNlKGksIGNvbHMgKyBpKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBtYXRyaXg7XHJcbiAgfVxyXG5cclxuICBzZXREYXlDbGljayhldmVudDogTW91c2VFdmVudCwgaXRlbSkge1xyXG4gICAgaWYgKGl0ZW0udW5zZWxlY3QgIT09IHRydWUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGl0ZW0uZGF0ZS5kYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgaXNJbk1Jbk1heFJhbmdlKGQpIHtcclxuICAgIGxldCByID0gZmFsc2U7XHJcbiAgICBpZiAoZCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLm1pbiAmJiAhdGhpcy5tYXgpIHtcclxuICAgICAgICByID0gZC5jb21wYWlyZU5ldyhuZXcgQVhEYXRlVGltZSh0aGlzLm1pbiwgdGhpcy50eXBlKSwgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSwgdGhpcy50eXBlKSA9PT0gLTE7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMubWF4ICYmICF0aGlzLm1pbikge1xyXG4gICAgICAgIHIgPSBkLmNvbXBhaXJlTmV3KG5ldyBBWERhdGVUaW1lKHRoaXMubWF4LCB0aGlzLnR5cGUpLCB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLCB0aGlzLnR5cGUpID09PSAxO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm1pbiAmJiB0aGlzLm1heCkge1xyXG4gICAgICAgIHIgPVxyXG4gICAgICAgICAgZC5jb21wYWlyZU5ldyhuZXcgQVhEYXRlVGltZSh0aGlzLm1pbiwgdGhpcy50eXBlKSwgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSwgdGhpcy50eXBlKSA9PT0gLTEgfHxcclxuICAgICAgICAgIGQuY29tcGFpcmVOZXcobmV3IEFYRGF0ZVRpbWUodGhpcy5tYXgsIHRoaXMudHlwZSksIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksIHRoaXMudHlwZSkgPT09IDE7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByO1xyXG4gIH1cclxuXHJcbiAgc2V0TW9udGhDbGljayhldmVudDogTW91c2VFdmVudCwgZGF0ZTogQVhEYXRlVGltZSkge1xyXG4gICAgaWYgKHRoaXMuZGVwdGggPT09ICdtb250aCcpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGRhdGUuZGF0ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlldyA9ICdkYXknO1xyXG4gICAgICB0aGlzLnNldEZvY3VzKG5ldyBBWERhdGVUaW1lKHRoaXMudmFsdWUsIHRoaXMudHlwZSkuc2V0KCd5ZWFyJywgZGF0ZS55ZWFyKS5zZXQoJ21vbnRoJywgZGF0ZS5tb250aE9mWWVhcikpO1xyXG4gICAgfVxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZXRZZWFyQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQsIGRhdGU6IEFYRGF0ZVRpbWUpIHtcclxuICAgIGlmICh0aGlzLmRlcHRoID09PSAneWVhcicpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGRhdGUuZGF0ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlldyA9ICdtb250aCc7XHJcbiAgICAgIHRoaXMuc2V0Rm9jdXMobmV3IEFYRGF0ZVRpbWUodGhpcy52YWx1ZSwgdGhpcy50eXBlKS5zZXQoJ3llYXInLCBkYXRlLnllYXIpKTtcclxuICAgIH1cclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgc2V0Rm9jdXMoZGF0ZTogQVhEYXRlVGltZSkge1xyXG4gICAgdGhpcy5mb2N1c2VkVmFsdWUgPSBkYXRlO1xyXG4gICAgdGhpcy5uYXZpZ2F0ZSh0aGlzLmZvY3VzZWRWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzZXRUb2RheSgpIHtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLnRvZGF5LmRhdGU7XHJcbiAgICB0aGlzLnZpZXcgPSAnZGF5JztcclxuICB9XHJcblxyXG4gIHRyYWNrQnlGbihpbmRleCwgaXRlbTogYW55KSB7XHJcbiAgICByZXR1cm4gaXRlbS5kYXRlLmRhdGUuZ2V0VGltZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
444
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BhY29yZXgvY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImxpYi9jYWxlbmRhci9jYWxlbmRhci1ib3gvY2FsZW5kYXItYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEosT0FBTyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQWtCLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd6RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBeUJ4QyxJQUFhLHNCQUFzQixHQUFuQyxNQUFhLHNCQUFzQjtJQWtJakMsWUFBb0IsR0FBc0IsRUFBVSxHQUFlO1FBQS9DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQWpJbkUsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUVoQixNQUFDLEdBQUc7WUFDVixNQUFNLEVBQUU7Z0JBQ04sTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsSUFBSSxJQUFJO2dCQUN0RCxHQUFHLEVBQUUsS0FBSztnQkFDVixNQUFNLEVBQUUsQ0FBQzthQUNWO1lBQ0QsU0FBUyxFQUFFO2dCQUNULE1BQU0sRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLElBQUksSUFBSTtnQkFDekQsR0FBRyxFQUFFLEtBQUs7Z0JBQ1YsTUFBTSxFQUFFLENBQUM7YUFDVjtTQUNGLENBQUM7UUFLRixTQUFJLEdBQWtCLElBQUksQ0FBQztRQWtCM0Isc0JBQWlCLEdBQVksSUFBSSxDQUFDO1FBR2xDLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFPUCxvQkFB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aUI7UUFDM0IsaTZPQUE0QztRQUM1QyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtRQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtLQUNoRCxDQUFDO3FDQW1JeUIsaUJBQWlCLEVBQWUsVUFBVTtHQWxJeEQsc0JBQXNCLENBcWFsQztTQXJhWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWERhdGVUaW1lLCBBWERhdGVUaW1lUmFuZ2UsIEFYQ2FsZW5kYXJUeXBlLCBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUnO1xyXG5pbXBvcnQgeyBBWEJhc2VTaXphYmxlQ29tcG9uZW50LCBBWEVsZW1lbnRTaXplIH0gZnJvbSAnLi4vLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcclxuaW1wb3J0IHsgQVhWYWx1ZUV2ZW50IH0gZnJvbSAnLi4vLi4vYmFzZS9ldmVudHMuY2xhc3MnO1xyXG5pbXBvcnQgeyBBWENvbmZpZyB9IGZyb20gJ0BhY29yZXgvY29yZSc7XHJcblxyXG5leHBvcnQgdHlwZSBBWENhbGVuZGFyVmlld1R5cGUgPSAneWVhcicgfCAnbW9udGgnIHwgJ2RheSc7XHJcblxyXG5leHBvcnQgdHlwZSBBWENhbGVuZGFySG9saWRheXMgPSBBWENhbGVuZGFySG9saWRheVtdO1xyXG5leHBvcnQgdHlwZSBBWENhbGVuZGFySG9saWRheXNGdW5jID0gKHN0YXJ0OiBEYXRlLCBlbmQ6IERhdGUsIHR5cGU6IEFYQ2FsZW5kYXJUeXBlKSA9PiBBWENhbGVuZGFySG9saWRheVtdO1xyXG5leHBvcnQgaW50ZXJmYWNlIEFYQ2FsZW5kYXJIb2xpZGF5IHtcclxuICBkYXRlOiBEYXRlO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJXZWVrZW5kcyA9IEFYQ2FsZW5kYXJXZWVrZW5kW107XHJcbmV4cG9ydCB0eXBlIEFYQ2FsZW5kYXJXZWVrZW5kc0Z1bmMgPSAoc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSwgdHlwZTogQVhDYWxlbmRhclR5cGUpID0+IEFYQ2FsZW5kYXJXZWVrZW5kW107XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFYQ2FsZW5kYXJXZWVrZW5kIHtcclxuICBpbmRleERheTogbnVtYmVyO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LWNhbGVuZGFyLWJveCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLWJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhDYWxlbmRhckJveENvbXBvbmVudCBpbXBsZW1lbnRzIEFYQmFzZVNpemFibGVDb21wb25lbnQge1xyXG4gIHdlZWtkYXlzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIGQgPSB7XHJcbiAgICBqYWxhbGk6IHtcclxuICAgICAgbG9jYWxlOiBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLmphbGFsaS5sb2NhbGUnKSB8fCAnZmEnLFxyXG4gICAgICBkaXI6ICdydGwnLFxyXG4gICAgICBudW1iZXI6IDFcclxuICAgIH0sXHJcbiAgICBncmVnb3JpYW46IHtcclxuICAgICAgbG9jYWxlOiBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLmdyZWdvcmlhbi5sb2NhbGUnKSB8fCAnZW4nLFxyXG4gICAgICBkaXI6ICdsdHInLFxyXG4gICAgICBudW1iZXI6IDBcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBudW1Sb3RhdGU6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBzaXplOiBBWEVsZW1lbnRTaXplID0gJ21kJztcclxuXHJcbiAgQElucHV0KClcclxuICB0eXBlOiBBWENhbGVuZGFyVHlwZTtcclxuXHJcbiAgQElucHV0KClcclxuICBsb2NhbGU6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBkaXI6IHN0cmluZztcclxuXHJcbiAgQElucHV0KClcclxuICBtaW46IERhdGU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbWF4OiBEYXRlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlbGVjdGFibGVIb2xpZGF5OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KClcclxuICBkYXlTdHlsZSA9IFtdO1xyXG5cclxuICBwcml2YXRlIGdldEhvbGlkYXk6IEFYQ2FsZW5kYXJIb2xpZGF5cyB8IEFYQ2FsZW5kYXJIb2xpZGF5c0Z1bmM7XHJcblxyXG4gIHByaXZhdGUgZ2V0V2Vla2VuZDogQVhDYWxlbmRhcldlZWtlbmRzIHwgQVhDYWxlbmRhcldlZWtlbmRzRnVuYztcclxuXHJcbiAgQElucHV0KCdzaG93VG9kYXlCdXR0b24nKVxyXG4gIHB1YmxpYyBzaG93VG9kYXlCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbWF0cml4OiBhbnlbXSA9IFtdO1xyXG4gIHJvdGF0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF92aWV3OiBBWENhbGVuZGFyVmlld1R5cGUgPSAnZGF5JztcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBnZXQgdmlldygpOiBBWENhbGVuZGFyVmlld1R5cGUge1xyXG4gICAgcmV0dXJuIHRoaXMuX3ZpZXc7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgdmlldyh2OiBBWENhbGVuZGFyVmlld1R5cGUpIHtcclxuICAgIHRoaXMuX3ZpZXcgPSB2O1xyXG4gICAgdGhpcy5uYXZpZ2F0ZSgwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RlcHRoOiBBWENhbGVuZGFyVmlld1R5cGUgPSAnZGF5JztcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZ2V0IGRlcHRoKCk6IEFYQ2FsZW5kYXJWaWV3VHlwZSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGVwdGg7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgZGVwdGgodjogQVhDYWxlbmRhclZpZXdUeXBlKSB7XHJcbiAgICB0aGlzLl9kZXB0aCA9IHY7XHJcbiAgICB0aGlzLnZpZXcgPSB2O1xyXG4gIH1cclxuXHJcbiAgdmlld1JhbmdlOiBBWERhdGVUaW1lUmFuZ2U7XHJcbiAgcHJpdmF0ZSBob2xpZGF5czogQVhDYWxlbmRhckhvbGlkYXlbXSA9IFtdO1xyXG4gIHByaXZhdGUgd2Vla2VuZHM6IEFYQ2FsZW5kYXJXZWVrZW5kW10gPSBbXTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25WYWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxBWFZhbHVlRXZlbnQ8RGF0ZT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFZhbHVlRXZlbnQ8RGF0ZT4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxBWFZhbHVlRXZlbnQ8RGF0ZT4+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFZhbHVlRXZlbnQ8RGF0ZT4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcblxyXG4gIHByaXZhdGUgX3ZhbHVlOiBBWERhdGVUaW1lO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBEYXRlIHtcclxuICAgIHJldHVybiB0aGlzLl92YWx1ZT8uZGF0ZTtcclxuICB9XHJcbiAgcHVibGljIHNldCB2YWx1ZSh2OiBEYXRlKSB7XHJcbiAgICBsZXQgdnY6IEFYRGF0ZVRpbWU7XHJcbiAgICBpZiAodikge1xyXG4gICAgICB2diA9IEFYRGF0ZVRpbWUuY29udmVydCh2KTtcclxuICAgIH1cclxuICAgIGxldCB1blZhbGlkRGF0ZSA9IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMubWF4IHx8IHRoaXMubWluKSB7XHJcbiAgICAgIHVuVmFsaWREYXRlID0gdGhpcy5pc0luTUluTWF4UmFuZ2UodnYpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF1blZhbGlkRGF0ZSkge1xyXG4gICAgICBpZiAodnYgJiYgIXZ2LmVxdWFsKHRoaXMuX3ZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdnY7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUudHlwZSA9IHRoaXMudHlwZTtcclxuICAgICAgICB0aGlzLnNldEZvY3VzKHRoaXMuX3ZhbHVlLmNsb25lKCkpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2di5kYXRlKTtcclxuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VkLmVtaXQoe1xyXG4gICAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgICAgdmFsdWU6IHRoaXMuX3ZhbHVlPy5kYXRlLFxyXG4gICAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnRcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodiA9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5mb2N1c2VkVmFsdWUgPSB0aGlzLnRvZGF5O1xyXG4gICAgICAgIHRoaXMudmlld1JhbmdlID0gdGhpcy50b2RheS5tb250aC5yYW5nZTtcclxuICAgICAgICB0aGlzLm5hdmlnYXRlKDApO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMub25DbGljay5lbWl0KHtcclxuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgdmFsdWU6IHRoaXMuX3ZhbHVlPy5kYXRlLFxyXG4gICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZm9jdXNlZFZhbHVlOiBBWERhdGVUaW1lO1xyXG4gIGdldCB0b2RheSgpOiBBWERhdGVUaW1lIHtcclxuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShuZXcgRGF0ZSgpLCB0aGlzLnR5cGUpO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJlZjogRWxlbWVudFJlZikge1xyXG4gICAgLy8gc2V0IGRlZmF1bHRzXHJcbiAgICB0aGlzLmdldEhvbGlkYXkgPSBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLmhvbGlkYXlzJyk7XHJcbiAgICB0aGlzLmdldFdlZWtlbmQgPSBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLndlZWtlbmRzJyk7XHJcbiAgfVxyXG4gIGZpbmREYXkoZGF0ZTogQVhEYXRlVGltZSkge1xyXG4gICAgaWYgKHRoaXMuZGF5U3R5bGUuZmluZCgoYykgPT4gYy5kYXRlLnNwbGl0KCdUJylbMF0gPT0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF0pKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRTdHlsZShkYXRlOiBBWERhdGVUaW1lKSB7XHJcbiAgICBpZiAodGhpcy5kYXlTdHlsZS5maW5kKChjKSA9PiBjLmRhdGUuc3BsaXQoJ1QnKVswXSA9PSBkYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVswXSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF5U3R5bGUuZmluZCgoYykgPT4gYy5kYXRlLnNwbGl0KCdUJylbMF0gPT0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF0pLnN0eWxlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VGl0bGUoZGF0ZTogQVhEYXRlVGltZSkge1xyXG4gICAgaWYgKHRoaXMuZGF5U3R5bGUuZmluZCgoYykgPT4gYy5kYXRlLnNwbGl0KCdUJylbMF0gPT0gZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KCdUJylbMF0pKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRheVN0eWxlLmZpbmQoKGMpID0+IGMuZGF0ZS5zcGxpdCgnVCcpWzBdID09IGRhdGUudG9JU09TdHJpbmcoKS5zcGxpdCgnVCcpWzBdKS50ZXh0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmZvY3VzZWRWYWx1ZSA9IG5ldyBBWERhdGVUaW1lKG5ldyBEYXRlKCksIHRoaXMudHlwZSk7XHJcbiAgICAvL1xyXG4gICAgdGhpcy5pbml0TGF5b3V0KCk7XHJcbiAgICAvL1xyXG4gICAgdGhpcy52aWV3UmFuZ2UgPSB0aGlzLnRvZGF5Lm1vbnRoLnJhbmdlO1xyXG4gICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXRGb2N1cyhuZXcgQVhEYXRlVGltZSh0aGlzLnZhbHVlLCB0aGlzLnR5cGUpKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0Rm9jdXModGhpcy50b2RheSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52aWV3ID0gJ2RheSc7XHJcbiAgfVxyXG5cclxuICBnZXRWaWV3Q29tcGFpcmUodmlldzogQVhDYWxlbmRhclZpZXdUeXBlKSB7XHJcbiAgICBzd2l0Y2ggKHZpZXcpIHtcclxuICAgICAgY2FzZSAnZGF5JzpcclxuICAgICAgICByZXR1cm4gJ1lNRCc7XHJcbiAgICAgIGNhc2UgJ21vbnRoJzpcclxuICAgICAgICByZXR1cm4gJ1lNJztcclxuICAgICAgY2FzZSAneWVhcic6XHJcbiAgICAgICAgcmV0dXJuICdZJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubmF2aWdhdGUoMCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRMYXlvdXQoKSB7XHJcbiAgICBpZiAoIXRoaXMudHlwZSkge1xyXG4gICAgICB0aGlzLnR5cGUgPSBBWENvbmZpZy5nZXQoJ2RhdGVUaW1lLnR5cGUnKSB8fCAnZ3JlZ29yaWFuJztcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5sb2NhbGUpIHtcclxuICAgICAgdGhpcy5sb2NhbGUgPSB0aGlzLmRbdGhpcy50eXBlXT8ubG9jYWxlIHx8IHRoaXMubG9jYWxlO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmRpcikge1xyXG4gICAgICB0aGlzLmRpciA9IHRoaXMuZFt0aGlzLnR5cGVdPy5kaXIgfHwgJ2x0cic7XHJcbiAgICB9XHJcbiAgICB0aGlzLm51bVJvdGF0ZSA9IHRoaXMuZFt0aGlzLnR5cGVdPy5udW1iZXIgfHwgMDtcclxuICAgIGNvbnN0IHBhdGggPSAnZGF0ZVRpbWUud2Vla2RheXNTaG9ydCc7XHJcbiAgICB0aGlzLndlZWtkYXlzID0gW1xyXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LnN1bmAsIHRoaXMubG9jYWxlKSxcclxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS5tb25gLCB0aGlzLmxvY2FsZSksXHJcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0udHVlYCwgdGhpcy5sb2NhbGUpLFxyXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LndlZGAsIHRoaXMubG9jYWxlKSxcclxuICAgICAgQVhUcmFuc2xhdG9yLmdldChgJHtwYXRofS50aHVgLCB0aGlzLmxvY2FsZSksXHJcbiAgICAgIEFYVHJhbnNsYXRvci5nZXQoYCR7cGF0aH0uZnJpYCwgdGhpcy5sb2NhbGUpLFxyXG4gICAgICBBWFRyYW5zbGF0b3IuZ2V0KGAke3BhdGh9LnNhdGAsIHRoaXMubG9jYWxlKVxyXG4gICAgXTtcclxuICB9XHJcblxyXG4gIGdldFRvZGF5TmFtZSgpIHtcclxuICAgIHJldHVybiBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS50b2RheScsIHRoaXMubG9jYWxlKTtcclxuICB9XHJcblxyXG4gIHByZXYoKSB7XHJcbiAgICB0aGlzLm5hdmlnYXRlKC0xKTtcclxuICB9XHJcblxyXG4gIG5leHQoKSB7XHJcbiAgICB0aGlzLm5hdmlnYXRlKDEpO1xyXG4gIH1cclxuXHJcbiAgcm90YXRlKGFycmF5LCBuKSB7XHJcbiAgICBjb25zdCBsZW4gPSBhcnJheS5sZW5ndGg7XHJcbiAgICByZXR1cm4gIShuICUgbGVuKSA/IGFycmF5IDogbiA+IDAgPyBhcnJheS5tYXAoKGUsIGksIGEpID0+IGFbKGkgKyBuKSAlIGxlbl0pIDogYXJyYXkubWFwKChlLCBpLCBhKSA9PiBhWyhsZW4gLSAoKGxlbiAtIGkgLSBuKSAlIGxlbikpICUgbGVuXSk7XHJcbiAgfVxyXG5cclxuICBuYXZpZ2F0ZSh2YWx1ZTogbnVtYmVyIHwgQVhEYXRlVGltZSkge1xyXG4gICAgbGV0IHN0YXJ0OiBBWERhdGVUaW1lO1xyXG4gICAgbGV0IGVuZDogQVhEYXRlVGltZTtcclxuICAgIGlmICh0aGlzLnZpZXcgPT09ICdkYXknKSB7XHJcbiAgICAgIGxldCBmZDogQVhEYXRlVGltZTtcclxuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQVhEYXRlVGltZSkge1xyXG4gICAgICAgIGZkID0gdmFsdWUuc3RhcnRPZignbW9udGgnKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmZCA9IHRoaXMudmlld1JhbmdlLnN0YXJ0VGltZS5hZGQoJ2RheScsIDE1KS5hZGQoJ21vbnRoJywgdmFsdWUpLnN0YXJ0T2YoJ21vbnRoJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHN0YXJ0ID0gZmQuZmlyc3REYXlPZldlZWs7XHJcbiAgICAgIGVuZCA9IGZkLmVuZE9mKCdtb250aCcpLmVuZERheU9mV2VlaztcclxuXHJcbiAgICAgIHN0YXJ0ID0gc3RhcnQuYWRkKCdkYXknLCAtdGhpcy5udW1Sb3RhdGUpO1xyXG4gICAgICBlbmQgPSBlbmQuYWRkKCdkYXknLCA3KS5hZGQoJ2RheScsIC10aGlzLm51bVJvdGF0ZSk7XHJcblxyXG4gICAgICAvLyBUT0RPOiBhcHBseSBzdGFydCBvZiB3ZWVrXHJcbiAgICAgIGlmICghdGhpcy5yb3RhdGVkICYmIHRoaXMud2Vla2RheXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdqYWxhbGknKSB7XHJcbiAgICAgICAgICB0aGlzLndlZWtkYXlzID0gdGhpcy5yb3RhdGUodGhpcy53ZWVrZGF5cywgLXRoaXMubnVtUm90YXRlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy53ZWVrZGF5cyA9IHRoaXMucm90YXRlKHRoaXMud2Vla2RheXMsIHRoaXMubnVtUm90YXRlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucm90YXRlZCA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy52aWV3ID09PSAnbW9udGgnKSB7XHJcbiAgICAgIGxldCBmZDogQVhEYXRlVGltZTtcclxuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgQVhEYXRlVGltZSkge1xyXG4gICAgICAgIGZkID0gdmFsdWUuc3RhcnRPZigneWVhcicpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGZkID0gdGhpcy52aWV3UmFuZ2Uuc3RhcnRUaW1lLmFkZCgnZGF5JywgMTUpLmFkZCgneWVhcicsIHZhbHVlKS5zdGFydE9mKCd5ZWFyJyk7XHJcbiAgICAgIH1cclxuICAgICAgc3RhcnQgPSBmZDtcclxuICAgICAgZW5kID0gZmQuZW5kT2YoJ3llYXInKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy52aWV3ID09PSAneWVhcicpIHtcclxuICAgICAgbGV0IGZkOiBBWERhdGVUaW1lO1xyXG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBBWERhdGVUaW1lKSB7XHJcbiAgICAgICAgZmQgPSB2YWx1ZS5zdGFydE9mKCd5ZWFyJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZmQgPSB0aGlzLnZpZXdSYW5nZS5zdGFydFRpbWVcclxuICAgICAgICAgIC5hZGQoJ2RheScsIDE1KVxyXG4gICAgICAgICAgLmFkZCgneWVhcicsIHZhbHVlICogMTApXHJcbiAgICAgICAgICAuc3RhcnRPZigneWVhcicpO1xyXG4gICAgICB9XHJcbiAgICAgIHN0YXJ0ID0gZmQuYWRkKCd5ZWFyJywgLTQpO1xyXG4gICAgICBlbmQgPSBzdGFydC5hZGQoJ3llYXInLCA4KS5lbmRPZigneWVhcicpO1xyXG4gICAgfVxyXG4gICAgdGhpcy52aWV3UmFuZ2UgPSBuZXcgQVhEYXRlVGltZVJhbmdlKHN0YXJ0LCBlbmQpO1xyXG4gICAgLy9cclxuICAgIGlmICh0aGlzLmdldEhvbGlkYXkgJiYgdHlwZW9mIHRoaXMuZ2V0SG9saWRheSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICB0aGlzLmhvbGlkYXlzID0gdGhpcy5nZXRIb2xpZGF5KHN0YXJ0LmRhdGUsIGVuZC5kYXRlLCB0aGlzLnR5cGUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmdldFdlZWtlbmQgJiYgdHlwZW9mIHRoaXMuZ2V0V2Vla2VuZCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICB0aGlzLndlZWtlbmRzID0gdGhpcy5nZXRXZWVrZW5kKHN0YXJ0LmRhdGUsIGVuZC5kYXRlLCB0aGlzLnR5cGUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vXHJcbiAgICBpZiAodGhpcy52aWV3ID09PSAnZGF5Jykge1xyXG4gICAgICB0aGlzLm1hdHJpeCA9IHRoaXMubWF0cml4aWZ5KHRoaXMuYXBwbHlTdHlsZSh0aGlzLnZpZXdSYW5nZS5lbnVtdXJhdGUoJ2RheScsIHRoaXMudHlwZSkpLCA3KTtcclxuICAgICAgaWYgKHRoaXMubWF0cml4Lmxlbmd0aCA+IDAgJiYgdGhpcy5tYXRyaXhbMF0uZmluZCgoYykgPT4gYy5uZXh0TW9udGggPT09IGZhbHNlKSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5tYXRyaXguc3BsaWNlKDAsIDEpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLm1hdHJpeFt0aGlzLm1hdHJpeC5sZW5ndGggLSAxXS5maW5kKChjKSA9PiBjLm5leHRNb250aCA9PT0gZmFsc2UpID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLm1hdHJpeC5zcGxpY2UodGhpcy5tYXRyaXgubGVuZ3RoIC0gMSwgMSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAodGhpcy52aWV3ID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMubWF0cml4ID0gdGhpcy5tYXRyaXhpZnkodGhpcy5hcHBseVN0eWxlKHRoaXMudmlld1JhbmdlLmVudW11cmF0ZSgnbW9udGgnLCB0aGlzLnR5cGUpKSwgMyk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudmlldyA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHRoaXMubWF0cml4ID0gdGhpcy5tYXRyaXhpZnkodGhpcy5hcHBseVN0eWxlKHRoaXMudmlld1JhbmdlLmVudW11cmF0ZSgneWVhcicsIHRoaXMudHlwZSkpLCAzKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlTdHlsZShkYXRlczogQVhEYXRlVGltZVtdKTogYW55W10ge1xyXG4gICAgY29uc3QgaXRlbXM6IGFueVtdID0gW107XHJcbiAgICBkYXRlcy5mb3JFYWNoKChkLCBpLCBqKSA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW06IGFueSA9IHt9O1xyXG4gICAgICBpdGVtLmRhdGUgPSBkO1xyXG5cclxuICAgICAgaXRlbS5zZWxlY3RlZCA9IGQuY29tcGFpcmVOZXcobmV3IEFYRGF0ZVRpbWUodGhpcy52YWx1ZSwgdGhpcy50eXBlKSwgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSwgdGhpcy50eXBlKSA9PT0gMDtcclxuICAgICAgaXRlbS5mb2N1c2VkID0gZC5jb21wYWlyZU5ldyh0aGlzLmZvY3VzZWRWYWx1ZSwgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSwgdGhpcy50eXBlKSA9PT0gMDtcclxuICAgICAgaXRlbS50b2RheSA9IHRoaXMudG9kYXkgJiYgZC5jb21wYWlyZU5ldyh0aGlzLnRvZGF5LCB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLCB0aGlzLnR5cGUpID09PSAwO1xyXG4gICAgICBpZiAodGhpcy52aWV3ID09PSAnZGF5Jykge1xyXG4gICAgICAgIC8vICBpdGVtLm5leHRNb250aCA9IGQuY29tcGFpcmVOZXcodGhpcy52aWV3UmFuZ2Uuc3RhcnRUaW1lLmFkZCgnZGF5JywgMTApLCAnWU0nKSAhPT0gMDtcclxuICAgICAgICBpdGVtLm5leHRNb250aCA9IGQuY29tcGFpcmVOZXcodGhpcy52aWV3UmFuZ2Uuc3RhcnRUaW1lLmFkZCgnZGF5JywgMTApLCAnWU0nLCB0aGlzLnR5cGUpICE9PSAwO1xyXG5cclxuICAgICAgICBpdGVtLnVuc2VsZWN0ID0gdGhpcy5pc0luTUluTWF4UmFuZ2UoZCk7XHJcbiAgICAgICAgdGhpcy5ob2xpZGF5cy5mb3JFYWNoKChoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBjb21wID0gZC5jb21wYWlyZU5ldyhuZXcgQVhEYXRlVGltZShoLmRhdGUsIHRoaXMudHlwZSksICdZTUQnLCB0aGlzLnR5cGUpO1xyXG4gICAgICAgICAgaWYgKGNvbXAgPT09IDApIHtcclxuICAgICAgICAgICAgaXRlbS5ob2xpZGF5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0YWJsZUhvbGlkYXkgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgaXRlbS51bnNlbGVjdCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgaW5kZXhEYXkgPSBpIC0gTWF0aC5mbG9vcihpIC8gNykgKiA3O1xyXG4gICAgICAgIHRoaXMud2Vla2VuZHMuZm9yRWFjaCgoY2MpID0+IHtcclxuICAgICAgICAgIGlmIChOdW1iZXIoY2MpID09PSBpbmRleERheSkge1xyXG4gICAgICAgICAgICBpdGVtLmhvbGlkYXkgPSB0cnVlO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zZWxlY3RhYmxlSG9saWRheSA9PT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgICBpdGVtLnVuc2VsZWN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGl0ZW1zLnB1c2goaXRlbSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBpdGVtcztcclxuICB9XHJcblxyXG4gIGNoYW5nZVZpZXcoKSB7XHJcbiAgICBpZiAodGhpcy52aWV3ID09PSAnZGF5Jykge1xyXG4gICAgICB0aGlzLnZpZXcgPSAnbW9udGgnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnZpZXcgPT09ICdtb250aCcpIHtcclxuICAgICAgdGhpcy52aWV3ID0gJ3llYXInO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWF0cml4aWZ5KGFycjogYW55W10sIGNvbHMpIHtcclxuICAgIGNvbnN0IHJvd3MgPSBNYXRoLmNlaWwoYXJyLmxlbmd0aCAvIGNvbHMpO1xyXG4gICAgY29uc3QgbWF0cml4ID0gW107XHJcbiAgICBpZiAocm93cyAqIGNvbHMgPT09IGFyci5sZW5ndGgpIHtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyBpICs9IGNvbHMpIHtcclxuICAgICAgICBtYXRyaXgucHVzaChhcnIuc2xpY2UoaSwgY29scyArIGkpKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1hdHJpeDtcclxuICB9XHJcblxyXG4gIHNldERheUNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBpdGVtKSB7XHJcbiAgICBpZiAoaXRlbS51bnNlbGVjdCAhPT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gaXRlbS5kYXRlLmRhdGU7XHJcbiAgICB9XHJcblxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBpc0luTUluTWF4UmFuZ2UoZCkge1xyXG4gICAgbGV0IHIgPSBmYWxzZTtcclxuICAgIGlmIChkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgaWYgKHRoaXMubWluICYmICF0aGlzLm1heCkge1xyXG4gICAgICAgIHIgPSBkLmNvbXBhaXJlTmV3KG5ldyBBWERhdGVUaW1lKHRoaXMubWluLCB0aGlzLnR5cGUpLCB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLCB0aGlzLnR5cGUpID09PSAtMTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5tYXggJiYgIXRoaXMubWluKSB7XHJcbiAgICAgICAgciA9IGQuY29tcGFpcmVOZXcobmV3IEFYRGF0ZVRpbWUodGhpcy5tYXgsIHRoaXMudHlwZSksIHRoaXMuZ2V0Vmlld0NvbXBhaXJlKHRoaXMudmlldyksIHRoaXMudHlwZSkgPT09IDE7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMubWluICYmIHRoaXMubWF4KSB7XHJcbiAgICAgICAgciA9XHJcbiAgICAgICAgICBkLmNvbXBhaXJlTmV3KG5ldyBBWERhdGVUaW1lKHRoaXMubWluLCB0aGlzLnR5cGUpLCB0aGlzLmdldFZpZXdDb21wYWlyZSh0aGlzLnZpZXcpLCB0aGlzLnR5cGUpID09PSAtMSB8fFxyXG4gICAgICAgICAgZC5jb21wYWlyZU5ldyhuZXcgQVhEYXRlVGltZSh0aGlzLm1heCwgdGhpcy50eXBlKSwgdGhpcy5nZXRWaWV3Q29tcGFpcmUodGhpcy52aWV3KSwgdGhpcy50eXBlKSA9PT0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHI7XHJcbiAgfVxyXG5cclxuICBzZXRNb250aENsaWNrKGV2ZW50OiBNb3VzZUV2ZW50LCBkYXRlOiBBWERhdGVUaW1lKSB7XHJcbiAgICBpZiAodGhpcy5kZXB0aCA9PT0gJ21vbnRoJykge1xyXG4gICAgICB0aGlzLnZhbHVlID0gZGF0ZS5kYXRlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52aWV3ID0gJ2RheSc7XHJcbiAgICAgIHRoaXMuc2V0Rm9jdXMobmV3IEFYRGF0ZVRpbWUodGhpcy52YWx1ZSwgdGhpcy50eXBlKS5zZXQoJ3llYXInLCBkYXRlLnllYXIpLnNldCgnbW9udGgnLCBkYXRlLm1vbnRoT2ZZZWFyKSk7XHJcbiAgICB9XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHNldFllYXJDbGljayhldmVudDogTW91c2VFdmVudCwgZGF0ZTogQVhEYXRlVGltZSkge1xyXG4gICAgaWYgKHRoaXMuZGVwdGggPT09ICd5ZWFyJykge1xyXG4gICAgICB0aGlzLnZhbHVlID0gZGF0ZS5kYXRlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52aWV3ID0gJ21vbnRoJztcclxuICAgICAgdGhpcy5zZXRGb2N1cyhuZXcgQVhEYXRlVGltZSh0aGlzLnZhbHVlLCB0aGlzLnR5cGUpLnNldCgneWVhcicsIGRhdGUueWVhcikpO1xyXG4gICAgfVxyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZXRGb2N1cyhkYXRlOiBBWERhdGVUaW1lKSB7XHJcbiAgICB0aGlzLmZvY3VzZWRWYWx1ZSA9IGRhdGU7XHJcbiAgICB0aGlzLm5hdmlnYXRlKHRoaXMuZm9jdXNlZFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHNldFRvZGF5KCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMudG9kYXkuZGF0ZTtcclxuICAgIHRoaXMudmlldyA9ICdkYXknO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeUZuKGluZGV4LCBpdGVtOiBhbnkpIHtcclxuICAgIHJldHVybiBpdGVtLmRhdGUuZGF0ZS5nZXRUaW1lKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==