@coreui/angular-pro 5.0.0-alpha.11 → 5.0.0-alpha.13
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.
- package/README.md +1 -1
- package/esm2022/lib/accordion/accordion/accordion.component.mjs +3 -3
- package/esm2022/lib/accordion/accordion-button/accordion-button.directive.mjs +3 -3
- package/esm2022/lib/accordion/accordion-item/accordion-item.component.mjs +3 -3
- package/esm2022/lib/accordion/accordion.module.mjs +4 -4
- package/esm2022/lib/accordion/accordion.service.mjs +4 -4
- package/esm2022/lib/alert/alert-heading.directive.mjs +3 -3
- package/esm2022/lib/alert/alert-link.directive.mjs +3 -3
- package/esm2022/lib/alert/alert.component.mjs +4 -4
- package/esm2022/lib/alert/alert.module.mjs +4 -4
- package/esm2022/lib/avatar/avatar.component.mjs +3 -3
- package/esm2022/lib/avatar/avatar.module.mjs +4 -4
- package/esm2022/lib/backdrop/backdrop.service.mjs +4 -4
- package/esm2022/lib/badge/badge.component.mjs +3 -3
- package/esm2022/lib/badge/badge.module.mjs +4 -4
- package/esm2022/lib/breadcrumb/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/lib/breadcrumb/breadcrumb-item/breadcrumb-item.component.mjs +4 -4
- package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.component.mjs +4 -4
- package/esm2022/lib/breadcrumb/breadcrumb-router/breadcrumb-router.service.mjs +4 -4
- package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +4 -4
- package/esm2022/lib/button/button-close.directive.mjs +3 -3
- package/esm2022/lib/button/button.directive.mjs +3 -3
- package/esm2022/lib/button/button.module.mjs +4 -4
- package/esm2022/lib/button-group/button-group/button-group.component.mjs +3 -3
- package/esm2022/lib/button-group/button-group.module.mjs +4 -4
- package/esm2022/lib/button-group/button-toolbar/button-toolbar.component.mjs +3 -3
- package/esm2022/lib/calendar/calendar/calendar-class-view.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar/calendar.component.mjs +4 -4
- package/esm2022/lib/calendar/calendar-month/calendar-class-day.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-class-month.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-class-row.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-class-year.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-day-title.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-day.directive.mjs +4 -4
- package/esm2022/lib/calendar/calendar-month/calendar-day.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-month/calendar-month.component.mjs +4 -4
- package/esm2022/lib/calendar/calendar-month/calendar-row.directive.mjs +4 -4
- package/esm2022/lib/calendar/calendar-month/calendar-weekday.pipe.mjs +3 -3
- package/esm2022/lib/calendar/calendar-navigation/calendar-navigation.component.mjs +4 -4
- package/esm2022/lib/calendar/calendar.module.mjs +4 -4
- package/esm2022/lib/calendar/calendar.service.mjs +4 -4
- package/esm2022/lib/calendar/calendar.utils.mjs +1 -1
- package/esm2022/lib/callout/callout.component.mjs +3 -3
- package/esm2022/lib/callout/callout.module.mjs +4 -4
- package/esm2022/lib/card/card-body.component.mjs +3 -3
- package/esm2022/lib/card/card-footer.component.mjs +3 -3
- package/esm2022/lib/card/card-group.component.mjs +3 -3
- package/esm2022/lib/card/card-header-actions.component.mjs +3 -3
- package/esm2022/lib/card/card-header.component.mjs +3 -3
- package/esm2022/lib/card/card-img-overlay/card-img-overlay.component.mjs +3 -3
- package/esm2022/lib/card/card-img.directive.mjs +3 -3
- package/esm2022/lib/card/card-link.directive.mjs +3 -3
- package/esm2022/lib/card/card-subtitle.directive.mjs +3 -3
- package/esm2022/lib/card/card-text.directive.mjs +3 -3
- package/esm2022/lib/card/card-title.directive.mjs +3 -3
- package/esm2022/lib/card/card.component.mjs +3 -3
- package/esm2022/lib/card/card.module.mjs +4 -4
- package/esm2022/lib/carousel/carousel/carousel.component.mjs +4 -4
- package/esm2022/lib/carousel/carousel-caption/carousel-caption.component.mjs +3 -3
- package/esm2022/lib/carousel/carousel-control/carousel-control.component.mjs +4 -4
- package/esm2022/lib/carousel/carousel-indicators/carousel-indicators.component.mjs +4 -4
- package/esm2022/lib/carousel/carousel-inner/carousel-inner.component.mjs +4 -4
- package/esm2022/lib/carousel/carousel-item/carousel-item.component.mjs +4 -4
- package/esm2022/lib/carousel/carousel-state.mjs +4 -4
- package/esm2022/lib/carousel/carousel.config.mjs +3 -3
- package/esm2022/lib/carousel/carousel.module.mjs +4 -4
- package/esm2022/lib/carousel/carousel.service.mjs +3 -3
- package/esm2022/lib/collapse/collapse.directive.mjs +4 -4
- package/esm2022/lib/collapse/collapse.module.mjs +4 -4
- package/esm2022/lib/date-picker/date-picker.component.mjs +7 -7
- package/esm2022/lib/date-picker/date-picker.module.mjs +4 -4
- package/esm2022/lib/date-range-picker/date-range-picker/custom-range-key.pipe.mjs +3 -3
- package/esm2022/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +4 -4
- package/esm2022/lib/date-range-picker/date-range-picker.module.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown/dropdown.component.mjs +7 -7
- package/esm2022/lib/dropdown/dropdown-close/dropdown-close.directive.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown-divider/dropdown-divider.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-header/dropdown-header.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-item/dropdown-item-plain.directive.mjs +3 -3
- package/esm2022/lib/dropdown/dropdown-item/dropdown-item.directive.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown-menu/dropdown-menu.directive.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown.module.mjs +4 -4
- package/esm2022/lib/dropdown/dropdown.service.mjs +3 -3
- package/esm2022/lib/element-cover/element-cover.component.mjs +4 -4
- package/esm2022/lib/element-cover/element-cover.module.mjs +4 -4
- package/esm2022/lib/footer/footer.component.mjs +3 -3
- package/esm2022/lib/footer/footer.module.mjs +4 -4
- package/esm2022/lib/form/form/form.directive.mjs +3 -3
- package/esm2022/lib/form/form-check/form-check-input.directive.mjs +4 -4
- package/esm2022/lib/form/form-check/form-check-label.directive.mjs +3 -3
- package/esm2022/lib/form/form-check/form-check.component.mjs +3 -3
- package/esm2022/lib/form/form-control/form-control.directive.mjs +4 -4
- package/esm2022/lib/form/form-feedback/form-feedback.component.mjs +3 -3
- package/esm2022/lib/form/form-floating/form-floating.directive.mjs +3 -3
- package/esm2022/lib/form/form-label/form-label.directive.mjs +3 -3
- package/esm2022/lib/form/form-select/form-select.directive.mjs +3 -3
- package/esm2022/lib/form/form-text/form-text.directive.mjs +3 -3
- package/esm2022/lib/form/form.module.mjs +4 -4
- package/esm2022/lib/form/input-group/input-group.component.mjs +3 -3
- package/esm2022/lib/form/input-group-text/input-group-text.directive.mjs +3 -3
- package/esm2022/lib/grid/col.component.mjs +3 -3
- package/esm2022/lib/grid/col.directive.mjs +4 -4
- package/esm2022/lib/grid/container.component.mjs +3 -3
- package/esm2022/lib/grid/grid.module.mjs +4 -4
- package/esm2022/lib/grid/gutter.directive.mjs +4 -4
- package/esm2022/lib/grid/row.component.mjs +3 -3
- package/esm2022/lib/grid/row.directive.mjs +4 -4
- package/esm2022/lib/header/header/header.component.mjs +3 -3
- package/esm2022/lib/header/header-brand/header-brand.component.mjs +3 -3
- package/esm2022/lib/header/header-divider/header-divider.component.mjs +3 -3
- package/esm2022/lib/header/header-nav/header-nav.component.mjs +3 -3
- package/esm2022/lib/header/header-text/header-text.component.mjs +3 -3
- package/esm2022/lib/header/header-toggler/header-toggler.directive.mjs +4 -4
- package/esm2022/lib/header/header.module.mjs +4 -4
- package/esm2022/lib/image/img.directive.mjs +3 -3
- package/esm2022/lib/image/img.module.mjs +4 -4
- package/esm2022/lib/list-group/list-group-item.directive.mjs +3 -3
- package/esm2022/lib/list-group/list-group.directive.mjs +3 -3
- package/esm2022/lib/list-group/list-group.module.mjs +4 -4
- package/esm2022/lib/loading-button/loading-button.component.mjs +4 -4
- package/esm2022/lib/loading-button/loading-button.module.mjs +4 -4
- package/esm2022/lib/modal/modal/modal.component.mjs +4 -4
- package/esm2022/lib/modal/modal-body/modal-body.component.mjs +3 -3
- package/esm2022/lib/modal/modal-content/modal-content.component.mjs +3 -3
- package/esm2022/lib/modal/modal-dialog/modal-dialog.component.mjs +3 -3
- package/esm2022/lib/modal/modal-dismiss/modal-toggle.directive.mjs +3 -3
- package/esm2022/lib/modal/modal-footer/modal-footer.component.mjs +3 -3
- package/esm2022/lib/modal/modal-header/modal-header.component.mjs +3 -3
- package/esm2022/lib/modal/modal-title/modal-title.directive.mjs +3 -3
- package/esm2022/lib/modal/modal.module.mjs +4 -4
- package/esm2022/lib/modal/modal.service.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select/multi-select-search.directive.mjs +4 -4
- package/esm2022/lib/multi-select/multi-select/multi-select.component.mjs +4 -4
- package/esm2022/lib/multi-select/multi-select-native-select/multi-select-native-select.component.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup-label.component.mjs +3 -3
- package/esm2022/lib/multi-select/multi-select-optgroup/multi-select-optgroup.component.mjs +4 -4
- package/esm2022/lib/multi-select/multi-select-option/multi-select-option.component.mjs +4 -4
- package/esm2022/lib/multi-select/multi-select-tag/multi-select-tag.component.mjs +4 -4
- package/esm2022/lib/multi-select/multi-select.module.mjs +4 -4
- package/esm2022/lib/multi-select/multi-select.service.mjs +3 -3
- package/esm2022/lib/nav/nav-item.component.mjs +3 -3
- package/esm2022/lib/nav/nav-link.directive.mjs +3 -3
- package/esm2022/lib/nav/nav.component.mjs +3 -3
- package/esm2022/lib/nav/nav.module.mjs +4 -4
- package/esm2022/lib/navbar/navbar-brand/navbar-brand.directive.mjs +3 -3
- package/esm2022/lib/navbar/navbar-nav/navbar-nav.component.mjs +3 -3
- package/esm2022/lib/navbar/navbar-text/navbar-text.component.mjs +3 -3
- package/esm2022/lib/navbar/navbar-toggler/navbar-toggler.directive.mjs +4 -4
- package/esm2022/lib/navbar/navbar.component.mjs +4 -4
- package/esm2022/lib/navbar/navbar.module.mjs +4 -4
- package/esm2022/lib/offcanvas/offcanvas/offcanvas.component.mjs +4 -4
- package/esm2022/lib/offcanvas/offcanvas-body/offcanvas-body.component.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas-header/offcanvas-header.component.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas-title/offcanvas-title.directive.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas-toggle/offcanvas-toggle.directive.mjs +3 -3
- package/esm2022/lib/offcanvas/offcanvas.module.mjs +4 -4
- package/esm2022/lib/offcanvas/offcanvas.service.mjs +3 -3
- package/esm2022/lib/pagination/page-item/page-item.component.mjs +3 -3
- package/esm2022/lib/pagination/page-item/page-item.directive.mjs +4 -4
- package/esm2022/lib/pagination/page-link/page-link.directive.mjs +3 -3
- package/esm2022/lib/pagination/pagination/pagination.component.mjs +3 -3
- package/esm2022/lib/pagination/pagination.module.mjs +4 -4
- package/esm2022/lib/placeholder/placeholder-animation.directive.mjs +3 -3
- package/esm2022/lib/placeholder/placeholder.directive.mjs +3 -3
- package/esm2022/lib/placeholder/placeholder.module.mjs +4 -4
- package/esm2022/lib/popover/popover/popover.component.mjs +4 -4
- package/esm2022/lib/popover/popover.directive.mjs +4 -4
- package/esm2022/lib/popover/popover.module.mjs +4 -4
- package/esm2022/lib/progress/progress-bar.component.mjs +3 -3
- package/esm2022/lib/progress/progress-bar.directive.mjs +4 -4
- package/esm2022/lib/progress/progress-stacked.component.mjs +3 -3
- package/esm2022/lib/progress/progress.component.mjs +4 -4
- package/esm2022/lib/progress/progress.module.mjs +4 -4
- package/esm2022/lib/services/class-toggle.service.mjs +4 -4
- package/esm2022/lib/services/color-mode.service.mjs +17 -26
- package/esm2022/lib/services/in-memory-storage.service.mjs +3 -3
- package/esm2022/lib/services/intersection.service.mjs +4 -4
- package/esm2022/lib/services/listeners.service.mjs +4 -4
- package/esm2022/lib/services/local-storage.service.mjs +3 -3
- package/esm2022/lib/services/public_api.mjs +1 -1
- package/esm2022/lib/shared/html-attr.directive.mjs +4 -4
- package/esm2022/lib/shared/shared.module.mjs +4 -4
- package/esm2022/lib/shared/template-id.directive.mjs +3 -3
- package/esm2022/lib/shared/theme.directive.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar/sidebar.component.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar-backdrop/sidebar-backdrop.service.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar-brand/sidebar-brand.component.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar-footer/sidebar-footer.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-badge.pipe.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-divider.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-group.service.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-icon.pipe.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-item-class.pipe.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-label.component.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.component.mjs +7 -7
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-link.pipe.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav-title.component.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.component.mjs +7 -7
- package/esm2022/lib/sidebar/sidebar-nav/sidebar-nav.service.mjs +7 -7
- package/esm2022/lib/sidebar/sidebar-toggle/sidebar-toggle.directive.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar-toggler/sidebar-toggler.directive.mjs +3 -3
- package/esm2022/lib/sidebar/sidebar.module.mjs +4 -4
- package/esm2022/lib/sidebar/sidebar.service.mjs +3 -3
- package/esm2022/lib/smart-pagination/smart-pagination.component.mjs +4 -4
- package/esm2022/lib/smart-pagination/smart-pagination.module.mjs +4 -4
- package/esm2022/lib/smart-table/smart-table/smart-table.component.mjs +4 -4
- package/esm2022/lib/smart-table/smart-table-column-filter/smart-table-column-filter.component.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-filter/filter-input.directive.mjs +4 -4
- package/esm2022/lib/smart-table/smart-table-filter/smart-table-filter.component.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-head/smart-table-column-label.pipe.mjs +3 -3
- package/esm2022/lib/smart-table/smart-table-head/smart-table-head.component.mjs +4 -4
- package/esm2022/lib/smart-table/smart-table-items-per-page-selector/smart-table-items-per-page-selector.component.mjs +4 -4
- package/esm2022/lib/smart-table/smart-table.module.mjs +4 -4
- package/esm2022/lib/smart-table/smart-table.type.mjs +1 -1
- package/esm2022/lib/smart-table/smart-table.utils.mjs +1 -1
- package/esm2022/lib/spinner/spinner.component.mjs +3 -3
- package/esm2022/lib/spinner/spinner.module.mjs +4 -4
- package/esm2022/lib/table/table-active.directive.mjs +3 -3
- package/esm2022/lib/table/table-color.directive.mjs +3 -3
- package/esm2022/lib/table/table.directive.mjs +4 -4
- package/esm2022/lib/table/table.module.mjs +4 -4
- package/esm2022/lib/tabs/tab-content/tab-content.component.mjs +4 -4
- package/esm2022/lib/tabs/tab-content-ref.directive.mjs +4 -4
- package/esm2022/lib/tabs/tab-pane/tab-pane.component.mjs +4 -4
- package/esm2022/lib/tabs/tab.service.mjs +3 -3
- package/esm2022/lib/tabs/tabs.module.mjs +4 -4
- package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-am-pm.component.mjs +7 -7
- package/esm2022/lib/time-picker/time-picker-roll-col/time-picker-roll-col.component.mjs +7 -7
- package/esm2022/lib/time-picker/time-picker.component.mjs +4 -4
- package/esm2022/lib/time-picker/time-picker.module.mjs +4 -4
- package/esm2022/lib/time-picker/time.utils.mjs +1 -1
- package/esm2022/lib/toast/toast/toast.component.mjs +4 -4
- package/esm2022/lib/toast/toast-body/toast-body.component.mjs +3 -3
- package/esm2022/lib/toast/toast-close.directive.mjs +3 -3
- package/esm2022/lib/toast/toast-header/toast-header.component.mjs +3 -3
- package/esm2022/lib/toast/toast.module.mjs +4 -4
- package/esm2022/lib/toast/toaster/toaster-host.directive.mjs +3 -3
- package/esm2022/lib/toast/toaster/toaster.component.mjs +4 -4
- package/esm2022/lib/toast/toaster/toaster.service.mjs +3 -3
- package/esm2022/lib/tooltip/tooltip/tooltip.component.mjs +4 -4
- package/esm2022/lib/tooltip/tooltip.directive.mjs +4 -4
- package/esm2022/lib/tooltip/tooltip.module.mjs +4 -4
- package/esm2022/lib/utilities/align.directive.mjs +3 -3
- package/esm2022/lib/utilities/bg-color.directive.mjs +3 -3
- package/esm2022/lib/utilities/border.directive.mjs +4 -4
- package/esm2022/lib/utilities/rounded.directive.mjs +4 -4
- package/esm2022/lib/utilities/shadow-on-scroll.directive.mjs +4 -4
- package/esm2022/lib/utilities/text-color.directive.mjs +3 -3
- package/esm2022/lib/utilities/utilities.module.mjs +4 -4
- package/esm2022/lib/widget/widget-stat-a/widget-stat-a.component.mjs +3 -3
- package/esm2022/lib/widget/widget-stat-b/widget-stat-b.component.mjs +3 -3
- package/esm2022/lib/widget/widget-stat-c/widget-stat-c.component.mjs +3 -3
- package/esm2022/lib/widget/widget-stat-d/widget-stat-d.component.mjs +3 -3
- package/esm2022/lib/widget/widget-stat-e/widget-stat-e.component.mjs +3 -3
- package/esm2022/lib/widget/widget-stat-f/widget-stat-f.component.mjs +3 -3
- package/esm2022/lib/widget/widget.module.mjs +4 -4
- package/fesm2022/coreui-angular-pro.mjs +836 -844
- package/fesm2022/coreui-angular-pro.mjs.map +1 -1
- package/lib/services/color-mode.service.d.ts +4 -2
- package/lib/services/public_api.d.ts +1 -1
- package/lib/smart-table/smart-table.type.d.ts +1 -1
- package/lib/smart-table/smart-table.utils.d.ts +1 -1
- package/package.json +1 -1
|
@@ -447,10 +447,10 @@ export class CalendarMonthComponent {
|
|
|
447
447
|
getYearEnd(year) {
|
|
448
448
|
return new Date(year, 11, 1, 0, 0, -1, 0);
|
|
449
449
|
}
|
|
450
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0
|
|
451
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.0
|
|
450
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalendarMonthComponent, deps: [{ token: i1.CalendarService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
451
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "17.1.0", type: CalendarMonthComponent, isStandalone: true, selector: "c-calendar-month", inputs: { addMonths: "addMonths", startDate: "startDate", endDate: "endDate", disabledDates: "disabledDates", firstDayOfWeek: ["firstDayOfWeek", "firstDayOfWeek", numberAttribute], locale: "locale", range: ["range", "range", booleanAttribute], weekdayFormat: "weekdayFormat", view: "view", maxDate: "maxDate", minDate: "minDate", calendarDate: "calendarDate" }, viewQueries: [{ propertyName: "calendarDays", predicate: CalendarDayDirective, descendants: true }, { propertyName: "calendarRows", predicate: CalendarRowDirective, descendants: true }], exportAs: ["cCalendarMonth"], ngImport: i0, template: "<table>\n <thead *ngIf=\"view === 'days'\">\n <tr>\n <th *ngIf=\"showWeekNumber\" class=\"calendar-cell\">\n <div class=\"calendar-header-cell-inner\">{{ weekNumbersLabel }}</div>\n </th>\n <th *ngFor=\"let weekDay of weekDays; index as i; count as cnt\" class=\"calendar-cell\">\n <div class=\"calendar-header-cell-inner\">\n {{ weekDay.date | calendarWeekday:weekdayFormat:locale }}\n </div>\n </th>\n </tr>\n </thead>\n <tbody (mouseleave)=\"handleCellMouseLeave()\" [ngSwitch]=\"view\">\n <ng-container *ngSwitchCase=\"'years'\">\n <tr *ngFor=\"let yearsRow of listOfYears(); index as rowIdx\">\n <td\n #calendarYear=\"cCalendarDay\"\n (click)=\"!calendarYear.disabled$() && handleYearCellClick(year)\"\n (keydown)=\"calendarYear.date && handleDayCellKeyDown($event, calendarYear.date)\"\n (keyup)=\"handleYearCellKeyUp($event, calendarYear.date)\"\n (mouseenter)=\"calendarYear.date && handleCellMouseEnter(calendarYear.date)\"\n *ngFor=\"let year of yearsRow; index as idx\"\n [attr.aria-label]=\"calendarYear.date.getFullYear()\"\n [date]=\"getYearStart(year)\"\n [ngClass]=\"year | calendarClassYear\"\n [tabindex]=\"calendarYear.disabled$() ? -1 : 0\"\n cCalendarDay\n >\n <div class=\"calendar-cell-inner\">\n {{ yearNumber(year) }}\n </div>\n </td>\n </tr>\n </ng-container>\n <ng-container *ngSwitchCase=\"'months'\">\n <tr *ngFor=\"let monthsRow of listOfMonths(); index as rowIdx\">\n <td\n #calendarMonth=\"cCalendarDay\"\n (click)=\"!calendarMonth.disabled$() && handleMonthCellClick(calendarMonth.date)\"\n (keydown)=\"calendarMonth.date && handleDayCellKeyDown($event, calendarMonth.date)\"\n (keyup)=\"handleMonthCellKeyUp($event, calendarMonth.date)\"\n (mouseenter)=\"calendarMonth.date && handleCellMouseEnter(calendarMonth.date)\"\n *ngFor=\"let month of monthsRow; index as idx\"\n [attr.aria-label]=\"calendarMonth.date.getFullYear()+' '+month.month\"\n [date]=\"getMonthStart(rowIdx*3+idx)\"\n [ngClass]=\"calendarDate | calendarClassMonth:(rowIdx*3+idx)\"\n [tabindex]=\"calendarMonth.disabled$() ? -1 : 0\"\n cCalendarDay\n >\n <div class=\"calendar-cell-inner\">\n {{ month.month }}\n </div>\n </td>\n </tr>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <tr #calendarRow=\"cCalendarRow\"\n (click)=\"selectionType === 'week' && (calendarRow.current) && calendarRow.date && handleDayCellClick(calendarRow.date)\"\n (keydown)=\"selectionType === 'week' && (calendarRow.current) && calendarRow.date && handleDayCellKeyDown($event, calendarRow.date)\"\n (keyup)=\"selectionType === 'week' && (calendarRow.current) && calendarRow.date && handleDayCellKeyUp($event, calendarRow.date)\"\n (mouseenter)=\"selectionType === 'week' && calendarRow.date && handleCellMouseEnter(calendarRow.date)\"\n *ngFor=\"let week of monthDetails; index as i\"\n [cCalendarRow]=\"week\"\n >\n <th *ngIf=\"showWeekNumber\" class=\"calendar-cell-week-number\">\n {{week.weekNumber === 0 ? 53 : week.weekNumber}}\n </th>\n <ng-container *ngFor=\"let dateObj of week.days; index as idx\">\n <td #calendarCell=\"cCalendarDay\"\n (click)=\"selectionType === 'day' && (dateObj.month === 'current' || selectAdjacentDays) && handleDayCellClick(dateObj.date)\"\n (keydown)=\"selectionType === 'day' && (dateObj.month === 'current' || selectAdjacentDays) && handleDayCellKeyDown($event, dateObj.date)\"\n (keyup)=\"selectionType === 'day' && (dateObj.month === 'current' || selectAdjacentDays) && handleDayCellKeyUp($event, dateObj.date)\"\n (mouseenter)=\"selectionType === 'day' && (dateObj.month === 'current' || selectAdjacentDays) && handleCellMouseEnter(dateObj.date)\"\n *ngIf=\"(dateObj.month === 'current' || showAdjacentDays); else emptyCell\"\n [attr.aria-label]=\"dateObj.date | calendarDayTitle:locale\"\n [date]=\"dateObj.date\"\n [month]=\"dateObj.month\"\n [ngClass]=\"dateObj | calendarClassDay:{minDate, maxDate, disabledDates, dateFilter}\"\n [tabindex]=\"selectionType === 'day' && (dateObj.month === 'current' || selectAdjacentDays) && !isDateDisabled(dateObj.date) ? 0 : -1\"\n cCalendarDay\n >\n <div class=\"calendar-cell-inner\">\n {{ dateObj.date | calendarDay:dayFormat:locale }}\n </div>\n </td>\n <ng-template #emptyCell>\n <td class=\"calendar-cell\"></td>\n </ng-template>\n </ng-container>\n </tr>\n </ng-container>\n </tbody>\n</table>\n\n", styles: [".btn-transparent:focus-visible{outline:-webkit-focus-ring-color auto 1px}.calendar-row:focus-visible{box-shadow:var(--cui-calendar-cell-focus-box-shadow);border-radius:.375rem}.calendar-row:focus-within:not([tabindex=\"-1\"]){outline:0;box-shadow:var(--cui-calendar-cell-focus-box-shadow);border-radius:.375rem;outline-style:auto!important}.calendar-row:focus:not([tabindex=\"-1\"]){outline:0;box-shadow:var(--cui-calendar-cell-focus-box-shadow);border-radius:.375rem;outline-style:auto!important}.calendar-cell:focus:not(:focus-visible):not([tabindex=\"-1\"]){box-shadow:var(--cui-calendar-cell-focus-box-shadow);border-radius:.375rem}\n"], dependencies: [{ kind: "directive", type: CalendarDayDirective, selector: "[cCalendarDay]", inputs: ["date", "disabled", "month", "calendarDate"], exportAs: ["cCalendarDay"] }, { kind: "pipe", type: CalendarDayPipe, name: "calendarDay" }, { kind: "pipe", type: CalendarDayTitlePipe, name: "calendarDayTitle" }, { kind: "directive", type: CalendarRowDirective, selector: "[cCalendarRow]", inputs: ["cCalendarRow"], exportAs: ["cCalendarRow"] }, { kind: "pipe", type: CalendarClassDayPipe, name: "calendarClassDay" }, { kind: "pipe", type: CalendarClassMonthPipe, name: "calendarClassMonth" }, { kind: "pipe", type: CalendarClassYearPipe, name: "calendarClassYear" }, { kind: "pipe", type: CalendarWeekdayPipe, name: "calendarWeekday" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }] }); }
|
|
452
452
|
}
|
|
453
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0
|
|
453
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalendarMonthComponent, decorators: [{
|
|
454
454
|
type: Component,
|
|
455
455
|
args: [{ selector: 'c-calendar-month', exportAs: 'cCalendarMonth', standalone: true, imports: [
|
|
456
456
|
CalendarDayDirective,
|
|
@@ -503,4 +503,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImpor
|
|
|
503
503
|
type: ViewChildren,
|
|
504
504
|
args: [CalendarRowDirective]
|
|
505
505
|
}] } });
|
|
506
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbW9udGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci1tb250aC9jYWxlbmRhci1tb250aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLW1vbnRoL2NhbGVuZGFyLW1vbnRoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBR2YsTUFBTSxFQUNOLFlBQVksRUFFYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixjQUFjLEVBQ2QsUUFBUSxFQUNSLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLE9BQU8sRUFDUixNQUFNLG1CQUFtQixDQUFDO0FBRzNCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JF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LEVBQUUsZUFBZSxFQUFFO2dCQU9qQyxNQUFNO3NCQURULEtBQUs7Z0JBaUJrQyxLQUFLO3NCQUE1QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU83QixhQUFhO3NCQUFyQixLQUFLO2dCQVFGLElBQUk7c0JBRFAsS0FBSztnQkFlRixPQUFPO3NCQURWLEtBQUs7Z0JBZUYsT0FBTztzQkFEVixLQUFLO2dCQXFCRixZQUFZO3NCQURmLEtBQUs7Z0JBZ0I4QixZQUFZO3NCQUEvQyxZQUFZO3VCQUFDLG9CQUFvQjtnQkFDRSxZQUFZO3NCQUEvQyxZQUFZO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIERlc3Ryb3lSZWYsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgT25Jbml0LFxuICBRdWVyeUxpc3QsXG4gIHNpZ25hbCxcbiAgVmlld0NoaWxkcmVuLFxuICBXcml0YWJsZVNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdGb3JPZiwgTmdJZiwgTmdTd2l0Y2gsIE5nU3dpdGNoQ2FzZSwgTmdTd2l0Y2hEZWZhdWx0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIGNvbnZlcnRUb0RhdGVPYmplY3QsXG4gIGNyZWF0ZUdyb3Vwc0luQXJyYXksXG4gIGdldE1vbnRoRGV0YWlscyxcbiAgZ2V0TW9udGhzTmFtZXMsXG4gIGdldFllYXJzLFxuICBpc0RhdGVCZXR3ZWVuTWluTWF4LFxuICBpc0RhdGVEaXNhYmxlZCxcbiAgaXNEYXRlSW5SYW5nZURpc2FibGVkLFxuICB0cnlEYXRlXG59IGZyb20gJy4uL2NhbGVuZGFyLnV0aWxzJztcblxuaW1wb3J0IHsgQ2FsZW5kYXJTZXJ2aWNlLCBEYXRlRmlsdGVyVHlwZSwgRGF5Rm9ybWF0VHlwZSwgU2VsZWN0aW9uVHlwZSwgV2Vla2RheUZvcm1hdFR5cGUgfSBmcm9tICcuLi9jYWxlbmRhci5zZXJ2aWNlJztcbmltcG9ydCB7IENhbGVuZGFyV2Vla2RheVBpcGUgfSBmcm9tICcuL2NhbGVuZGFyLXdlZWtkYXkucGlwZSc7XG5pbXBvcnQgeyBDYWxlbmRhckNsYXNzWWVhclBpcGUgfSBmcm9tICcuL2NhbGVuZGFyLWNsYXNzLXllYXIucGlwZSc7XG5pbXBvcnQgeyBDYWxlbmRhckNsYXNzTW9udGhQaXBlIH0gZnJvbSAnLi9jYWxlbmRhci1jbGFzcy1tb250aC5waXBlJztcbmltcG9ydCB7IENhbGVuZGFyRGF5UGlwZSB9IGZyb20gJy4vY2FsZW5kYXItZGF5LnBpcGUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXlEaXJlY3RpdmUgfSBmcm9tICcuL2NhbGVuZGFyLWRheS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXlUaXRsZVBpcGUgfSBmcm9tICcuL2NhbGVuZGFyLWRheS10aXRsZS5waXBlJztcbmltcG9ydCB7IENhbGVuZGFyQ2xhc3NEYXlQaXBlIH0gZnJvbSAnLi9jYWxlbmRhci1jbGFzcy1kYXkucGlwZSc7XG5pbXBvcnQgeyBDYWxlbmRhckNsYXNzUm93UGlwZSB9IGZyb20gJy4vY2FsZW5kYXItY2xhc3Mtcm93LnBpcGUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJSb3dEaXJlY3RpdmUgfSBmcm9tICcuL2NhbGVuZGFyLXJvdy5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLWNhbGVuZGFyLW1vbnRoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLW1vbnRoLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXItbW9udGguY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjQ2FsZW5kYXJNb250aCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDYWxlbmRhckRheURpcmVjdGl2ZSxcbiAgICBDYWxlbmRhckRheVBpcGUsXG4gICAgQ2FsZW5kYXJEYXlUaXRsZVBpcGUsXG4gICAgQ2FsZW5kYXJSb3dEaXJlY3RpdmUsXG4gICAgQ2FsZW5kYXJDbGFzc0RheVBpcGUsXG4gICAgQ2FsZW5kYXJDbGFzc01vbnRoUGlwZSxcbiAgICBDYWxlbmRhckNsYXNzUm93UGlwZSxcbiAgICBDYWxlbmRhckNsYXNzWWVhclBpcGUsXG4gICAgQ2FsZW5kYXJXZWVrZGF5UGlwZSxcbiAgICBOZ0NsYXNzLFxuICAgIE5nRm9yT2YsXG4gICAgTmdJZixcbiAgICBOZ1N3aXRjaCxcbiAgICBOZ1N3aXRjaENhc2UsXG4gICAgTmdTd2l0Y2hEZWZhdWx0LFxuICAgIEFzeW5jUGlwZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyTW9udGhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2FsZW5kYXJTZXJ2aWNlOiBDYWxlbmRhclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jYWxlbmRhclN0YXRlU3Vic2NyaWJlKCk7XG4gIH1cblxuICBASW5wdXQoKSBhZGRNb250aHM6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgc2VsZWN0ZWQgZGF0ZS5cbiAgICogQHR5cGUgIChEYXRlIHwgbnVsbClcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzdGFydERhdGUodmFsdWU6IERhdGUgfCBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgZGF0ZSA9ICEhdmFsdWUgPyB0cnlEYXRlKHZhbHVlLCAnc3RhcnREYXRlJykgOiBudWxsO1xuICAgIGlmICh0aGlzLl9zdGFydERhdGU/LmdldFRpbWUoKSAhPT0gZGF0ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLl9zdGFydERhdGUgPSBkYXRlO1xuICAgICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgc3RhcnREYXRlOiB0aGlzLl9zdGFydERhdGUgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHN0YXJ0RGF0ZSgpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIDxEYXRlIHwgbnVsbD50aGlzLl9zdGFydERhdGU7XG4gIH1cblxuICBfc3RhcnREYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgc2VsZWN0ZWQgdG8gZGF0ZSAocmFuZ2UpLlxuICAgKiBAdHlwZSAgRGF0ZSB8IG51bGxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBlbmREYXRlKHZhbHVlOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGRhdGUgPSAhIXZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ2VuZERhdGUnKSA6IG51bGw7XG4gICAgaWYgKHRoaXMuX2VuZERhdGU/LmdldFRpbWUoKSAhPT0gZGF0ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLl9lbmREYXRlID0gZGF0ZTtcbiAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGVuZERhdGU6IHRoaXMuX2VuZERhdGUgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGVuZERhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VuZERhdGU7XG4gIH1cblxuICBfZW5kRGF0ZTogKERhdGUgfCBudWxsKSA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGxpc3Qgb2YgZGF0ZXMgdGhhdCBjYW5ub3QgYmUgc2VsZWN0ZWQuXG4gICAqIEB0eXBlICBEYXRlW10gfCBEYXRlW11bXVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGRpc2FibGVkRGF0ZXModmFsdWU6IERhdGVbXSB8IERhdGVbXVtdKSB7XG4gICAgdGhpcy5fZGlzYWJsZWREYXRlcyA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVkRGF0ZXMoKTogRGF0ZVtdIHwgRGF0ZVtdW10ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZERhdGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWREYXRlczogKERhdGVbXSB8IERhdGVbXVtdKSA9IFtdO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkYXkgb2Ygc3RhcnQgd2Vlay5cbiAgICogLSAwIC0gU3VuZGF5LFxuICAgKiAtIDEgLSBNb25kYXksXG4gICAqIC0gMiAtIFR1ZXNkYXksXG4gICAqIC0gMyAtIFdlZG5lc2RheSxcbiAgICogLSA0IC0gVGh1cnNkYXksXG4gICAqIC0gNSAtIEZyaWRheSxcbiAgICogLSA2IC0gU2F0dXJkYXksXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBmaXJzdERheU9mV2VlazogbnVtYmVyID0gMTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVmYXVsdCBsb2NhbGUgZm9yIGNvbXBvbmVudHMuIElmIG5vdCBzZXQsIGl0IGlzIGluaGVyaXRlZCBmcm9tIHRoZSBicm93c2VyLlxuICAgKiBAZGVmYXVsdCAnZGVmYXVsdCdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBsb2NhbGUodmFsdWUpIHtcbiAgICB0aGlzLiNsb2NhbGUuc2V0KHZhbHVlKTtcbiAgICAvLyB0aGlzLmxpc3RPZk1vbnRocyA9IGNyZWF0ZUdyb3Vwc0luQXJyYXkoZ2V0TW9udGhzTmFtZXModmFsdWUpLCA0KTtcbiAgfVxuXG4gIGdldCBsb2NhbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2xvY2FsZSgpO1xuICB9XG5cbiAgI2xvY2FsZSA9IHNpZ25hbCgnZGVmYXVsdCcpO1xuXG4gIC8qKlxuICAgKiBBbGxvdyByYW5nZSBzZWxlY3Rpb24uXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTZXQgbGVuZ3RoIG9yIGZvcm1hdCBvZiBkYXkgbmFtZS5cbiAgICogQHR5cGUgbnVtYmVyIHwgJ2xvbmcnIHwgJ25hcnJvdycgfCAnc2hvcnQnXG4gICAqIEBkZWZhdWx0ICdzaG9ydCdcbiAgICovXG4gIEBJbnB1dCgpIHdlZWtkYXlGb3JtYXQ6IFdlZWtkYXlGb3JtYXRUeXBlID0gJ3Nob3J0JztcblxuICAvKipcbiAgICogU2V0IGNhbGVuZGFyIHZpZXcuXG4gICAqIEB0eXBlICdkYXlzJyB8ICdtb250aHMnIHwgJ3llYXJzJ1xuICAgKiBAZGVmYXVsdCAnZGF5cydcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCB2aWV3KHZhbHVlKSB7XG4gICAgdGhpcy4jdmlldy5zZXQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHZpZXcoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3ZpZXcoKTtcbiAgfVxuXG4gICN2aWV3ID0gc2lnbmFsPCdkYXlzJyB8ICdtb250aHMnIHwgJ3llYXJzJz4oJ2RheXMnKTtcblxuICAvKipcbiAgICogTWF4IHNlbGVjdGFibGUgZGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBtYXhEYXRlKHZhbHVlOiBEYXRlIHwgbnVsbCkge1xuICAgIHRoaXMuX21heERhdGUgPSB2YWx1ZSA/IHRyeURhdGUodmFsdWUsICdtYXhEYXRlJykgOiBudWxsO1xuICB9XG5cbiAgZ2V0IG1heERhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21heERhdGU7XG4gIH1cblxuICBwcml2YXRlIF9tYXhEYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIE1pbiBzZWxlY3RhYmxlIGRhdGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgbWluRGF0ZSh2YWx1ZTogRGF0ZSB8IG51bGwpIHtcbiAgICB0aGlzLl9taW5EYXRlID0gdmFsdWUgPyB0cnlEYXRlKHZhbHVlLCAnbWluRGF0ZScpIDogbnVsbDtcbiAgfVxuXG4gIGdldCBtaW5EYXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9taW5EYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBfbWluRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIGxpc3RPZk1vbnRocyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gY3JlYXRlR3JvdXBzSW5BcnJheShnZXRNb250aHNOYW1lcyh0aGlzLiNsb2NhbGUoKSwgdGhpcy5jYWxlbmRhckRhdGUkJCgpLmdldEZ1bGxZZWFyKCkpLCA0KTtcbiAgfSk7XG4gIGxpc3RPZlllYXJzID0gY29tcHV0ZWQoKCkgPT4gY3JlYXRlR3JvdXBzSW5BcnJheShnZXRZZWFycyh0aGlzLmNhbGVuZGFyRGF0ZSQkKCkuZ2V0RnVsbFllYXIoKSksIDQpKTtcblxuICAvKipcbiAgICogRGVmYXVsdCBkYXRlIG9mIHRoZSBjb21wb25lbnRcbiAgICogQHR5cGUgRGF0ZVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGNhbGVuZGFyRGF0ZSh2YWx1ZTogKERhdGUgfCBzdHJpbmcgfCBudW1iZXIpKSB7XG4gICAgY29uc3QgX3ZhbHVlID0gbmV3IERhdGUodHJ5RGF0ZSgodmFsdWUgPz8gdGhpcy5zdGFydERhdGUpLCAnY2FsZW5kYXJEYXRlJykpO1xuICAgIGlmICghIV92YWx1ZSAmJiB0aGlzLmNhbGVuZGFyRGF0ZSQkKCkuZ2V0VGltZSgpICE9PSBfdmFsdWUuZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLmNhbGVuZGFyRGF0ZSQkLnNldChuZXcgRGF0ZShuZXcgRGF0ZShfdmFsdWUuc2V0RGF0ZSgxKSkuc2V0SG91cnMoMCwgMCwgMCwgMCkpKTtcbiAgICAgIHRoaXMuc2V0TW9udGhEZXRhaWxzKHRoaXMuZGF0ZSk7XG4gICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBjYWxlbmRhckRhdGU6IHRoaXMuY2FsZW5kYXJEYXRlJCQoKSB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgY2FsZW5kYXJEYXRlKCk6IERhdGUge1xuICAgIHJldHVybiA8RGF0ZT50aGlzLmNhbGVuZGFyRGF0ZSQkKCkgYXMgRGF0ZTtcbiAgfVxuXG4gIGNhbGVuZGFyRGF0ZSQkID0gc2lnbmFsPERhdGU+KG5ldyBEYXRlKCkpO1xuXG4gIEBWaWV3Q2hpbGRyZW4oQ2FsZW5kYXJEYXlEaXJlY3RpdmUpIGNhbGVuZGFyRGF5cyE6IFF1ZXJ5TGlzdDxDYWxlbmRhckRheURpcmVjdGl2ZT47XG4gIEBWaWV3Q2hpbGRyZW4oQ2FsZW5kYXJSb3dEaXJlY3RpdmUpIGNhbGVuZGFyUm93cyE6IFF1ZXJ5TGlzdDxDYWxlbmRhclJvd0RpcmVjdGl2ZT47XG5cbiAgZGF0ZUZpbHRlciE6IERhdGVGaWx0ZXJUeXBlO1xuXG4gIGdldCBkYXRlKCkge1xuICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmNhbGVuZGFyRGF0ZT8uZ2V0RnVsbFllYXIoKSwgdGhpcy5jYWxlbmRhckRhdGU/LmdldE1vbnRoKCkgKyB0aGlzLmFkZE1vbnRocyk7XG4gIH1cblxuICBkYXlGb3JtYXQhOiBEYXlGb3JtYXRUeXBlO1xuICBzZWxlY3RBZGphY2VudERheXMhOiBib29sZWFuO1xuICBzaG93QWRqYWNlbnREYXlzITogYm9vbGVhbjtcblxuICBzZXQgc2VsZWN0aW9uVHlwZSh2YWx1ZTogU2VsZWN0aW9uVHlwZSkge1xuICAgIHRoaXMuI3NlbGVjdGlvblR5cGUuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBzZWxlY3Rpb25UeXBlKCkge1xuICAgIHJldHVybiB0aGlzLiNzZWxlY3Rpb25UeXBlKCk7XG4gIH1cblxuICAjc2VsZWN0aW9uVHlwZTogV3JpdGFibGVTaWduYWw8U2VsZWN0aW9uVHlwZT4gPSBzaWduYWwoJ21vbnRoJyk7XG5cbiAgc2hvd1dlZWtOdW1iZXI6IGJvb2xlYW4gPSB0cnVlO1xuICAvLyBzZXQgc2hvd1dlZWtOdW1iZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgLy8gICB0aGlzLiNzaG93V2Vla051bWJlciQkLnNldCh2YWx1ZSk7XG4gIC8vIH1cbiAgLy9cbiAgLy8gZ2V0IHNob3dXZWVrTnVtYmVyKCkge1xuICAvLyAgIHJldHVybiB0aGlzLiNzaG93V2Vla051bWJlciQkKCk7XG4gIC8vIH1cbiAgLy9cbiAgLy8gI3Nob3dXZWVrTnVtYmVyJCQ6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcbiAgLy8gc2hvd1dlZWtOdW1iZXIkJCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuI3NlbGVjdGlvblR5cGUoKSA9PT0gJ3dlZWsnIHx8IHRoaXMuI3Nob3dXZWVrTnVtYmVyJCQoKSk7XG5cbiAgd2Vla051bWJlcnNMYWJlbCE6IHN0cmluZztcblxuICBwcml2YXRlIF9tb250aERldGFpbHMhOiB7IHdlZWtOdW1iZXI6IG51bWJlcjsgZGF5czogeyBkYXRlOiBEYXRlOyBtb250aDogc3RyaW5nOyB9W107IH1bXTtcblxuICBnZXQgbW9udGhEZXRhaWxzKCkge1xuICAgIHJldHVybiB0aGlzLl9tb250aERldGFpbHM7XG4gIH1cblxuICBnZXQgd2Vla0RheXMoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9udGhEZXRhaWxzWzBdLmRheXM7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldE1vbnRoRGV0YWlscyh0aGlzLmRhdGUpO1xuICB9XG5cbiAgc2V0TW9udGhEZXRhaWxzKGRhdGU6IERhdGUgPSB0aGlzLmRhdGUpIHtcbiAgICB0aGlzLl9tb250aERldGFpbHMgPSBnZXRNb250aERldGFpbHMoXG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICB0aGlzLmZpcnN0RGF5T2ZXZWVrXG4gICAgKTtcbiAgfVxuXG4gIHllYXJOdW1iZXIoeWVhcjogYW55KSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIDApLnRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmxvY2FsZSwgeyB5ZWFyOiAnbnVtZXJpYycgfSk7XG4gIH1cblxuICBpc0RhdGVEaXNhYmxlZChkYXRlOiBEYXRlKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ3llYXInKSB7XG4gICAgICBjb25zdCBtaW5EYXRlID0gdGhpcy5taW5EYXRlID8gbmV3IERhdGUodGhpcy5taW5EYXRlLmdldEZ1bGxZZWFyKCksIDAsIDEsIDAsIDAsIDAsIDApIDogbnVsbDtcbiAgICAgIGNvbnN0IG1heERhdGUgPSB0aGlzLm1heERhdGUgPyBuZXcgRGF0ZSh0aGlzLm1heERhdGUuZ2V0RnVsbFllYXIoKSwgMTEsIDMxLCAwLCAwLCAwLCAwKSA6IG51bGw7XG4gICAgICByZXR1cm4gaXNEYXRlRGlzYWJsZWQoZGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSwgdGhpcy5kaXNhYmxlZERhdGVzKSB8fCAodGhpcy5kYXRlRmlsdGVyID8gIXRoaXMuZGF0ZUZpbHRlcihkYXRlKSA6IGZhbHNlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ21vbnRoJykge1xuICAgICAgY29uc3QgbWluRGF0ZSA9IHRoaXMubWluRGF0ZSA/IG5ldyBEYXRlKHRoaXMubWluRGF0ZS5nZXRGdWxsWWVhcigpLCB0aGlzLm1pbkRhdGUuZ2V0TW9udGgoKSwgMSwgMCwgMCwgMCwgMCkgOiBudWxsO1xuICAgICAgY29uc3QgbWF4RGF0ZSA9IHRoaXMubWF4RGF0ZSA/IG5ldyBEYXRlKHRoaXMubWF4RGF0ZS5nZXRGdWxsWWVhcigpLCB0aGlzLm1heERhdGUuZ2V0TW9udGgoKSArIDEsIDEsIDAsIDAsIC0xLCAwKSA6IG51bGw7XG4gICAgICByZXR1cm4gaXNEYXRlRGlzYWJsZWQoZGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSwgdGhpcy5kaXNhYmxlZERhdGVzKSB8fCAodGhpcy5kYXRlRmlsdGVyID8gIXRoaXMuZGF0ZUZpbHRlcihkYXRlKSA6IGZhbHNlKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGF0ZURpc2FibGVkKGRhdGUsIHRoaXMubWluRGF0ZSwgdGhpcy5tYXhEYXRlLCB0aGlzLmRpc2FibGVkRGF0ZXMpIHx8ICh0aGlzLmRhdGVGaWx0ZXIgPyAhdGhpcy5kYXRlRmlsdGVyKGRhdGUpIDogZmFsc2UpO1xuICB9XG5cbiAgY2FsZW5kYXJDZWxsVGl0bGUoZGF0ZTogRGF0ZSkge1xuICAgIHJldHVybiBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmxvY2FsZSk7XG4gIH1cblxuICBoYW5kbGVDZWxsTW91c2VFbnRlcihob3ZlckRhdGU6IERhdGUpIHtcbiAgICBjb25zdCB1cGRhdGVIb3ZlclZhbHVlID0gKFsnZGF5JywgJ3dlZWsnXS5pbmNsdWRlcyh0aGlzLnNlbGVjdGlvblR5cGUpICYmIHRoaXMudmlldyA9PT0gJ2RheXMnKSB8fFxuICAgICAgWydtb250aCddLmluY2x1ZGVzKHRoaXMuc2VsZWN0aW9uVHlwZSkgJiYgdGhpcy52aWV3ID09PSAnbW9udGhzJyB8fFxuICAgICAgWyd5ZWFyJ10uaW5jbHVkZXModGhpcy5zZWxlY3Rpb25UeXBlKSAmJiB0aGlzLnZpZXcgPT09ICd5ZWFycyc7XG5cbiAgICAvLyBpZiAodXBkYXRlSG92ZXJWYWx1ZSkge1xuICAgIGNvbnN0IGhvdmVyVmFsdWUgPSB0aGlzLmlzRGF0ZURpc2FibGVkKGhvdmVyRGF0ZSkgfHwgIXVwZGF0ZUhvdmVyVmFsdWUgPyBudWxsIDogaG92ZXJEYXRlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGhvdmVyRGF0ZTogaG92ZXJWYWx1ZSB9KTtcbiAgICAvLyB9XG4gIH1cblxuICBoYW5kbGVZZWFyQ2VsbENsaWNrKHllYXI6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvblR5cGUgPT09ICd5ZWFyJykge1xuICAgICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCAwLCAxLCAwLCAwLCAwLCAwKTtcbiAgICAgIGlmICh0aGlzLnJhbmdlICYmIHRoaXMuc3RhcnREYXRlICYmICF0aGlzLmVuZERhdGUpIHtcbiAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgMTIsIDEsIDAsIDAsIC0xLCAwKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaGFuZGxlRGF5Q2VsbENsaWNrKGRhdGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjYWxlbmRhckRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCAwLCAxLCAwLCAwLCAwLCAwKTtcbiAgICB0aGlzLnZpZXcgPSAnbW9udGhzJztcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyB2aWV3OiB0aGlzLnZpZXcsIGNhbGVuZGFyRGF0ZTogY2FsZW5kYXJEYXRlIH0pO1xuXG4gIH1cblxuICBoYW5kbGVZZWFyQ2VsbEtleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCwgZGF0ZTogRGF0ZSkge1xuICAgIGlmIChbJ1NwYWNlJywgJ0VudGVyJ10uaW5jbHVkZXMoJGV2ZW50LmNvZGUpKSB7XG4gICAgICB0aGlzLmhhbmRsZVllYXJDZWxsQ2xpY2soZGF0ZS5nZXRGdWxsWWVhcigpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKFsnVGFiJywgJ0Fycm93UmlnaHQnLCAnQXJyb3dMZWZ0JywgJ0Fycm93VXAnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoJGV2ZW50LmNvZGUpKSB7XG4gICAgICB0aGlzLmhhbmRsZUNlbGxNb3VzZUVudGVyKG5ldyBEYXRlKGRhdGUpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVNb250aENlbGxLZXlVcCgkZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGRhdGU6IERhdGUpIHtcbiAgICBpZiAoWydTcGFjZScsICdFbnRlciddLmluY2x1ZGVzKCRldmVudC5jb2RlKSkge1xuICAgICAgdGhpcy5oYW5kbGVNb250aENlbGxDbGljayhkYXRlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKFsnVGFiJywgJ0Fycm93UmlnaHQnLCAnQXJyb3dMZWZ0JywgJ0Fycm93VXAnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoJGV2ZW50LmNvZGUpKSB7XG4gICAgICB0aGlzLmhhbmRsZUNlbGxNb3VzZUVudGVyKGRhdGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZU1vbnRoQ2VsbENsaWNrKHZhbHVlOiBEYXRlKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ21vbnRoJykge1xuICAgICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZS5nZXRGdWxsWWVhcigpLCB2YWx1ZS5nZXRNb250aCgpLCAxLCAwLCAwLCAwLCAwKTtcbiAgICAgIGlmICh0aGlzLnJhbmdlICYmIHRoaXMuc3RhcnREYXRlICYmICF0aGlzLmVuZERhdGUpIHtcbiAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpICsgMSwgMSwgMCwgMCwgLTEsIDApO1xuICAgICAgfVxuICAgICAgdGhpcy5oYW5kbGVEYXlDZWxsQ2xpY2soZGF0ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UoMCwgMCwgdmFsdWUuZ2V0TW9udGgoKSAtIHRoaXMuYWRkTW9udGhzKTtcbiAgICB0aGlzLnZpZXcgPSAnZGF5cyc7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgdmlldzogdGhpcy52aWV3IH0pO1xuICB9XG5cbiAgc2V0Q2FsZW5kYXJQYWdlKHllYXJzOiBudW1iZXIsIG1vbnRocyA9IDAsIHNldE1vbnRoPzogbnVtYmVyKSB7XG4gICAgY29uc3QgeWVhciA9IHRoaXMuZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG1vbnRoID0gdGhpcy5kYXRlLmdldE1vbnRoKCk7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxLCAwLCAwLCAwLCAwKTtcblxuICAgIHllYXJzICYmIGQuc2V0RnVsbFllYXIoZC5nZXRGdWxsWWVhcigpICsgeWVhcnMpO1xuICAgIG1vbnRocyAmJiBkLnNldE1vbnRoKGQuZ2V0TW9udGgoKSArIG1vbnRocyk7XG4gICAgdHlwZW9mIHNldE1vbnRoID09PSAnbnVtYmVyJyAmJiBkLnNldE1vbnRoKHNldE1vbnRoKTtcblxuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGNhbGVuZGFyRGF0ZTogZCB9KTtcbiAgfVxuXG4gIGhhbmRsZURheUNlbGxLZXlEb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCwgZGF0ZTogRGF0ZSkge1xuXG4gICAgaWYgKCFbJ1RhYicsICdBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCcsICdBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKCRldmVudC5jb2RlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmhhbmRsZUNlbGxNb3VzZUVudGVyKGRhdGUpO1xuXG4gICAgY29uc3QgZXZlbnRLZXkgPSAkZXZlbnQua2V5ID09PSAnVGFiJyA/ICgkZXZlbnQuc2hpZnRLZXkgPyAnQXJyb3dMZWZ0JyA6ICdBcnJvd1JpZ2h0JykgOiAkZXZlbnQua2V5O1xuXG4gICAgaWYgKHRoaXMubWF4RGF0ZSAmJiBkYXRlID49IGNvbnZlcnRUb0RhdGVPYmplY3QodGhpcy5tYXhEYXRlLCB0aGlzLnNlbGVjdGlvblR5cGUpICYmIChbJ0Fycm93UmlnaHQnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoZXZlbnRLZXkpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5taW5EYXRlICYmIGRhdGUgPD0gY29udmVydFRvRGF0ZU9iamVjdCh0aGlzLm1pbkRhdGUsIHRoaXMuc2VsZWN0aW9uVHlwZSkgJiYgKFsnQXJyb3dMZWZ0JywgJ0Fycm93VXAnXS5pbmNsdWRlcyhldmVudEtleSkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGVsZW1lbnQgPSAkZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIHRoaXMudmlldyA9PT0gJ2RheXMnICYmIGVsZW1lbnQudGFiSW5kZXggPT09IC0xKSB7XG4gICAgICBlbGVtZW50ID0gZWxlbWVudC5jbG9zZXN0KCd0clt0YWJpbmRleD1cIjBcIl0nKSBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50cyA9IFsnd2VlayddLmluY2x1ZGVzKHRoaXMuc2VsZWN0aW9uVHlwZSkgJiYgdGhpcy52aWV3ID09PSAnZGF5cycgPyB0aGlzLmNhbGVuZGFyUm93cyA6IHRoaXMuY2FsZW5kYXJEYXlzO1xuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGxpc3QgPSBlbGVtZW50cy50b0FycmF5KClcbiAgICAgIC5tYXAoY2FsZW5kYXJDZWxsID0+IGNhbGVuZGFyQ2VsbC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpXG4gICAgICAvLyAuZmlsdGVyKChlbGVtZW50KSA9PiB0aGlzLnNlbGVjdGlvblR5cGUgPT09ICd3ZWVrJyA/IGVsZW1lbnQ/LnRhYkluZGV4ID09PSAwIDogZWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCdjdXJyZW50JykpXG4gICAgICAuZmlsdGVyKChlbGVtZW50KSA9PiBlbGVtZW50Py50YWJJbmRleCA9PT0gMCk7XG5cbiAgICBjb25zdCBpbmRleCA9IGxpc3QuaW5kZXhPZihlbGVtZW50KTtcbiAgICBjb25zdCBmaXJzdCA9IGluZGV4ID09PSAwO1xuICAgIGNvbnN0IGxhc3QgPSBpbmRleCA9PT0gbGlzdC5sZW5ndGggLSAxO1xuXG4gICAgY29uc3QgdG9Cb3VuZGFyeSA9IHtcbiAgICAgIHN0YXJ0OiBpbmRleCxcbiAgICAgIGVuZDogbGlzdC5sZW5ndGggLSAoaW5kZXggKyAxKVxuICAgIH07XG5cbiAgICBjb25zdCBnYXAgPSB7XG4gICAgICBBcnJvd1JpZ2h0OiAxLFxuICAgICAgQXJyb3dMZWZ0OiAtMSxcbiAgICAgIEFycm93VXA6IHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIHRoaXMudmlldyA9PT0gJ2RheXMnID8gLTEgOiB0aGlzLnZpZXcgPT09ICdkYXlzJyA/IC03IDogLTMsXG4gICAgICBBcnJvd0Rvd246IHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIHRoaXMudmlldyA9PT0gJ2RheXMnID8gMSA6IHRoaXMudmlldyA9PT0gJ2RheXMnID8gNyA6IDNcbiAgICB9O1xuXG4gICAgaWYgKFxuICAgICAgKGV2ZW50S2V5ID09PSAnQXJyb3dSaWdodCcgJiYgbGFzdCkgfHxcbiAgICAgIChldmVudEtleSA9PT0gJ0Fycm93RG93bicgJiYgdG9Cb3VuZGFyeS5lbmQgPCBnYXAuQXJyb3dEb3duKSB8fFxuICAgICAgKGV2ZW50S2V5ID09PSAnQXJyb3dMZWZ0JyAmJiBmaXJzdCkgfHxcbiAgICAgIChldmVudEtleSA9PT0gJ0Fycm93VXAnICYmIHRvQm91bmRhcnkuc3RhcnQgPCBNYXRoLmFicyhnYXAuQXJyb3dVcCkpXG4gICAgKSB7XG5cbiAgICAgIGVsZW1lbnRzLmNoYW5nZXMucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICApLnN1YnNjcmliZSgoY2hhbmdlOiBRdWVyeUxpc3Q8Q2FsZW5kYXJSb3dEaXJlY3RpdmUgfCBDYWxlbmRhckRheURpcmVjdGl2ZT4pID0+IHtcblxuICAgICAgICBjb25zdCBfbGlzdCA9IGNoYW5nZVxuICAgICAgICAgIC50b0FycmF5KClcbiAgICAgICAgICAvLyAuZmlsdGVyKGVsZW1lbnQgPT4gdGhpcy5zZWxlY3Rpb25UeXBlID09PSAnd2VlaycgPyBlbGVtZW50Py5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGFiSW5kZXggPT09IDAgOiBlbGVtZW50Py5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjdXJyZW50JykpO1xuICAgICAgICAgIC5maWx0ZXIoZWxlbWVudCA9PiBlbGVtZW50Py5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGFiSW5kZXggPT09IDApO1xuXG4gICAgICAgIGlmIChfbGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICBsZXQgZGF5VG9Gb2N1czogQ2FsZW5kYXJEYXlEaXJlY3RpdmUgfCBDYWxlbmRhclJvd0RpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcbiAgICAgICAgICBzd2l0Y2ggKGV2ZW50S2V5KSB7XG4gICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0Jzoge1xuICAgICAgICAgICAgICBkYXlUb0ZvY3VzID0gX2xpc3RbMF07XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0Jzoge1xuICAgICAgICAgICAgICBkYXlUb0ZvY3VzID0gX2xpc3RbX2xpc3QubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzoge1xuICAgICAgICAgICAgICBkYXlUb0ZvY3VzID0gX2xpc3RbZ2FwLkFycm93RG93biAtIChsaXN0Lmxlbmd0aCAtIGluZGV4KV07XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6IHtcbiAgICAgICAgICAgICAgZGF5VG9Gb2N1cyA9IF9saXN0W19saXN0Lmxlbmd0aCAtIChNYXRoLmFicyhnYXAuQXJyb3dVcCkgKyAxIC0gKGluZGV4ICsgMSkpXTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghZGF5VG9Gb2N1cz8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdkYXlUb0ZvY3VzJywgZGF5VG9Gb2N1cz8uZGF0ZSk7XG4gICAgICAgICAgICBkYXlUb0ZvY3VzPy5mb2N1cygna2V5Ym9hcmQnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGhpcy52aWV3ID09PSAnZGF5cycpIHtcbiAgICAgICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UoMCwgWydBcnJvd1JpZ2h0JywgJ0Fycm93RG93biddLmluY2x1ZGVzKGV2ZW50S2V5KSA/IDEgOiAtMSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy52aWV3ID09PSAnbW9udGhzJykge1xuICAgICAgICB0aGlzLnNldENhbGVuZGFyUGFnZShbJ0Fycm93UmlnaHQnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoZXZlbnRLZXkpID8gMSA6IC0xKTtcbiAgICAgICAgLy8gdGhpcy5jYWxlbmRhckRheXM/LnJlc2V0KHRoaXMuY2FsZW5kYXJEYXlzLnRvQXJyYXkoKSk7XG4gICAgICAgIC8vIHRoaXMuY2FsZW5kYXJEYXlzPy5ub3RpZnlPbkNoYW5nZXMoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnZpZXcgPT09ICd5ZWFycycpIHtcbiAgICAgICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UoWydBcnJvd1JpZ2h0JywgJ0Fycm93RG93biddLmluY2x1ZGVzKGV2ZW50S2V5KSA/IDEyIDogLTEyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBuZXh0RWxlbWVudCA9IGxpc3RbaW5kZXggKyBnYXBbZXZlbnRLZXldXTtcbiAgICBpZiAobmV4dEVsZW1lbnQ/LnRhYkluZGV4ID09PSAwKSB7XG4gICAgICBuZXh0RWxlbWVudC5mb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSBpbmRleDsgaSA8IGxpc3QubGVuZ3RoOyBsaXN0Lmxlbmd0aCAmJiBbJ0Fycm93UmlnaHQnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoZXZlbnRLZXkpID8gaSsrIDogaS0tKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjb25zdCBuZXh0RWxlbWVudCA9IGxpc3RbaSArIGdhcFtldmVudEtleV1dO1xuICAgICAgaWYgKG5leHRFbGVtZW50Py50YWJJbmRleCA9PT0gMCkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIG5leHRFbGVtZW50Py5mb2N1cygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmICghbmV4dEVsZW1lbnQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2VsbE1vdXNlTGVhdmUoKSB7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgaG92ZXJEYXRlOiBudWxsIH0pO1xuICB9XG5cbiAgaGFuZGxlRGF5Q2VsbEtleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCwgZGF0ZTogRGF0ZSkge1xuICAgIGlmIChbJ1NwYWNlJywgJ0VudGVyJ10uaW5jbHVkZXMoJGV2ZW50LmNvZGUpKSB7XG4gICAgICB0aGlzLmhhbmRsZURheUNlbGxDbGljayhkYXRlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKFsnVGFiJywgJ0Fycm93UmlnaHQnLCAnQXJyb3dMZWZ0JywgJ0Fycm93VXAnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoJGV2ZW50LmNvZGUpKSB7XG4gICAgICB0aGlzLmhhbmRsZUNlbGxNb3VzZUVudGVyKGRhdGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZURheUNlbGxDbGljayhkYXRlOiBEYXRlKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ2RheScgJiYgdGhpcy5pc0RhdGVEaXNhYmxlZChkYXRlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5yYW5nZSkge1xuICAgICAgdGhpcy5lbmREYXRlID0gbnVsbDtcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gZGF0ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGFydERhdGUgJiYgdGhpcy5lbmREYXRlKSB7XG4gICAgICB0aGlzLmNhbGVuZGFyRGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCAxLCAwLCAwLCAwLCAwKTtcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IG51bGw7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCEhdGhpcy5zdGFydERhdGUgJiYgIXRoaXMuZW5kRGF0ZSkge1xuICAgICAgaWYgKHRoaXMuc3RhcnREYXRlICYmIGRhdGUgPCB0aGlzLnN0YXJ0RGF0ZSkge1xuICAgICAgICB0aGlzLmVuZERhdGUgPSBudWxsO1xuICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9IGRhdGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVuZERhdGUgPSBkYXRlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVuZERhdGUgPSBudWxsO1xuICAgICAgdGhpcy5zdGFydERhdGUgPSBkYXRlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0YXJ0RGF0ZSAmJiB0aGlzLmVuZERhdGUpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmIChpc0RhdGVJblJhbmdlRGlzYWJsZWQodGhpcy5zdGFydERhdGUsIHRoaXMuZW5kRGF0ZSwgdGhpcy5kaXNhYmxlZERhdGVzKSkge1xuICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuZW5kRGF0ZSA9IG51bGw7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gbGV0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSk7XG4gICAgICAvLyB3aGlsZSAoZGF0ZSA8IHRoaXMuZW5kRGF0ZSkge1xuICAgICAgLy8gICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyAxKTtcbiAgICAgIC8vICAgaWYgKHRoaXMuaXNEYXRlRGlzYWJsZWQoZGF0ZSkpIHtcbiAgICAgIC8vICAgICB0aGlzLnN0YXJ0RGF0ZSA9IG51bGw7XG4gICAgICAvLyAgICAgdGhpcy5lbmREYXRlID0gbnVsbDtcbiAgICAgIC8vICAgICBicmVhaztcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuICAgIH1cbiAgfVxuXG4gIGNhbGVuZGFyU3RhdGVTdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UuY2FsZW5kYXJTdGF0ZSQucGlwZShcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICkuc3Vic2NyaWJlKHN0YXRlID0+IHtcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhzdGF0ZSk7XG5cbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgLy8gaWYgKGtleSBpbiB0aGlzKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpc1trZXldID0gc3RhdGVba2V5XTtcbiAgICAgICAgLy8gfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0TW9udGhTdGFydChpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuY2FsZW5kYXJEYXRlLmdldEZ1bGxZZWFyKCksIGluZGV4LCAxLCAwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIGdldE1vbnRoRW5kKGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5jYWxlbmRhckRhdGUuZ2V0RnVsbFllYXIoKSwgaW5kZXggKyAxLCAxLCAwLCAwLCAtMSwgMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNEYXRlSW5SYW5nZURpc2FibGVkID0gaXNEYXRlSW5SYW5nZURpc2FibGVkO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNEYXRlQmV0d2Vlbk1pbk1heCA9IGlzRGF0ZUJldHdlZW5NaW5NYXg7XG5cbiAgZ2V0WWVhclN0YXJ0KHllYXI6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCAwLCAxKTtcbiAgfVxuXG4gIGdldFllYXJFbmQoeWVhcjogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIDExLCAxLCAwLCAwLCAtMSwgMCk7XG4gIH1cbn1cbiIsIjx0YWJsZT5cbiAgPHRoZWFkICpuZ0lmPVwidmlldyA9PT0gJ2RheXMnXCI+XG4gIDx0cj5cbiAgICA8dGggKm5nSWY9XCJzaG93V2Vla051bWJlclwiIGNsYXNzPVwiY2FsZW5kYXItY2VsbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWhlYWRlci1jZWxsLWlubmVyXCI+e3sgd2Vla051bWJlcnNMYWJlbCB9fTwvZGl2PlxuICAgIDwvdGg+XG4gICAgPHRoICpuZ0Zvcj1cImxldCB3ZWVrRGF5IG9mIHdlZWtEYXlzOyBpbmRleCBhcyBpOyBjb3VudCBhcyBjbnRcIiBjbGFzcz1cImNhbGVuZGFyLWNlbGxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1oZWFkZXItY2VsbC1pbm5lclwiPlxuICAgICAgICB7eyB3ZWVrRGF5LmRhdGUgfCBjYWxlbmRhcldlZWtkYXk6d2Vla2RheUZvcm1hdDpsb2NhbGUgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvdGg+XG4gIDwvdHI+XG4gIDwvdGhlYWQ+XG4gIDx0Ym9keSAobW91c2VsZWF2ZSk9XCJoYW5kbGVDZWxsTW91c2VMZWF2ZSgpXCIgW25nU3dpdGNoXT1cInZpZXdcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3llYXJzJ1wiPlxuICAgIDx0ciAqbmdGb3I9XCJsZXQgeWVhcnNSb3cgb2YgbGlzdE9mWWVhcnMoKTsgaW5kZXggYXMgcm93SWR4XCI+XG4gICAgICA8dGRcbiAgICAgICAgI2NhbGVuZGFyWWVhcj1cImNDYWxlbmRhckRheVwiXG4gICAgICAgIChjbGljayk9XCIhY2FsZW5kYXJZZWFyLmRpc2FibGVkJCgpICYmIGhhbmRsZVllYXJDZWxsQ2xpY2soeWVhcilcIlxuICAgICAgICAoa2V5ZG93bik9XCJjYWxlbmRhclllYXIuZGF0ZSAmJiBoYW5kbGVEYXlDZWxsS2V5RG93bigkZXZlbnQsIGNhbGVuZGFyWWVhci5kYXRlKVwiXG4gICAgICAgIChrZXl1cCk9XCJoYW5kbGVZZWFyQ2VsbEtleVVwKCRldmVudCwgY2FsZW5kYXJZZWFyLmRhdGUpXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwiY2FsZW5kYXJZZWFyLmRhdGUgJiYgaGFuZGxlQ2VsbE1vdXNlRW50ZXIoY2FsZW5kYXJZZWFyLmRhdGUpXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IHllYXIgb2YgeWVhcnNSb3c7IGluZGV4IGFzIGlkeFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY2FsZW5kYXJZZWFyLmRhdGUuZ2V0RnVsbFllYXIoKVwiXG4gICAgICAgIFtkYXRlXT1cImdldFllYXJTdGFydCh5ZWFyKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInllYXIgfCBjYWxlbmRhckNsYXNzWWVhclwiXG4gICAgICAgIFt0YWJpbmRleF09XCJjYWxlbmRhclllYXIuZGlzYWJsZWQkKCkgPyAtMSA6IDBcIlxuICAgICAgICBjQ2FsZW5kYXJEYXlcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWNlbGwtaW5uZXJcIj5cbiAgICAgICAgICB7eyB5ZWFyTnVtYmVyKHllYXIpIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21vbnRocydcIj5cbiAgICA8dHIgKm5nRm9yPVwibGV0IG1vbnRoc1JvdyBvZiBsaXN0T2ZNb250aHMoKTsgaW5kZXggYXMgcm93SWR4XCI+XG4gICAgICA8dGRcbiAgICAgICAgI2NhbGVuZGFyTW9udGg9XCJjQ2FsZW5kYXJEYXlcIlxuICAgICAgICAoY2xpY2spPVwiIWNhbGVuZGFyTW9udGguZGlzYWJsZWQkKCkgJiYgaGFuZGxlTW9udGhDZWxsQ2xpY2soY2FsZW5kYXJNb250aC5kYXRlKVwiXG4gICAgICAgIChrZXlkb3duKT1cImNhbGVuZGFyTW9udGguZGF0ZSAmJiBoYW5kbGVEYXlDZWxsS2V5RG93bigkZXZlbnQsIGNhbGVuZGFyTW9udGguZGF0ZSlcIlxuICAgICAgICAoa2V5dXApPVwiaGFuZGxlTW9udGhDZWxsS2V5VXAoJGV2ZW50LCBjYWxlbmRhck1vbnRoLmRhdGUpXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwiY2FsZW5kYXJNb250aC5kYXRlICYmIGhhbmRsZUNlbGxNb3VzZUVudGVyKGNhbGVuZGFyTW9udGguZGF0ZSlcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgbW9udGggb2YgbW9udGhzUm93OyBpbmRleCBhcyBpZHhcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNhbGVuZGFyTW9udGguZGF0ZS5nZXRGdWxsWWVhcigpKycgJyttb250aC5tb250aFwiXG4gICAgICAgIFtkYXRlXT1cImdldE1vbnRoU3RhcnQocm93SWR4KjMraWR4KVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImNhbGVuZGFyRGF0ZSB8IGNhbGVuZGFyQ2xhc3NNb250aDoocm93SWR4KjMraWR4KVwiXG4gICAgICAgIFt0YWJpbmRleF09XCJjYWxlbmRhck1vbnRoLmRpc2FibGVkJCgpID8gLTEgOiAwXCJcbiAgICAgICAgY0NhbGVuZGFyRGF5XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1jZWxsLWlubmVyXCI+XG4gICAgICAgICAge3sgbW9udGgubW9udGggfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgPHRyICNjYWxlbmRhclJvdz1cImNDYWxlbmRhclJvd1wiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3Rpb25UeXBlID09PSAnd2VlaycgJiYgKGNhbGVuZGFyUm93LmN1cnJlbnQpICYmIGNhbGVuZGFyUm93LmRhdGUgJiYgaGFuZGxlRGF5Q2VsbENsaWNrKGNhbGVuZGFyUm93LmRhdGUpXCJcbiAgICAgICAgKGtleWRvd24pPVwic2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIChjYWxlbmRhclJvdy5jdXJyZW50KSAmJiBjYWxlbmRhclJvdy5kYXRlICYmIGhhbmRsZURheUNlbGxLZXlEb3duKCRldmVudCwgY2FsZW5kYXJSb3cuZGF0ZSlcIlxuICAgICAgICAoa2V5dXApPVwic2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIChjYWxlbmRhclJvdy5jdXJyZW50KSAmJiBjYWxlbmRhclJvdy5kYXRlICYmIGhhbmRsZURheUNlbGxLZXlVcCgkZXZlbnQsIGNhbGVuZGFyUm93LmRhdGUpXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwic2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIGNhbGVuZGFyUm93LmRhdGUgJiYgaGFuZGxlQ2VsbE1vdXNlRW50ZXIoY2FsZW5kYXJSb3cuZGF0ZSlcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgd2VlayBvZiBtb250aERldGFpbHM7IGluZGV4IGFzIGlcIlxuICAgICAgICBbY0NhbGVuZGFyUm93XT1cIndlZWtcIlxuICAgID5cbiAgICAgIDx0aCAqbmdJZj1cInNob3dXZWVrTnVtYmVyXCIgY2xhc3M9XCJjYWxlbmRhci1jZWxsLXdlZWstbnVtYmVyXCI+XG4gICAgICAgIHt7d2Vlay53ZWVrTnVtYmVyID09PSAwID8gNTMgOiB3ZWVrLndlZWtOdW1iZXJ9fVxuICAgICAgPC90aD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRhdGVPYmogb2Ygd2Vlay5kYXlzOyBpbmRleCBhcyBpZHhcIj5cbiAgICAgICAgPHRkICNjYWxlbmRhckNlbGw9XCJjQ2FsZW5kYXJEYXlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGlvblR5cGUgPT09ICdkYXknICYmIChkYXRlT2JqLm1vbnRoID09PSAnY3VycmVudCcgfHwgc2VsZWN0QWRqYWNlbnREYXlzKSAmJiBoYW5kbGVEYXlDZWxsQ2xpY2soZGF0ZU9iai5kYXRlKVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJzZWxlY3Rpb25UeXBlID09PSAnZGF5JyAmJiAoZGF0ZU9iai5tb250aCA9PT0gJ2N1cnJlbnQnIHx8IHNlbGVjdEFkamFjZW50RGF5cykgJiYgaGFuZGxlRGF5Q2VsbEtleURvd24oJGV2ZW50LCBkYXRlT2JqLmRhdGUpXCJcbiAgICAgICAgICAgIChrZXl1cCk9XCJzZWxlY3Rpb25UeXBlID09PSAnZGF5JyAmJiAoZGF0ZU9iai5tb250aCA9PT0gJ2N1cnJlbnQnIHx8IHNlbGVjdEFkamFjZW50RGF5cykgJiYgaGFuZGxlRGF5Q2VsbEtleVVwKCRldmVudCwgZGF0ZU9iai5kYXRlKVwiXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJzZWxlY3Rpb25UeXBlID09PSAnZGF5JyAmJiAoZGF0ZU9iai5tb250aCA9PT0gJ2N1cnJlbnQnIHx8IHNlbGVjdEFkamFjZW50RGF5cykgJiYgaGFuZGxlQ2VsbE1vdXNlRW50ZXIoZGF0ZU9iai5kYXRlKVwiXG4gICAgICAgICAgICAqbmdJZj1cIihkYXRlT2JqLm1vbnRoID09PSAnY3VycmVudCcgfHwgc2hvd0FkamFjZW50RGF5cyk7IGVsc2UgZW1wdHlDZWxsXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGF0ZU9iai5kYXRlIHwgY2FsZW5kYXJEYXlUaXRsZTpsb2NhbGVcIlxuICAgICAgICAgICAgW2RhdGVdPVwiZGF0ZU9iai5kYXRlXCJcbiAgICAgICAgICAgIFttb250aF09XCJkYXRlT2JqLm1vbnRoXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRhdGVPYmogfCBjYWxlbmRhckNsYXNzRGF5OnttaW5EYXRlLCBtYXhEYXRlLCBkaXNhYmxlZERhdGVzLCBkYXRlRmlsdGVyfVwiXG4gICAgICAgICAgICBbdGFiaW5kZXhdPVwic2VsZWN0aW9uVHlwZSA9PT0gJ2RheScgJiYgKGRhdGVPYmoubW9udGggPT09ICdjdXJyZW50JyB8fCBzZWxlY3RBZGphY2VudERheXMpICYmICFpc0RhdGVEaXNhYmxlZChkYXRlT2JqLmRhdGUpID8gMCA6IC0xXCJcbiAgICAgICAgICAgIGNDYWxlbmRhckRheVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWNlbGwtaW5uZXJcIj5cbiAgICAgICAgICAgIHt7IGRhdGVPYmouZGF0ZSB8IGNhbGVuZGFyRGF5OmRheUZvcm1hdDpsb2NhbGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eUNlbGw+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiY2FsZW5kYXItY2VsbFwiPjwvdGQ+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG5cbiJdfQ==
|
|
506
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbW9udGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci1tb250aC9jYWxlbmRhci1tb250aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLW1vbnRoL2NhbGVuZGFyLW1vbnRoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBR2YsTUFBTSxFQUNOLFlBQVksRUFFYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZixjQUFjLEVBQ2QsUUFBUSxFQUNSLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QscUJBQXFCLEVBQ3JCLE9BQU8sRUFDUixNQUFNLG1CQUFtQixDQUFDO0FBRzNCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JF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SSw2RkFDSixRQUFRLDZFQUNSLFlBQVkscUZBQ1osZUFBZTs7MkZBSU4sc0JBQXNCO2tCQXpCbEMsU0FBUzsrQkFDRSxrQkFBa0IsWUFHbEIsZ0JBQWdCLGNBQ2QsSUFBSSxXQUNQO3dCQUNQLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQixzQkFBc0I7d0JBQ3RCLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxJQUFJO3dCQUNKLFFBQVE7d0JBQ1IsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFNBQVM7cUJBQ1Y7b0ZBWVEsU0FBUztzQkFBakIsS0FBSztnQkFPRixTQUFTO3NCQURaLEtBQUs7Z0JBb0JGLE9BQU87c0JBRFYsS0FBSztnQkFvQkYsYUFBYTtzQkFEaEIsS0FBSztnQkFxQmlDLGNBQWM7c0JBQXBELEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQU9qQyxNQUFNO3NCQURULEtBQUs7Z0JBaUJrQyxLQUFLO3NCQUE1QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQU83QixhQUFhO3NCQUFyQixLQUFLO2dCQVFGLElBQUk7c0JBRFAsS0FBSztnQkFlRixPQUFPO3NCQURWLEtBQUs7Z0JBZUYsT0FBTztzQkFEVixLQUFLO2dCQXFCRixZQUFZO3NCQURmLEtBQUs7Z0JBZ0I4QixZQUFZO3NCQUEvQyxZQUFZO3VCQUFDLG9CQUFvQjtnQkFDRSxZQUFZO3NCQUEvQyxZQUFZO3VCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIERlc3Ryb3lSZWYsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgT25Jbml0LFxuICBRdWVyeUxpc3QsXG4gIHNpZ25hbCxcbiAgVmlld0NoaWxkcmVuLFxuICBXcml0YWJsZVNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdDbGFzcywgTmdGb3JPZiwgTmdJZiwgTmdTd2l0Y2gsIE5nU3dpdGNoQ2FzZSwgTmdTd2l0Y2hEZWZhdWx0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7XG4gIGNvbnZlcnRUb0RhdGVPYmplY3QsXG4gIGNyZWF0ZUdyb3Vwc0luQXJyYXksXG4gIGdldE1vbnRoRGV0YWlscyxcbiAgZ2V0TW9udGhzTmFtZXMsXG4gIGdldFllYXJzLFxuICBpc0RhdGVCZXR3ZWVuTWluTWF4LFxuICBpc0RhdGVEaXNhYmxlZCxcbiAgaXNEYXRlSW5SYW5nZURpc2FibGVkLFxuICB0cnlEYXRlXG59IGZyb20gJy4uL2NhbGVuZGFyLnV0aWxzJztcblxuaW1wb3J0IHsgQ2FsZW5kYXJTZXJ2aWNlLCBEYXRlRmlsdGVyVHlwZSwgRGF5Rm9ybWF0VHlwZSwgU2VsZWN0aW9uVHlwZSwgV2Vla2RheUZvcm1hdFR5cGUgfSBmcm9tICcuLi9jYWxlbmRhci5zZXJ2aWNlJztcbmltcG9ydCB7IENhbGVuZGFyV2Vla2RheVBpcGUgfSBmcm9tICcuL2NhbGVuZGFyLXdlZWtkYXkucGlwZSc7XG5pbXBvcnQgeyBDYWxlbmRhckNsYXNzWWVhclBpcGUgfSBmcm9tICcuL2NhbGVuZGFyLWNsYXNzLXllYXIucGlwZSc7XG5pbXBvcnQgeyBDYWxlbmRhckNsYXNzTW9udGhQaXBlIH0gZnJvbSAnLi9jYWxlbmRhci1jbGFzcy1tb250aC5waXBlJztcbmltcG9ydCB7IENhbGVuZGFyRGF5UGlwZSB9IGZyb20gJy4vY2FsZW5kYXItZGF5LnBpcGUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXlEaXJlY3RpdmUgfSBmcm9tICcuL2NhbGVuZGFyLWRheS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXlUaXRsZVBpcGUgfSBmcm9tICcuL2NhbGVuZGFyLWRheS10aXRsZS5waXBlJztcbmltcG9ydCB7IENhbGVuZGFyQ2xhc3NEYXlQaXBlIH0gZnJvbSAnLi9jYWxlbmRhci1jbGFzcy1kYXkucGlwZSc7XG5pbXBvcnQgeyBDYWxlbmRhckNsYXNzUm93UGlwZSB9IGZyb20gJy4vY2FsZW5kYXItY2xhc3Mtcm93LnBpcGUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJSb3dEaXJlY3RpdmUgfSBmcm9tICcuL2NhbGVuZGFyLXJvdy5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjLWNhbGVuZGFyLW1vbnRoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLW1vbnRoLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXItbW9udGguY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjQ2FsZW5kYXJNb250aCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDYWxlbmRhckRheURpcmVjdGl2ZSxcbiAgICBDYWxlbmRhckRheVBpcGUsXG4gICAgQ2FsZW5kYXJEYXlUaXRsZVBpcGUsXG4gICAgQ2FsZW5kYXJSb3dEaXJlY3RpdmUsXG4gICAgQ2FsZW5kYXJDbGFzc0RheVBpcGUsXG4gICAgQ2FsZW5kYXJDbGFzc01vbnRoUGlwZSxcbiAgICBDYWxlbmRhckNsYXNzUm93UGlwZSxcbiAgICBDYWxlbmRhckNsYXNzWWVhclBpcGUsXG4gICAgQ2FsZW5kYXJXZWVrZGF5UGlwZSxcbiAgICBOZ0NsYXNzLFxuICAgIE5nRm9yT2YsXG4gICAgTmdJZixcbiAgICBOZ1N3aXRjaCxcbiAgICBOZ1N3aXRjaENhc2UsXG4gICAgTmdTd2l0Y2hEZWZhdWx0LFxuICAgIEFzeW5jUGlwZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyTW9udGhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2FsZW5kYXJTZXJ2aWNlOiBDYWxlbmRhclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jYWxlbmRhclN0YXRlU3Vic2NyaWJlKCk7XG4gIH1cblxuICBASW5wdXQoKSBhZGRNb250aHM6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgc2VsZWN0ZWQgZGF0ZS5cbiAgICogQHR5cGUgIChEYXRlIHwgbnVsbClcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBzdGFydERhdGUodmFsdWU6IERhdGUgfCBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgZGF0ZSA9ICEhdmFsdWUgPyB0cnlEYXRlKHZhbHVlLCAnc3RhcnREYXRlJykgOiBudWxsO1xuICAgIGlmICh0aGlzLl9zdGFydERhdGU/LmdldFRpbWUoKSAhPT0gZGF0ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLl9zdGFydERhdGUgPSBkYXRlO1xuICAgICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgc3RhcnREYXRlOiB0aGlzLl9zdGFydERhdGUgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHN0YXJ0RGF0ZSgpOiBEYXRlIHwgbnVsbCB7XG4gICAgcmV0dXJuIDxEYXRlIHwgbnVsbD50aGlzLl9zdGFydERhdGU7XG4gIH1cblxuICBfc3RhcnREYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgc2VsZWN0ZWQgdG8gZGF0ZSAocmFuZ2UpLlxuICAgKiBAdHlwZSAgRGF0ZSB8IG51bGxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBlbmREYXRlKHZhbHVlOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGRhdGUgPSAhIXZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ2VuZERhdGUnKSA6IG51bGw7XG4gICAgaWYgKHRoaXMuX2VuZERhdGU/LmdldFRpbWUoKSAhPT0gZGF0ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLl9lbmREYXRlID0gZGF0ZTtcbiAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGVuZERhdGU6IHRoaXMuX2VuZERhdGUgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGVuZERhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VuZERhdGU7XG4gIH1cblxuICBfZW5kRGF0ZTogKERhdGUgfCBudWxsKSA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGxpc3Qgb2YgZGF0ZXMgdGhhdCBjYW5ub3QgYmUgc2VsZWN0ZWQuXG4gICAqIEB0eXBlICBEYXRlW10gfCBEYXRlW11bXVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGRpc2FibGVkRGF0ZXModmFsdWU6IERhdGVbXSB8IERhdGVbXVtdKSB7XG4gICAgdGhpcy5fZGlzYWJsZWREYXRlcyA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGRpc2FibGVkRGF0ZXMoKTogRGF0ZVtdIHwgRGF0ZVtdW10ge1xuICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZERhdGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzYWJsZWREYXRlczogKERhdGVbXSB8IERhdGVbXVtdKSA9IFtdO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBkYXkgb2Ygc3RhcnQgd2Vlay5cbiAgICogLSAwIC0gU3VuZGF5LFxuICAgKiAtIDEgLSBNb25kYXksXG4gICAqIC0gMiAtIFR1ZXNkYXksXG4gICAqIC0gMyAtIFdlZG5lc2RheSxcbiAgICogLSA0IC0gVGh1cnNkYXksXG4gICAqIC0gNSAtIEZyaWRheSxcbiAgICogLSA2IC0gU2F0dXJkYXksXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBmaXJzdERheU9mV2VlazogbnVtYmVyID0gMTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgZGVmYXVsdCBsb2NhbGUgZm9yIGNvbXBvbmVudHMuIElmIG5vdCBzZXQsIGl0IGlzIGluaGVyaXRlZCBmcm9tIHRoZSBicm93c2VyLlxuICAgKiBAZGVmYXVsdCAnZGVmYXVsdCdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBsb2NhbGUodmFsdWUpIHtcbiAgICB0aGlzLiNsb2NhbGUuc2V0KHZhbHVlKTtcbiAgICAvLyB0aGlzLmxpc3RPZk1vbnRocyA9IGNyZWF0ZUdyb3Vwc0luQXJyYXkoZ2V0TW9udGhzTmFtZXModmFsdWUpLCA0KTtcbiAgfVxuXG4gIGdldCBsb2NhbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuI2xvY2FsZSgpO1xuICB9XG5cbiAgI2xvY2FsZSA9IHNpZ25hbCgnZGVmYXVsdCcpO1xuXG4gIC8qKlxuICAgKiBBbGxvdyByYW5nZSBzZWxlY3Rpb24uXG4gICAqIEB0eXBlIGJvb2xlYW5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSByYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBTZXQgbGVuZ3RoIG9yIGZvcm1hdCBvZiBkYXkgbmFtZS5cbiAgICogQHR5cGUgbnVtYmVyIHwgJ2xvbmcnIHwgJ25hcnJvdycgfCAnc2hvcnQnXG4gICAqIEBkZWZhdWx0ICdzaG9ydCdcbiAgICovXG4gIEBJbnB1dCgpIHdlZWtkYXlGb3JtYXQ6IFdlZWtkYXlGb3JtYXRUeXBlID0gJ3Nob3J0JztcblxuICAvKipcbiAgICogU2V0IGNhbGVuZGFyIHZpZXcuXG4gICAqIEB0eXBlICdkYXlzJyB8ICdtb250aHMnIHwgJ3llYXJzJ1xuICAgKiBAZGVmYXVsdCAnZGF5cydcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCB2aWV3KHZhbHVlKSB7XG4gICAgdGhpcy4jdmlldy5zZXQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHZpZXcoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3ZpZXcoKTtcbiAgfVxuXG4gICN2aWV3ID0gc2lnbmFsPCdkYXlzJyB8ICdtb250aHMnIHwgJ3llYXJzJz4oJ2RheXMnKTtcblxuICAvKipcbiAgICogTWF4IHNlbGVjdGFibGUgZGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBtYXhEYXRlKHZhbHVlOiBEYXRlIHwgbnVsbCkge1xuICAgIHRoaXMuX21heERhdGUgPSB2YWx1ZSA/IHRyeURhdGUodmFsdWUsICdtYXhEYXRlJykgOiBudWxsO1xuICB9XG5cbiAgZ2V0IG1heERhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21heERhdGU7XG4gIH1cblxuICBwcml2YXRlIF9tYXhEYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIE1pbiBzZWxlY3RhYmxlIGRhdGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgbWluRGF0ZSh2YWx1ZTogRGF0ZSB8IG51bGwpIHtcbiAgICB0aGlzLl9taW5EYXRlID0gdmFsdWUgPyB0cnlEYXRlKHZhbHVlLCAnbWluRGF0ZScpIDogbnVsbDtcbiAgfVxuXG4gIGdldCBtaW5EYXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9taW5EYXRlO1xuICB9XG5cbiAgcHJpdmF0ZSBfbWluRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuXG4gIGxpc3RPZk1vbnRocyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gY3JlYXRlR3JvdXBzSW5BcnJheShnZXRNb250aHNOYW1lcyh0aGlzLiNsb2NhbGUoKSwgdGhpcy5jYWxlbmRhckRhdGUkJCgpLmdldEZ1bGxZZWFyKCkpLCA0KTtcbiAgfSk7XG4gIGxpc3RPZlllYXJzID0gY29tcHV0ZWQoKCkgPT4gY3JlYXRlR3JvdXBzSW5BcnJheShnZXRZZWFycyh0aGlzLmNhbGVuZGFyRGF0ZSQkKCkuZ2V0RnVsbFllYXIoKSksIDQpKTtcblxuICAvKipcbiAgICogRGVmYXVsdCBkYXRlIG9mIHRoZSBjb21wb25lbnRcbiAgICogQHR5cGUgRGF0ZVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGNhbGVuZGFyRGF0ZSh2YWx1ZTogKERhdGUgfCBzdHJpbmcgfCBudW1iZXIpKSB7XG4gICAgY29uc3QgX3ZhbHVlID0gbmV3IERhdGUodHJ5RGF0ZSgodmFsdWUgPz8gdGhpcy5zdGFydERhdGUpLCAnY2FsZW5kYXJEYXRlJykpO1xuICAgIGlmICghIV92YWx1ZSAmJiB0aGlzLmNhbGVuZGFyRGF0ZSQkKCkuZ2V0VGltZSgpICE9PSBfdmFsdWUuZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLmNhbGVuZGFyRGF0ZSQkLnNldChuZXcgRGF0ZShuZXcgRGF0ZShfdmFsdWUuc2V0RGF0ZSgxKSkuc2V0SG91cnMoMCwgMCwgMCwgMCkpKTtcbiAgICAgIHRoaXMuc2V0TW9udGhEZXRhaWxzKHRoaXMuZGF0ZSk7XG4gICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBjYWxlbmRhckRhdGU6IHRoaXMuY2FsZW5kYXJEYXRlJCQoKSB9KTtcbiAgICB9XG4gIH1cblxuICBnZXQgY2FsZW5kYXJEYXRlKCk6IERhdGUge1xuICAgIHJldHVybiA8RGF0ZT50aGlzLmNhbGVuZGFyRGF0ZSQkKCkgYXMgRGF0ZTtcbiAgfVxuXG4gIGNhbGVuZGFyRGF0ZSQkID0gc2lnbmFsPERhdGU+KG5ldyBEYXRlKCkpO1xuXG4gIEBWaWV3Q2hpbGRyZW4oQ2FsZW5kYXJEYXlEaXJlY3RpdmUpIGNhbGVuZGFyRGF5cyE6IFF1ZXJ5TGlzdDxDYWxlbmRhckRheURpcmVjdGl2ZT47XG4gIEBWaWV3Q2hpbGRyZW4oQ2FsZW5kYXJSb3dEaXJlY3RpdmUpIGNhbGVuZGFyUm93cyE6IFF1ZXJ5TGlzdDxDYWxlbmRhclJvd0RpcmVjdGl2ZT47XG5cbiAgZGF0ZUZpbHRlciE6IERhdGVGaWx0ZXJUeXBlO1xuXG4gIGdldCBkYXRlKCkge1xuICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmNhbGVuZGFyRGF0ZT8uZ2V0RnVsbFllYXIoKSwgdGhpcy5jYWxlbmRhckRhdGU/LmdldE1vbnRoKCkgKyB0aGlzLmFkZE1vbnRocyk7XG4gIH1cblxuICBkYXlGb3JtYXQhOiBEYXlGb3JtYXRUeXBlO1xuICBzZWxlY3RBZGphY2VudERheXMhOiBib29sZWFuO1xuICBzaG93QWRqYWNlbnREYXlzITogYm9vbGVhbjtcblxuICBzZXQgc2VsZWN0aW9uVHlwZSh2YWx1ZTogU2VsZWN0aW9uVHlwZSkge1xuICAgIHRoaXMuI3NlbGVjdGlvblR5cGUuc2V0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBzZWxlY3Rpb25UeXBlKCkge1xuICAgIHJldHVybiB0aGlzLiNzZWxlY3Rpb25UeXBlKCk7XG4gIH1cblxuICAjc2VsZWN0aW9uVHlwZTogV3JpdGFibGVTaWduYWw8U2VsZWN0aW9uVHlwZT4gPSBzaWduYWwoJ21vbnRoJyk7XG5cbiAgc2hvd1dlZWtOdW1iZXI6IGJvb2xlYW4gPSB0cnVlO1xuICAvLyBzZXQgc2hvd1dlZWtOdW1iZXIodmFsdWU6IGJvb2xlYW4pIHtcbiAgLy8gICB0aGlzLiNzaG93V2Vla051bWJlciQkLnNldCh2YWx1ZSk7XG4gIC8vIH1cbiAgLy9cbiAgLy8gZ2V0IHNob3dXZWVrTnVtYmVyKCkge1xuICAvLyAgIHJldHVybiB0aGlzLiNzaG93V2Vla051bWJlciQkKCk7XG4gIC8vIH1cbiAgLy9cbiAgLy8gI3Nob3dXZWVrTnVtYmVyJCQ6IFdyaXRhYmxlU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcbiAgLy8gc2hvd1dlZWtOdW1iZXIkJCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuI3NlbGVjdGlvblR5cGUoKSA9PT0gJ3dlZWsnIHx8IHRoaXMuI3Nob3dXZWVrTnVtYmVyJCQoKSk7XG5cbiAgd2Vla051bWJlcnNMYWJlbCE6IHN0cmluZztcblxuICBwcml2YXRlIF9tb250aERldGFpbHMhOiB7IHdlZWtOdW1iZXI6IG51bWJlcjsgZGF5czogeyBkYXRlOiBEYXRlOyBtb250aDogc3RyaW5nOyB9W107IH1bXTtcblxuICBnZXQgbW9udGhEZXRhaWxzKCkge1xuICAgIHJldHVybiB0aGlzLl9tb250aERldGFpbHM7XG4gIH1cblxuICBnZXQgd2Vla0RheXMoKSB7XG4gICAgcmV0dXJuIHRoaXMubW9udGhEZXRhaWxzWzBdLmRheXM7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldE1vbnRoRGV0YWlscyh0aGlzLmRhdGUpO1xuICB9XG5cbiAgc2V0TW9udGhEZXRhaWxzKGRhdGU6IERhdGUgPSB0aGlzLmRhdGUpIHtcbiAgICB0aGlzLl9tb250aERldGFpbHMgPSBnZXRNb250aERldGFpbHMoXG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICB0aGlzLmZpcnN0RGF5T2ZXZWVrXG4gICAgKTtcbiAgfVxuXG4gIHllYXJOdW1iZXIoeWVhcjogYW55KSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIDApLnRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmxvY2FsZSwgeyB5ZWFyOiAnbnVtZXJpYycgfSk7XG4gIH1cblxuICBpc0RhdGVEaXNhYmxlZChkYXRlOiBEYXRlKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ3llYXInKSB7XG4gICAgICBjb25zdCBtaW5EYXRlID0gdGhpcy5taW5EYXRlID8gbmV3IERhdGUodGhpcy5taW5EYXRlLmdldEZ1bGxZZWFyKCksIDAsIDEsIDAsIDAsIDAsIDApIDogbnVsbDtcbiAgICAgIGNvbnN0IG1heERhdGUgPSB0aGlzLm1heERhdGUgPyBuZXcgRGF0ZSh0aGlzLm1heERhdGUuZ2V0RnVsbFllYXIoKSwgMTEsIDMxLCAwLCAwLCAwLCAwKSA6IG51bGw7XG4gICAgICByZXR1cm4gaXNEYXRlRGlzYWJsZWQoZGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSwgdGhpcy5kaXNhYmxlZERhdGVzKSB8fCAodGhpcy5kYXRlRmlsdGVyID8gIXRoaXMuZGF0ZUZpbHRlcihkYXRlKSA6IGZhbHNlKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ21vbnRoJykge1xuICAgICAgY29uc3QgbWluRGF0ZSA9IHRoaXMubWluRGF0ZSA/IG5ldyBEYXRlKHRoaXMubWluRGF0ZS5nZXRGdWxsWWVhcigpLCB0aGlzLm1pbkRhdGUuZ2V0TW9udGgoKSwgMSwgMCwgMCwgMCwgMCkgOiBudWxsO1xuICAgICAgY29uc3QgbWF4RGF0ZSA9IHRoaXMubWF4RGF0ZSA/IG5ldyBEYXRlKHRoaXMubWF4RGF0ZS5nZXRGdWxsWWVhcigpLCB0aGlzLm1heERhdGUuZ2V0TW9udGgoKSArIDEsIDEsIDAsIDAsIC0xLCAwKSA6IG51bGw7XG4gICAgICByZXR1cm4gaXNEYXRlRGlzYWJsZWQoZGF0ZSwgbWluRGF0ZSwgbWF4RGF0ZSwgdGhpcy5kaXNhYmxlZERhdGVzKSB8fCAodGhpcy5kYXRlRmlsdGVyID8gIXRoaXMuZGF0ZUZpbHRlcihkYXRlKSA6IGZhbHNlKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzRGF0ZURpc2FibGVkKGRhdGUsIHRoaXMubWluRGF0ZSwgdGhpcy5tYXhEYXRlLCB0aGlzLmRpc2FibGVkRGF0ZXMpIHx8ICh0aGlzLmRhdGVGaWx0ZXIgPyAhdGhpcy5kYXRlRmlsdGVyKGRhdGUpIDogZmFsc2UpO1xuICB9XG5cbiAgY2FsZW5kYXJDZWxsVGl0bGUoZGF0ZTogRGF0ZSkge1xuICAgIHJldHVybiBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmxvY2FsZSk7XG4gIH1cblxuICBoYW5kbGVDZWxsTW91c2VFbnRlcihob3ZlckRhdGU6IERhdGUpIHtcbiAgICBjb25zdCB1cGRhdGVIb3ZlclZhbHVlID0gKFsnZGF5JywgJ3dlZWsnXS5pbmNsdWRlcyh0aGlzLnNlbGVjdGlvblR5cGUpICYmIHRoaXMudmlldyA9PT0gJ2RheXMnKSB8fFxuICAgICAgWydtb250aCddLmluY2x1ZGVzKHRoaXMuc2VsZWN0aW9uVHlwZSkgJiYgdGhpcy52aWV3ID09PSAnbW9udGhzJyB8fFxuICAgICAgWyd5ZWFyJ10uaW5jbHVkZXModGhpcy5zZWxlY3Rpb25UeXBlKSAmJiB0aGlzLnZpZXcgPT09ICd5ZWFycyc7XG5cbiAgICAvLyBpZiAodXBkYXRlSG92ZXJWYWx1ZSkge1xuICAgIGNvbnN0IGhvdmVyVmFsdWUgPSB0aGlzLmlzRGF0ZURpc2FibGVkKGhvdmVyRGF0ZSkgfHwgIXVwZGF0ZUhvdmVyVmFsdWUgPyBudWxsIDogaG92ZXJEYXRlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGhvdmVyRGF0ZTogaG92ZXJWYWx1ZSB9KTtcbiAgICAvLyB9XG4gIH1cblxuICBoYW5kbGVZZWFyQ2VsbENsaWNrKHllYXI6IG51bWJlcikge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvblR5cGUgPT09ICd5ZWFyJykge1xuICAgICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCAwLCAxLCAwLCAwLCAwLCAwKTtcbiAgICAgIGlmICh0aGlzLnJhbmdlICYmIHRoaXMuc3RhcnREYXRlICYmICF0aGlzLmVuZERhdGUpIHtcbiAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgMTIsIDEsIDAsIDAsIC0xLCAwKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaGFuZGxlRGF5Q2VsbENsaWNrKGRhdGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBjYWxlbmRhckRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCAwLCAxLCAwLCAwLCAwLCAwKTtcbiAgICB0aGlzLnZpZXcgPSAnbW9udGhzJztcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyB2aWV3OiB0aGlzLnZpZXcsIGNhbGVuZGFyRGF0ZTogY2FsZW5kYXJEYXRlIH0pO1xuXG4gIH1cblxuICBoYW5kbGVZZWFyQ2VsbEtleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCwgZGF0ZTogRGF0ZSkge1xuICAgIGlmIChbJ1NwYWNlJywgJ0VudGVyJ10uaW5jbHVkZXMoJGV2ZW50LmNvZGUpKSB7XG4gICAgICB0aGlzLmhhbmRsZVllYXJDZWxsQ2xpY2soZGF0ZS5nZXRGdWxsWWVhcigpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKFsnVGFiJywgJ0Fycm93UmlnaHQnLCAnQXJyb3dMZWZ0JywgJ0Fycm93VXAnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoJGV2ZW50LmNvZGUpKSB7XG4gICAgICB0aGlzLmhhbmRsZUNlbGxNb3VzZUVudGVyKG5ldyBEYXRlKGRhdGUpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVNb250aENlbGxLZXlVcCgkZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGRhdGU6IERhdGUpIHtcbiAgICBpZiAoWydTcGFjZScsICdFbnRlciddLmluY2x1ZGVzKCRldmVudC5jb2RlKSkge1xuICAgICAgdGhpcy5oYW5kbGVNb250aENlbGxDbGljayhkYXRlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKFsnVGFiJywgJ0Fycm93UmlnaHQnLCAnQXJyb3dMZWZ0JywgJ0Fycm93VXAnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoJGV2ZW50LmNvZGUpKSB7XG4gICAgICB0aGlzLmhhbmRsZUNlbGxNb3VzZUVudGVyKGRhdGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZU1vbnRoQ2VsbENsaWNrKHZhbHVlOiBEYXRlKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ21vbnRoJykge1xuICAgICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSh2YWx1ZS5nZXRGdWxsWWVhcigpLCB2YWx1ZS5nZXRNb250aCgpLCAxLCAwLCAwLCAwLCAwKTtcbiAgICAgIGlmICh0aGlzLnJhbmdlICYmIHRoaXMuc3RhcnREYXRlICYmICF0aGlzLmVuZERhdGUpIHtcbiAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpICsgMSwgMSwgMCwgMCwgLTEsIDApO1xuICAgICAgfVxuICAgICAgdGhpcy5oYW5kbGVEYXlDZWxsQ2xpY2soZGF0ZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UoMCwgMCwgdmFsdWUuZ2V0TW9udGgoKSAtIHRoaXMuYWRkTW9udGhzKTtcbiAgICB0aGlzLnZpZXcgPSAnZGF5cyc7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgdmlldzogdGhpcy52aWV3IH0pO1xuICB9XG5cbiAgc2V0Q2FsZW5kYXJQYWdlKHllYXJzOiBudW1iZXIsIG1vbnRocyA9IDAsIHNldE1vbnRoPzogbnVtYmVyKSB7XG4gICAgY29uc3QgeWVhciA9IHRoaXMuZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIGNvbnN0IG1vbnRoID0gdGhpcy5kYXRlLmdldE1vbnRoKCk7XG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxLCAwLCAwLCAwLCAwKTtcblxuICAgIHllYXJzICYmIGQuc2V0RnVsbFllYXIoZC5nZXRGdWxsWWVhcigpICsgeWVhcnMpO1xuICAgIG1vbnRocyAmJiBkLnNldE1vbnRoKGQuZ2V0TW9udGgoKSArIG1vbnRocyk7XG4gICAgdHlwZW9mIHNldE1vbnRoID09PSAnbnVtYmVyJyAmJiBkLnNldE1vbnRoKHNldE1vbnRoKTtcblxuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGNhbGVuZGFyRGF0ZTogZCB9KTtcbiAgfVxuXG4gIGhhbmRsZURheUNlbGxLZXlEb3duKCRldmVudDogS2V5Ym9hcmRFdmVudCwgZGF0ZTogRGF0ZSkge1xuXG4gICAgaWYgKCFbJ1RhYicsICdBcnJvd1JpZ2h0JywgJ0Fycm93TGVmdCcsICdBcnJvd1VwJywgJ0Fycm93RG93biddLmluY2x1ZGVzKCRldmVudC5jb2RlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLmhhbmRsZUNlbGxNb3VzZUVudGVyKGRhdGUpO1xuXG4gICAgY29uc3QgZXZlbnRLZXkgPSAkZXZlbnQua2V5ID09PSAnVGFiJyA/ICgkZXZlbnQuc2hpZnRLZXkgPyAnQXJyb3dMZWZ0JyA6ICdBcnJvd1JpZ2h0JykgOiAkZXZlbnQua2V5O1xuXG4gICAgaWYgKHRoaXMubWF4RGF0ZSAmJiBkYXRlID49IGNvbnZlcnRUb0RhdGVPYmplY3QodGhpcy5tYXhEYXRlLCB0aGlzLnNlbGVjdGlvblR5cGUpICYmIChbJ0Fycm93UmlnaHQnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoZXZlbnRLZXkpKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5taW5EYXRlICYmIGRhdGUgPD0gY29udmVydFRvRGF0ZU9iamVjdCh0aGlzLm1pbkRhdGUsIHRoaXMuc2VsZWN0aW9uVHlwZSkgJiYgKFsnQXJyb3dMZWZ0JywgJ0Fycm93VXAnXS5pbmNsdWRlcyhldmVudEtleSkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGVsZW1lbnQgPSAkZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIHRoaXMudmlldyA9PT0gJ2RheXMnICYmIGVsZW1lbnQudGFiSW5kZXggPT09IC0xKSB7XG4gICAgICBlbGVtZW50ID0gZWxlbWVudC5jbG9zZXN0KCd0clt0YWJpbmRleD1cIjBcIl0nKSBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICBjb25zdCBlbGVtZW50cyA9IFsnd2VlayddLmluY2x1ZGVzKHRoaXMuc2VsZWN0aW9uVHlwZSkgJiYgdGhpcy52aWV3ID09PSAnZGF5cycgPyB0aGlzLmNhbGVuZGFyUm93cyA6IHRoaXMuY2FsZW5kYXJEYXlzO1xuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGxpc3QgPSBlbGVtZW50cy50b0FycmF5KClcbiAgICAgIC5tYXAoY2FsZW5kYXJDZWxsID0+IGNhbGVuZGFyQ2VsbC5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpXG4gICAgICAvLyAuZmlsdGVyKChlbGVtZW50KSA9PiB0aGlzLnNlbGVjdGlvblR5cGUgPT09ICd3ZWVrJyA/IGVsZW1lbnQ/LnRhYkluZGV4ID09PSAwIDogZWxlbWVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKCdjdXJyZW50JykpXG4gICAgICAuZmlsdGVyKChlbGVtZW50KSA9PiBlbGVtZW50Py50YWJJbmRleCA9PT0gMCk7XG5cbiAgICBjb25zdCBpbmRleCA9IGxpc3QuaW5kZXhPZihlbGVtZW50KTtcbiAgICBjb25zdCBmaXJzdCA9IGluZGV4ID09PSAwO1xuICAgIGNvbnN0IGxhc3QgPSBpbmRleCA9PT0gbGlzdC5sZW5ndGggLSAxO1xuXG4gICAgY29uc3QgdG9Cb3VuZGFyeSA9IHtcbiAgICAgIHN0YXJ0OiBpbmRleCxcbiAgICAgIGVuZDogbGlzdC5sZW5ndGggLSAoaW5kZXggKyAxKVxuICAgIH07XG5cbiAgICBjb25zdCBnYXAgPSB7XG4gICAgICBBcnJvd1JpZ2h0OiAxLFxuICAgICAgQXJyb3dMZWZ0OiAtMSxcbiAgICAgIEFycm93VXA6IHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIHRoaXMudmlldyA9PT0gJ2RheXMnID8gLTEgOiB0aGlzLnZpZXcgPT09ICdkYXlzJyA/IC03IDogLTMsXG4gICAgICBBcnJvd0Rvd246IHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIHRoaXMudmlldyA9PT0gJ2RheXMnID8gMSA6IHRoaXMudmlldyA9PT0gJ2RheXMnID8gNyA6IDNcbiAgICB9O1xuXG4gICAgaWYgKFxuICAgICAgKGV2ZW50S2V5ID09PSAnQXJyb3dSaWdodCcgJiYgbGFzdCkgfHxcbiAgICAgIChldmVudEtleSA9PT0gJ0Fycm93RG93bicgJiYgdG9Cb3VuZGFyeS5lbmQgPCBnYXAuQXJyb3dEb3duKSB8fFxuICAgICAgKGV2ZW50S2V5ID09PSAnQXJyb3dMZWZ0JyAmJiBmaXJzdCkgfHxcbiAgICAgIChldmVudEtleSA9PT0gJ0Fycm93VXAnICYmIHRvQm91bmRhcnkuc3RhcnQgPCBNYXRoLmFicyhnYXAuQXJyb3dVcCkpXG4gICAgKSB7XG5cbiAgICAgIGVsZW1lbnRzLmNoYW5nZXMucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgICApLnN1YnNjcmliZSgoY2hhbmdlOiBRdWVyeUxpc3Q8Q2FsZW5kYXJSb3dEaXJlY3RpdmUgfCBDYWxlbmRhckRheURpcmVjdGl2ZT4pID0+IHtcblxuICAgICAgICBjb25zdCBfbGlzdCA9IGNoYW5nZVxuICAgICAgICAgIC50b0FycmF5KClcbiAgICAgICAgICAvLyAuZmlsdGVyKGVsZW1lbnQgPT4gdGhpcy5zZWxlY3Rpb25UeXBlID09PSAnd2VlaycgPyBlbGVtZW50Py5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGFiSW5kZXggPT09IDAgOiBlbGVtZW50Py5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjdXJyZW50JykpO1xuICAgICAgICAgIC5maWx0ZXIoZWxlbWVudCA9PiBlbGVtZW50Py5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGFiSW5kZXggPT09IDApO1xuXG4gICAgICAgIGlmIChfbGlzdC5sZW5ndGgpIHtcbiAgICAgICAgICBsZXQgZGF5VG9Gb2N1czogQ2FsZW5kYXJEYXlEaXJlY3RpdmUgfCBDYWxlbmRhclJvd0RpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcbiAgICAgICAgICBzd2l0Y2ggKGV2ZW50S2V5KSB7XG4gICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0Jzoge1xuICAgICAgICAgICAgICBkYXlUb0ZvY3VzID0gX2xpc3RbMF07XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnQXJyb3dMZWZ0Jzoge1xuICAgICAgICAgICAgICBkYXlUb0ZvY3VzID0gX2xpc3RbX2xpc3QubGVuZ3RoIC0gMV07XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnQXJyb3dEb3duJzoge1xuICAgICAgICAgICAgICBkYXlUb0ZvY3VzID0gX2xpc3RbZ2FwLkFycm93RG93biAtIChsaXN0Lmxlbmd0aCAtIGluZGV4KV07XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6IHtcbiAgICAgICAgICAgICAgZGF5VG9Gb2N1cyA9IF9saXN0W19saXN0Lmxlbmd0aCAtIChNYXRoLmFicyhnYXAuQXJyb3dVcCkgKyAxIC0gKGluZGV4ICsgMSkpXTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghZGF5VG9Gb2N1cz8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdkYXlUb0ZvY3VzJywgZGF5VG9Gb2N1cz8uZGF0ZSk7XG4gICAgICAgICAgICBkYXlUb0ZvY3VzPy5mb2N1cygna2V5Ym9hcmQnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAodGhpcy52aWV3ID09PSAnZGF5cycpIHtcbiAgICAgICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UoMCwgWydBcnJvd1JpZ2h0JywgJ0Fycm93RG93biddLmluY2x1ZGVzKGV2ZW50S2V5KSA/IDEgOiAtMSk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy52aWV3ID09PSAnbW9udGhzJykge1xuICAgICAgICB0aGlzLnNldENhbGVuZGFyUGFnZShbJ0Fycm93UmlnaHQnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoZXZlbnRLZXkpID8gMSA6IC0xKTtcbiAgICAgICAgLy8gdGhpcy5jYWxlbmRhckRheXM/LnJlc2V0KHRoaXMuY2FsZW5kYXJEYXlzLnRvQXJyYXkoKSk7XG4gICAgICAgIC8vIHRoaXMuY2FsZW5kYXJEYXlzPy5ub3RpZnlPbkNoYW5nZXMoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnZpZXcgPT09ICd5ZWFycycpIHtcbiAgICAgICAgdGhpcy5zZXRDYWxlbmRhclBhZ2UoWydBcnJvd1JpZ2h0JywgJ0Fycm93RG93biddLmluY2x1ZGVzKGV2ZW50S2V5KSA/IDEyIDogLTEyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBuZXh0RWxlbWVudCA9IGxpc3RbaW5kZXggKyBnYXBbZXZlbnRLZXldXTtcbiAgICBpZiAobmV4dEVsZW1lbnQ/LnRhYkluZGV4ID09PSAwKSB7XG4gICAgICBuZXh0RWxlbWVudC5mb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSBpbmRleDsgaSA8IGxpc3QubGVuZ3RoOyBsaXN0Lmxlbmd0aCAmJiBbJ0Fycm93UmlnaHQnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoZXZlbnRLZXkpID8gaSsrIDogaS0tKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICBjb25zdCBuZXh0RWxlbWVudCA9IGxpc3RbaSArIGdhcFtldmVudEtleV1dO1xuICAgICAgaWYgKG5leHRFbGVtZW50Py50YWJJbmRleCA9PT0gMCkge1xuICAgICAgICAvLyBAdHMtaWdub3JlXG4gICAgICAgIG5leHRFbGVtZW50Py5mb2N1cygpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmICghbmV4dEVsZW1lbnQpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlQ2VsbE1vdXNlTGVhdmUoKSB7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgaG92ZXJEYXRlOiBudWxsIH0pO1xuICB9XG5cbiAgaGFuZGxlRGF5Q2VsbEtleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCwgZGF0ZTogRGF0ZSkge1xuICAgIGlmIChbJ1NwYWNlJywgJ0VudGVyJ10uaW5jbHVkZXMoJGV2ZW50LmNvZGUpKSB7XG4gICAgICB0aGlzLmhhbmRsZURheUNlbGxDbGljayhkYXRlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKFsnVGFiJywgJ0Fycm93UmlnaHQnLCAnQXJyb3dMZWZ0JywgJ0Fycm93VXAnLCAnQXJyb3dEb3duJ10uaW5jbHVkZXMoJGV2ZW50LmNvZGUpKSB7XG4gICAgICB0aGlzLmhhbmRsZUNlbGxNb3VzZUVudGVyKGRhdGUpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZURheUNlbGxDbGljayhkYXRlOiBEYXRlKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ2RheScgJiYgdGhpcy5pc0RhdGVEaXNhYmxlZChkYXRlKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5yYW5nZSkge1xuICAgICAgdGhpcy5lbmREYXRlID0gbnVsbDtcbiAgICAgIHRoaXMuc3RhcnREYXRlID0gZGF0ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdGFydERhdGUgJiYgdGhpcy5lbmREYXRlKSB7XG4gICAgICB0aGlzLmNhbGVuZGFyRGF0ZSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCAxLCAwLCAwLCAwLCAwKTtcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IG51bGw7XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IG51bGw7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCEhdGhpcy5zdGFydERhdGUgJiYgIXRoaXMuZW5kRGF0ZSkge1xuICAgICAgaWYgKHRoaXMuc3RhcnREYXRlICYmIGRhdGUgPCB0aGlzLnN0YXJ0RGF0ZSkge1xuICAgICAgICB0aGlzLmVuZERhdGUgPSBudWxsO1xuICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9IGRhdGU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVuZERhdGUgPSBkYXRlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVuZERhdGUgPSBudWxsO1xuICAgICAgdGhpcy5zdGFydERhdGUgPSBkYXRlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnN0YXJ0RGF0ZSAmJiB0aGlzLmVuZERhdGUpIHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIGlmIChpc0RhdGVJblJhbmdlRGlzYWJsZWQodGhpcy5zdGFydERhdGUsIHRoaXMuZW5kRGF0ZSwgdGhpcy5kaXNhYmxlZERhdGVzKSkge1xuICAgICAgICB0aGlzLnN0YXJ0RGF0ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuZW5kRGF0ZSA9IG51bGw7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gbGV0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLnN0YXJ0RGF0ZSk7XG4gICAgICAvLyB3aGlsZSAoZGF0ZSA8IHRoaXMuZW5kRGF0ZSkge1xuICAgICAgLy8gICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgKyAxKTtcbiAgICAgIC8vICAgaWYgKHRoaXMuaXNEYXRlRGlzYWJsZWQoZGF0ZSkpIHtcbiAgICAgIC8vICAgICB0aGlzLnN0YXJ0RGF0ZSA9IG51bGw7XG4gICAgICAvLyAgICAgdGhpcy5lbmREYXRlID0gbnVsbDtcbiAgICAgIC8vICAgICBicmVhaztcbiAgICAgIC8vICAgfVxuICAgICAgLy8gfVxuICAgIH1cbiAgfVxuXG4gIGNhbGVuZGFyU3RhdGVTdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UuY2FsZW5kYXJTdGF0ZSQucGlwZShcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLiNkZXN0cm95UmVmKVxuICAgICkuc3Vic2NyaWJlKHN0YXRlID0+IHtcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhzdGF0ZSk7XG5cbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgLy8gaWYgKGtleSBpbiB0aGlzKSB7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdGhpc1trZXldID0gc3RhdGVba2V5XTtcbiAgICAgICAgLy8gfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0TW9udGhTdGFydChpbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuY2FsZW5kYXJEYXRlLmdldEZ1bGxZZWFyKCksIGluZGV4LCAxLCAwLCAwLCAwLCAwKTtcbiAgfVxuXG4gIGdldE1vbnRoRW5kKGluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5jYWxlbmRhckRhdGUuZ2V0RnVsbFllYXIoKSwgaW5kZXggKyAxLCAxLCAwLCAwLCAtMSwgMCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNEYXRlSW5SYW5nZURpc2FibGVkID0gaXNEYXRlSW5SYW5nZURpc2FibGVkO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNEYXRlQmV0d2Vlbk1pbk1heCA9IGlzRGF0ZUJldHdlZW5NaW5NYXg7XG5cbiAgZ2V0WWVhclN0YXJ0KHllYXI6IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgRGF0ZSh5ZWFyLCAwLCAxKTtcbiAgfVxuXG4gIGdldFllYXJFbmQoeWVhcjogbnVtYmVyKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHllYXIsIDExLCAxLCAwLCAwLCAtMSwgMCk7XG4gIH1cbn1cbiIsIjx0YWJsZT5cbiAgPHRoZWFkICpuZ0lmPVwidmlldyA9PT0gJ2RheXMnXCI+XG4gIDx0cj5cbiAgICA8dGggKm5nSWY9XCJzaG93V2Vla051bWJlclwiIGNsYXNzPVwiY2FsZW5kYXItY2VsbFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWhlYWRlci1jZWxsLWlubmVyXCI+e3sgd2Vla051bWJlcnNMYWJlbCB9fTwvZGl2PlxuICAgIDwvdGg+XG4gICAgPHRoICpuZ0Zvcj1cImxldCB3ZWVrRGF5IG9mIHdlZWtEYXlzOyBpbmRleCBhcyBpOyBjb3VudCBhcyBjbnRcIiBjbGFzcz1cImNhbGVuZGFyLWNlbGxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1oZWFkZXItY2VsbC1pbm5lclwiPlxuICAgICAgICB7eyB3ZWVrRGF5LmRhdGUgfCBjYWxlbmRhcldlZWtkYXk6d2Vla2RheUZvcm1hdDpsb2NhbGUgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvdGg+XG4gIDwvdHI+XG4gIDwvdGhlYWQ+XG4gIDx0Ym9keSAobW91c2VsZWF2ZSk9XCJoYW5kbGVDZWxsTW91c2VMZWF2ZSgpXCIgW25nU3dpdGNoXT1cInZpZXdcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3llYXJzJ1wiPlxuICAgIDx0ciAqbmdGb3I9XCJsZXQgeWVhcnNSb3cgb2YgbGlzdE9mWWVhcnMoKTsgaW5kZXggYXMgcm93SWR4XCI+XG4gICAgICA8dGRcbiAgICAgICAgI2NhbGVuZGFyWWVhcj1cImNDYWxlbmRhckRheVwiXG4gICAgICAgIChjbGljayk9XCIhY2FsZW5kYXJZZWFyLmRpc2FibGVkJCgpICYmIGhhbmRsZVllYXJDZWxsQ2xpY2soeWVhcilcIlxuICAgICAgICAoa2V5ZG93bik9XCJjYWxlbmRhclllYXIuZGF0ZSAmJiBoYW5kbGVEYXlDZWxsS2V5RG93bigkZXZlbnQsIGNhbGVuZGFyWWVhci5kYXRlKVwiXG4gICAgICAgIChrZXl1cCk9XCJoYW5kbGVZZWFyQ2VsbEtleVVwKCRldmVudCwgY2FsZW5kYXJZZWFyLmRhdGUpXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwiY2FsZW5kYXJZZWFyLmRhdGUgJiYgaGFuZGxlQ2VsbE1vdXNlRW50ZXIoY2FsZW5kYXJZZWFyLmRhdGUpXCJcbiAgICAgICAgKm5nRm9yPVwibGV0IHllYXIgb2YgeWVhcnNSb3c7IGluZGV4IGFzIGlkeFwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiY2FsZW5kYXJZZWFyLmRhdGUuZ2V0RnVsbFllYXIoKVwiXG4gICAgICAgIFtkYXRlXT1cImdldFllYXJTdGFydCh5ZWFyKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInllYXIgfCBjYWxlbmRhckNsYXNzWWVhclwiXG4gICAgICAgIFt0YWJpbmRleF09XCJjYWxlbmRhclllYXIuZGlzYWJsZWQkKCkgPyAtMSA6IDBcIlxuICAgICAgICBjQ2FsZW5kYXJEYXlcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWNlbGwtaW5uZXJcIj5cbiAgICAgICAgICB7eyB5ZWFyTnVtYmVyKHllYXIpIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21vbnRocydcIj5cbiAgICA8dHIgKm5nRm9yPVwibGV0IG1vbnRoc1JvdyBvZiBsaXN0T2ZNb250aHMoKTsgaW5kZXggYXMgcm93SWR4XCI+XG4gICAgICA8dGRcbiAgICAgICAgI2NhbGVuZGFyTW9udGg9XCJjQ2FsZW5kYXJEYXlcIlxuICAgICAgICAoY2xpY2spPVwiIWNhbGVuZGFyTW9udGguZGlzYWJsZWQkKCkgJiYgaGFuZGxlTW9udGhDZWxsQ2xpY2soY2FsZW5kYXJNb250aC5kYXRlKVwiXG4gICAgICAgIChrZXlkb3duKT1cImNhbGVuZGFyTW9udGguZGF0ZSAmJiBoYW5kbGVEYXlDZWxsS2V5RG93bigkZXZlbnQsIGNhbGVuZGFyTW9udGguZGF0ZSlcIlxuICAgICAgICAoa2V5dXApPVwiaGFuZGxlTW9udGhDZWxsS2V5VXAoJGV2ZW50LCBjYWxlbmRhck1vbnRoLmRhdGUpXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwiY2FsZW5kYXJNb250aC5kYXRlICYmIGhhbmRsZUNlbGxNb3VzZUVudGVyKGNhbGVuZGFyTW9udGguZGF0ZSlcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgbW9udGggb2YgbW9udGhzUm93OyBpbmRleCBhcyBpZHhcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImNhbGVuZGFyTW9udGguZGF0ZS5nZXRGdWxsWWVhcigpKycgJyttb250aC5tb250aFwiXG4gICAgICAgIFtkYXRlXT1cImdldE1vbnRoU3RhcnQocm93SWR4KjMraWR4KVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cImNhbGVuZGFyRGF0ZSB8IGNhbGVuZGFyQ2xhc3NNb250aDoocm93SWR4KjMraWR4KVwiXG4gICAgICAgIFt0YWJpbmRleF09XCJjYWxlbmRhck1vbnRoLmRpc2FibGVkJCgpID8gLTEgOiAwXCJcbiAgICAgICAgY0NhbGVuZGFyRGF5XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1jZWxsLWlubmVyXCI+XG4gICAgICAgICAge3sgbW9udGgubW9udGggfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgPHRyICNjYWxlbmRhclJvdz1cImNDYWxlbmRhclJvd1wiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3Rpb25UeXBlID09PSAnd2VlaycgJiYgKGNhbGVuZGFyUm93LmN1cnJlbnQpICYmIGNhbGVuZGFyUm93LmRhdGUgJiYgaGFuZGxlRGF5Q2VsbENsaWNrKGNhbGVuZGFyUm93LmRhdGUpXCJcbiAgICAgICAgKGtleWRvd24pPVwic2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIChjYWxlbmRhclJvdy5jdXJyZW50KSAmJiBjYWxlbmRhclJvdy5kYXRlICYmIGhhbmRsZURheUNlbGxLZXlEb3duKCRldmVudCwgY2FsZW5kYXJSb3cuZGF0ZSlcIlxuICAgICAgICAoa2V5dXApPVwic2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIChjYWxlbmRhclJvdy5jdXJyZW50KSAmJiBjYWxlbmRhclJvdy5kYXRlICYmIGhhbmRsZURheUNlbGxLZXlVcCgkZXZlbnQsIGNhbGVuZGFyUm93LmRhdGUpXCJcbiAgICAgICAgKG1vdXNlZW50ZXIpPVwic2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIGNhbGVuZGFyUm93LmRhdGUgJiYgaGFuZGxlQ2VsbE1vdXNlRW50ZXIoY2FsZW5kYXJSb3cuZGF0ZSlcIlxuICAgICAgICAqbmdGb3I9XCJsZXQgd2VlayBvZiBtb250aERldGFpbHM7IGluZGV4IGFzIGlcIlxuICAgICAgICBbY0NhbGVuZGFyUm93XT1cIndlZWtcIlxuICAgID5cbiAgICAgIDx0aCAqbmdJZj1cInNob3dXZWVrTnVtYmVyXCIgY2xhc3M9XCJjYWxlbmRhci1jZWxsLXdlZWstbnVtYmVyXCI+XG4gICAgICAgIHt7d2Vlay53ZWVrTnVtYmVyID09PSAwID8gNTMgOiB3ZWVrLndlZWtOdW1iZXJ9fVxuICAgICAgPC90aD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGRhdGVPYmogb2Ygd2Vlay5kYXlzOyBpbmRleCBhcyBpZHhcIj5cbiAgICAgICAgPHRkICNjYWxlbmRhckNlbGw9XCJjQ2FsZW5kYXJEYXlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGlvblR5cGUgPT09ICdkYXknICYmIChkYXRlT2JqLm1vbnRoID09PSAnY3VycmVudCcgfHwgc2VsZWN0QWRqYWNlbnREYXlzKSAmJiBoYW5kbGVEYXlDZWxsQ2xpY2soZGF0ZU9iai5kYXRlKVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJzZWxlY3Rpb25UeXBlID09PSAnZGF5JyAmJiAoZGF0ZU9iai5tb250aCA9PT0gJ2N1cnJlbnQnIHx8IHNlbGVjdEFkamFjZW50RGF5cykgJiYgaGFuZGxlRGF5Q2VsbEtleURvd24oJGV2ZW50LCBkYXRlT2JqLmRhdGUpXCJcbiAgICAgICAgICAgIChrZXl1cCk9XCJzZWxlY3Rpb25UeXBlID09PSAnZGF5JyAmJiAoZGF0ZU9iai5tb250aCA9PT0gJ2N1cnJlbnQnIHx8IHNlbGVjdEFkamFjZW50RGF5cykgJiYgaGFuZGxlRGF5Q2VsbEtleVVwKCRldmVudCwgZGF0ZU9iai5kYXRlKVwiXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJzZWxlY3Rpb25UeXBlID09PSAnZGF5JyAmJiAoZGF0ZU9iai5tb250aCA9PT0gJ2N1cnJlbnQnIHx8IHNlbGVjdEFkamFjZW50RGF5cykgJiYgaGFuZGxlQ2VsbE1vdXNlRW50ZXIoZGF0ZU9iai5kYXRlKVwiXG4gICAgICAgICAgICAqbmdJZj1cIihkYXRlT2JqLm1vbnRoID09PSAnY3VycmVudCcgfHwgc2hvd0FkamFjZW50RGF5cyk7IGVsc2UgZW1wdHlDZWxsXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZGF0ZU9iai5kYXRlIHwgY2FsZW5kYXJEYXlUaXRsZTpsb2NhbGVcIlxuICAgICAgICAgICAgW2RhdGVdPVwiZGF0ZU9iai5kYXRlXCJcbiAgICAgICAgICAgIFttb250aF09XCJkYXRlT2JqLm1vbnRoXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cImRhdGVPYmogfCBjYWxlbmRhckNsYXNzRGF5OnttaW5EYXRlLCBtYXhEYXRlLCBkaXNhYmxlZERhdGVzLCBkYXRlRmlsdGVyfVwiXG4gICAgICAgICAgICBbdGFiaW5kZXhdPVwic2VsZWN0aW9uVHlwZSA9PT0gJ2RheScgJiYgKGRhdGVPYmoubW9udGggPT09ICdjdXJyZW50JyB8fCBzZWxlY3RBZGphY2VudERheXMpICYmICFpc0RhdGVEaXNhYmxlZChkYXRlT2JqLmRhdGUpID8gMCA6IC0xXCJcbiAgICAgICAgICAgIGNDYWxlbmRhckRheVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWNlbGwtaW5uZXJcIj5cbiAgICAgICAgICAgIHt7IGRhdGVPYmouZGF0ZSB8IGNhbGVuZGFyRGF5OmRheUZvcm1hdDpsb2NhbGUgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eUNlbGw+XG4gICAgICAgICAgPHRkIGNsYXNzPVwiY2FsZW5kYXItY2VsbFwiPjwvdGQ+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3RyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG5cbiJdfQ==
|
|
@@ -94,10 +94,10 @@ export class CalendarRowDirective {
|
|
|
94
94
|
getLabel() {
|
|
95
95
|
return this.date?.toLocaleDateString(this.locale) ?? '';
|
|
96
96
|
}
|
|
97
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0
|
|
98
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0
|
|
97
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalendarRowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
98
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0", type: CalendarRowDirective, isStandalone: true, selector: "[cCalendarRow]", inputs: { week: ["cCalendarRow", "week"] }, host: { properties: { "attr.tabindex": "this.tabindex", "class": "this.hostClasses" } }, exportAs: ["cCalendarRow"], ngImport: i0 }); }
|
|
99
99
|
}
|
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalendarRowDirective, decorators: [{
|
|
101
101
|
type: Directive,
|
|
102
102
|
args: [{
|
|
103
103
|
selector: '[cCalendarRow]',
|
|
@@ -114,4 +114,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImpor
|
|
|
114
114
|
type: HostBinding,
|
|
115
115
|
args: ['class']
|
|
116
116
|
}] } });
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItcm93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXItbW9udGgvY2FsZW5kYXItcm93LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBbUIsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBaUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFPdEQsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixXQUFXLENBQXNCO0lBQ2pDLGdCQUFnQixDQUEyQjtJQUkzQztRQUxBLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzQyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBcUQ3QixTQUFJLEdBQWdCLElBQUksQ0FBQztRQUN4QixjQUFTLEdBQWdCLElBQUksQ0FBQztRQUM5QixZQUFPLEdBQWdCLElBQUksQ0FBQztRQUM1QixjQUFTLEdBQWdCLElBQUksQ0FBQztRQUM5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TSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFELENBQUM7OEdBcElVLG9CQUFvQjtrR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsY0FBYztpQkFDekI7d0RBNENLLElBQUk7c0JBRFAsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkErQmQsUUFBUTtzQkFBekMsV0FBVzt1QkFBQyxlQUFlO2dCQVd4QixXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIGluamVjdCwgSW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9jdXNhYmxlT3B0aW9uLCBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQ2FsZW5kYXJTZXJ2aWNlLCBEYXRlRmlsdGVyVHlwZSwgU2VsZWN0aW9uVHlwZSB9IGZyb20gJy4uL2NhbGVuZGFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgY29udmVydFRvRGF0ZU9iamVjdCwgaXNEYXRlRGlzYWJsZWQsIGlzRGF0ZUluUmFuZ2UsIGlzRGF0ZVNlbGVjdGVkIH0gZnJvbSAnLi4vY2FsZW5kYXIudXRpbHMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjQ2FsZW5kYXJSb3ddJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgZXhwb3J0QXM6ICdjQ2FsZW5kYXJSb3cnXG59KVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyUm93RGlyZWN0aXZlIGltcGxlbWVudHMgRm9jdXNhYmxlT3B0aW9uIHtcblxuICAjZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgI2NhbGVuZGFyU2VydmljZSA9IGluamVjdChDYWxlbmRhclNlcnZpY2UpO1xuICBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBmb2N1c01vbml0b3IgPSBpbmplY3QoRm9jdXNNb25pdG9yKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLiNjYWxlbmRhclNlcnZpY2UuY2FsZW5kYXJTdGF0ZSQucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICApLnN1YnNjcmliZShzdGF0ZSA9PiB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHN0YXJ0RGF0ZSA9IHRoaXMuc3RhcnREYXRlLFxuICAgICAgICBlbmREYXRlID0gdGhpcy5lbmREYXRlLFxuICAgICAgICBob3ZlckRhdGUgPSB0aGlzLmhvdmVyRGF0ZSxcbiAgICAgICAgbWF4RGF0ZSA9IHRoaXMubWF4RGF0ZSxcbiAgICAgICAgbWluRGF0ZSA9IHRoaXMubWluRGF0ZSxcbiAgICAgICAgcmFuZ2UgPSB0aGlzLnJhbmdlLFxuICAgICAgICBkaXNhYmxlZERhdGVzID0gdGhpcy5kaXNhYmxlZERhdGVzLFxuICAgICAgICBkYXRlRmlsdGVyID0gdGhpcy5kYXRlRmlsdGVyLFxuICAgICAgICBzZWxlY3Rpb25UeXBlID0gdGhpcy5zZWxlY3Rpb25UeXBlLFxuICAgICAgICBjYWxlbmRhckRhdGUgPSB0aGlzLmNhbGVuZGFyRGF0ZSxcbiAgICAgICAgbG9jYWxlID0gdGhpcy5sb2NhbGVcbiAgICAgIH0gPSB7IC4uLnN0YXRlIH07XG4gICAgICB0aGlzLnN0YXJ0RGF0ZSA9IHN0YXJ0RGF0ZTtcbiAgICAgIHRoaXMuZW5kRGF0ZSA9IGVuZERhdGU7XG4gICAgICB0aGlzLmhvdmVyRGF0ZSA9IGhvdmVyRGF0ZTtcbiAgICAgIHRoaXMubWF4RGF0ZSA9IG1heERhdGU7XG4gICAgICB0aGlzLm1pbkRhdGUgPSBtaW5EYXRlO1xuICAgICAgdGhpcy5yYW5nZSA9IHJhbmdlO1xuICAgICAgdGhpcy5kaXNhYmxlZERhdGVzID0gZGlzYWJsZWREYXRlcztcbiAgICAgIHRoaXMuZGF0ZUZpbHRlciA9IGRhdGVGaWx0ZXI7XG4gICAgICB0aGlzLnNlbGVjdGlvblR5cGUgPSBzZWxlY3Rpb25UeXBlO1xuICAgICAgdGhpcy5jYWxlbmRhckRhdGUgPSBjYWxlbmRhckRhdGUgPz8gbmV3IERhdGUoKTtcbiAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlID8/ICdkZWZhdWx0JztcblxuICAgICAgLy8gdGhpcy4jdGFiaW5kZXguc2V0KHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIHRoaXMuY3VycmVudCAmJiAhdGhpcy5kaXNhYmxlZCA/IDAgOiAtMSk7XG5cbiAgICB9KTtcbiAgfVxuXG4gIEBJbnB1dCh7IGFsaWFzOiAnY0NhbGVuZGFyUm93JywgcmVxdWlyZWQ6IHRydWUgfSlcbiAgc2V0IHdlZWsodmFsdWU6IHtcbiAgICB3ZWVrTnVtYmVyOiBudW1iZXIsXG4gICAgZGF5czogeyBkYXRlOiBEYXRlLCBtb250aDogc3RyaW5nIH1bXVxuICB9KSB7XG4gICAgdGhpcy5jdXJyZW50ID0gdmFsdWUuZGF5cy5zb21lKChkYXkpID0+IGRheS5tb250aCA9PT0gJ2N1cnJlbnQnKTtcbiAgICB0aGlzLiN0YWJpbmRleC5zZXQodGhpcy5zZWxlY3Rpb25UeXBlID09PSAnd2VlaycgJiYgdGhpcy5jdXJyZW50ICYmICF0aGlzLmRpc2FibGVkID8gMCA6IC0xKTtcbiAgICB0aGlzLiN3ZWVrID0gdmFsdWU7XG4gIH07XG5cbiAgZ2V0IHdlZWsoKSB7XG4gICAgcmV0dXJuIHRoaXMuI3dlZWs7XG4gIH1cblxuICAjd2VlazogYW55O1xuXG4gIHB1YmxpYyBkYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgc3RhcnREYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgZW5kRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGhvdmVyRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIG1heERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBtaW5EYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgcmFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBzZWxlY3Rpb25UeXBlOiBTZWxlY3Rpb25UeXBlID0gJ3dlZWsnO1xuICBwcml2YXRlIGRpc2FibGVkRGF0ZXMhOiAoRGF0ZSB8IERhdGVbXSlbXTtcbiAgcHJpdmF0ZSBkYXRlRmlsdGVyITogRGF0ZUZpbHRlclR5cGU7XG4gIHByaXZhdGUgY2FsZW5kYXJEYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgcHJpdmF0ZSBsb2NhbGU6IHN0cmluZyA9ICdkZWZhdWx0JztcbiAgZGlzYWJsZWQhOiBib29sZWFuO1xuICBjdXJyZW50ITogYm9vbGVhbjtcblxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKSBnZXQgdGFiaW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy4jdGFiaW5kZXgoKTtcbiAgfTtcblxuICAjdGFiaW5kZXggPSBzaWduYWwoLTEpO1xuXG4gIGdldCBzZWxlY3RFbmREYXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5yYW5nZSAmJiAhIXRoaXMuc3RhcnREYXRlICYmICF0aGlzLmVuZERhdGUpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBob3N0Q2xhc3NlcygpOiBhbnkge1xuXG4gICAgaWYgKCF0aGlzLndlZWspIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgICdjYWxlbmRhci1yb3cnOiB0cnVlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IHdlZWsgPSB0aGlzLndlZWs7XG4gICAgY29uc3QgY2FsZW5kYXJEYXRlID0gdGhpcy5jYWxlbmRhckRhdGU7XG4gICAgY29uc3Qgc2VsZWN0aW9uVHlwZSA9IHRoaXMuc2VsZWN0aW9uVHlwZTtcblxuICAgIHRoaXMuZGF0ZSA9IGNvbnZlcnRUb0RhdGVPYmplY3QoXG4gICAgICB3ZWVrLndlZWtOdW1iZXIgPT09IDBcbiAgICAgID8gYCR7Y2FsZW5kYXJEYXRlLmdldEZ1bGxZZWFyKCl9VzUzYFxuICAgICAgOiBgJHtjYWxlbmRhckRhdGUuZ2V0RnVsbFllYXIoKX1XJHt3ZWVrLndlZWtOdW1iZXJ9YCxcbiAgICAgIHNlbGVjdGlvblR5cGVcbiAgICApO1xuXG4gICAgdGhpcy5jdXJyZW50ID0gd2Vlay5kYXlzLnNvbWUoKGRheSkgPT4gZGF5Lm1vbnRoID09PSAnY3VycmVudCcpO1xuXG4gICAgY29uc3QgaW5SYW5nZSA9IHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIGlzRGF0ZUluUmFuZ2UodGhpcy5kYXRlLCB0aGlzLnN0YXJ0RGF0ZSwgdGhpcy5lbmREYXRlKTtcbiAgICBjb25zdCByYW5nZUhvdmVyID0gdGhpcy5zZWxlY3Rpb25UeXBlID09PSAnd2VlaycgJiYgdGhpcy5ob3ZlckRhdGUgJiYgdGhpcy5zZWxlY3RFbmREYXRlXG4gICAgICAgICAgICAgICAgICAgICAgID8gaXNEYXRlSW5SYW5nZSh0aGlzLmRhdGUsIHRoaXMuc3RhcnREYXRlLCB0aGlzLmhvdmVyRGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgOiBpc0RhdGVJblJhbmdlKHRoaXMuZGF0ZSwgdGhpcy5ob3ZlckRhdGUsIHRoaXMuZW5kRGF0ZSk7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBpc0RhdGVTZWxlY3RlZCh0aGlzLmRhdGUsIHRoaXMuc3RhcnREYXRlLCB0aGlzLmVuZERhdGUpO1xuICAgIGNvbnN0IGRpc2FibGVkRGF0ZSA9IGlzRGF0ZURpc2FibGVkKHRoaXMuZGF0ZSwgdGhpcy5taW5EYXRlLCB0aGlzLm1heERhdGUsIHRoaXMuZGlzYWJsZWREYXRlcyk7XG4gICAgY29uc3QgZGlzYWJsZWRCeUZpbHRlciA9IChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodGhpcy5kYXRlRmlsdGVyKSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJyAmJiB0aGlzLmRhdGUpID8gIXRoaXMuZGF0ZUZpbHRlcih0aGlzLmRhdGUpIDogZmFsc2U7XG5cbiAgICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWREYXRlIHx8IGRpc2FibGVkQnlGaWx0ZXI7XG5cbiAgICByZXR1cm4ge1xuICAgICAgJ2NhbGVuZGFyLXJvdyc6IHRydWUsXG4gICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCxcbiAgICAgIHJhbmdlOiBpblJhbmdlLFxuICAgICAgJ3JhbmdlLWhvdmVyJzogcmFuZ2VIb3ZlcixcbiAgICAgIHNlbGVjdGVkOiBzZWxlY3RlZCxcbiAgICAgIGN1cnJlbnQ6IHRoaXMuY3VycmVudFxuICAgIH07XG5cbiAgfVxuXG4gIGZvY3VzKG9yaWdpbj86IEZvY3VzT3JpZ2luKTogdm9pZCB7XG4gICAgdGhpcy5mb2N1c01vbml0b3IuZm9jdXNWaWEodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIG9yaWdpbiA/PyAna2V5Ym9hcmQnKTtcbiAgfVxuXG4gIGdldExhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZT8udG9Mb2NhbGVEYXRlU3RyaW5nKHRoaXMubG9jYWxlKSA/PyAnJztcbiAgfVxuXG59XG4iXX0=
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItcm93LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXItbW9udGgvY2FsZW5kYXItcm93LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBbUIsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBaUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFPdEQsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixXQUFXLENBQXNCO0lBQ2pDLGdCQUFnQixDQUEyQjtJQUkzQztRQUxBLGdCQUFXLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMzQyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hDLGlCQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBcUQ3QixTQUFJLEdBQWdCLElBQUksQ0FBQztRQUN4QixjQUFTLEdBQWdCLElBQUksQ0FBQztRQUM5QixZQUFPLEdBQWdCLElBQUksQ0FBQztRQUM1QixjQUFTLEdBQWdCLElBQUksQ0FBQztRQUM5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SSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxRCxDQUFDOzhHQXBJVSxvQkFBb0I7a0dBQXBCLG9CQUFvQjs7MkZBQXBCLG9CQUFvQjtrQkFMaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCO3dEQTRDSyxJQUFJO3NCQURQLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBK0JkLFFBQVE7c0JBQXpDLFdBQVc7dUJBQUMsZUFBZTtnQkFXeEIsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBpbmplY3QsIElucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvY3VzYWJsZU9wdGlvbiwgRm9jdXNNb25pdG9yLCBGb2N1c09yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSwgRGF0ZUZpbHRlclR5cGUsIFNlbGVjdGlvblR5cGUgfSBmcm9tICcuLi9jYWxlbmRhci5zZXJ2aWNlJztcbmltcG9ydCB7IGNvbnZlcnRUb0RhdGVPYmplY3QsIGlzRGF0ZURpc2FibGVkLCBpc0RhdGVJblJhbmdlLCBpc0RhdGVTZWxlY3RlZCB9IGZyb20gJy4uL2NhbGVuZGFyLnV0aWxzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY0NhbGVuZGFyUm93XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGV4cG9ydEFzOiAnY0NhbGVuZGFyUm93J1xufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhclJvd0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEZvY3VzYWJsZU9wdGlvbiB7XG5cbiAgI2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICNjYWxlbmRhclNlcnZpY2UgPSBpbmplY3QoQ2FsZW5kYXJTZXJ2aWNlKTtcbiAgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgZm9jdXNNb25pdG9yID0gaW5qZWN0KEZvY3VzTW9uaXRvcik7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy4jY2FsZW5kYXJTZXJ2aWNlLmNhbGVuZGFyU3RhdGUkLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuI2Rlc3Ryb3lSZWYpXG4gICAgKS5zdWJzY3JpYmUoc3RhdGUgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBzdGFydERhdGUgPSB0aGlzLnN0YXJ0RGF0ZSxcbiAgICAgICAgZW5kRGF0ZSA9IHRoaXMuZW5kRGF0ZSxcbiAgICAgICAgaG92ZXJEYXRlID0gdGhpcy5ob3ZlckRhdGUsXG4gICAgICAgIG1heERhdGUgPSB0aGlzLm1heERhdGUsXG4gICAgICAgIG1pbkRhdGUgPSB0aGlzLm1pbkRhdGUsXG4gICAgICAgIHJhbmdlID0gdGhpcy5yYW5nZSxcbiAgICAgICAgZGlzYWJsZWREYXRlcyA9IHRoaXMuZGlzYWJsZWREYXRlcyxcbiAgICAgICAgZGF0ZUZpbHRlciA9IHRoaXMuZGF0ZUZpbHRlcixcbiAgICAgICAgc2VsZWN0aW9uVHlwZSA9IHRoaXMuc2VsZWN0aW9uVHlwZSxcbiAgICAgICAgY2FsZW5kYXJEYXRlID0gdGhpcy5jYWxlbmRhckRhdGUsXG4gICAgICAgIGxvY2FsZSA9IHRoaXMubG9jYWxlXG4gICAgICB9ID0geyAuLi5zdGF0ZSB9O1xuICAgICAgdGhpcy5zdGFydERhdGUgPSBzdGFydERhdGU7XG4gICAgICB0aGlzLmVuZERhdGUgPSBlbmREYXRlO1xuICAgICAgdGhpcy5ob3ZlckRhdGUgPSBob3ZlckRhdGU7XG4gICAgICB0aGlzLm1heERhdGUgPSBtYXhEYXRlO1xuICAgICAgdGhpcy5taW5EYXRlID0gbWluRGF0ZTtcbiAgICAgIHRoaXMucmFuZ2UgPSByYW5nZTtcbiAgICAgIHRoaXMuZGlzYWJsZWREYXRlcyA9IGRpc2FibGVkRGF0ZXM7XG4gICAgICB0aGlzLmRhdGVGaWx0ZXIgPSBkYXRlRmlsdGVyO1xuICAgICAgdGhpcy5zZWxlY3Rpb25UeXBlID0gc2VsZWN0aW9uVHlwZTtcbiAgICAgIHRoaXMuY2FsZW5kYXJEYXRlID0gY2FsZW5kYXJEYXRlID8/IG5ldyBEYXRlKCk7XG4gICAgICB0aGlzLmxvY2FsZSA9IGxvY2FsZSA/PyAnZGVmYXVsdCc7XG5cbiAgICAgIC8vIHRoaXMuI3RhYmluZGV4LnNldCh0aGlzLnNlbGVjdGlvblR5cGUgPT09ICd3ZWVrJyAmJiB0aGlzLmN1cnJlbnQgJiYgIXRoaXMuZGlzYWJsZWQgPyAwIDogLTEpO1xuXG4gICAgfSk7XG4gIH1cblxuICBASW5wdXQoeyBhbGlhczogJ2NDYWxlbmRhclJvdycsIHJlcXVpcmVkOiB0cnVlIH0pXG4gIHNldCB3ZWVrKHZhbHVlOiB7XG4gICAgd2Vla051bWJlcjogbnVtYmVyLFxuICAgIGRheXM6IHsgZGF0ZTogRGF0ZSwgbW9udGg6IHN0cmluZyB9W11cbiAgfSkge1xuICAgIHRoaXMuY3VycmVudCA9IHZhbHVlLmRheXMuc29tZSgoZGF5KSA9PiBkYXkubW9udGggPT09ICdjdXJyZW50Jyk7XG4gICAgdGhpcy4jdGFiaW5kZXguc2V0KHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIHRoaXMuY3VycmVudCAmJiAhdGhpcy5kaXNhYmxlZCA/IDAgOiAtMSk7XG4gICAgdGhpcy4jd2VlayA9IHZhbHVlO1xuICB9O1xuXG4gIGdldCB3ZWVrKCkge1xuICAgIHJldHVybiB0aGlzLiN3ZWVrO1xuICB9XG5cbiAgI3dlZWs6IGFueTtcblxuICBwdWJsaWMgZGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHN0YXJ0RGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGVuZERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBob3ZlckRhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBtYXhEYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbWluRGF0ZTogRGF0ZSB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHJhbmdlOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgc2VsZWN0aW9uVHlwZTogU2VsZWN0aW9uVHlwZSA9ICd3ZWVrJztcbiAgcHJpdmF0ZSBkaXNhYmxlZERhdGVzITogKERhdGUgfCBEYXRlW10pW107XG4gIHByaXZhdGUgZGF0ZUZpbHRlciE6IERhdGVGaWx0ZXJUeXBlO1xuICBwcml2YXRlIGNhbGVuZGFyRGF0ZTogRGF0ZSA9IG5ldyBEYXRlKCk7XG4gIHByaXZhdGUgbG9jYWxlOiBzdHJpbmcgPSAnZGVmYXVsdCc7XG4gIGRpc2FibGVkITogYm9vbGVhbjtcbiAgY3VycmVudCE6IGJvb2xlYW47XG5cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgZ2V0IHRhYmluZGV4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuI3RhYmluZGV4KCk7XG4gIH07XG5cbiAgI3RhYmluZGV4ID0gc2lnbmFsKC0xKTtcblxuICBnZXQgc2VsZWN0RW5kRGF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMucmFuZ2UgJiYgISF0aGlzLnN0YXJ0RGF0ZSAmJiAhdGhpcy5lbmREYXRlKTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcblxuICAgIGlmICghdGhpcy53ZWVrKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAnY2FsZW5kYXItcm93JzogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCB3ZWVrID0gdGhpcy53ZWVrO1xuICAgIGNvbnN0IGNhbGVuZGFyRGF0ZSA9IHRoaXMuY2FsZW5kYXJEYXRlO1xuICAgIGNvbnN0IHNlbGVjdGlvblR5cGUgPSB0aGlzLnNlbGVjdGlvblR5cGU7XG5cbiAgICB0aGlzLmRhdGUgPSBjb252ZXJ0VG9EYXRlT2JqZWN0KFxuICAgICAgd2Vlay53ZWVrTnVtYmVyID09PSAwXG4gICAgICA/IGAke2NhbGVuZGFyRGF0ZS5nZXRGdWxsWWVhcigpfVc1M2BcbiAgICAgIDogYCR7Y2FsZW5kYXJEYXRlLmdldEZ1bGxZZWFyKCl9VyR7d2Vlay53ZWVrTnVtYmVyfWAsXG4gICAgICBzZWxlY3Rpb25UeXBlXG4gICAgKTtcblxuICAgIHRoaXMuY3VycmVudCA9IHdlZWsuZGF5cy5zb21lKChkYXkpID0+IGRheS5tb250aCA9PT0gJ2N1cnJlbnQnKTtcblxuICAgIGNvbnN0IGluUmFuZ2UgPSB0aGlzLnNlbGVjdGlvblR5cGUgPT09ICd3ZWVrJyAmJiBpc0RhdGVJblJhbmdlKHRoaXMuZGF0ZSwgdGhpcy5zdGFydERhdGUsIHRoaXMuZW5kRGF0ZSk7XG4gICAgY29uc3QgcmFuZ2VIb3ZlciA9IHRoaXMuc2VsZWN0aW9uVHlwZSA9PT0gJ3dlZWsnICYmIHRoaXMuaG92ZXJEYXRlICYmIHRoaXMuc2VsZWN0RW5kRGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICA/IGlzRGF0ZUluUmFuZ2UodGhpcy5kYXRlLCB0aGlzLnN0YXJ0RGF0ZSwgdGhpcy5ob3ZlckRhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgIDogaXNEYXRlSW5SYW5nZSh0aGlzLmRhdGUsIHRoaXMuaG92ZXJEYXRlLCB0aGlzLmVuZERhdGUpO1xuICAgIGNvbnN0IHNlbGVjdGVkID0gaXNEYXRlU2VsZWN0ZWQodGhpcy5kYXRlLCB0aGlzLnN0YXJ0RGF0ZSwgdGhpcy5lbmREYXRlKTtcbiAgICBjb25zdCBkaXNhYmxlZERhdGUgPSBpc0RhdGVEaXNhYmxlZCh0aGlzLmRhdGUsIHRoaXMubWluRGF0ZSwgdGhpcy5tYXhEYXRlLCB0aGlzLmRpc2FibGVkRGF0ZXMpO1xuICAgIGNvbnN0IGRpc2FibGVkQnlGaWx0ZXIgPSAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRoaXMuZGF0ZUZpbHRlcikgPT09ICdbb2JqZWN0IEZ1bmN0aW9uXScgJiYgdGhpcy5kYXRlKSA/ICF0aGlzLmRhdGVGaWx0ZXIodGhpcy5kYXRlKSA6IGZhbHNlO1xuXG4gICAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkRGF0ZSB8fCBkaXNhYmxlZEJ5RmlsdGVyO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICdjYWxlbmRhci1yb3cnOiB0cnVlLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG4gICAgICByYW5nZTogaW5SYW5nZSxcbiAgICAgICdyYW5nZS1ob3Zlcic6IHJhbmdlSG92ZXIsXG4gICAgICBzZWxlY3RlZDogc2VsZWN0ZWQsXG4gICAgICBjdXJyZW50OiB0aGlzLmN1cnJlbnRcbiAgICB9O1xuXG4gIH1cblxuICBmb2N1cyhvcmlnaW4/OiBGb2N1c09yaWdpbik6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNNb25pdG9yLmZvY3VzVmlhKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBvcmlnaW4gPz8gJ2tleWJvYXJkJyk7XG4gIH1cblxuICBnZXRMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhdGU/LnRvTG9jYWxlRGF0ZVN0cmluZyh0aGlzLmxvY2FsZSkgPz8gJyc7XG4gIH1cblxufVxuIl19
|
|
@@ -8,10 +8,10 @@ export class CalendarWeekdayPipe {
|
|
|
8
8
|
? date.toLocaleDateString(locale, { weekday: weekdayFormat })
|
|
9
9
|
: date.toLocaleDateString(locale, { weekday: 'long' }).slice(0, weekdayFormat);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalendarWeekdayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: CalendarWeekdayPipe, isStandalone: true, name: "calendarWeekday" }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalendarWeekdayPipe, decorators: [{
|
|
15
15
|
type: Pipe,
|
|
16
16
|
args: [{
|
|
17
17
|
name: 'calendarWeekday',
|
|
@@ -60,10 +60,10 @@ export class CalendarNavigationComponent {
|
|
|
60
60
|
this.handleNavigationClick(direction, years);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0
|
|
64
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalendarNavigationComponent, deps: [{ token: i1.CalendarService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CalendarNavigationComponent, isStandalone: true, selector: "c-calendar-navigation", inputs: { addMonths: "addMonths", calendarDate: "calendarDate", navigation: "navigation", navYearFirst: "navYearFirst" }, outputs: { navigationClick: "navigationClick" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<div *ngIf=\"navigation\" class=\"calendar-nav-prev\">\n <button\n (click)=\"handleNavigationClick('prev', true)\"\n (keyup)=\"handleNavigationKeyUp($event, 'prev', true)\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-double-prev\"></span>\n </button>\n <button\n (click)=\"handleNavigationClick('prev')\"\n (keyup)=\"handleNavigationKeyUp($event, 'prev')\"\n *ngIf=\"view === 'days'\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-prev\"></span>\n </button>\n</div>\n<div class=\"calendar-nav-date\" [ngStyle]=\"navYearFirst ? { display: 'flex', justifyContent: 'center' } : {}\">\n <button\n (click)=\"setView('months')\"\n *ngIf=\"view === 'days'\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n {{ date.toLocaleDateString(locale, { month: 'long' }) }}\n </button>\n <button\n (click)=\"setView('years')\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n [ngStyle]=\"navYearFirst ? { order: '-1' } : {}\"\n >\n {{ date.toLocaleDateString(locale, { year: 'numeric' }) }}\n </button>\n</div>\n<div *ngIf=\"navigation\" class=\"calendar-nav-next\">\n <button\n (click)=\"handleNavigationClick('next')\"\n (keyup)=\"handleNavigationKeyUp($event, 'next')\"\n *ngIf=\"view === 'days'\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-next\"></span>\n </button>\n <button\n (click)=\"handleNavigationClick('next', true)\"\n (keyup)=\"handleNavigationKeyUp($event, 'next', true)\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-double-next\"></span>\n </button>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: ButtonDirective, selector: "[cButton]", inputs: ["active", "color", "disabled", "shape", "size", "type", "variant"], exportAs: ["cButton"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
|
|
65
65
|
}
|
|
66
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0
|
|
66
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalendarNavigationComponent, decorators: [{
|
|
67
67
|
type: Component,
|
|
68
68
|
args: [{ selector: 'c-calendar-navigation', standalone: true, imports: [ButtonDirective, NgIf, NgStyle], template: "<div *ngIf=\"navigation\" class=\"calendar-nav-prev\">\n <button\n (click)=\"handleNavigationClick('prev', true)\"\n (keyup)=\"handleNavigationKeyUp($event, 'prev', true)\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-double-prev\"></span>\n </button>\n <button\n (click)=\"handleNavigationClick('prev')\"\n (keyup)=\"handleNavigationKeyUp($event, 'prev')\"\n *ngIf=\"view === 'days'\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-prev\"></span>\n </button>\n</div>\n<div class=\"calendar-nav-date\" [ngStyle]=\"navYearFirst ? { display: 'flex', justifyContent: 'center' } : {}\">\n <button\n (click)=\"setView('months')\"\n *ngIf=\"view === 'days'\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n {{ date.toLocaleDateString(locale, { month: 'long' }) }}\n </button>\n <button\n (click)=\"setView('years')\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n [ngStyle]=\"navYearFirst ? { order: '-1' } : {}\"\n >\n {{ date.toLocaleDateString(locale, { year: 'numeric' }) }}\n </button>\n</div>\n<div *ngIf=\"navigation\" class=\"calendar-nav-next\">\n <button\n (click)=\"handleNavigationClick('next')\"\n (keyup)=\"handleNavigationKeyUp($event, 'next')\"\n *ngIf=\"view === 'days'\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-next\"></span>\n </button>\n <button\n (click)=\"handleNavigationClick('next', true)\"\n (keyup)=\"handleNavigationKeyUp($event, 'next', true)\"\n cButton\n color=\"transparent\"\n size=\"sm\"\n tabindex=\"0\"\n >\n <span class=\"calendar-nav-icon calendar-nav-icon-double-next\"></span>\n </button>\n</div>\n" }]
|
|
69
69
|
}], ctorParameters: () => [{ type: i1.CalendarService }], propDecorators: { addMonths: [{
|
|
@@ -80,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImpor
|
|
|
80
80
|
type: HostBinding,
|
|
81
81
|
args: ['class']
|
|
82
82
|
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbmF2aWdhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLW5hdmlnYXRpb24vY2FsZW5kYXItbmF2aWdhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLW5hdmlnYXRpb24vY2FsZW5kYXItbmF2aWdhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7O0FBZS9DLE1BQU0sT0FBTywyQkFBMkI7SUFFdEMsV0FBVyxDQUFzQjtJQUVqQyxZQUNVLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUgxQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQVF4QixjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBV3ZCLGtCQUFhLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUUxQixlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzNCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRXZDLFdBQU0sR0FBVyxTQUFTLENBQUM7UUFDM0IsU0FBSSxHQUFnQyxNQUFNLENBQUM7UUFDM0Msa0JBQWEsR0FBa0IsS0FBSyxDQUFDO1FBRTNCLG9CQUFlLEdBQW1DLElBQUksWUFBWSxFQUFvQixDQUFDO1FBdkIvRixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBSUQsSUFDSSxZQUFZLENBQUMsS0FBVztRQUMxQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUM3QixDQUFDO0lBQUEsQ0FBQztJQUVGLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBYUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7SUFFRCxJQUNJLFdBQVc7UUFDYixPQUFPO1lBQ0wsY0FBYyxFQUFFLElBQUk7U0FDckIsQ0FBQztJQUNKLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjO2FBQ2hDLElBQUksQ0FDSCxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ3JDO2FBQ0EsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ25CLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ2hCLGFBQWE7b0JBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBaUM7UUFDdkMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQscUJBQXFCLENBQUMsU0FBMEIsRUFBRSxLQUFLLEdBQUcsS0FBSztRQUM3RCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQscUJBQXFCLENBQUMsTUFBcUIsRUFBRSxTQUEwQixFQUFFLEtBQWU7UUFDdEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQzs4R0F6RVUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsbVRDbkJ4QyxzNkRBb0VBLDBERG5EWSxlQUFlLDBKQUFFLElBQUksNkZBQUUsT0FBTzs7MkZBRTdCLDJCQUEyQjtrQkFQdkMsU0FBUzsrQkFDRSx1QkFBdUIsY0FHckIsSUFBSSxXQUNQLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxPQUFPLENBQUM7b0ZBWWhDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0YsWUFBWTtzQkFEZixLQUFLO2dCQVdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFNSSxlQUFlO3NCQUF4QixNQUFNO2dCQU9ILFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBpbmplY3QsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IE5nSWYsIE5nU3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9idXR0b24nO1xuaW1wb3J0IHsgQ2FsZW5kYXJTZXJ2aWNlLCBTZWxlY3Rpb25UeXBlIH0gZnJvbSAnLi4vY2FsZW5kYXIuc2VydmljZSc7XG5cbmludGVyZmFjZSBJTmF2aWdhdGlvbkNsaWNrIHtcbiAgZGlyZWN0aW9uOiAoJ3ByZXYnIHwgJ25leHQnKTtcbiAgeWVhcnM6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2MtY2FsZW5kYXItbmF2aWdhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci1uYXZpZ2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXItbmF2aWdhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQnV0dG9uRGlyZWN0aXZlLCBOZ0lmLCBOZ1N0eWxlXVxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhck5hdmlnYXRpb25Db21wb25lbnQge1xuXG4gICNkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2FsZW5kYXJTZXJ2aWNlOiBDYWxlbmRhclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jYWxlbmRhclN0YXRlU3Vic2NyaWJlKCk7XG4gIH1cblxuICBASW5wdXQoKSBhZGRNb250aHM6IG51bWJlciA9IDA7XG5cbiAgQElucHV0KClcbiAgc2V0IGNhbGVuZGFyRGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgIHRoaXMuX2NhbGVuZGFyRGF0ZSA9IHZhbHVlO1xuICB9O1xuXG4gIGdldCBjYWxlbmRhckRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NhbGVuZGFyRGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbGVuZGFyRGF0ZSA9IG5ldyBEYXRlKCk7XG5cbiAgQElucHV0KCkgbmF2aWdhdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIG5hdlllYXJGaXJzdDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGxvY2FsZTogc3RyaW5nID0gJ2RlZmF1bHQnO1xuICB2aWV3OiAnZGF5cycgfCAnbW9udGhzJyB8ICd5ZWFycycgPSAnZGF5cyc7XG4gIHNlbGVjdGlvblR5cGU6IFNlbGVjdGlvblR5cGUgPSAnZGF5JztcblxuICBAT3V0cHV0KCkgbmF2aWdhdGlvbkNsaWNrOiBFdmVudEVtaXR0ZXI8SU5hdmlnYXRpb25DbGljaz4gPSBuZXcgRXZlbnRFbWl0dGVyPElOYXZpZ2F0aW9uQ2xpY2s+KCk7XG5cbiAgZ2V0IGRhdGUoKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuY2FsZW5kYXJEYXRlLmdldEZ1bGxZZWFyKCksIHRoaXMuY2FsZW5kYXJEYXRlLmdldE1vbnRoKCkgKyB0aGlzLmFkZE1vbnRocyk7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IGhvc3RDbGFzc2VzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgICdjYWxlbmRhci1uYXYnOiB0cnVlXG4gICAgfTtcbiAgfVxuXG4gIGNhbGVuZGFyU3RhdGVTdWJzY3JpYmUoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UuY2FsZW5kYXJTdGF0ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy4jZGVzdHJveVJlZilcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoc3RhdGUgPT4ge1xuICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHN0YXRlKTtcbiAgICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgaWYgKGtleSBpbiB0aGlzKSB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHRoaXNba2V5XSA9IHN0YXRlW2tleV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHNldFZpZXcodmlldzogJ2RheXMnIHwgJ21vbnRocycgfCAneWVhcnMnKSB7XG4gICAgdGhpcy52aWV3ID0gdmlldztcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyB2aWV3OiB2aWV3IH0pO1xuICB9XG5cbiAgaGFuZGxlTmF2aWdhdGlvbkNsaWNrKGRpcmVjdGlvbjogJ3ByZXYnIHwgJ25leHQnLCB5ZWFycyA9IGZhbHNlKSB7XG4gICAgdGhpcy5uYXZpZ2F0aW9uQ2xpY2suZW1pdCh7IGRpcmVjdGlvbiwgeWVhcnM6IHllYXJzIH0pO1xuICB9XG5cbiAgaGFuZGxlTmF2aWdhdGlvbktleVVwKCRldmVudDogS2V5Ym9hcmRFdmVudCwgZGlyZWN0aW9uOiAncHJldicgfCAnbmV4dCcsIHllYXJzPzogYm9vbGVhbikge1xuICAgIGlmIChbJ1NwYWNlJ10uaW5jbHVkZXMoJGV2ZW50LmNvZGUpKSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuaGFuZGxlTmF2aWdhdGlvbkNsaWNrKGRpcmVjdGlvbiwgeWVhcnMpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cIm5hdmlnYXRpb25cIiBjbGFzcz1cImNhbGVuZGFyLW5hdi1wcmV2XCI+XG4gIDxidXR0b25cbiAgICAoY2xpY2spPVwiaGFuZGxlTmF2aWdhdGlvbkNsaWNrKCdwcmV2JywgdHJ1ZSlcIlxuICAgIChrZXl1cCk9XCJoYW5kbGVOYXZpZ2F0aW9uS2V5VXAoJGV2ZW50LCAncHJldicsIHRydWUpXCJcbiAgICBjQnV0dG9uXG4gICAgY29sb3I9XCJ0cmFuc3BhcmVudFwiXG4gICAgc2l6ZT1cInNtXCJcbiAgICB0YWJpbmRleD1cIjBcIlxuICA+XG4gICAgPHNwYW4gY2xhc3M9XCJjYWxlbmRhci1uYXYtaWNvbiBjYWxlbmRhci1uYXYtaWNvbi1kb3VibGUtcHJldlwiPjwvc3Bhbj5cbiAgPC9idXR0b24+XG4gIDxidXR0b25cbiAgICAoY2xpY2spPVwiaGFuZGxlTmF2aWdhdGlvbkNsaWNrKCdwcmV2JylcIlxuICAgIChrZXl1cCk9XCJoYW5kbGVOYXZpZ2F0aW9uS2V5VXAoJGV2ZW50LCAncHJldicpXCJcbiAgICAqbmdJZj1cInZpZXcgPT09ICdkYXlzJ1wiXG4gICAgY0J1dHRvblxuICAgIGNvbG9yPVwidHJhbnNwYXJlbnRcIlxuICAgIHNpemU9XCJzbVwiXG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgPlxuICAgIDxzcGFuIGNsYXNzPVwiY2FsZW5kYXItbmF2LWljb24gY2FsZW5kYXItbmF2LWljb24tcHJldlwiPjwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJjYWxlbmRhci1uYXYtZGF0ZVwiIFtuZ1N0eWxlXT1cIm5hdlllYXJGaXJzdCA/IHsgZGlzcGxheTogJ2ZsZXgnLCBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicgfSA6IHt9XCI+XG4gIDxidXR0b25cbiAgICAoY2xpY2spPVwic2V0VmlldygnbW9udGhzJylcIlxuICAgICpuZ0lmPVwidmlldyA9PT0gJ2RheXMnXCJcbiAgICBjQnV0dG9uXG4gICAgY29sb3I9XCJ0cmFuc3BhcmVudFwiXG4gICAgc2l6ZT1cInNtXCJcbiAgICB0YWJpbmRleD1cIjBcIlxuICA+XG4gICAge3sgZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcobG9jYWxlLCB7IG1vbnRoOiAnbG9uZycgfSkgfX1cbiAgPC9idXR0b24+XG4gIDxidXR0b25cbiAgICAoY2xpY2spPVwic2V0VmlldygneWVhcnMnKVwiXG4gICAgY0J1dHRvblxuICAgIGNvbG9yPVwidHJhbnNwYXJlbnRcIlxuICAgIHNpemU9XCJzbVwiXG4gICAgdGFiaW5kZXg9XCIwXCJcbiAgICBbbmdTdHlsZV09XCJuYXZZZWFyRmlyc3QgPyB7IG9yZGVyOiAnLTEnIH0gOiB7fVwiXG4gID5cbiAgICB7eyBkYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUsIHsgeWVhcjogJ251bWVyaWMnIH0pIH19XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG48ZGl2ICpuZ0lmPVwibmF2aWdhdGlvblwiIGNsYXNzPVwiY2FsZW5kYXItbmF2LW5leHRcIj5cbiAgPGJ1dHRvblxuICAgIChjbGljayk9XCJoYW5kbGVOYXZpZ2F0aW9uQ2xpY2soJ25leHQnKVwiXG4gICAgKGtleXVwKT1cImhhbmRsZU5hdmlnYXRpb25LZXlVcCgkZXZlbnQsICduZXh0JylcIlxuICAgICpuZ0lmPVwidmlldyA9PT0gJ2RheXMnXCJcbiAgICBjQnV0dG9uXG4gICAgY29sb3I9XCJ0cmFuc3BhcmVudFwiXG4gICAgc2l6ZT1cInNtXCJcbiAgICB0YWJpbmRleD1cIjBcIlxuICA+XG4gICAgPHNwYW4gY2xhc3M9XCJjYWxlbmRhci1uYXYtaWNvbiBjYWxlbmRhci1uYXYtaWNvbi1uZXh0XCI+PC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIChjbGljayk9XCJoYW5kbGVOYXZpZ2F0aW9uQ2xpY2soJ25leHQnLCB0cnVlKVwiXG4gICAgKGtleXVwKT1cImhhbmRsZU5hdmlnYXRpb25LZXlVcCgkZXZlbnQsICduZXh0JywgdHJ1ZSlcIlxuICAgIGNCdXR0b25cbiAgICBjb2xvcj1cInRyYW5zcGFyZW50XCJcbiAgICBzaXplPVwic21cIlxuICAgIHRhYmluZGV4PVwiMFwiXG4gID5cbiAgICA8c3BhbiBjbGFzcz1cImNhbGVuZGFyLW5hdi1pY29uIGNhbGVuZGFyLW5hdi1pY29uLWRvdWJsZS1uZXh0XCI+PC9zcGFuPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
|
|
@@ -13,8 +13,8 @@ import { CalendarDayTitlePipe } from './calendar-month/calendar-day-title.pipe';
|
|
|
13
13
|
import { CalendarClassRowPipe } from './calendar-month/calendar-class-row.pipe';
|
|
14
14
|
import * as i0 from "@angular/core";
|
|
15
15
|
export class CalendarModule {
|
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0
|
|
17
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
17
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: CalendarModule, imports: [CalendarComponent,
|
|
18
18
|
CalendarClassYearPipe,
|
|
19
19
|
CalendarClassDayPipe,
|
|
20
20
|
CalendarClassMonthPipe,
|
|
@@ -28,9 +28,9 @@ export class CalendarModule {
|
|
|
28
28
|
CalendarClassRowPipe], exports: [CalendarComponent,
|
|
29
29
|
CalendarMonthComponent,
|
|
30
30
|
CalendarNavigationComponent] }); }
|
|
31
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0
|
|
31
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalendarModule, imports: [CalendarComponent] }); }
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalendarModule, decorators: [{
|
|
34
34
|
type: NgModule,
|
|
35
35
|
args: [{
|
|
36
36
|
imports: [
|
|
@@ -54,10 +54,10 @@ export class CalendarService {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0
|
|
58
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0
|
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalendarService, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
58
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalendarService }); }
|
|
59
59
|
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CalendarService, decorators: [{
|
|
61
61
|
type: Injectable
|
|
62
62
|
}], ctorParameters: () => [{ type: i0.KeyValueDiffers }] });
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmV1aS1hbmd1bGFyL3NyYy9saWIvY2FsZW5kYXIvY2FsZW5kYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFtQyxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFnQy9DLE1BQU0sT0FBTyxlQUFlO0lBRTFCLFlBQ1UsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBT25DLHdCQUFtQixHQUFtQjtZQUMzQyxZQUFZLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDeEIsU0FBUyxFQUFFLElBQUk7WUFDZixTQUFTLEVBQUUsSUFBSTtZQUNmLE9BQU8sRUFBRSxJQUFJO1lBQ2IsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsSUFBSTtZQUNiLGFBQWEsRUFBRSxFQUFFO1lBQ2pCLEtBQUssRUFBRSxLQUFLO1lBQ1osSUFBSSxFQUFFLE1BQU07WUFDWixNQUFNLEVBQUUsU0FBUztZQUNqQixVQUFVLEVBQUUsU0FBUztZQUNyQixhQUFhLEVBQUUsT0FBTztZQUN0QixTQUFTLEVBQUUsU0FBUztZQUNwQixZQUFZLEVBQUUsS0FBSztZQUNuQixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLGtCQUFrQixFQUFFLEtBQUs7WUFDekIsYUFBYSxFQUFFLEtBQUs7WUFDcEIsY0FBYyxFQUFFLEtBQUs7WUFDckIsZ0JBQWdCLEVBQUUsU0FBUztTQUM1QixDQUFDO1FBRWUsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBaUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDL0YsbUJBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBNUJqRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdFLENBQUM7SUE2QkQsTUFBTSxDQUFDLEtBQXFCO1FBQzFCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN2QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUMsSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLFNBQVM7WUFDWCxDQUFDO1lBQ0QsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDekYsU0FBUztZQUNYLENBQUM7WUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMzRCxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNaLE1BQU0sUUFBUSxHQUFtQixFQUFFLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7Z0JBQ2pFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDaEMsNENBQTRDO29CQUM1QyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7Z0JBQ3pDLENBQUMsQ0FBQyxDQUFDO2dCQUNILElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQzs4R0EzRFUsZUFBZTtrSEFBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgS2V5VmFsdWVEaWZmZXIsIEtleVZhbHVlRGlmZmVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc1ZhbGlkRGF0ZSB9IGZyb20gJy4vY2FsZW5kYXIudXRpbHMnO1xuXG5leHBvcnQgdHlwZSBEYXRlRmlsdGVyVHlwZSA9IChkYXRlOiBEYXRlKSA9PiBib29sZWFuO1xuZXhwb3J0IHR5cGUgRGF5Rm9ybWF0VHlwZSA9ICdudW1lcmljJyB8ICcyLWRpZ2l0JyB8ICgoZGF0ZTogRGF0ZSkgPT4gc3RyaW5nIHwgbnVtYmVyKTtcbmV4cG9ydCB0eXBlIFdlZWtkYXlGb3JtYXRUeXBlID0gbnVtYmVyIHwgJ2xvbmcnIHwgJ25hcnJvdycgfCAnc2hvcnQnIHwgKChkYXRlOiBEYXRlKSA9PiBzdHJpbmcgfCBudW1iZXIpO1xuZXhwb3J0IHR5cGUgU2VsZWN0aW9uVHlwZSA9ICdkYXknIHwgJ3dlZWsnIHwgJ21vbnRoJyB8ICd5ZWFyJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ2FsZW5kYXJTdGF0ZSB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcblxuICBjYWxlbmRhckRhdGU/OiBEYXRlIHwgbnVsbDtcbiAgaG92ZXJEYXRlPzogRGF0ZSB8IG51bGw7XG4gIHN0YXJ0RGF0ZT86IERhdGUgfCBudWxsO1xuICBlbmREYXRlPzogRGF0ZSB8IG51bGw7XG4gIG1heERhdGU/OiBEYXRlIHwgbnVsbDtcbiAgbWluRGF0ZT86IERhdGUgfCBudWxsO1xuICBkaXNhYmxlZERhdGVzPzogKERhdGUgfCBEYXRlW10pW107XG4gIHJhbmdlPzogYm9vbGVhbjtcbiAgdmlldz86IHN0cmluZztcbiAgbG9jYWxlPzogc3RyaW5nO1xuICBkYXRlRmlsdGVyPzogRGF0ZUZpbHRlclR5cGUsXG4gIGRheUZvcm1hdD86IERheUZvcm1hdFR5cGUsXG4gIHdlZWtkYXlGb3JtYXQ/OiBXZWVrZGF5Rm9ybWF0VHlwZTtcbiAgbmF2WWVhckZpcnN0PzogYm9vbGVhbjtcbiAgc2hvd0FkamFjZW50RGF5cz86IGJvb2xlYW47XG4gIHNlbGVjdEFkamFjZW50RGF5cz86IGJvb2xlYW47XG4gIHNlbGVjdGlvblR5cGU/OiBTZWxlY3Rpb25UeXBlO1xuICBzaG93V2Vla051bWJlcj86IGJvb2xlYW47XG4gIHdlZWtOdW1iZXJzTGFiZWw/OiBzdHJpbmc7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDYWxlbmRhclNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUga2V5VmFsdWVEaWZmZXJzOiBLZXlWYWx1ZURpZmZlcnNcbiAgKSB7XG4gICAgdGhpcy5kaWZmZXIgPSB0aGlzLmtleVZhbHVlRGlmZmVycy5maW5kKHRoaXMuY2FsZW5kYXJTdGF0ZU9iamVjdCkuY3JlYXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGRpZmZlciE6IEtleVZhbHVlRGlmZmVyPGFueSwgYW55PjtcblxuICBwdWJsaWMgY2FsZW5kYXJTdGF0ZU9iamVjdDogSUNhbGVuZGFyU3RhdGUgPSB7XG4gICAgY2FsZW5kYXJEYXRlOiBuZXcgRGF0ZSgpLFxuICAgIGhvdmVyRGF0ZTogbnVsbCxcbiAgICBzdGFydERhdGU6IG51bGwsXG4gICAgZW5kRGF0ZTogbnVsbCxcbiAgICBtYXhEYXRlOiBudWxsLFxuICAgIG1pbkRhdGU6IG51bGwsXG4gICAgZGlzYWJsZWREYXRlczogW10sXG4gICAgcmFuZ2U6IGZhbHNlLFxuICAgIHZpZXc6ICdkYXlzJyxcbiAgICBsb2NhbGU6ICdkZWZhdWx0JyxcbiAgICBkYXRlRmlsdGVyOiB1bmRlZmluZWQsXG4gICAgd2Vla2RheUZvcm1hdDogJ3Nob3J0JyxcbiAgICBkYXlGb3JtYXQ6ICdudW1lcmljJyxcbiAgICBuYXZZZWFyRmlyc3Q6IGZhbHNlLFxuICAgIHNob3dBZGphY2VudERheXM6IHRydWUsXG4gICAgc2VsZWN0QWRqYWNlbnREYXlzOiBmYWxzZSxcbiAgICBzZWxlY3Rpb25UeXBlOiAnZGF5JyxcbiAgICBzaG93V2Vla051bWJlcjogZmFsc2UsXG4gICAgd2Vla051bWJlcnNMYWJlbDogdW5kZWZpbmVkXG4gIH07XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjYWxlbmRhclN0YXRlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJQ2FsZW5kYXJTdGF0ZT4odGhpcy5jYWxlbmRhclN0YXRlT2JqZWN0KTtcbiAgY2FsZW5kYXJTdGF0ZSQgPSB0aGlzLmNhbGVuZGFyU3RhdGUuYXNPYnNlcnZhYmxlKCk7XG5cbiAgdXBkYXRlKHN0YXRlOiBJQ2FsZW5kYXJTdGF0ZSk6IHZvaWQge1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhzdGF0ZSk7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgY29uc3QgZW50cnkgPSB0aGlzLmNhbGVuZGFyU3RhdGVPYmplY3Rba2V5XTtcbiAgICAgIGlmIChlbnRyeSA9PT0gc3RhdGVba2V5XSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmIChpc1ZhbGlkRGF0ZShzdGF0ZVtrZXldKSAmJiBlbnRyeSA/IGVudHJ5LmdldFRpbWUoKSA9PT0gc3RhdGVba2V5XT8uZ2V0VGltZSgpIDogZmFsc2UpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB0aGlzLmNhbGVuZGFyU3RhdGVPYmplY3Rba2V5XSA9IHN0YXRlW2tleV07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGlmZmVyKSB7XG4gICAgICBjb25zdCBjaGFuZ2VzID0gdGhpcy5kaWZmZXIuZGlmZih0aGlzLmNhbGVuZGFyU3RhdGVPYmplY3QpO1xuICAgICAgaWYgKGNoYW5nZXMpIHtcbiAgICAgICAgY29uc3QgbmV3U3RhdGU6IElDYWxlbmRhclN0YXRlID0geyAuLi50aGlzLmNhbGVuZGFyU3RhdGVPYmplY3QgfTtcbiAgICAgICAgY2hhbmdlcy5mb3JFYWNoQ2hhbmdlZEl0ZW0oaXRlbSA9PiB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coJ2NoYW5nZXMnLCBpdGVtLmtleSwgaXRlbSwgKTtcbiAgICAgICAgICBuZXdTdGF0ZVtpdGVtLmtleV0gPSBpdGVtLmN1cnJlbnRWYWx1ZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJTdGF0ZS5uZXh0KG5ld1N0YXRlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|