@fundamental-ngx/core 0.43.15 → 0.43.17

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 (90) hide show
  1. package/calendar/calendar-directives.d.ts +11 -9
  2. package/calendar/calendar-header/calendar-header.component.d.ts +5 -23
  3. package/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.d.ts +1 -20
  4. package/calendar/calendar-views/calendar-day-view/calendar-day-view.component.d.ts +3 -41
  5. package/calendar/calendar-views/calendar-month-view/calendar-month-view.component.d.ts +1 -20
  6. package/calendar/calendar-views/calendar-year-view/calendar-year-view.component.d.ts +1 -20
  7. package/calendar/calendar.module.d.ts +2 -1
  8. package/calendar/i18n/calendar-i18n-labels.d.ts +20 -22
  9. package/calendar/patch-deprecated-i18n-labels.d.ts +6 -0
  10. package/combobox/combobox.component.d.ts +9 -7
  11. package/esm2020/calendar/calendar-directives.mjs +27 -20
  12. package/esm2020/calendar/calendar-header/calendar-header.component.mjs +30 -60
  13. package/esm2020/calendar/calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component.mjs +9 -34
  14. package/esm2020/calendar/calendar-views/calendar-day-view/calendar-day-view.component.mjs +10 -62
  15. package/esm2020/calendar/calendar-views/calendar-month-view/calendar-month-view.component.mjs +9 -34
  16. package/esm2020/calendar/calendar-views/calendar-year-view/calendar-year-view.component.mjs +9 -34
  17. package/esm2020/calendar/calendar.component.mjs +13 -3
  18. package/esm2020/calendar/calendar.module.mjs +5 -4
  19. package/esm2020/calendar/i18n/calendar-i18n-labels.mjs +22 -28
  20. package/esm2020/calendar/patch-deprecated-i18n-labels.mjs +26 -0
  21. package/esm2020/combobox/combobox.component.mjs +20 -9
  22. package/esm2020/date-picker/date-picker.component.mjs +1 -1
  23. package/esm2020/datetime-picker/datetime-picker.component.mjs +1 -1
  24. package/esm2020/input-group/input-group.component.mjs +6 -4
  25. package/esm2020/multi-combobox/multi-combobox.component.mjs +15 -17
  26. package/esm2020/multi-input/multi-input.component.mjs +13 -11
  27. package/esm2020/popover/base/base-popover.class.mjs +2 -2
  28. package/esm2020/popover/popover-body/popover-body.component.mjs +2 -2
  29. package/esm2020/select/select.component.mjs +3 -3
  30. package/esm2020/table/table-wrapper.component.mjs +2 -2
  31. package/esm2020/table/table.component.mjs +2 -2
  32. package/esm2020/time-picker/time-picker.component.mjs +1 -1
  33. package/esm2020/token/token.component.mjs +10 -8
  34. package/esm2020/token/tokenizer.component.mjs +5 -4
  35. package/fesm2015/fundamental-ngx-core-calendar.mjs +156 -282
  36. package/fesm2015/fundamental-ngx-core-calendar.mjs.map +1 -1
  37. package/fesm2015/fundamental-ngx-core-combobox.mjs +16 -6
  38. package/fesm2015/fundamental-ngx-core-combobox.mjs.map +1 -1
  39. package/fesm2015/fundamental-ngx-core-date-picker.mjs +1 -1
  40. package/fesm2015/fundamental-ngx-core-date-picker.mjs.map +1 -1
  41. package/fesm2015/fundamental-ngx-core-datetime-picker.mjs +1 -1
  42. package/fesm2015/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  43. package/fesm2015/fundamental-ngx-core-input-group.mjs +5 -3
  44. package/fesm2015/fundamental-ngx-core-input-group.mjs.map +1 -1
  45. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs +10 -13
  46. package/fesm2015/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  47. package/fesm2015/fundamental-ngx-core-multi-input.mjs +11 -9
  48. package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  49. package/fesm2015/fundamental-ngx-core-popover.mjs +2 -2
  50. package/fesm2015/fundamental-ngx-core-popover.mjs.map +1 -1
  51. package/fesm2015/fundamental-ngx-core-select.mjs +2 -2
  52. package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
  53. package/fesm2015/fundamental-ngx-core-table.mjs +4 -4
  54. package/fesm2015/fundamental-ngx-core-table.mjs.map +1 -1
  55. package/fesm2015/fundamental-ngx-core-time-picker.mjs +1 -1
  56. package/fesm2015/fundamental-ngx-core-time-picker.mjs.map +1 -1
  57. package/fesm2015/fundamental-ngx-core-token.mjs +11 -9
  58. package/fesm2015/fundamental-ngx-core-token.mjs.map +1 -1
  59. package/fesm2020/fundamental-ngx-core-calendar.mjs +162 -282
  60. package/fesm2020/fundamental-ngx-core-calendar.mjs.map +1 -1
  61. package/fesm2020/fundamental-ngx-core-combobox.mjs +18 -7
  62. package/fesm2020/fundamental-ngx-core-combobox.mjs.map +1 -1
  63. package/fesm2020/fundamental-ngx-core-date-picker.mjs +1 -1
  64. package/fesm2020/fundamental-ngx-core-date-picker.mjs.map +1 -1
  65. package/fesm2020/fundamental-ngx-core-datetime-picker.mjs +1 -1
  66. package/fesm2020/fundamental-ngx-core-datetime-picker.mjs.map +1 -1
  67. package/fesm2020/fundamental-ngx-core-input-group.mjs +5 -3
  68. package/fesm2020/fundamental-ngx-core-input-group.mjs.map +1 -1
  69. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs +10 -12
  70. package/fesm2020/fundamental-ngx-core-multi-combobox.mjs.map +1 -1
  71. package/fesm2020/fundamental-ngx-core-multi-input.mjs +11 -9
  72. package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  73. package/fesm2020/fundamental-ngx-core-popover.mjs +2 -2
  74. package/fesm2020/fundamental-ngx-core-popover.mjs.map +1 -1
  75. package/fesm2020/fundamental-ngx-core-select.mjs +2 -2
  76. package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
  77. package/fesm2020/fundamental-ngx-core-table.mjs +4 -4
  78. package/fesm2020/fundamental-ngx-core-table.mjs.map +1 -1
  79. package/fesm2020/fundamental-ngx-core-time-picker.mjs +1 -1
  80. package/fesm2020/fundamental-ngx-core-time-picker.mjs.map +1 -1
  81. package/fesm2020/fundamental-ngx-core-token.mjs +11 -9
  82. package/fesm2020/fundamental-ngx-core-token.mjs.map +1 -1
  83. package/fundamental-ngx-core-v0.43.17.tgz +0 -0
  84. package/input-group/input-group.component.d.ts +7 -1
  85. package/multi-combobox/multi-combobox.component.d.ts +1 -1
  86. package/multi-input/multi-input.component.d.ts +5 -3
  87. package/package.json +3 -3
  88. package/schematics/add-dependencies/index.js +4 -4
  89. package/token/token.component.d.ts +4 -2
  90. package/fundamental-ngx-core-v0.43.15.tgz +0 -0
@@ -11,6 +11,8 @@ import { CalendarService } from './calendar.service';
11
11
  import { createMissingDateImplementationError } from './calendar-errors';
12
12
  import { CalendarAggregatedYearViewComponent } from './calendar-views/calendar-aggregated-year-view/calendar-aggregated-year-view.component';
13
13
  import { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';
14
+ import { patchDeprecatedI18nLabels } from './patch-deprecated-i18n-labels';
15
+ import { FD_LANGUAGE } from '@fundamental-ngx/i18n';
14
16
  import * as i0 from "@angular/core";
15
17
  import * as i1 from "@fundamental-ngx/core/content-density";
16
18
  import * as i2 from "@fundamental-ngx/core/datetime";
@@ -504,7 +506,11 @@ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
504
506
  multi: true
505
507
  },
506
508
  CalendarService,
507
- contentDensityObserverProviders()
509
+ contentDensityObserverProviders(),
510
+ {
511
+ provide: FD_LANGUAGE,
512
+ useFactory: patchDeprecatedI18nLabels
513
+ }
508
514
  ], viewQueries: [{ propertyName: "_dayViewComponent", first: true, predicate: CalendarDayViewComponent, descendants: true }, { propertyName: "_monthViewComponent", first: true, predicate: CalendarMonthViewComponent, descendants: true }, { propertyName: "_yearViewComponent", first: true, predicate: CalendarYearViewComponent, descendants: true }, { propertyName: "_aggregatedYearViewComponent", first: true, predicate: CalendarAggregatedYearViewComponent, descendants: true }, { propertyName: "_calendarHeaderComponent", first: true, predicate: CalendarHeaderComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<fd-calendar-header\n [currentlyDisplayed]=\"_currentlyDisplayed\"\n [activeView]=\"activeView\"\n [id]=\"id\"\n [calendarYearGrid]=\"yearGrid\"\n [mobileLandscape]=\"mobileLandscape\"\n (closeClicked)=\"closeClicked.emit()\"\n (nextClicked)=\"handleNextArrowClick()\"\n (previousClicked)=\"handlePreviousArrowClick()\"\n [previousButtonDisabled]=\"previousButtonDisabled\"\n [nextButtonDisabled]=\"nextButtonDisabled\"\n (activeViewChange)=\"handleActiveViewChange($event)\"\n></fd-calendar-header>\n<ng-container [ngSwitch]=\"activeView\" *ngIf=\"_currentlyDisplayed\">\n <div\n class=\"fd-calendar__content\"\n [class.fd-calendar__content--dates]=\"activeView === 'day'\"\n [class.fd-calendar__content--months]=\"activeView === 'month'\"\n [class.fd-calendar__content--years]=\"activeView === 'year' || activeView === 'aggregatedYear'\"\n >\n <fd-calendar-day-view\n *ngSwitchCase=\"'day'\"\n [selectedDate]=\"selectedDate\"\n [showWeekNumbers]=\"showWeekNumbers\"\n [markWeekends]=\"markWeekends\"\n (selectedDateChange)=\"selectedDateChanged($event)\"\n [selectedRangeDate]=\"selectedRangeDate\"\n (selectedRangeDateChange)=\"selectedRangeDateChanged($event)\"\n [currentlyDisplayed]=\"_currentlyDisplayed\"\n [startingDayOfWeek]=\"getWeekStartDay()\"\n [disableFunction]=\"disableFunction\"\n [disableRangeEndFunction]=\"disableRangeEndFunction\"\n [disableRangeStartFunction]=\"disableRangeStartFunction\"\n [calType]=\"calType\"\n [id]=\"id\"\n [rangeHoverEffect]=\"rangeHoverEffect\"\n [specialDaysRules]=\"specialDaysRules\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n (nextMonthSelect)=\"displayNextMonth()\"\n (previousMonthSelect)=\"displayPreviousMonth()\"\n ></fd-calendar-day-view>\n <fd-calendar-month-view\n *ngSwitchCase=\"'month'\"\n [monthSelected]=\"_currentlyDisplayed.month\"\n [year]=\"_currentlyDisplayed.year\"\n [id]=\"id\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n (monthClicked)=\"handleMonthViewChange($event)\"\n ></fd-calendar-month-view>\n <fd-calendar-year-view\n *ngSwitchCase=\"'year'\"\n [yearSelected]=\"_currentlyDisplayed.year\"\n [yearViewGrid]=\"yearGrid\"\n [id]=\"id\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n (yearClicked)=\"selectedYear($event)\"\n >\n </fd-calendar-year-view>\n <fd-calendar-aggregated-year-view\n *ngSwitchCase=\"'aggregatedYear'\"\n (yearsClicked)=\"selectedYears($event)\"\n [yearSelected]=\"_currentlyDisplayed.year\"\n [yearViewGrid]=\"yearGrid\"\n [aggregatedYearsViewGrid]=\"aggregatedYearGrid\"\n [id]=\"id\"\n [focusEscapeFunction]=\"escapeFocusFunction\"\n >\n </fd-calendar-aggregated-year-view>\n </div>\n</ng-container>\n", styles: ["/*!\n * Fundamental Library Styles v0.28.3\n * Copyright (c) 2023 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *//*!\n.fd-calendar+(--compact, --mobile-landscape, --mobile-portrait)\n .fd-calendar__header\n .fd-calendar__navigation(--main-navigation)\n .fd-calendar__action(+[--arrow-left, --arrow-right])\n .fd-calendar__close-button--navigation\n .fd-calendar__content(+[--months, --years])\n .fd-calendar__table\n .fd-calendar__group\n .fd-calendar__row\n .fd-calendar__item(+[--other-month, --current, --side-helper, --weekend, --range],\n +[(.is-disabled | [aria-disabled=true]), (.is-focus | [aria-focus=true]), (.is-active | [aria-active=true])])\n .fd-calendar__special-day(+[--1, --2, ..., --19, --20])\n .fd-calendar__text\n*/:root{--fdCalendar_Padding:1rem;--fdCalendar_Item_Width:2.125rem;--fdCalendar_Item_Height:2.75rem;--fdCalendar_Action_Padding:.5rem;--fdCalendar_Item_Spacing:.0625rem;--fdCalendar_Button_Horizontal_Space:.25rem;--fdCalendar_Width:20rem;--fdCalendar_Item_Inner_Border_Size:calc(100% - .125rem);--fdCalendar_Action_Width:auto}.fd-calendar .fd-calendar__item{-webkit-box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1 1 .375rem;background-color:var(--sapLegend_WorkingBackground);border:0;border-radius:var(--fdCalendar_Border_Radius);box-sizing:border-box;color:var(--sapTextColor);cursor:pointer;flex:1 1 .375rem;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:var(--fdCalendar_Item_Height);line-height:var(--sapContent_LineHeight);margin:.0625rem;min-width:var(--fdCalendar_Item_Width);overflow:hidden;padding:0;position:relative}.fd-calendar .fd-calendar__item:after,.fd-calendar .fd-calendar__item:before{box-sizing:inherit;font-size:inherit}.fd-calendar .fd-calendar__item:hover,.fd-calendar .is-hover.fd-calendar__item{background-color:var(--sapList_Hover_Background)}.fd-calendar__content--dates .fd-calendar__item--side-helper{align-self:center;background-color:var(--sapList_Background);height:var(--fdCalendar_Item_Side_Helper, 1.875rem);pointer-events:none}.fd-calendar__content--dates .fd-calendar__item--other-month{background-color:var(--sapList_Background)}.fd-calendar__content--dates .fd-calendar__item--other-month:hover,.fd-calendar__content--dates .is-hover.fd-calendar__item--other-month{background-color:var(--sapList_Hover_Background)}.fd-calendar__content--dates .fd-calendar__item--weekend{background-color:var(--sapLegend_NonWorkingBackground)}.fd-calendar__content--dates .fd-calendar__item--weekend:hover,.fd-calendar__content--dates .is-hover.fd-calendar__item--weekend{background-color:var(--sapList_Hover_Background)}.fd-calendar .fd-calendar__item--current,.fd-calendar__content--dates .fd-calendar__item--range.fd-calendar__item--current{border:solid var(--sapLegend_CurrentDateTime)!important}.fd-calendar .fd-calendar__item--current:active:after,.fd-calendar .is-active.fd-calendar__item--current:after,.fd-calendar__content--dates .fd-calendar__item--range.fd-calendar__item--current:active:after,.fd-calendar__content--dates .is-active.fd-calendar__item--range.fd-calendar__item--current:after{border:var(--fdCalendar_Active_Item_Border);border-radius:calc(var(--fdCalendar_Border_Radius) / 2);bottom:.0625rem;content:\" \";height:var(--fdCalendar_Item_Inner_Border_Size);left:.0625rem;position:absolute;right:auto;width:var(--fdCalendar_Item_Inner_Border_Size)}.fd-calendar .fd-calendar__item--current:active:after[dir=rtl],.fd-calendar .is-active.fd-calendar__item--current:after[dir=rtl],.fd-calendar [dir=rtl] .fd-calendar__item--current:active:after,.fd-calendar [dir=rtl] .is-active.fd-calendar__item--current:after,.fd-calendar__content--dates .fd-calendar__item--range.fd-calendar__item--current:active:after[dir=rtl],.fd-calendar__content--dates .is-active.fd-calendar__item--range.fd-calendar__item--current:after[dir=rtl],.fd-calendar__content--dates [dir=rtl] .fd-calendar__item--range.fd-calendar__item--current:active:after,.fd-calendar__content--dates [dir=rtl] .is-active.fd-calendar__item--range.fd-calendar__item--current:after,[dir=rtl] .fd-calendar .fd-calendar__item--current:active:after,[dir=rtl] .fd-calendar .is-active.fd-calendar__item--current:after,[dir=rtl] .fd-calendar__content--dates .fd-calendar__item--range.fd-calendar__item--current:active:after,[dir=rtl] .fd-calendar__content--dates .is-active.fd-calendar__item--range.fd-calendar__item--current:after{left:auto;right:.0625rem}.fd-calendar__content--dates .fd-calendar__item.is-active,.fd-calendar__content--dates .fd-calendar__item:active{background-color:var(--sapContent_Selected_Background);border:var(--fdCalendar_Active_Item_Border);font-weight:var(--fdCalendar_Active_Item_Font_Weight)}.fd-calendar__content--dates .fd-calendar__item.is-active:hover,.fd-calendar__content--dates .fd-calendar__item:hover:active,.fd-calendar__content--dates .is-hover.fd-calendar__item.is-active,.fd-calendar__content--dates .is-hover.fd-calendar__item:active{background-color:var(--fdCalendar_Item_Active_Background_Hover)}.fd-calendar__content--dates .fd-calendar__item.is-active:focus,.fd-calendar__content--dates .fd-calendar__item:focus:active,.fd-calendar__content--dates .is-focus.fd-calendar__item.is-active,.fd-calendar__content--dates .is-focus.fd-calendar__item:active{box-shadow:none;outline-color:var(--fdCalendar_Active_Focus_Item_Outline_Color);z-index:5}.fd-calendar__content--dates .fd-calendar__item--range{background-color:var(--sapList_SelectionBackgroundColor);border:.0625rem solid var(--sapList_SelectionBorderColor)}.fd-calendar__content--dates .fd-calendar__item--range:hover,.fd-calendar__content--dates .is-hover.fd-calendar__item--range{background-color:var(--sapList_Hover_SelectionBackground)}.fd-calendar__content--dates .fd-calendar__item.is-disabled,.fd-calendar__content--dates .fd-calendar__item:disabled,.fd-calendar__content--dates .fd-calendar__item[aria-disabled=true]{opacity:.4;pointer-events:none}.fd-calendar__content--dates .fd-calendar__item.is-disabled:hover,.fd-calendar__content--dates .fd-calendar__item:hover:disabled,.fd-calendar__content--dates .fd-calendar__item[aria-disabled=true]:hover{cursor:not-allowed}.fd-calendar__content--dates .fd-calendar__item.is-focus,.fd-calendar__content--dates .fd-calendar__item:focus{box-shadow:none;outline:var(--sapContent_FocusColor) var(--sapContent_FocusStyle) var(--sapContent_FocusWidth);outline-offset:-.1875rem}.fd-calendar__text{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;align-items:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;height:100%;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0;text-shadow:var(--fdCalendar_Text_Shadow)}.fd-calendar__text:after,.fd-calendar__text:before{box-sizing:inherit;font-size:inherit}.fd-calendar{-webkit-box-sizing:border-box;background-color:var(--sapList_Background);border:0;border-radius:var(--fdCalendar_Border_Radius);box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;padding:var(--fdCalendar_Padding);width:var(--fdCalendar_Width)}.fd-calendar:after,.fd-calendar:before{box-sizing:inherit;font-size:inherit}.fd-calendar__header{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;flex-direction:column;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;position:relative}.fd-calendar__header:after,.fd-calendar__header:before{box-sizing:inherit;font-size:inherit}.fd-calendar__navigation{-webkit-box-sizing:border-box;-webkit-box-pack:center;-ms-flex-pack:center;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;justify-content:center;line-height:var(--sapContent_LineHeight);margin:0;padding:0;padding-bottom:var(--fdCalendar_Button_Horizontal_Space);padding-top:var(--fdCalendar_Button_Horizontal_Space);width:100%}.fd-calendar__navigation:after,.fd-calendar__navigation:before{box-sizing:inherit;font-size:inherit}.fd-calendar__action{-webkit-box-sizing:border-box;-webkit-box-flex:1;-ms-flex-positive:1;border:0;box-sizing:border-box;color:var(--sapTextColor);flex-grow:1;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__action:after,.fd-calendar__action:before{box-sizing:inherit;font-size:inherit}.fd-calendar__action:not(:last-child):not(:first-child){margin-left:.25rem;margin-right:.25rem}.fd-calendar__action:first-child{margin-right:.25rem}.fd-calendar__action:last-child{margin-left:.25rem}.fd-calendar__action>[type=button]{width:100%}.fd-calendar__action--arrow-left,.fd-calendar__action--arrow-right{flex-grow:0;width:var(--fdCalendar_Action_Width)}.fd-calendar__action--arrow-left+.fd-calendar__action--arrow-right{margin-left:auto}.fd-calendar__action--arrow-left+.fd-calendar__action--arrow-right[dir=rtl],[dir=rtl] .fd-calendar__action--arrow-left+.fd-calendar__action--arrow-right{margin-left:0;margin-right:auto}.fd-calendar__action [class*=sap-icon][dir=rtl],[dir=rtl] .fd-calendar__action [class*=sap-icon]{transform:scaleX(-1)}.fd-calendar__content{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__content:after,.fd-calendar__content:before{box-sizing:inherit;font-size:inherit}.fd-calendar__content--months,.fd-calendar__content--years{padding-top:1.875rem}.fd-calendar__content--months .fd-calendar__item,.fd-calendar__content--years .fd-calendar__item{background-color:transparent;max-height:var(--fdCalendar_Item_Height)}.fd-calendar__content--months .fd-calendar__item-button,.fd-calendar__content--years .fd-calendar__item-button{min-height:100%;min-width:100%;padding:0}.fd-calendar__content--months .fd-calendar__item--current .fd-calendar__item-button,.fd-calendar__content--years .fd-calendar__item--current .fd-calendar__item-button{-webkit-box-shadow:none;border:none;border-radius:var(--fdCalendar_Month_Year_Item_Border_Radius);box-shadow:none}.fd-calendar__content--months .fd-calendar__item .fd-calendar__text,.fd-calendar__content--years .fd-calendar__item .fd-calendar__text{color:inherit}.fd-calendar__content--dates .fd-calendar__item.is-focus,.fd-calendar__content--dates .fd-calendar__item:focus{z-index:5}.fd-calendar__content--dates .fd-calendar__item.is-active .fd-calendar__text,.fd-calendar__content--dates .fd-calendar__item:active .fd-calendar__text{color:var(--sapContent_Selected_TextColor)}.fd-calendar__content--dates .fd-calendar__item--side-helper .fd-calendar__text{color:var(--sapContent_LabelColor);font-size:var(--sapFontSmallSize)}.fd-calendar__content--dates .fd-calendar__item--other-month .fd-calendar__text{color:var(--sapContent_LabelColor)}.fd-calendar__content--screen-reader-only{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fd-calendar__table{-webkit-box-sizing:border-box;border:0;border-spacing:0;box-sizing:border-box;color:var(--sapTextColor);display:table;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0;width:100%}.fd-calendar__table:after,.fd-calendar__table:before{box-sizing:inherit;font-size:inherit}.fd-calendar__group{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:table-row-group;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__group:after,.fd-calendar__group:before{box-sizing:inherit;font-size:inherit}.fd-calendar__row{-webkit-box-sizing:border-box;border:0;box-sizing:border-box;color:var(--sapTextColor);display:flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:var(--sapContent_LineHeight);margin:0;padding:0}.fd-calendar__row:after,.fd-calendar__row:before{box-sizing:inherit;font-size:inherit}.fd-calendar .fd-calendar__item{display:inline-block}.fd-calendar .fd-calendar__item--current .fd-calendar__text:before{border:var(--fdCalendar_Item_Current_Border);border-radius:calc(var(--sapElement_BorderCornerRadius) / 2);content:\"\";inset:0;position:absolute;z-index:1}.fd-calendar__special-day--1 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor1);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor1);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--1.is-active .fd-calendar__text:after,.fd-calendar__special-day--1:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor1),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--1.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--1.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--2 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor2);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor2);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--2.is-active .fd-calendar__text:after,.fd-calendar__special-day--2:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor2),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--2.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--2.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--3 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor3);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor3);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--3.is-active .fd-calendar__text:after,.fd-calendar__special-day--3:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor3),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--3.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--3.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--4 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor4);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor4);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--4.is-active .fd-calendar__text:after,.fd-calendar__special-day--4:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor4),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--4.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--4.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--5 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor5);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor5);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--5.is-active .fd-calendar__text:after,.fd-calendar__special-day--5:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor5),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--5.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--5.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--6 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor6);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor6);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--6.is-active .fd-calendar__text:after,.fd-calendar__special-day--6:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor6),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--6.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--6.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--7 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor7);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor7);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--7.is-active .fd-calendar__text:after,.fd-calendar__special-day--7:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor7),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--7.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--7.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--8 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor8);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor8);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--8.is-active .fd-calendar__text:after,.fd-calendar__special-day--8:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor8),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--8.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--8.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--9 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor9);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor9);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--9.is-active .fd-calendar__text:after,.fd-calendar__special-day--9:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor9),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--9.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--9.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--10 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor10);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor10);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--10.is-active .fd-calendar__text:after,.fd-calendar__special-day--10:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor10),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--10.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--10.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--11 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor11);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor11);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--11.is-active .fd-calendar__text:after,.fd-calendar__special-day--11:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor11),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--11.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--11.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--12 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor12);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor12);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--12.is-active .fd-calendar__text:after,.fd-calendar__special-day--12:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor12),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--12.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--12.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--13 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor13);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor13);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--13.is-active .fd-calendar__text:after,.fd-calendar__special-day--13:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor13),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--13.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--13.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--14 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor14);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor14);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--14.is-active .fd-calendar__text:after,.fd-calendar__special-day--14:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor14),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--14.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--14.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--15 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor15);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor15);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--15.is-active .fd-calendar__text:after,.fd-calendar__special-day--15:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor15),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--15.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--15.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--16 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor16);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor16);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--16.is-active .fd-calendar__text:after,.fd-calendar__special-day--16:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor16),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--16.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--16.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--17 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor17);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor17);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--17.is-active .fd-calendar__text:after,.fd-calendar__special-day--17:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor17),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--17.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--17.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--18 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor18);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor18);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--18.is-active .fd-calendar__text:after,.fd-calendar__special-day--18:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor18),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--18.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--18.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--19 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor19);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor19);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--19.is-active .fd-calendar__text:after,.fd-calendar__special-day--19:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor19),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--19.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--19.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar__special-day--20 .fd-calendar__text:after{-webkit-box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor20);bottom:0;box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor20);content:\"\";height:var(--fdCalendar_Special_Day_Marker_Height);left:0;position:absolute;right:0}.fd-calendar__special-day--20.is-active .fd-calendar__text:after,.fd-calendar__special-day--20:active .fd-calendar__text:after{box-shadow:inset 0 calc(var(--fdCalendar_Special_Day_Marker_Height) * -1) 0 var(--sapLegendColor20),inset 0 -.33rem 0 var(--fdCalendar_Item_Current_Inner_Border_Color);height:calc(var(--fdCalendar_Special_Day_Marker_Height) + .0625rem)}.fd-calendar__special-day--20.fd-calendar__item--current.is-active .fd-calendar__text:after,.fd-calendar__special-day--20.fd-calendar__item--current:active .fd-calendar__text:after{bottom:var(--fdCalendar_Item_Current_Active_Special_Day_Bottom);height:var(--fdCalendar_Item_Current_Active_Special_Day_Height);left:var(--fdCalendar_Item_Current_Active_Special_Day_Left);right:var(--fdCalendar_Item_Current_Active_Special_Day_Right);width:var(--fdCalendar_Item_Current_Active_Special_Day_Width)}.fd-calendar .fd-calendar__close-button--navigation{-webkit-transform:translateY(-50%);position:absolute;right:0;top:50%;transform:translateY(-50%)}.fd-calendar .fd-calendar__close-button--navigation[dir=rtl],[dir=rtl] .fd-calendar .fd-calendar__close-button--navigation{left:0;right:auto}.fd-calendar[class*=-compact],.fd-calendar[class*=-condensed],[class*=-compact] .fd-calendar:not([class*=-cozy]),[class*=-condensed] .fd-calendar:not([class*=-cozy]){--fdCalendar_Width:17rem;--fdCalendar_Padding:.5rem;--fdCalendar_Item_Height:1.875rem;--fdCalendar_Button_Horizontal_Space:.1875rem;--fdCalendar_Action_Width:1.875rem;--fdCalendar_Item_Width:1.875rem;--fdCalendar_Item_Inner_Border_Size:calc(100% - .125rem)}.fd-calendar--mobile-landscape,.fd-calendar--mobile-portrait{height:100%;width:100%}.fd-calendar--mobile-landscape{--fdCalendar_Padding:0;--fdCalendar_Item_Side_Helper:1.625rem}.fd-calendar--mobile-landscape .fd-calendar__navigation--main{max-width:20rem}.fd-calendar--mobile-portrait{--fdCalendar_Padding:1rem 0 0 0}.fd-has-display-block{display:block}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i4.CalendarHeaderComponent, selector: "fd-calendar-header", inputs: ["activeView", "currentlyDisplayed", "previousButtonDisabled", "nextButtonDisabled", "calendarYearGrid", "id", "mobileLandscape"], outputs: ["activeViewChange", "previousClicked", "nextClicked", "closeClicked"] }, { kind: "component", type: i5.CalendarDayViewComponent, selector: "fd-calendar-day-view", inputs: ["currentlyDisplayed", "selectedDate", "selectedRangeDate", "startingDayOfWeek", "calType", "id", "rangeHoverEffect", "markWeekends", "showWeekNumbers", "focusEscapeFunction", "specialDaysRules", "disableFunction", "disableRangeStartFunction", "disableRangeEndFunction"], outputs: ["selectedRangeDateChange", "nextMonthSelect", "previousMonthSelect", "selectedDateChange"] }, { kind: "component", type: i6.CalendarMonthViewComponent, selector: "fd-calendar-month-view", inputs: ["id", "monthSelected", "focusEscapeFunction", "year"], outputs: ["monthClicked"] }, { kind: "component", type: i7.CalendarYearViewComponent, selector: "fd-calendar-year-view", inputs: ["id", "focusEscapeFunction", "yearSelected", "yearViewGrid"], outputs: ["yearClicked"] }, { kind: "component", type: i8.CalendarAggregatedYearViewComponent, selector: "fd-calendar-aggregated-year-view", inputs: ["id", "focusEscapeFunction", "yearSelected", "aggregatedYearsViewGrid", "yearViewGrid"], outputs: ["yearsClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
509
515
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarComponent, decorators: [{
510
516
  type: Component,
@@ -520,7 +526,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
520
526
  multi: true
521
527
  },
522
528
  CalendarService,
523
- contentDensityObserverProviders()
529
+ contentDensityObserverProviders(),
530
+ {
531
+ provide: FD_LANGUAGE,
532
+ useFactory: patchDeprecatedI18nLabels
533
+ }
524
534
  ], host: {
525
535
  '(focusout)': '_focusOut($event)',
526
536
  '[attr.id]': 'id',
@@ -607,4 +617,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
607
617
  }], disableRangeEndFunction: [{
608
618
  type: Input
609
619
  }] } });
610
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGFBQWEsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBbUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdyRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDMUcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdGQUF3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SztnQkFVTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBdUJOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFXTixlQUFlO3NCQURkLEtBQUs7Z0JBUU4seUJBQXlCO3NCQUR4QixLQUFLO2dCQVFOLHVCQUF1QjtzQkFEdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERBVEVfVElNRV9GT1JNQVRTLCBEYXRldGltZUFkYXB0ZXIsIERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5pbXBvcnQgeyBTcGVjaWFsRGF5UnVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuXG5pbXBvcnQgeyBEYXRlUmFuZ2UgfSBmcm9tICcuL21vZGVscy9kYXRlLXJhbmdlJztcbmltcG9ydCB7IENhbGVuZGFyQ3VycmVudCB9IGZyb20gJy4vbW9kZWxzL2NhbGVuZGFyLWN1cnJlbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJZZWFyR3JpZCB9IGZyb20gJy4vbW9kZWxzL2NhbGVuZGFyLXllYXItZ3JpZCc7XG5pbXBvcnQgeyBBZ2dyZWdhdGVkWWVhciB9IGZyb20gJy4vbW9kZWxzL2FnZ3JlZ2F0ZWQteWVhcic7XG5pbXBvcnQgeyBDYWxlbmRhckRheVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLXZpZXdzL2NhbGVuZGFyLWRheS12aWV3L2NhbGVuZGFyLWRheS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhclllYXJWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci12aWV3cy9jYWxlbmRhci15ZWFyLXZpZXcvY2FsZW5kYXIteWVhci12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItdmlld3MvY2FsZW5kYXItbW9udGgtdmlldy9jYWxlbmRhci1tb250aC12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhckhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItaGVhZGVyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJTZXJ2aWNlIH0gZnJvbSAnLi9jYWxlbmRhci5zZXJ2aWNlJztcbmltcG9ydCB7IGNyZWF0ZU1pc3NpbmdEYXRlSW1wbGVtZW50YXRpb25FcnJvciB9IGZyb20gJy4vY2FsZW5kYXItZXJyb3JzJztcbmltcG9ydCB7IENhbGVuZGFyQWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci12aWV3cy9jYWxlbmRhci1hZ2dyZWdhdGVkLXllYXItdmlldy9jYWxlbmRhci1hZ2dyZWdhdGVkLXllYXItdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzYWJsZURhdGVGdW5jdGlvbiwgRXNjYXBlRm9jdXNGdW5jdGlvbiwgRm9jdXNhYmxlQ2FsZW5kYXJWaWV3IH0gZnJvbSAnLi9tb2RlbHMvY29tbW9uJztcbmltcG9ydCB7IENhbGVuZGFyVHlwZSwgRGF5c09mV2VlaywgRmRDYWxlbmRhclZpZXcsIE5hdmlnYXRpb25CdXR0b25EaXNhYmxlRnVuY3Rpb24gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuXG5sZXQgY2FsZW5kYXJVbmlxdWVJZCA9IDA7XG5cbi8qKlxuICogTW9udGhzOiAxID0gSmFudWFyeSwgMTIgPSBkZWNlbWJlci5cbiAqIERheXM6IDEgPSBTdW5kYXksIDcgPSBTYXR1cmRheVxuICpcbiAqIENhbGVuZGFyIGNvbXBvbmVudCB1c2VkIGZvciBzZWxlY3RpbmcgZGF0ZXMsIHR5cGljYWxseSB1c2VkIGJ5IHRoZSBEYXRlUGlja2VyIGFuZCBEYXRlVGltZVBpY2tlciBjb21wb25lbnRzLlxuICogU3VwcG9ydHMgdGhlIEFuZ3VsYXIgZm9ybXMgbW9kdWxlLCBlbmFibGluZyBmb3JtIHZhbGlkaXR5LCBuZ01vZGVsLCBldGMuXG4gKiBgYGBodG1sXG4gKiA8ZmQtY2FsZW5kYXI+PC9mZC1jYWxlbmRhcj5cbiAqIGBgYFxuICpcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZC1jYWxlbmRhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2FsZW5kYXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENhbGVuZGFyQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIENhbGVuZGFyU2VydmljZSxcbiAgICAgICAgY29udGVudERlbnNpdHlPYnNlcnZlclByb3ZpZGVycygpXG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoZm9jdXNvdXQpJzogJ19mb2N1c091dCgkZXZlbnQpJyxcbiAgICAgICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgICAgIGNsYXNzOiAnZmQtY2FsZW5kYXIgZmQtaGFzLWRpc3BsYXktYmxvY2snXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudDxEPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkRlc3Ryb3kge1xuICAgIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUgbW9kZWwgaW4gc2luZ2xlIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RlZERhdGU6IE51bGxhYmxlPEQ+O1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB1c2VyIHdhbnRzIHRvIG1hcmsgc3VuZGF5L3NhdHVyZGF5IHdpdGggYGZkLWNhbGVuZGFyX19pdGVtLS13ZWVrZW5kYCBjbGFzc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWFya1dlZWtlbmRzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdXNlciB3YW50cyB0byBzaG93IHdlZWsgbnVtYmVycyBuZXh0IHRvIGRheXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dXZWVrTnVtYmVycyA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgY2FsZW5kYXIgaXMgdXNlZCBpbnNpZGUgbW9iaWxlIGluIGxhbmRzY2FwZSBtb2RlLCBpdCBhbHNvIGFkZHMgY2xvc2UgYnV0dG9uIG9uIHJpZ2h0IHNpZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtY2FsZW5kYXItLW1vYmlsZS1sYW5kc2NhcGUnKVxuICAgIG1vYmlsZUxhbmRzY2FwZSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgY2FsZW5kYXIgaXMgdXNlZCBpbnNpZGUgbW9iaWxlIGluIHBvcnRyYWl0IG1vZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtY2FsZW5kYXItLW1vYmlsZS1wb3J0cmFpdCcpXG4gICAgbW9iaWxlUG9ydHJhaXQgPSBmYWxzZTtcblxuICAgIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIEZkRGF0ZXMgbW9kZWwgc3RhcnQgYW5kIGVuZCBpbiByYW5nZSBtb2RlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0ZWRSYW5nZURhdGU6IERhdGVSYW5nZTxEPjtcblxuICAgIC8qKiBBY3R1YWxseSBzaG93biBhY3RpdmUgdmlldyBvbmUgb2YgJ2RheScgfCAnbW9udGgnIHwgJ3llYXInICovXG4gICAgQElucHV0KClcbiAgICBhY3RpdmVWaWV3OiBGZENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gICAgLyoqIFRoZSBkYXkgb2YgdGhlIHdlZWsgdGhlIGNhbGVuZGFyIHNob3VsZCBzdGFydCBvbi4gMSByZXByZXNlbnRzIFN1bmRheSwgMiBpcyBNb25kYXksIDMgaXMgVHVlc2RheSwgYW5kIHNvIG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhcnRpbmdEYXlPZldlZWs6IERheXNPZldlZWs7XG5cbiAgICAvKiogVGhlIHR5cGUgb2YgY2FsZW5kYXIsICdzaW5nbGUnIGZvciBzaW5nbGUgZGF0ZSBzZWxlY3Rpb24gb3IgJ3JhbmdlJyBmb3IgYSByYW5nZSBvZiBkYXRlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNhbFR5cGU6IENhbGVuZGFyVHlwZSA9ICdzaW5nbGUnO1xuXG4gICAgLyoqIElkIG9mIHRoZSBjYWxlbmRhci4gSWYgbm9uZSBpcyBwcm92aWRlZCwgb25lIHdpbGwgYmUgZ2VuZXJhdGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQgPSAnZmQtY2FsZW5kYXItJyArIGNhbGVuZGFyVW5pcXVlSWQrKztcblxuICAgIC8qKlxuICAgICAqIFNwZWNpYWwgZGF5cyBtYXJrLCBpdCBjYW4gYmUgdXNlZCBieSBwYXNzaW5nIGFycmF5IG9mIG9iamVjdCB3aXRoXG4gICAgICogU3BlY2lhbCBkYXkgbnVtYmVyLCBsaXN0IDEtMjAgW2NsYXNzOmBmZC1jYWxlbmRhcl9fc3BlY2lhbC1kYXktLXt7bnVtYmVyfX1gXSBpcyBhdmFpbGFibGUgdGhlcmU6XG4gICAgICogaHR0cHM6Ly9zYXAuZ2l0aHViLmlvL2Z1bmRhbWVudGFsLXN0eWxlcy9jb21wb25lbnRzL2NhbGVuZGFyLmh0bWwgY2FsZW5kYXIgc3BlY2lhbCBkYXlzIHNlY3Rpb25cbiAgICAgKiBSdWxlIGFjY2VwdHMgbWV0aG9kIHdpdGggRCBvYmplY3QgYXMgYSBwYXJhbWV0ZXIuIGV4OlxuICAgICAqIGBydWxlOiAoZmREYXRlOiBEKSA9PiBmZERhdGUuZ2V0RGF5KCkgPT09IDFgLCB3aGljaCB3aWxsIG1hcmsgYWxsIHN1bmRheXMgYXMgc3BlY2lhbCBkYXkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzcGVjaWFsRGF5c1J1bGVzOiBTcGVjaWFsRGF5UnVsZTxEPltdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBPYmplY3QgdG8gY3VzdG9taXplIHllYXIgZ3JpZCxcbiAgICAgKiBSb3csIENvbHVtbnMgYW5kIG1ldGhvZCB0byBkaXNwbGF5IHllYXIgY2FuIGJlIG1vZGlmaWVkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB5ZWFyR3JpZDogQ2FsZW5kYXJZZWFyR3JpZCA9IHtcbiAgICAgICAgcm93czogNCxcbiAgICAgICAgY29sczogNVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBPYmplY3QgdG8gY3VzdG9taXplIGFnZ3JlZ2F0ZWQgeWVhciBncmlkLFxuICAgICAqIFJvdywgQ29sdW1ucyBhbmQgbWV0aG9kIHRvIGRpc3BsYXkgeWVhciBjYW4gYmUgbW9kaWZpZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFnZ3JlZ2F0ZWRZZWFyR3JpZDogQ2FsZW5kYXJZZWFyR3JpZCA9IHtcbiAgICAgICAgcm93czogNCxcbiAgICAgICAgY29sczogM1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHVzZXIgd2FudHMgdG8gbWFyayBkYXkgY2VsbHMgb24gaG92ZXIuXG4gICAgICogV29ya3Mgb25seSBvbiByYW5nZSBtb2RlLCB3aGVuIHN0YXJ0IGRhdGUgaXMgc2VsZWN0ZWQgb24gRGF5IFZpZXcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICByYW5nZUhvdmVyRWZmZWN0ID0gZmFsc2U7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgYWN0aXZlIHZpZXcgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGFjdGl2ZVZpZXdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGZENhbGVuZGFyVmlldz4gPSBuZXcgRXZlbnRFbWl0dGVyPEZkQ2FsZW5kYXJWaWV3PigpO1xuXG4gICAgLyoqIEV2ZW50IHRocm93biBldmVyeSB0aW1lIHNlbGVjdGVkIGRhdGUgaW4gc2luZ2xlIG1vZGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEPigpO1xuXG4gICAgLyoqIEV2ZW50IHRocm93biBldmVyeSB0aW1lIHNlbGVjdGVkIGZpcnN0IG9yIGxhc3QgZGF0ZSBpbiByYW5nZSBtb2RlIGlzIGNoYW5nZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGVSYW5nZTxEPj4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVSYW5nZTxEPj4oKTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24gZXZlcnkgdGltZSB3aGVuIHZhbHVlIGlzIG92ZXJ3cml0dGVuIGZyb20gb3V0c2lkZSBhbmQgdGhyb3cgYmFjayBpc1ZhbGlkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgaXNWYWxpZERhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24gZXZlcnkgdGltZSB3aGVuIGNhbGVuZGFyIHNob3VsZCBiZSBjbG9zZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjbG9zZUNhbGVuZGFyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duLCB3aGVuIGNsb3NlIGJ1dHRvbiBpcyBjbGlja2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgY2xvc2VDbGlja2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJEYXlWaWV3Q29tcG9uZW50KVxuICAgIF9kYXlWaWV3Q29tcG9uZW50OiBDYWxlbmRhckRheVZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJNb250aFZpZXdDb21wb25lbnQpXG4gICAgX21vbnRoVmlld0NvbXBvbmVudDogQ2FsZW5kYXJNb250aFZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudClcbiAgICBfeWVhclZpZXdDb21wb25lbnQ6IENhbGVuZGFyWWVhclZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJBZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQpXG4gICAgX2FnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudDogQ2FsZW5kYXJBZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQpXG4gICAgX2NhbGVuZGFySGVhZGVyQ29tcG9uZW50OiBDYWxlbmRhckhlYWRlckNvbXBvbmVudDxEPjtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGlzYWJsZSBwcmV2aW91cyBidXR0b24gaW4gdGhlIGNhbGVuZGFyIGhlYWRlci5cbiAgICAgKiBAcGFyYW0gZGF0ZSBzZWxlY3RlZCBkYXRlXG4gICAgICogQHBhcmFtIGN1cnJlbnRseURpc3BsYXllZERhdGUgY3VycmVudGx5IGRpc3BsYXllZCBkYXRlXG4gICAgICogQHBhcmFtIGFjdGl2ZVZpZXcgY3VycmVudCB2aWV3IG9mIGNhbGVuZGFyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwcmV2aW91c0J1dHRvbkRpc2FibGVGdW5jdGlvbjogTmF2aWdhdGlvbkJ1dHRvbkRpc2FibGVGdW5jdGlvbjxEPjtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGlzYWJsZSBuZXh0IGJ1dHRvbiBpbiB0aGUgY2FsZW5kYXIgaGVhZGVyLlxuICAgICAqIEBwYXJhbSBkYXRlIHNlbGVjdGVkIGRhdGVcbiAgICAgKiBAcGFyYW0gY3VycmVudGx5RGlzcGxheWVkRGF0ZSBjdXJyZW50bHkgZGlzcGxheWVkIGRhdGVcbiAgICAgKiBAcGFyYW0gYWN0aXZlVmlldyBjdXJyZW50IHZpZXcgb2YgY2FsZW5kYXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG5leHRCdXR0b25EaXNhYmxlRnVuY3Rpb246IE5hdmlnYXRpb25CdXR0b25EaXNhYmxlRnVuY3Rpb248RD47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ3VycmVudGx5IGRpc3BsYXllZCBkYXlzIGRlcGVuZGluZyBvbiBtb250aCBhbmQgeWVhclxuICAgICAqL1xuICAgIF9jdXJyZW50bHlEaXNwbGF5ZWQ6IENhbGVuZGFyQ3VycmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWRhcHRlclN0YXJ0aW5nRGF5T2ZXZWVrOiBEYXlzT2ZXZWVrO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcmV2aW91c0J1dHRvbkRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZXh0QnV0dG9uRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICAvKiogVGhhdCBhbGxvd3MgdG8gZGVmaW5lIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGhhcHBlbiwgd2hlbiBmb2N1cyBzaG91bGQgbm9ybWFsbHkgZXNjYXBlIG9mIGNvbXBvbmVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXNjYXBlRm9jdXNGdW5jdGlvbjogRXNjYXBlRm9jdXNGdW5jdGlvbiA9IChldmVudD86IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFySGVhZGVyQ29tcG9uZW50Py5mb2N1cygpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRpc2FibGUgY2VydGFpbiBkYXRlcyBpbiB0aGUgY2FsZW5kYXIuXG4gICAgICogQHBhcmFtIGRhdGUgZGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZUZ1bmN0aW9uOiBEaXNhYmxlRGF0ZUZ1bmN0aW9uPEQ+ID0gKCkgPT4gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRpc2FibGUgY2VydGFpbiBkYXRlcyBpbiB0aGUgY2FsZW5kYXIgZm9yIHRoZSByYW5nZSBzdGFydCBzZWxlY3Rpb24uXG4gICAgICogQHBhcmFtIGRhdGUgZGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZVJhbmdlU3RhcnRGdW5jdGlvbjogRGlzYWJsZURhdGVGdW5jdGlvbjxEPiA9ICgpID0+IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdXNlZCB0byBkaXNhYmxlIGNlcnRhaW4gZGF0ZXMgaW4gdGhlIGNhbGVuZGFyIGZvciB0aGUgcmFuZ2UgZW5kIHNlbGVjdGlvbi5cbiAgICAgKiBAcGFyYW0gZGF0ZSBkYXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlUmFuZ2VFbmRGdW5jdGlvbjogRGlzYWJsZURhdGVGdW5jdGlvbjxEPiA9ICgpID0+IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogKF86IEQgfCBEYXRlUmFuZ2U8RD4pID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXI6IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsXG4gICAgICAgIC8vIFVzZSBAT3B0aW9uYWwgdG8gYXZvaWQgYW5ndWxhciBpbmplY3Rpb24gZXJyb3IgbWVzc2FnZSBhbmQgdGhyb3cgb3VyIG93biB3aGljaCBpcyBtb3JlIHByZWNpc2Ugb25lXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2RhdGVUaW1lQWRhcHRlcjogRGF0ZXRpbWVBZGFwdGVyPEQ+LFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERBVEVfVElNRV9GT1JNQVRTKSBwcml2YXRlIF9kYXRlVGltZUZvcm1hdHM6IERhdGVUaW1lRm9ybWF0c1xuICAgICkge1xuICAgICAgICBpZiAoIXRoaXMuX2RhdGVUaW1lQWRhcHRlcikge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlTWlzc2luZ0RhdGVJbXBsZW1lbnRhdGlvbkVycm9yKCdEYXRlVGltZUFkYXB0ZXInKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2RhdGVUaW1lRm9ybWF0cykge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlTWlzc2luZ0RhdGVJbXBsZW1lbnRhdGlvbkVycm9yKCdEQVRFX1RJTUVfRk9STUFUUycpO1xuICAgICAgICB9XG4gICAgICAgIF9jb250ZW50RGVuc2l0eU9ic2VydmVyLnN1YnNjcmliZSgpO1xuICAgICAgICAvLyBzZXQgZGVmYXVsdCB2YWx1ZVxuICAgICAgICB0aGlzLl9hZGFwdGVyU3RhcnRpbmdEYXlPZldlZWsgPSAodGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldEZpcnN0RGF5T2ZXZWVrKCkgKyAxKSBhcyBEYXlzT2ZXZWVrO1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHRoaXMuX2RhdGVUaW1lQWRhcHRlci50b2RheSgpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9Mb2NhbGVDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJlcGFyZURpc3BsYXllZFZpZXcoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgJ25leHRCdXR0b25EaXNhYmxlRnVuY3Rpb24nIGluIGNoYW5nZXMgfHxcbiAgICAgICAgICAgICdwcmV2aW91c0J1dHRvbkRpc2FibGVGdW5jdGlvbicgaW4gY2hhbmdlcyB8fFxuICAgICAgICAgICAgJ19jdXJyZW50bHlEaXNwbGF5ZWQnIGluIGNoYW5nZXNcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXROYXZpZ2F0aW9uQnV0dG9uc1N0YXRlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXRXZWVrU3RhcnREYXkoKTogRGF5c09mV2VlayB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0aW5nRGF5T2ZXZWVrID09PSB1bmRlZmluZWQgPyB0aGlzLl9hZGFwdGVyU3RhcnRpbmdEYXlPZldlZWsgOiB0aGlzLnN0YXJ0aW5nRGF5T2ZXZWVrO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogRnVuY3Rpb24gdGhhdCBwcm92aWRlcyBzdXBwb3J0IGZvciBDb250cm9sVmFsdWVBY2Nlc3NvciB0aGF0IGFsbG93cyB0byB1c2UgWyhuZ01vZGVsKV0gb3IgZm9ybXMuXG4gICAgICovXG4gICAgd3JpdGVWYWx1ZShzZWxlY3RlZDogRGF0ZVJhbmdlPEQ+IHwgRCk6IHZvaWQge1xuICAgICAgICBsZXQgdmFsaWQgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICBzZWxlY3RlZCA9IDxEPnNlbGVjdGVkO1xuXG4gICAgICAgICAgICB2YWxpZCA9IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHNlbGVjdGVkKTtcblxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBzZWxlY3RlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdyYW5nZScgJiYgc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkID0gPERhdGVSYW5nZTxEPj5zZWxlY3RlZDtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZChzZWxlY3RlZC5zdGFydCkgfHwgIXRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHNlbGVjdGVkLmVuZCkpIHtcbiAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlID0ge1xuICAgICAgICAgICAgICAgIHN0YXJ0OiBzZWxlY3RlZC5zdGFydCxcbiAgICAgICAgICAgICAgICBlbmQ6IHNlbGVjdGVkLmVuZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5fcHJlcGFyZURpc3BsYXllZFZpZXcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLmlzVmFsaWREYXRlQ2hhbmdlLmVtaXQodmFsaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBGdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgVmFsaWRhdG9yIEludGVyZmFjZSwgYWRkcyB2YWxpZGF0aW9uIHN1cHBvcnQgZm9yIGZvcm1zXG4gICAgICovXG4gICAgdmFsaWRhdGUoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vZGVsVmFsaWQoKVxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgIGRhdGVWYWxpZGF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IGhhbmRsZSBhY3RpdmUgdmlldyBjaGFuZ2UgYW5kIHRocm93cyBldmVudC5cbiAgICAgKlxuICAgICAqIEZpcmVkIGJ5IGNhbGVuZGFyIGhlYWRlciBjb21wb25lbnQuXG4gICAgICovXG4gICAgaGFuZGxlQWN0aXZlVmlld0NoYW5nZShhY3RpdmVWaWV3OiBGZENhbGVuZGFyVmlldyk6IHZvaWQge1xuICAgICAgICBpZiAoYWN0aXZlVmlldyA9PT0gdGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSBhY3RpdmVWaWV3O1xuXG4gICAgICAgIHRoaXMuYWN0aXZlVmlld0NoYW5nZS5lbWl0KGFjdGl2ZVZpZXcpO1xuXG4gICAgICAgIGlmIChhY3RpdmVWaWV3ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICB0aGlzLm9uTW9udGhWaWV3U2VsZWN0ZWQoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aXZlVmlldyA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgICB0aGlzLm9uWWVhclZpZXdTZWxlY3RlZCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3RpdmVWaWV3ID09PSAnYWdncmVnYXRlZFllYXInKSB7XG4gICAgICAgICAgICB0aGlzLm9uWWVhcnNSYW5nZVZpZXdTZWxlY3RlZCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIHRoYXQgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBmcm9tIGRheSB2aWV3IGNvbXBvbmVudCwgd2hlbiB0aGVyZSBpcyBzZWxlY3RlZCBzaW5nbGUgZGF0ZSBjaGFuZ2VkXG4gICAgICovXG4gICAgc2VsZWN0ZWREYXRlQ2hhbmdlZChkYXRlOiBEKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF0ZTtcbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICAgICAgdGhpcy5jbG9zZUNhbGVuZGFyLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIHRoYXQgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBmcm9tIGRheSB2aWV3IGNvbXBvbmVudCwgd2hlbiB0aGVyZSBpcyBzZWxlY3RlZCByYW5nZSBkYXRlIGNoYW5nZWRcbiAgICAgKi9cbiAgICBzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZWQoZGF0ZXM6IERhdGVSYW5nZTxEPik6IHZvaWQge1xuICAgICAgICBpZiAoZGF0ZXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUgPSB7IHN0YXJ0OiBkYXRlcy5zdGFydCwgZW5kOiBkYXRlcy5lbmQgfTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSYW5nZURhdGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlKTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZSk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlQ2FsZW5kYXIuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBuZXh0IGFycm93IGljb24gY2xpY2ssIGRlcGVuZGluZyBvbiBjdXJyZW50IHZpZXcgaXQgY2hhbmdlcyBtb250aCwgeWVhciBvciBsaXN0IG9mIHllYXJzICovXG4gICAgaGFuZGxlTmV4dEFycm93Q2xpY2soKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheU5leHRNb250aCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheU5leHRZZWFyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlOZXh0WWVhckxpc3QoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2FnZ3JlZ2F0ZWRZZWFyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlOZXh0WWVhcnNMaXN0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBoYW5kbGVzIHByZXZpb3VzIGFycm93IGljb24gY2xpY2ssIGRlcGVuZGluZyBvbiBjdXJyZW50IHZpZXcgaXQgY2hhbmdlcyBtb250aCwgeWVhciBvciBsaXN0IG9mIHllYXJzICovXG4gICAgaGFuZGxlUHJldmlvdXNBcnJvd0NsaWNrKCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlVmlldykge1xuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c01vbnRoKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UHJldmlvdXNZZWFyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c1llYXJMaXN0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdhZ2dyZWdhdGVkWWVhcic6XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UHJldmlvdXNZZWFyc0xpc3QoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZXROYXZpZ2F0aW9uQnV0dG9uc1N0YXRlcygpO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsIHZpZXcgdG8gbmV4dCBtb250aCAqL1xuICAgIGRpc3BsYXlOZXh0TW9udGgoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGggPT09IDEyKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7IHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyICsgMSwgbW9udGg6IDEgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhcixcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoICsgMVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsIHZpZXcgdG8gcHJldmlvdXMgbW9udGggKi9cbiAgICBkaXNwbGF5UHJldmlvdXNNb250aCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC5tb250aCA8PSAxKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7IHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyIC0gMSwgbW9udGg6IDEyIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICAgICAgeWVhcjogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIsXG4gICAgICAgICAgICAgICAgbW9udGg6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC5tb250aCAtIDFcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBhbGxvd3MgdG8gc3dpdGNoIGFjdHVhbCB2aWV3IHRvIG5leHQgeWVhciAqL1xuICAgIGRpc3BsYXlOZXh0WWVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0geyBtb250aDogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoLCB5ZWFyOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhciArIDEgfTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBhbGxvd3MgdG8gc3dpdGNoIGFjdHVhbCB2aWV3IHRvIHByZXZpb3VzIHllYXIgKi9cbiAgICBkaXNwbGF5UHJldmlvdXNZZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7IG1vbnRoOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGgsIHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyIC0gMSB9O1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsbHkgZGlzcGxheWVkIGxpc3Qgb2YgeWVhciB0byBuZXh0IHllYXIgbGlzdCovXG4gICAgZGlzcGxheU5leHRZZWFyTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5feWVhclZpZXdDb21wb25lbnQubG9hZE5leHRZZWFyTGlzdCgpO1xuICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICBtb250aDogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoLFxuICAgICAgICAgICAgeWVhcjogdGhpcy5feWVhclZpZXdDb21wb25lbnQuX2ZpcnN0WWVhckluTGlzdFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsbHkgZGlzcGxheWVkIGxpc3Qgb2YgeWVhciB0byBwcmV2aW91cyB5ZWFyIGxpc3QqL1xuICAgIGRpc3BsYXlQcmV2aW91c1llYXJMaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl95ZWFyVmlld0NvbXBvbmVudC5sb2FkUHJldmlvdXNZZWFyTGlzdCgpO1xuICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICBtb250aDogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoLFxuICAgICAgICAgICAgeWVhcjogdGhpcy5feWVhclZpZXdDb21wb25lbnQuX2ZpcnN0WWVhckluTGlzdFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsbHkgZGlzcGxheWVkIGxpc3Qgb2YgeWVhciB0byBuZXh0IHllYXIgbGlzdCovXG4gICAgZGlzcGxheU5leHRZZWFyc0xpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudC5sb2FkTmV4dFllYXJzTGlzdCgpO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsbHkgZGlzcGxheWVkIGxpc3Qgb2YgeWVhciB0byBwcmV2aW91cyB5ZWFyIGxpc3QqL1xuICAgIGRpc3BsYXlQcmV2aW91c1llYXJzTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50LmxvYWRQcmV2aW91c1llYXJzTGlzdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIGNoYW5nZSBjdXJyZW50bHkgZGlzcGxheWVkIG1vbnRoL3llYXIgY29uZmlndXJhdGlvbixcbiAgICAgKiB3aGljaCBhcmUgY29ubmVjdGVkIHRvIGRheXMgZGlzcGxheWVkXG4gICAgICovXG4gICAgc2V0Q3VycmVudGx5RGlzcGxheWVkKGRhdGU6IE51bGxhYmxlPEQ+KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZChkYXRlKSkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIG1vbnRoOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0TW9udGgoZGF0ZSEpLFxuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRZZWFyKGRhdGUhKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBpbml0aWFsIGZvY3VzIG9uIG9uZSBvZiB0aGUgY2FsZW5kYXIncyBlbGVtZW50XG4gICAgICovXG4gICAgaW5pdGlhbEZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9nZXRBY3RpdmVGb2N1c2FibGVWaWV3KCk/LnNldEZvY3VzT25DZWxsKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBjaGFuZ2VzIGZyb20gbW9udGggdmlldyBjaGlsZCBjb21wb25lbnQsIGNoYW5nZXMgYWN0dWFsIHZpZXcgYW5kIGNoYW5nZXMgY3VycmVudGx5IGRpc3BsYXllZCBtb250aFxuICAgICAqL1xuICAgIGhhbmRsZU1vbnRoVmlld0NoYW5nZShtb250aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHsgbW9udGgsIHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyIH07XG4gICAgICAgIHRoaXMuYWN0aXZlVmlldyA9ICdkYXknO1xuICAgICAgICB0aGlzLm9uRGF5c1ZpZXdTZWxlY3RlZCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZVZpZXdDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZVZpZXcpO1xuICAgIH1cblxuICAgIC8qKiBTZWxlY3QgeWVhciAqL1xuICAgIHNlbGVjdGVkWWVhcih5ZWFyU2VsZWN0ZWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSAnZGF5JztcbiAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIgPSB5ZWFyU2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMub25EYXlzVmlld1NlbGVjdGVkKCk7XG4gICAgfVxuXG4gICAgLyoqIFNlbGVjdCB5ZWFyIHJhbmdlICovXG4gICAgc2VsZWN0ZWRZZWFycyh5ZWFyc1NlbGVjdGVkOiBBZ2dyZWdhdGVkWWVhcik6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSAneWVhcic7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2N1cnJlbnRseURpc3BsYXllZCxcbiAgICAgICAgICAgIHllYXI6IHllYXJzU2VsZWN0ZWQuc3RhcnRZZWFyXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMub25ZZWFyVmlld1NlbGVjdGVkKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkRheXNWaWV3U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5fZGF5Vmlld0NvbXBvbmVudD8uc2V0Rm9jdXNPbkNlbGwoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uTW9udGhWaWV3U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5fbW9udGhWaWV3Q29tcG9uZW50Py5zZXRGb2N1c09uQ2VsbCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25ZZWFyVmlld1NlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX3llYXJWaWV3Q29tcG9uZW50Py5zZXRGb2N1c09uQ2VsbCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25ZZWFyc1JhbmdlVmlld1NlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX2FnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudD8uc2V0Rm9jdXNPbkNlbGwoKTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRoYXQgcHJvdmlkZXMgaW5mb3JtYXRpb24gaWYgbW9kZWwgc2VsZWN0ZWQgZGF0ZS9kYXRlcyBoYXZlIHByb3Blcmx5IHR5cGVzIGFuZCBhcmUgdmFsaWQgKi9cbiAgICBpc01vZGVsVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmlzVmFsaWQodGhpcy5zZWxlY3RlZERhdGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdyYW5nZScpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJhbmdlRGF0ZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuc3RhcnQpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmlzVmFsaWQodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZS5lbmQpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvTG9jYWxlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLl9kYXRlVGltZUFkYXB0ZXIubG9jYWxlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkYXB0ZXJTdGFydGluZ0RheU9mV2VlayA9ICh0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0Rmlyc3REYXlPZldlZWsoKSArIDEpIGFzIERheXNPZldlZWs7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBNZXRob2QgdGhhdCBzZXRzIHVwIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIHZhcmlhYmxlcywgbGlrZSBzaG93biBtb250aCBhbmQgeWVhci5cbiAgICAgKiBEYXkgZ3JpZCBpcyBiYXNlZCBvbiBjdXJyZW50bHkgZGlzcGxheWVkIG1vbnRoIGFuZCB5ZWFyXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcHJlcGFyZURpc3BsYXllZFZpZXcoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdzaW5nbGUnICYmIHRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHRoaXMuc2VsZWN0ZWREYXRlKSkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRZZWFyKHRoaXMuc2VsZWN0ZWREYXRlKSxcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldE1vbnRoKHRoaXMuc2VsZWN0ZWREYXRlKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlICYmIHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuc3RhcnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhcih0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLnN0YXJ0KSxcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldE1vbnRoKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuc3RhcnQpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUgJiYgdGhpcy5zZWxlY3RlZFJhbmdlRGF0ZS5lbmQpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhcih0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLmVuZCksXG4gICAgICAgICAgICAgICAgbW9udGg6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRNb250aCh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLmVuZClcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB0b2RheSA9IHRoaXMuX2RhdGVUaW1lQWRhcHRlci50b2RheSgpO1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRZZWFyKHRvZGF5KSxcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldE1vbnRoKHRvZGF5KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0QWN0aXZlRm9jdXNhYmxlVmlldygpOiBGb2N1c2FibGVDYWxlbmRhclZpZXcgfCBudWxsIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RheVZpZXdDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoVmlld0NvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl95ZWFyVmlld0NvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgJ2FnZ3JlZ2F0ZWRZZWFyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fYWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50O1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJldmlvdXNCdXR0b25EaXNhYmxlZCA9XG4gICAgICAgICAgICB0eXBlb2YgdGhpcy5wcmV2aW91c0J1dHRvbkRpc2FibGVGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICAgICAgdGhpcy5wcmV2aW91c0J1dHRvbkRpc2FibGVGdW5jdGlvbih0aGlzLnNlbGVjdGVkRGF0ZSwgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLCB0aGlzLmFjdGl2ZVZpZXcpO1xuICAgICAgICB0aGlzLm5leHRCdXR0b25EaXNhYmxlZCA9XG4gICAgICAgICAgICB0eXBlb2YgdGhpcy5uZXh0QnV0dG9uRGlzYWJsZUZ1bmN0aW9uID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgICAgICB0aGlzLm5leHRCdXR0b25EaXNhYmxlRnVuY3Rpb24odGhpcy5zZWxlY3RlZERhdGUsIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCwgdGhpcy5hY3RpdmVWaWV3KTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c091dChldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmZC1jYWxlbmRhci1oZWFkZXJcbiAgICBbY3VycmVudGx5RGlzcGxheWVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWRcIlxuICAgIFthY3RpdmVWaWV3XT1cImFjdGl2ZVZpZXdcIlxuICAgIFtpZF09XCJpZFwiXG4gICAgW2NhbGVuZGFyWWVhckdyaWRdPVwieWVhckdyaWRcIlxuICAgIFttb2JpbGVMYW5kc2NhcGVdPVwibW9iaWxlTGFuZHNjYXBlXCJcbiAgICAoY2xvc2VDbGlja2VkKT1cImNsb3NlQ2xpY2tlZC5lbWl0KClcIlxuICAgIChuZXh0Q2xpY2tlZCk9XCJoYW5kbGVOZXh0QXJyb3dDbGljaygpXCJcbiAgICAocHJldmlvdXNDbGlja2VkKT1cImhhbmRsZVByZXZpb3VzQXJyb3dDbGljaygpXCJcbiAgICBbcHJldmlvdXNCdXR0b25EaXNhYmxlZF09XCJwcmV2aW91c0J1dHRvbkRpc2FibGVkXCJcbiAgICBbbmV4dEJ1dHRvbkRpc2FibGVkXT1cIm5leHRCdXR0b25EaXNhYmxlZFwiXG4gICAgKGFjdGl2ZVZpZXdDaGFuZ2UpPVwiaGFuZGxlQWN0aXZlVmlld0NoYW5nZSgkZXZlbnQpXCJcbj48L2ZkLWNhbGVuZGFyLWhlYWRlcj5cbjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImFjdGl2ZVZpZXdcIiAqbmdJZj1cIl9jdXJyZW50bHlEaXNwbGF5ZWRcIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmQtY2FsZW5kYXJfX2NvbnRlbnRcIlxuICAgICAgICBbY2xhc3MuZmQtY2FsZW5kYXJfX2NvbnRlbnQtLWRhdGVzXT1cImFjdGl2ZVZpZXcgPT09ICdkYXknXCJcbiAgICAgICAgW2NsYXNzLmZkLWNhbGVuZGFyX19jb250ZW50LS1tb250aHNdPVwiYWN0aXZlVmlldyA9PT0gJ21vbnRoJ1wiXG4gICAgICAgIFtjbGFzcy5mZC1jYWxlbmRhcl9fY29udGVudC0teWVhcnNdPVwiYWN0aXZlVmlldyA9PT0gJ3llYXInIHx8IGFjdGl2ZVZpZXcgPT09ICdhZ2dyZWdhdGVkWWVhcidcIlxuICAgID5cbiAgICAgICAgPGZkLWNhbGVuZGFyLWRheS12aWV3XG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RheSdcIlxuICAgICAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIlxuICAgICAgICAgICAgW3Nob3dXZWVrTnVtYmVyc109XCJzaG93V2Vla051bWJlcnNcIlxuICAgICAgICAgICAgW21hcmtXZWVrZW5kc109XCJtYXJrV2Vla2VuZHNcIlxuICAgICAgICAgICAgKHNlbGVjdGVkRGF0ZUNoYW5nZSk9XCJzZWxlY3RlZERhdGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgW3NlbGVjdGVkUmFuZ2VEYXRlXT1cInNlbGVjdGVkUmFuZ2VEYXRlXCJcbiAgICAgICAgICAgIChzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZSk9XCJzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbY3VycmVudGx5RGlzcGxheWVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWRcIlxuICAgICAgICAgICAgW3N0YXJ0aW5nRGF5T2ZXZWVrXT1cImdldFdlZWtTdGFydERheSgpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlRnVuY3Rpb25dPVwiZGlzYWJsZUZ1bmN0aW9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlUmFuZ2VFbmRGdW5jdGlvbl09XCJkaXNhYmxlUmFuZ2VFbmRGdW5jdGlvblwiXG4gICAgICAgICAgICBbZGlzYWJsZVJhbmdlU3RhcnRGdW5jdGlvbl09XCJkaXNhYmxlUmFuZ2VTdGFydEZ1bmN0aW9uXCJcbiAgICAgICAgICAgIFtjYWxUeXBlXT1cImNhbFR5cGVcIlxuICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgIFtyYW5nZUhvdmVyRWZmZWN0XT1cInJhbmdlSG92ZXJFZmZlY3RcIlxuICAgICAgICAgICAgW3NwZWNpYWxEYXlzUnVsZXNdPVwic3BlY2lhbERheXNSdWxlc1wiXG4gICAgICAgICAgICBbZm9jdXNFc2NhcGVGdW5jdGlvbl09XCJlc2NhcGVGb2N1c0Z1bmN0aW9uXCJcbiAgICAgICAgICAgIChuZXh0TW9udGhTZWxlY3QpPVwiZGlzcGxheU5leHRNb250aCgpXCJcbiAgICAgICAgICAgIChwcmV2aW91c01vbnRoU2VsZWN0KT1cImRpc3BsYXlQcmV2aW91c01vbnRoKClcIlxuICAgICAgICA+PC9mZC1jYWxlbmRhci1kYXktdmlldz5cbiAgICAgICAgPGZkLWNhbGVuZGFyLW1vbnRoLXZpZXdcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInbW9udGgnXCJcbiAgICAgICAgICAgIFttb250aFNlbGVjdGVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGhcIlxuICAgICAgICAgICAgW3llYXJdPVwiX2N1cnJlbnRseURpc3BsYXllZC55ZWFyXCJcbiAgICAgICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgICAgICBbZm9jdXNFc2NhcGVGdW5jdGlvbl09XCJlc2NhcGVGb2N1c0Z1bmN0aW9uXCJcbiAgICAgICAgICAgIChtb250aENsaWNrZWQpPVwiaGFuZGxlTW9udGhWaWV3Q2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9mZC1jYWxlbmRhci1tb250aC12aWV3PlxuICAgICAgICA8ZmQtY2FsZW5kYXIteWVhci12aWV3XG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3llYXInXCJcbiAgICAgICAgICAgIFt5ZWFyU2VsZWN0ZWRdPVwiX2N1cnJlbnRseURpc3BsYXllZC55ZWFyXCJcbiAgICAgICAgICAgIFt5ZWFyVmlld0dyaWRdPVwieWVhckdyaWRcIlxuICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgIFtmb2N1c0VzY2FwZUZ1bmN0aW9uXT1cImVzY2FwZUZvY3VzRnVuY3Rpb25cIlxuICAgICAgICAgICAgKHllYXJDbGlja2VkKT1cInNlbGVjdGVkWWVhcigkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2ZkLWNhbGVuZGFyLXllYXItdmlldz5cbiAgICAgICAgPGZkLWNhbGVuZGFyLWFnZ3JlZ2F0ZWQteWVhci12aWV3XG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2FnZ3JlZ2F0ZWRZZWFyJ1wiXG4gICAgICAgICAgICAoeWVhcnNDbGlja2VkKT1cInNlbGVjdGVkWWVhcnMoJGV2ZW50KVwiXG4gICAgICAgICAgICBbeWVhclNlbGVjdGVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhclwiXG4gICAgICAgICAgICBbeWVhclZpZXdHcmlkXT1cInllYXJHcmlkXCJcbiAgICAgICAgICAgIFthZ2dyZWdhdGVkWWVhcnNWaWV3R3JpZF09XCJhZ2dyZWdhdGVkWWVhckdyaWRcIlxuICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgIFtmb2N1c0VzY2FwZUZ1bmN0aW9uXT1cImVzY2FwZUZvY3VzRnVuY3Rpb25cIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtY2FsZW5kYXItYWdncmVnYXRlZC15ZWFyLXZpZXc+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
620
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLFdBQVcsRUFDWCxNQUFNLEVBQ04sS0FBSyxFQUlMLFFBQVEsRUFDUixNQUFNLEVBRU4sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGFBQWEsRUFBRSxpQkFBaUIsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ25HLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBbUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdyRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJaEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDMUcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLHdGQUF3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aEIsU0FBUzt1QkFBQyx3QkFBd0I7Z0JBS25DLG1CQUFtQjtzQkFEbEIsU0FBUzt1QkFBQywwQkFBMEI7Z0JBS3JDLGtCQUFrQjtzQkFEakIsU0FBUzt1QkFBQyx5QkFBeUI7Z0JBS3BDLDRCQUE0QjtzQkFEM0IsU0FBUzt1QkFBQyxtQ0FBbUM7Z0JBSzlDLHdCQUF3QjtzQkFEdkIsU0FBUzt1QkFBQyx1QkFBdUI7Z0JBVWxDLDZCQUE2QjtzQkFENUIsS0FBSztnQkFVTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBdUJOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFXTixlQUFlO3NCQURkLEtBQUs7Z0JBUU4seUJBQXlCO3NCQUR4QixLQUFLO2dCQVFOLHVCQUF1QjtzQkFEdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERBVEVfVElNRV9GT1JNQVRTLCBEYXRldGltZUFkYXB0ZXIsIERhdGVUaW1lRm9ybWF0cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kYXRldGltZSc7XG5pbXBvcnQgeyBTcGVjaWFsRGF5UnVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9zaGFyZWQnO1xuXG5pbXBvcnQgeyBEYXRlUmFuZ2UgfSBmcm9tICcuL21vZGVscy9kYXRlLXJhbmdlJztcbmltcG9ydCB7IENhbGVuZGFyQ3VycmVudCB9IGZyb20gJy4vbW9kZWxzL2NhbGVuZGFyLWN1cnJlbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJZZWFyR3JpZCB9IGZyb20gJy4vbW9kZWxzL2NhbGVuZGFyLXllYXItZ3JpZCc7XG5pbXBvcnQgeyBBZ2dyZWdhdGVkWWVhciB9IGZyb20gJy4vbW9kZWxzL2FnZ3JlZ2F0ZWQteWVhcic7XG5pbXBvcnQgeyBDYWxlbmRhckRheVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLXZpZXdzL2NhbGVuZGFyLWRheS12aWV3L2NhbGVuZGFyLWRheS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhclllYXJWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci12aWV3cy9jYWxlbmRhci15ZWFyLXZpZXcvY2FsZW5kYXIteWVhci12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItdmlld3MvY2FsZW5kYXItbW9udGgtdmlldy9jYWxlbmRhci1tb250aC12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhckhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItaGVhZGVyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJTZXJ2aWNlIH0gZnJvbSAnLi9jYWxlbmRhci5zZXJ2aWNlJztcbmltcG9ydCB7IGNyZWF0ZU1pc3NpbmdEYXRlSW1wbGVtZW50YXRpb25FcnJvciB9IGZyb20gJy4vY2FsZW5kYXItZXJyb3JzJztcbmltcG9ydCB7IENhbGVuZGFyQWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci12aWV3cy9jYWxlbmRhci1hZ2dyZWdhdGVkLXllYXItdmlldy9jYWxlbmRhci1hZ2dyZWdhdGVkLXllYXItdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzYWJsZURhdGVGdW5jdGlvbiwgRXNjYXBlRm9jdXNGdW5jdGlvbiwgRm9jdXNhYmxlQ2FsZW5kYXJWaWV3IH0gZnJvbSAnLi9tb2RlbHMvY29tbW9uJztcbmltcG9ydCB7IENhbGVuZGFyVHlwZSwgRGF5c09mV2VlaywgRmRDYWxlbmRhclZpZXcsIE5hdmlnYXRpb25CdXR0b25EaXNhYmxlRnVuY3Rpb24gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsIGNvbnRlbnREZW5zaXR5T2JzZXJ2ZXJQcm92aWRlcnMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgcGF0Y2hEZXByZWNhdGVkSTE4bkxhYmVscyB9IGZyb20gJy4vcGF0Y2gtZGVwcmVjYXRlZC1pMThuLWxhYmVscyc7XG5pbXBvcnQgeyBGRF9MQU5HVUFHRSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5cbmxldCBjYWxlbmRhclVuaXF1ZUlkID0gMDtcblxuLyoqXG4gKiBNb250aHM6IDEgPSBKYW51YXJ5LCAxMiA9IGRlY2VtYmVyLlxuICogRGF5czogMSA9IFN1bmRheSwgNyA9IFNhdHVyZGF5XG4gKlxuICogQ2FsZW5kYXIgY29tcG9uZW50IHVzZWQgZm9yIHNlbGVjdGluZyBkYXRlcywgdHlwaWNhbGx5IHVzZWQgYnkgdGhlIERhdGVQaWNrZXIgYW5kIERhdGVUaW1lUGlja2VyIGNvbXBvbmVudHMuXG4gKiBTdXBwb3J0cyB0aGUgQW5ndWxhciBmb3JtcyBtb2R1bGUsIGVuYWJsaW5nIGZvcm0gdmFsaWRpdHksIG5nTW9kZWwsIGV0Yy5cbiAqIGBgYGh0bWxcbiAqIDxmZC1jYWxlbmRhcj48L2ZkLWNhbGVuZGFyPlxuICogYGBgXG4gKlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLWNhbGVuZGFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDYWxlbmRhckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2FsZW5kYXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAgQ2FsZW5kYXJTZXJ2aWNlLFxuICAgICAgICBjb250ZW50RGVuc2l0eU9ic2VydmVyUHJvdmlkZXJzKCksXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0xBTkdVQUdFLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogcGF0Y2hEZXByZWNhdGVkSTE4bkxhYmVsc1xuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoZm9jdXNvdXQpJzogJ19mb2N1c091dCgkZXZlbnQpJyxcbiAgICAgICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgICAgIGNsYXNzOiAnZmQtY2FsZW5kYXIgZmQtaGFzLWRpc3BsYXktYmxvY2snXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudDxEPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yLCBPbkRlc3Ryb3kge1xuICAgIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUgbW9kZWwgaW4gc2luZ2xlIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RlZERhdGU6IE51bGxhYmxlPEQ+O1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB1c2VyIHdhbnRzIHRvIG1hcmsgc3VuZGF5L3NhdHVyZGF5IHdpdGggYGZkLWNhbGVuZGFyX19pdGVtLS13ZWVrZW5kYCBjbGFzc1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWFya1dlZWtlbmRzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdXNlciB3YW50cyB0byBzaG93IHdlZWsgbnVtYmVycyBuZXh0IHRvIGRheXNcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNob3dXZWVrTnVtYmVycyA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgY2FsZW5kYXIgaXMgdXNlZCBpbnNpZGUgbW9iaWxlIGluIGxhbmRzY2FwZSBtb2RlLCBpdCBhbHNvIGFkZHMgY2xvc2UgYnV0dG9uIG9uIHJpZ2h0IHNpZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtY2FsZW5kYXItLW1vYmlsZS1sYW5kc2NhcGUnKVxuICAgIG1vYmlsZUxhbmRzY2FwZSA9IGZhbHNlO1xuXG4gICAgLyoqIFdoZXRoZXIgY2FsZW5kYXIgaXMgdXNlZCBpbnNpZGUgbW9iaWxlIGluIHBvcnRyYWl0IG1vZGUgKi9cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZmQtY2FsZW5kYXItLW1vYmlsZS1wb3J0cmFpdCcpXG4gICAgbW9iaWxlUG9ydHJhaXQgPSBmYWxzZTtcblxuICAgIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIEZkRGF0ZXMgbW9kZWwgc3RhcnQgYW5kIGVuZCBpbiByYW5nZSBtb2RlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0ZWRSYW5nZURhdGU6IERhdGVSYW5nZTxEPjtcblxuICAgIC8qKiBBY3R1YWxseSBzaG93biBhY3RpdmUgdmlldyBvbmUgb2YgJ2RheScgfCAnbW9udGgnIHwgJ3llYXInICovXG4gICAgQElucHV0KClcbiAgICBhY3RpdmVWaWV3OiBGZENhbGVuZGFyVmlldyA9ICdkYXknO1xuXG4gICAgLyoqIFRoZSBkYXkgb2YgdGhlIHdlZWsgdGhlIGNhbGVuZGFyIHNob3VsZCBzdGFydCBvbi4gMSByZXByZXNlbnRzIFN1bmRheSwgMiBpcyBNb25kYXksIDMgaXMgVHVlc2RheSwgYW5kIHNvIG9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RhcnRpbmdEYXlPZldlZWs6IERheXNPZldlZWs7XG5cbiAgICAvKiogVGhlIHR5cGUgb2YgY2FsZW5kYXIsICdzaW5nbGUnIGZvciBzaW5nbGUgZGF0ZSBzZWxlY3Rpb24gb3IgJ3JhbmdlJyBmb3IgYSByYW5nZSBvZiBkYXRlcy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGNhbFR5cGU6IENhbGVuZGFyVHlwZSA9ICdzaW5nbGUnO1xuXG4gICAgLyoqIElkIG9mIHRoZSBjYWxlbmRhci4gSWYgbm9uZSBpcyBwcm92aWRlZCwgb25lIHdpbGwgYmUgZ2VuZXJhdGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQgPSAnZmQtY2FsZW5kYXItJyArIGNhbGVuZGFyVW5pcXVlSWQrKztcblxuICAgIC8qKlxuICAgICAqIFNwZWNpYWwgZGF5cyBtYXJrLCBpdCBjYW4gYmUgdXNlZCBieSBwYXNzaW5nIGFycmF5IG9mIG9iamVjdCB3aXRoXG4gICAgICogU3BlY2lhbCBkYXkgbnVtYmVyLCBsaXN0IDEtMjAgW2NsYXNzOmBmZC1jYWxlbmRhcl9fc3BlY2lhbC1kYXktLXt7bnVtYmVyfX1gXSBpcyBhdmFpbGFibGUgdGhlcmU6XG4gICAgICogaHR0cHM6Ly9zYXAuZ2l0aHViLmlvL2Z1bmRhbWVudGFsLXN0eWxlcy9jb21wb25lbnRzL2NhbGVuZGFyLmh0bWwgY2FsZW5kYXIgc3BlY2lhbCBkYXlzIHNlY3Rpb25cbiAgICAgKiBSdWxlIGFjY2VwdHMgbWV0aG9kIHdpdGggRCBvYmplY3QgYXMgYSBwYXJhbWV0ZXIuIGV4OlxuICAgICAqIGBydWxlOiAoZmREYXRlOiBEKSA9PiBmZERhdGUuZ2V0RGF5KCkgPT09IDFgLCB3aGljaCB3aWxsIG1hcmsgYWxsIHN1bmRheXMgYXMgc3BlY2lhbCBkYXkuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzcGVjaWFsRGF5c1J1bGVzOiBTcGVjaWFsRGF5UnVsZTxEPltdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBPYmplY3QgdG8gY3VzdG9taXplIHllYXIgZ3JpZCxcbiAgICAgKiBSb3csIENvbHVtbnMgYW5kIG1ldGhvZCB0byBkaXNwbGF5IHllYXIgY2FuIGJlIG1vZGlmaWVkXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB5ZWFyR3JpZDogQ2FsZW5kYXJZZWFyR3JpZCA9IHtcbiAgICAgICAgcm93czogNCxcbiAgICAgICAgY29sczogNVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBPYmplY3QgdG8gY3VzdG9taXplIGFnZ3JlZ2F0ZWQgeWVhciBncmlkLFxuICAgICAqIFJvdywgQ29sdW1ucyBhbmQgbWV0aG9kIHRvIGRpc3BsYXkgeWVhciBjYW4gYmUgbW9kaWZpZWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFnZ3JlZ2F0ZWRZZWFyR3JpZDogQ2FsZW5kYXJZZWFyR3JpZCA9IHtcbiAgICAgICAgcm93czogNCxcbiAgICAgICAgY29sczogM1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHVzZXIgd2FudHMgdG8gbWFyayBkYXkgY2VsbHMgb24gaG92ZXIuXG4gICAgICogV29ya3Mgb25seSBvbiByYW5nZSBtb2RlLCB3aGVuIHN0YXJ0IGRhdGUgaXMgc2VsZWN0ZWQgb24gRGF5IFZpZXcuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICByYW5nZUhvdmVyRWZmZWN0ID0gZmFsc2U7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duIGV2ZXJ5IHRpbWUgYWN0aXZlIHZpZXcgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGFjdGl2ZVZpZXdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxGZENhbGVuZGFyVmlldz4gPSBuZXcgRXZlbnRFbWl0dGVyPEZkQ2FsZW5kYXJWaWV3PigpO1xuXG4gICAgLyoqIEV2ZW50IHRocm93biBldmVyeSB0aW1lIHNlbGVjdGVkIGRhdGUgaW4gc2luZ2xlIG1vZGUgaXMgY2hhbmdlZCAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxEPigpO1xuXG4gICAgLyoqIEV2ZW50IHRocm93biBldmVyeSB0aW1lIHNlbGVjdGVkIGZpcnN0IG9yIGxhc3QgZGF0ZSBpbiByYW5nZSBtb2RlIGlzIGNoYW5nZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGVSYW5nZTxEPj4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVSYW5nZTxEPj4oKTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24gZXZlcnkgdGltZSB3aGVuIHZhbHVlIGlzIG92ZXJ3cml0dGVuIGZyb20gb3V0c2lkZSBhbmQgdGhyb3cgYmFjayBpc1ZhbGlkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgaXNWYWxpZERhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBFdmVudCB0aHJvd24gZXZlcnkgdGltZSB3aGVuIGNhbGVuZGFyIHNob3VsZCBiZSBjbG9zZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjbG9zZUNhbGVuZGFyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogRXZlbnQgdGhyb3duLCB3aGVuIGNsb3NlIGJ1dHRvbiBpcyBjbGlja2VkICovXG4gICAgQE91dHB1dCgpXG4gICAgcmVhZG9ubHkgY2xvc2VDbGlja2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJEYXlWaWV3Q29tcG9uZW50KVxuICAgIF9kYXlWaWV3Q29tcG9uZW50OiBDYWxlbmRhckRheVZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJNb250aFZpZXdDb21wb25lbnQpXG4gICAgX21vbnRoVmlld0NvbXBvbmVudDogQ2FsZW5kYXJNb250aFZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudClcbiAgICBfeWVhclZpZXdDb21wb25lbnQ6IENhbGVuZGFyWWVhclZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJBZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQpXG4gICAgX2FnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudDogQ2FsZW5kYXJBZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQ8RD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBWaWV3Q2hpbGQoQ2FsZW5kYXJIZWFkZXJDb21wb25lbnQpXG4gICAgX2NhbGVuZGFySGVhZGVyQ29tcG9uZW50OiBDYWxlbmRhckhlYWRlckNvbXBvbmVudDxEPjtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGlzYWJsZSBwcmV2aW91cyBidXR0b24gaW4gdGhlIGNhbGVuZGFyIGhlYWRlci5cbiAgICAgKiBAcGFyYW0gZGF0ZSBzZWxlY3RlZCBkYXRlXG4gICAgICogQHBhcmFtIGN1cnJlbnRseURpc3BsYXllZERhdGUgY3VycmVudGx5IGRpc3BsYXllZCBkYXRlXG4gICAgICogQHBhcmFtIGFjdGl2ZVZpZXcgY3VycmVudCB2aWV3IG9mIGNhbGVuZGFyXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwcmV2aW91c0J1dHRvbkRpc2FibGVGdW5jdGlvbjogTmF2aWdhdGlvbkJ1dHRvbkRpc2FibGVGdW5jdGlvbjxEPjtcblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHVzZWQgdG8gZGlzYWJsZSBuZXh0IGJ1dHRvbiBpbiB0aGUgY2FsZW5kYXIgaGVhZGVyLlxuICAgICAqIEBwYXJhbSBkYXRlIHNlbGVjdGVkIGRhdGVcbiAgICAgKiBAcGFyYW0gY3VycmVudGx5RGlzcGxheWVkRGF0ZSBjdXJyZW50bHkgZGlzcGxheWVkIGRhdGVcbiAgICAgKiBAcGFyYW0gYWN0aXZlVmlldyBjdXJyZW50IHZpZXcgb2YgY2FsZW5kYXJcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIG5leHRCdXR0b25EaXNhYmxlRnVuY3Rpb246IE5hdmlnYXRpb25CdXR0b25EaXNhYmxlRnVuY3Rpb248RD47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ3VycmVudGx5IGRpc3BsYXllZCBkYXlzIGRlcGVuZGluZyBvbiBtb250aCBhbmQgeWVhclxuICAgICAqL1xuICAgIF9jdXJyZW50bHlEaXNwbGF5ZWQ6IENhbGVuZGFyQ3VycmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYWRhcHRlclN0YXJ0aW5nRGF5T2ZXZWVrOiBEYXlzT2ZXZWVrO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcmV2aW91c0J1dHRvbkRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZXh0QnV0dG9uRGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgICAvKiogVGhhdCBhbGxvd3MgdG8gZGVmaW5lIGZ1bmN0aW9uIHRoYXQgc2hvdWxkIGhhcHBlbiwgd2hlbiBmb2N1cyBzaG91bGQgbm9ybWFsbHkgZXNjYXBlIG9mIGNvbXBvbmVudCAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXNjYXBlRm9jdXNGdW5jdGlvbjogRXNjYXBlRm9jdXNGdW5jdGlvbiA9IChldmVudD86IEtleWJvYXJkRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFySGVhZGVyQ29tcG9uZW50Py5mb2N1cygpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRpc2FibGUgY2VydGFpbiBkYXRlcyBpbiB0aGUgY2FsZW5kYXIuXG4gICAgICogQHBhcmFtIGRhdGUgZGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZUZ1bmN0aW9uOiBEaXNhYmxlRGF0ZUZ1bmN0aW9uPEQ+ID0gKCkgPT4gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB1c2VkIHRvIGRpc2FibGUgY2VydGFpbiBkYXRlcyBpbiB0aGUgY2FsZW5kYXIgZm9yIHRoZSByYW5nZSBzdGFydCBzZWxlY3Rpb24uXG4gICAgICogQHBhcmFtIGRhdGUgZGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZVJhbmdlU3RhcnRGdW5jdGlvbjogRGlzYWJsZURhdGVGdW5jdGlvbjxEPiA9ICgpID0+IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdXNlZCB0byBkaXNhYmxlIGNlcnRhaW4gZGF0ZXMgaW4gdGhlIGNhbGVuZGFyIGZvciB0aGUgcmFuZ2UgZW5kIHNlbGVjdGlvbi5cbiAgICAgKiBAcGFyYW0gZGF0ZSBkYXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNhYmxlUmFuZ2VFbmRGdW5jdGlvbjogRGlzYWJsZURhdGVGdW5jdGlvbjxEPiA9ICgpID0+IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZTogKF86IEQgfCBEYXRlUmFuZ2U8RD4pID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX2NvbnRlbnREZW5zaXR5T2JzZXJ2ZXI6IENvbnRlbnREZW5zaXR5T2JzZXJ2ZXIsXG4gICAgICAgIC8vIFVzZSBAT3B0aW9uYWwgdG8gYXZvaWQgYW5ndWxhciBpbmplY3Rpb24gZXJyb3IgbWVzc2FnZSBhbmQgdGhyb3cgb3VyIG93biB3aGljaCBpcyBtb3JlIHByZWNpc2Ugb25lXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2RhdGVUaW1lQWRhcHRlcjogRGF0ZXRpbWVBZGFwdGVyPEQ+LFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERBVEVfVElNRV9GT1JNQVRTKSBwcml2YXRlIF9kYXRlVGltZUZvcm1hdHM6IERhdGVUaW1lRm9ybWF0c1xuICAgICkge1xuICAgICAgICBpZiAoIXRoaXMuX2RhdGVUaW1lQWRhcHRlcikge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlTWlzc2luZ0RhdGVJbXBsZW1lbnRhdGlvbkVycm9yKCdEYXRlVGltZUFkYXB0ZXInKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuX2RhdGVUaW1lRm9ybWF0cykge1xuICAgICAgICAgICAgdGhyb3cgY3JlYXRlTWlzc2luZ0RhdGVJbXBsZW1lbnRhdGlvbkVycm9yKCdEQVRFX1RJTUVfRk9STUFUUycpO1xuICAgICAgICB9XG4gICAgICAgIF9jb250ZW50RGVuc2l0eU9ic2VydmVyLnN1YnNjcmliZSgpO1xuICAgICAgICAvLyBzZXQgZGVmYXVsdCB2YWx1ZVxuICAgICAgICB0aGlzLl9hZGFwdGVyU3RhcnRpbmdEYXlPZldlZWsgPSAodGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldEZpcnN0RGF5T2ZXZWVrKCkgKyAxKSBhcyBEYXlzT2ZXZWVrO1xuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHRoaXMuX2RhdGVUaW1lQWRhcHRlci50b2RheSgpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9Mb2NhbGVDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcHJlcGFyZURpc3BsYXllZFZpZXcoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgJ25leHRCdXR0b25EaXNhYmxlRnVuY3Rpb24nIGluIGNoYW5nZXMgfHxcbiAgICAgICAgICAgICdwcmV2aW91c0J1dHRvbkRpc2FibGVGdW5jdGlvbicgaW4gY2hhbmdlcyB8fFxuICAgICAgICAgICAgJ19jdXJyZW50bHlEaXNwbGF5ZWQnIGluIGNoYW5nZXNcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXROYXZpZ2F0aW9uQnV0dG9uc1N0YXRlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXRXZWVrU3RhcnREYXkoKTogRGF5c09mV2VlayB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0aW5nRGF5T2ZXZWVrID09PSB1bmRlZmluZWQgPyB0aGlzLl9hZGFwdGVyU3RhcnRpbmdEYXlPZldlZWsgOiB0aGlzLnN0YXJ0aW5nRGF5T2ZXZWVrO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogRnVuY3Rpb24gdGhhdCBwcm92aWRlcyBzdXBwb3J0IGZvciBDb250cm9sVmFsdWVBY2Nlc3NvciB0aGF0IGFsbG93cyB0byB1c2UgWyhuZ01vZGVsKV0gb3IgZm9ybXMuXG4gICAgICovXG4gICAgd3JpdGVWYWx1ZShzZWxlY3RlZDogRGF0ZVJhbmdlPEQ+IHwgRCk6IHZvaWQge1xuICAgICAgICBsZXQgdmFsaWQgPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICBzZWxlY3RlZCA9IDxEPnNlbGVjdGVkO1xuXG4gICAgICAgICAgICB2YWxpZCA9IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHNlbGVjdGVkKTtcblxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBzZWxlY3RlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdyYW5nZScgJiYgc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkID0gPERhdGVSYW5nZTxEPj5zZWxlY3RlZDtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZChzZWxlY3RlZC5zdGFydCkgfHwgIXRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHNlbGVjdGVkLmVuZCkpIHtcbiAgICAgICAgICAgICAgICB2YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlID0ge1xuICAgICAgICAgICAgICAgIHN0YXJ0OiBzZWxlY3RlZC5zdGFydCxcbiAgICAgICAgICAgICAgICBlbmQ6IHNlbGVjdGVkLmVuZFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5fcHJlcGFyZURpc3BsYXllZFZpZXcoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLmlzVmFsaWREYXRlQ2hhbmdlLmVtaXQodmFsaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBGdW5jdGlvbiB0aGF0IGltcGxlbWVudHMgVmFsaWRhdG9yIEludGVyZmFjZSwgYWRkcyB2YWxpZGF0aW9uIHN1cHBvcnQgZm9yIGZvcm1zXG4gICAgICovXG4gICAgdmFsaWRhdGUoKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5pc01vZGVsVmFsaWQoKVxuICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgIGRhdGVWYWxpZGF0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsaWQ6IGZhbHNlXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCB0aGF0IGhhbmRsZSBhY3RpdmUgdmlldyBjaGFuZ2UgYW5kIHRocm93cyBldmVudC5cbiAgICAgKlxuICAgICAqIEZpcmVkIGJ5IGNhbGVuZGFyIGhlYWRlciBjb21wb25lbnQuXG4gICAgICovXG4gICAgaGFuZGxlQWN0aXZlVmlld0NoYW5nZShhY3RpdmVWaWV3OiBGZENhbGVuZGFyVmlldyk6IHZvaWQge1xuICAgICAgICBpZiAoYWN0aXZlVmlldyA9PT0gdGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSBhY3RpdmVWaWV3O1xuXG4gICAgICAgIHRoaXMuYWN0aXZlVmlld0NoYW5nZS5lbWl0KGFjdGl2ZVZpZXcpO1xuXG4gICAgICAgIGlmIChhY3RpdmVWaWV3ID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICB0aGlzLm9uTW9udGhWaWV3U2VsZWN0ZWQoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aXZlVmlldyA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgICB0aGlzLm9uWWVhclZpZXdTZWxlY3RlZCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3RpdmVWaWV3ID09PSAnYWdncmVnYXRlZFllYXInKSB7XG4gICAgICAgICAgICB0aGlzLm9uWWVhcnNSYW5nZVZpZXdTZWxlY3RlZCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIHRoYXQgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBmcm9tIGRheSB2aWV3IGNvbXBvbmVudCwgd2hlbiB0aGVyZSBpcyBzZWxlY3RlZCBzaW5nbGUgZGF0ZSBjaGFuZ2VkXG4gICAgICovXG4gICAgc2VsZWN0ZWREYXRlQ2hhbmdlZChkYXRlOiBEKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF0ZTtcbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICAgICAgdGhpcy5jbG9zZUNhbGVuZGFyLmVtaXQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogTWV0aG9kIHRoYXQgaXMgdHJpZ2dlcmVkIGJ5IGV2ZW50cyBmcm9tIGRheSB2aWV3IGNvbXBvbmVudCwgd2hlbiB0aGVyZSBpcyBzZWxlY3RlZCByYW5nZSBkYXRlIGNoYW5nZWRcbiAgICAgKi9cbiAgICBzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZWQoZGF0ZXM6IERhdGVSYW5nZTxEPik6IHZvaWQge1xuICAgICAgICBpZiAoZGF0ZXMpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUgPSB7IHN0YXJ0OiBkYXRlcy5zdGFydCwgZW5kOiBkYXRlcy5lbmQgfTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSYW5nZURhdGVDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlKTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZSk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlQ2FsZW5kYXIuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBuZXh0IGFycm93IGljb24gY2xpY2ssIGRlcGVuZGluZyBvbiBjdXJyZW50IHZpZXcgaXQgY2hhbmdlcyBtb250aCwgeWVhciBvciBsaXN0IG9mIHllYXJzICovXG4gICAgaGFuZGxlTmV4dEFycm93Q2xpY2soKTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XG4gICAgICAgICAgICBjYXNlICdkYXknOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheU5leHRNb250aCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheU5leHRZZWFyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlOZXh0WWVhckxpc3QoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2FnZ3JlZ2F0ZWRZZWFyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlOZXh0WWVhcnNMaXN0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBoYW5kbGVzIHByZXZpb3VzIGFycm93IGljb24gY2xpY2ssIGRlcGVuZGluZyBvbiBjdXJyZW50IHZpZXcgaXQgY2hhbmdlcyBtb250aCwgeWVhciBvciBsaXN0IG9mIHllYXJzICovXG4gICAgaGFuZGxlUHJldmlvdXNBcnJvd0NsaWNrKCk6IHZvaWQge1xuICAgICAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlVmlldykge1xuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c01vbnRoKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UHJldmlvdXNZZWFyKCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXlQcmV2aW91c1llYXJMaXN0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdhZ2dyZWdhdGVkWWVhcic6XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5UHJldmlvdXNZZWFyc0xpc3QoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZXROYXZpZ2F0aW9uQnV0dG9uc1N0YXRlcygpO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsIHZpZXcgdG8gbmV4dCBtb250aCAqL1xuICAgIGRpc3BsYXlOZXh0TW9udGgoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGggPT09IDEyKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7IHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyICsgMSwgbW9udGg6IDEgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhcixcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoICsgMVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsIHZpZXcgdG8gcHJldmlvdXMgbW9udGggKi9cbiAgICBkaXNwbGF5UHJldmlvdXNNb250aCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC5tb250aCA8PSAxKSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7IHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyIC0gMSwgbW9udGg6IDEyIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICAgICAgeWVhcjogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIsXG4gICAgICAgICAgICAgICAgbW9udGg6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC5tb250aCAtIDFcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBhbGxvd3MgdG8gc3dpdGNoIGFjdHVhbCB2aWV3IHRvIG5leHQgeWVhciAqL1xuICAgIGRpc3BsYXlOZXh0WWVhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0geyBtb250aDogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoLCB5ZWFyOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhciArIDEgfTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24gdGhhdCBhbGxvd3MgdG8gc3dpdGNoIGFjdHVhbCB2aWV3IHRvIHByZXZpb3VzIHllYXIgKi9cbiAgICBkaXNwbGF5UHJldmlvdXNZZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7IG1vbnRoOiB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGgsIHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyIC0gMSB9O1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsbHkgZGlzcGxheWVkIGxpc3Qgb2YgeWVhciB0byBuZXh0IHllYXIgbGlzdCovXG4gICAgZGlzcGxheU5leHRZZWFyTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5feWVhclZpZXdDb21wb25lbnQubG9hZE5leHRZZWFyTGlzdCgpO1xuICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICBtb250aDogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoLFxuICAgICAgICAgICAgeWVhcjogdGhpcy5feWVhclZpZXdDb21wb25lbnQuX2ZpcnN0WWVhckluTGlzdFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsbHkgZGlzcGxheWVkIGxpc3Qgb2YgeWVhciB0byBwcmV2aW91cyB5ZWFyIGxpc3QqL1xuICAgIGRpc3BsYXlQcmV2aW91c1llYXJMaXN0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl95ZWFyVmlld0NvbXBvbmVudC5sb2FkUHJldmlvdXNZZWFyTGlzdCgpO1xuICAgICAgICB0aGlzLl9jdXJyZW50bHlEaXNwbGF5ZWQgPSB7XG4gICAgICAgICAgICBtb250aDogdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLm1vbnRoLFxuICAgICAgICAgICAgeWVhcjogdGhpcy5feWVhclZpZXdDb21wb25lbnQuX2ZpcnN0WWVhckluTGlzdFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsbHkgZGlzcGxheWVkIGxpc3Qgb2YgeWVhciB0byBuZXh0IHllYXIgbGlzdCovXG4gICAgZGlzcGxheU5leHRZZWFyc0xpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudC5sb2FkTmV4dFllYXJzTGlzdCgpO1xuICAgIH1cblxuICAgIC8qKiBGdW5jdGlvbiB0aGF0IGFsbG93cyB0byBzd2l0Y2ggYWN0dWFsbHkgZGlzcGxheWVkIGxpc3Qgb2YgeWVhciB0byBwcmV2aW91cyB5ZWFyIGxpc3QqL1xuICAgIGRpc3BsYXlQcmV2aW91c1llYXJzTGlzdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50LmxvYWRQcmV2aW91c1llYXJzTGlzdCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRoYXQgYWxsb3dzIHRvIGNoYW5nZSBjdXJyZW50bHkgZGlzcGxheWVkIG1vbnRoL3llYXIgY29uZmlndXJhdGlvbixcbiAgICAgKiB3aGljaCBhcmUgY29ubmVjdGVkIHRvIGRheXMgZGlzcGxheWVkXG4gICAgICovXG4gICAgc2V0Q3VycmVudGx5RGlzcGxheWVkKGRhdGU6IE51bGxhYmxlPEQ+KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9kYXRlVGltZUFkYXB0ZXIuaXNWYWxpZChkYXRlKSkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIG1vbnRoOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0TW9udGgoZGF0ZSEpLFxuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRZZWFyKGRhdGUhKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBpbml0aWFsIGZvY3VzIG9uIG9uZSBvZiB0aGUgY2FsZW5kYXIncyBlbGVtZW50XG4gICAgICovXG4gICAgaW5pdGlhbEZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9nZXRBY3RpdmVGb2N1c2FibGVWaWV3KCk/LnNldEZvY3VzT25DZWxsKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBjaGFuZ2VzIGZyb20gbW9udGggdmlldyBjaGlsZCBjb21wb25lbnQsIGNoYW5nZXMgYWN0dWFsIHZpZXcgYW5kIGNoYW5nZXMgY3VycmVudGx5IGRpc3BsYXllZCBtb250aFxuICAgICAqL1xuICAgIGhhbmRsZU1vbnRoVmlld0NoYW5nZShtb250aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHsgbW9udGgsIHllYXI6IHRoaXMuX2N1cnJlbnRseURpc3BsYXllZC55ZWFyIH07XG4gICAgICAgIHRoaXMuYWN0aXZlVmlldyA9ICdkYXknO1xuICAgICAgICB0aGlzLm9uRGF5c1ZpZXdTZWxlY3RlZCgpO1xuICAgICAgICB0aGlzLmFjdGl2ZVZpZXdDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZVZpZXcpO1xuICAgIH1cblxuICAgIC8qKiBTZWxlY3QgeWVhciAqL1xuICAgIHNlbGVjdGVkWWVhcih5ZWFyU2VsZWN0ZWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSAnZGF5JztcbiAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLnllYXIgPSB5ZWFyU2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMub25EYXlzVmlld1NlbGVjdGVkKCk7XG4gICAgfVxuXG4gICAgLyoqIFNlbGVjdCB5ZWFyIHJhbmdlICovXG4gICAgc2VsZWN0ZWRZZWFycyh5ZWFyc1NlbGVjdGVkOiBBZ2dyZWdhdGVkWWVhcik6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZVZpZXcgPSAneWVhcic7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgIC4uLnRoaXMuX2N1cnJlbnRseURpc3BsYXllZCxcbiAgICAgICAgICAgIHllYXI6IHllYXJzU2VsZWN0ZWQuc3RhcnRZZWFyXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMub25ZZWFyVmlld1NlbGVjdGVkKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkRheXNWaWV3U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5fZGF5Vmlld0NvbXBvbmVudD8uc2V0Rm9jdXNPbkNlbGwoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uTW9udGhWaWV3U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5fbW9udGhWaWV3Q29tcG9uZW50Py5zZXRGb2N1c09uQ2VsbCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25ZZWFyVmlld1NlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX3llYXJWaWV3Q29tcG9uZW50Py5zZXRGb2N1c09uQ2VsbCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgb25ZZWFyc1JhbmdlVmlld1NlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX2FnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudD8uc2V0Rm9jdXNPbkNlbGwoKTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIHRoYXQgcHJvdmlkZXMgaW5mb3JtYXRpb24gaWYgbW9kZWwgc2VsZWN0ZWQgZGF0ZS9kYXRlcyBoYXZlIHByb3Blcmx5IHR5cGVzIGFuZCBhcmUgdmFsaWQgKi9cbiAgICBpc01vZGVsVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdzaW5nbGUnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmlzVmFsaWQodGhpcy5zZWxlY3RlZERhdGUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdyYW5nZScpIHtcbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFJhbmdlRGF0ZSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuc3RhcnQpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmlzVmFsaWQodGhpcy5zZWxlY3RlZFJhbmdlRGF0ZS5lbmQpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvTG9jYWxlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLl9kYXRlVGltZUFkYXB0ZXIubG9jYWxlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FkYXB0ZXJTdGFydGluZ0RheU9mV2VlayA9ICh0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0Rmlyc3REYXlPZldlZWsoKSArIDEpIGFzIERheXNPZldlZWs7XG4gICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBNZXRob2QgdGhhdCBzZXRzIHVwIHRoZSBjdXJyZW50bHkgZGlzcGxheWVkIHZhcmlhYmxlcywgbGlrZSBzaG93biBtb250aCBhbmQgeWVhci5cbiAgICAgKiBEYXkgZ3JpZCBpcyBiYXNlZCBvbiBjdXJyZW50bHkgZGlzcGxheWVkIG1vbnRoIGFuZCB5ZWFyXG4gICAgICovXG4gICAgcHJpdmF0ZSBfcHJlcGFyZURpc3BsYXllZFZpZXcoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNhbFR5cGUgPT09ICdzaW5nbGUnICYmIHRoaXMuX2RhdGVUaW1lQWRhcHRlci5pc1ZhbGlkKHRoaXMuc2VsZWN0ZWREYXRlKSkge1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRZZWFyKHRoaXMuc2VsZWN0ZWREYXRlKSxcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldE1vbnRoKHRoaXMuc2VsZWN0ZWREYXRlKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlICYmIHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuc3RhcnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhcih0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLnN0YXJ0KSxcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldE1vbnRoKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUuc3RhcnQpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRSYW5nZURhdGUgJiYgdGhpcy5zZWxlY3RlZFJhbmdlRGF0ZS5lbmQpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCA9IHtcbiAgICAgICAgICAgICAgICB5ZWFyOiB0aGlzLl9kYXRlVGltZUFkYXB0ZXIuZ2V0WWVhcih0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLmVuZCksXG4gICAgICAgICAgICAgICAgbW9udGg6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRNb250aCh0aGlzLnNlbGVjdGVkUmFuZ2VEYXRlLmVuZClcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB0b2RheSA9IHRoaXMuX2RhdGVUaW1lQWRhcHRlci50b2RheSgpO1xuICAgICAgICAgICAgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkID0ge1xuICAgICAgICAgICAgICAgIHllYXI6IHRoaXMuX2RhdGVUaW1lQWRhcHRlci5nZXRZZWFyKHRvZGF5KSxcbiAgICAgICAgICAgICAgICBtb250aDogdGhpcy5fZGF0ZVRpbWVBZGFwdGVyLmdldE1vbnRoKHRvZGF5KVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0QWN0aXZlRm9jdXNhYmxlVmlldygpOiBGb2N1c2FibGVDYWxlbmRhclZpZXcgfCBudWxsIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmFjdGl2ZVZpZXcpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2RheVZpZXdDb21wb25lbnQ7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoVmlld0NvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl95ZWFyVmlld0NvbXBvbmVudDtcbiAgICAgICAgICAgIGNhc2UgJ2FnZ3JlZ2F0ZWRZZWFyJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fYWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50O1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0TmF2aWdhdGlvbkJ1dHRvbnNTdGF0ZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJldmlvdXNCdXR0b25EaXNhYmxlZCA9XG4gICAgICAgICAgICB0eXBlb2YgdGhpcy5wcmV2aW91c0J1dHRvbkRpc2FibGVGdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICAgICAgdGhpcy5wcmV2aW91c0J1dHRvbkRpc2FibGVGdW5jdGlvbih0aGlzLnNlbGVjdGVkRGF0ZSwgdGhpcy5fY3VycmVudGx5RGlzcGxheWVkLCB0aGlzLmFjdGl2ZVZpZXcpO1xuICAgICAgICB0aGlzLm5leHRCdXR0b25EaXNhYmxlZCA9XG4gICAgICAgICAgICB0eXBlb2YgdGhpcy5uZXh0QnV0dG9uRGlzYWJsZUZ1bmN0aW9uID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgICAgICB0aGlzLm5leHRCdXR0b25EaXNhYmxlRnVuY3Rpb24odGhpcy5zZWxlY3RlZERhdGUsIHRoaXMuX2N1cnJlbnRseURpc3BsYXllZCwgdGhpcy5hY3RpdmVWaWV3KTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c091dChldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC5yZWxhdGVkVGFyZ2V0KSkge1xuICAgICAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmZC1jYWxlbmRhci1oZWFkZXJcbiAgICBbY3VycmVudGx5RGlzcGxheWVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWRcIlxuICAgIFthY3RpdmVWaWV3XT1cImFjdGl2ZVZpZXdcIlxuICAgIFtpZF09XCJpZFwiXG4gICAgW2NhbGVuZGFyWWVhckdyaWRdPVwieWVhckdyaWRcIlxuICAgIFttb2JpbGVMYW5kc2NhcGVdPVwibW9iaWxlTGFuZHNjYXBlXCJcbiAgICAoY2xvc2VDbGlja2VkKT1cImNsb3NlQ2xpY2tlZC5lbWl0KClcIlxuICAgIChuZXh0Q2xpY2tlZCk9XCJoYW5kbGVOZXh0QXJyb3dDbGljaygpXCJcbiAgICAocHJldmlvdXNDbGlja2VkKT1cImhhbmRsZVByZXZpb3VzQXJyb3dDbGljaygpXCJcbiAgICBbcHJldmlvdXNCdXR0b25EaXNhYmxlZF09XCJwcmV2aW91c0J1dHRvbkRpc2FibGVkXCJcbiAgICBbbmV4dEJ1dHRvbkRpc2FibGVkXT1cIm5leHRCdXR0b25EaXNhYmxlZFwiXG4gICAgKGFjdGl2ZVZpZXdDaGFuZ2UpPVwiaGFuZGxlQWN0aXZlVmlld0NoYW5nZSgkZXZlbnQpXCJcbj48L2ZkLWNhbGVuZGFyLWhlYWRlcj5cbjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImFjdGl2ZVZpZXdcIiAqbmdJZj1cIl9jdXJyZW50bHlEaXNwbGF5ZWRcIj5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmQtY2FsZW5kYXJfX2NvbnRlbnRcIlxuICAgICAgICBbY2xhc3MuZmQtY2FsZW5kYXJfX2NvbnRlbnQtLWRhdGVzXT1cImFjdGl2ZVZpZXcgPT09ICdkYXknXCJcbiAgICAgICAgW2NsYXNzLmZkLWNhbGVuZGFyX19jb250ZW50LS1tb250aHNdPVwiYWN0aXZlVmlldyA9PT0gJ21vbnRoJ1wiXG4gICAgICAgIFtjbGFzcy5mZC1jYWxlbmRhcl9fY29udGVudC0teWVhcnNdPVwiYWN0aXZlVmlldyA9PT0gJ3llYXInIHx8IGFjdGl2ZVZpZXcgPT09ICdhZ2dyZWdhdGVkWWVhcidcIlxuICAgID5cbiAgICAgICAgPGZkLWNhbGVuZGFyLWRheS12aWV3XG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2RheSdcIlxuICAgICAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGVcIlxuICAgICAgICAgICAgW3Nob3dXZWVrTnVtYmVyc109XCJzaG93V2Vla051bWJlcnNcIlxuICAgICAgICAgICAgW21hcmtXZWVrZW5kc109XCJtYXJrV2Vla2VuZHNcIlxuICAgICAgICAgICAgKHNlbGVjdGVkRGF0ZUNoYW5nZSk9XCJzZWxlY3RlZERhdGVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgW3NlbGVjdGVkUmFuZ2VEYXRlXT1cInNlbGVjdGVkUmFuZ2VEYXRlXCJcbiAgICAgICAgICAgIChzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZSk9XCJzZWxlY3RlZFJhbmdlRGF0ZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICBbY3VycmVudGx5RGlzcGxheWVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWRcIlxuICAgICAgICAgICAgW3N0YXJ0aW5nRGF5T2ZXZWVrXT1cImdldFdlZWtTdGFydERheSgpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlRnVuY3Rpb25dPVwiZGlzYWJsZUZ1bmN0aW9uXCJcbiAgICAgICAgICAgIFtkaXNhYmxlUmFuZ2VFbmRGdW5jdGlvbl09XCJkaXNhYmxlUmFuZ2VFbmRGdW5jdGlvblwiXG4gICAgICAgICAgICBbZGlzYWJsZVJhbmdlU3RhcnRGdW5jdGlvbl09XCJkaXNhYmxlUmFuZ2VTdGFydEZ1bmN0aW9uXCJcbiAgICAgICAgICAgIFtjYWxUeXBlXT1cImNhbFR5cGVcIlxuICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgIFtyYW5nZUhvdmVyRWZmZWN0XT1cInJhbmdlSG92ZXJFZmZlY3RcIlxuICAgICAgICAgICAgW3NwZWNpYWxEYXlzUnVsZXNdPVwic3BlY2lhbERheXNSdWxlc1wiXG4gICAgICAgICAgICBbZm9jdXNFc2NhcGVGdW5jdGlvbl09XCJlc2NhcGVGb2N1c0Z1bmN0aW9uXCJcbiAgICAgICAgICAgIChuZXh0TW9udGhTZWxlY3QpPVwiZGlzcGxheU5leHRNb250aCgpXCJcbiAgICAgICAgICAgIChwcmV2aW91c01vbnRoU2VsZWN0KT1cImRpc3BsYXlQcmV2aW91c01vbnRoKClcIlxuICAgICAgICA+PC9mZC1jYWxlbmRhci1kYXktdmlldz5cbiAgICAgICAgPGZkLWNhbGVuZGFyLW1vbnRoLXZpZXdcbiAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCInbW9udGgnXCJcbiAgICAgICAgICAgIFttb250aFNlbGVjdGVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWQubW9udGhcIlxuICAgICAgICAgICAgW3llYXJdPVwiX2N1cnJlbnRseURpc3BsYXllZC55ZWFyXCJcbiAgICAgICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgICAgICBbZm9jdXNFc2NhcGVGdW5jdGlvbl09XCJlc2NhcGVGb2N1c0Z1bmN0aW9uXCJcbiAgICAgICAgICAgIChtb250aENsaWNrZWQpPVwiaGFuZGxlTW9udGhWaWV3Q2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9mZC1jYWxlbmRhci1tb250aC12aWV3PlxuICAgICAgICA8ZmQtY2FsZW5kYXIteWVhci12aWV3XG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ3llYXInXCJcbiAgICAgICAgICAgIFt5ZWFyU2VsZWN0ZWRdPVwiX2N1cnJlbnRseURpc3BsYXllZC55ZWFyXCJcbiAgICAgICAgICAgIFt5ZWFyVmlld0dyaWRdPVwieWVhckdyaWRcIlxuICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgIFtmb2N1c0VzY2FwZUZ1bmN0aW9uXT1cImVzY2FwZUZvY3VzRnVuY3Rpb25cIlxuICAgICAgICAgICAgKHllYXJDbGlja2VkKT1cInNlbGVjdGVkWWVhcigkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICA8L2ZkLWNhbGVuZGFyLXllYXItdmlldz5cbiAgICAgICAgPGZkLWNhbGVuZGFyLWFnZ3JlZ2F0ZWQteWVhci12aWV3XG4gICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiJ2FnZ3JlZ2F0ZWRZZWFyJ1wiXG4gICAgICAgICAgICAoeWVhcnNDbGlja2VkKT1cInNlbGVjdGVkWWVhcnMoJGV2ZW50KVwiXG4gICAgICAgICAgICBbeWVhclNlbGVjdGVkXT1cIl9jdXJyZW50bHlEaXNwbGF5ZWQueWVhclwiXG4gICAgICAgICAgICBbeWVhclZpZXdHcmlkXT1cInllYXJHcmlkXCJcbiAgICAgICAgICAgIFthZ2dyZWdhdGVkWWVhcnNWaWV3R3JpZF09XCJhZ2dyZWdhdGVkWWVhckdyaWRcIlxuICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgIFtmb2N1c0VzY2FwZUZ1bmN0aW9uXT1cImVzY2FwZUZvY3VzRnVuY3Rpb25cIlxuICAgICAgICA+XG4gICAgICAgIDwvZmQtY2FsZW5kYXItYWdncmVnYXRlZC15ZWFyLXZpZXc+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -11,6 +11,7 @@ import { CalendarAggregatedYearViewComponent } from './calendar-views/calendar-a
11
11
  import { CalendarCloseButtonDirective } from './calendar-directives';
12
12
  import { DeprecatedCalendarContentDensityDirective } from './deprecated-calendar-content-density.directive';
13
13
  import { ContentDensityModule } from '@fundamental-ngx/core/content-density';
14
+ import { I18nModule } from '@fundamental-ngx/i18n';
14
15
  import * as i0 from "@angular/core";
15
16
  export class CalendarModule {
16
17
  }
@@ -22,7 +23,7 @@ CalendarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
22
23
  CalendarYearViewComponent,
23
24
  CalendarAggregatedYearViewComponent,
24
25
  CalendarCloseButtonDirective,
25
- DeprecatedCalendarContentDensityDirective], imports: [CommonModule, IconModule, ButtonModule, ContentDensityModule], exports: [CalendarComponent,
26
+ DeprecatedCalendarContentDensityDirective], imports: [CommonModule, IconModule, ButtonModule, ContentDensityModule, I18nModule], exports: [CalendarComponent,
26
27
  CalendarDayViewComponent,
27
28
  CalendarHeaderComponent,
28
29
  CalendarYearViewComponent,
@@ -31,7 +32,7 @@ CalendarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
31
32
  CalendarCloseButtonDirective,
32
33
  DeprecatedCalendarContentDensityDirective,
33
34
  ContentDensityModule] });
34
- CalendarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarModule, imports: [CommonModule, IconModule, ButtonModule, ContentDensityModule, ContentDensityModule] });
35
+ CalendarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarModule, imports: [CommonModule, IconModule, ButtonModule, ContentDensityModule, I18nModule, ContentDensityModule] });
35
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarModule, decorators: [{
36
37
  type: NgModule,
37
38
  args: [{
@@ -45,7 +46,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
45
46
  CalendarCloseButtonDirective,
46
47
  DeprecatedCalendarContentDensityDirective
47
48
  ],
48
- imports: [CommonModule, IconModule, ButtonModule, ContentDensityModule],
49
+ imports: [CommonModule, IconModule, ButtonModule, ContentDensityModule, I18nModule],
49
50
  exports: [
50
51
  CalendarComponent,
51
52
  CalendarDayViewComponent,
@@ -59,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
59
60
  ]
60
61
  }]
61
62
  }] });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDMUcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sd0ZBQXdGLENBQUM7QUFDN0ksT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBMEI3RSxNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQXRCbkIsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2Qix3QkFBd0I7UUFDeEIsMEJBQTBCO1FBQzFCLHlCQUF5QjtRQUN6QixtQ0FBbUM7UUFDbkMsNEJBQTRCO1FBQzVCLHlDQUF5QyxhQUVuQyxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsYUFFbEUsaUJBQWlCO1FBQ2pCLHdCQUF3QjtRQUN4Qix1QkFBdUI7UUFDdkIseUJBQXlCO1FBQ3pCLDBCQUEwQjtRQUMxQixtQ0FBbUM7UUFDbkMsNEJBQTRCO1FBQzVCLHlDQUF5QztRQUN6QyxvQkFBb0I7NEdBR2YsY0FBYyxZQWJiLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQVVsRSxvQkFBb0I7MkZBR2YsY0FBYztrQkF4QjFCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLDBCQUEwQjt3QkFDMUIseUJBQXlCO3dCQUN6QixtQ0FBbUM7d0JBQ25DLDRCQUE0Qjt3QkFDNUIseUNBQXlDO3FCQUM1QztvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsQ0FBQztvQkFDdkUsT0FBTyxFQUFFO3dCQUNMLGlCQUFpQjt3QkFDakIsd0JBQXdCO3dCQUN4Qix1QkFBdUI7d0JBQ3ZCLHlCQUF5Qjt3QkFDekIsMEJBQTBCO3dCQUMxQixtQ0FBbUM7d0JBQ25DLDRCQUE0Qjt3QkFDNUIseUNBQXlDO3dCQUN6QyxvQkFBb0I7cUJBQ3ZCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJY29uTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2ljb24nO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5cbmltcG9ydCB7IENhbGVuZGFySGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci1oZWFkZXIvY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhckRheVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLXZpZXdzL2NhbGVuZGFyLWRheS12aWV3L2NhbGVuZGFyLWRheS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItdmlld3MvY2FsZW5kYXItbW9udGgtdmlldy9jYWxlbmRhci1tb250aC12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhclllYXJWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci12aWV3cy9jYWxlbmRhci15ZWFyLXZpZXcvY2FsZW5kYXIteWVhci12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyQWdncmVnYXRlZFllYXJWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci12aWV3cy9jYWxlbmRhci1hZ2dyZWdhdGVkLXllYXItdmlldy9jYWxlbmRhci1hZ2dyZWdhdGVkLXllYXItdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJDbG9zZUJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4vY2FsZW5kYXItZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBEZXByZWNhdGVkQ2FsZW5kYXJDb250ZW50RGVuc2l0eURpcmVjdGl2ZSB9IGZyb20gJy4vZGVwcmVjYXRlZC1jYWxlbmRhci1jb250ZW50LWRlbnNpdHkuZGlyZWN0aXZlJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5TW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIENhbGVuZGFyQ29tcG9uZW50LFxuICAgICAgICBDYWxlbmRhckhlYWRlckNvbXBvbmVudCxcbiAgICAgICAgQ2FsZW5kYXJEYXlWaWV3Q29tcG9uZW50LFxuICAgICAgICBDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudCxcbiAgICAgICAgQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudCxcbiAgICAgICAgQ2FsZW5kYXJBZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQsXG4gICAgICAgIENhbGVuZGFyQ2xvc2VCdXR0b25EaXJlY3RpdmUsXG4gICAgICAgIERlcHJlY2F0ZWRDYWxlbmRhckNvbnRlbnREZW5zaXR5RGlyZWN0aXZlXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uTW9kdWxlLCBCdXR0b25Nb2R1bGUsIENvbnRlbnREZW5zaXR5TW9kdWxlXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIENhbGVuZGFyQ29tcG9uZW50LFxuICAgICAgICBDYWxlbmRhckRheVZpZXdDb21wb25lbnQsXG4gICAgICAgIENhbGVuZGFySGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBDYWxlbmRhclllYXJWaWV3Q29tcG9uZW50LFxuICAgICAgICBDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudCxcbiAgICAgICAgQ2FsZW5kYXJBZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQsXG4gICAgICAgIENhbGVuZGFyQ2xvc2VCdXR0b25EaXJlY3RpdmUsXG4gICAgICAgIERlcHJlY2F0ZWRDYWxlbmRhckNvbnRlbnREZW5zaXR5RGlyZWN0aXZlLFxuICAgICAgICBDb250ZW50RGVuc2l0eU1vZHVsZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJNb2R1bGUge31cbiJdfQ==
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFNUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDMUcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDN0csT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sd0ZBQXdGLENBQUM7QUFDN0ksT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQTBCbkQsTUFBTSxPQUFPLGNBQWM7OzJHQUFkLGNBQWM7NEdBQWQsY0FBYyxpQkF0Qm5CLGlCQUFpQjtRQUNqQix1QkFBdUI7UUFDdkIsd0JBQXdCO1FBQ3hCLDBCQUEwQjtRQUMxQix5QkFBeUI7UUFDekIsbUNBQW1DO1FBQ25DLDRCQUE0QjtRQUM1Qix5Q0FBeUMsYUFFbkMsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxhQUU5RSxpQkFBaUI7UUFDakIsd0JBQXdCO1FBQ3hCLHVCQUF1QjtRQUN2Qix5QkFBeUI7UUFDekIsMEJBQTBCO1FBQzFCLG1DQUFtQztRQUNuQyw0QkFBNEI7UUFDNUIseUNBQXlDO1FBQ3pDLG9CQUFvQjs0R0FHZixjQUFjLFlBYmIsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxFQVU5RSxvQkFBb0I7MkZBR2YsY0FBYztrQkF4QjFCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLDBCQUEwQjt3QkFDMUIseUJBQXlCO3dCQUN6QixtQ0FBbUM7d0JBQ25DLDRCQUE0Qjt3QkFDNUIseUNBQXlDO3FCQUM1QztvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxVQUFVLENBQUM7b0JBQ25GLE9BQU8sRUFBRTt3QkFDTCxpQkFBaUI7d0JBQ2pCLHdCQUF3Qjt3QkFDeEIsdUJBQXVCO3dCQUN2Qix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsbUNBQW1DO3dCQUNuQyw0QkFBNEI7d0JBQzVCLHlDQUF5Qzt3QkFDekMsb0JBQW9CO3FCQUN2QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSWNvbk1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pY29uJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuXG5pbXBvcnQgeyBDYWxlbmRhckhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItaGVhZGVyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXlWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci12aWV3cy9jYWxlbmRhci1kYXktdmlldy9jYWxlbmRhci1kYXktdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb250aFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLXZpZXdzL2NhbGVuZGFyLW1vbnRoLXZpZXcvY2FsZW5kYXItbW9udGgtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItdmlld3MvY2FsZW5kYXIteWVhci12aWV3L2NhbGVuZGFyLXllYXItdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FsZW5kYXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYWxlbmRhckFnZ3JlZ2F0ZWRZZWFyVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXItdmlld3MvY2FsZW5kYXItYWdncmVnYXRlZC15ZWFyLXZpZXcvY2FsZW5kYXItYWdncmVnYXRlZC15ZWFyLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IENhbGVuZGFyQ2xvc2VCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL2NhbGVuZGFyLWRpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgRGVwcmVjYXRlZENhbGVuZGFyQ29udGVudERlbnNpdHlEaXJlY3RpdmUgfSBmcm9tICcuL2RlcHJlY2F0ZWQtY2FsZW5kYXItY29udGVudC1kZW5zaXR5LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eU1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgSTE4bk1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvaTE4bic7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIENhbGVuZGFyQ29tcG9uZW50LFxuICAgICAgICBDYWxlbmRhckhlYWRlckNvbXBvbmVudCxcbiAgICAgICAgQ2FsZW5kYXJEYXlWaWV3Q29tcG9uZW50LFxuICAgICAgICBDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudCxcbiAgICAgICAgQ2FsZW5kYXJZZWFyVmlld0NvbXBvbmVudCxcbiAgICAgICAgQ2FsZW5kYXJBZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQsXG4gICAgICAgIENhbGVuZGFyQ2xvc2VCdXR0b25EaXJlY3RpdmUsXG4gICAgICAgIERlcHJlY2F0ZWRDYWxlbmRhckNvbnRlbnREZW5zaXR5RGlyZWN0aXZlXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJY29uTW9kdWxlLCBCdXR0b25Nb2R1bGUsIENvbnRlbnREZW5zaXR5TW9kdWxlLCBJMThuTW9kdWxlXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIENhbGVuZGFyQ29tcG9uZW50LFxuICAgICAgICBDYWxlbmRhckRheVZpZXdDb21wb25lbnQsXG4gICAgICAgIENhbGVuZGFySGVhZGVyQ29tcG9uZW50LFxuICAgICAgICBDYWxlbmRhclllYXJWaWV3Q29tcG9uZW50LFxuICAgICAgICBDYWxlbmRhck1vbnRoVmlld0NvbXBvbmVudCxcbiAgICAgICAgQ2FsZW5kYXJBZ2dyZWdhdGVkWWVhclZpZXdDb21wb25lbnQsXG4gICAgICAgIENhbGVuZGFyQ2xvc2VCdXR0b25EaXJlY3RpdmUsXG4gICAgICAgIERlcHJlY2F0ZWRDYWxlbmRhckNvbnRlbnREZW5zaXR5RGlyZWN0aXZlLFxuICAgICAgICBDb250ZW50RGVuc2l0eU1vZHVsZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJNb2R1bGUge31cbiJdfQ==
@@ -1,57 +1,51 @@
1
- import { Injectable } from '@angular/core';
1
+ import { FD_LANGUAGE_ENGLISH } from '@fundamental-ngx/i18n';
2
2
  import { Subject } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
3
  /**
5
4
  * Provides i18n support for labels inside the calendar component.
5
+ * @deprecated use i18n `coreCalendar` key instead
6
6
  */
7
7
  export class CalendarI18nLabels {
8
8
  constructor() {
9
9
  /** This is event that should be called, when labels are changed, to let component detect an changes. */
10
10
  this.labelsChange = new Subject();
11
11
  /** Year selection aria label. Used on the button to navigate to the years view. */
12
- this.yearSelectionLabel = 'Select year';
12
+ this.yearSelectionLabel = FD_LANGUAGE_ENGLISH.coreCalendar.yearSelectionLabel;
13
13
  /** Years range selection aria label. Used on the button to navigate to the years range view. */
14
- this.yearsRangeSelectionLabel = 'Select years range';
14
+ this.yearsRangeSelectionLabel = FD_LANGUAGE_ENGLISH.coreCalendar.yearsRangeSelectionLabel;
15
15
  /** Month selection aria label. Used on the button to navigate to the months view. */
16
- this.monthSelectionLabel = 'Select month';
16
+ this.monthSelectionLabel = FD_LANGUAGE_ENGLISH.coreCalendar.monthSelectionLabel;
17
17
  /** Day selection aria label. Used on the button to navigate to the day view. */
18
- this.dateSelectionLabel = 'Select date';
18
+ this.dateSelectionLabel = FD_LANGUAGE_ENGLISH.coreCalendar.dateSelectionLabel;
19
19
  /** Previous year aria label. Used on the button to switch to a previous year in the years view. */
20
- this.previousYearLabel = 'Previous year';
20
+ this.previousYearLabel = FD_LANGUAGE_ENGLISH.coreCalendar.previousYearLabel;
21
21
  /** Next year aria label. Used on the button to switch to a next year in the years view. */
22
- this.nextYearLabel = 'Next year';
22
+ this.nextYearLabel = FD_LANGUAGE_ENGLISH.coreCalendar.nextYearLabel;
23
23
  /** Previous month aria label. Used on the button to switch to a previous month in the months view. */
24
- this.previousMonthLabel = 'Previous month';
24
+ this.previousMonthLabel = FD_LANGUAGE_ENGLISH.coreCalendar.previousMonthLabel;
25
25
  /** Next month aria label. Used on the button to switch to a next month in the months view. */
26
- this.nextMonthLabel = 'Next month';
26
+ this.nextMonthLabel = FD_LANGUAGE_ENGLISH.coreCalendar.nextMonthLabel;
27
27
  /** Week number column label */
28
- this.weekColumnLabel = 'Calendar week';
28
+ this.weekColumnLabel = FD_LANGUAGE_ENGLISH.coreCalendar.weekColumnLabel;
29
29
  /** Selected date label. Used on the selected day/month/year cell. */
30
- this.dateSelectedLabel = 'Selected date';
30
+ this.dateSelectedLabel = FD_LANGUAGE_ENGLISH.coreCalendar.dateSelectedLabel;
31
31
  /** Is used to describe present date */
32
- this.todayLabel = 'Today';
32
+ this.todayLabel = FD_LANGUAGE_ENGLISH.coreCalendar.todayLabel;
33
33
  /** Range start label. Used for date range selection */
34
- this.rangeStartLabel = 'Range start';
34
+ this.rangeStartLabel = FD_LANGUAGE_ENGLISH.coreCalendar.rangeStartLabel;
35
35
  /** Range end label. Used for date range selection */
36
- this.rangeEndLabel = 'Range end';
36
+ this.rangeEndLabel = FD_LANGUAGE_ENGLISH.coreCalendar.rangeEndLabel;
37
37
  /** Past days aria label. Used when days in the past are accessed */
38
- this.dayInPastLabel = 'Past days';
38
+ this.dayInPastLabel = FD_LANGUAGE_ENGLISH.coreCalendar.dayInPastLabel;
39
39
  /** Past days aria label. Used when days in the past are accessed */
40
- this.closeCalendarLabel = 'Close calendar';
40
+ this.closeCalendarLabel = FD_LANGUAGE_ENGLISH.coreCalendar.closeCalendarLabel;
41
41
  /** Calendar day view aria role description. */
42
- this.calendarDayViewDescription = 'Calendar';
42
+ this.calendarDayViewDescription = FD_LANGUAGE_ENGLISH.coreCalendar.calendarDayViewDescription;
43
43
  /** Calendar month view aria role description. */
44
- this.calendarMonthViewDescription = 'Month picker';
44
+ this.calendarMonthViewDescription = FD_LANGUAGE_ENGLISH.coreCalendar.calendarMonthViewDescription;
45
45
  /** Calendar years view aria role description. */
46
- this.calendarYearsViewDescription = 'Year picker';
46
+ this.calendarYearsViewDescription = FD_LANGUAGE_ENGLISH.coreCalendar.calendarYearsViewDescription;
47
47
  /** Calendar years range view aria role description. */
48
- this.calendarYearsRangeViewDescription = 'Years range picker';
48
+ this.calendarYearsRangeViewDescription = FD_LANGUAGE_ENGLISH.coreCalendar.calendarYearsRangeViewDescription;
49
49
  }
50
50
  }
51
- CalendarI18nLabels.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarI18nLabels, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
52
- CalendarI18nLabels.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarI18nLabels, providedIn: 'root' });
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CalendarI18nLabels, decorators: [{
54
- type: Injectable,
55
- args: [{ providedIn: 'root' }]
56
- }] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaTE4bi1sYWJlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jYWxlbmRhci9pMThuL2NhbGVuZGFyLWkxOG4tbGFiZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFL0I7O0dBRUc7QUFFSCxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBRUksd0dBQXdHO1FBQy9GLGlCQUFZLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFM0QsbUZBQW1GO1FBQ25GLHVCQUFrQixHQUFHLGFBQWEsQ0FBQztRQUVuQyxnR0FBZ0c7UUFDaEcsNkJBQXdCLEdBQUcsb0JBQW9CLENBQUM7UUFFaEQscUZBQXFGO1FBQ3JGLHdCQUFtQixHQUFHLGNBQWMsQ0FBQztRQUVyQyxnRkFBZ0Y7UUFDaEYsdUJBQWtCLEdBQUcsYUFBYSxDQUFDO1FBRW5DLG1HQUFtRztRQUNuRyxzQkFBaUIsR0FBRyxlQUFlLENBQUM7UUFFcEMsMkZBQTJGO1FBQzNGLGtCQUFhLEdBQUcsV0FBVyxDQUFDO1FBRTVCLHNHQUFzRztRQUN0Ryx1QkFBa0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUV0Qyw4RkFBOEY7UUFDOUYsbUJBQWMsR0FBRyxZQUFZLENBQUM7UUFFOUIsK0JBQStCO1FBQy9CLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBRWxDLHFFQUFxRTtRQUNyRSxzQkFBaUIsR0FBRyxlQUFlLENBQUM7UUFFcEMsdUNBQXVDO1FBQ3ZDLGVBQVUsR0FBRyxPQUFPLENBQUM7UUFFckIsdURBQXVEO1FBQ3ZELG9CQUFlLEdBQUcsYUFBYSxDQUFDO1FBRWhDLHFEQUFxRDtRQUNyRCxrQkFBYSxHQUFHLFdBQVcsQ0FBQztRQUU1QixvRUFBb0U7UUFDcEUsbUJBQWMsR0FBRyxXQUFXLENBQUM7UUFFN0Isb0VBQW9FO1FBQ3BFLHVCQUFrQixHQUFHLGdCQUFnQixDQUFDO1FBRXRDLCtDQUErQztRQUMvQywrQkFBMEIsR0FBRyxVQUFVLENBQUM7UUFFeEMsaURBQWlEO1FBQ2pELGlDQUE0QixHQUFHLGNBQWMsQ0FBQztRQUU5QyxpREFBaUQ7UUFDakQsaUNBQTRCLEdBQUcsYUFBYSxDQUFDO1FBRTdDLHVEQUF1RDtRQUN2RCxzQ0FBaUMsR0FBRyxvQkFBb0IsQ0FBQztLQUM1RDs7K0dBNURZLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBREwsTUFBTTsyRkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBQcm92aWRlcyBpMThuIHN1cHBvcnQgZm9yIGxhYmVscyBpbnNpZGUgdGhlIGNhbGVuZGFyIGNvbXBvbmVudC5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckkxOG5MYWJlbHMge1xuICAgIC8qKiBUaGlzIGlzIGV2ZW50IHRoYXQgc2hvdWxkIGJlIGNhbGxlZCwgd2hlbiBsYWJlbHMgYXJlIGNoYW5nZWQsIHRvIGxldCBjb21wb25lbnQgZGV0ZWN0IGFuIGNoYW5nZXMuICovXG4gICAgcmVhZG9ubHkgbGFiZWxzQ2hhbmdlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBZZWFyIHNlbGVjdGlvbiBhcmlhIGxhYmVsLiBVc2VkIG9uIHRoZSBidXR0b24gdG8gbmF2aWdhdGUgdG8gdGhlIHllYXJzIHZpZXcuICovXG4gICAgeWVhclNlbGVjdGlvbkxhYmVsID0gJ1NlbGVjdCB5ZWFyJztcblxuICAgIC8qKiBZZWFycyByYW5nZSBzZWxlY3Rpb24gYXJpYSBsYWJlbC4gVXNlZCBvbiB0aGUgYnV0dG9uIHRvIG5hdmlnYXRlIHRvIHRoZSB5ZWFycyByYW5nZSB2aWV3LiAqL1xuICAgIHllYXJzUmFuZ2VTZWxlY3Rpb25MYWJlbCA9ICdTZWxlY3QgeWVhcnMgcmFuZ2UnO1xuXG4gICAgLyoqIE1vbnRoIHNlbGVjdGlvbiBhcmlhIGxhYmVsLiBVc2VkIG9uIHRoZSBidXR0b24gdG8gbmF2aWdhdGUgdG8gdGhlIG1vbnRocyB2aWV3LiAqL1xuICAgIG1vbnRoU2VsZWN0aW9uTGFiZWwgPSAnU2VsZWN0IG1vbnRoJztcblxuICAgIC8qKiBEYXkgc2VsZWN0aW9uIGFyaWEgbGFiZWwuIFVzZWQgb24gdGhlIGJ1dHRvbiB0byBuYXZpZ2F0ZSB0byB0aGUgZGF5IHZpZXcuICovXG4gICAgZGF0ZVNlbGVjdGlvbkxhYmVsID0gJ1NlbGVjdCBkYXRlJztcblxuICAgIC8qKiBQcmV2aW91cyB5ZWFyIGFyaWEgbGFiZWwuIFVzZWQgb24gdGhlIGJ1dHRvbiB0byBzd2l0Y2ggdG8gYSBwcmV2aW91cyB5ZWFyIGluIHRoZSB5ZWFycyB2aWV3LiAqL1xuICAgIHByZXZpb3VzWWVhckxhYmVsID0gJ1ByZXZpb3VzIHllYXInO1xuXG4gICAgLyoqIE5leHQgeWVhciBhcmlhIGxhYmVsLiBVc2VkIG9uIHRoZSBidXR0b24gdG8gc3dpdGNoIHRvIGEgbmV4dCB5ZWFyIGluIHRoZSB5ZWFycyB2aWV3LiAqL1xuICAgIG5leHRZZWFyTGFiZWwgPSAnTmV4dCB5ZWFyJztcblxuICAgIC8qKiBQcmV2aW91cyBtb250aCBhcmlhIGxhYmVsLiBVc2VkIG9uIHRoZSBidXR0b24gdG8gc3dpdGNoIHRvIGEgcHJldmlvdXMgbW9udGggaW4gdGhlIG1vbnRocyB2aWV3LiAqL1xuICAgIHByZXZpb3VzTW9udGhMYWJlbCA9ICdQcmV2aW91cyBtb250aCc7XG5cbiAgICAvKiogTmV4dCBtb250aCBhcmlhIGxhYmVsLiBVc2VkIG9uIHRoZSBidXR0b24gdG8gc3dpdGNoIHRvIGEgbmV4dCBtb250aCBpbiB0aGUgbW9udGhzIHZpZXcuICovXG4gICAgbmV4dE1vbnRoTGFiZWwgPSAnTmV4dCBtb250aCc7XG5cbiAgICAvKiogV2VlayBudW1iZXIgY29sdW1uIGxhYmVsICovXG4gICAgd2Vla0NvbHVtbkxhYmVsID0gJ0NhbGVuZGFyIHdlZWsnO1xuXG4gICAgLyoqIFNlbGVjdGVkIGRhdGUgbGFiZWwuIFVzZWQgb24gdGhlIHNlbGVjdGVkIGRheS9tb250aC95ZWFyIGNlbGwuICovXG4gICAgZGF0ZVNlbGVjdGVkTGFiZWwgPSAnU2VsZWN0ZWQgZGF0ZSc7XG5cbiAgICAvKiogSXMgdXNlZCB0byBkZXNjcmliZSBwcmVzZW50IGRhdGUgKi9cbiAgICB0b2RheUxhYmVsID0gJ1RvZGF5JztcblxuICAgIC8qKiBSYW5nZSBzdGFydCBsYWJlbC4gVXNlZCBmb3IgZGF0ZSByYW5nZSBzZWxlY3Rpb24gKi9cbiAgICByYW5nZVN0YXJ0TGFiZWwgPSAnUmFuZ2Ugc3RhcnQnO1xuXG4gICAgLyoqIFJhbmdlIGVuZCBsYWJlbC4gVXNlZCBmb3IgZGF0ZSByYW5nZSBzZWxlY3Rpb24gKi9cbiAgICByYW5nZUVuZExhYmVsID0gJ1JhbmdlIGVuZCc7XG5cbiAgICAvKiogUGFzdCBkYXlzIGFyaWEgbGFiZWwuIFVzZWQgd2hlbiBkYXlzIGluIHRoZSBwYXN0IGFyZSBhY2Nlc3NlZCAqL1xuICAgIGRheUluUGFzdExhYmVsID0gJ1Bhc3QgZGF5cyc7XG5cbiAgICAvKiogUGFzdCBkYXlzIGFyaWEgbGFiZWwuIFVzZWQgd2hlbiBkYXlzIGluIHRoZSBwYXN0IGFyZSBhY2Nlc3NlZCAqL1xuICAgIGNsb3NlQ2FsZW5kYXJMYWJlbCA9ICdDbG9zZSBjYWxlbmRhcic7XG5cbiAgICAvKiogQ2FsZW5kYXIgZGF5IHZpZXcgYXJpYSByb2xlIGRlc2NyaXB0aW9uLiAqL1xuICAgIGNhbGVuZGFyRGF5Vmlld0Rlc2NyaXB0aW9uID0gJ0NhbGVuZGFyJztcblxuICAgIC8qKiBDYWxlbmRhciBtb250aCB2aWV3IGFyaWEgcm9sZSBkZXNjcmlwdGlvbi4gKi9cbiAgICBjYWxlbmRhck1vbnRoVmlld0Rlc2NyaXB0aW9uID0gJ01vbnRoIHBpY2tlcic7XG5cbiAgICAvKiogQ2FsZW5kYXIgeWVhcnMgdmlldyBhcmlhIHJvbGUgZGVzY3JpcHRpb24uICovXG4gICAgY2FsZW5kYXJZZWFyc1ZpZXdEZXNjcmlwdGlvbiA9ICdZZWFyIHBpY2tlcic7XG5cbiAgICAvKiogQ2FsZW5kYXIgeWVhcnMgcmFuZ2UgdmlldyBhcmlhIHJvbGUgZGVzY3JpcHRpb24uICovXG4gICAgY2FsZW5kYXJZZWFyc1JhbmdlVmlld0Rlc2NyaXB0aW9uID0gJ1llYXJzIHJhbmdlIHBpY2tlcic7XG59XG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaTE4bi1sYWJlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jYWxlbmRhci9pMThuL2NhbGVuZGFyLWkxOG4tbGFiZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0I7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGtCQUFrQjtJQUEvQjtRQUNJLHdHQUF3RztRQUMvRixpQkFBWSxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRTNELG1GQUFtRjtRQUNuRix1QkFBa0IsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUM7UUFFekUsZ0dBQWdHO1FBQ2hHLDZCQUF3QixHQUFHLG1CQUFtQixDQUFDLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQztRQUVyRixxRkFBcUY7UUFDckYsd0JBQW1CLEdBQUcsbUJBQW1CLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDO1FBRTNFLGdGQUFnRjtRQUNoRix1QkFBa0IsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUM7UUFFekUsbUdBQW1HO1FBQ25HLHNCQUFpQixHQUFHLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztRQUV2RSwyRkFBMkY7UUFDM0Ysa0JBQWEsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDO1FBRS9ELHNHQUFzRztRQUN0Ryx1QkFBa0IsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUM7UUFFekUsOEZBQThGO1FBQzlGLG1CQUFjLEdBQUcsbUJBQW1CLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQztRQUVqRSwrQkFBK0I7UUFDL0Isb0JBQWUsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDO1FBRW5FLHFFQUFxRTtRQUNyRSxzQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7UUFFdkUsdUNBQXVDO1FBQ3ZDLGVBQVUsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDO1FBRXpELHVEQUF1RDtRQUN2RCxvQkFBZSxHQUFHLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUM7UUFFbkUscURBQXFEO1FBQ3JELGtCQUFhLEdBQUcsbUJBQW1CLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQztRQUUvRCxvRUFBb0U7UUFDcEUsbUJBQWMsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDO1FBRWpFLG9FQUFvRTtRQUNwRSx1QkFBa0IsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUM7UUFFekUsK0NBQStDO1FBQy9DLCtCQUEwQixHQUFHLG1CQUFtQixDQUFDLFlBQVksQ0FBQywwQkFBMEIsQ0FBQztRQUV6RixpREFBaUQ7UUFDakQsaUNBQTRCLEdBQUcsbUJBQW1CLENBQUMsWUFBWSxDQUFDLDRCQUE0QixDQUFDO1FBRTdGLGlEQUFpRDtRQUNqRCxpQ0FBNEIsR0FBRyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsNEJBQTRCLENBQUM7UUFFN0YsdURBQXVEO1FBQ3ZELHNDQUFpQyxHQUFHLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxpQ0FBaUMsQ0FBQztJQUMzRyxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGRF9MQU5HVUFHRV9FTkdMSVNIIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9pMThuJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBQcm92aWRlcyBpMThuIHN1cHBvcnQgZm9yIGxhYmVscyBpbnNpZGUgdGhlIGNhbGVuZGFyIGNvbXBvbmVudC5cbiAqIEBkZXByZWNhdGVkIHVzZSBpMThuIGBjb3JlQ2FsZW5kYXJgIGtleSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBjbGFzcyBDYWxlbmRhckkxOG5MYWJlbHMge1xuICAgIC8qKiBUaGlzIGlzIGV2ZW50IHRoYXQgc2hvdWxkIGJlIGNhbGxlZCwgd2hlbiBsYWJlbHMgYXJlIGNoYW5nZWQsIHRvIGxldCBjb21wb25lbnQgZGV0ZWN0IGFuIGNoYW5nZXMuICovXG4gICAgcmVhZG9ubHkgbGFiZWxzQ2hhbmdlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKiBZZWFyIHNlbGVjdGlvbiBhcmlhIGxhYmVsLiBVc2VkIG9uIHRoZSBidXR0b24gdG8gbmF2aWdhdGUgdG8gdGhlIHllYXJzIHZpZXcuICovXG4gICAgeWVhclNlbGVjdGlvbkxhYmVsID0gRkRfTEFOR1VBR0VfRU5HTElTSC5jb3JlQ2FsZW5kYXIueWVhclNlbGVjdGlvbkxhYmVsO1xuXG4gICAgLyoqIFllYXJzIHJhbmdlIHNlbGVjdGlvbiBhcmlhIGxhYmVsLiBVc2VkIG9uIHRoZSBidXR0b24gdG8gbmF2aWdhdGUgdG8gdGhlIHllYXJzIHJhbmdlIHZpZXcuICovXG4gICAgeWVhcnNSYW5nZVNlbGVjdGlvbkxhYmVsID0gRkRfTEFOR1VBR0VfRU5HTElTSC5jb3JlQ2FsZW5kYXIueWVhcnNSYW5nZVNlbGVjdGlvbkxhYmVsO1xuXG4gICAgLyoqIE1vbnRoIHNlbGVjdGlvbiBhcmlhIGxhYmVsLiBVc2VkIG9uIHRoZSBidXR0b24gdG8gbmF2aWdhdGUgdG8gdGhlIG1vbnRocyB2aWV3LiAqL1xuICAgIG1vbnRoU2VsZWN0aW9uTGFiZWwgPSBGRF9MQU5HVUFHRV9FTkdMSVNILmNvcmVDYWxlbmRhci5tb250aFNlbGVjdGlvbkxhYmVsO1xuXG4gICAgLyoqIERheSBzZWxlY3Rpb24gYXJpYSBsYWJlbC4gVXNlZCBvbiB0aGUgYnV0dG9uIHRvIG5hdmlnYXRlIHRvIHRoZSBkYXkgdmlldy4gKi9cbiAgICBkYXRlU2VsZWN0aW9uTGFiZWwgPSBGRF9MQU5HVUFHRV9FTkdMSVNILmNvcmVDYWxlbmRhci5kYXRlU2VsZWN0aW9uTGFiZWw7XG5cbiAgICAvKiogUHJldmlvdXMgeWVhciBhcmlhIGxhYmVsLiBVc2VkIG9uIHRoZSBidXR0b24gdG8gc3dpdGNoIHRvIGEgcHJldmlvdXMgeWVhciBpbiB0aGUgeWVhcnMgdmlldy4gKi9cbiAgICBwcmV2aW91c1llYXJMYWJlbCA9IEZEX0xBTkdVQUdFX0VOR0xJU0guY29yZUNhbGVuZGFyLnByZXZpb3VzWWVhckxhYmVsO1xuXG4gICAgLyoqIE5leHQgeWVhciBhcmlhIGxhYmVsLiBVc2VkIG9uIHRoZSBidXR0b24gdG8gc3dpdGNoIHRvIGEgbmV4dCB5ZWFyIGluIHRoZSB5ZWFycyB2aWV3LiAqL1xuICAgIG5leHRZZWFyTGFiZWwgPSBGRF9MQU5HVUFHRV9FTkdMSVNILmNvcmVDYWxlbmRhci5uZXh0WWVhckxhYmVsO1xuXG4gICAgLyoqIFByZXZpb3VzIG1vbnRoIGFyaWEgbGFiZWwuIFVzZWQgb24gdGhlIGJ1dHRvbiB0byBzd2l0Y2ggdG8gYSBwcmV2aW91cyBtb250aCBpbiB0aGUgbW9udGhzIHZpZXcuICovXG4gICAgcHJldmlvdXNNb250aExhYmVsID0gRkRfTEFOR1VBR0VfRU5HTElTSC5jb3JlQ2FsZW5kYXIucHJldmlvdXNNb250aExhYmVsO1xuXG4gICAgLyoqIE5leHQgbW9udGggYXJpYSBsYWJlbC4gVXNlZCBvbiB0aGUgYnV0dG9uIHRvIHN3aXRjaCB0byBhIG5leHQgbW9udGggaW4gdGhlIG1vbnRocyB2aWV3LiAqL1xuICAgIG5leHRNb250aExhYmVsID0gRkRfTEFOR1VBR0VfRU5HTElTSC5jb3JlQ2FsZW5kYXIubmV4dE1vbnRoTGFiZWw7XG5cbiAgICAvKiogV2VlayBudW1iZXIgY29sdW1uIGxhYmVsICovXG4gICAgd2Vla0NvbHVtbkxhYmVsID0gRkRfTEFOR1VBR0VfRU5HTElTSC5jb3JlQ2FsZW5kYXIud2Vla0NvbHVtbkxhYmVsO1xuXG4gICAgLyoqIFNlbGVjdGVkIGRhdGUgbGFiZWwuIFVzZWQgb24gdGhlIHNlbGVjdGVkIGRheS9tb250aC95ZWFyIGNlbGwuICovXG4gICAgZGF0ZVNlbGVjdGVkTGFiZWwgPSBGRF9MQU5HVUFHRV9FTkdMSVNILmNvcmVDYWxlbmRhci5kYXRlU2VsZWN0ZWRMYWJlbDtcblxuICAgIC8qKiBJcyB1c2VkIHRvIGRlc2NyaWJlIHByZXNlbnQgZGF0ZSAqL1xuICAgIHRvZGF5TGFiZWwgPSBGRF9MQU5HVUFHRV9FTkdMSVNILmNvcmVDYWxlbmRhci50b2RheUxhYmVsO1xuXG4gICAgLyoqIFJhbmdlIHN0YXJ0IGxhYmVsLiBVc2VkIGZvciBkYXRlIHJhbmdlIHNlbGVjdGlvbiAqL1xuICAgIHJhbmdlU3RhcnRMYWJlbCA9IEZEX0xBTkdVQUdFX0VOR0xJU0guY29yZUNhbGVuZGFyLnJhbmdlU3RhcnRMYWJlbDtcblxuICAgIC8qKiBSYW5nZSBlbmQgbGFiZWwuIFVzZWQgZm9yIGRhdGUgcmFuZ2Ugc2VsZWN0aW9uICovXG4gICAgcmFuZ2VFbmRMYWJlbCA9IEZEX0xBTkdVQUdFX0VOR0xJU0guY29yZUNhbGVuZGFyLnJhbmdlRW5kTGFiZWw7XG5cbiAgICAvKiogUGFzdCBkYXlzIGFyaWEgbGFiZWwuIFVzZWQgd2hlbiBkYXlzIGluIHRoZSBwYXN0IGFyZSBhY2Nlc3NlZCAqL1xuICAgIGRheUluUGFzdExhYmVsID0gRkRfTEFOR1VBR0VfRU5HTElTSC5jb3JlQ2FsZW5kYXIuZGF5SW5QYXN0TGFiZWw7XG5cbiAgICAvKiogUGFzdCBkYXlzIGFyaWEgbGFiZWwuIFVzZWQgd2hlbiBkYXlzIGluIHRoZSBwYXN0IGFyZSBhY2Nlc3NlZCAqL1xuICAgIGNsb3NlQ2FsZW5kYXJMYWJlbCA9IEZEX0xBTkdVQUdFX0VOR0xJU0guY29yZUNhbGVuZGFyLmNsb3NlQ2FsZW5kYXJMYWJlbDtcblxuICAgIC8qKiBDYWxlbmRhciBkYXkgdmlldyBhcmlhIHJvbGUgZGVzY3JpcHRpb24uICovXG4gICAgY2FsZW5kYXJEYXlWaWV3RGVzY3JpcHRpb24gPSBGRF9MQU5HVUFHRV9FTkdMSVNILmNvcmVDYWxlbmRhci5jYWxlbmRhckRheVZpZXdEZXNjcmlwdGlvbjtcblxuICAgIC8qKiBDYWxlbmRhciBtb250aCB2aWV3IGFyaWEgcm9sZSBkZXNjcmlwdGlvbi4gKi9cbiAgICBjYWxlbmRhck1vbnRoVmlld0Rlc2NyaXB0aW9uID0gRkRfTEFOR1VBR0VfRU5HTElTSC5jb3JlQ2FsZW5kYXIuY2FsZW5kYXJNb250aFZpZXdEZXNjcmlwdGlvbjtcblxuICAgIC8qKiBDYWxlbmRhciB5ZWFycyB2aWV3IGFyaWEgcm9sZSBkZXNjcmlwdGlvbi4gKi9cbiAgICBjYWxlbmRhclllYXJzVmlld0Rlc2NyaXB0aW9uID0gRkRfTEFOR1VBR0VfRU5HTElTSC5jb3JlQ2FsZW5kYXIuY2FsZW5kYXJZZWFyc1ZpZXdEZXNjcmlwdGlvbjtcblxuICAgIC8qKiBDYWxlbmRhciB5ZWFycyByYW5nZSB2aWV3IGFyaWEgcm9sZSBkZXNjcmlwdGlvbi4gKi9cbiAgICBjYWxlbmRhclllYXJzUmFuZ2VWaWV3RGVzY3JpcHRpb24gPSBGRF9MQU5HVUFHRV9FTkdMSVNILmNvcmVDYWxlbmRhci5jYWxlbmRhclllYXJzUmFuZ2VWaWV3RGVzY3JpcHRpb247XG59XG4iXX0=
@@ -0,0 +1,26 @@
1
+ import { inject } from '@angular/core';
2
+ import { FD_LANGUAGE } from '@fundamental-ngx/i18n';
3
+ import { map, startWith, switchMap, of } from 'rxjs';
4
+ import { CalendarI18nLabels } from './i18n/calendar-i18n-labels';
5
+ /**
6
+ * Use deprecated `CalendarI18nLabels` to patch `FD_LANGUAGE` observable
7
+ */
8
+ export function patchDeprecatedI18nLabels() {
9
+ const deprecatedSymbol = inject(CalendarI18nLabels, { optional: true });
10
+ if (deprecatedSymbol) {
11
+ return inject(FD_LANGUAGE, { skipSelf: true }).pipe(switchMap((existingLang) => {
12
+ if (!deprecatedSymbol.labelsChange) {
13
+ return of(existingLang);
14
+ }
15
+ return deprecatedSymbol.labelsChange.pipe(startWith(null), map(() => existingLang));
16
+ }), map((existingLang) => ({
17
+ ...existingLang,
18
+ coreCalendar: {
19
+ ...existingLang.coreCalendar,
20
+ ...deprecatedSymbol
21
+ }
22
+ })));
23
+ }
24
+ return inject(FD_LANGUAGE, { skipSelf: true });
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2gtZGVwcmVjYXRlZC1pMThuLWxhYmVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NhbGVuZGFyL3BhdGNoLWRlcHJlY2F0ZWQtaTE4bi1sYWJlbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFjLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFjLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVqRTs7R0FFRztBQUNILE1BQU0sVUFBVSx5QkFBeUI7SUFDckMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4RSxJQUFJLGdCQUFnQixFQUFFO1FBQ2xCLE9BQU8sTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDL0MsU0FBUyxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRTtnQkFDaEMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDM0I7WUFDRCxPQUFPLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ3JDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQzFCLENBQUM7UUFDTixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbkIsR0FBRyxZQUFZO1lBQ2YsWUFBWSxFQUFFO2dCQUNWLEdBQUcsWUFBWSxDQUFDLFlBQVk7Z0JBQzVCLEdBQUcsZ0JBQWdCO2FBQ3RCO1NBQ0osQ0FBQyxDQUFDLENBQ04sQ0FBQztLQUNMO0lBQ0QsT0FBTyxNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDbkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkRfTEFOR1VBR0UsIEZkTGFuZ3VhZ2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENhbGVuZGFySTE4bkxhYmVscyB9IGZyb20gJy4vaTE4bi9jYWxlbmRhci1pMThuLWxhYmVscyc7XG5cbi8qKlxuICogVXNlIGRlcHJlY2F0ZWQgYENhbGVuZGFySTE4bkxhYmVsc2AgdG8gcGF0Y2ggYEZEX0xBTkdVQUdFYCBvYnNlcnZhYmxlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXRjaERlcHJlY2F0ZWRJMThuTGFiZWxzKCk6IE9ic2VydmFibGU8RmRMYW5ndWFnZT4ge1xuICAgIGNvbnN0IGRlcHJlY2F0ZWRTeW1ib2wgPSBpbmplY3QoQ2FsZW5kYXJJMThuTGFiZWxzLCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuICAgIGlmIChkZXByZWNhdGVkU3ltYm9sKSB7XG4gICAgICAgIHJldHVybiBpbmplY3QoRkRfTEFOR1VBR0UsIHsgc2tpcFNlbGY6IHRydWUgfSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoZXhpc3RpbmdMYW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFkZXByZWNhdGVkU3ltYm9sLmxhYmVsc0NoYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoZXhpc3RpbmdMYW5nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlcHJlY2F0ZWRTeW1ib2wubGFiZWxzQ2hhbmdlLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgICAgICAgICAgbWFwKCgpID0+IGV4aXN0aW5nTGFuZylcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBtYXAoKGV4aXN0aW5nTGFuZykgPT4gKHtcbiAgICAgICAgICAgICAgICAuLi5leGlzdGluZ0xhbmcsXG4gICAgICAgICAgICAgICAgY29yZUNhbGVuZGFyOiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmV4aXN0aW5nTGFuZy5jb3JlQ2FsZW5kYXIsXG4gICAgICAgICAgICAgICAgICAgIC4uLmRlcHJlY2F0ZWRTeW1ib2xcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGluamVjdChGRF9MQU5HVUFHRSwgeyBza2lwU2VsZjogdHJ1ZSB9KTtcbn1cbiJdfQ==