@evotor-dev/ui-kit 8.13.0 → 8.14.0

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 (58) hide show
  1. package/esm2022/lib/components/evo-autocomplete/components/evo-autocomplete/evo-autocomplete.component.mjs +3 -3
  2. package/esm2022/lib/components/evo-datepicker/evo-datepicker.component.mjs +3 -3
  3. package/esm2022/lib/components/evo-icon-button/evo-icon-button.component.mjs +3 -3
  4. package/esm2022/lib/components/evo-input/evo-input.component.mjs +3 -3
  5. package/esm2022/lib/components/evo-link-button/evo-link-button.component.mjs +33 -0
  6. package/esm2022/lib/components/evo-link-button/evo-link-button.module.mjs +18 -0
  7. package/esm2022/lib/components/evo-link-button/index.mjs +2 -0
  8. package/esm2022/lib/components/evo-link-button/public-api.mjs +3 -0
  9. package/esm2022/lib/components/evo-loader/evo-circular-loader.component.mjs +2 -2
  10. package/esm2022/lib/components/evo-textarea/evo-textarea.component.mjs +3 -3
  11. package/esm2022/lib/components/evo-tooltip/constants/evo-tooltip-arrow-size.mjs +3 -0
  12. package/esm2022/lib/components/evo-tooltip/constants/evo-tooltip-config.mjs +5 -0
  13. package/esm2022/lib/components/evo-tooltip/constants/evo-tooltip-connected-position.mjs +100 -0
  14. package/esm2022/lib/components/evo-tooltip/constants/evo-tooltip-default-positions-order.mjs +16 -0
  15. package/esm2022/lib/components/evo-tooltip/constants/evo-tooltip-fadein.animation.mjs +8 -0
  16. package/esm2022/lib/components/evo-tooltip/constants/evo-tooltip-offset.mjs +3 -0
  17. package/esm2022/lib/components/evo-tooltip/constants/evo-tooltip-priority-positions-order.mjs +8 -0
  18. package/esm2022/lib/components/evo-tooltip/constants/evo-tooltip-radius.mjs +3 -0
  19. package/esm2022/lib/components/evo-tooltip/directives/evo-tooltip.directive.mjs +97 -0
  20. package/esm2022/lib/components/evo-tooltip/enums/evo-tooltip-position.mjs +16 -0
  21. package/esm2022/lib/components/evo-tooltip/enums/evo-tooltip-variable-arrow-position.mjs +6 -0
  22. package/esm2022/lib/components/evo-tooltip/evo-tooltip.component.mjs +96 -0
  23. package/esm2022/lib/components/evo-tooltip/evo-tooltip.module.mjs +20 -0
  24. package/esm2022/lib/components/evo-tooltip/index.mjs +2 -0
  25. package/esm2022/lib/components/evo-tooltip/interfaces/evo-tooltip-config.mjs +2 -0
  26. package/esm2022/lib/components/evo-tooltip/interfaces/evo-tooltip-styles.mjs +2 -0
  27. package/esm2022/lib/components/evo-tooltip/public-api.mjs +3 -0
  28. package/esm2022/lib/components/evo-tooltip/services/evo-tooltip.service.mjs +177 -0
  29. package/esm2022/lib/components/evo-tooltip/types/evo-tooltip-position-type.mjs +2 -0
  30. package/esm2022/public_api.mjs +3 -1
  31. package/fesm2022/evotor-dev-ui-kit.mjs +592 -32
  32. package/fesm2022/evotor-dev-ui-kit.mjs.map +1 -1
  33. package/lib/components/evo-link-button/evo-link-button.component.d.ts +10 -0
  34. package/lib/components/evo-link-button/evo-link-button.module.d.ts +8 -0
  35. package/lib/components/evo-link-button/index.d.ts +1 -0
  36. package/lib/components/evo-link-button/public-api.d.ts +2 -0
  37. package/lib/components/evo-tooltip/constants/evo-tooltip-arrow-size.d.ts +1 -0
  38. package/lib/components/evo-tooltip/constants/evo-tooltip-config.d.ts +2 -0
  39. package/lib/components/evo-tooltip/constants/evo-tooltip-connected-position.d.ts +16 -0
  40. package/lib/components/evo-tooltip/constants/evo-tooltip-default-positions-order.d.ts +2 -0
  41. package/lib/components/evo-tooltip/constants/evo-tooltip-fadein.animation.d.ts +1 -0
  42. package/lib/components/evo-tooltip/constants/evo-tooltip-offset.d.ts +1 -0
  43. package/lib/components/evo-tooltip/constants/evo-tooltip-priority-positions-order.d.ts +4 -0
  44. package/lib/components/evo-tooltip/constants/evo-tooltip-radius.d.ts +1 -0
  45. package/lib/components/evo-tooltip/directives/evo-tooltip.directive.d.ts +31 -0
  46. package/lib/components/evo-tooltip/enums/evo-tooltip-position.d.ts +14 -0
  47. package/lib/components/evo-tooltip/enums/evo-tooltip-variable-arrow-position.d.ts +4 -0
  48. package/lib/components/evo-tooltip/evo-tooltip.component.d.ts +26 -0
  49. package/lib/components/evo-tooltip/evo-tooltip.module.d.ts +10 -0
  50. package/lib/components/evo-tooltip/index.d.ts +1 -0
  51. package/lib/components/evo-tooltip/interfaces/evo-tooltip-config.d.ts +4 -0
  52. package/lib/components/evo-tooltip/interfaces/evo-tooltip-styles.d.ts +4 -0
  53. package/lib/components/evo-tooltip/public-api.d.ts +2 -0
  54. package/lib/components/evo-tooltip/services/evo-tooltip.service.d.ts +50 -0
  55. package/lib/components/evo-tooltip/types/evo-tooltip-position-type.d.ts +2 -0
  56. package/package.json +1 -1
  57. package/public_api.d.ts +2 -0
  58. package/styles/keyframes.scss +18 -0
@@ -523,7 +523,7 @@ export class EvoDatepickerComponent extends EvoBaseControl {
523
523
  useExisting: forwardRef(() => EvoDatepickerComponent),
524
524
  multi: true,
525
525
  },
526
- ], viewQueries: [{ propertyName: "flatpickrElement", first: true, predicate: ["flatpickr"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #flatpickr class=\"evo-datepicker\" [evoUiClass]=\"totalClasses\" (click)=\"onDatepickerClick($event)\">\n <input\n #input\n type=\"text\"\n data-input\n class=\"evo-datepicker__input\"\n [evoUiClass]=\"inputClass\"\n [imask]=\"maskConfig\"\n [placeholder]=\"placeholder\"\n [readonly]=\"disabled\"\n (complete)=\"handleMaskComplete($event)\"\n />\n\n @if (isRange() && input.value) {\n <span class=\"evo-datepicker__value\">{{ input.value }}</span>\n }\n\n @if (shouldShowEmptyText()) {\n <span class=\"evo-datepicker__empty-text\">{{ isRange() ? '\u0417\u0430 \u043F\u0435\u0440\u0438\u043E\u0434' : '\u0414\u0430\u0442\u0430' }}</span>\n }\n\n @if (!disabled) {\n <span class=\"evo-datepicker__opener\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M20 3H19V2C19 1.45 18.55 1 18 1C17.45 1 17 1.45 17 2V3H7V2C7 1.45 6.55 1 6 1C5.45 1 5 1.45 5 2V3H4C2.9 3 2 3.9 2 5V21C2 22.1 2.9 23 4 23H20C21.1 23 22 22.1 22 21V5C22 3.9 21.1 3 20 3ZM19 21H5C4.45 21 4 20.55 4 20V8H20V20C20 20.55 19.55 21 19 21Z\"\n />\n </svg>\n </span>\n }\n\n @if (!uiState.isEmptyField) {\n <span class=\"evo-datepicker__opener-triangle\"></span>\n }\n</div>\n\n@if (showErrors) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n}\n", styles: ["@keyframes evo-fx-blink{50%{transform:scale(1);opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradient{0%{background-position:0 50%}50%{background-position:50vw 50%}to{background-position:100vw 50%}}:host{display:inline-block;--evo-input-prefix-content-margin: 4px 8px 4px 4px}.evo-input{--evo-input-padding-left: 12px;--evo-input-padding-right: 12px;--evo-input-padding-top: 8px;--evo-input-padding-bottom: 8px;position:relative;cursor:text}.evo-input_focused{border:solid 1px #74706F}.evo-input_disabled{color:#b0b0b0!important;background-color:#f9fafb!important;border:1px solid #E3E3E3!important;cursor:default;pointer-events:none}.evo-input_invalid{border-color:#ff1817!important}.evo-input_theme-default{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-default:hover{border:1px solid #9B9B9B}.evo-input_theme-default.evo-input_size-small{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-height: 32px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-default.evo-input_size-small:hover{border:1px solid #9B9B9B}.evo-input_theme-default.evo-input_size-small .evo-input__field{--evo-input-padding-left: 12px;--evo-input-padding-right: 12px;--evo-input-padding-top: 4px;--evo-input-padding-bottom: 4px}.evo-input_theme-default.evo-input_size-small .evo-input__field:not(:last-child){--evo-input-padding-right: 0}.evo-input_theme-rounded{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-rounded:hover{border:1px solid #9B9B9B}.evo-input_theme-rounded.evo-input_size-small{--evo-input-border-radius: 4px;--evo-input-line-height: 24px;--evo-input-font-size: 14px;--evo-input-height: 40px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-rounded.evo-input_size-small:hover{border:1px solid #9B9B9B}.evo-input_theme-rounded.evo-input_size-small .evo-input__field{--evo-input-padding-left: 12px}.evo-input_theme-rounded.evo-input_size-small .evo-input__field:last-child{--evo-input-padding-right: 12px}.evo-input_size-small{height:32px}.evo-input_size-small .evo-input__icon{margin-right:8px}.evo-input_size-small .evo-input__icon img{max-height:16px}.evo-input_size-small .evo-input__tooltip-container{top:100%}.evo-input_size-small .evo-input__tooltip-container:before{left:calc(100% - 28px)}@media (min-width: 1200px){.evo-input_size-small .evo-input__tooltip-container{top:calc(100% + 4px)}.evo-input_size-small .evo-input__tooltip-container:before{left:calc(50% - 6px)}}.evo-input__prefix-icon{display:flex;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-left:8px;fill:#91b1b8}.evo-input__prefix-icon:empty{display:none}.evo-input__prefix-icon:not(:empty)~.evo-input__field{--evo-input-padding-left: 8px}.evo-input__prefix-content{display:inline-flex;flex-shrink:0;justify-content:center;align-items:center;margin:var(--evo-input-prefix-content-margin)}.evo-input__prefix-content:empty{display:none}.evo-input__prefix-content:not(:empty)~.evo-input__field{--evo-input-padding-left: 0}.evo-input__field{width:100%;height:100%;margin:0;padding:var(--evo-input-padding-top) var(--evo-input-padding-right) var(--evo-input-padding-bottom) var(--evo-input-padding-left);color:inherit;font-weight:inherit;font-size:inherit;border:none;border-radius:inherit;outline:none}.evo-input__field::-webkit-input-placeholder{color:#9b9b9b}.evo-input__field::-moz-placeholder{color:#9b9b9b;opacity:1}.evo-input__field:-ms-input-placeholder{color:#9b9b9b}.evo-input__field:disabled{color:#b0b0b0;background-color:#f9fafb!important}.evo-input__field:not(:last-child){--evo-input-padding-right: 0}.evo-input__prefix{padding-left:12px;transition:color .2s;color:#9b9b9b}.evo-input__prefix:not(:empty)~.evo-input__field{--evo-input-padding-left: 0}.evo-input__tooltip{flex:0 0 24px;width:24px;height:24px;margin:0 8px;cursor:pointer;-webkit-user-select:none;user-select:none;fill:#91b1b8}.evo-input__icon-clear{width:24px;height:24px;margin:0 8px;cursor:pointer;-webkit-user-select:none;user-select:none;fill:#91b1b8}.evo-input__icon{margin:0 8px}.evo-input__icon img{display:block;width:100%;max-width:60px;height:auto;max-height:22px}.evo-input__tooltip-container{position:absolute;top:calc(100% - 2px);left:0;z-index:1;display:flex;width:100%;padding:10px 10px 10px 20px;color:#212121;line-height:normal;white-space:normal;background-color:#fff8e6;border-radius:4px;box-shadow:0 4px 12px #0003;cursor:default}.evo-input__tooltip-container[hidden]{display:none!important}.evo-input__tooltip-container:before{position:absolute;top:-20px;left:calc(100% - 34px);border:10px solid transparent;border-bottom-color:#fff8e6;pointer-events:none;content:\"\"}@media (min-width: 1200px){.evo-input__tooltip-container{left:calc(50% - 22px)}.evo-input__tooltip-container:before{left:calc(50% - 12px)}}.evo-input__clearable{display:flex;justify-content:center;align-items:center}.evo-input__clearable+.evo-input__additional{margin-left:-10px}.evo-input__additional{display:flex;justify-content:center;align-items:center}.evo-input__additional:not(:last-child) .evo-input__icon{margin-right:8px}.evo-input__additional+.evo-input__loading-spinner{margin-left:0}.evo-input__loading-spinner{flex:0 0 24px;width:24px;height:24px;margin:0 8px;--evo-circular-loader-color: #91B1B8}evo-datepicker{--evo-datepicker-icon-color: #212121;--evo-datepicker-range-icon-color: #212121;--evo-datepicker-range-value-white-space: nowrap}.evo-datepicker{position:relative;display:flex;flex-direction:row;flex:1 1 auto}.evo-datepicker__opener{position:absolute;top:50%;right:8px;z-index:1;margin-top:-12px;pointer-events:none}.evo-datepicker__opener svg{fill:var(--evo-datepicker-icon-color)}.evo-datepicker__input_focused{border:solid 1px #74706F}.evo-datepicker__input_disabled{color:#b0b0b0!important;background-color:#f9fafb!important;border:1px solid #E3E3E3!important;cursor:default;pointer-events:none}.evo-datepicker__input_invalid{border-color:#ff1817!important}.evo-datepicker__input_hidden{position:absolute;visibility:hidden}.evo-datepicker__opener-triangle{display:none}.evo-datepicker__description{margin-top:16px;color:#727272;text-align:center}.evo-datepicker__time-picker{margin-top:24px;text-align:left}.evo-datepicker__time-picker:last-of-type{margin-top:8px}.evo-datepicker__time-label{display:block;padding-left:25px;color:#727272}.evo-datepicker__select-wrapper{position:relative;display:flex;align-items:center}.evo-datepicker__select-wrapper:after{position:absolute;right:20px;width:8px;height:12px;background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">%0A <mask id=\"mask0\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" x=\"8\" y=\"10\" width=\"8\" height=\"5\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" fill=\"black\"/>%0A </mask>%0A <g mask=\"url(%23mask0)\">%0A <rect width=\"24\" height=\"24\" fill=\"%23212121\"/>%0A </g>%0A</svg>');background-repeat:no-repeat;background-position:center;pointer-events:none;content:\"\"}.evo-datepicker__select-wrapper:first-child{margin-right:8px}.evo-datepicker__select-wrapper:last-child{margin-left:8px}.evo-datepicker__select-field{display:inline-block;align-items:center;height:48px;padding:12px 38px 12px 16px;overflow:hidden;color:#9b9b9b;font-weight:400;font-size:16px;line-height:26px;white-space:nowrap;text-overflow:ellipsis;background-color:#fff;border:1px solid #C6C6C6;border-radius:4px;outline:0}.evo-datepicker__selectors{display:flex;justify-content:center;align-items:center;margin-top:8px;color:#9b9b9b}.evo-datepicker__select{position:absolute;top:0;left:0;z-index:10;display:block;width:100%;height:100%;cursor:pointer;opacity:0;appearance:none}.evo-datepicker__empty-text{display:inline-block;margin-right:8px;font-weight:600;line-height:22px;cursor:pointer}.evo-datepicker__apply{width:100%;margin-top:24px;padding:6px 0;color:#fff;font-family:var(--evo-font-secondary);text-transform:uppercase;background-color:#21c68b;border-radius:100px}.evo-datepicker__apply:hover{background-color:#4dd1a2}.evo-datepicker__apply:active,.evo-datepicker__apply:focus{background-color:#1eb27d}.evo-datepicker_opened .evo-datepicker__opener svg{fill:var(--evo-datepicker-icon-color)}.evo-datepicker_opened .evo-datepicker__input{color:#212121;border:solid 1px #74706F}.evo-datepicker_range{display:flex;flex-direction:row;gap:8px;align-items:center;position:relative}.evo-datepicker_range .evo-datepicker__input{position:absolute;visibility:hidden}.evo-datepicker_range .evo-datepicker__value,.evo-datepicker_range .evo-datepicker__empty-text{position:relative;display:flex;font-weight:600;line-height:22px;cursor:pointer;font-size:14px;border:none;order:2;flex:1 1;white-space:var(--evo-datepicker-range-value-white-space)}.evo-datepicker_range .evo-datepicker__opener{position:relative;display:flex;width:24px;height:24px;flex:0 0 24px;flex-shrink:0;top:auto;right:auto;margin:0;order:1;cursor:pointer;pointer-events:initial;color:var(--evo-datepicker-range-icon-color)}.evo-datepicker_range .evo-datepicker__opener svg{fill:currentColor}.evo-datepicker_range .evo-datepicker__opener-triangle{display:flex;position:relative;width:24px;height:24px;flex:0 0 24px;order:3;background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">%0A <mask id=\"mask0\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" x=\"8\" y=\"10\" width=\"8\" height=\"5\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" fill=\"black\"/>%0A </mask>%0A <g mask=\"url(%23mask0)\">%0A <rect width=\"24\" height=\"24\" fill=\"%23212121\"/>%0A </g>%0A</svg>');cursor:pointer}.evo-datepicker_range.evo-datepicker_opened .evo-datepicker__input{border:none!important;box-shadow:none!important}.evo-datepicker_folded .flatpickr-input{visibility:hidden}.evo-datepicker_folded .evo-datepicker__opener-triangle{display:none}.flatpickr-calendar{position:absolute;display:none;box-sizing:border-box;width:264px;margin:auto;padding:0;overflow:hidden;font-size:14px;line-height:24px;direction:ltr;text-align:center;background:#fff;border:0;border-radius:5px;box-shadow:0 8px 10px #00000024,0 3px 14px #0000001f;visibility:hidden;opacity:0;animation:none;touch-action:manipulation}.flatpickr-calendar.open,.flatpickr-calendar.inline{max-height:640px;visibility:visible;opacity:1}.flatpickr-calendar.open{z-index:5;display:inline-block}.flatpickr-calendar.animate.open{animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{position:relative;top:2px;display:block}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;left:22px;display:block;width:0;height:0;border:solid transparent;pointer-events:none;content:\"\"}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.rightMost:after{right:22px;left:auto}.flatpickr-calendar:before{margin:0 -5px;border-width:5px}.flatpickr-calendar:after{margin:0 -4px;border-width:4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%;display:none}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:flex;height:50px;padding:15px 30px;color:#fff;background:#f05023}.flatpickr-months .flatpickr-month{position:relative;flex:1;height:28px;overflow:hidden;color:#000000e6;line-height:1;text-align:center;background:transparent;-webkit-user-select:none;user-select:none;fill:#000000e6}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{position:static;top:0;z-index:3;display:flex;align-items:center;width:25px;height:30px;margin-top:-5px;color:#fff;line-height:16px;text-decoration:none;cursor:pointer;fill:#fff}@media (min-width: 768px){.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{width:initial;height:initial;margin-top:initial}}.flatpickr-months .flatpickr-next-month{justify-content:flex-end}@media (min-width: 768px){.flatpickr-months .flatpickr-next-month{justify-content:initial}}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled svg,.flatpickr-months .flatpickr-next-month.flatpickr-disabled svg{fill:#c6c6c6}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto;font-size:16px;font-family:var(--evo-font-secondary)}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper span{position:absolute;right:0;box-sizing:border-box;width:14px;height:50%;padding:0 4px 0 2px;line-height:50%;cursor:pointer;opacity:0}.numInputWrapper span:after{position:absolute;display:block;content:\"\"}.numInputWrapper span.arrowUp{top:0;display:none;border-bottom:0}.numInputWrapper span.arrowUp:after{top:26%;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);border-left:4px solid transparent}.numInputWrapper span.arrowDown{top:50%;display:none}.numInputWrapper span.arrowDown:after{top:40%;border-top:4px solid rgba(57,57,57,.6);border-right:4px solid transparent;border-left:4px solid transparent}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{position:absolute;right:0;left:0;display:inline-block;width:auto;height:28px;margin:auto;padding:0;color:inherit;font-weight:300;font-size:135%;line-height:inherit;line-height:1;text-align:center;transform:translateZ(0)}.flatpickr-current-month span.cur-month{display:inline-block;padding:0;color:#fff;font-weight:700;font-size:16px;font-family:var(--evo-font-secondary)}.flatpickr-current-month .numInputWrapper{display:inline-block;width:50px}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#fff}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#fff}.flatpickr-current-month input.cur-year{display:inline-block;box-sizing:border-box;width:60px;height:auto;margin:0;padding:0 0 0 .5ch;color:inherit;color:#fff;font-weight:700;font-size:inherit;font-size:14px;font-family:inherit;line-height:inherit;vertical-align:initial;background:transparent;border:0;border-radius:0;cursor:text}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{color:#c6c6c6;background:transparent;pointer-events:none}.flatpickr-weekdays{display:flex;align-items:center;width:100%;height:28px;overflow:hidden;text-align:center;background:transparent}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:flex;flex:1}span.flatpickr-weekday{display:block;width:26px;margin:0 4px 0 0;color:#9b9b9b;font-weight:400;font-size:12px;line-height:1;text-align:center;background:transparent;cursor:default}span.flatpickr-weekday:nth-child(6),span.flatpickr-weekday:nth-child(7){color:#ff1817}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;display:flex;align-items:flex-start;width:100%;overflow:hidden}.flatpickr-days:focus{outline:0}.dayContainer{display:flex;flex-wrap:wrap;box-sizing:border-box;width:100%;padding:0;text-align:left;outline:0;transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 #e6e6e6}.flatpickr-day{position:relative;display:inline-block;flex-basis:14.2857143%;justify-content:center;box-sizing:border-box;width:14.2857143%;max-width:26px;height:26px;margin:5px 4px 0 0;color:#212121;font-weight:400;font-size:12px;line-height:26px;text-align:center;background:none;border:1px solid transparent;border-radius:150px;cursor:pointer}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{color:#fff;background:#f05023;border-color:#f05023;outline:0;cursor:pointer}.flatpickr-day.today{border-color:#91b1b8}.flatpickr-day.today:hover,.flatpickr-day.today:focus{color:#fff;background:#91b1b8;border-color:#91b1b8}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{color:#fff;background:#f05023;border-color:#f05023;-webkit-box-shadow:none;box-shadow:none}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#c6c6c6;background:transparent;border-color:transparent;cursor:default}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 #569ff7,5px 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:8px;margin-right:4px}.flatpickr-weekwrapper{display:inline-block;float:left}.flatpickr-next-month.flatpickr-disabled,.flatpickr-prev-month.flatpickr-disabled{fill:#c6c6c6}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;box-shadow:1px 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#3939394d;background:transparent;border:none;cursor:default}.flatpickr-innerContainer{display:block;display:flex;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;box-sizing:border-box;max-width:264px;padding:15px 24px}.flatpickr-time{display:none;box-sizing:border-box;height:0;max-height:40px;overflow:hidden;line-height:40px;text-align:center;outline:0}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{flex:1;float:left;width:40%;height:40px}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#fff}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#fff}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{position:relative;box-sizing:border-box;height:inherit;margin:0;padding:0;color:#212121;font-size:14px;line-height:inherit;text-align:center;background:transparent;border:0;border-radius:0;box-shadow:none}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{border:0;outline:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{display:inline-block;align-self:center;float:left;width:2%;height:inherit;color:#212121;font-weight:700;line-height:inherit;-webkit-user-select:none;user-select:none}.flatpickr-time .flatpickr-am-pm{width:18%;font-weight:400;text-align:center;outline:0;cursor:pointer}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#f3f3f3}.flatpickr-input{width:100%;height:40px;padding:8px 8px 8px 12px;border:1px solid #C6C6C6;border-radius:4px;cursor:pointer;font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:400}.flatpickr-input[readonly]{pointer-events:none}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.prevMonthDay.inRange{background-color:#f05023;border-color:#f05023;box-shadow:-5px 0 #f05023,5px 0 #f05023}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 #f05023}.flatpickr-current-month input.cur-year[disabled]{color:#fff}.flatpickr-day.startRange.startRange.endRange.endRange,.flatpickr-day.selected.endRange{box-shadow:none}.flatpickr-day.startRange.startRange{position:relative;z-index:1}.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.endRange{box-shadow:-10px 0 #f05023,5px 0 #f05023}.flatpickr-monthDropdown-months{max-width:100px;color:#fff;font-weight:700;font-size:16px;font-family:var(--evo-font-secondary);text-indent:1px;text-overflow:\"\";background-color:#f05023;border:none;-webkit-appearance:none;-moz-appearance:none;pointer-events:none}@-webkit-keyframes fpFadeInDown{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes fpFadeInDown{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}}\n"], dependencies: [{ kind: "directive", type: EvoUiClassDirective, selector: "[evoUiClass]", inputs: ["class", "evoUiClass"] }, { kind: "directive", type: IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { kind: "component", type: EvoControlErrorComponent, selector: "evo-control-error", inputs: ["errors", "errorsMessages", "showCount"] }], encapsulation: i0.ViewEncapsulation.None }); }
526
+ ], viewQueries: [{ propertyName: "flatpickrElement", first: true, predicate: ["flatpickr"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #flatpickr class=\"evo-datepicker\" [evoUiClass]=\"totalClasses\" (click)=\"onDatepickerClick($event)\">\n <input\n #input\n type=\"text\"\n data-input\n class=\"evo-datepicker__input\"\n [evoUiClass]=\"inputClass\"\n [imask]=\"maskConfig\"\n [placeholder]=\"placeholder\"\n [readonly]=\"disabled\"\n (complete)=\"handleMaskComplete($event)\"\n />\n\n @if (isRange() && input.value) {\n <span class=\"evo-datepicker__value\">{{ input.value }}</span>\n }\n\n @if (shouldShowEmptyText()) {\n <span class=\"evo-datepicker__empty-text\">{{ isRange() ? '\u0417\u0430 \u043F\u0435\u0440\u0438\u043E\u0434' : '\u0414\u0430\u0442\u0430' }}</span>\n }\n\n @if (!disabled) {\n <span class=\"evo-datepicker__opener\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M20 3H19V2C19 1.45 18.55 1 18 1C17.45 1 17 1.45 17 2V3H7V2C7 1.45 6.55 1 6 1C5.45 1 5 1.45 5 2V3H4C2.9 3 2 3.9 2 5V21C2 22.1 2.9 23 4 23H20C21.1 23 22 22.1 22 21V5C22 3.9 21.1 3 20 3ZM19 21H5C4.45 21 4 20.55 4 20V8H20V20C20 20.55 19.55 21 19 21Z\"\n />\n </svg>\n </span>\n }\n\n @if (!uiState.isEmptyField) {\n <span class=\"evo-datepicker__opener-triangle\"></span>\n }\n</div>\n\n@if (showErrors) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n}\n", styles: ["@keyframes evo-fx-blink{50%{transform:scale(1);opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradient{0%{background-position:0 50%}50%{background-position:50vw 50%}to{background-position:100vw 50%}}@keyframes evo-ellipsis-animation{0%{content:\"\"}25%{content:\".\"}50%{content:\"..\"}75%{content:\"...\"}to{content:\"\"}}:host{display:inline-block;--evo-input-prefix-content-margin: 4px 8px 4px 4px}.evo-input{--evo-input-padding-left: 12px;--evo-input-padding-right: 12px;--evo-input-padding-top: 8px;--evo-input-padding-bottom: 8px;position:relative;cursor:text}.evo-input_focused{border:solid 1px #74706F}.evo-input_disabled{color:#b0b0b0!important;background-color:#f9fafb!important;border:1px solid #E3E3E3!important;cursor:default;pointer-events:none}.evo-input_invalid{border-color:#ff1817!important}.evo-input_theme-default{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-default:hover{border:1px solid #9B9B9B}.evo-input_theme-default.evo-input_size-small{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-height: 32px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-default.evo-input_size-small:hover{border:1px solid #9B9B9B}.evo-input_theme-default.evo-input_size-small .evo-input__field{--evo-input-padding-left: 12px;--evo-input-padding-right: 12px;--evo-input-padding-top: 4px;--evo-input-padding-bottom: 4px}.evo-input_theme-default.evo-input_size-small .evo-input__field:not(:last-child){--evo-input-padding-right: 0}.evo-input_theme-rounded{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-rounded:hover{border:1px solid #9B9B9B}.evo-input_theme-rounded.evo-input_size-small{--evo-input-border-radius: 4px;--evo-input-line-height: 24px;--evo-input-font-size: 14px;--evo-input-height: 40px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-rounded.evo-input_size-small:hover{border:1px solid #9B9B9B}.evo-input_theme-rounded.evo-input_size-small .evo-input__field{--evo-input-padding-left: 12px}.evo-input_theme-rounded.evo-input_size-small .evo-input__field:last-child{--evo-input-padding-right: 12px}.evo-input_size-small{height:32px}.evo-input_size-small .evo-input__icon{margin-right:8px}.evo-input_size-small .evo-input__icon img{max-height:16px}.evo-input_size-small .evo-input__tooltip-container{top:100%}.evo-input_size-small .evo-input__tooltip-container:before{left:calc(100% - 28px)}@media (min-width: 1200px){.evo-input_size-small .evo-input__tooltip-container{top:calc(100% + 4px)}.evo-input_size-small .evo-input__tooltip-container:before{left:calc(50% - 6px)}}.evo-input__prefix-icon{display:flex;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-left:8px;fill:#91b1b8}.evo-input__prefix-icon:empty{display:none}.evo-input__prefix-icon:not(:empty)~.evo-input__field{--evo-input-padding-left: 8px}.evo-input__prefix-content{display:inline-flex;flex-shrink:0;justify-content:center;align-items:center;margin:var(--evo-input-prefix-content-margin)}.evo-input__prefix-content:empty{display:none}.evo-input__prefix-content:not(:empty)~.evo-input__field{--evo-input-padding-left: 0}.evo-input__field{width:100%;height:100%;margin:0;padding:var(--evo-input-padding-top) var(--evo-input-padding-right) var(--evo-input-padding-bottom) var(--evo-input-padding-left);color:inherit;font-weight:inherit;font-size:inherit;border:none;border-radius:inherit;outline:none}.evo-input__field::-webkit-input-placeholder{color:#9b9b9b}.evo-input__field::-moz-placeholder{color:#9b9b9b;opacity:1}.evo-input__field:-ms-input-placeholder{color:#9b9b9b}.evo-input__field:disabled{color:#b0b0b0;background-color:#f9fafb!important}.evo-input__field:not(:last-child){--evo-input-padding-right: 0}.evo-input__prefix{padding-left:12px;transition:color .2s;color:#9b9b9b}.evo-input__prefix:not(:empty)~.evo-input__field{--evo-input-padding-left: 0}.evo-input__tooltip{flex:0 0 24px;width:24px;height:24px;margin:0 8px;cursor:pointer;-webkit-user-select:none;user-select:none;fill:#91b1b8}.evo-input__icon-clear{width:24px;height:24px;margin:0 8px;cursor:pointer;-webkit-user-select:none;user-select:none;fill:#91b1b8}.evo-input__icon{margin:0 8px}.evo-input__icon img{display:block;width:100%;max-width:60px;height:auto;max-height:22px}.evo-input__tooltip-container{position:absolute;top:calc(100% - 2px);left:0;z-index:1;display:flex;width:100%;padding:10px 10px 10px 20px;color:#212121;line-height:normal;white-space:normal;background-color:#fff8e6;border-radius:4px;box-shadow:0 4px 12px #0003;cursor:default}.evo-input__tooltip-container[hidden]{display:none!important}.evo-input__tooltip-container:before{position:absolute;top:-20px;left:calc(100% - 34px);border:10px solid transparent;border-bottom-color:#fff8e6;pointer-events:none;content:\"\"}@media (min-width: 1200px){.evo-input__tooltip-container{left:calc(50% - 22px)}.evo-input__tooltip-container:before{left:calc(50% - 12px)}}.evo-input__clearable{display:flex;justify-content:center;align-items:center}.evo-input__clearable+.evo-input__additional{margin-left:-10px}.evo-input__additional{display:flex;justify-content:center;align-items:center}.evo-input__additional:not(:last-child) .evo-input__icon{margin-right:8px}.evo-input__additional+.evo-input__loading-spinner{margin-left:0}.evo-input__loading-spinner{flex:0 0 24px;width:24px;height:24px;margin:0 8px;--evo-circular-loader-color: #91B1B8}evo-datepicker{--evo-datepicker-icon-color: #212121;--evo-datepicker-range-icon-color: #212121;--evo-datepicker-range-value-white-space: nowrap}.evo-datepicker{position:relative;display:flex;flex-direction:row;flex:1 1 auto}.evo-datepicker__opener{position:absolute;top:50%;right:8px;z-index:1;margin-top:-12px;pointer-events:none}.evo-datepicker__opener svg{fill:var(--evo-datepicker-icon-color)}.evo-datepicker__input_focused{border:solid 1px #74706F}.evo-datepicker__input_disabled{color:#b0b0b0!important;background-color:#f9fafb!important;border:1px solid #E3E3E3!important;cursor:default;pointer-events:none}.evo-datepicker__input_invalid{border-color:#ff1817!important}.evo-datepicker__input_hidden{position:absolute;visibility:hidden}.evo-datepicker__opener-triangle{display:none}.evo-datepicker__description{margin-top:16px;color:#727272;text-align:center}.evo-datepicker__time-picker{margin-top:24px;text-align:left}.evo-datepicker__time-picker:last-of-type{margin-top:8px}.evo-datepicker__time-label{display:block;padding-left:25px;color:#727272}.evo-datepicker__select-wrapper{position:relative;display:flex;align-items:center}.evo-datepicker__select-wrapper:after{position:absolute;right:20px;width:8px;height:12px;background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">%0A <mask id=\"mask0\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" x=\"8\" y=\"10\" width=\"8\" height=\"5\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" fill=\"black\"/>%0A </mask>%0A <g mask=\"url(%23mask0)\">%0A <rect width=\"24\" height=\"24\" fill=\"%23212121\"/>%0A </g>%0A</svg>');background-repeat:no-repeat;background-position:center;pointer-events:none;content:\"\"}.evo-datepicker__select-wrapper:first-child{margin-right:8px}.evo-datepicker__select-wrapper:last-child{margin-left:8px}.evo-datepicker__select-field{display:inline-block;align-items:center;height:48px;padding:12px 38px 12px 16px;overflow:hidden;color:#9b9b9b;font-weight:400;font-size:16px;line-height:26px;white-space:nowrap;text-overflow:ellipsis;background-color:#fff;border:1px solid #C6C6C6;border-radius:4px;outline:0}.evo-datepicker__selectors{display:flex;justify-content:center;align-items:center;margin-top:8px;color:#9b9b9b}.evo-datepicker__select{position:absolute;top:0;left:0;z-index:10;display:block;width:100%;height:100%;cursor:pointer;opacity:0;appearance:none}.evo-datepicker__empty-text{display:inline-block;margin-right:8px;font-weight:600;line-height:22px;cursor:pointer}.evo-datepicker__apply{width:100%;margin-top:24px;padding:6px 0;color:#fff;font-family:var(--evo-font-secondary);text-transform:uppercase;background-color:#21c68b;border-radius:100px}.evo-datepicker__apply:hover{background-color:#4dd1a2}.evo-datepicker__apply:active,.evo-datepicker__apply:focus{background-color:#1eb27d}.evo-datepicker_opened .evo-datepicker__opener svg{fill:var(--evo-datepicker-icon-color)}.evo-datepicker_opened .evo-datepicker__input{color:#212121;border:solid 1px #74706F}.evo-datepicker_range{display:flex;flex-direction:row;gap:8px;align-items:center;position:relative}.evo-datepicker_range .evo-datepicker__input{position:absolute;visibility:hidden}.evo-datepicker_range .evo-datepicker__value,.evo-datepicker_range .evo-datepicker__empty-text{position:relative;display:flex;font-weight:600;line-height:22px;cursor:pointer;font-size:14px;border:none;order:2;flex:1 1;white-space:var(--evo-datepicker-range-value-white-space)}.evo-datepicker_range .evo-datepicker__opener{position:relative;display:flex;width:24px;height:24px;flex:0 0 24px;flex-shrink:0;top:auto;right:auto;margin:0;order:1;cursor:pointer;pointer-events:initial;color:var(--evo-datepicker-range-icon-color)}.evo-datepicker_range .evo-datepicker__opener svg{fill:currentColor}.evo-datepicker_range .evo-datepicker__opener-triangle{display:flex;position:relative;width:24px;height:24px;flex:0 0 24px;order:3;background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">%0A <mask id=\"mask0\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" x=\"8\" y=\"10\" width=\"8\" height=\"5\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" fill=\"black\"/>%0A </mask>%0A <g mask=\"url(%23mask0)\">%0A <rect width=\"24\" height=\"24\" fill=\"%23212121\"/>%0A </g>%0A</svg>');cursor:pointer}.evo-datepicker_range.evo-datepicker_opened .evo-datepicker__input{border:none!important;box-shadow:none!important}.evo-datepicker_folded .flatpickr-input{visibility:hidden}.evo-datepicker_folded .evo-datepicker__opener-triangle{display:none}.flatpickr-calendar{position:absolute;display:none;box-sizing:border-box;width:264px;margin:auto;padding:0;overflow:hidden;font-size:14px;line-height:24px;direction:ltr;text-align:center;background:#fff;border:0;border-radius:5px;box-shadow:0 8px 10px #00000024,0 3px 14px #0000001f;visibility:hidden;opacity:0;animation:none;touch-action:manipulation}.flatpickr-calendar.open,.flatpickr-calendar.inline{max-height:640px;visibility:visible;opacity:1}.flatpickr-calendar.open{z-index:5;display:inline-block}.flatpickr-calendar.animate.open{animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{position:relative;top:2px;display:block}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;left:22px;display:block;width:0;height:0;border:solid transparent;pointer-events:none;content:\"\"}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.rightMost:after{right:22px;left:auto}.flatpickr-calendar:before{margin:0 -5px;border-width:5px}.flatpickr-calendar:after{margin:0 -4px;border-width:4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%;display:none}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:flex;height:50px;padding:15px 30px;color:#fff;background:#f05023}.flatpickr-months .flatpickr-month{position:relative;flex:1;height:28px;overflow:hidden;color:#000000e6;line-height:1;text-align:center;background:transparent;-webkit-user-select:none;user-select:none;fill:#000000e6}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{position:static;top:0;z-index:3;display:flex;align-items:center;width:25px;height:30px;margin-top:-5px;color:#fff;line-height:16px;text-decoration:none;cursor:pointer;fill:#fff}@media (min-width: 768px){.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{width:initial;height:initial;margin-top:initial}}.flatpickr-months .flatpickr-next-month{justify-content:flex-end}@media (min-width: 768px){.flatpickr-months .flatpickr-next-month{justify-content:initial}}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled svg,.flatpickr-months .flatpickr-next-month.flatpickr-disabled svg{fill:#c6c6c6}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto;font-size:16px;font-family:var(--evo-font-secondary)}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper span{position:absolute;right:0;box-sizing:border-box;width:14px;height:50%;padding:0 4px 0 2px;line-height:50%;cursor:pointer;opacity:0}.numInputWrapper span:after{position:absolute;display:block;content:\"\"}.numInputWrapper span.arrowUp{top:0;display:none;border-bottom:0}.numInputWrapper span.arrowUp:after{top:26%;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);border-left:4px solid transparent}.numInputWrapper span.arrowDown{top:50%;display:none}.numInputWrapper span.arrowDown:after{top:40%;border-top:4px solid rgba(57,57,57,.6);border-right:4px solid transparent;border-left:4px solid transparent}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{position:absolute;right:0;left:0;display:inline-block;width:auto;height:28px;margin:auto;padding:0;color:inherit;font-weight:300;font-size:135%;line-height:inherit;line-height:1;text-align:center;transform:translateZ(0)}.flatpickr-current-month span.cur-month{display:inline-block;padding:0;color:#fff;font-weight:700;font-size:16px;font-family:var(--evo-font-secondary)}.flatpickr-current-month .numInputWrapper{display:inline-block;width:50px}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#fff}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#fff}.flatpickr-current-month input.cur-year{display:inline-block;box-sizing:border-box;width:60px;height:auto;margin:0;padding:0 0 0 .5ch;color:inherit;color:#fff;font-weight:700;font-size:inherit;font-size:14px;font-family:inherit;line-height:inherit;vertical-align:initial;background:transparent;border:0;border-radius:0;cursor:text}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{color:#c6c6c6;background:transparent;pointer-events:none}.flatpickr-weekdays{display:flex;align-items:center;width:100%;height:28px;overflow:hidden;text-align:center;background:transparent}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:flex;flex:1}span.flatpickr-weekday{display:block;width:26px;margin:0 4px 0 0;color:#9b9b9b;font-weight:400;font-size:12px;line-height:1;text-align:center;background:transparent;cursor:default}span.flatpickr-weekday:nth-child(6),span.flatpickr-weekday:nth-child(7){color:#ff1817}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;display:flex;align-items:flex-start;width:100%;overflow:hidden}.flatpickr-days:focus{outline:0}.dayContainer{display:flex;flex-wrap:wrap;box-sizing:border-box;width:100%;padding:0;text-align:left;outline:0;transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 #e6e6e6}.flatpickr-day{position:relative;display:inline-block;flex-basis:14.2857143%;justify-content:center;box-sizing:border-box;width:14.2857143%;max-width:26px;height:26px;margin:5px 4px 0 0;color:#212121;font-weight:400;font-size:12px;line-height:26px;text-align:center;background:none;border:1px solid transparent;border-radius:150px;cursor:pointer}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{color:#fff;background:#f05023;border-color:#f05023;outline:0;cursor:pointer}.flatpickr-day.today{border-color:#91b1b8}.flatpickr-day.today:hover,.flatpickr-day.today:focus{color:#fff;background:#91b1b8;border-color:#91b1b8}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{color:#fff;background:#f05023;border-color:#f05023;-webkit-box-shadow:none;box-shadow:none}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#c6c6c6;background:transparent;border-color:transparent;cursor:default}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 #569ff7,5px 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:8px;margin-right:4px}.flatpickr-weekwrapper{display:inline-block;float:left}.flatpickr-next-month.flatpickr-disabled,.flatpickr-prev-month.flatpickr-disabled{fill:#c6c6c6}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;box-shadow:1px 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#3939394d;background:transparent;border:none;cursor:default}.flatpickr-innerContainer{display:block;display:flex;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;box-sizing:border-box;max-width:264px;padding:15px 24px}.flatpickr-time{display:none;box-sizing:border-box;height:0;max-height:40px;overflow:hidden;line-height:40px;text-align:center;outline:0}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{flex:1;float:left;width:40%;height:40px}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#fff}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#fff}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{position:relative;box-sizing:border-box;height:inherit;margin:0;padding:0;color:#212121;font-size:14px;line-height:inherit;text-align:center;background:transparent;border:0;border-radius:0;box-shadow:none}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{border:0;outline:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{display:inline-block;align-self:center;float:left;width:2%;height:inherit;color:#212121;font-weight:700;line-height:inherit;-webkit-user-select:none;user-select:none}.flatpickr-time .flatpickr-am-pm{width:18%;font-weight:400;text-align:center;outline:0;cursor:pointer}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#f3f3f3}.flatpickr-input{width:100%;height:40px;padding:8px 8px 8px 12px;border:1px solid #C6C6C6;border-radius:4px;cursor:pointer;font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:400}.flatpickr-input[readonly]{pointer-events:none}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.prevMonthDay.inRange{background-color:#f05023;border-color:#f05023;box-shadow:-5px 0 #f05023,5px 0 #f05023}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 #f05023}.flatpickr-current-month input.cur-year[disabled]{color:#fff}.flatpickr-day.startRange.startRange.endRange.endRange,.flatpickr-day.selected.endRange{box-shadow:none}.flatpickr-day.startRange.startRange{position:relative;z-index:1}.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.endRange{box-shadow:-10px 0 #f05023,5px 0 #f05023}.flatpickr-monthDropdown-months{max-width:100px;color:#fff;font-weight:700;font-size:16px;font-family:var(--evo-font-secondary);text-indent:1px;text-overflow:\"\";background-color:#f05023;border:none;-webkit-appearance:none;-moz-appearance:none;pointer-events:none}@-webkit-keyframes fpFadeInDown{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes fpFadeInDown{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}}\n"], dependencies: [{ kind: "directive", type: EvoUiClassDirective, selector: "[evoUiClass]", inputs: ["class", "evoUiClass"] }, { kind: "directive", type: IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }, { kind: "component", type: EvoControlErrorComponent, selector: "evo-control-error", inputs: ["errors", "errorsMessages", "showCount"] }], encapsulation: i0.ViewEncapsulation.None }); }
527
527
  }
528
528
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: EvoDatepickerComponent, decorators: [{
529
529
  type: Component,
@@ -533,7 +533,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
533
533
  useExisting: forwardRef(() => EvoDatepickerComponent),
534
534
  multi: true,
535
535
  },
536
- ], standalone: true, imports: [EvoUiClassDirective, IMaskDirective, EvoControlErrorComponent], template: "<div #flatpickr class=\"evo-datepicker\" [evoUiClass]=\"totalClasses\" (click)=\"onDatepickerClick($event)\">\n <input\n #input\n type=\"text\"\n data-input\n class=\"evo-datepicker__input\"\n [evoUiClass]=\"inputClass\"\n [imask]=\"maskConfig\"\n [placeholder]=\"placeholder\"\n [readonly]=\"disabled\"\n (complete)=\"handleMaskComplete($event)\"\n />\n\n @if (isRange() && input.value) {\n <span class=\"evo-datepicker__value\">{{ input.value }}</span>\n }\n\n @if (shouldShowEmptyText()) {\n <span class=\"evo-datepicker__empty-text\">{{ isRange() ? '\u0417\u0430 \u043F\u0435\u0440\u0438\u043E\u0434' : '\u0414\u0430\u0442\u0430' }}</span>\n }\n\n @if (!disabled) {\n <span class=\"evo-datepicker__opener\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M20 3H19V2C19 1.45 18.55 1 18 1C17.45 1 17 1.45 17 2V3H7V2C7 1.45 6.55 1 6 1C5.45 1 5 1.45 5 2V3H4C2.9 3 2 3.9 2 5V21C2 22.1 2.9 23 4 23H20C21.1 23 22 22.1 22 21V5C22 3.9 21.1 3 20 3ZM19 21H5C4.45 21 4 20.55 4 20V8H20V20C20 20.55 19.55 21 19 21Z\"\n />\n </svg>\n </span>\n }\n\n @if (!uiState.isEmptyField) {\n <span class=\"evo-datepicker__opener-triangle\"></span>\n }\n</div>\n\n@if (showErrors) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n}\n", styles: ["@keyframes evo-fx-blink{50%{transform:scale(1);opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradient{0%{background-position:0 50%}50%{background-position:50vw 50%}to{background-position:100vw 50%}}:host{display:inline-block;--evo-input-prefix-content-margin: 4px 8px 4px 4px}.evo-input{--evo-input-padding-left: 12px;--evo-input-padding-right: 12px;--evo-input-padding-top: 8px;--evo-input-padding-bottom: 8px;position:relative;cursor:text}.evo-input_focused{border:solid 1px #74706F}.evo-input_disabled{color:#b0b0b0!important;background-color:#f9fafb!important;border:1px solid #E3E3E3!important;cursor:default;pointer-events:none}.evo-input_invalid{border-color:#ff1817!important}.evo-input_theme-default{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-default:hover{border:1px solid #9B9B9B}.evo-input_theme-default.evo-input_size-small{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-height: 32px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-default.evo-input_size-small:hover{border:1px solid #9B9B9B}.evo-input_theme-default.evo-input_size-small .evo-input__field{--evo-input-padding-left: 12px;--evo-input-padding-right: 12px;--evo-input-padding-top: 4px;--evo-input-padding-bottom: 4px}.evo-input_theme-default.evo-input_size-small .evo-input__field:not(:last-child){--evo-input-padding-right: 0}.evo-input_theme-rounded{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-rounded:hover{border:1px solid #9B9B9B}.evo-input_theme-rounded.evo-input_size-small{--evo-input-border-radius: 4px;--evo-input-line-height: 24px;--evo-input-font-size: 14px;--evo-input-height: 40px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-rounded.evo-input_size-small:hover{border:1px solid #9B9B9B}.evo-input_theme-rounded.evo-input_size-small .evo-input__field{--evo-input-padding-left: 12px}.evo-input_theme-rounded.evo-input_size-small .evo-input__field:last-child{--evo-input-padding-right: 12px}.evo-input_size-small{height:32px}.evo-input_size-small .evo-input__icon{margin-right:8px}.evo-input_size-small .evo-input__icon img{max-height:16px}.evo-input_size-small .evo-input__tooltip-container{top:100%}.evo-input_size-small .evo-input__tooltip-container:before{left:calc(100% - 28px)}@media (min-width: 1200px){.evo-input_size-small .evo-input__tooltip-container{top:calc(100% + 4px)}.evo-input_size-small .evo-input__tooltip-container:before{left:calc(50% - 6px)}}.evo-input__prefix-icon{display:flex;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-left:8px;fill:#91b1b8}.evo-input__prefix-icon:empty{display:none}.evo-input__prefix-icon:not(:empty)~.evo-input__field{--evo-input-padding-left: 8px}.evo-input__prefix-content{display:inline-flex;flex-shrink:0;justify-content:center;align-items:center;margin:var(--evo-input-prefix-content-margin)}.evo-input__prefix-content:empty{display:none}.evo-input__prefix-content:not(:empty)~.evo-input__field{--evo-input-padding-left: 0}.evo-input__field{width:100%;height:100%;margin:0;padding:var(--evo-input-padding-top) var(--evo-input-padding-right) var(--evo-input-padding-bottom) var(--evo-input-padding-left);color:inherit;font-weight:inherit;font-size:inherit;border:none;border-radius:inherit;outline:none}.evo-input__field::-webkit-input-placeholder{color:#9b9b9b}.evo-input__field::-moz-placeholder{color:#9b9b9b;opacity:1}.evo-input__field:-ms-input-placeholder{color:#9b9b9b}.evo-input__field:disabled{color:#b0b0b0;background-color:#f9fafb!important}.evo-input__field:not(:last-child){--evo-input-padding-right: 0}.evo-input__prefix{padding-left:12px;transition:color .2s;color:#9b9b9b}.evo-input__prefix:not(:empty)~.evo-input__field{--evo-input-padding-left: 0}.evo-input__tooltip{flex:0 0 24px;width:24px;height:24px;margin:0 8px;cursor:pointer;-webkit-user-select:none;user-select:none;fill:#91b1b8}.evo-input__icon-clear{width:24px;height:24px;margin:0 8px;cursor:pointer;-webkit-user-select:none;user-select:none;fill:#91b1b8}.evo-input__icon{margin:0 8px}.evo-input__icon img{display:block;width:100%;max-width:60px;height:auto;max-height:22px}.evo-input__tooltip-container{position:absolute;top:calc(100% - 2px);left:0;z-index:1;display:flex;width:100%;padding:10px 10px 10px 20px;color:#212121;line-height:normal;white-space:normal;background-color:#fff8e6;border-radius:4px;box-shadow:0 4px 12px #0003;cursor:default}.evo-input__tooltip-container[hidden]{display:none!important}.evo-input__tooltip-container:before{position:absolute;top:-20px;left:calc(100% - 34px);border:10px solid transparent;border-bottom-color:#fff8e6;pointer-events:none;content:\"\"}@media (min-width: 1200px){.evo-input__tooltip-container{left:calc(50% - 22px)}.evo-input__tooltip-container:before{left:calc(50% - 12px)}}.evo-input__clearable{display:flex;justify-content:center;align-items:center}.evo-input__clearable+.evo-input__additional{margin-left:-10px}.evo-input__additional{display:flex;justify-content:center;align-items:center}.evo-input__additional:not(:last-child) .evo-input__icon{margin-right:8px}.evo-input__additional+.evo-input__loading-spinner{margin-left:0}.evo-input__loading-spinner{flex:0 0 24px;width:24px;height:24px;margin:0 8px;--evo-circular-loader-color: #91B1B8}evo-datepicker{--evo-datepicker-icon-color: #212121;--evo-datepicker-range-icon-color: #212121;--evo-datepicker-range-value-white-space: nowrap}.evo-datepicker{position:relative;display:flex;flex-direction:row;flex:1 1 auto}.evo-datepicker__opener{position:absolute;top:50%;right:8px;z-index:1;margin-top:-12px;pointer-events:none}.evo-datepicker__opener svg{fill:var(--evo-datepicker-icon-color)}.evo-datepicker__input_focused{border:solid 1px #74706F}.evo-datepicker__input_disabled{color:#b0b0b0!important;background-color:#f9fafb!important;border:1px solid #E3E3E3!important;cursor:default;pointer-events:none}.evo-datepicker__input_invalid{border-color:#ff1817!important}.evo-datepicker__input_hidden{position:absolute;visibility:hidden}.evo-datepicker__opener-triangle{display:none}.evo-datepicker__description{margin-top:16px;color:#727272;text-align:center}.evo-datepicker__time-picker{margin-top:24px;text-align:left}.evo-datepicker__time-picker:last-of-type{margin-top:8px}.evo-datepicker__time-label{display:block;padding-left:25px;color:#727272}.evo-datepicker__select-wrapper{position:relative;display:flex;align-items:center}.evo-datepicker__select-wrapper:after{position:absolute;right:20px;width:8px;height:12px;background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">%0A <mask id=\"mask0\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" x=\"8\" y=\"10\" width=\"8\" height=\"5\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" fill=\"black\"/>%0A </mask>%0A <g mask=\"url(%23mask0)\">%0A <rect width=\"24\" height=\"24\" fill=\"%23212121\"/>%0A </g>%0A</svg>');background-repeat:no-repeat;background-position:center;pointer-events:none;content:\"\"}.evo-datepicker__select-wrapper:first-child{margin-right:8px}.evo-datepicker__select-wrapper:last-child{margin-left:8px}.evo-datepicker__select-field{display:inline-block;align-items:center;height:48px;padding:12px 38px 12px 16px;overflow:hidden;color:#9b9b9b;font-weight:400;font-size:16px;line-height:26px;white-space:nowrap;text-overflow:ellipsis;background-color:#fff;border:1px solid #C6C6C6;border-radius:4px;outline:0}.evo-datepicker__selectors{display:flex;justify-content:center;align-items:center;margin-top:8px;color:#9b9b9b}.evo-datepicker__select{position:absolute;top:0;left:0;z-index:10;display:block;width:100%;height:100%;cursor:pointer;opacity:0;appearance:none}.evo-datepicker__empty-text{display:inline-block;margin-right:8px;font-weight:600;line-height:22px;cursor:pointer}.evo-datepicker__apply{width:100%;margin-top:24px;padding:6px 0;color:#fff;font-family:var(--evo-font-secondary);text-transform:uppercase;background-color:#21c68b;border-radius:100px}.evo-datepicker__apply:hover{background-color:#4dd1a2}.evo-datepicker__apply:active,.evo-datepicker__apply:focus{background-color:#1eb27d}.evo-datepicker_opened .evo-datepicker__opener svg{fill:var(--evo-datepicker-icon-color)}.evo-datepicker_opened .evo-datepicker__input{color:#212121;border:solid 1px #74706F}.evo-datepicker_range{display:flex;flex-direction:row;gap:8px;align-items:center;position:relative}.evo-datepicker_range .evo-datepicker__input{position:absolute;visibility:hidden}.evo-datepicker_range .evo-datepicker__value,.evo-datepicker_range .evo-datepicker__empty-text{position:relative;display:flex;font-weight:600;line-height:22px;cursor:pointer;font-size:14px;border:none;order:2;flex:1 1;white-space:var(--evo-datepicker-range-value-white-space)}.evo-datepicker_range .evo-datepicker__opener{position:relative;display:flex;width:24px;height:24px;flex:0 0 24px;flex-shrink:0;top:auto;right:auto;margin:0;order:1;cursor:pointer;pointer-events:initial;color:var(--evo-datepicker-range-icon-color)}.evo-datepicker_range .evo-datepicker__opener svg{fill:currentColor}.evo-datepicker_range .evo-datepicker__opener-triangle{display:flex;position:relative;width:24px;height:24px;flex:0 0 24px;order:3;background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">%0A <mask id=\"mask0\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" x=\"8\" y=\"10\" width=\"8\" height=\"5\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" fill=\"black\"/>%0A </mask>%0A <g mask=\"url(%23mask0)\">%0A <rect width=\"24\" height=\"24\" fill=\"%23212121\"/>%0A </g>%0A</svg>');cursor:pointer}.evo-datepicker_range.evo-datepicker_opened .evo-datepicker__input{border:none!important;box-shadow:none!important}.evo-datepicker_folded .flatpickr-input{visibility:hidden}.evo-datepicker_folded .evo-datepicker__opener-triangle{display:none}.flatpickr-calendar{position:absolute;display:none;box-sizing:border-box;width:264px;margin:auto;padding:0;overflow:hidden;font-size:14px;line-height:24px;direction:ltr;text-align:center;background:#fff;border:0;border-radius:5px;box-shadow:0 8px 10px #00000024,0 3px 14px #0000001f;visibility:hidden;opacity:0;animation:none;touch-action:manipulation}.flatpickr-calendar.open,.flatpickr-calendar.inline{max-height:640px;visibility:visible;opacity:1}.flatpickr-calendar.open{z-index:5;display:inline-block}.flatpickr-calendar.animate.open{animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{position:relative;top:2px;display:block}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;left:22px;display:block;width:0;height:0;border:solid transparent;pointer-events:none;content:\"\"}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.rightMost:after{right:22px;left:auto}.flatpickr-calendar:before{margin:0 -5px;border-width:5px}.flatpickr-calendar:after{margin:0 -4px;border-width:4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%;display:none}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:flex;height:50px;padding:15px 30px;color:#fff;background:#f05023}.flatpickr-months .flatpickr-month{position:relative;flex:1;height:28px;overflow:hidden;color:#000000e6;line-height:1;text-align:center;background:transparent;-webkit-user-select:none;user-select:none;fill:#000000e6}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{position:static;top:0;z-index:3;display:flex;align-items:center;width:25px;height:30px;margin-top:-5px;color:#fff;line-height:16px;text-decoration:none;cursor:pointer;fill:#fff}@media (min-width: 768px){.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{width:initial;height:initial;margin-top:initial}}.flatpickr-months .flatpickr-next-month{justify-content:flex-end}@media (min-width: 768px){.flatpickr-months .flatpickr-next-month{justify-content:initial}}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled svg,.flatpickr-months .flatpickr-next-month.flatpickr-disabled svg{fill:#c6c6c6}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto;font-size:16px;font-family:var(--evo-font-secondary)}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper span{position:absolute;right:0;box-sizing:border-box;width:14px;height:50%;padding:0 4px 0 2px;line-height:50%;cursor:pointer;opacity:0}.numInputWrapper span:after{position:absolute;display:block;content:\"\"}.numInputWrapper span.arrowUp{top:0;display:none;border-bottom:0}.numInputWrapper span.arrowUp:after{top:26%;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);border-left:4px solid transparent}.numInputWrapper span.arrowDown{top:50%;display:none}.numInputWrapper span.arrowDown:after{top:40%;border-top:4px solid rgba(57,57,57,.6);border-right:4px solid transparent;border-left:4px solid transparent}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{position:absolute;right:0;left:0;display:inline-block;width:auto;height:28px;margin:auto;padding:0;color:inherit;font-weight:300;font-size:135%;line-height:inherit;line-height:1;text-align:center;transform:translateZ(0)}.flatpickr-current-month span.cur-month{display:inline-block;padding:0;color:#fff;font-weight:700;font-size:16px;font-family:var(--evo-font-secondary)}.flatpickr-current-month .numInputWrapper{display:inline-block;width:50px}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#fff}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#fff}.flatpickr-current-month input.cur-year{display:inline-block;box-sizing:border-box;width:60px;height:auto;margin:0;padding:0 0 0 .5ch;color:inherit;color:#fff;font-weight:700;font-size:inherit;font-size:14px;font-family:inherit;line-height:inherit;vertical-align:initial;background:transparent;border:0;border-radius:0;cursor:text}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{color:#c6c6c6;background:transparent;pointer-events:none}.flatpickr-weekdays{display:flex;align-items:center;width:100%;height:28px;overflow:hidden;text-align:center;background:transparent}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:flex;flex:1}span.flatpickr-weekday{display:block;width:26px;margin:0 4px 0 0;color:#9b9b9b;font-weight:400;font-size:12px;line-height:1;text-align:center;background:transparent;cursor:default}span.flatpickr-weekday:nth-child(6),span.flatpickr-weekday:nth-child(7){color:#ff1817}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;display:flex;align-items:flex-start;width:100%;overflow:hidden}.flatpickr-days:focus{outline:0}.dayContainer{display:flex;flex-wrap:wrap;box-sizing:border-box;width:100%;padding:0;text-align:left;outline:0;transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 #e6e6e6}.flatpickr-day{position:relative;display:inline-block;flex-basis:14.2857143%;justify-content:center;box-sizing:border-box;width:14.2857143%;max-width:26px;height:26px;margin:5px 4px 0 0;color:#212121;font-weight:400;font-size:12px;line-height:26px;text-align:center;background:none;border:1px solid transparent;border-radius:150px;cursor:pointer}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{color:#fff;background:#f05023;border-color:#f05023;outline:0;cursor:pointer}.flatpickr-day.today{border-color:#91b1b8}.flatpickr-day.today:hover,.flatpickr-day.today:focus{color:#fff;background:#91b1b8;border-color:#91b1b8}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{color:#fff;background:#f05023;border-color:#f05023;-webkit-box-shadow:none;box-shadow:none}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#c6c6c6;background:transparent;border-color:transparent;cursor:default}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 #569ff7,5px 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:8px;margin-right:4px}.flatpickr-weekwrapper{display:inline-block;float:left}.flatpickr-next-month.flatpickr-disabled,.flatpickr-prev-month.flatpickr-disabled{fill:#c6c6c6}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;box-shadow:1px 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#3939394d;background:transparent;border:none;cursor:default}.flatpickr-innerContainer{display:block;display:flex;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;box-sizing:border-box;max-width:264px;padding:15px 24px}.flatpickr-time{display:none;box-sizing:border-box;height:0;max-height:40px;overflow:hidden;line-height:40px;text-align:center;outline:0}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{flex:1;float:left;width:40%;height:40px}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#fff}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#fff}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{position:relative;box-sizing:border-box;height:inherit;margin:0;padding:0;color:#212121;font-size:14px;line-height:inherit;text-align:center;background:transparent;border:0;border-radius:0;box-shadow:none}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{border:0;outline:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{display:inline-block;align-self:center;float:left;width:2%;height:inherit;color:#212121;font-weight:700;line-height:inherit;-webkit-user-select:none;user-select:none}.flatpickr-time .flatpickr-am-pm{width:18%;font-weight:400;text-align:center;outline:0;cursor:pointer}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#f3f3f3}.flatpickr-input{width:100%;height:40px;padding:8px 8px 8px 12px;border:1px solid #C6C6C6;border-radius:4px;cursor:pointer;font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:400}.flatpickr-input[readonly]{pointer-events:none}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.prevMonthDay.inRange{background-color:#f05023;border-color:#f05023;box-shadow:-5px 0 #f05023,5px 0 #f05023}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 #f05023}.flatpickr-current-month input.cur-year[disabled]{color:#fff}.flatpickr-day.startRange.startRange.endRange.endRange,.flatpickr-day.selected.endRange{box-shadow:none}.flatpickr-day.startRange.startRange{position:relative;z-index:1}.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.endRange{box-shadow:-10px 0 #f05023,5px 0 #f05023}.flatpickr-monthDropdown-months{max-width:100px;color:#fff;font-weight:700;font-size:16px;font-family:var(--evo-font-secondary);text-indent:1px;text-overflow:\"\";background-color:#f05023;border:none;-webkit-appearance:none;-moz-appearance:none;pointer-events:none}@-webkit-keyframes fpFadeInDown{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes fpFadeInDown{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}}\n"] }]
536
+ ], standalone: true, imports: [EvoUiClassDirective, IMaskDirective, EvoControlErrorComponent], template: "<div #flatpickr class=\"evo-datepicker\" [evoUiClass]=\"totalClasses\" (click)=\"onDatepickerClick($event)\">\n <input\n #input\n type=\"text\"\n data-input\n class=\"evo-datepicker__input\"\n [evoUiClass]=\"inputClass\"\n [imask]=\"maskConfig\"\n [placeholder]=\"placeholder\"\n [readonly]=\"disabled\"\n (complete)=\"handleMaskComplete($event)\"\n />\n\n @if (isRange() && input.value) {\n <span class=\"evo-datepicker__value\">{{ input.value }}</span>\n }\n\n @if (shouldShowEmptyText()) {\n <span class=\"evo-datepicker__empty-text\">{{ isRange() ? '\u0417\u0430 \u043F\u0435\u0440\u0438\u043E\u0434' : '\u0414\u0430\u0442\u0430' }}</span>\n }\n\n @if (!disabled) {\n <span class=\"evo-datepicker__opener\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M20 3H19V2C19 1.45 18.55 1 18 1C17.45 1 17 1.45 17 2V3H7V2C7 1.45 6.55 1 6 1C5.45 1 5 1.45 5 2V3H4C2.9 3 2 3.9 2 5V21C2 22.1 2.9 23 4 23H20C21.1 23 22 22.1 22 21V5C22 3.9 21.1 3 20 3ZM19 21H5C4.45 21 4 20.55 4 20V8H20V20C20 20.55 19.55 21 19 21Z\"\n />\n </svg>\n </span>\n }\n\n @if (!uiState.isEmptyField) {\n <span class=\"evo-datepicker__opener-triangle\"></span>\n }\n</div>\n\n@if (showErrors) {\n <evo-control-error [errors]=\"control.errors\" [errorsMessages]=\"errorsMessages\" />\n}\n", styles: ["@keyframes evo-fx-blink{50%{transform:scale(1);opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes gradient{0%{background-position:0 50%}50%{background-position:50vw 50%}to{background-position:100vw 50%}}@keyframes evo-ellipsis-animation{0%{content:\"\"}25%{content:\".\"}50%{content:\"..\"}75%{content:\"...\"}to{content:\"\"}}:host{display:inline-block;--evo-input-prefix-content-margin: 4px 8px 4px 4px}.evo-input{--evo-input-padding-left: 12px;--evo-input-padding-right: 12px;--evo-input-padding-top: 8px;--evo-input-padding-bottom: 8px;position:relative;cursor:text}.evo-input_focused{border:solid 1px #74706F}.evo-input_disabled{color:#b0b0b0!important;background-color:#f9fafb!important;border:1px solid #E3E3E3!important;cursor:default;pointer-events:none}.evo-input_invalid{border-color:#ff1817!important}.evo-input_theme-default{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-default:hover{border:1px solid #9B9B9B}.evo-input_theme-default.evo-input_size-small{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-height: 32px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-default.evo-input_size-small:hover{border:1px solid #9B9B9B}.evo-input_theme-default.evo-input_size-small .evo-input__field{--evo-input-padding-left: 12px;--evo-input-padding-right: 12px;--evo-input-padding-top: 4px;--evo-input-padding-bottom: 4px}.evo-input_theme-default.evo-input_size-small .evo-input__field:not(:last-child){--evo-input-padding-right: 0}.evo-input_theme-rounded{--evo-input-height: 40px;--evo-input-border-radius: 4px;--evo-input-font-size: 14px;--evo-input-line-height: 24px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-rounded:hover{border:1px solid #9B9B9B}.evo-input_theme-rounded.evo-input_size-small{--evo-input-border-radius: 4px;--evo-input-line-height: 24px;--evo-input-font-size: 14px;--evo-input-height: 40px;--evo-input-border-radius: 256px;display:flex;align-items:center;height:var(--evo-input-height);color:#212121;font-weight:400;font-size:var(--evo-input-font-size);font-family:var(--evo-font);line-height:var(--evo-input-line-height);white-space:nowrap;background-color:#fff;border:1px solid #C6C6C6;border-radius:var(--evo-input-border-radius);outline:none;transition:color .3s,box-shadow .3s,background .3s,border .3s}.evo-input_theme-rounded.evo-input_size-small:hover{border:1px solid #9B9B9B}.evo-input_theme-rounded.evo-input_size-small .evo-input__field{--evo-input-padding-left: 12px}.evo-input_theme-rounded.evo-input_size-small .evo-input__field:last-child{--evo-input-padding-right: 12px}.evo-input_size-small{height:32px}.evo-input_size-small .evo-input__icon{margin-right:8px}.evo-input_size-small .evo-input__icon img{max-height:16px}.evo-input_size-small .evo-input__tooltip-container{top:100%}.evo-input_size-small .evo-input__tooltip-container:before{left:calc(100% - 28px)}@media (min-width: 1200px){.evo-input_size-small .evo-input__tooltip-container{top:calc(100% + 4px)}.evo-input_size-small .evo-input__tooltip-container:before{left:calc(50% - 6px)}}.evo-input__prefix-icon{display:flex;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;margin-left:8px;fill:#91b1b8}.evo-input__prefix-icon:empty{display:none}.evo-input__prefix-icon:not(:empty)~.evo-input__field{--evo-input-padding-left: 8px}.evo-input__prefix-content{display:inline-flex;flex-shrink:0;justify-content:center;align-items:center;margin:var(--evo-input-prefix-content-margin)}.evo-input__prefix-content:empty{display:none}.evo-input__prefix-content:not(:empty)~.evo-input__field{--evo-input-padding-left: 0}.evo-input__field{width:100%;height:100%;margin:0;padding:var(--evo-input-padding-top) var(--evo-input-padding-right) var(--evo-input-padding-bottom) var(--evo-input-padding-left);color:inherit;font-weight:inherit;font-size:inherit;border:none;border-radius:inherit;outline:none}.evo-input__field::-webkit-input-placeholder{color:#9b9b9b}.evo-input__field::-moz-placeholder{color:#9b9b9b;opacity:1}.evo-input__field:-ms-input-placeholder{color:#9b9b9b}.evo-input__field:disabled{color:#b0b0b0;background-color:#f9fafb!important}.evo-input__field:not(:last-child){--evo-input-padding-right: 0}.evo-input__prefix{padding-left:12px;transition:color .2s;color:#9b9b9b}.evo-input__prefix:not(:empty)~.evo-input__field{--evo-input-padding-left: 0}.evo-input__tooltip{flex:0 0 24px;width:24px;height:24px;margin:0 8px;cursor:pointer;-webkit-user-select:none;user-select:none;fill:#91b1b8}.evo-input__icon-clear{width:24px;height:24px;margin:0 8px;cursor:pointer;-webkit-user-select:none;user-select:none;fill:#91b1b8}.evo-input__icon{margin:0 8px}.evo-input__icon img{display:block;width:100%;max-width:60px;height:auto;max-height:22px}.evo-input__tooltip-container{position:absolute;top:calc(100% - 2px);left:0;z-index:1;display:flex;width:100%;padding:10px 10px 10px 20px;color:#212121;line-height:normal;white-space:normal;background-color:#fff8e6;border-radius:4px;box-shadow:0 4px 12px #0003;cursor:default}.evo-input__tooltip-container[hidden]{display:none!important}.evo-input__tooltip-container:before{position:absolute;top:-20px;left:calc(100% - 34px);border:10px solid transparent;border-bottom-color:#fff8e6;pointer-events:none;content:\"\"}@media (min-width: 1200px){.evo-input__tooltip-container{left:calc(50% - 22px)}.evo-input__tooltip-container:before{left:calc(50% - 12px)}}.evo-input__clearable{display:flex;justify-content:center;align-items:center}.evo-input__clearable+.evo-input__additional{margin-left:-10px}.evo-input__additional{display:flex;justify-content:center;align-items:center}.evo-input__additional:not(:last-child) .evo-input__icon{margin-right:8px}.evo-input__additional+.evo-input__loading-spinner{margin-left:0}.evo-input__loading-spinner{flex:0 0 24px;width:24px;height:24px;margin:0 8px;--evo-circular-loader-color: #91B1B8}evo-datepicker{--evo-datepicker-icon-color: #212121;--evo-datepicker-range-icon-color: #212121;--evo-datepicker-range-value-white-space: nowrap}.evo-datepicker{position:relative;display:flex;flex-direction:row;flex:1 1 auto}.evo-datepicker__opener{position:absolute;top:50%;right:8px;z-index:1;margin-top:-12px;pointer-events:none}.evo-datepicker__opener svg{fill:var(--evo-datepicker-icon-color)}.evo-datepicker__input_focused{border:solid 1px #74706F}.evo-datepicker__input_disabled{color:#b0b0b0!important;background-color:#f9fafb!important;border:1px solid #E3E3E3!important;cursor:default;pointer-events:none}.evo-datepicker__input_invalid{border-color:#ff1817!important}.evo-datepicker__input_hidden{position:absolute;visibility:hidden}.evo-datepicker__opener-triangle{display:none}.evo-datepicker__description{margin-top:16px;color:#727272;text-align:center}.evo-datepicker__time-picker{margin-top:24px;text-align:left}.evo-datepicker__time-picker:last-of-type{margin-top:8px}.evo-datepicker__time-label{display:block;padding-left:25px;color:#727272}.evo-datepicker__select-wrapper{position:relative;display:flex;align-items:center}.evo-datepicker__select-wrapper:after{position:absolute;right:20px;width:8px;height:12px;background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">%0A <mask id=\"mask0\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" x=\"8\" y=\"10\" width=\"8\" height=\"5\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" fill=\"black\"/>%0A </mask>%0A <g mask=\"url(%23mask0)\">%0A <rect width=\"24\" height=\"24\" fill=\"%23212121\"/>%0A </g>%0A</svg>');background-repeat:no-repeat;background-position:center;pointer-events:none;content:\"\"}.evo-datepicker__select-wrapper:first-child{margin-right:8px}.evo-datepicker__select-wrapper:last-child{margin-left:8px}.evo-datepicker__select-field{display:inline-block;align-items:center;height:48px;padding:12px 38px 12px 16px;overflow:hidden;color:#9b9b9b;font-weight:400;font-size:16px;line-height:26px;white-space:nowrap;text-overflow:ellipsis;background-color:#fff;border:1px solid #C6C6C6;border-radius:4px;outline:0}.evo-datepicker__selectors{display:flex;justify-content:center;align-items:center;margin-top:8px;color:#9b9b9b}.evo-datepicker__select{position:absolute;top:0;left:0;z-index:10;display:block;width:100%;height:100%;cursor:pointer;opacity:0;appearance:none}.evo-datepicker__empty-text{display:inline-block;margin-right:8px;font-weight:600;line-height:22px;cursor:pointer}.evo-datepicker__apply{width:100%;margin-top:24px;padding:6px 0;color:#fff;font-family:var(--evo-font-secondary);text-transform:uppercase;background-color:#21c68b;border-radius:100px}.evo-datepicker__apply:hover{background-color:#4dd1a2}.evo-datepicker__apply:active,.evo-datepicker__apply:focus{background-color:#1eb27d}.evo-datepicker_opened .evo-datepicker__opener svg{fill:var(--evo-datepicker-icon-color)}.evo-datepicker_opened .evo-datepicker__input{color:#212121;border:solid 1px #74706F}.evo-datepicker_range{display:flex;flex-direction:row;gap:8px;align-items:center;position:relative}.evo-datepicker_range .evo-datepicker__input{position:absolute;visibility:hidden}.evo-datepicker_range .evo-datepicker__value,.evo-datepicker_range .evo-datepicker__empty-text{position:relative;display:flex;font-weight:600;line-height:22px;cursor:pointer;font-size:14px;border:none;order:2;flex:1 1;white-space:var(--evo-datepicker-range-value-white-space)}.evo-datepicker_range .evo-datepicker__opener{position:relative;display:flex;width:24px;height:24px;flex:0 0 24px;flex-shrink:0;top:auto;right:auto;margin:0;order:1;cursor:pointer;pointer-events:initial;color:var(--evo-datepicker-range-icon-color)}.evo-datepicker_range .evo-datepicker__opener svg{fill:currentColor}.evo-datepicker_range .evo-datepicker__opener-triangle{display:flex;position:relative;width:24px;height:24px;flex:0 0 24px;order:3;background:url('data:image/svg+xml,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">%0A <mask id=\"mask0\" mask-type=\"alpha\" maskUnits=\"userSpaceOnUse\" x=\"8\" y=\"10\" width=\"8\" height=\"5\">%0A <path d=\"M8.81066 10C8.14248 10 7.80786 10.8079 8.28033 11.2803L11.4697 14.4697C11.7626 14.7626 12.2374 14.7626 12.5303 14.4697L15.7197 11.2803C16.1921 10.8079 15.8575 10 15.1893 10H8.81066Z\" fill=\"black\"/>%0A </mask>%0A <g mask=\"url(%23mask0)\">%0A <rect width=\"24\" height=\"24\" fill=\"%23212121\"/>%0A </g>%0A</svg>');cursor:pointer}.evo-datepicker_range.evo-datepicker_opened .evo-datepicker__input{border:none!important;box-shadow:none!important}.evo-datepicker_folded .flatpickr-input{visibility:hidden}.evo-datepicker_folded .evo-datepicker__opener-triangle{display:none}.flatpickr-calendar{position:absolute;display:none;box-sizing:border-box;width:264px;margin:auto;padding:0;overflow:hidden;font-size:14px;line-height:24px;direction:ltr;text-align:center;background:#fff;border:0;border-radius:5px;box-shadow:0 8px 10px #00000024,0 3px 14px #0000001f;visibility:hidden;opacity:0;animation:none;touch-action:manipulation}.flatpickr-calendar.open,.flatpickr-calendar.inline{max-height:640px;visibility:visible;opacity:1}.flatpickr-calendar.open{z-index:5;display:inline-block}.flatpickr-calendar.animate.open{animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{position:relative;top:2px;display:block}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-calendar .hasWeeks .dayContainer,.flatpickr-calendar .hasTime .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:40px;border-top:1px solid #e6e6e6}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:before,.flatpickr-calendar:after{position:absolute;left:22px;display:block;width:0;height:0;border:solid transparent;pointer-events:none;content:\"\"}.flatpickr-calendar.rightMost:before,.flatpickr-calendar.rightMost:after{right:22px;left:auto}.flatpickr-calendar:before{margin:0 -5px;border-width:5px}.flatpickr-calendar:after{margin:0 -4px;border-width:4px}.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after{bottom:100%;display:none}.flatpickr-calendar.arrowTop:before{border-bottom-color:#e6e6e6}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#e6e6e6}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:flex;height:50px;padding:15px 30px;color:#fff;background:#f05023}.flatpickr-months .flatpickr-month{position:relative;flex:1;height:28px;overflow:hidden;color:#000000e6;line-height:1;text-align:center;background:transparent;-webkit-user-select:none;user-select:none;fill:#000000e6}.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{position:static;top:0;z-index:3;display:flex;align-items:center;width:25px;height:30px;margin-top:-5px;color:#fff;line-height:16px;text-decoration:none;cursor:pointer;fill:#fff}@media (min-width: 768px){.flatpickr-months .flatpickr-prev-month,.flatpickr-months .flatpickr-next-month{width:initial;height:initial;margin-top:initial}}.flatpickr-months .flatpickr-next-month{justify-content:flex-end}@media (min-width: 768px){.flatpickr-months .flatpickr-next-month{justify-content:initial}}.flatpickr-months .flatpickr-prev-month.flatpickr-disabled svg,.flatpickr-months .flatpickr-next-month.flatpickr-disabled svg{fill:#c6c6c6}.flatpickr-months .flatpickr-prev-month i,.flatpickr-months .flatpickr-next-month i{position:relative}.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,.flatpickr-months .flatpickr-next-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,.flatpickr-months .flatpickr-next-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-prev-month svg,.flatpickr-months .flatpickr-next-month svg{width:14px;height:14px}.flatpickr-months .flatpickr-prev-month svg path,.flatpickr-months .flatpickr-next-month svg path{transition:fill .1s;fill:inherit}.numInputWrapper{position:relative;height:auto;font-size:16px;font-family:var(--evo-font-secondary)}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper span{position:absolute;right:0;box-sizing:border-box;width:14px;height:50%;padding:0 4px 0 2px;line-height:50%;cursor:pointer;opacity:0}.numInputWrapper span:after{position:absolute;display:block;content:\"\"}.numInputWrapper span.arrowUp{top:0;display:none;border-bottom:0}.numInputWrapper span.arrowUp:after{top:26%;border-right:4px solid transparent;border-bottom:4px solid rgba(57,57,57,.6);border-left:4px solid transparent}.numInputWrapper span.arrowDown{top:50%;display:none}.numInputWrapper span.arrowDown:after{top:40%;border-top:4px solid rgba(57,57,57,.6);border-right:4px solid transparent;border-left:4px solid transparent}.numInputWrapper span svg{width:inherit;height:auto}.numInputWrapper span svg path{fill:#00000080}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{position:absolute;right:0;left:0;display:inline-block;width:auto;height:28px;margin:auto;padding:0;color:inherit;font-weight:300;font-size:135%;line-height:inherit;line-height:1;text-align:center;transform:translateZ(0)}.flatpickr-current-month span.cur-month{display:inline-block;padding:0;color:#fff;font-weight:700;font-size:16px;font-family:var(--evo-font-secondary)}.flatpickr-current-month .numInputWrapper{display:inline-block;width:50px}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#fff}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#fff}.flatpickr-current-month input.cur-year{display:inline-block;box-sizing:border-box;width:60px;height:auto;margin:0;padding:0 0 0 .5ch;color:inherit;color:#fff;font-weight:700;font-size:inherit;font-size:14px;font-family:inherit;line-height:inherit;vertical-align:initial;background:transparent;border:0;border-radius:0;cursor:text}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{color:#c6c6c6;background:transparent;pointer-events:none}.flatpickr-weekdays{display:flex;align-items:center;width:100%;height:28px;overflow:hidden;text-align:center;background:transparent}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:flex;flex:1}span.flatpickr-weekday{display:block;width:26px;margin:0 4px 0 0;color:#9b9b9b;font-weight:400;font-size:12px;line-height:1;text-align:center;background:transparent;cursor:default}span.flatpickr-weekday:nth-child(6),span.flatpickr-weekday:nth-child(7){color:#ff1817}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;display:flex;align-items:flex-start;width:100%;overflow:hidden}.flatpickr-days:focus{outline:0}.dayContainer{display:flex;flex-wrap:wrap;box-sizing:border-box;width:100%;padding:0;text-align:left;outline:0;transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 #e6e6e6}.flatpickr-day{position:relative;display:inline-block;flex-basis:14.2857143%;justify-content:center;box-sizing:border-box;width:14.2857143%;max-width:26px;height:26px;margin:5px 4px 0 0;color:#212121;font-weight:400;font-size:12px;line-height:26px;text-align:center;background:none;border:1px solid transparent;border-radius:150px;cursor:pointer}.flatpickr-day.inRange,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.today.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day:hover,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.nextMonthDay:hover,.flatpickr-day:focus,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.nextMonthDay:focus{color:#fff;background:#f05023;border-color:#f05023;outline:0;cursor:pointer}.flatpickr-day.today{border-color:#91b1b8}.flatpickr-day.today:hover,.flatpickr-day.today:focus{color:#fff;background:#91b1b8;border-color:#91b1b8}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange,.flatpickr-day.selected.inRange,.flatpickr-day.startRange.inRange,.flatpickr-day.endRange.inRange,.flatpickr-day.selected:focus,.flatpickr-day.startRange:focus,.flatpickr-day.endRange:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange:hover,.flatpickr-day.endRange:hover,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.endRange.nextMonthDay{color:#fff;background:#f05023;border-color:#f05023;-webkit-box-shadow:none;box-shadow:none}.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange,.flatpickr-day.endRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange,.flatpickr-day.endRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)){-webkit-box-shadow:-10px 0 0 #569ff7;box-shadow:-10px 0 #569ff7}.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange,.flatpickr-day.endRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 #e6e6e6,5px 0 #e6e6e6}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.notAllowed.nextMonthDay{color:#c6c6c6;background:transparent;border-color:transparent;cursor:default}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 #569ff7,5px 0 #569ff7}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:8px;margin-right:4px}.flatpickr-weekwrapper{display:inline-block;float:left}.flatpickr-next-month.flatpickr-disabled,.flatpickr-prev-month.flatpickr-disabled{fill:#c6c6c6}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;box-shadow:1px 0 #e6e6e6}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#3939394d;background:transparent;border:none;cursor:default}.flatpickr-innerContainer{display:block;display:flex;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;box-sizing:border-box;max-width:264px;padding:15px 24px}.flatpickr-time{display:none;box-sizing:border-box;height:0;max-height:40px;overflow:hidden;line-height:40px;text-align:center;outline:0}.flatpickr-time:after{content:\"\";display:table;clear:both}.flatpickr-time .numInputWrapper{flex:1;float:left;width:40%;height:40px}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#fff}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#fff}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{position:relative;box-sizing:border-box;height:inherit;margin:0;padding:0;color:#212121;font-size:14px;line-height:inherit;text-align:center;background:transparent;border:0;border-radius:0;box-shadow:none}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{border:0;outline:0}.flatpickr-time .flatpickr-time-separator,.flatpickr-time .flatpickr-am-pm{display:inline-block;align-self:center;float:left;width:2%;height:inherit;color:#212121;font-weight:700;line-height:inherit;-webkit-user-select:none;user-select:none}.flatpickr-time .flatpickr-am-pm{width:18%;font-weight:400;text-align:center;outline:0;cursor:pointer}.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time .flatpickr-am-pm:focus{background:#f3f3f3}.flatpickr-input{width:100%;height:40px;padding:8px 8px 8px 12px;border:1px solid #C6C6C6;border-radius:4px;cursor:pointer;font-family:var(--evo-font);font-style:normal;font-size:14px;line-height:24px;font-weight:400}.flatpickr-input[readonly]{pointer-events:none}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.prevMonthDay.inRange{background-color:#f05023;border-color:#f05023;box-shadow:-5px 0 #f05023,5px 0 #f05023}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 #f05023}.flatpickr-current-month input.cur-year[disabled]{color:#fff}.flatpickr-day.startRange.startRange.endRange.endRange,.flatpickr-day.selected.endRange{box-shadow:none}.flatpickr-day.startRange.startRange{position:relative;z-index:1}.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.endRange{box-shadow:-10px 0 #f05023,5px 0 #f05023}.flatpickr-monthDropdown-months{max-width:100px;color:#fff;font-weight:700;font-size:16px;font-family:var(--evo-font-secondary);text-indent:1px;text-overflow:\"\";background-color:#f05023;border:none;-webkit-appearance:none;-moz-appearance:none;pointer-events:none}@-webkit-keyframes fpFadeInDown{0%{transform:translate3d(0,-20px,0);opacity:0}to{transform:translateZ(0);opacity:1}}@keyframes fpFadeInDown{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translate3d(0,0,0);transform:translateZ(0);opacity:1}}\n"] }]
537
537
  }], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i0.Injector }], propDecorators: { flatpickrElement: [{
538
538
  type: ViewChild,
539
539
  args: ['flatpickr', { static: true }]
@@ -558,4 +558,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
558
558
  }], closePicker: [{
559
559
  type: Output
560
560
  }] } });
561
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLWRhdGVwaWNrZXIvZXZvLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLWRhdGVwaWNrZXIvZXZvLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUVWLEtBQUssRUFLTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXVCLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFDLFVBQVUsRUFBRSxlQUFlLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQ2hHLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDOztBQUU1RSxjQUFjLCtCQUErQixDQUFDO0FBRTlDLElBQUssZUFFSjtBQUZELFdBQUssZUFBZTtJQUNoQixrQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFGSSxlQUFl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QXNCO2tCQWZsQyxTQUFTOytCQUNJLGdCQUFnQixpQkFHWCxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDOzRCQUNyRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSixjQUNXLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBRSx3QkFBd0IsQ0FBQzsySEFPeEUsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJdEMsTUFBTTtzQkFETCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUdOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RmxhdHBpY2tyT3B0aW9uc30gZnJvbSAnLi9mbGF0cGlja3Itb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtjbG9uZURlZXAsIGlzRXF1YWx9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge2Nzc0NsYXNzZXMsIHJlbmRlclJhbmdlVGltZX0gZnJvbSAnLi90ZW1wbGF0ZXMnO1xuaW1wb3J0IHtFdm9CYXNlQ29udHJvbH0gZnJvbSAnLi4vLi4vY29tbW9uL2V2by1iYXNlLWNvbnRyb2wnO1xuaW1wb3J0IHtFdm9Db250cm9sU3RhdGVzfSBmcm9tICcuLi8uLi9jb21tb24vZXZvLWNvbnRyb2wtc3RhdGUtbWFuYWdlci9ldm8tY29udHJvbC1zdGF0ZXMuZW51bSc7XG5pbXBvcnQgZmxhdHBpY2tyIGZyb20gJ2ZsYXRwaWNrcic7XG5pbXBvcnQge0V2b0NvbnRyb2xFcnJvckNvbXBvbmVudH0gZnJvbSAnLi4vZXZvLWNvbnRyb2wtZXJyb3IvZXZvLWNvbnRyb2wtZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7SU1hc2tEaXJlY3RpdmV9IGZyb20gJ2FuZ3VsYXItaW1hc2snO1xuaW1wb3J0IHtFdm9VaUNsYXNzRGlyZWN0aXZlfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2V2by11aS1jbGFzcy5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2ZsYXRwaWNrci1vcHRpb25zLmludGVyZmFjZSc7XG5cbmVudW0gRGF0ZXBpY2tlck1vZGVzIHtcbiAgICBSQU5HRSA9ICdyYW5nZScsXG59XG5cbmludGVyZmFjZSBPcHRpb24ge1xuICAgIGRpc2FibGVkOiBib29sZWFuO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbnR5cGUgU2VsZWN0ZWREYXRlcyA9IHN0cmluZ1tdIHwgRGF0ZVtdO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V2by1kYXRlcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXZvLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2V2by1kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFdm9EYXRlcGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRXZvVWlDbGFzc0RpcmVjdGl2ZSwgSU1hc2tEaXJlY3RpdmUsIEV2b0NvbnRyb2xFcnJvckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEV2b0RhdGVwaWNrZXJDb21wb25lbnRcbiAgICBleHRlbmRzIEV2b0Jhc2VDb250cm9sXG4gICAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveVxue1xuICAgIEBWaWV3Q2hpbGQoJ2ZsYXRwaWNrcicsIHtzdGF0aWM6IHRydWV9KVxuICAgIGZsYXRwaWNrckVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBASW5wdXQoKVxuICAgIGNvbmZpZzogRmxhdHBpY2tyT3B0aW9ucztcblxuICAgIEBJbnB1dCgpXG4gICAgbWFza2VkSW5wdXQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSB0aGVtZT86IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGZvbGRlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBzZXREYXRlOiBTZWxlY3RlZERhdGVzO1xuXG4gICAgQElucHV0KClcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBtYXhSYW5nZURheXM6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgYXBwZW5kVG9Cb2R5ID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGNsb3NlUGlja2VyID0gbmV3IEV2ZW50RW1pdHRlcjxbRGF0ZSwgRGF0ZV0+KCk7XG5cbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgdWlTdGF0ZSA9IHtcbiAgICAgICAgaXNPcGVuOiBmYWxzZSxcbiAgICAgICAgaXNFbXB0eUZpZWxkOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgZWxlbWVudHM6IGFueSA9IHt9O1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgbWFza0NvbmZpZzoge21hc2s6IGFueTsgcGF0dGVybj86IHN0cmluZzsgbWF4PzogRGF0ZX07XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBwcml2YXRlIGZsYXRwaWNrcjogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBvbkNoYW5nZSA9ICh2YWx1ZSkgPT4ge307XG4gICAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBTZWxlY3RlZERhdGVzKSB7XG4gICAgICAgIHRoaXMudXBkYXRlUGlja2VySWZOZWVkKHZhbHVlKTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodmFsdWUpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblxuICAgIGhhbmRsZU1hc2tDb21wbGV0ZSh2YWx1ZSkge1xuICAgICAgICBpZiAodGhpcy5tYXNrZWRJbnB1dCkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuZmxhdHBpY2tyRWxlbWVudC5uYXRpdmVFbGVtZW50Ll9mbGF0cGlja3IucGFyc2VEYXRlKHZhbHVlLCB0aGlzLmNvbmZpZy5kYXRlRm9ybWF0KTtcbiAgICAgICAgICAgIHRoaXMuc2V0RGF0ZUZyb21JbnB1dChkYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldERhdGVGcm9tSW5wdXQoZGF0ZTogU2VsZWN0ZWREYXRlcykge1xuICAgICAgICB0aGlzLmZsYXRwaWNrckVsZW1lbnQubmF0aXZlRWxlbWVudC5fZmxhdHBpY2tyLnNldERhdGUoZGF0ZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmdldENvbmZpZygpO1xuXG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZsYXRwaWNrciA9IGZsYXRwaWNrcih0aGlzLmZsYXRwaWNrckVsZW1lbnQubmF0aXZlRWxlbWVudCwgY29uZmlnKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2V0RGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXREYXRlRnJvbUlucHV0KHRoaXMuc2V0RGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXN0b21pemVQaWNrZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmhhc093blByb3BlcnR5KCdzZXREYXRlJykgJiYgY2hhbmdlc1snc2V0RGF0ZSddLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXREYXRlRnJvbUlucHV0KGNoYW5nZXNbJ3NldERhdGUnXS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdE1hc2soKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3IgPSBudWxsO1xuICAgICAgICB0aGlzLmZsYXRwaWNrckVsZW1lbnQubmF0aXZlRWxlbWVudC5fZmxhdHBpY2tyLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRDbGFzcygpOiB7W2Nzc0NsYXNzOiBzdHJpbmddOiBib29sZWFufSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCxcbiAgICAgICAgICAgIGhpZGRlbjogIXRoaXMuaXNWYWx1ZUV4aXN0KCksXG4gICAgICAgICAgICB2YWxpZDogdGhpcy5jdXJyZW50U3RhdGVbRXZvQ29udHJvbFN0YXRlcy52YWxpZF0sXG4gICAgICAgICAgICBpbnZhbGlkOiB0aGlzLmN1cnJlbnRTdGF0ZVtFdm9Db250cm9sU3RhdGVzLmludmFsaWRdLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldCB0b3RhbENsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLnRoZW1lKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2godGhpcy50aGVtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy51aVN0YXRlLmlzT3Blbikge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdvcGVuZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvbGRlZCkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdmb2xkZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjbGFzc2VzO1xuICAgIH1cblxuICAgIGluaXRNYXNrKCkge1xuICAgICAgICBpZiAodGhpcy5jb25maWcuYWxsb3dJbnB1dCAmJiB0aGlzLm1hc2tlZElucHV0KSB7XG4gICAgICAgICAgICB0aGlzLm1hc2tDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgcGF0dGVybjogdGhpcy5jb25maWcuZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgICAgICBtYXg6IHRoaXMuY29uZmlnLm1heERhdGUgYXMgRGF0ZSxcbiAgICAgICAgICAgICAgICBtYXNrOiBEYXRlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRGF0ZXBpY2tlckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh0aGlzLmNvbmZpZy5hbGxvd0lucHV0ICYmIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5jb250YWlucyhjc3NDbGFzc2VzLklOUFVUKSkgfHxcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRvZ2dsZURhdGVwaWNrZXIoKTtcbiAgICB9XG5cbiAgICB0b2dnbGVEYXRlcGlja2VyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZsYXRwaWNrci50b2dnbGUoKTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKHN0YXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBzdGF0ZTtcbiAgICB9XG5cbiAgICBpc1ZhbHVlRXhpc3QoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5mbGF0cGlja3IpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHREYXRlID0gdGhpcy5jb25maWcuZGVmYXVsdERhdGU7XG5cbiAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGRlZmF1bHREYXRlKSA/ICh0aGlzLmNvbmZpZy5kZWZhdWx0RGF0ZSBhcyBEYXRlW10pLmxlbmd0aCA+IDAgOiAhIWRlZmF1bHREYXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmxhdHBpY2tyLnNlbGVjdGVkRGF0ZXMubGVuZ3RoID4gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzUmFuZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5tb2RlID09PSBEYXRlcGlja2VyTW9kZXMuUkFOR0U7XG4gICAgfVxuXG4gICAgc2hvdWxkU2hvd0VtcHR5VGV4dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzVmFsdWVFeGlzdCgpICYmICF0aGlzLmNvbmZpZy5hbHRJbnB1dDtcbiAgICB9XG5cbiAgICBnZXREZWZhdWx0RmxhdHBpY2tyT3B0aW9ucygpOiBGbGF0cGlja3JPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHdyYXA6IHRydWUsXG4gICAgICAgICAgICBjbGlja09wZW5zOiBmYWxzZSxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAoc2VsZWN0ZWREYXRlczogRGF0ZVtdKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRFbXB0eUZpZWxkU3RhdGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0UmFuZ2VDb25zdHJhaW50cyhzZWxlY3RlZERhdGVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFRpbWVDb25zdHJhaW50cyhzZWxlY3RlZERhdGVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUxhYmVsVmFsdWVzKHNlbGVjdGVkRGF0ZXMpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uQ2xvc2U6IChzZWxlY3RlZERhdGVzOiBbRGF0ZSwgRGF0ZV0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVNpbmdsZVNlbGVjdGVkVmFsdWVJblJhbmdlKHNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RW1wdHlGaWVsZFN0YXRlSWZOZWVkKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldENvbnN0cmFpbnRzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRPcGVuZWRTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZVBpY2tlci5lbWl0KHNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uT3BlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0T3BlbmVkU3RhdGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldFRpbWVBZnRlck9wZW4oKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUxhYmVsVmFsdWVzKHRoaXMuZmxhdHBpY2tyLnNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLi4uKCF0aGlzLmFwcGVuZFRvQm9keSAmJiB7YXBwZW5kVG86IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50fSksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0Q29uZmlnKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udGhpcy5nZXREZWZhdWx0RmxhdHBpY2tyT3B0aW9ucygpLFxuICAgICAgICAgICAgLi4uKHRoaXMuY29uZmlnIHx8IHt9KSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b21pemF0aW9uIG9mIHRoZSBmbGF0cGlja3IncyB2aWV3IHRvIHVpLWtpdCBzdGF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3VzdG9taXplUGlja2VyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZU5leHRJY29uKCk7XG4gICAgICAgIHRoaXMuYWRkRGVzY3JpcHRpb25JZk5lZWQoKTtcbiAgICAgICAgdGhpcy5hZGRUaW1lU2VsZWN0b3JzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBuZXcgc3RhdGUgb2YgdGhlIHBpY2tlciBvcGVubmVzc1xuICAgICAqIEBwYXJhbSBzdGF0ZSBuZXcgc3RhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldE9wZW5lZFN0YXRlKHN0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudWlTdGF0ZS5pc09wZW4gPSBzdGF0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEVtcHR5RmllbGRTdGF0ZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVpU3RhdGUuaXNFbXB0eUZpZWxkID0gc3RhdGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRUaW1lU2VsZWN0b3JzKCkge1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlV2l0aFRpbWUoKSkge1xuICAgICAgICAgICAgY29uc3QgdGltZVdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIHRpbWVXcmFwcGVyLmlubmVySFRNTCA9IHJlbmRlclJhbmdlVGltZShjc3NDbGFzc2VzKTtcbiAgICAgICAgICAgIHRoaXMuc2F2ZVRpbWVSYW5nZUVsZW1lbnRzKHRpbWVXcmFwcGVyKTtcbiAgICAgICAgICAgIHRoaXMuYWRkTGlzdGVuZXJzT25UaW1lU2VsZWN0b3JzKCk7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRzLmFwcGx5Lm9uY2xpY2sgPSB0aGlzLm9uQXBwbHkuYmluZCh0aGlzKTtcblxuICAgICAgICAgICAgdGhpcy5mbGF0cGlja3IuckNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aW1lV3JhcHBlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNhdmVUaW1lUmFuZ2VFbGVtZW50cyh0aW1lV3JhcHBlcjogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9IHtcbiAgICAgICAgICAgIGFwcGx5OiB0aW1lV3JhcHBlci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNzc0NsYXNzZXMuQVBQTFkpWzBdLFxuICAgICAgICAgICAgZnJvbToge1xuICAgICAgICAgICAgICAgIGhvdXI6IHRpbWVXcmFwcGVyLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY3NzQ2xhc3Nlcy5TRUxFQ1RPUl9IT1VSKVswXSxcbiAgICAgICAgICAgICAgICBtaW51dGU6IHRpbWVXcmFwcGVyLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY3NzQ2xhc3Nlcy5TRUxFQ1RPUl9NSU5VVEUpWzBdLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aW1lV3JhcHBlci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNzc0NsYXNzZXMuVElNRV9MQUJFTF9GUk9NKVswXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1bnRpbDoge1xuICAgICAgICAgICAgICAgIGhvdXI6IHRpbWVXcmFwcGVyLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY3NzQ2xhc3Nlcy5TRUxFQ1RPUl9IT1VSKVsxXSxcbiAgICAgICAgICAgICAgICBtaW51dGU6IHRpbWVXcmFwcGVyLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY3NzQ2xhc3Nlcy5TRUxFQ1RPUl9NSU5VVEUpWzFdLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aW1lV3JhcHBlci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNzc0NsYXNzZXMuVElNRV9MQUJFTF9VTlRJTClbMF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZWxlbWVudHMuZnJvbS5ob3VyRmllbGQgPSB0aGlzLmVsZW1lbnRzLmZyb20uaG91ci5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAgICAgICB0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlRmllbGQgPSB0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5ob3VyRmllbGQgPSB0aGlzLmVsZW1lbnRzLnVudGlsLmhvdXIucHJldmlvdXNFbGVtZW50U2libGluZztcbiAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5taW51dGVGaWVsZCA9IHRoaXMuZWxlbWVudHMudW50aWwubWludXRlLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkFwcGx5KCkge1xuICAgICAgICB0aGlzLnNldFRpbWUoKTtcbiAgICAgICAgdGhpcy5mbGF0cGlja3IuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFRpbWUoKSB7XG4gICAgICAgIGNvbnN0IHtmcm9tSG91ciwgZnJvbU1pbnV0ZX0gPSB0aGlzLmdldFNlbGVjdGVkRnJvbSgpO1xuICAgICAgICBjb25zdCB7dW50aWxIb3VyLCB1bnRpbE1pbnV0ZX0gPSB0aGlzLmdldFNlbGVjdGVkVW50aWwoKTtcblxuICAgICAgICBjb25zdCBzZWxlY3RlZERhdGVzID0gY2xvbmVEZWVwKHRoaXMuZmxhdHBpY2tyLnNlbGVjdGVkRGF0ZXMpO1xuXG4gICAgICAgIHNlbGVjdGVkRGF0ZXNbMF0uc2V0SG91cnMoZnJvbUhvdXIsIGZyb21NaW51dGUpO1xuXG4gICAgICAgIGlmIChzZWxlY3RlZERhdGVzWzFdKSB7XG4gICAgICAgICAgICBzZWxlY3RlZERhdGVzWzFdLnNldEhvdXJzKHVudGlsSG91ciwgdW50aWxNaW51dGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXREYXRlRnJvbUlucHV0KHNlbGVjdGVkRGF0ZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTGFiZWxWYWx1ZXMoc2VsZWN0ZWREYXRlczogRGF0ZVtdKSB7XG4gICAgICAgIGlmICghc2VsZWN0ZWREYXRlcyB8fCAhc2VsZWN0ZWREYXRlc1swXSB8fCAhc2VsZWN0ZWREYXRlc1sxXSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzUmFuZ2VXaXRoVGltZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRzLmZyb20ubGFiZWwuaW5uZXJUZXh0ID0gYNCf0LXRgNC40L7QtCDRgSAke3RoaXMuZmxhdHBpY2tyLmZvcm1hdERhdGUoc2VsZWN0ZWREYXRlc1swXSwgJ0QgZC5tLlknKX1gO1xuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWREYXRlc1sxXSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHMudW50aWwubGFiZWwuaW5uZXJUZXh0ID0gYNC/0L4gJHt0aGlzLmZsYXRwaWNrci5mb3JtYXREYXRlKHNlbGVjdGVkRGF0ZXNbMV0sICdEIGQubS5ZJyl9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VGltZUNvbnN0cmFpbnRzKHNlbGVjdGVkRGF0ZXM6IERhdGVbXSkge1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlV2l0aFRpbWUoKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNTYW1lRGF0ZShzZWxlY3RlZERhdGVzWzBdLCBzZWxlY3RlZERhdGVzWzFdKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRUaW1lSWZOZWVkKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRVbnRpbFRpbWVDb25zdHJhaW50KHNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0QWxsQ29uc3RyYWludHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRBbGxDb25zdHJhaW50cygpIHtcbiAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLmZyb20uaG91ci5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy5mcm9tLm1pbnV0ZS5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy51bnRpbC5ob3VyLm9wdGlvbnMpLmZvckVhY2goKG9wdGlvbjogT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICBvcHRpb24uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkTGlzdGVuZXJzT25UaW1lU2VsZWN0b3JzKCkge1xuICAgICAgICB0aGlzLmVsZW1lbnRzLmZyb20uaG91ci5vbmNoYW5nZSA9IHRoaXMub25DaGFuZ2VUaW1lRnJvbS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLm9uY2hhbmdlID0gdGhpcy5vbkNoYW5nZVRpbWVGcm9tLmJpbmQodGhpcyk7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5ob3VyLm9uY2hhbmdlID0gdGhpcy5vbkNoYW5nZVRpbWVVbnRpbC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5vbmNoYW5nZSA9IHRoaXMub25DaGFuZ2VUaW1lVW50aWwuYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlVGltZUZyb20oZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmlzU2FtZURhdGUodGhpcy5mbGF0cGlja3Iuc2VsZWN0ZWREYXRlc1swXSwgdGhpcy5mbGF0cGlja3Iuc2VsZWN0ZWREYXRlc1sxXSkpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZVRpbWVVbnRpbFNlbGVjdG9ycygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlVGltZUZpZWxkc0NvbnRlbnQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZVNpbmdsZVNlbGVjdGVkVmFsdWVJblJhbmdlKHNlbGVjdGVkRGF0ZXM6IFtEYXRlLCBEYXRlXSkge1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlKCkgJiYgIXNlbGVjdGVkRGF0ZXNbMV0pIHtcbiAgICAgICAgICAgIGNvbnN0IHVudGlsRGF0ZSA9IG5ldyBEYXRlKHNlbGVjdGVkRGF0ZXNbMF0pO1xuICAgICAgICAgICAgdW50aWxEYXRlLnNldEhvdXJzKDIzLCA1OSwgMCwgMCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXRlcyA9IFtzZWxlY3RlZERhdGVzWzBdLCB1bnRpbERhdGVdO1xuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHVwZGF0ZWREYXRlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlVGltZVVudGlsKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5pc1NhbWVEYXRlKHRoaXMuZmxhdHBpY2tyLnNlbGVjdGVkRGF0ZXNbMF0sIHRoaXMuZmxhdHBpY2tyLnNlbGVjdGVkRGF0ZXNbMV0pKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVUaW1lRnJvbVNlbGVjdG9ycygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlVGltZUZpZWxkc0NvbnRlbnQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVRpbWVGaWVsZHNDb250ZW50KCkge1xuICAgICAgICBjb25zdCB7ZnJvbUhvdXIsIGZyb21NaW51dGUsIHVudGlsSG91ciwgdW50aWxNaW51dGV9ID0gdGhpcy5nZXRTZWxlY3RvclZhdWxlc0FzU3RyaW5nKCk7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50cy5mcm9tLmhvdXJGaWVsZC5pbm5lclRleHQgPSBmcm9tSG91cjtcbiAgICAgICAgdGhpcy5lbGVtZW50cy5mcm9tLm1pbnV0ZUZpZWxkLmlubmVyVGV4dCA9IGZyb21NaW51dGU7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5ob3VyRmllbGQuaW5uZXJUZXh0ID0gdW50aWxIb3VyO1xuICAgICAgICB0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZUZpZWxkLmlubmVyVGV4dCA9IHVudGlsTWludXRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGlzYWJsZVRpbWVVbnRpbFNlbGVjdG9ycygpIHtcbiAgICAgICAgY29uc3Qge2Zyb21Ib3VyLCBmcm9tTWludXRlfSA9IHRoaXMuZ2V0U2VsZWN0ZWRGcm9tKCk7XG4gICAgICAgIGNvbnN0IHt1bnRpbEhvdXIsIHVudGlsTWludXRlfSA9IHRoaXMuZ2V0U2VsZWN0ZWRVbnRpbCgpO1xuXG4gICAgICAgIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy51bnRpbC5ob3VyLm9wdGlvbnMpLmZvckVhY2goKG9wdGlvbjogT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICBvcHRpb24uZGlzYWJsZWQgPSBOdW1iZXIob3B0aW9uLnZhbHVlKSA8IGZyb21Ib3VyO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZnJvbUhvdXIgPT09IHVudGlsSG91cikge1xuICAgICAgICAgICAgaWYgKGZyb21NaW51dGUgPiB1bnRpbE1pbnV0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHMudW50aWwubWludXRlLnNlbGVjdGVkSW5kZXggPSA0O1xuXG4gICAgICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLm9wdGlvbnMpLmZvckVhY2goKG9wdGlvbjogT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IE51bWJlcihvcHRpb24udmFsdWUpIDwgZnJvbU1pbnV0ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLm9wdGlvbnMpLmZvckVhY2goKG9wdGlvbjogT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc2FibGVUaW1lRnJvbVNlbGVjdG9ycygpIHtcbiAgICAgICAgY29uc3Qge2Zyb21Ib3VyLCBmcm9tTWludXRlfSA9IHRoaXMuZ2V0U2VsZWN0ZWRGcm9tKCk7XG4gICAgICAgIGNvbnN0IHt1bnRpbEhvdXIsIHVudGlsTWludXRlfSA9IHRoaXMuZ2V0U2VsZWN0ZWRVbnRpbCgpO1xuXG4gICAgICAgIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy5mcm9tLmhvdXIub3B0aW9ucykuZm9yRWFjaCgob3B0aW9uOiBPcHRpb24pID0+IHtcbiAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IE51bWJlcihvcHRpb24udmFsdWUpID4gdW50aWxIb3VyO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZnJvbUhvdXIgPT09IHVudGlsSG91cikge1xuICAgICAgICAgICAgaWYgKGZyb21NaW51dGUgPiB1bnRpbE1pbnV0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHMudW50aWwubWludXRlLnNlbGVjdGVkSW5kZXggPSA0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qge3VudGlsTWludXRlOiB1bnRpbE1pbnV0ZUFmdGVyVXBkYXRlfSA9IHRoaXMuZ2V0U2VsZWN0ZWRVbnRpbCgpO1xuXG4gICAgICAgICAgICBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMuZnJvbS5taW51dGUub3B0aW9ucykuZm9yRWFjaCgob3B0aW9uOiBPcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICBvcHRpb24uZGlzYWJsZWQgPSBOdW1iZXIob3B0aW9uLnZhbHVlKSA+IHVudGlsTWludXRlQWZ0ZXJVcGRhdGU7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IE51bWJlcihvcHRpb24udmFsdWUpIDwgZnJvbU1pbnV0ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLm9wdGlvbnMpLmZvckVhY2goKG9wdGlvbjogT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFVudGlsVGltZUNvbnN0cmFpbnQoc2VsZWN0ZWREYXRlczogRGF0ZVtdKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZVRpbWVVbnRpbFNlbGVjdG9ycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRUaW1lSWZOZWVkKCkge1xuICAgICAgICBjb25zdCB7ZnJvbUhvdXIsIGZyb21NaW51dGV9ID0gdGhpcy5nZXRTZWxlY3RlZEZyb20oKTtcbiAgICAgICAgY29uc3Qge3VudGlsSG91ciwgdW50aWxNaW51dGV9ID0gdGhpcy5nZXRTZWxlY3RlZFVudGlsKCk7XG5cbiAgICAgICAgaWYgKGZyb21Ib3VyID4gdW50aWxIb3VyIHx8IChmcm9tSG91ciA9PT0gdW50aWxIb3VyICYmIGZyb21NaW51dGUgPiB1bnRpbE1pbnV0ZSkpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRUaW1lKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0VGltZSgpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50cy5mcm9tLmhvdXIuc2VsZWN0ZWRJbmRleCA9IDA7XG4gICAgICAgIHRoaXMuZWxlbWVudHMuZnJvbS5taW51dGUuc2VsZWN0ZWRJbmRleCA9IDA7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5ob3VyLnNlbGVjdGVkSW5kZXggPSAyMztcbiAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5taW51dGUuc2VsZWN0ZWRJbmRleCA9IDQ7XG5cbiAgICAgICAgdGhpcy51cGRhdGVUaW1lRmllbGRzQ29udGVudCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0b3JWYXVsZXNBc1N0cmluZygpOiB7XG4gICAgICAgIGZyb21Ib3VyOiBzdHJpbmc7XG4gICAgICAgIGZyb21NaW51dGU6IHN0cmluZztcbiAgICAgICAgdW50aWxIb3VyOiBzdHJpbmc7XG4gICAgICAgIHVudGlsTWludXRlOiBzdHJpbmc7XG4gICAgfSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmcm9tSG91cjogdGhpcy5lbGVtZW50cy5mcm9tLmhvdXIub3B0aW9uc1t0aGlzLmVsZW1lbnRzLmZyb20uaG91ci5zZWxlY3RlZEluZGV4XS52YWx1ZSxcbiAgICAgICAgICAgIGZyb21NaW51dGU6IHRoaXMuZWxlbWVudHMuZnJvbS5taW51dGUub3B0aW9uc1t0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLnNlbGVjdGVkSW5kZXhdLnZhbHVlLFxuICAgICAgICAgICAgdW50aWxIb3VyOiB0aGlzLmVsZW1lbnRzLnVudGlsLmhvdXIub3B0aW9uc1t0aGlzLmVsZW1lbnRzLnVudGlsLmhvdXIuc2VsZWN0ZWRJbmRleF0udmFsdWUsXG4gICAgICAgICAgICB1bnRpbE1pbnV0ZTogdGhpcy5lbGVtZW50cy51bnRpbC5taW51dGUub3B0aW9uc1t0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5zZWxlY3RlZEluZGV4XS52YWx1ZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkRnJvbSgpOiB7ZnJvbUhvdXI6IG51bWJlcjsgZnJvbU1pbnV0ZTogbnVtYmVyfSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmcm9tSG91cjogTnVtYmVyKHRoaXMuZWxlbWVudHMuZnJvbS5ob3VyLm9wdGlvbnNbdGhpcy5lbGVtZW50cy5mcm9tLmhvdXIuc2VsZWN0ZWRJbmRleF0udmFsdWUpLFxuICAgICAgICAgICAgZnJvbU1pbnV0ZTogTnVtYmVyKHRoaXMuZWxlbWVudHMuZnJvbS5taW51dGUub3B0aW9uc1t0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLnNlbGVjdGVkSW5kZXhdLnZhbHVlKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkVW50aWwoKToge3VudGlsSG91cjogbnVtYmVyOyB1bnRpbE1pbnV0ZTogbnVtYmVyfSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB1bnRpbEhvdXI6IE51bWJlcih0aGlzLmVsZW1lbnRzLnVudGlsLmhvdXIub3B0aW9uc1t0aGlzLmVsZW1lbnRzLnVudGlsLmhvdXIuc2VsZWN0ZWRJbmRleF0udmFsdWUpLFxuICAgICAgICAgICAgdW50aWxNaW51dGU6IE51bWJlcih0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5vcHRpb25zW3RoaXMuZWxlbWVudHMudW50aWwubWludXRlLnNlbGVjdGVkSW5kZXhdLnZhbHVlKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFJhbmdlQ29uc3RyYWludHMoc2VsZWN0ZWREYXRlczogRGF0ZVtdKSB7XG4gICAgICAgIGlmICh0aGlzLmlzUmFuZ2UoKSAmJiB0aGlzLm1heFJhbmdlRGF5cykge1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRGF0ZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWluRGF0ZSA9IG5ldyBEYXRlKHNlbGVjdGVkRGF0ZXNbMF0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1heERhdGUgPSBuZXcgRGF0ZShzZWxlY3RlZERhdGVzWzBdKTtcblxuICAgICAgICAgICAgICAgIG1pbkRhdGUuc2V0RGF0ZShtaW5EYXRlLmdldERhdGUoKSAtIHRoaXMubWF4UmFuZ2VEYXlzKTtcbiAgICAgICAgICAgICAgICBtYXhEYXRlLnNldERhdGUobWF4RGF0ZS5nZXREYXRlKCkgKyB0aGlzLm1heFJhbmdlRGF5cyk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmZsYXRwaWNrci5jb25maWcubWluRGF0ZSA9IG1pbkRhdGU7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0cGlja3IuY29uZmlnLm1heERhdGUgPSBtYXhEYXRlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0Q29uc3RyYWludHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRDb25zdHJhaW50cygpIHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3IuY29uZmlnLm1pbkRhdGUgPSB0aGlzLmNvbmZpZy5taW5EYXRlO1xuICAgICAgICB0aGlzLmZsYXRwaWNrci5jb25maWcubWF4RGF0ZSA9IHRoaXMuY29uZmlnLm1heERhdGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1JhbmdlV2l0aFRpbWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUmFuZ2UoKSAmJiB0aGlzLmNvbmZpZy5lbmFibGVUaW1lO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RW1wdHlGaWVsZFN0YXRlSWZOZWVkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlKCkgJiYgdGhpcy5mbGF0cGlja3Iuc2VsZWN0ZWREYXRlcy5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RW1wdHlGaWVsZFN0YXRlKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQaWNrZXJJZk5lZWQodmFsdWU6IFNlbGVjdGVkRGF0ZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZmxhdHBpY2tyKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZERhdGVzID0gdGhpcy5nZXRTZWxlY3RlZERhdGVzV2l0aERhdGVQaWNrZXJGb3JtYXQodGhpcy5mbGF0cGlja3Iuc2VsZWN0ZWREYXRlcyk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldFNlbGVjdGVkRGF0ZXNXaXRoRGF0ZVBpY2tlckZvcm1hdCh2YWx1ZSk7XG5cbiAgICAgICAgICAgIGlmICghaXNFcXVhbCh2YWx1ZXMsIHNlbGVjdGVkRGF0ZXMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXREYXRlRnJvbUlucHV0KHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWREYXRlc1dpdGhEYXRlUGlja2VyRm9ybWF0KGRhdGVSYW5nZTogU2VsZWN0ZWREYXRlcyk6IHN0cmluZ1tdIHtcbiAgICAgICAgaWYgKGRhdGVSYW5nZSAmJiBkYXRlUmFuZ2UubGVuZ3RoICYmIHR5cGVvZiBkYXRlUmFuZ2VbMF0gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gKGRhdGVSYW5nZSBhcyBEYXRlW10pLm1hcCgoZGF0ZSkgPT4gdGhpcy50b0RhdGVQaWNrZXJGb3JtYXQoZGF0ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGVSYW5nZSBhcyBzdHJpbmdbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRvRGF0ZVBpY2tlckZvcm1hdChkYXRlPzogRGF0ZSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGAke2RhdGUuZ2V0RGF0ZSgpfS4ke2RhdGUuZ2V0TW9udGgoKSArIDF9LiR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3Vic3RpdHV0aW9uIG9mIGljb25zXG4gICAgICovXG4gICAgcHJpdmF0ZSBjaGFuZ2VOZXh0SWNvbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgSWNvbnMgPSB7XG4gICAgICAgICAgICBQUkVWOiBgXG4gICAgICAgICAgICAgICAgPHN2ZyBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgNiAxNlwiIHdpZHRoPVwiNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggX25nY29udGVudC1jMD1cIlwiIGQ9XCJNNiAwTDAgOEw2IDE2VjBaXCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDYgMTYpIHJvdGF0ZSgxODApXCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgIDwvc3ZnPmAsXG4gICAgICAgICAgICBORVhUOiBgXG4gICAgICAgICAgICAgICAgPHN2ZyBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgNiAxNlwiIHdpZHRoPVwiNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggX25nY29udGVudC1jMD1cIlwiIGQ9XCJNNiAwTDAgOEw2IDE2VjBaXCIgZmlsbD1cIndoaXRlXCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgIDwvc3ZnPmAsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5mbGF0cGlja3IubmV4dE1vbnRoTmF2LmlubmVySFRNTCA9IEljb25zLlBSRVY7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyLnByZXZNb250aE5hdi5pbm5lckhUTUwgPSBJY29ucy5ORVhUO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkRGVzY3JpcHRpb25JZk5lZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gY3NzQ2xhc3Nlcy5ERVNDUklQVElPTjtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmRlc2NyaXB0aW9uO1xuXG4gICAgICAgICAgICB0aGlzLmZsYXRwaWNrci5yQ29udGFpbmVyLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzU2FtZURhdGUoZmlyc3REYXRlOiBEYXRlLCBzZWNvbmREYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBmaXJzdERhdGUgJiZcbiAgICAgICAgICAgIHNlY29uZERhdGUgJiZcbiAgICAgICAgICAgIGZpcnN0RGF0ZS5nZXREYXRlKCkgPT09IHNlY29uZERhdGUuZ2V0RGF0ZSgpICYmXG4gICAgICAgICAgICBmaXJzdERhdGUuZ2V0TW9udGgoKSA9PT0gc2Vjb25kRGF0ZS5nZXRNb250aCgpICYmXG4gICAgICAgICAgICBmaXJzdERhdGUuZ2V0RnVsbFllYXIoKSA9PT0gc2Vjb25kRGF0ZS5nZXRGdWxsWWVhcigpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTZWxlY3RlZEluZGV4QnlNaW51dGVzKG1pbnV0ZXM6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoTWF0aC5yb3VuZChtaW51dGVzIC8gNSkgKiA1KSAvIDE1O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRUaW1lQWZ0ZXJPcGVuKCkge1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlV2l0aFRpbWUoKSkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlcyA9IHRoaXMuZmxhdHBpY2tyLnNlbGVjdGVkRGF0ZXM7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWREYXRlc1swXSAmJiBzZWxlY3RlZERhdGVzWzFdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50cy5mcm9tLmhvdXIuc2VsZWN0ZWRJbmRleCA9IHNlbGVjdGVkRGF0ZXNbMF0uZ2V0SG91cnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLnNlbGVjdGVkSW5kZXggPSB0aGlzLmdldFNlbGVjdGVkSW5kZXhCeU1pbnV0ZXMoc2VsZWN0ZWREYXRlc1swXS5nZXRNaW51dGVzKCkpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5ob3VyLnNlbGVjdGVkSW5kZXggPSBzZWxlY3RlZERhdGVzWzFdLmdldEhvdXJzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5taW51dGUuc2VsZWN0ZWRJbmRleCA9IHRoaXMuZ2V0U2VsZWN0ZWRJbmRleEJ5TWludXRlcyhcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWREYXRlc1sxXS5nZXRNaW51dGVzKCksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZENvbnN0cmFpbnRzQWZ0ZXJPcGVuKHNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGltZUZpZWxkc0NvbnRlbnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYWRkQ29uc3RyYWludHNBZnRlck9wZW4oc2VsZWN0ZWREYXRlczogW0RhdGUsIERhdGVdKSB7XG4gICAgICAgIGlmICh0aGlzLmlzU2FtZURhdGUoc2VsZWN0ZWREYXRlc1swXSwgc2VsZWN0ZWREYXRlc1sxXSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHtmcm9tSG91ciwgZnJvbU1pbnV0ZX0gPSB0aGlzLmdldFNlbGVjdGVkRnJvbSgpO1xuICAgICAgICAgICAgY29uc3Qge3VudGlsSG91ciwgdW50aWxNaW51dGV9ID0gdGhpcy5nZXRTZWxlY3RlZFVudGlsKCk7XG5cbiAgICAgICAgICAgIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy5mcm9tLmhvdXIub3B0aW9ucykuZm9yRWFjaCgob3B0aW9uOiBPcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICBvcHRpb24uZGlzYWJsZWQgPSBOdW1iZXIob3B0aW9uLnZhbHVlKSA+IHVudGlsSG91cjtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMudW50aWwuaG91ci5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IE51bWJlcihvcHRpb24udmFsdWUpIDwgZnJvbUhvdXI7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGZyb21Ib3VyID09PSB1bnRpbEhvdXIpIHtcbiAgICAgICAgICAgICAgICBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMuZnJvbS5taW51dGUub3B0aW9ucykuZm9yRWFjaCgob3B0aW9uOiBPcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gTnVtYmVyKG9wdGlvbi52YWx1ZSkgPiB1bnRpbE1pbnV0ZTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy51bnRpbC5taW51dGUub3B0aW9ucykuZm9yRWFjaCgob3B0aW9uOiBPcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gTnVtYmVyKG9wdGlvbi52YWx1ZSkgPCBmcm9tTWludXRlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMuZnJvbS5taW51dGUub3B0aW9ucykuZm9yRWFjaCgob3B0aW9uOiBPcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMudW50aWwubWludXRlLm9wdGlvbnMpLmZvckVhY2goKG9wdGlvbjogT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAjZmxhdHBpY2tyIGNsYXNzPVwiZXZvLWRhdGVwaWNrZXJcIiBbZXZvVWlDbGFzc109XCJ0b3RhbENsYXNzZXNcIiAoY2xpY2spPVwib25EYXRlcGlja2VyQ2xpY2soJGV2ZW50KVwiPlxuICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBkYXRhLWlucHV0XG4gICAgICAgIGNsYXNzPVwiZXZvLWRhdGVwaWNrZXJfX2lucHV0XCJcbiAgICAgICAgW2V2b1VpQ2xhc3NdPVwiaW5wdXRDbGFzc1wiXG4gICAgICAgIFtpbWFza109XCJtYXNrQ29uZmlnXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cImRpc2FibGVkXCJcbiAgICAgICAgKGNvbXBsZXRlKT1cImhhbmRsZU1hc2tDb21wbGV0ZSgkZXZlbnQpXCJcbiAgICAvPlxuXG4gICAgQGlmIChpc1JhbmdlKCkgJiYgaW5wdXQudmFsdWUpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJldm8tZGF0ZXBpY2tlcl9fdmFsdWVcIj57eyBpbnB1dC52YWx1ZSB9fTwvc3Bhbj5cbiAgICB9XG5cbiAgICBAaWYgKHNob3VsZFNob3dFbXB0eVRleHQoKSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImV2by1kYXRlcGlja2VyX19lbXB0eS10ZXh0XCI+e3sgaXNSYW5nZSgpID8gJ9CX0LAg0L/QtdGA0LjQvtC0JyA6ICfQlNCw0YLQsCcgfX08L3NwYW4+XG4gICAgfVxuXG4gICAgQGlmICghZGlzYWJsZWQpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJldm8tZGF0ZXBpY2tlcl9fb3BlbmVyXCI+XG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICBkPVwiTTIwIDNIMTlWMkMxOSAxLjQ1IDE4LjU1IDEgMTggMUMxNy40NSAxIDE3IDEuNDUgMTcgMlYzSDdWMkM3IDEuNDUgNi41NSAxIDYgMUM1LjQ1IDEgNSAxLjQ1IDUgMlYzSDRDMi45IDMgMiAzLjkgMiA1VjIxQzIgMjIuMSAyLjkgMjMgNCAyM0gyMEMyMS4xIDIzIDIyIDIyLjEgMjIgMjFWNUMyMiAzLjkgMjEuMSAzIDIwIDNaTTE5IDIxSDVDNC40NSAyMSA0IDIwLjU1IDQgMjBWOEgyMFYyMEMyMCAyMC41NSAxOS41NSAyMSAxOSAyMVpcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cblxuICAgIEBpZiAoIXVpU3RhdGUuaXNFbXB0eUZpZWxkKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZXZvLWRhdGVwaWNrZXJfX29wZW5lci10cmlhbmdsZVwiPjwvc3Bhbj5cbiAgICB9XG48L2Rpdj5cblxuQGlmIChzaG93RXJyb3JzKSB7XG4gICAgPGV2by1jb250cm9sLWVycm9yIFtlcnJvcnNdPVwiY29udHJvbC5lcnJvcnNcIiBbZXJyb3JzTWVzc2FnZXNdPVwiZXJyb3JzTWVzc2FnZXNcIiAvPlxufVxuIl19
561
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZvLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLWRhdGVwaWNrZXIvZXZvLWRhdGVwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXZvLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvZXZvLWRhdGVwaWNrZXIvZXZvLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUVWLEtBQUssRUFLTCxNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXVCLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFDLFVBQVUsRUFBRSxlQUFlLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzdELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQ2hHLE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDOztBQUU1RSxjQUFjLCtCQUErQixDQUFDO0FBRTlDLElBQUssZUFFSjtBQUZELFdBQUssZUFBZTtJQUNoQixrQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFGSSxlQUFl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QXNCO2tCQWZsQyxTQUFTOytCQUNJLGdCQUFnQixpQkFHWCxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDOzRCQUNyRCxLQUFLLEVBQUUsSUFBSTt5QkFDZDtxQkFDSixjQUNXLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLGNBQWMsRUFBRSx3QkFBd0IsQ0FBQzsySEFPeEUsZ0JBQWdCO3NCQURmLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFJdEMsTUFBTTtzQkFETCxLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUdOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sV0FBVztzQkFEVixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7RmxhdHBpY2tyT3B0aW9uc30gZnJvbSAnLi9mbGF0cGlja3Itb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHtjbG9uZURlZXAsIGlzRXF1YWx9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge2Nzc0NsYXNzZXMsIHJlbmRlclJhbmdlVGltZX0gZnJvbSAnLi90ZW1wbGF0ZXMnO1xuaW1wb3J0IHtFdm9CYXNlQ29udHJvbH0gZnJvbSAnLi4vLi4vY29tbW9uL2V2by1iYXNlLWNvbnRyb2wnO1xuaW1wb3J0IHtFdm9Db250cm9sU3RhdGVzfSBmcm9tICcuLi8uLi9jb21tb24vZXZvLWNvbnRyb2wtc3RhdGUtbWFuYWdlci9ldm8tY29udHJvbC1zdGF0ZXMuZW51bSc7XG5pbXBvcnQgZmxhdHBpY2tyIGZyb20gJ2ZsYXRwaWNrcic7XG5pbXBvcnQge0V2b0NvbnRyb2xFcnJvckNvbXBvbmVudH0gZnJvbSAnLi4vZXZvLWNvbnRyb2wtZXJyb3IvZXZvLWNvbnRyb2wtZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7SU1hc2tEaXJlY3RpdmV9IGZyb20gJ2FuZ3VsYXItaW1hc2snO1xuaW1wb3J0IHtFdm9VaUNsYXNzRGlyZWN0aXZlfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2V2by11aS1jbGFzcy5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2ZsYXRwaWNrci1vcHRpb25zLmludGVyZmFjZSc7XG5cbmVudW0gRGF0ZXBpY2tlck1vZGVzIHtcbiAgICBSQU5HRSA9ICdyYW5nZScsXG59XG5cbmludGVyZmFjZSBPcHRpb24ge1xuICAgIGRpc2FibGVkOiBib29sZWFuO1xuICAgIHZhbHVlOiBzdHJpbmc7XG59XG5cbnR5cGUgU2VsZWN0ZWREYXRlcyA9IHN0cmluZ1tdIHwgRGF0ZVtdO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2V2by1kYXRlcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZXZvLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2V2by1kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFdm9EYXRlcGlja2VyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICB9LFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbRXZvVWlDbGFzc0RpcmVjdGl2ZSwgSU1hc2tEaXJlY3RpdmUsIEV2b0NvbnRyb2xFcnJvckNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEV2b0RhdGVwaWNrZXJDb21wb25lbnRcbiAgICBleHRlbmRzIEV2b0Jhc2VDb250cm9sXG4gICAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveVxue1xuICAgIEBWaWV3Q2hpbGQoJ2ZsYXRwaWNrcicsIHtzdGF0aWM6IHRydWV9KVxuICAgIGZsYXRwaWNrckVsZW1lbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBASW5wdXQoKVxuICAgIGNvbmZpZzogRmxhdHBpY2tyT3B0aW9ucztcblxuICAgIEBJbnB1dCgpXG4gICAgbWFza2VkSW5wdXQ6IGJvb2xlYW47XG5cbiAgICBASW5wdXQoKSB0aGVtZT86IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGZvbGRlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwbGFjZWhvbGRlciA9ICcnO1xuXG4gICAgQElucHV0KClcbiAgICBzZXREYXRlOiBTZWxlY3RlZERhdGVzO1xuXG4gICAgQElucHV0KClcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBtYXhSYW5nZURheXM6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpXG4gICAgYXBwZW5kVG9Cb2R5ID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIGNsb3NlUGlja2VyID0gbmV3IEV2ZW50RW1pdHRlcjxbRGF0ZSwgRGF0ZV0+KCk7XG5cbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgdWlTdGF0ZSA9IHtcbiAgICAgICAgaXNPcGVuOiBmYWxzZSxcbiAgICAgICAgaXNFbXB0eUZpZWxkOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgZWxlbWVudHM6IGFueSA9IHt9O1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgbWFza0NvbmZpZzoge21hc2s6IGFueTsgcGF0dGVybj86IHN0cmluZzsgbWF4PzogRGF0ZX07XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBwcml2YXRlIGZsYXRwaWNrcjogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgem9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByb3RlY3RlZCBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB9XG5cbiAgICBvbkNoYW5nZSA9ICh2YWx1ZSkgPT4ge307XG4gICAgb25Ub3VjaGVkID0gKCkgPT4ge307XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBTZWxlY3RlZERhdGVzKSB7XG4gICAgICAgIHRoaXMudXBkYXRlUGlja2VySWZOZWVkKHZhbHVlKTtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodmFsdWUpO1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcblxuICAgIGhhbmRsZU1hc2tDb21wbGV0ZSh2YWx1ZSkge1xuICAgICAgICBpZiAodGhpcy5tYXNrZWRJbnB1dCkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuZmxhdHBpY2tyRWxlbWVudC5uYXRpdmVFbGVtZW50Ll9mbGF0cGlja3IucGFyc2VEYXRlKHZhbHVlLCB0aGlzLmNvbmZpZy5kYXRlRm9ybWF0KTtcbiAgICAgICAgICAgIHRoaXMuc2V0RGF0ZUZyb21JbnB1dChkYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldERhdGVGcm9tSW5wdXQoZGF0ZTogU2VsZWN0ZWREYXRlcykge1xuICAgICAgICB0aGlzLmZsYXRwaWNrckVsZW1lbnQubmF0aXZlRWxlbWVudC5fZmxhdHBpY2tyLnNldERhdGUoZGF0ZSwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmdldENvbmZpZygpO1xuXG4gICAgICAgIHRoaXMuem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZsYXRwaWNrciA9IGZsYXRwaWNrcih0aGlzLmZsYXRwaWNrckVsZW1lbnQubmF0aXZlRWxlbWVudCwgY29uZmlnKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2V0RGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXREYXRlRnJvbUlucHV0KHRoaXMuc2V0RGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXN0b21pemVQaWNrZXIoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmhhc093blByb3BlcnR5KCdzZXREYXRlJykgJiYgY2hhbmdlc1snc2V0RGF0ZSddLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5zZXREYXRlRnJvbUlucHV0KGNoYW5nZXNbJ3NldERhdGUnXS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdE1hc2soKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3IgPSBudWxsO1xuICAgICAgICB0aGlzLmZsYXRwaWNrckVsZW1lbnQubmF0aXZlRWxlbWVudC5fZmxhdHBpY2tyLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICBnZXQgaW5wdXRDbGFzcygpOiB7W2Nzc0NsYXNzOiBzdHJpbmddOiBib29sZWFufSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCxcbiAgICAgICAgICAgIGhpZGRlbjogIXRoaXMuaXNWYWx1ZUV4aXN0KCksXG4gICAgICAgICAgICB2YWxpZDogdGhpcy5jdXJyZW50U3RhdGVbRXZvQ29udHJvbFN0YXRlcy52YWxpZF0sXG4gICAgICAgICAgICBpbnZhbGlkOiB0aGlzLmN1cnJlbnRTdGF0ZVtFdm9Db250cm9sU3RhdGVzLmludmFsaWRdLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldCB0b3RhbENsYXNzZXMoKTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGlmICh0aGlzLnRoZW1lKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2godGhpcy50aGVtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy51aVN0YXRlLmlzT3Blbikge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdvcGVuZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmZvbGRlZCkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdmb2xkZWQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjbGFzc2VzO1xuICAgIH1cblxuICAgIGluaXRNYXNrKCkge1xuICAgICAgICBpZiAodGhpcy5jb25maWcuYWxsb3dJbnB1dCAmJiB0aGlzLm1hc2tlZElucHV0KSB7XG4gICAgICAgICAgICB0aGlzLm1hc2tDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgcGF0dGVybjogdGhpcy5jb25maWcuZGF0ZUZvcm1hdCxcbiAgICAgICAgICAgICAgICBtYXg6IHRoaXMuY29uZmlnLm1heERhdGUgYXMgRGF0ZSxcbiAgICAgICAgICAgICAgICBtYXNrOiBEYXRlLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uRGF0ZXBpY2tlckNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICh0aGlzLmNvbmZpZy5hbGxvd0lucHV0ICYmIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5jb250YWlucyhjc3NDbGFzc2VzLklOUFVUKSkgfHxcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRvZ2dsZURhdGVwaWNrZXIoKTtcbiAgICB9XG5cbiAgICB0b2dnbGVEYXRlcGlja2VyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZsYXRwaWNrci50b2dnbGUoKTtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKHN0YXRlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBzdGF0ZTtcbiAgICB9XG5cbiAgICBpc1ZhbHVlRXhpc3QoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5mbGF0cGlja3IpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHREYXRlID0gdGhpcy5jb25maWcuZGVmYXVsdERhdGU7XG5cbiAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGRlZmF1bHREYXRlKSA/ICh0aGlzLmNvbmZpZy5kZWZhdWx0RGF0ZSBhcyBEYXRlW10pLmxlbmd0aCA+IDAgOiAhIWRlZmF1bHREYXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmxhdHBpY2tyLnNlbGVjdGVkRGF0ZXMubGVuZ3RoID4gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzUmFuZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5tb2RlID09PSBEYXRlcGlja2VyTW9kZXMuUkFOR0U7XG4gICAgfVxuXG4gICAgc2hvdWxkU2hvd0VtcHR5VGV4dCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmlzVmFsdWVFeGlzdCgpICYmICF0aGlzLmNvbmZpZy5hbHRJbnB1dDtcbiAgICB9XG5cbiAgICBnZXREZWZhdWx0RmxhdHBpY2tyT3B0aW9ucygpOiBGbGF0cGlja3JPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHdyYXA6IHRydWUsXG4gICAgICAgICAgICBjbGlja09wZW5zOiBmYWxzZSxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAoc2VsZWN0ZWREYXRlczogRGF0ZVtdKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRFbXB0eUZpZWxkU3RhdGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0UmFuZ2VDb25zdHJhaW50cyhzZWxlY3RlZERhdGVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldFRpbWVDb25zdHJhaW50cyhzZWxlY3RlZERhdGVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUxhYmVsVmFsdWVzKHNlbGVjdGVkRGF0ZXMpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uQ2xvc2U6IChzZWxlY3RlZERhdGVzOiBbRGF0ZSwgRGF0ZV0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVNpbmdsZVNlbGVjdGVkVmFsdWVJblJhbmdlKHNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RW1wdHlGaWVsZFN0YXRlSWZOZWVkKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldENvbnN0cmFpbnRzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRPcGVuZWRTdGF0ZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZVBpY2tlci5lbWl0KHNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uT3BlbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0T3BlbmVkU3RhdGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldFRpbWVBZnRlck9wZW4oKTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUxhYmVsVmFsdWVzKHRoaXMuZmxhdHBpY2tyLnNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLi4uKCF0aGlzLmFwcGVuZFRvQm9keSAmJiB7YXBwZW5kVG86IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50fSksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZ2V0Q29uZmlnKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udGhpcy5nZXREZWZhdWx0RmxhdHBpY2tyT3B0aW9ucygpLFxuICAgICAgICAgICAgLi4uKHRoaXMuY29uZmlnIHx8IHt9KSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b21pemF0aW9uIG9mIHRoZSBmbGF0cGlja3IncyB2aWV3IHRvIHVpLWtpdCBzdGF0ZVxuICAgICAqL1xuICAgIHByaXZhdGUgY3VzdG9taXplUGlja2VyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNoYW5nZU5leHRJY29uKCk7XG4gICAgICAgIHRoaXMuYWRkRGVzY3JpcHRpb25JZk5lZWQoKTtcbiAgICAgICAgdGhpcy5hZGRUaW1lU2VsZWN0b3JzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBuZXcgc3RhdGUgb2YgdGhlIHBpY2tlciBvcGVubmVzc1xuICAgICAqIEBwYXJhbSBzdGF0ZSBuZXcgc3RhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHNldE9wZW5lZFN0YXRlKHN0YXRlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMudWlTdGF0ZS5pc09wZW4gPSBzdGF0ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEVtcHR5RmllbGRTdGF0ZShzdGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnVpU3RhdGUuaXNFbXB0eUZpZWxkID0gc3RhdGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRUaW1lU2VsZWN0b3JzKCkge1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlV2l0aFRpbWUoKSkge1xuICAgICAgICAgICAgY29uc3QgdGltZVdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIHRpbWVXcmFwcGVyLmlubmVySFRNTCA9IHJlbmRlclJhbmdlVGltZShjc3NDbGFzc2VzKTtcbiAgICAgICAgICAgIHRoaXMuc2F2ZVRpbWVSYW5nZUVsZW1lbnRzKHRpbWVXcmFwcGVyKTtcbiAgICAgICAgICAgIHRoaXMuYWRkTGlzdGVuZXJzT25UaW1lU2VsZWN0b3JzKCk7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRzLmFwcGx5Lm9uY2xpY2sgPSB0aGlzLm9uQXBwbHkuYmluZCh0aGlzKTtcblxuICAgICAgICAgICAgdGhpcy5mbGF0cGlja3IuckNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aW1lV3JhcHBlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNhdmVUaW1lUmFuZ2VFbGVtZW50cyh0aW1lV3JhcHBlcjogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50cyA9IHtcbiAgICAgICAgICAgIGFwcGx5OiB0aW1lV3JhcHBlci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNzc0NsYXNzZXMuQVBQTFkpWzBdLFxuICAgICAgICAgICAgZnJvbToge1xuICAgICAgICAgICAgICAgIGhvdXI6IHRpbWVXcmFwcGVyLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY3NzQ2xhc3Nlcy5TRUxFQ1RPUl9IT1VSKVswXSxcbiAgICAgICAgICAgICAgICBtaW51dGU6IHRpbWVXcmFwcGVyLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY3NzQ2xhc3Nlcy5TRUxFQ1RPUl9NSU5VVEUpWzBdLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aW1lV3JhcHBlci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNzc0NsYXNzZXMuVElNRV9MQUJFTF9GUk9NKVswXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1bnRpbDoge1xuICAgICAgICAgICAgICAgIGhvdXI6IHRpbWVXcmFwcGVyLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY3NzQ2xhc3Nlcy5TRUxFQ1RPUl9IT1VSKVsxXSxcbiAgICAgICAgICAgICAgICBtaW51dGU6IHRpbWVXcmFwcGVyLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoY3NzQ2xhc3Nlcy5TRUxFQ1RPUl9NSU5VVEUpWzFdLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0aW1lV3JhcHBlci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGNzc0NsYXNzZXMuVElNRV9MQUJFTF9VTlRJTClbMF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZWxlbWVudHMuZnJvbS5ob3VyRmllbGQgPSB0aGlzLmVsZW1lbnRzLmZyb20uaG91ci5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAgICAgICB0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlRmllbGQgPSB0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5ob3VyRmllbGQgPSB0aGlzLmVsZW1lbnRzLnVudGlsLmhvdXIucHJldmlvdXNFbGVtZW50U2libGluZztcbiAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5taW51dGVGaWVsZCA9IHRoaXMuZWxlbWVudHMudW50aWwubWludXRlLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkFwcGx5KCkge1xuICAgICAgICB0aGlzLnNldFRpbWUoKTtcbiAgICAgICAgdGhpcy5mbGF0cGlja3IuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFRpbWUoKSB7XG4gICAgICAgIGNvbnN0IHtmcm9tSG91ciwgZnJvbU1pbnV0ZX0gPSB0aGlzLmdldFNlbGVjdGVkRnJvbSgpO1xuICAgICAgICBjb25zdCB7dW50aWxIb3VyLCB1bnRpbE1pbnV0ZX0gPSB0aGlzLmdldFNlbGVjdGVkVW50aWwoKTtcblxuICAgICAgICBjb25zdCBzZWxlY3RlZERhdGVzID0gY2xvbmVEZWVwKHRoaXMuZmxhdHBpY2tyLnNlbGVjdGVkRGF0ZXMpO1xuXG4gICAgICAgIHNlbGVjdGVkRGF0ZXNbMF0uc2V0SG91cnMoZnJvbUhvdXIsIGZyb21NaW51dGUpO1xuXG4gICAgICAgIGlmIChzZWxlY3RlZERhdGVzWzFdKSB7XG4gICAgICAgICAgICBzZWxlY3RlZERhdGVzWzFdLnNldEhvdXJzKHVudGlsSG91ciwgdW50aWxNaW51dGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXREYXRlRnJvbUlucHV0KHNlbGVjdGVkRGF0ZXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlTGFiZWxWYWx1ZXMoc2VsZWN0ZWREYXRlczogRGF0ZVtdKSB7XG4gICAgICAgIGlmICghc2VsZWN0ZWREYXRlcyB8fCAhc2VsZWN0ZWREYXRlc1swXSB8fCAhc2VsZWN0ZWREYXRlc1sxXSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmlzUmFuZ2VXaXRoVGltZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRzLmZyb20ubGFiZWwuaW5uZXJUZXh0ID0gYNCf0LXRgNC40L7QtCDRgSAke3RoaXMuZmxhdHBpY2tyLmZvcm1hdERhdGUoc2VsZWN0ZWREYXRlc1swXSwgJ0QgZC5tLlknKX1gO1xuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWREYXRlc1sxXSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHMudW50aWwubGFiZWwuaW5uZXJUZXh0ID0gYNC/0L4gJHt0aGlzLmZsYXRwaWNrci5mb3JtYXREYXRlKHNlbGVjdGVkRGF0ZXNbMV0sICdEIGQubS5ZJyl9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0VGltZUNvbnN0cmFpbnRzKHNlbGVjdGVkRGF0ZXM6IERhdGVbXSkge1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlV2l0aFRpbWUoKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNTYW1lRGF0ZShzZWxlY3RlZERhdGVzWzBdLCBzZWxlY3RlZERhdGVzWzFdKSkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRUaW1lSWZOZWVkKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRVbnRpbFRpbWVDb25zdHJhaW50KHNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0QWxsQ29uc3RyYWludHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRBbGxDb25zdHJhaW50cygpIHtcbiAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLmZyb20uaG91ci5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy5mcm9tLm1pbnV0ZS5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy51bnRpbC5ob3VyLm9wdGlvbnMpLmZvckVhY2goKG9wdGlvbjogT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICBvcHRpb24uZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkTGlzdGVuZXJzT25UaW1lU2VsZWN0b3JzKCkge1xuICAgICAgICB0aGlzLmVsZW1lbnRzLmZyb20uaG91ci5vbmNoYW5nZSA9IHRoaXMub25DaGFuZ2VUaW1lRnJvbS5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLm9uY2hhbmdlID0gdGhpcy5vbkNoYW5nZVRpbWVGcm9tLmJpbmQodGhpcyk7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5ob3VyLm9uY2hhbmdlID0gdGhpcy5vbkNoYW5nZVRpbWVVbnRpbC5iaW5kKHRoaXMpO1xuICAgICAgICB0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5vbmNoYW5nZSA9IHRoaXMub25DaGFuZ2VUaW1lVW50aWwuYmluZCh0aGlzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlVGltZUZyb20oZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmlzU2FtZURhdGUodGhpcy5mbGF0cGlja3Iuc2VsZWN0ZWREYXRlc1swXSwgdGhpcy5mbGF0cGlja3Iuc2VsZWN0ZWREYXRlc1sxXSkpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZVRpbWVVbnRpbFNlbGVjdG9ycygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlVGltZUZpZWxkc0NvbnRlbnQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZVNpbmdsZVNlbGVjdGVkVmFsdWVJblJhbmdlKHNlbGVjdGVkRGF0ZXM6IFtEYXRlLCBEYXRlXSkge1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlKCkgJiYgIXNlbGVjdGVkRGF0ZXNbMV0pIHtcbiAgICAgICAgICAgIGNvbnN0IHVudGlsRGF0ZSA9IG5ldyBEYXRlKHNlbGVjdGVkRGF0ZXNbMF0pO1xuICAgICAgICAgICAgdW50aWxEYXRlLnNldEhvdXJzKDIzLCA1OSwgMCwgMCk7XG5cbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWREYXRlcyA9IFtzZWxlY3RlZERhdGVzWzBdLCB1bnRpbERhdGVdO1xuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKHVwZGF0ZWREYXRlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG9uQ2hhbmdlVGltZVVudGlsKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5pc1NhbWVEYXRlKHRoaXMuZmxhdHBpY2tyLnNlbGVjdGVkRGF0ZXNbMF0sIHRoaXMuZmxhdHBpY2tyLnNlbGVjdGVkRGF0ZXNbMV0pKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVUaW1lRnJvbVNlbGVjdG9ycygpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlVGltZUZpZWxkc0NvbnRlbnQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVRpbWVGaWVsZHNDb250ZW50KCkge1xuICAgICAgICBjb25zdCB7ZnJvbUhvdXIsIGZyb21NaW51dGUsIHVudGlsSG91ciwgdW50aWxNaW51dGV9ID0gdGhpcy5nZXRTZWxlY3RvclZhdWxlc0FzU3RyaW5nKCk7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50cy5mcm9tLmhvdXJGaWVsZC5pbm5lclRleHQgPSBmcm9tSG91cjtcbiAgICAgICAgdGhpcy5lbGVtZW50cy5mcm9tLm1pbnV0ZUZpZWxkLmlubmVyVGV4dCA9IGZyb21NaW51dGU7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5ob3VyRmllbGQuaW5uZXJUZXh0ID0gdW50aWxIb3VyO1xuICAgICAgICB0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZUZpZWxkLmlubmVyVGV4dCA9IHVudGlsTWludXRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGlzYWJsZVRpbWVVbnRpbFNlbGVjdG9ycygpIHtcbiAgICAgICAgY29uc3Qge2Zyb21Ib3VyLCBmcm9tTWludXRlfSA9IHRoaXMuZ2V0U2VsZWN0ZWRGcm9tKCk7XG4gICAgICAgIGNvbnN0IHt1bnRpbEhvdXIsIHVudGlsTWludXRlfSA9IHRoaXMuZ2V0U2VsZWN0ZWRVbnRpbCgpO1xuXG4gICAgICAgIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy51bnRpbC5ob3VyLm9wdGlvbnMpLmZvckVhY2goKG9wdGlvbjogT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICBvcHRpb24uZGlzYWJsZWQgPSBOdW1iZXIob3B0aW9uLnZhbHVlKSA8IGZyb21Ib3VyO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZnJvbUhvdXIgPT09IHVudGlsSG91cikge1xuICAgICAgICAgICAgaWYgKGZyb21NaW51dGUgPiB1bnRpbE1pbnV0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHMudW50aWwubWludXRlLnNlbGVjdGVkSW5kZXggPSA0O1xuXG4gICAgICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLm9wdGlvbnMpLmZvckVhY2goKG9wdGlvbjogT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IE51bWJlcihvcHRpb24udmFsdWUpIDwgZnJvbU1pbnV0ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLm9wdGlvbnMpLmZvckVhY2goKG9wdGlvbjogT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc2FibGVUaW1lRnJvbVNlbGVjdG9ycygpIHtcbiAgICAgICAgY29uc3Qge2Zyb21Ib3VyLCBmcm9tTWludXRlfSA9IHRoaXMuZ2V0U2VsZWN0ZWRGcm9tKCk7XG4gICAgICAgIGNvbnN0IHt1bnRpbEhvdXIsIHVudGlsTWludXRlfSA9IHRoaXMuZ2V0U2VsZWN0ZWRVbnRpbCgpO1xuXG4gICAgICAgIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy5mcm9tLmhvdXIub3B0aW9ucykuZm9yRWFjaCgob3B0aW9uOiBPcHRpb24pID0+IHtcbiAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IE51bWJlcihvcHRpb24udmFsdWUpID4gdW50aWxIb3VyO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoZnJvbUhvdXIgPT09IHVudGlsSG91cikge1xuICAgICAgICAgICAgaWYgKGZyb21NaW51dGUgPiB1bnRpbE1pbnV0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudHMudW50aWwubWludXRlLnNlbGVjdGVkSW5kZXggPSA0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3Qge3VudGlsTWludXRlOiB1bnRpbE1pbnV0ZUFmdGVyVXBkYXRlfSA9IHRoaXMuZ2V0U2VsZWN0ZWRVbnRpbCgpO1xuXG4gICAgICAgICAgICBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMuZnJvbS5taW51dGUub3B0aW9ucykuZm9yRWFjaCgob3B0aW9uOiBPcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICBvcHRpb24uZGlzYWJsZWQgPSBOdW1iZXIob3B0aW9uLnZhbHVlKSA+IHVudGlsTWludXRlQWZ0ZXJVcGRhdGU7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IE51bWJlcihvcHRpb24udmFsdWUpIDwgZnJvbU1pbnV0ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLm9wdGlvbnMpLmZvckVhY2goKG9wdGlvbjogT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFVudGlsVGltZUNvbnN0cmFpbnQoc2VsZWN0ZWREYXRlczogRGF0ZVtdKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZVRpbWVVbnRpbFNlbGVjdG9ycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRUaW1lSWZOZWVkKCkge1xuICAgICAgICBjb25zdCB7ZnJvbUhvdXIsIGZyb21NaW51dGV9ID0gdGhpcy5nZXRTZWxlY3RlZEZyb20oKTtcbiAgICAgICAgY29uc3Qge3VudGlsSG91ciwgdW50aWxNaW51dGV9ID0gdGhpcy5nZXRTZWxlY3RlZFVudGlsKCk7XG5cbiAgICAgICAgaWYgKGZyb21Ib3VyID4gdW50aWxIb3VyIHx8IChmcm9tSG91ciA9PT0gdW50aWxIb3VyICYmIGZyb21NaW51dGUgPiB1bnRpbE1pbnV0ZSkpIHtcbiAgICAgICAgICAgIHRoaXMucmVzZXRUaW1lKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0VGltZSgpIHtcbiAgICAgICAgdGhpcy5lbGVtZW50cy5mcm9tLmhvdXIuc2VsZWN0ZWRJbmRleCA9IDA7XG4gICAgICAgIHRoaXMuZWxlbWVudHMuZnJvbS5taW51dGUuc2VsZWN0ZWRJbmRleCA9IDA7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5ob3VyLnNlbGVjdGVkSW5kZXggPSAyMztcbiAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5taW51dGUuc2VsZWN0ZWRJbmRleCA9IDQ7XG5cbiAgICAgICAgdGhpcy51cGRhdGVUaW1lRmllbGRzQ29udGVudCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0b3JWYXVsZXNBc1N0cmluZygpOiB7XG4gICAgICAgIGZyb21Ib3VyOiBzdHJpbmc7XG4gICAgICAgIGZyb21NaW51dGU6IHN0cmluZztcbiAgICAgICAgdW50aWxIb3VyOiBzdHJpbmc7XG4gICAgICAgIHVudGlsTWludXRlOiBzdHJpbmc7XG4gICAgfSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmcm9tSG91cjogdGhpcy5lbGVtZW50cy5mcm9tLmhvdXIub3B0aW9uc1t0aGlzLmVsZW1lbnRzLmZyb20uaG91ci5zZWxlY3RlZEluZGV4XS52YWx1ZSxcbiAgICAgICAgICAgIGZyb21NaW51dGU6IHRoaXMuZWxlbWVudHMuZnJvbS5taW51dGUub3B0aW9uc1t0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLnNlbGVjdGVkSW5kZXhdLnZhbHVlLFxuICAgICAgICAgICAgdW50aWxIb3VyOiB0aGlzLmVsZW1lbnRzLnVudGlsLmhvdXIub3B0aW9uc1t0aGlzLmVsZW1lbnRzLnVudGlsLmhvdXIuc2VsZWN0ZWRJbmRleF0udmFsdWUsXG4gICAgICAgICAgICB1bnRpbE1pbnV0ZTogdGhpcy5lbGVtZW50cy51bnRpbC5taW51dGUub3B0aW9uc1t0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5zZWxlY3RlZEluZGV4XS52YWx1ZSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkRnJvbSgpOiB7ZnJvbUhvdXI6IG51bWJlcjsgZnJvbU1pbnV0ZTogbnVtYmVyfSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmcm9tSG91cjogTnVtYmVyKHRoaXMuZWxlbWVudHMuZnJvbS5ob3VyLm9wdGlvbnNbdGhpcy5lbGVtZW50cy5mcm9tLmhvdXIuc2VsZWN0ZWRJbmRleF0udmFsdWUpLFxuICAgICAgICAgICAgZnJvbU1pbnV0ZTogTnVtYmVyKHRoaXMuZWxlbWVudHMuZnJvbS5taW51dGUub3B0aW9uc1t0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLnNlbGVjdGVkSW5kZXhdLnZhbHVlKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkVW50aWwoKToge3VudGlsSG91cjogbnVtYmVyOyB1bnRpbE1pbnV0ZTogbnVtYmVyfSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB1bnRpbEhvdXI6IE51bWJlcih0aGlzLmVsZW1lbnRzLnVudGlsLmhvdXIub3B0aW9uc1t0aGlzLmVsZW1lbnRzLnVudGlsLmhvdXIuc2VsZWN0ZWRJbmRleF0udmFsdWUpLFxuICAgICAgICAgICAgdW50aWxNaW51dGU6IE51bWJlcih0aGlzLmVsZW1lbnRzLnVudGlsLm1pbnV0ZS5vcHRpb25zW3RoaXMuZWxlbWVudHMudW50aWwubWludXRlLnNlbGVjdGVkSW5kZXhdLnZhbHVlKSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFJhbmdlQ29uc3RyYWludHMoc2VsZWN0ZWREYXRlczogRGF0ZVtdKSB7XG4gICAgICAgIGlmICh0aGlzLmlzUmFuZ2UoKSAmJiB0aGlzLm1heFJhbmdlRGF5cykge1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRGF0ZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWluRGF0ZSA9IG5ldyBEYXRlKHNlbGVjdGVkRGF0ZXNbMF0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1heERhdGUgPSBuZXcgRGF0ZShzZWxlY3RlZERhdGVzWzBdKTtcblxuICAgICAgICAgICAgICAgIG1pbkRhdGUuc2V0RGF0ZShtaW5EYXRlLmdldERhdGUoKSAtIHRoaXMubWF4UmFuZ2VEYXlzKTtcbiAgICAgICAgICAgICAgICBtYXhEYXRlLnNldERhdGUobWF4RGF0ZS5nZXREYXRlKCkgKyB0aGlzLm1heFJhbmdlRGF5cyk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmZsYXRwaWNrci5jb25maWcubWluRGF0ZSA9IG1pbkRhdGU7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0cGlja3IuY29uZmlnLm1heERhdGUgPSBtYXhEYXRlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0Q29uc3RyYWludHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRDb25zdHJhaW50cygpIHtcbiAgICAgICAgdGhpcy5mbGF0cGlja3IuY29uZmlnLm1pbkRhdGUgPSB0aGlzLmNvbmZpZy5taW5EYXRlO1xuICAgICAgICB0aGlzLmZsYXRwaWNrci5jb25maWcubWF4RGF0ZSA9IHRoaXMuY29uZmlnLm1heERhdGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1JhbmdlV2l0aFRpbWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUmFuZ2UoKSAmJiB0aGlzLmNvbmZpZy5lbmFibGVUaW1lO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RW1wdHlGaWVsZFN0YXRlSWZOZWVkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlKCkgJiYgdGhpcy5mbGF0cGlja3Iuc2VsZWN0ZWREYXRlcy5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RW1wdHlGaWVsZFN0YXRlKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQaWNrZXJJZk5lZWQodmFsdWU6IFNlbGVjdGVkRGF0ZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZmxhdHBpY2tyKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZERhdGVzID0gdGhpcy5nZXRTZWxlY3RlZERhdGVzV2l0aERhdGVQaWNrZXJGb3JtYXQodGhpcy5mbGF0cGlja3Iuc2VsZWN0ZWREYXRlcyk7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZXMgPSB0aGlzLmdldFNlbGVjdGVkRGF0ZXNXaXRoRGF0ZVBpY2tlckZvcm1hdCh2YWx1ZSk7XG5cbiAgICAgICAgICAgIGlmICghaXNFcXVhbCh2YWx1ZXMsIHNlbGVjdGVkRGF0ZXMpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXREYXRlRnJvbUlucHV0KHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWREYXRlc1dpdGhEYXRlUGlja2VyRm9ybWF0KGRhdGVSYW5nZTogU2VsZWN0ZWREYXRlcyk6IHN0cmluZ1tdIHtcbiAgICAgICAgaWYgKGRhdGVSYW5nZSAmJiBkYXRlUmFuZ2UubGVuZ3RoICYmIHR5cGVvZiBkYXRlUmFuZ2VbMF0gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gKGRhdGVSYW5nZSBhcyBEYXRlW10pLm1hcCgoZGF0ZSkgPT4gdGhpcy50b0RhdGVQaWNrZXJGb3JtYXQoZGF0ZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRhdGVSYW5nZSBhcyBzdHJpbmdbXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRvRGF0ZVBpY2tlckZvcm1hdChkYXRlPzogRGF0ZSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGAke2RhdGUuZ2V0RGF0ZSgpfS4ke2RhdGUuZ2V0TW9udGgoKSArIDF9LiR7ZGF0ZS5nZXRGdWxsWWVhcigpfWA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU3Vic3RpdHV0aW9uIG9mIGljb25zXG4gICAgICovXG4gICAgcHJpdmF0ZSBjaGFuZ2VOZXh0SWNvbigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgSWNvbnMgPSB7XG4gICAgICAgICAgICBQUkVWOiBgXG4gICAgICAgICAgICAgICAgPHN2ZyBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgNiAxNlwiIHdpZHRoPVwiNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggX25nY29udGVudC1jMD1cIlwiIGQ9XCJNNiAwTDAgOEw2IDE2VjBaXCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDYgMTYpIHJvdGF0ZSgxODApXCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgIDwvc3ZnPmAsXG4gICAgICAgICAgICBORVhUOiBgXG4gICAgICAgICAgICAgICAgPHN2ZyBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgNiAxNlwiIHdpZHRoPVwiNlwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggX25nY29udGVudC1jMD1cIlwiIGQ9XCJNNiAwTDAgOEw2IDE2VjBaXCIgZmlsbD1cIndoaXRlXCI+PC9wYXRoPlxuICAgICAgICAgICAgICAgIDwvc3ZnPmAsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5mbGF0cGlja3IubmV4dE1vbnRoTmF2LmlubmVySFRNTCA9IEljb25zLlBSRVY7XG4gICAgICAgIHRoaXMuZmxhdHBpY2tyLnByZXZNb250aE5hdi5pbm5lckhUTUwgPSBJY29ucy5ORVhUO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkRGVzY3JpcHRpb25JZk5lZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdwJyk7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbkVsZW1lbnQuY2xhc3NOYW1lID0gY3NzQ2xhc3Nlcy5ERVNDUklQVElPTjtcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmRlc2NyaXB0aW9uO1xuXG4gICAgICAgICAgICB0aGlzLmZsYXRwaWNrci5yQ29udGFpbmVyLmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uRWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGlzU2FtZURhdGUoZmlyc3REYXRlOiBEYXRlLCBzZWNvbmREYXRlOiBEYXRlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBmaXJzdERhdGUgJiZcbiAgICAgICAgICAgIHNlY29uZERhdGUgJiZcbiAgICAgICAgICAgIGZpcnN0RGF0ZS5nZXREYXRlKCkgPT09IHNlY29uZERhdGUuZ2V0RGF0ZSgpICYmXG4gICAgICAgICAgICBmaXJzdERhdGUuZ2V0TW9udGgoKSA9PT0gc2Vjb25kRGF0ZS5nZXRNb250aCgpICYmXG4gICAgICAgICAgICBmaXJzdERhdGUuZ2V0RnVsbFllYXIoKSA9PT0gc2Vjb25kRGF0ZS5nZXRGdWxsWWVhcigpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRTZWxlY3RlZEluZGV4QnlNaW51dGVzKG1pbnV0ZXM6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoTWF0aC5yb3VuZChtaW51dGVzIC8gNSkgKiA1KSAvIDE1O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRUaW1lQWZ0ZXJPcGVuKCkge1xuICAgICAgICBpZiAodGhpcy5pc1JhbmdlV2l0aFRpbWUoKSkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWREYXRlcyA9IHRoaXMuZmxhdHBpY2tyLnNlbGVjdGVkRGF0ZXM7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWREYXRlc1swXSAmJiBzZWxlY3RlZERhdGVzWzFdKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50cy5mcm9tLmhvdXIuc2VsZWN0ZWRJbmRleCA9IHNlbGVjdGVkRGF0ZXNbMF0uZ2V0SG91cnMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzLmZyb20ubWludXRlLnNlbGVjdGVkSW5kZXggPSB0aGlzLmdldFNlbGVjdGVkSW5kZXhCeU1pbnV0ZXMoc2VsZWN0ZWREYXRlc1swXS5nZXRNaW51dGVzKCkpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5ob3VyLnNlbGVjdGVkSW5kZXggPSBzZWxlY3RlZERhdGVzWzFdLmdldEhvdXJzKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50cy51bnRpbC5taW51dGUuc2VsZWN0ZWRJbmRleCA9IHRoaXMuZ2V0U2VsZWN0ZWRJbmRleEJ5TWludXRlcyhcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWREYXRlc1sxXS5nZXRNaW51dGVzKCksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZENvbnN0cmFpbnRzQWZ0ZXJPcGVuKHNlbGVjdGVkRGF0ZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlVGltZUZpZWxkc0NvbnRlbnQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYWRkQ29uc3RyYWludHNBZnRlck9wZW4oc2VsZWN0ZWREYXRlczogW0RhdGUsIERhdGVdKSB7XG4gICAgICAgIGlmICh0aGlzLmlzU2FtZURhdGUoc2VsZWN0ZWREYXRlc1swXSwgc2VsZWN0ZWREYXRlc1sxXSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHtmcm9tSG91ciwgZnJvbU1pbnV0ZX0gPSB0aGlzLmdldFNlbGVjdGVkRnJvbSgpO1xuICAgICAgICAgICAgY29uc3Qge3VudGlsSG91ciwgdW50aWxNaW51dGV9ID0gdGhpcy5nZXRTZWxlY3RlZFVudGlsKCk7XG5cbiAgICAgICAgICAgIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy5mcm9tLmhvdXIub3B0aW9ucykuZm9yRWFjaCgob3B0aW9uOiBPcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICBvcHRpb24uZGlzYWJsZWQgPSBOdW1iZXIob3B0aW9uLnZhbHVlKSA+IHVudGlsSG91cjtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMudW50aWwuaG91ci5vcHRpb25zKS5mb3JFYWNoKChvcHRpb246IE9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IE51bWJlcihvcHRpb24udmFsdWUpIDwgZnJvbUhvdXI7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKGZyb21Ib3VyID09PSB1bnRpbEhvdXIpIHtcbiAgICAgICAgICAgICAgICBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMuZnJvbS5taW51dGUub3B0aW9ucykuZm9yRWFjaCgob3B0aW9uOiBPcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gTnVtYmVyKG9wdGlvbi52YWx1ZSkgPiB1bnRpbE1pbnV0ZTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy51bnRpbC5taW51dGUub3B0aW9ucykuZm9yRWFjaCgob3B0aW9uOiBPcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gTnVtYmVyKG9wdGlvbi52YWx1ZSkgPCBmcm9tTWludXRlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMuZnJvbS5taW51dGUub3B0aW9ucykuZm9yRWFjaCgob3B0aW9uOiBPcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMudW50aWwubWludXRlLm9wdGlvbnMpLmZvckVhY2goKG9wdGlvbjogT3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbi5kaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAjZmxhdHBpY2tyIGNsYXNzPVwiZXZvLWRhdGVwaWNrZXJcIiBbZXZvVWlDbGFzc109XCJ0b3RhbENsYXNzZXNcIiAoY2xpY2spPVwib25EYXRlcGlja2VyQ2xpY2soJGV2ZW50KVwiPlxuICAgIDxpbnB1dFxuICAgICAgICAjaW5wdXRcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBkYXRhLWlucHV0XG4gICAgICAgIGNsYXNzPVwiZXZvLWRhdGVwaWNrZXJfX2lucHV0XCJcbiAgICAgICAgW2V2b1VpQ2xhc3NdPVwiaW5wdXRDbGFzc1wiXG4gICAgICAgIFtpbWFza109XCJtYXNrQ29uZmlnXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cImRpc2FibGVkXCJcbiAgICAgICAgKGNvbXBsZXRlKT1cImhhbmRsZU1hc2tDb21wbGV0ZSgkZXZlbnQpXCJcbiAgICAvPlxuXG4gICAgQGlmIChpc1JhbmdlKCkgJiYgaW5wdXQudmFsdWUpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJldm8tZGF0ZXBpY2tlcl9fdmFsdWVcIj57eyBpbnB1dC52YWx1ZSB9fTwvc3Bhbj5cbiAgICB9XG5cbiAgICBAaWYgKHNob3VsZFNob3dFbXB0eVRleHQoKSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImV2by1kYXRlcGlja2VyX19lbXB0eS10ZXh0XCI+e3sgaXNSYW5nZSgpID8gJ9CX0LAg0L/QtdGA0LjQvtC0JyA6ICfQlNCw0YLQsCcgfX08L3NwYW4+XG4gICAgfVxuXG4gICAgQGlmICghZGlzYWJsZWQpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJldm8tZGF0ZXBpY2tlcl9fb3BlbmVyXCI+XG4gICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICBkPVwiTTIwIDNIMTlWMkMxOSAxLjQ1IDE4LjU1IDEgMTggMUMxNy40NSAxIDE3IDEuNDUgMTcgMlYzSDdWMkM3IDEuNDUgNi41NSAxIDYgMUM1LjQ1IDEgNSAxLjQ1IDUgMlYzSDRDMi45IDMgMiAzLjkgMiA1VjIxQzIgMjIuMSAyLjkgMjMgNCAyM0gyMEMyMS4xIDIzIDIyIDIyLjEgMjIgMjFWNUMyMiAzLjkgMjEuMSAzIDIwIDNaTTE5IDIxSDVDNC40NSAyMSA0IDIwLjU1IDQgMjBWOEgyMFYyMEMyMCAyMC41NSAxOS41NSAyMSAxOSAyMVpcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9zcGFuPlxuICAgIH1cblxuICAgIEBpZiAoIXVpU3RhdGUuaXNFbXB0eUZpZWxkKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZXZvLWRhdGVwaWNrZXJfX29wZW5lci10cmlhbmdsZVwiPjwvc3Bhbj5cbiAgICB9XG48L2Rpdj5cblxuQGlmIChzaG93RXJyb3JzKSB7XG4gICAgPGV2by1jb250cm9sLWVycm9yIFtlcnJvcnNdPVwiY29udHJvbC5lcnJvcnNcIiBbZXJyb3JzTWVzc2FnZXNdPVwiZXJyb3JzTWVzc2FnZXNcIiAvPlxufVxuIl19